fix(javascript): track public CommonJS export receiver lifetimes (#3567)

* fix(javascript): track public CommonJS export receiver lifetimes

* fix(javascript): retain exports across uncertain identity effects
This commit is contained in:
鸡哥 authored and GitHub committed 2026-10-15 02:46:14 +08:00
1 parent 357996cc89
commit 75104040df
10 files changed
+502 -71

No files matched your search

@@ -70,6 +70,7 @@ import {
import { isJavaScriptRpcClientFactory } from "./javascriptRpcEndpoints.js";
import { createSemanticModuleInterop } from "./javascriptModuleInterop.js";
import { SemanticPropertyPathCoverage } from "./javascriptSemanticPropertyPaths.js";
import { indexCommonJsExportReceiversSteps } from "./javascriptCommonJsExportReceivers.js";
import type { JavaScriptModuleResolutionMode } from "./javascriptModuleResolutionMode.js";
interface BindPatternInput {
@@ -163,8 +164,9 @@ export function* analyzeParsedJavaScriptSemanticsSteps(
yield* collectDefinitionsSteps(file.program, state);
yield* indexJavaScriptAmbientWritesSteps(file.program, state);
yield* collectSemanticMemberMutationsSteps(file.program, state);
const commonJsReceivers = yield* indexCommonJsExportReceiversSteps(state);
yield* traverseJavaScriptAstSteps(file.program, {
enter: (node) => collectSemanticModuleLink(node, state),
enter: (node) => collectSemanticModuleLink(node, state, commonJsReceivers),
});
yield;
const references = yield* collectSemanticReferencesSteps(file.program, state);