Skip to content

@marko/runtime-tags@6.3.18

Choose a tag to compare

Patch Changes

  • #3542 7799e44 Thanks @DylanPiercey! - Fix serializing an AggregateError whose errors array is shared with another reference or contains a deferred/circular member. The AggregateError constructor copies its first argument into a fresh errors slot, so those arrays previously lost their identity or silently dropped members on resume; the array is now relinked through the writable errors property.

  • #3543 1a822ef Thanks @DylanPiercey! - When a Request/Response is serialized after its headers object was already serialized standalone, reuse that reference instead of re-emitting the header entries inline and overwriting it. This dedups the emitted data and keeps other references to those headers consistent on resume.

  • #3541 ee8b8d0 Thanks @DylanPiercey! - Escape object-style attribute values on SSR so a value containing ;/{ can't inject extra declarations or rules, and so an invalid value is dropped the same way el.style.setProperty drops it on the client — fixing an SSR/CSR divergence and a server-only CSS-injection surface for <div style={ prop: value }/>.

  • #3540 b706533 Thanks @DylanPiercey! - Compile <for by> selector comparisons without an intersection. When a keyed list body compares the loop key to an owner value (e.g. class=(selected === row.id && "danger")), the key is stable per branch, so the comparison now depends only on the owner value and compiles to a plain for-selector closure instead of an _or intersection — smaller output, no per-row intersection coordination, and the comparison no longer re-runs when unrelated row data changes.

  • #3537 77c3071 Thanks @DylanPiercey! - Give the lazy-asset trigger loader a block body so it always returns undefined. Previously, when two or more |-separated triggers both fell back to loading (their selectors absent), the second fallback returned the truthy HTML string and the visible/on-* guards ran observe(...)/addEventListener(...) on it, throwing a TypeError.