solid-js@1.9.10.patch 7.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194
  1. diff --git a/dist/dev.cjs b/dist/dev.cjs
  2. index 7104749..dc3eac9 100644
  3. --- a/dist/dev.cjs
  4. +++ b/dist/dev.cjs
  5. @@ -764,6 +764,8 @@ function runComputation(node, value, time) {
  6. if (node.updatedAt != null && "observers" in node) {
  7. writeSignal(node, nextValue, true);
  8. } else if (Transition && Transition.running && node.pure) {
  9. + // On first computation during transition, also set committed value #2046
  10. + if (!Transition.sources.has(node)) node.value = nextValue;
  11. Transition.sources.add(node);
  12. node.tValue = nextValue;
  13. } else node.value = nextValue;
  14. @@ -987,18 +989,21 @@ function cleanNode(node) {
  15. }
  16. }
  17. if (node.tOwned) {
  18. - for (i = node.tOwned.length - 1; i >= 0; i--) cleanNode(node.tOwned[i]);
  19. + const tOwned = node.tOwned;
  20. delete node.tOwned;
  21. + for (i = tOwned.length - 1; i >= 0; i--) cleanNode(tOwned[i]);
  22. }
  23. if (Transition && Transition.running && node.pure) {
  24. reset(node, true);
  25. } else if (node.owned) {
  26. - for (i = node.owned.length - 1; i >= 0; i--) cleanNode(node.owned[i]);
  27. + const owned = node.owned;
  28. node.owned = null;
  29. + for (i = owned.length - 1; i >= 0; i--) cleanNode(owned[i]);
  30. }
  31. if (node.cleanups) {
  32. - for (i = node.cleanups.length - 1; i >= 0; i--) node.cleanups[i]();
  33. + const cleanups = node.cleanups;
  34. node.cleanups = null;
  35. + for (i = cleanups.length - 1; i >= 0; i--) cleanups[i]();
  36. }
  37. if (Transition && Transition.running) node.tState = 0;else node.state = 0;
  38. delete node.sourceMap;
  39. diff --git a/dist/dev.js b/dist/dev.js
  40. index ea5e4bc..a2e2d59 100644
  41. --- a/dist/dev.js
  42. +++ b/dist/dev.js
  43. @@ -762,6 +762,8 @@ function runComputation(node, value, time) {
  44. if (node.updatedAt != null && "observers" in node) {
  45. writeSignal(node, nextValue, true);
  46. } else if (Transition && Transition.running && node.pure) {
  47. + // On first computation during transition, also set committed value #2046
  48. + if (!Transition.sources.has(node)) node.value = nextValue;
  49. Transition.sources.add(node);
  50. node.tValue = nextValue;
  51. } else node.value = nextValue;
  52. @@ -985,18 +987,21 @@ function cleanNode(node) {
  53. }
  54. }
  55. if (node.tOwned) {
  56. - for (i = node.tOwned.length - 1; i >= 0; i--) cleanNode(node.tOwned[i]);
  57. + const tOwned = node.tOwned;
  58. delete node.tOwned;
  59. + for (i = tOwned.length - 1; i >= 0; i--) cleanNode(tOwned[i]);
  60. }
  61. if (Transition && Transition.running && node.pure) {
  62. reset(node, true);
  63. } else if (node.owned) {
  64. - for (i = node.owned.length - 1; i >= 0; i--) cleanNode(node.owned[i]);
  65. + const owned = node.owned;
  66. node.owned = null;
  67. + for (i = owned.length - 1; i >= 0; i--) cleanNode(owned[i]);
  68. }
  69. if (node.cleanups) {
  70. - for (i = node.cleanups.length - 1; i >= 0; i--) node.cleanups[i]();
  71. + const cleanups = node.cleanups;
  72. node.cleanups = null;
  73. + for (i = cleanups.length - 1; i >= 0; i--) cleanups[i]();
  74. }
  75. if (Transition && Transition.running) node.tState = 0;else node.state = 0;
  76. delete node.sourceMap;
  77. diff --git a/dist/server.cjs b/dist/server.cjs
  78. index e715309..188ba81 100644
  79. --- a/dist/server.cjs
  80. +++ b/dist/server.cjs
  81. @@ -127,12 +127,14 @@ function onCleanup(fn) {
  82. }
  83. function cleanNode(node) {
  84. if (node.owned) {
  85. - for (let i = 0; i < node.owned.length; i++) cleanNode(node.owned[i]);
  86. + const owned = node.owned;
  87. node.owned = null;
  88. + for (let i = 0; i < owned.length; i++) cleanNode(owned[i]);
  89. }
  90. if (node.cleanups) {
  91. - for (let i = 0; i < node.cleanups.length; i++) node.cleanups[i]();
  92. + const cleanups = node.cleanups;
  93. node.cleanups = null;
  94. + for (let i = 0; i < cleanups.length; i++) cleanups[i]();
  95. }
  96. }
  97. function catchError(fn, handler) {
  98. diff --git a/dist/server.js b/dist/server.js
  99. index d5f8803..320d9af 100644
  100. --- a/dist/server.js
  101. +++ b/dist/server.js
  102. @@ -125,12 +125,14 @@ function onCleanup(fn) {
  103. }
  104. function cleanNode(node) {
  105. if (node.owned) {
  106. - for (let i = 0; i < node.owned.length; i++) cleanNode(node.owned[i]);
  107. + const owned = node.owned;
  108. node.owned = null;
  109. + for (let i = 0; i < owned.length; i++) cleanNode(owned[i]);
  110. }
  111. if (node.cleanups) {
  112. - for (let i = 0; i < node.cleanups.length; i++) node.cleanups[i]();
  113. + const cleanups = node.cleanups;
  114. node.cleanups = null;
  115. + for (let i = 0; i < cleanups.length; i++) cleanups[i]();
  116. }
  117. }
  118. function catchError(fn, handler) {
  119. diff --git a/dist/solid.cjs b/dist/solid.cjs
  120. index 7c133a2..5ef1501 100644
  121. --- a/dist/solid.cjs
  122. +++ b/dist/solid.cjs
  123. @@ -717,6 +717,8 @@ function runComputation(node, value, time) {
  124. if (node.updatedAt != null && "observers" in node) {
  125. writeSignal(node, nextValue, true);
  126. } else if (Transition && Transition.running && node.pure) {
  127. + // On first computation during transition, also set committed value #2046
  128. + if (!Transition.sources.has(node)) node.value = nextValue;
  129. Transition.sources.add(node);
  130. node.tValue = nextValue;
  131. } else node.value = nextValue;
  132. @@ -938,18 +940,21 @@ function cleanNode(node) {
  133. }
  134. }
  135. if (node.tOwned) {
  136. - for (i = node.tOwned.length - 1; i >= 0; i--) cleanNode(node.tOwned[i]);
  137. + const tOwned = node.tOwned;
  138. delete node.tOwned;
  139. + for (i = tOwned.length - 1; i >= 0; i--) cleanNode(tOwned[i]);
  140. }
  141. if (Transition && Transition.running && node.pure) {
  142. reset(node, true);
  143. } else if (node.owned) {
  144. - for (i = node.owned.length - 1; i >= 0; i--) cleanNode(node.owned[i]);
  145. + const owned = node.owned;
  146. node.owned = null;
  147. + for (i = owned.length - 1; i >= 0; i--) cleanNode(owned[i]);
  148. }
  149. if (node.cleanups) {
  150. - for (i = node.cleanups.length - 1; i >= 0; i--) node.cleanups[i]();
  151. + const cleanups = node.cleanups;
  152. node.cleanups = null;
  153. + for (i = cleanups.length - 1; i >= 0; i--) cleanups[i]();
  154. }
  155. if (Transition && Transition.running) node.tState = 0;else node.state = 0;
  156. }
  157. diff --git a/dist/solid.js b/dist/solid.js
  158. index 656fd26..6e0038c 100644
  159. --- a/dist/solid.js
  160. +++ b/dist/solid.js
  161. @@ -715,6 +715,8 @@ function runComputation(node, value, time) {
  162. if (node.updatedAt != null && "observers" in node) {
  163. writeSignal(node, nextValue, true);
  164. } else if (Transition && Transition.running && node.pure) {
  165. + // On first computation during transition, also set committed value #2046
  166. + if (!Transition.sources.has(node)) node.value = nextValue;
  167. Transition.sources.add(node);
  168. node.tValue = nextValue;
  169. } else node.value = nextValue;
  170. @@ -936,18 +938,21 @@ function cleanNode(node) {
  171. }
  172. }
  173. if (node.tOwned) {
  174. - for (i = node.tOwned.length - 1; i >= 0; i--) cleanNode(node.tOwned[i]);
  175. + const tOwned = node.tOwned;
  176. delete node.tOwned;
  177. + for (i = tOwned.length - 1; i >= 0; i--) cleanNode(tOwned[i]);
  178. }
  179. if (Transition && Transition.running && node.pure) {
  180. reset(node, true);
  181. } else if (node.owned) {
  182. - for (i = node.owned.length - 1; i >= 0; i--) cleanNode(node.owned[i]);
  183. + const owned = node.owned;
  184. node.owned = null;
  185. + for (i = owned.length - 1; i >= 0; i--) cleanNode(owned[i]);
  186. }
  187. if (node.cleanups) {
  188. - for (i = node.cleanups.length - 1; i >= 0; i--) node.cleanups[i]();
  189. + const cleanups = node.cleanups;
  190. node.cleanups = null;
  191. + for (i = cleanups.length - 1; i >= 0; i--) cleanups[i]();
  192. }
  193. if (Transition && Transition.running) node.tState = 0;else node.state = 0;
  194. }