release: WRNexusJS 0.8.0
This commit is contained in:
@@ -0,0 +1,23 @@
|
||||
import { expect, test } from "bun:test";
|
||||
import { analyzeOptimizations, generate, optimizeAst, parse } from "../src/index.ts";
|
||||
|
||||
test("compiler folds literal branches and reports optimization opportunities", () => {
|
||||
const ast = parse(`component Optimized {
|
||||
props { title: string = "Hello" }
|
||||
state count = 0
|
||||
state unused = 1
|
||||
functions {
|
||||
client function increment(): void { count++ }
|
||||
client function orphan(): void { unused++ }
|
||||
}
|
||||
style { .used { color: red } .unused-css { color: blue } }
|
||||
view { <section class="used"><h1>{title}</h1>{#if false}<p>dead</p>{:else}<button @click="increment">{count}</button>{/if}</section> }
|
||||
}`);
|
||||
const report = analyzeOptimizations(ast);
|
||||
expect(report.eliminatedBranches).toBeGreaterThan(0);
|
||||
expect(report.unusedHandlers).toContain("orphan");
|
||||
expect(report.unusedLocalCssClasses).toContain("unused-css");
|
||||
expect(report.constantProps).toContain("title");
|
||||
expect(optimizeAst(ast).ast.view).not.toEqual(ast.view);
|
||||
expect(generate(ast)).not.toContain("dead");
|
||||
});
|
||||
Reference in New Issue
Block a user