diff --git a/.sizes.json b/.sizes.json index 668e809f6..4c47efd3e 100644 --- a/.sizes.json +++ b/.sizes.json @@ -7,9 +7,9 @@ { "name": "*", "total": { - "min": 12300, - "gzip": 5180, - "brotli": 4738 + "min": 12304, + "gzip": 5179, + "brotli": 4751 } }, { @@ -35,17 +35,17 @@ "user": { "min": 207, "gzip": 182, - "brotli": 152 + "brotli": 153 }, "runtime": { - "min": 2635, - "gzip": 1333, - "brotli": 1191 + "min": 2639, + "gzip": 1330, + "brotli": 1188 }, "total": { - "min": 2842, - "gzip": 1515, - "brotli": 1343 + "min": 2846, + "gzip": 1512, + "brotli": 1341 } }, { @@ -71,16 +71,16 @@ "user": { "min": 943, "gzip": 585, - "brotli": 538 + "brotli": 537 }, "runtime": { - "min": 7966, - "gzip": 3606, - "brotli": 3279 + "min": 7970, + "gzip": 3605, + "brotli": 3280 }, "total": { - "min": 8909, - "gzip": 4191, + "min": 8913, + "gzip": 4190, "brotli": 3817 } } diff --git a/packages/runtime/src/dom/hydrate.ts b/packages/runtime/src/dom/hydrate.ts index 29fce157c..00bd16981 100644 --- a/packages/runtime/src/dom/hydrate.ts +++ b/packages/runtime/src/dom/hydrate.ts @@ -96,7 +96,7 @@ export function init(runtimeId = "M" /* [a-zA-Z0-9]+ */) { const data = nodeValue.slice(nodeValue.indexOf(" ") + 1); if (token === HydrateSymbols.NODE) { - scope[data] = currentNode.nextSibling; + scope[data] = currentNode.previousSibling; } else if (token === HydrateSymbols.SECTION_START) { stack.push(currentScopeId); currentScopeId = scopeId; diff --git a/packages/translator/src/__tests__/fixtures/at-tag-inside-if-tag/__snapshots__/html.expected/template.js b/packages/translator/src/__tests__/fixtures/at-tag-inside-if-tag/__snapshots__/html.expected/template.js index 30772b12c..a31828941 100644 --- a/packages/translator/src/__tests__/fixtures/at-tag-inside-if-tag/__snapshots__/html.expected/template.js +++ b/packages/translator/src/__tests__/fixtures/at-tag-inside-if-tag/__snapshots__/html.expected/template.js @@ -1,4 +1,4 @@ -import { markHydrateNode as _markHydrateNode, write as _write, nextScopeId as _nextScopeId, createRenderer as _createRenderer } from "@marko/runtime-fluurt/src/html"; +import { write as _write, nextScopeId as _nextScopeId, createRenderer as _createRenderer } from "@marko/runtime-fluurt/src/html"; import _customTag from "./components/custom-tag/index.marko"; const _renderer = ({ x @@ -6,7 +6,6 @@ const _renderer = ({ const _scope = _nextScopeId(); let _thing; const _scope = _nextScopeId(); - _write(`${_markHydrateNode(_scope, 0)}`); if (x) { const _scope = _nextScopeId(); _thing = { diff --git a/packages/translator/src/__tests__/fixtures/at-tags-dynamic-and-static/__snapshots__/html.expected/template.js b/packages/translator/src/__tests__/fixtures/at-tags-dynamic-and-static/__snapshots__/html.expected/template.js index 5fc658618..a723d390f 100644 --- a/packages/translator/src/__tests__/fixtures/at-tags-dynamic-and-static/__snapshots__/html.expected/template.js +++ b/packages/translator/src/__tests__/fixtures/at-tags-dynamic-and-static/__snapshots__/html.expected/template.js @@ -1,10 +1,9 @@ -import { markHydrateNode as _markHydrateNode, write as _write, nextScopeId as _nextScopeId, maybeFlush as _maybeFlush, createRenderer as _createRenderer } from "@marko/runtime-fluurt/src/html"; +import { nextScopeId as _nextScopeId, maybeFlush as _maybeFlush, createRenderer as _createRenderer } from "@marko/runtime-fluurt/src/html"; import _hello from "./components/hello/index.marko"; const _renderer = (input, _tagVar) => { const _scope = _nextScopeId(); const _item = []; const _scope = _nextScopeId(); - _write(`${_markHydrateNode(_scope, 0)}`); for (const a in { a: 1, b: 2 diff --git a/packages/translator/src/__tests__/fixtures/at-tags-dynamic-tag-parent/__snapshots__/html.expected/template.js b/packages/translator/src/__tests__/fixtures/at-tags-dynamic-tag-parent/__snapshots__/html.expected/template.js index eb0894406..84b8a6946 100644 --- a/packages/translator/src/__tests__/fixtures/at-tags-dynamic-tag-parent/__snapshots__/html.expected/template.js +++ b/packages/translator/src/__tests__/fixtures/at-tags-dynamic-tag-parent/__snapshots__/html.expected/template.js @@ -1,9 +1,8 @@ -import { markHydrateNode as _markHydrateNode, write as _write, dynamicTag as _dynamicTag, nextScopeId as _nextScopeId, createRenderer as _createRenderer } from "@marko/runtime-fluurt/src/html"; +import { write as _write, dynamicTag as _dynamicTag, nextScopeId as _nextScopeId, createRenderer as _createRenderer } from "@marko/runtime-fluurt/src/html"; const _renderer = ({ x }, _tagVar) => { const _scope = _nextScopeId(); - _write(`${_markHydrateNode(_scope, 0)}`); _dynamicTag(x, { header: { class: "my-header", diff --git a/packages/translator/src/__tests__/fixtures/at-tags-dynamic-with-params/__snapshots__/html.expected/template.js b/packages/translator/src/__tests__/fixtures/at-tags-dynamic-with-params/__snapshots__/html.expected/template.js index e4e1a26ca..916473912 100644 --- a/packages/translator/src/__tests__/fixtures/at-tags-dynamic-with-params/__snapshots__/html.expected/template.js +++ b/packages/translator/src/__tests__/fixtures/at-tags-dynamic-with-params/__snapshots__/html.expected/template.js @@ -1,4 +1,4 @@ -import { markHydrateNode as _markHydrateNode, write as _write, escapeXML as _escapeXML, nextScopeId as _nextScopeId, createRenderer as _createRenderer } from "@marko/runtime-fluurt/src/html"; +import { escapeXML as _escapeXML, markHydrateNode as _markHydrateNode, write as _write, nextScopeId as _nextScopeId, createRenderer as _createRenderer } from "@marko/runtime-fluurt/src/html"; import _hello from "./components/hello/index.marko"; const _renderer = ({ x @@ -6,12 +6,11 @@ const _renderer = ({ const _scope = _nextScopeId(); let _item; const _scope = _nextScopeId(); - _write(`${_markHydrateNode(_scope, 0)}`); if (x) { const _scope = _nextScopeId(); _item = { renderBody(y) { - _write(`${_markHydrateNode(_scope, 0)}${_escapeXML(y)}`); + _write(`${_escapeXML(y)}${_markHydrateNode(_scope, 0)}`); } }; } diff --git a/packages/translator/src/__tests__/fixtures/at-tags-dynamic/__snapshots__/html.expected/template.js b/packages/translator/src/__tests__/fixtures/at-tags-dynamic/__snapshots__/html.expected/template.js index 9f8c4df29..7898db27a 100644 --- a/packages/translator/src/__tests__/fixtures/at-tags-dynamic/__snapshots__/html.expected/template.js +++ b/packages/translator/src/__tests__/fixtures/at-tags-dynamic/__snapshots__/html.expected/template.js @@ -1,14 +1,12 @@ -import { markHydrateNode as _markHydrateNode, write as _write, nextScopeId as _nextScopeId, maybeFlush as _maybeFlush, escapeXML as _escapeXML, createRenderer as _createRenderer } from "@marko/runtime-fluurt/src/html"; +import { write as _write, nextScopeId as _nextScopeId, maybeFlush as _maybeFlush, escapeXML as _escapeXML, markHydrateNode as _markHydrateNode, createRenderer as _createRenderer } from "@marko/runtime-fluurt/src/html"; import _hello from "./components/hello/index.marko"; const _renderer = (input, _tagVar) => { const _scope = _nextScopeId(); const _col = []; const _scope = _nextScopeId(); const _item = []; - _write(`${_markHydrateNode(_scope, 0)}`); for (const color of ["red", "blue", "green"]) { const _scope = _nextScopeId(); - _write(`${_markHydrateNode(_scope, 0)}`); if (color === "red") { const _scope = _nextScopeId(); _item.push({ @@ -32,19 +30,17 @@ const _renderer = (input, _tagVar) => { } _maybeFlush(); } - _write(`${_markHydrateNode(_scope, 0)}`); let _i = 0; for (const col of [["a", "b"], ["c", "d"]]) { let i = _i++; const _scope = _nextScopeId(); const _row = []; - _write(`${_markHydrateNode(_scope, 0)}`); for (const row of col) { const _scope = _nextScopeId(); _row.push({ row: row, renderBody() { - _write(`${_markHydrateNode(_scope, 0)}${_escapeXML(row)}`); + _write(`${_escapeXML(row)}${_markHydrateNode(_scope, 0)}`); } }); _maybeFlush(); diff --git a/packages/translator/src/__tests__/fixtures/attr-class/__snapshots__/html.expected/template.js b/packages/translator/src/__tests__/fixtures/attr-class/__snapshots__/html.expected/template.js index d0807c6e9..e609e6911 100644 --- a/packages/translator/src/__tests__/fixtures/attr-class/__snapshots__/html.expected/template.js +++ b/packages/translator/src/__tests__/fixtures/attr-class/__snapshots__/html.expected/template.js @@ -1,4 +1,4 @@ -import { markHydrateNode as _markHydrateNode, classAttr as _classAttr, write as _write, nextScopeId as _nextScopeId, dynamicTag as _dynamicTag, createRenderer as _createRenderer } from "@marko/runtime-fluurt/src/html"; +import { classAttr as _classAttr, markHydrateNode as _markHydrateNode, write as _write, nextScopeId as _nextScopeId, dynamicTag as _dynamicTag, createRenderer as _createRenderer } from "@marko/runtime-fluurt/src/html"; import _customTag from "./components/custom-tag.marko"; const _renderer = (input, _tagVar) => { const _scope = _nextScopeId(); @@ -6,10 +6,10 @@ const _renderer = (input, _tagVar) => { c, d } = input; - _write(`${_markHydrateNode(_scope, 0)}
`); + }])}>${_markHydrateNode(_scope, 0)}`); _customTag({ class: ["a", { b: c, @@ -25,7 +25,6 @@ const _renderer = (input, _tagVar) => { const _scope = _nextScopeId(); } }); - _write(`${_markHydrateNode(_scope, 1)}`); _dynamicTag(input.test, { class: ["a", { b: c, diff --git a/packages/translator/src/__tests__/fixtures/attr-escape/__snapshots__/html.expected/template.js b/packages/translator/src/__tests__/fixtures/attr-escape/__snapshots__/html.expected/template.js index f2c88986e..b5098a62d 100644 --- a/packages/translator/src/__tests__/fixtures/attr-escape/__snapshots__/html.expected/template.js +++ b/packages/translator/src/__tests__/fixtures/attr-escape/__snapshots__/html.expected/template.js @@ -1,7 +1,7 @@ -import { markHydrateNode as _markHydrateNode, classAttr as _classAttr, attr as _attr, write as _write, nextScopeId as _nextScopeId, createRenderer as _createRenderer } from "@marko/runtime-fluurt/src/html"; +import { classAttr as _classAttr, attr as _attr, markHydrateNode as _markHydrateNode, write as _write, nextScopeId as _nextScopeId, createRenderer as _createRenderer } from "@marko/runtime-fluurt/src/html"; const _renderer = (input, _tagVar) => { const _scope = _nextScopeId(); - _write(`${_markHydrateNode(_scope, 0)}`); + _write(`${_markHydrateNode(_scope, 0)}`); }; export default _renderer; export const render = /* @__PURE__ */_createRenderer(_renderer); \ No newline at end of file diff --git a/packages/translator/src/__tests__/fixtures/attr-style/__snapshots__/html.expected/template.js b/packages/translator/src/__tests__/fixtures/attr-style/__snapshots__/html.expected/template.js index 381f7d739..f504f0c35 100644 --- a/packages/translator/src/__tests__/fixtures/attr-style/__snapshots__/html.expected/template.js +++ b/packages/translator/src/__tests__/fixtures/attr-style/__snapshots__/html.expected/template.js @@ -1,13 +1,13 @@ -import { markHydrateNode as _markHydrateNode, styleAttr as _styleAttr, write as _write, nextScopeId as _nextScopeId, dynamicTag as _dynamicTag, createRenderer as _createRenderer } from "@marko/runtime-fluurt/src/html"; +import { styleAttr as _styleAttr, markHydrateNode as _markHydrateNode, write as _write, nextScopeId as _nextScopeId, dynamicTag as _dynamicTag, createRenderer as _createRenderer } from "@marko/runtime-fluurt/src/html"; import _customTag from "./components/custom-tag.marko"; const _renderer = ({ color, test }, _tagVar) => { const _scope = _nextScopeId(); - _write(`${_markHydrateNode(_scope, 0)}`); + })}>${_markHydrateNode(_scope, 0)}`); _customTag({ style: { color: color @@ -30,7 +30,6 @@ const _renderer = ({ const _scope = _nextScopeId(); } }); - _write(`${_markHydrateNode(_scope, 1)}`); _dynamicTag(test, { style: { color: "green" diff --git a/packages/translator/src/__tests__/fixtures/attr-template-literal-escape/__snapshots__/html.expected/template.js b/packages/translator/src/__tests__/fixtures/attr-template-literal-escape/__snapshots__/html.expected/template.js index 3c5625106..919bd0905 100644 --- a/packages/translator/src/__tests__/fixtures/attr-template-literal-escape/__snapshots__/html.expected/template.js +++ b/packages/translator/src/__tests__/fixtures/attr-template-literal-escape/__snapshots__/html.expected/template.js @@ -1,9 +1,9 @@ -import { markHydrateNode as _markHydrateNode, attr as _attr, write as _write, nextScopeId as _nextScopeId, createRenderer as _createRenderer } from "@marko/runtime-fluurt/src/html"; +import { attr as _attr, markHydrateNode as _markHydrateNode, write as _write, nextScopeId as _nextScopeId, createRenderer as _createRenderer } from "@marko/runtime-fluurt/src/html"; const _renderer = ({ name }, _tagVar) => { const _scope = _nextScopeId(); - _write(`${_markHydrateNode(_scope, 0)}`); + _write(`${_markHydrateNode(_scope, 0)}`); }; export default _renderer; export const render = /* @__PURE__ */_createRenderer(_renderer); \ No newline at end of file diff --git a/packages/translator/src/__tests__/fixtures/basic-chain/__snapshots__/html.expected/template.js b/packages/translator/src/__tests__/fixtures/basic-chain/__snapshots__/html.expected/template.js index 1e2a7982a..a78160238 100644 --- a/packages/translator/src/__tests__/fixtures/basic-chain/__snapshots__/html.expected/template.js +++ b/packages/translator/src/__tests__/fixtures/basic-chain/__snapshots__/html.expected/template.js @@ -1,10 +1,10 @@ -import { markHydrateNode as _markHydrateNode, escapeXML as _escapeXML, write as _write, nextScopeId as _nextScopeId, createRenderer as _createRenderer } from "@marko/runtime-fluurt/src/html"; +import { escapeXML as _escapeXML, markHydrateNode as _markHydrateNode, write as _write, nextScopeId as _nextScopeId, createRenderer as _createRenderer } from "@marko/runtime-fluurt/src/html"; const _renderer = (input, _tagVar) => { const _scope = _nextScopeId(); const x = 1; const y = x * 2; const z = y * 3; - _write(`