Repository navigation
Patch Changes
-
#4582
aef305cThanks @DylanPiercey! - Fix "too much recursion" on resume when several async Marko 5 components rendered inside a tags template settled together and shared a branch id. -
#4575
60b9944Thanks @DylanPiercey! - Insert a newly rendered branch (an<if>branch, a<for>row, a dynamic tag's content) with one DOM call instead of one per node, and move keyed<for>rows the same way. Rows of several nodes render faster, and the runtime is smaller. -
#4576
9511d2cThanks @DylanPiercey! - Fix a<define>tag called with arguments it never reads, whose body is read through the param after them (<X(n)>hi</X>with|a, opts|): the client compile no longer crashes, and the server render no longer passes the body as the first argument. -
#4561
8404a9dThanks @DylanPiercey! - Fix a$globalread used as one value of a class or style object (or a class array) whose other values change, which the client read as an undefined$globaland threw on. -
#4578
13a8c8fThanks @DylanPiercey! - FixserializedGlobalsnot reaching the client on a page, or in lazy content, whose only client code is an effect (such as a<script>reading$global), which readundefinedafter resume. -
#4574
f6d0fa0Thanks @DylanPiercey! - Fix a function that reads a tag variable declared below it without calling it (such as() => later) compiling without its scope and throwing$scope is not definedwhen called. -
#4559
e13d47fThanks @DylanPiercey! - Fix a<const>alias ofinputor a tag parameter (or a value destructured from one) not rendering when an event handler also reads it, and let handlers read any alias without re-attaching on every change. -
#4571
b0d049cThanks @DylanPiercey! - Stop reserving a client scope slot for a<for>key that is only read through a<const>alias of it. -
#4555
778b834Thanks @DylanPiercey! - Fix a function resumed from inside a<for>(a handler passed to a tag, a<const>function, avalueChange) that reads only the loop key, such asitem.idwithby="id"or the index, compiling without its scope and throwing$scope is not definedwhen called. -
#4564
906c516Thanks @DylanPiercey! - Render a template that imports itself (import Self from "./self.marko") on the server by calling its own content, as it already does when the tag is used by its file name, instead of through its import of itself. -
#4570
b966ecbThanks @DylanPiercey! - Render a class read from aserverstylesheet import on the client as theundefinedthe import is there, as for any otherservervalue, instead of dropping the client write depending on translation order. -
#4557
70165d4Thanks @DylanPiercey! - Pass a short literal instead ofvoid 0for skipped runtime arguments in compiled output. -
#4572
e9eb4b7Thanks @DylanPiercey! - Fix<show>when its body starts or ends with control flow (an<if>, a<for>, a nested<show>, or a tag whose template starts or ends with one): hiding a<show>the server rendered hidden could leave its body visible or also remove the content after it, and showing a body that changed while hidden, or a<show>that is its element's only child and the client rendered hidden, could insert stale nodes or nothing. A body the server rendered hidden now stays hidden where it is until first shown, instead of being inserted and removed again on its first update. A body that does not end in a static element no longer gets an end marker: each such template loses a<!>, a walk step and an argument, and each instance a cloned node and a scope slot. -
#4565
57373f5Thanks @DylanPiercey! - Fix a resumed<show>whose body renders no node (only a<script>or a static<style>) removing the node before it when hidden. -
#4565
57373f5Thanks @DylanPiercey! - Drop the range markers a client-rendered<show>does not need: a body of one element gets no start marker, and a body ending in a static element no end marker. Each such template loses a<!>, a walk step and an argument per marker, and each instance a cloned comment. -
#4567
8512ee1Thanks @DylanPiercey! - Fix a<define>whose body starts or ends with a placeholder of a constant value (${"Z"}), called beside text such as another call of itself, which merged the two texts in the client template and made the client render throw. -
#4563
81f555dThanks @DylanPiercey! - Fix text beside a<define>call merging with text at the edge of its body, which left the client updating or reading the wrong text node, and a placeholder that renders nothing (${false}) at the edge of a loop row, a branch or passed content making the client lose track of that content's first or last node. -
#4581
d430524Thanks @DylanPiercey! - Fix resumed text leading passed content, a loop row or a branch that the server wrote right after other text with no marker between them, which merged the two text nodes so a client update overwrote the text before it (${input.label}<${input.content}/>with content${count}). -
Updated dependencies [
13830ec]:- @marko/compiler@5.42.15