perf(javascript): reduce analysis and source-map work (#955)

* perf(javascript): reduce semantic traversal overhead

* perf(source-maps): reuse validated regular map rows
This commit is contained in:
morluto
2026-10-07 20:33:35 +08:00
committed by GitHub
parent dda8e6a728
commit c7530f9a81
6 changed files with 59 additions and 10 deletions
@@ -151,6 +151,9 @@ describe("source-map layout admission", () => {
expect(() => trace({ ...leaf, mappings })).toThrow();
},
);
it("validates regular-map source indexes after reusing its decoded rows", () => {
expect(() => trace({ ...leaf, mappings: "ACAA" })).toThrow(/index/u);
});
it("rejects huge indexed offsets before upstream row allocation", () => {
expect(() =>
trace({
+3 -1
View File
@@ -81,10 +81,12 @@ const decodeValidatedMap = (
inspected: ReturnType<typeof inspectSourceMap>,
url: string,
) => {
let regularRows: ReturnType<typeof decodedMappings> | undefined;
for (const leaf of inspected.leaves) {
const decoded = decodedMappings(
new TraceMap(JSON.stringify(leaf.map), url),
);
if (inspected.format === "regular") regularRows = decoded;
for (const [line, row] of decoded.entries())
for (const segment of row) {
if (
@@ -112,7 +114,7 @@ const decodeValidatedMap = (
}
}
const map = new AnyMap(inspected.jsonText, url);
const rows = decodedMappings(map);
const rows = regularRows ?? decodedMappings(map);
for (const row of rows)
for (const segment of row) {
if (