ReviewOS

home-lang/home

Activate Bun.Transpiler tsconfig lifetime corpus

#90
Closed chris opened this 9 days ago ·
9 days ago

Home already carries Bun JSTranspiler tsconfig ownership semantics, but the current upstream js/bun/transpiler/transpiler-tsconfig-uaf.test.ts fixture is still replaced with a synthetic TODO. Activating it exposes a native corpus bridge gap: tsconfig JSX mode and pragma fields are dropped, so repeated transforms ignore jsxFactory, jsxFragmentFactory, and jsxImportSource.

Acceptance criteria:

  • execute the unmodified current Bun fixture instead of a TODO
  • preserve tsconfig state across repeated async and sync transforms
  • carry JSX runtime, factory, fragment, and import source into real parser options
  • clean up partially constructed native handles on every failure path
  • pass the exact fixture (3/3) and the complete home_test gate

This is the next bounded porting slice under #66 and #81.

9 days ago

Completed and pushed to main in 4524ded (feat(test): activate transpiler tsconfig lifetime corpus).

What landed:

  • activated the unmodified current Bun transpiler-tsconfig-uaf.test.ts fixture
  • preserved tsconfig JSX runtime, factory, fragment factory, and import source on the persistent native transpiler handle
  • applied those values through the real parser JSX pragma options
  • made partial native-handle construction cleanup deterministic on every callback failure path
  • added a repository regression that executes the full upstream fixture

Verification:

  • exact upstream fixture: 3 passed, 0 failed, 0 unsupported, 0 todo
  • debug build: passed
  • Zig formatting and diff checks: passed
  • complete home_test gate: passed with zero failures

Commit author and committer are Chris chrisbreuer93@gmail.com; no coauthors.

Sign in to comment on this issue.