github marko-js/marko @marko/runtime-tags@6.1.16

3 hours ago

Patch Changes

  • #3271 bf09dab Thanks @DylanPiercey! - Render a non-promise <await> value synchronously even when the <await> is inside a <try>. Previously the browser runtime could only render it synchronously at the top level and deferred to the next tick inside a <try> (because the await value is resolved before its content branch is created); it now renders in the same pass.

  • #3269 fdb5627 Thanks @DylanPiercey! - Render a <await> tag synchronously when its value is not a promise, instead of crashing with value.then is not a function. This matches the server runtime, which already renders non-promise values synchronously.

  • #3273 47bbd04 Thanks @DylanPiercey! - Collapse value signals that only forward their scope and value to another signal ((scope, value) => fn(scope, value)) down to the target signal itself, removing the redundant wrapper closure from the generated output.

  • #3265 3a66e8b Thanks @DylanPiercey! - Render known tag content passthroughs (<${input.x}/> with no tag variable, arguments, attributes or body) through a leaner _dynamic_tag_content signal instead of the general _dynamic_tag. When a known custom tag or <define> tag forwards statically known body content, the parent now calls this specialized signal, which skips renderer normalization, the native (string) tag branch, tag variables and parameter handling. Where that content branch is included in the client build (e.g. mounted inside a client-toggled <if>), this drops the heavy _dynamic_tag dependencies and roughly halves the bundled cost of that code. Server-rendered content is tree-shaken from the client as before, so those bundles and resume behavior are unchanged.

  • #3278 8b34976 Thanks @DylanPiercey! - Optimize text rendering: collapse text-only <if>/<else> chains in native elements to a single placeholder, escape only the dynamic parts of a placeholder (static strings are escaped at compile time), and hoist static leading/trailing text out of placeholders into static text nodes.

  • #3274 d043f9c Thanks @DylanPiercey! - Fix static (server only) pages not linking their client side assets. Colocated style files (eg template.style.css), <style> blocks, and imports matching the hydrateIncludeImports option are now included in a page's client entry even when nothing in its template tree is interactive, so completely static routes are no longer rendered unstyled.

Don't miss a new marko release

NewReleases is sending notifications on new releases.