@marko/runtime-tags@6.2.1
Patch Changes
-
#3323
33f21aeThanks @DylanPiercey! - Skip importing and calling a child template's setup export when compile time analysis proves it is a noop. This compounds: a component whose setup only called such children now exports a noop setup itself, letting its own parents skip the call too. -
#3320
281f3b8Thanks @DylanPiercey! - Mark_hoistcalls in compiled DOM output as@__PURE__so unused hoisted tag variable getters can be removed by bundlers. -
#3322
35ec01bThanks @DylanPiercey! - Fix a resume crash (Cannot read properties of undefined (reading 'nodeType')insetConditionalRenderer) when a<script>effect flushed before an in-order<await>resolved triggered a state update targeting content rendered after the pending<await>. Effects are now held on the blocked chunk and flush once its async content completes, so state updates only run against markers that exist in the document. -
#3317
f07a3dcThanks @DylanPiercey! - Reads inside functions whose value can never be observed - native event handlers (including via spread attributes) and inputs a child template only ever invokes - no longer subscribe the expression, which previously re-created and re-attached/re-passed the function on every change. The function reads current values from the scope when invoked. -
#3320
a031ac5Thanks @DylanPiercey! - Avoid serializing<let>change handlers when the tag variable is never assigned. -
#3323
62c17beThanks @DylanPiercey! - Fix analysis of related controllable attributes merging an expression's references into itself, which duplicated its tracked reads. -
#3320
303d3deThanks @DylanPiercey! - Avoid serializing the owner scope reference for state driven<if>and<for>branches; the resume runtime now links branch owners from the markers it already processes. -
#3320
4b12581Thanks @DylanPiercey! - Encode static serialize reason groups as a numeric bitmask instead of an object literal, avoiding an allocation per custom tag instance during SSR. -
#3324
eea2ffbThanks @DylanPiercey! - Fix a placeholder at the edge of a<show>body merging with the text adjacent to the<show>tag. Because<show>inlines its body into the parent, a template like<strong>+ <show=cond>${value}</show></strong>serialized the static+prefix and the placeholder value as a single text node with no<!>separator, so the first client-side update overwrote the whole node and deleted the static text. Sibling-text analysis now looks through<show>body boundaries in both directions. -
#3325
2329b2cThanks @DylanPiercey! - Shrink and speed up the dynamic<style>runtime:;and{in interpolated values are now hex escaped in a single pass (so a raw;always ends a declaration and a raw{is always the rule opener, letting the client-side updater splice withindexOfinstead of an escape-aware scan), the shell selector drops its whitespace, the shell helper applies thenonceitself instead of a separate generated statement, and unchanged rule text no longer rewrites the style element.