@torpor/view 0.4.8 → 0.4.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (240) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/dist/compile.cjs +74 -76
  3. package/dist/compile.cjs.map +1 -1
  4. package/dist/compile.js +74 -76
  5. package/dist/compile.js.map +1 -1
  6. package/dist/index.cjs +7 -8
  7. package/dist/index.cjs.map +1 -1
  8. package/dist/index.d.cts +2 -2
  9. package/dist/index.d.cts.map +1 -1
  10. package/dist/index.d.ts +2 -2
  11. package/dist/index.d.ts.map +1 -1
  12. package/dist/index.js +7 -8
  13. package/dist/index.js.map +1 -1
  14. package/package.json +1 -1
  15. package/src/compile/build/client/buildAwaitNode.ts +32 -34
  16. package/src/compile/build/client/buildCode.ts +0 -9
  17. package/src/compile/build/client/buildHtmlNode.ts +11 -3
  18. package/src/compile/build/client/buildIfNode.ts +18 -26
  19. package/src/compile/build/client/buildReplaceNode.ts +10 -2
  20. package/src/compile/build/client/buildSwitchNode.ts +18 -26
  21. package/src/render/runControl.ts +2 -1
  22. package/src/render/runControlBranch.ts +6 -13
  23. package/src/watch/proxyGet.ts +4 -0
  24. package/src/watch/proxySet.ts +1 -1
  25. package/test/attributes/components/output/Attributes-client.ts +0 -2
  26. package/test/attributes/components/output/Disappearing-client.ts +0 -2
  27. package/test/attributes/components/temp/{Attributes-client-b9b98b8c868cc4f13484ae2237d59ef9491dfbf3.ts → Attributes-client-63bd49fe97fb8d775ef291fa19b8f03075020f63.ts} +0 -2
  28. package/test/attributes/components/temp/{Disappearing-client-b9b98b8c868cc4f13484ae2237d59ef9491dfbf3.ts → Disappearing-client-63bd49fe97fb8d775ef291fa19b8f03075020f63.ts} +0 -2
  29. package/test/await/components/output/Await-client.ts +49 -42
  30. package/test/await/components/temp/{Await-client-284921284e6ae52b607902682f7f9b69bffe1515.ts → Await-client-5ad15bc135417fa095bb5c95c7407a02a444a272.ts} +49 -42
  31. package/test/bind/components/output/BindComponent-client.ts +0 -4
  32. package/test/bind/components/output/BindText-client.ts +0 -2
  33. package/test/bind/components/temp/{BindComponent-client-acbb75b9dc9685722e49a937138b8f8d2e5f0539.ts → BindComponent-client-44f487e4c31612483ff002a7dea91925dd37b96b.ts} +0 -4
  34. package/test/bind/components/temp/{BindText-client-12ad90dae9678c8cdc7d8f2266ff6ed58824d57e.ts → BindText-client-74b797d8a10d8f18a71ef121dbb9eaec9c8dd67a.ts} +0 -2
  35. package/test/child-component/components/output/ChildComponent-client.ts +0 -4
  36. package/test/child-component/components/temp/{ChildComponent-client-63a83042fd341882e31e4fe9344294cbe83f00e5.ts → ChildComponent-client-3f29b8db2e610cbcb200af36721456404ed29dca.ts} +0 -4
  37. package/test/class/components/output/Class-client.ts +0 -4
  38. package/test/class/components/temp/{Class-client-919c8e138d3885b62ad3440c2d6925edae8e4892.ts → Class-client-0741f12141ba1e5d531ca6cc9becc0511ff0c502.ts} +0 -4
  39. package/test/component/components/output/Component-client.ts +0 -4
  40. package/test/component/components/temp/{Component-client-a433db324e16bc80b647022bba8717c7b5d285a6.ts → Component-client-8255e6a16f9dc01f64b88808bc92003396794fa5.ts} +0 -4
  41. package/test/console/components/output/Console-client.ts +0 -2
  42. package/test/console/components/temp/{Console-client-2d6a441342c992f6be9f4139a3354055f7aa6c41.ts → Console-client-bf26a9f6c8785ce09608d36fae616de0724a2355.ts} +0 -2
  43. package/test/const/components/output/Const-client.ts +0 -2
  44. package/test/const/components/temp/{Const-client-9d8262840860a5cb686c4923d0c8567ffc704b35.ts → Const-client-111aef0ff3a14c98eed9dba0a6205bd4509ccf29.ts} +0 -2
  45. package/test/context/components/output/Context-client.ts +0 -6
  46. package/test/context/components/temp/{Context-client-c1437b9cb8765f3d73b315982dd52e8458345da9.ts → Context-client-a4b608a96e3a3763ad9d660e1bc0836a105b9ea3.ts} +0 -6
  47. package/test/effects/components/output/ForEffect-client.ts +0 -2
  48. package/test/effects/components/output/IfEffect-client.ts +24 -27
  49. package/test/effects/components/output/NestedIfEffect-client.ts +46 -52
  50. package/test/effects/components/temp/{ForEffect-client-74072b430ca76fba1ebcad8bbc14754874f60969.ts → ForEffect-client-15144e8e55d99b6495affdb158cf95b301713f1a.ts} +0 -2
  51. package/test/effects/components/temp/{IfEffect-client-bdc34d65604493fc1475e2e98f7ae262a0ca5f34.ts → IfEffect-client-792e4b6c568e2cffad16c0b64ffd39928566c534.ts} +24 -27
  52. package/test/effects/components/temp/NestedIfEffect-client-724b09d88afd0eb4df459082ada91ac041825f7a.ts +89 -0
  53. package/test/events/components/output/Events-client.ts +0 -2
  54. package/test/events/components/temp/{Events-client-a02f139a6aed6e9105eeb23cee802f3d1b8550e5.ts → Events-client-3224d5bbbc6d4188c566cfa86659e546a886877a.ts} +0 -2
  55. package/test/for/components/output/For-client.ts +0 -2
  56. package/test/for/components/output/ForAfterFor-client.ts +0 -2
  57. package/test/for/components/output/ForContainingFor-client.ts +0 -2
  58. package/test/for/components/output/ForContainingFunction-client.ts +0 -2
  59. package/test/for/components/output/ForContainingIf-client.ts +18 -24
  60. package/test/for/components/output/ForEscape-client.ts +0 -2
  61. package/test/for/components/output/ForIn-client.ts +0 -2
  62. package/test/for/components/output/ForOf-client.ts +0 -2
  63. package/test/for/components/temp/{For-client-b999b399f32cac80c8ca1c9a718e35705a2dc10f.ts → For-client-287e5695f24f6700158d2c689fdce1916031b4d7.ts} +0 -2
  64. package/test/for/components/temp/{ForAfterFor-client-315138c704ee78185fbaf09a3f055e4c00a3a91d.ts → ForAfterFor-client-bc375829d736a62ee760f32a5a90df78426c8534.ts} +0 -2
  65. package/test/for/components/temp/{ForContainingFor-client-d9ed22634282fabc29ed8bdd5e4cb3ee699f5f56.ts → ForContainingFor-client-d80aba5977a7cef8263f0fdaf6216e19bb8b0625.ts} +0 -2
  66. package/test/for/components/temp/{ForContainingFunction-client-a1a63d73cf56ffc50e5f46cd2e2cc71bf0ebaa4c.ts → ForContainingFunction-client-bcb91a1c7ad2fd4e227fc40f28f01e7fdc495bdc.ts} +0 -2
  67. package/test/for/components/temp/{ForContainingIf-client-9fd42948e04eeb5114d22c4d986e27a101c7e73a.ts → ForContainingIf-client-8911d18357f7c81f97d64773442275c802292ae7.ts} +18 -24
  68. package/test/for/components/temp/{ForEscape-client-f6ee68cf9081cecccc78d793da192df403a573d4.ts → ForEscape-client-13038740272dd6b7fa9f228ae852e3d1b2725f88.ts} +0 -2
  69. package/test/for/components/temp/{ForIn-client-f82576cc3c950432fec8c196ba25596f191177ae.ts → ForIn-client-9f244dfd10d0439f14719e724aefc908174fe4e3.ts} +0 -2
  70. package/test/for/components/temp/{ForOf-client-1a89bfa049d931c7ec848d80196cd75bc67868a6.ts → ForOf-client-b0e33a686f4183a88aa06af7f2255e7210438fce.ts} +0 -2
  71. package/test/function/components/output/Function-client.ts +0 -2
  72. package/test/function/components/temp/{Function-client-a9072c015aa3f89966fbfc905109c2c6ecac3846.ts → Function-client-a2603b20a7f8763ba9713b04c42da56c2ee2056e.ts} +0 -2
  73. package/test/html/components/output/Html-client.ts +10 -8
  74. package/test/html/components/temp/{Html-client-206a7cd3478abde0e6902a8cb953dc20d6a2cd3f.ts → Html-client-da930140bd62a34408887d13aafebbe856065bef.ts} +10 -8
  75. package/test/html/html.test.ts +1 -0
  76. package/test/if/components/output/ElseIfTrue-client.ts +34 -35
  77. package/test/if/components/output/ElseTrue-client.ts +34 -35
  78. package/test/if/components/output/IfAfterIf-client.ts +30 -38
  79. package/test/if/components/output/IfCache-client.ts +29 -32
  80. package/test/if/components/output/IfContainingFor-client.ts +53 -59
  81. package/test/if/components/output/IfContainingFunction-client.ts +21 -26
  82. package/test/if/components/output/IfContainingIf-client.ts +46 -52
  83. package/test/if/components/output/IfElseFalse-client.ts +24 -27
  84. package/test/if/components/output/IfElseTrue-client.ts +24 -27
  85. package/test/if/components/output/IfFalse-client.ts +16 -21
  86. package/test/if/components/output/IfNested-client.ts +54 -58
  87. package/test/if/components/temp/ElseIfTrue-client-b9fc7dd83aae7205745ae376e2081befa33e320c.ts +77 -0
  88. package/test/if/components/temp/ElseTrue-client-b9fc7dd83aae7205745ae376e2081befa33e320c.ts +77 -0
  89. package/test/if/components/temp/{IfAfterIf-client-b042b5047978b9054a6a89e45f4d157249885821.ts → IfAfterIf-client-e463e4db80127acc2ed0c4da349ecaa4c5b0ce1a.ts} +30 -38
  90. package/test/if/components/temp/{IfCache-client-3d0bc2841d050f6d86bbccddfdcaf0b0b781ab87.ts → IfCache-client-e892165cad33a1052bb248fe10e1b3aa9dffbf01.ts} +29 -32
  91. package/test/if/components/temp/IfContainingFor-client-0835d2155fd73b40d06b77d9f5af380a1d209e4e.ts +105 -0
  92. package/test/if/components/temp/{IfContainingFunction-client-b3a3e7e2b2b44618fa722403d51717532fc237e4.ts → IfContainingFunction-client-2c1a9e5da9fb9a85cae8123f30c23ccc851c9803.ts} +21 -26
  93. package/test/if/components/temp/IfContainingIf-client-517b94a34195618e4e58cabdfdb402288379b075.ts +89 -0
  94. package/test/{effects/components/temp/NestedIfEffect-client-944bd749d83ebce0f6ae66c6751f38ecd430df05.ts → if/components/temp/IfContainingIfAfterIf-client-f435f9bc464edfaf580ef7c1726a4be5ba8c6f6f.ts} +29 -8
  95. package/test/if/components/temp/IfContainingIfAfterIf-server-2cfd604fd3a7187217437bd97dc89a4c6aeb8726.ts +29 -0
  96. package/test/if/components/temp/IfContainingIfAfterIf-types-805203b39332252a17996786ac79ece914bbea34.ts +10 -0
  97. package/test/if/components/temp/{IfElseTrue-client-9bccfbdf5da704d3756ff48e2cf6987e6125dc1f.ts → IfElseFalse-client-6003c6c731c1bad239bdcea789d136bc8cd6090a.ts} +24 -27
  98. package/test/if/components/temp/{IfElseFalse-client-9bccfbdf5da704d3756ff48e2cf6987e6125dc1f.ts → IfElseTrue-client-6003c6c731c1bad239bdcea789d136bc8cd6090a.ts} +24 -27
  99. package/test/if/components/temp/{IfFalse-client-9ad6f6e3f7abb5d9927d4823315886542c6ec611.ts → IfFalse-client-8ef85fba04e1e6c3f2b95d9d957bffea5ba593ae.ts} +16 -21
  100. package/test/if/components/temp/IfNested-client-5be29838cfd71602d781e744ebd1eb9968eb825c.ts +97 -0
  101. package/test/mount/components/output/Mount-client.ts +0 -2
  102. package/test/mount/components/temp/{Mount-client-ce5a39e2bd6942a589b1a91d392ee841d55bccf2.ts → Mount-client-00351e81e77561213a14c8eea534acae3c5eb692.ts} +0 -2
  103. package/test/on-mount/components/output/OnMount-client.ts +0 -2
  104. package/test/on-mount/components/temp/{OnMount-client-218e35c32f4c3d30a193775e4aecd50d5663da0d.ts → OnMount-client-0a63fc37b0f617ee0b4de2619590a2562a3e2f92.ts} +0 -2
  105. package/test/party/components/output/ComputedState-client.ts +0 -2
  106. package/test/party/components/output/Conditional-client.ts +36 -35
  107. package/test/party/components/output/Context-client.ts +0 -4
  108. package/test/party/components/output/DeclareState-client.ts +0 -2
  109. package/test/party/components/output/DomRef-client.ts +0 -2
  110. package/test/party/components/output/EmitToParent-client.ts +0 -4
  111. package/test/party/components/output/EventClick-client.ts +0 -2
  112. package/test/party/components/output/InputCheckbox-client.ts +0 -2
  113. package/test/party/components/output/InputRadio-client.ts +0 -2
  114. package/test/party/components/output/InputSelect-client.ts +0 -2
  115. package/test/party/components/output/InputText-client.ts +0 -2
  116. package/test/party/components/output/Loop-client.ts +0 -2
  117. package/test/party/components/output/MinimalTemplate-client.ts +0 -2
  118. package/test/party/components/output/OnMount-client.ts +0 -2
  119. package/test/party/components/output/Props-client.ts +0 -4
  120. package/test/party/components/output/Slot-client.ts +0 -4
  121. package/test/party/components/output/SlotFallback-client.ts +0 -4
  122. package/test/party/components/output/Styling-client.ts +0 -2
  123. package/test/party/components/output/UpdateState-client.ts +0 -2
  124. package/test/party/components/temp/{ComputedState-client-fcd3c890f4dc9058c4ee29e7cdbfda23a8d4695f.ts → ComputedState-client-512a35be46f600ab9b9cf9da0e3c0c90b377d7fa.ts} +0 -2
  125. package/test/party/components/temp/{Conditional-client-39c1844a9395f8620541f6599ee4547906c35d69.ts → Conditional-client-2c5f759b41ce567a51589af001bf0fc6feb47b4b.ts} +36 -35
  126. package/test/party/components/temp/{Context-client-696777e5ce1ad7ef2f5bc8e4c2c1a81fb3a98ece.ts → Context-client-88246cfda3671dd5ac8919d95c2f65a8dce81f18.ts} +0 -4
  127. package/test/party/components/temp/{DeclareState-client-cbade5ab902b3d7d5bf8054f9cc7e149334e3560.ts → DeclareState-client-cc45b93b34f4c34c965c765e0f53f78ea416b1ca.ts} +0 -2
  128. package/test/party/components/temp/{DomRef-client-6e643c9cfee7fed10c6cead9fcad055646712aa6.ts → DomRef-client-4c28338d9ea7a2c3d273970161181d82076ed19e.ts} +0 -2
  129. package/test/party/components/temp/{EmitToParent-client-89b1744b0bc1e50dc2091c6e63dfe9b62a0b8d46.ts → EmitToParent-client-fcf3d690b10871aad884099e078d5c98d7b8503d.ts} +0 -4
  130. package/test/party/components/temp/{EventClick-client-2c7393fcd73e6d10d17f5f19aacafeb91ab219f6.ts → EventClick-client-dcb9b191808f7f0f9d009b725da046ba241cb44b.ts} +0 -2
  131. package/test/party/components/temp/{InputCheckbox-client-377a0a0505e307b19dcca95cb9b1cf9c8a38835b.ts → InputCheckbox-client-f0af6d8f86c4f80673dea1599a6f2deaf54fe576.ts} +0 -2
  132. package/test/party/components/temp/{InputRadio-client-38c3f46fabdb94ca79c71888ce3335687461fcbd.ts → InputRadio-client-1472838ddbfe003a85779e1ccb7b57cb66333e90.ts} +0 -2
  133. package/test/party/components/temp/{InputSelect-client-bac5f12f5560e702794587702c883c273c92394f.ts → InputSelect-client-9881943682735888d6b62612d93577ba51593678.ts} +0 -2
  134. package/test/party/components/temp/{InputText-client-2a189403e60e6f932829370233ddede2be782334.ts → InputText-client-7b37e856f97c863e120a4aa6c02757e489ad6591.ts} +0 -2
  135. package/test/party/components/temp/{Loop-client-c99929d3487880b8526d0ed3602c96dd36da1a8c.ts → Loop-client-5e5694bc158fcd5f06cd1037e920c657032d7b90.ts} +0 -2
  136. package/test/party/components/temp/{MinimalTemplate-client-72e8afffe412117e38f8045196704fa3ac384213.ts → MinimalTemplate-client-079892cc885b1f25863c13b93c83e0554a22a2c3.ts} +0 -2
  137. package/test/party/components/temp/{OnMount-client-f16abd053b4b1ba31fc806e8c3a39163a46cb6a2.ts → OnMount-client-1900436fa5a6d56cb98df953de89e0f662d821e8.ts} +0 -2
  138. package/test/party/components/temp/{Props-client-863b630f7f77c4609f6171886bf812b9452cfceb.ts → Props-client-b94724d04965006c1c89776bac2fa10694280c44.ts} +0 -4
  139. package/test/party/components/temp/{Slot-client-4406668a963796d1117ec818118e504e55b18e4c.ts → Slot-client-5793cdf8a5f28b5009ae17435cfd146ed6c8a1f8.ts} +0 -4
  140. package/test/party/components/temp/{SlotFallback-client-4406668a963796d1117ec818118e504e55b18e4c.ts → SlotFallback-client-5793cdf8a5f28b5009ae17435cfd146ed6c8a1f8.ts} +0 -4
  141. package/test/party/components/temp/{Styling-client-59c057fc5b6c226d667351ea7f748abbe86f1c96.ts → Styling-client-a1c7082740471fead2feb331c9ba0864ff0c5566.ts} +0 -2
  142. package/test/party/components/temp/{UpdateState-client-3b087abf0cb4b1e784623f3de6dabbcb63703e07.ts → UpdateState-client-c6c785a6d35693ba1b9c36dbd59bf28163718c00.ts} +0 -2
  143. package/test/props/components/output/Reactive-client.ts +0 -4
  144. package/test/props/components/temp/{Reactive-client-a911a7026a02bf32c185e29a87f5b8611685e370.ts → Reactive-client-26a5294eda35e924911bcc99acda58cc98baee7c.ts} +0 -4
  145. package/test/replace/components/output/Replace-client.ts +14 -12
  146. package/test/replace/components/temp/{Replace-client-d5e681fe8c662c832916d61ae22d51e65dfeba53.ts → Replace-client-872de024cd2c5c6c95a3eb4e29642e8e48e69a27.ts} +14 -12
  147. package/test/slots/components/output/BasicSlot-client.ts +0 -4
  148. package/test/slots/components/output/LetSlot-client.ts +0 -4
  149. package/test/slots/components/output/NamedSlot-client.ts +0 -4
  150. package/test/slots/components/output/UnusedSlot-client.ts +0 -4
  151. package/test/slots/components/temp/{BasicSlot-client-c1e9885dc85d13e4b44d54e0ad800c0d46e35914.ts → BasicSlot-client-39a9a3170fd51582b023b805d597eb729bb6b02b.ts} +0 -4
  152. package/test/slots/components/temp/{LetSlot-client-3b1779874d3c9b1289fb62f124af5ebaf78279a8.ts → LetSlot-client-63980e54259324855b573e87efb1d7a1ac9abd9c.ts} +0 -4
  153. package/test/slots/components/temp/{NamedSlot-client-8faa564d1002c199f102aa148657d82628d1ebd7.ts → NamedSlot-client-426018f63a360e6d4208400b25bfadd2727eadcf.ts} +0 -4
  154. package/test/slots/components/temp/{UnusedSlot-client-2e23b278b99db53bc0fde9c98836d8e26481a40e.ts → UnusedSlot-client-5819c279d1f8c2d808651505171a5b20a41998ef.ts} +0 -4
  155. package/test/special-component/components/output/SpecialComponent-client.ts +29 -31
  156. package/test/special-component/components/temp/{SpecialComponent-client-d81a30dda5d8d509e8661caa70bbc89265bc65c1.ts → SpecialComponent-client-752f0be79a322e8f75bfdd5adfec996d4ab35281.ts} +29 -31
  157. package/test/special-element/components/output/SpecialElement-client.ts +0 -2
  158. package/test/special-element/components/temp/{SpecialElement-client-2887938dfcd02e042d8fe5501845d043b098616a.ts → SpecialElement-client-f6239c04736a49add9278edfaea7804dd186e665.ts} +0 -2
  159. package/test/special-head/components/output/SpecialHead-client.ts +0 -2
  160. package/test/special-head/components/temp/{SpecialHead-client-3b8455aa874ae0113a7f718cb64b310d84430ce6.ts → SpecialHead-client-cda50f56454f7c7f0147352e53d50c4060ed2e3b.ts} +0 -2
  161. package/test/special-self/components/output/SpecialSelf-client.ts +25 -28
  162. package/test/special-self/components/temp/{SpecialSelf-client-cb6aba06aa4bec73485ef48bc05557a5c935f54c.ts → SpecialSelf-client-09e93618a2318d3873b201557e2f32d5bf5e4100.ts} +25 -28
  163. package/test/style/components/output/Style-client.ts +0 -2
  164. package/test/style/components/temp/{Style-client-8896b4c0fe78e346904fbcf24d629bbe20a56860.ts → Style-client-8ca877392f5610bc527c5577d948f5782c40bf96.ts} +0 -2
  165. package/test/svg/components/output/Svg-client.ts +24 -26
  166. package/test/svg/components/temp/{Svg-client-0397419af735b847de6c56bd6ad2bb4eb6dc1ba2.ts → Svg-client-6a213daf6df5c361de9e1c9aa7cc581bcb6356be.ts} +24 -26
  167. package/test/switch/components/output/Switch-client.ts +34 -35
  168. package/test/{if/components/temp/ElseTrue-client-6eb8f5e058f266603104442f46cd96206bbceee8.ts → switch/components/temp/Switch-client-4cab689c9914c62d461e6aaf6beb68d15275c68f.ts} +46 -34
  169. package/test/text/components/output/Text-client.ts +0 -2
  170. package/test/text/components/temp/{Text-client-3b2555c36eef59b2d79b1d5a6d3edf4ff28a6816.ts → Text-client-4288bc38b436a5b486c1fd5a4805bd206dbff27c.ts} +0 -2
  171. package/test/watch-array/components/output/ArrayAllFunctions-client.ts +0 -2
  172. package/test/watch-array/components/output/ArrayAllFunctionsUnkeyed-client.ts +0 -2
  173. package/test/watch-array/components/output/ArrayEmpty-client.ts +0 -2
  174. package/test/watch-array/components/output/ArrayEntries-client.ts +0 -2
  175. package/test/watch-array/components/output/ArrayIndexes-client.ts +0 -2
  176. package/test/watch-array/components/output/ArrayPop-client.ts +0 -2
  177. package/test/watch-array/components/output/ArrayPush-client.ts +0 -2
  178. package/test/watch-array/components/output/ArrayReassign-client.ts +0 -2
  179. package/test/watch-array/components/output/ArrayReverse-client.ts +0 -2
  180. package/test/watch-array/components/output/ArraySetObject-client.ts +0 -2
  181. package/test/watch-array/components/output/ArraySetProperty-client.ts +0 -2
  182. package/test/watch-array/components/output/ArrayShift-client.ts +0 -2
  183. package/test/watch-array/components/output/ArraySort-client.ts +0 -2
  184. package/test/watch-array/components/output/ArraySpliceAdd-client.ts +0 -2
  185. package/test/watch-array/components/output/ArraySpliceDelete-client.ts +0 -2
  186. package/test/watch-array/components/output/ArraySpliceDeleteAll-client.ts +0 -2
  187. package/test/watch-array/components/output/ArraySpliceDeleteAndAdd-client.ts +0 -2
  188. package/test/watch-array/components/output/ArraySpliceDeleteEnd-client.ts +0 -2
  189. package/test/watch-array/components/output/ArraySwap-client.ts +0 -2
  190. package/test/watch-array/components/output/ArrayUnshift-client.ts +0 -2
  191. package/test/watch-array/components/output/ArrayUpdateAssignment-client.ts +0 -2
  192. package/test/watch-array/components/temp/{ArrayPush-client-10c627fb82e67bba84b0a0bc1ffe79430dcd7255.ts → ArrayAllFunctions-client-83720b9fb76de7976be6cdb86d122cb097f16821.ts} +0 -2
  193. package/test/watch-array/components/temp/{ArrayAllFunctionsUnkeyed-client-0aede144ecd4a1de98d0ac6265fc4275e9803f9e.ts → ArrayAllFunctionsUnkeyed-client-513455af417adc9807393dbb58da507c66dde885.ts} +0 -2
  194. package/test/watch-array/components/temp/{ArrayAllFunctions-client-10c627fb82e67bba84b0a0bc1ffe79430dcd7255.ts → ArrayEmpty-client-83720b9fb76de7976be6cdb86d122cb097f16821.ts} +0 -2
  195. package/test/watch-array/components/temp/{ArrayEntries-client-40c8fbd950418f90335fee16250a42778d8bfbaf.ts → ArrayEntries-client-cf9fe0738861c78fbd576d7f74b38c713363ee31.ts} +0 -2
  196. package/test/watch-array/components/temp/{ArrayIndexes-client-89d3c7c1e89ca1c402183e84c3a2a8ed02bde10b.ts → ArrayIndexes-client-2c12fa2b6d0992423b57ddb6f363b9c4c5bf525a.ts} +0 -2
  197. package/test/watch-array/components/temp/{ArrayEmpty-client-10c627fb82e67bba84b0a0bc1ffe79430dcd7255.ts → ArrayPop-client-83720b9fb76de7976be6cdb86d122cb097f16821.ts} +0 -2
  198. package/test/watch-array/components/temp/{ArrayPop-client-10c627fb82e67bba84b0a0bc1ffe79430dcd7255.ts → ArrayPush-client-83720b9fb76de7976be6cdb86d122cb097f16821.ts} +0 -2
  199. package/test/watch-array/components/temp/ArrayReassign-client-83720b9fb76de7976be6cdb86d122cb097f16821.ts +81 -0
  200. package/test/watch-array/components/temp/ArrayReverse-client-83720b9fb76de7976be6cdb86d122cb097f16821.ts +81 -0
  201. package/test/watch-array/components/temp/ArraySetObject-client-83720b9fb76de7976be6cdb86d122cb097f16821.ts +81 -0
  202. package/test/watch-array/components/temp/ArraySetProperty-client-83720b9fb76de7976be6cdb86d122cb097f16821.ts +81 -0
  203. package/test/watch-array/components/temp/ArrayShift-client-83720b9fb76de7976be6cdb86d122cb097f16821.ts +81 -0
  204. package/test/watch-array/components/temp/ArraySort-client-83720b9fb76de7976be6cdb86d122cb097f16821.ts +81 -0
  205. package/test/watch-array/components/temp/ArraySpliceAdd-client-83720b9fb76de7976be6cdb86d122cb097f16821.ts +81 -0
  206. package/test/watch-array/components/temp/ArraySpliceDelete-client-83720b9fb76de7976be6cdb86d122cb097f16821.ts +81 -0
  207. package/test/watch-array/components/temp/ArraySpliceDeleteAll-client-83720b9fb76de7976be6cdb86d122cb097f16821.ts +81 -0
  208. package/test/watch-array/components/temp/ArraySpliceDeleteAndAdd-client-83720b9fb76de7976be6cdb86d122cb097f16821.ts +81 -0
  209. package/test/watch-array/components/temp/ArraySpliceDeleteEnd-client-83720b9fb76de7976be6cdb86d122cb097f16821.ts +81 -0
  210. package/test/watch-array/components/temp/ArraySwap-client-83720b9fb76de7976be6cdb86d122cb097f16821.ts +81 -0
  211. package/test/watch-array/components/temp/ArrayUnshift-client-83720b9fb76de7976be6cdb86d122cb097f16821.ts +81 -0
  212. package/test/watch-array/components/temp/ArrayUpdateAssignment-client-83720b9fb76de7976be6cdb86d122cb097f16821.ts +81 -0
  213. package/test/watch-object/components/output/WatchObject-client.ts +0 -2
  214. package/test/watch-object/components/output/WatchUndefinedPropertyChange-client.ts +34 -0
  215. package/test/watch-object/components/output/WatchUndefinedPropertyChange-server.ts +18 -0
  216. package/test/watch-object/components/output/WatchUndefinedPropertyChange-types.ts +10 -0
  217. package/test/watch-object/components/temp/{WatchObject-client-6e179fea629d983307056536ab5a3cf9141335fa.ts → WatchObject-client-8f906f7d7613370e70c55a122774e122cdd55bff.ts} +0 -2
  218. package/test/watch-object/components/temp/WatchUndefinedPropertyChange-client-bce2c42e17dedce203b71228966e20056b82baba.ts +34 -0
  219. package/test/watch-object/components/temp/WatchUndefinedPropertyChange-server-7af97c0938c3c851f60e86ef27188e0bcd432354.ts +18 -0
  220. package/test/watch-object/components/temp/WatchUndefinedPropertyChange-types-05e791b7c4023f8ae6e8dd548fe3f16ea8c16d10.ts +10 -0
  221. package/test/watch-object/watch-undefined-property-change.test.ts +51 -0
  222. package/test/if/components/temp/ElseIfTrue-client-6eb8f5e058f266603104442f46cd96206bbceee8.ts +0 -78
  223. package/test/if/components/temp/IfContainingFor-client-0b27933986c4593fdad3c81ac22e32d7ee6bd40f.ts +0 -111
  224. package/test/if/components/temp/IfContainingIf-client-3cf3407e41d0bd4d2927f97cbc5f9df661537702.ts +0 -95
  225. package/test/if/components/temp/IfNested-client-50abd76ec9369ac6cf42f0264870914923f30b5c.ts +0 -101
  226. package/test/switch/components/temp/Switch-client-8de47f56a21297420acf8bc27fc03149f258028b.ts +0 -91
  227. package/test/watch-array/components/temp/ArrayReassign-client-10c627fb82e67bba84b0a0bc1ffe79430dcd7255.ts +0 -83
  228. package/test/watch-array/components/temp/ArrayReverse-client-10c627fb82e67bba84b0a0bc1ffe79430dcd7255.ts +0 -83
  229. package/test/watch-array/components/temp/ArraySetObject-client-10c627fb82e67bba84b0a0bc1ffe79430dcd7255.ts +0 -83
  230. package/test/watch-array/components/temp/ArraySetProperty-client-10c627fb82e67bba84b0a0bc1ffe79430dcd7255.ts +0 -83
  231. package/test/watch-array/components/temp/ArrayShift-client-10c627fb82e67bba84b0a0bc1ffe79430dcd7255.ts +0 -83
  232. package/test/watch-array/components/temp/ArraySort-client-10c627fb82e67bba84b0a0bc1ffe79430dcd7255.ts +0 -83
  233. package/test/watch-array/components/temp/ArraySpliceAdd-client-10c627fb82e67bba84b0a0bc1ffe79430dcd7255.ts +0 -83
  234. package/test/watch-array/components/temp/ArraySpliceDelete-client-10c627fb82e67bba84b0a0bc1ffe79430dcd7255.ts +0 -83
  235. package/test/watch-array/components/temp/ArraySpliceDeleteAll-client-10c627fb82e67bba84b0a0bc1ffe79430dcd7255.ts +0 -83
  236. package/test/watch-array/components/temp/ArraySpliceDeleteAndAdd-client-10c627fb82e67bba84b0a0bc1ffe79430dcd7255.ts +0 -83
  237. package/test/watch-array/components/temp/ArraySpliceDeleteEnd-client-10c627fb82e67bba84b0a0bc1ffe79430dcd7255.ts +0 -83
  238. package/test/watch-array/components/temp/ArraySwap-client-10c627fb82e67bba84b0a0bc1ffe79430dcd7255.ts +0 -83
  239. package/test/watch-array/components/temp/ArrayUnshift-client-10c627fb82e67bba84b0a0bc1ffe79430dcd7255.ts +0 -83
  240. package/test/watch-array/components/temp/ArrayUpdateAssignment-client-10c627fb82e67bba84b0a0bc1ffe79430dcd7255.ts +0 -83
package/dist/compile.js CHANGED
@@ -839,9 +839,8 @@ function buildAwaitNode(node, status, b) {
839
839
  const anchorName = node.varName ?? "null";
840
840
  const parentName = node.parentName;
841
841
  const regionName = nextVarName("await_region", status);
842
- const stateName = "$" + nextVarName("await_state", status);
843
- const creatorsName = nextVarName("await_creators", status);
844
- const awaitVarsName = nextVarName("await_vars", status);
842
+ const indexName = nextVarName("await_index", status);
843
+ const tokenName = nextVarName("await_token", status);
845
844
  const branches = node.children.filter((n) => isControlNode(n));
846
845
  let awaitBranch = branches.find((n) => n.operation === "@await");
847
846
  if (!awaitBranch) {}
@@ -870,54 +869,51 @@ function buildAwaitNode(node, status, b) {
870
869
  const awaiterName = trimMatched(awaitBranch.statement.substring(5).trim(), "(", ")");
871
870
  const thenVar = trimMatched(thenBranch.statement.substring(4).trim(), "(", ")");
872
871
  const catchVar = trimMatched(catchBranch.statement.substring(5).trim(), "(", ")");
873
- status.imports.add("$watch");
874
- status.imports.add("$run");
875
872
  status.imports.add("t_region");
876
873
  status.imports.add("t_run_control");
877
874
  status.imports.add("t_run_branch");
875
+ status.imports.add("t_push_region");
876
+ status.imports.add("t_pop_region");
878
877
  b.append("");
879
878
  b.append("/* @await */");
880
879
  addPushDevBoundary("control", `@${branches[0].statement}`, status, b);
881
880
  b.append(`
882
881
  const ${regionName} = t_region(${status.options.dev === true ? `"await"` : ""});
883
- let ${stateName} = $watch({ index: -1 });
884
- let ${creatorsName}: ((t_before: Node | null) => void)[] = [];
885
- let ${awaitVarsName} = { t_token: 0 };
886
- $run(() => {`);
882
+ let ${tokenName} = 0;
883
+ let ${indexName} = -1;
884
+ t_run_control(${regionName}, ${anchorName}, (t_before) => {`);
887
885
  let index = 0;
888
- buildAwaitBranch(awaitBranch, status, b, parentName, stateName, creatorsName, index++);
886
+ buildAwaitBranch(awaitBranch, status, b, parentName, regionName, indexName, index++);
889
887
  b.append(`
890
- ${awaitVarsName}.t_token++;
888
+ ${tokenName}++;
891
889
  ((t_token) => {`);
892
890
  awaitBranch.span.start += 7;
893
891
  addMappedText("", replaceForVarNames(awaiterName, status), "", awaitBranch.span, status, b);
894
892
  thenBranch.span.start -= 1;
895
893
  addMappedText(".then((", replaceForVarNames(thenVar, status), ") => {", thenBranch.span, status, b);
896
- b.append(`if (t_token === ${awaitVarsName}.t_token) {`);
897
- buildAwaitBranch(thenBranch, status, b, parentName, stateName, creatorsName, index++);
894
+ b.append(`if (t_token === ${tokenName}) {`);
895
+ buildAwaitBranch(thenBranch, status, b, parentName, regionName, indexName, index++);
898
896
  b.append(`}
899
897
  })`);
900
898
  catchBranch.span.start -= 1;
901
899
  addMappedText(".catch((", replaceForVarNames(catchVar, status), ") => {", catchBranch.span, status, b);
902
- b.append(`if (t_token === ${awaitVarsName}.t_token) {`);
903
- buildAwaitBranch(catchBranch, status, b, parentName, stateName, creatorsName, index++);
900
+ b.append(`if (t_token === ${tokenName}) {`);
901
+ buildAwaitBranch(catchBranch, status, b, parentName, regionName, indexName, index++);
904
902
  b.append(`}
905
903
  });
906
- })(${awaitVarsName}.t_token);
904
+ })(${tokenName});
907
905
  }${status.options.dev === true ? `, "runAwait"` : ""});`);
908
- b.append(`
909
- t_run_control(${regionName}, ${anchorName}, (t_before) => {
910
- const index = ${stateName}.index;`);
911
- b.append(`t_run_branch(${regionName}, () => ${creatorsName}[index](t_before)${status.options.dev === true ? ", `branch ${index}`" : ""});`);
912
- addPopDevBoundary(status, b);
913
- b.append("});");
914
906
  addPopDevBoundary(status, b);
915
907
  b.append("");
916
908
  }
917
- function buildAwaitBranch(node, status, b, parentName, stateName, creatorsName, index) {
909
+ function buildAwaitBranch(node, status, b, parentName, regionName, indexName, index) {
910
+ b.append(`if (!t_run_branch(${regionName}, ${indexName}, ${index})) return;`);
918
911
  if (node.children.length > 0) {
919
- let beforeParam = node.fragment !== void 0 ? "t_before" : "_";
920
- b.append(`${creatorsName}[${index}] = (${beforeParam}) => {`);
912
+ b.append(`
913
+ const t_new_region = t_region(${status.options.dev === true ? `"await_branch"` : ""});
914
+ const t_old_control_region = t_push_region(${regionName});
915
+ const t_old_region = t_push_region(t_new_region, true);
916
+ `);
921
917
  buildFragment(node, status, b, parentName, "t_before");
922
918
  status.fragmentStack.push({
923
919
  fragment: node.fragment,
@@ -926,9 +922,10 @@ function buildAwaitBranch(node, status, b, parentName, stateName, creatorsName,
926
922
  for (let child of node.children) buildNode(child, status, b, parentName, "t_before");
927
923
  status.fragmentStack.pop();
928
924
  buildAddFragment(node, status, b, parentName, "t_before");
929
- b.append("};");
930
- } else b.append(`${creatorsName}[${index}] = (_) => {};`);
931
- b.append(`${stateName}.index = ${index};`);
925
+ b.append("t_pop_region(t_old_region);");
926
+ b.append("t_pop_region(t_old_control_region);");
927
+ }
928
+ b.append(`${indexName} = ${index};`);
932
929
  }
933
930
 
934
931
  //#endregion
@@ -1042,6 +1039,9 @@ function buildHtmlNode(node, status, b) {
1042
1039
  node = node.children[0];
1043
1040
  status.imports.add("t_region");
1044
1041
  status.imports.add("t_run_control");
1042
+ status.imports.add("t_run_branch");
1043
+ status.imports.add("t_push_region");
1044
+ status.imports.add("t_pop_region");
1045
1045
  b.append("");
1046
1046
  b.append(`
1047
1047
  /* @html */
@@ -1053,8 +1053,12 @@ function buildHtmlNode(node, status, b) {
1053
1053
  }
1054
1054
  function buildHtmlBranch(node, status, b, parentName, regionName) {
1055
1055
  status.imports.add("t_run_branch");
1056
- b.append(`${node.statement};`);
1057
- b.append(`t_run_branch(${regionName}, () => {`);
1056
+ b.append(`${replaceForVarNames(node.statement, status)};`);
1057
+ b.append(`if (!t_run_branch(${regionName}, 0, -1)) return;`);
1058
+ b.append(`
1059
+ const t_new_region = t_region(${status.options.dev === true ? `"html_branch"` : ""});
1060
+ const t_old_region = t_push_region(t_new_region, true);
1061
+ `);
1058
1062
  const templateName = nextVarName("template", status);
1059
1063
  const fragmentName = `t_fragment_${node.fragment.number}`;
1060
1064
  b.append(`let ${templateName} = document.createElement("template");`);
@@ -1063,7 +1067,7 @@ function buildHtmlBranch(node, status, b, parentName, regionName) {
1063
1067
  addMappedText("", `${templateName}.innerHTML = ${replaceForVarNames(node.statement, status)};`, "", node.span, status, b);
1064
1068
  b.append(`let ${fragmentName} = ${templateName}.content.cloneNode(true) as DocumentFragment;`);
1065
1069
  buildAddFragment(node, status, b, parentName, "t_before");
1066
- b.append(`}${status.options.dev === true ? ", \"html\"" : ""});`);
1070
+ b.append("t_pop_region(t_old_region);");
1067
1071
  }
1068
1072
 
1069
1073
  //#endregion
@@ -1072,8 +1076,7 @@ function buildIfNode(node, status, b) {
1072
1076
  const anchorName = node.varName ?? "null";
1073
1077
  const parentName = node.parentName || anchorName + ".parentNode";
1074
1078
  const regionName = nextVarName("if_region", status);
1075
- const stateName = "$" + nextVarName("if_state", status);
1076
- const creatorsName = nextVarName("if_creators", status);
1079
+ const indexName = nextVarName("if_index", status);
1077
1080
  const branches = node.children.filter((n) => isControlNode(n));
1078
1081
  if (branches.findIndex((n) => n.operation === "@else") === -1) branches.push({
1079
1082
  type: "control",
@@ -1085,36 +1088,32 @@ function buildIfNode(node, status, b) {
1085
1088
  end: 0
1086
1089
  }
1087
1090
  });
1088
- status.imports.add("$watch");
1089
- status.imports.add("$run");
1090
1091
  status.imports.add("t_region");
1091
1092
  status.imports.add("t_run_control");
1092
1093
  status.imports.add("t_run_branch");
1094
+ status.imports.add("t_push_region");
1095
+ status.imports.add("t_pop_region");
1093
1096
  b.append("");
1094
1097
  b.append("/* @if */");
1095
1098
  addPushDevBoundary("control", `@${branches[0].statement}`, status, b);
1096
1099
  b.append(`
1097
1100
  const ${regionName} = t_region(${status.options.dev === true ? `"if"` : ""});
1098
- let ${stateName} = $watch({ index: -1 });
1099
- let ${creatorsName}: ((t_before: Node | null) => void)[] = [];
1100
- $run(() => {`);
1101
+ let ${indexName} = -1;
1102
+ t_run_control(${regionName}, ${anchorName}, (t_before) => {`);
1101
1103
  let index = 0;
1102
- for (let branch of branches) buildIfBranch(branch, status, b, parentName, stateName, creatorsName, index++);
1104
+ for (let branch of branches) buildIfBranch(branch, status, b, parentName, regionName, indexName, index++);
1103
1105
  b.append(`}${status.options.dev === true ? `, "runIf"` : ""});`);
1104
- b.append(`
1105
- t_run_control(${regionName}, ${anchorName}, (t_before) => {
1106
- const index = ${stateName}.index;`);
1107
- b.append(`t_run_branch(${regionName}, () => ${creatorsName}[index](t_before)${status.options.dev === true ? ", `branch ${index}`" : ""});`);
1108
- addPopDevBoundary(status, b);
1109
- b.append("});");
1110
1106
  addPopDevBoundary(status, b);
1111
1107
  b.append("");
1112
1108
  }
1113
- function buildIfBranch(node, status, b, parentName, stateName, creatorsName, index) {
1109
+ function buildIfBranch(node, status, b, parentName, regionName, indexName, index) {
1114
1110
  addMappedText("", `${replaceForVarNames(node.statement, status)}`, " {", node.span, status, b);
1111
+ b.append(`if (!t_run_branch(${regionName}, ${indexName}, ${index})) return;`);
1115
1112
  if (node.children.length > 0) {
1116
- let beforeParam = node.fragment !== void 0 ? "t_before" : "_";
1117
- b.append(`${creatorsName}[${index}] = (${beforeParam}) => {`);
1113
+ b.append(`
1114
+ const t_new_region = t_region(${status.options.dev === true ? `"if_branch"` : ""});
1115
+ const t_old_region = t_push_region(t_new_region, true);
1116
+ `);
1118
1117
  buildFragment(node, status, b, parentName, "t_before");
1119
1118
  status.fragmentStack.push({
1120
1119
  fragment: node.fragment,
@@ -1123,9 +1122,9 @@ function buildIfBranch(node, status, b, parentName, stateName, creatorsName, ind
1123
1122
  for (let child of node.children) buildNode(child, status, b, parentName, "t_before");
1124
1123
  status.fragmentStack.pop();
1125
1124
  buildAddFragment(node, status, b, parentName, "t_before");
1126
- b.append("};");
1127
- } else b.append(`${creatorsName}[${index}] = (_) => {};`);
1128
- b.append(`${stateName}.index = ${index};`);
1125
+ b.append("t_pop_region(t_old_region);");
1126
+ }
1127
+ b.append(`${indexName} = ${index};`);
1129
1128
  b.append("}");
1130
1129
  }
1131
1130
 
@@ -1138,6 +1137,9 @@ function buildReplaceNode(node, status, b) {
1138
1137
  node = node.children[0];
1139
1138
  status.imports.add("t_region");
1140
1139
  status.imports.add("t_run_control");
1140
+ status.imports.add("t_run_branch");
1141
+ status.imports.add("t_push_region");
1142
+ status.imports.add("t_pop_region");
1141
1143
  b.append("");
1142
1144
  b.append(`
1143
1145
  /* @replace */
@@ -1150,7 +1152,11 @@ function buildReplaceNode(node, status, b) {
1150
1152
  function buildReplaceBranch(node, status, b, parentName, regionName) {
1151
1153
  status.imports.add("t_run_branch");
1152
1154
  b.append(`${replaceForVarNames(node.statement, status)};`);
1153
- b.append(`t_run_branch(${regionName}, () => {`);
1155
+ b.append(`if (!t_run_branch(${regionName}, 0, -1)) return;`);
1156
+ b.append(`
1157
+ const t_new_region = t_region(${status.options.dev === true ? `"replace_branch"` : ""});
1158
+ const t_old_region = t_push_region(t_new_region, true);
1159
+ `);
1154
1160
  buildFragment(node, status, b, parentName, "t_before");
1155
1161
  status.fragmentStack.push({
1156
1162
  fragment: node.fragment,
@@ -1159,7 +1165,7 @@ function buildReplaceBranch(node, status, b, parentName, regionName) {
1159
1165
  for (let child of node.children) buildNode(child, status, b, parentName, "t_before");
1160
1166
  status.fragmentStack.pop();
1161
1167
  buildAddFragment(node, status, b, parentName, "t_before");
1162
- b.append(`}${status.options.dev === true ? ", \"replace\"" : ""});`);
1168
+ b.append("t_pop_region(t_old_region);");
1163
1169
  }
1164
1170
 
1165
1171
  //#endregion
@@ -1179,8 +1185,7 @@ function buildSwitchNode(node, status, b) {
1179
1185
  const anchorName = node.varName ?? "null";
1180
1186
  const parentName = node.parentName;
1181
1187
  const regionName = nextVarName("switch_region", status);
1182
- const stateName = "$" + nextVarName("switch_state", status);
1183
- const creatorsName = nextVarName("switch_creators", status);
1188
+ const indexName = nextVarName("switch_index", status);
1184
1189
  const branches = node.children.filter((n) => isControlNode(n));
1185
1190
  if (branches.findIndex((n) => n.operation === "@default") === -1) branches.push({
1186
1191
  type: "control",
@@ -1192,39 +1197,35 @@ function buildSwitchNode(node, status, b) {
1192
1197
  end: 0
1193
1198
  }
1194
1199
  });
1195
- status.imports.add("$watch");
1196
- status.imports.add("$run");
1197
1200
  status.imports.add("t_region");
1198
1201
  status.imports.add("t_run_control");
1199
1202
  status.imports.add("t_run_branch");
1203
+ status.imports.add("t_push_region");
1204
+ status.imports.add("t_pop_region");
1200
1205
  b.append("");
1201
1206
  b.append("/* @switch */");
1202
1207
  addPushDevBoundary("control", `@${branches[0].statement}`, status, b);
1203
1208
  b.append(`
1204
1209
  const ${regionName} = t_region(${status.options.dev === true ? `"switch"` : ""});
1205
- let ${stateName} = $watch({ index: -1 });
1206
- let ${creatorsName}: ((t_before: Node | null) => void)[] = [];
1207
- $run(() => {`);
1210
+ let ${indexName} = -1;
1211
+ t_run_control(${regionName}, ${anchorName}, (t_before) => {`);
1208
1212
  addMappedText("", `${replaceForVarNames(node.statement, status)}`, " {", node.span, status, b);
1209
1213
  let index = 0;
1210
- for (let branch of branches) buildSwitchBranch(branch, status, b, parentName, stateName, creatorsName, index++);
1214
+ for (let branch of branches) buildSwitchBranch(branch, status, b, parentName, regionName, indexName, index++);
1211
1215
  b.append(`
1212
1216
  }
1213
1217
  }${status.options.dev === true ? `, "runSwitch"` : ""});`);
1214
- b.append(`
1215
- t_run_control(${regionName}, ${anchorName}, (t_before) => {
1216
- const index = ${stateName}.index;`);
1217
- b.append(`t_run_branch(${regionName}, () => ${creatorsName}[index](t_before)${status.options.dev === true ? ", `branch ${index}`" : ""});`);
1218
- addPopDevBoundary(status, b);
1219
- b.append("});");
1220
1218
  addPopDevBoundary(status, b);
1221
1219
  b.append("");
1222
1220
  }
1223
- function buildSwitchBranch(node, status, b, parentName, stateName, creatorsName, index) {
1221
+ function buildSwitchBranch(node, status, b, parentName, regionName, indexName, index) {
1224
1222
  addMappedText("", `${replaceForVarNames(node.statement, status)}`, " {", node.span, status, b);
1223
+ b.append(`if (!t_run_branch(${regionName}, ${indexName}, ${index})) return;`);
1225
1224
  if (node.children.length > 0) {
1226
- let beforeParam = node.fragment !== void 0 ? "t_before" : "_";
1227
- b.append(`${creatorsName}[${index}] = (${beforeParam}) => {`);
1225
+ b.append(`
1226
+ const t_new_region = t_region(${status.options.dev === true ? `"switch_branch"` : ""});
1227
+ const t_old_region = t_push_region(t_new_region, true);
1228
+ `);
1228
1229
  buildFragment(node, status, b, parentName, "t_before");
1229
1230
  status.fragmentStack.push({
1230
1231
  fragment: node.fragment,
@@ -1233,10 +1234,10 @@ function buildSwitchBranch(node, status, b, parentName, stateName, creatorsName,
1233
1234
  for (let child of node.children) buildNode(child, status, b, parentName, "t_before");
1234
1235
  status.fragmentStack.pop();
1235
1236
  buildAddFragment(node, status, b, parentName, "t_before");
1236
- b.append("};");
1237
- } else b.append(`${creatorsName}[${index}] = (_) => {};`);
1238
- b.append(`${stateName}.index = ${index};`);
1237
+ b.append("t_pop_region(t_old_region);");
1238
+ }
1239
1239
  b.append(`
1240
+ ${indexName} = ${index};
1240
1241
  break;
1241
1242
  }`);
1242
1243
  }
@@ -1828,8 +1829,6 @@ function buildTemplate(template, map, imports, b, options) {
1828
1829
  else if (chunk.script === "/* @start */") {
1829
1830
  addPushDevBoundary("component", current.name || "Anon Component", status, b);
1830
1831
  if (current.contextProps?.length) b.append(`$context = Object.assign({}, $context);`);
1831
- b.append("$peek(() => { /**/");
1832
- b.append("");
1833
1832
  } else if (chunk.script === "/* @render */") {
1834
1833
  if (current.markup) {
1835
1834
  b.append("");
@@ -1848,7 +1847,6 @@ function buildTemplate(template, map, imports, b, options) {
1848
1847
  }
1849
1848
  } else if (chunk.script === "/* @style */") {} else if (chunk.script === "/* @end */") {
1850
1849
  addPopDevBoundary(status, b);
1851
- b.append("/**/ });");
1852
1850
  currentIndex += 1;
1853
1851
  current = template.components[currentIndex];
1854
1852
  } else addMappedText("", chunk.script, "", chunk.span, status, b);