fix(javascript): preserve capture timing and detached receiver authority

This commit is contained in:
morluto committed 2026-10-24 03:16:29 +08:00
1 parent f36893a1a2
commit da0480a665
3 files changed
+57 -2

No files matched your search

@@ -14,6 +14,7 @@ import {
import {
semanticCapturePosition,
semanticEscapeFollowsCapture,
semanticBindingEffectFollowsCapture,
semanticBindingPrecedesCapture,
semanticBindingAtRead,
} from "./javascriptSemanticMutationInitializers.js";
@@ -546,7 +547,19 @@ const evaluateBinding = (
}
let projected = invalidateSemanticMutationPaths(
value,
binding.memberWrites.map(({ path }) => path),
binding.memberWrites
.filter(
({ node }) =>
context.capturePoint === undefined ||
node === undefined ||
!semanticBindingEffectFollowsCapture(
binding,
context.capturePoint,
node,
context.state.parentsByNode,
),
)
.map(({ path }) => path),
);
for (const escape of binding.escapedPaths) {
// Escapes only invalidate object references; other lattice values survive.