unstale

npm / yuku-parser

yuku-parser

What changed in yuku-parser 0.19 to 0.20, from its official release notes, upgrade guides and advisories. Also covers yuku-codegen. Sources checked 2026-10-19.

12 breaking1 security2 new APIs and options4 performance3 behavior and defaults10 fixes and other

See which of these apply to your code, ranked, in your agent:

npx @unstale/cli init

@unstale/cli on npm

yuku-parser 0.2029 changes

Breaking changes 11

  • yuku/types no longer exports Core.

    0.20.0release notes

  • The semantic traverser's Ctx.init now takes a mode.

    0.20.0release notes

  • Ctx.parentOf is removed.

    0.20.0release notes

  • The Zig build option -Dparser-extension is replaced by -Ddialect.

    0.20.0release notes

  • Node.js 16.4 or newer is required.

    0.20.0release notes

  • SymbolTracker.init now takes a mode.

    0.20.0release notes

  • Browsers need WebAssembly SIMD, such as Safari 16.4 or newer.

    0.20.0release notes

  • Yuku now ships as one package; install yuku and import from yuku, yuku/analyzer, yuku/ast, yuku/codegen, and yuku/types.

    0.20.0release notes

  • The yuku-core package is removed because everything runs on the WebAssembly module inside yuku.

    0.20.0release notes

  • The @yuku-core/binding-* native packages are removed because everything runs on the WebAssembly module inside yuku.

    0.20.0release notes

  • The @yuku-core/wasm package is removed because everything runs on the WebAssembly module inside yuku.

    0.20.0release notes

New APIs and options 2

  • Dialects let you add custom syntax to the parser in Zig, match it to files by extension, and pass it to parse and analyze through the wasm option.

    0.20.0release notes

  • The wasm option lets parse and analyze receive dialects.

    0.20.0release notes

Performance 4

  • generate is 12 to 17% faster with a source map, and 7 to 13% faster without one.

    0.20.1release notes

  • Parsing is 13 to 22% faster.

    0.20.0release notes

  • Repeated calls reuse memory, making batches that mix large and small files much faster.

    0.20.0release notes

  • semanticErrors is 29 to 49% cheaper because it skips the full semantic model.

    0.20.0release notes

Behavior and default changes 2

  • unwrap from yuku/ast accepts any node, null, or undefined, and returns anything it does not unwrap as it is.

    0.20.1release notes

  • Yuku runs unchanged in Node.js, Bun, Deno, browsers, and Workers, with no setup before the first parse.

    0.20.0release notes

Fixes and other changes 10

  • Parsing works on big-endian hosts such as s390x.

    0.20.1release notes

  • Yuku runs in Vercel's Edge Runtime, which loads it through the edge-light condition.

    0.20.1release notes

  • A for (init;;) head parses in correctly inside parentheses, literals, templates, functions, and classes.

    0.20.1release notes

  • generate keeps the braces in import type {} from "m", which previously printed as invalid import type "m".

    0.20.1release notes

  • generate keeps parentheses around a ++ or -- operand followed by a comment that breaks the line.

    0.20.1release notes

  • JSX text after a closing fragment parses, so <p><>a</> — b</p> works.

    0.20.1release notes

  • module.imports lists export {} from "m" as a side-effect import, and import() or require() of a parenthesized string or a template literal without substitutions.

    0.20.1release notes

  • Source maps map a JSX attribute's string value, and a string key that minifying prints as a name, to its own column.

    0.20.1release notes

  • super() in a computed key of a class inside a derived constructor no longer reports an error.

    0.20.1release notes

  • TypeScript overloads of a private method no longer report a duplicate private name.

    0.20.1release notes

yuku-parser 0.193 changes

Breaking changes 1

  • Using Yuku as a Zig package now requires Zig 0.17.0 or later, so upgrade Zig before updating.

    0.19.0release notes

Security 1

  • Parsing an empty source now works correctly in runtimes like WebContainers, where leftover bytes could be read as input.

    0.19.0release notes

Behavior and default changes 1

  • generate prints any single node, such as an object property, rather than only a whole Program.

    0.19.0release notes