fix(studio): keep atomic Acorn splits Recast-free

This commit is contained in:
James
2026-07-18 09:36:00 -04:00
parent 022e260ac3
commit 8dd7e3dfc5
2 changed files with 13 additions and 2 deletions
+4 -2
View File
@@ -2043,8 +2043,10 @@ async function foldAtomicCutFile(
for (const selector of result.skippedSelectors) skippedSelectors.add(selector);
}
if (script !== block.scriptText) {
const parser = await loadGsapParser();
script = parser.syncPositionHoldsBeforeKeyframes(script);
script =
writer === "acorn"
? syncPositionHoldsBeforeKeyframes(script)
: (await loadGsapParser()).syncPositionHoldsBeforeKeyframes(script);
after = block.replaceScript(script);
}
}
@@ -44,12 +44,21 @@ describe("GSAP writer capability matrix", () => {
source.indexOf("async function applyGsapMutations"),
source.indexOf("function executeGsapMutationAcorn"),
);
const atomicCutHelperBody = source.slice(
source.indexOf("async function foldAtomicCutFile"),
source.indexOf("function registerFileRoutes"),
);
expect(acornBody).not.toContain("loadGsapParser");
expect(mutationHelperBody).toContain('writer === "acorn"');
expect(mutationHelperBody).toContain("? syncPositionHoldsBeforeKeyframes(newScript)");
expect(mutationHelperBody).toContain(
"(await loadGsapParser()).syncPositionHoldsBeforeKeyframes",
);
expect(atomicCutHelperBody).toContain('writer === "acorn"');
expect(atomicCutHelperBody).toContain("? syncPositionHoldsBeforeKeyframes(script)");
expect(atomicCutHelperBody).toContain(
"(await loadGsapParser()).syncPositionHoldsBeforeKeyframes(script)",
);
});
it("renders every classified operation and keeps default blocked until parity is differential", () => {