@jsenv/navi 0.29.309 → 0.29.310

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.
@@ -2837,7 +2837,17 @@ const updateActions = ({
2837
2837
  * - willRunSet: actions that will be run
2838
2838
  * - willPromoteSet: prerun actions that become run-requested
2839
2839
  * - stays*Set: actions that remain in their current state
2840
+ *
2841
+ * A proxy in any of the sets stands for the action it currently targets,
2842
+ * exactly as proxy.run()/rerun()/reset() do: what enters activationWeakSet
2843
+ * is always the target. A proxy kept in there would retarget on its own —
2844
+ * to a never-run child once its params go falsy — and getActivationInfo
2845
+ * would then meet an IDLE member on every later update of the document.
2840
2846
  */
2847
+ prerunSet = resolveActionProxies(prerunSet);
2848
+ runSet = resolveActionProxies(runSet);
2849
+ rerunSet = resolveActionProxies(rerunSet);
2850
+ resetSet = resolveActionProxies(resetSet);
2841
2851
 
2842
2852
  const { runningSet, settledSet } = getActivationInfo();
2843
2853
 
@@ -3162,6 +3172,14 @@ ${lines.join("\n")}`);
3162
3172
  };
3163
3173
  };
3164
3174
 
3175
+ const resolveActionProxies = (actionSet) => {
3176
+ const resolvedSet = new Set();
3177
+ for (const action of actionSet) {
3178
+ resolvedSet.add(action.isProxy ? action.getCurrentAction() : action);
3179
+ }
3180
+ return resolvedSet;
3181
+ };
3182
+
3165
3183
  const NO_PARAMS = { __no_params__: true };
3166
3184
  const mergeActionParams = (currentParams, newParams) => {
3167
3185
  // The order of these two checks is load-bearing. Checking `undefined` first