mirror of
https://github.com/morluto/rea
synced 2026-10-26 14:25:49 -04:00
perf(javascript): index configuration and module lookups
This commit is contained in:
@@ -16,6 +16,7 @@ import type {
|
||||
ElectronSenderValidationFinding,
|
||||
ElectronUtilityProcessFinding,
|
||||
} from "./electronStaticAnalysisTypes.js";
|
||||
import { JavaScriptModuleRangeIndex } from "./javascriptStaticAnalysisFindings.js";
|
||||
|
||||
/** Source offsets for one recovered bundle module factory. */
|
||||
export interface JavaScriptModuleRange {
|
||||
@@ -45,7 +46,7 @@ export interface JavaScriptAnalysisAccumulator {
|
||||
readonly senderValidations: LocatedJavaScriptFinding<ElectronSenderValidationFinding>[];
|
||||
readonly utilityProcesses: LocatedJavaScriptFinding<ElectronUtilityProcessFinding>[];
|
||||
readonly nativeAddonBindings: LocatedJavaScriptFinding<ElectronNativeAddonBindingFinding>[];
|
||||
readonly modules: JavaScriptModuleRange[];
|
||||
readonly moduleRangeIndex: JavaScriptModuleRangeIndex;
|
||||
readonly seen: Set<string>;
|
||||
visitedNodes: number;
|
||||
unknownFindings: number;
|
||||
@@ -92,22 +93,23 @@ export interface LocatedJavaScriptFindingInput<
|
||||
}
|
||||
|
||||
/** Create isolated mutable state for one source analysis. */
|
||||
export const createJavaScriptAnalysisAccumulator =
|
||||
(): JavaScriptAnalysisAccumulator => ({
|
||||
references: [],
|
||||
endpoints: [],
|
||||
storage: [],
|
||||
roles: [],
|
||||
sourceMaps: [],
|
||||
registrations: [],
|
||||
browserWindows: [],
|
||||
contextBridgeApis: [],
|
||||
ipc: [],
|
||||
senderValidations: [],
|
||||
utilityProcesses: [],
|
||||
nativeAddonBindings: [],
|
||||
modules: [],
|
||||
seen: new Set(),
|
||||
visitedNodes: 0,
|
||||
unknownFindings: 0,
|
||||
});
|
||||
export const createJavaScriptAnalysisAccumulator = (
|
||||
sourceLength: number,
|
||||
): JavaScriptAnalysisAccumulator => ({
|
||||
references: [],
|
||||
endpoints: [],
|
||||
storage: [],
|
||||
roles: [],
|
||||
sourceMaps: [],
|
||||
registrations: [],
|
||||
browserWindows: [],
|
||||
contextBridgeApis: [],
|
||||
ipc: [],
|
||||
senderValidations: [],
|
||||
utilityProcesses: [],
|
||||
nativeAddonBindings: [],
|
||||
moduleRangeIndex: new JavaScriptModuleRangeIndex(sourceLength),
|
||||
seen: new Set(),
|
||||
visitedNodes: 0,
|
||||
unknownFindings: 0,
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user