Skip to content

Releases: pioug/rolldown-plugin-angularjs-annotate

Release list

v0.2.0

Choose a tag to compare

@pioug pioug released this 27 Jul 02:16
466ead9

Highlights

This release focuses on transform throughput while preserving annotation output and the public plugin API.

  • Add a native Rolldown transform.filter.code so modules without AngularJS annotation signals can be rejected before the transform handler and parser run.
  • Combine AST indexing and scope traversal, classify candidates during traversal, and defer analysis work until it is needed.
  • Prune hot traversal paths for leaf nodes, declaration names, literals, identifiers, duplicate declarators, and irrelevant calls or comments.
  • Reduce transform-local allocations by reusing callbacks, parameter arrays, matchers, node classifications, and candidate indexes.
  • Upgrade magic-string to 1.1 and verify generated mappings with @jridgewell/trace-mapping.

Performance

A paired local benchmark compared the core annotation pipeline in v0.2.0 with v0.1.0 over 662 JavaScript and TypeScript files from BandLab:

Metric Result
Core annotation time ~70.8% lower
Equivalent throughput ~3.4×
Transformed output Byte-identical for 662/662 files

These figures are specific to the measured machine and corpus and cover the core annotation work rather than complete Rolldown build time. Projects can see additional end-to-end savings from the native code filter because irrelevant modules no longer enter the JavaScript transform handler; that benefit depends on project composition.

The gains come from many deliberately small hot-path changes rather than a more complex annotation strategy: fewer complete AST walks, less indexing, earlier candidate rejection, lazy sorting and comment processing, cached node classification, and fewer temporary arrays, sets, and closures.

Full changelog: v0.1.0...v0.2.0

v0.1.0

Choose a tag to compare

@pioug pioug released this 20 Jul 03:09
366c86a
  • Convert babel-plugin-angularjs-annotate to a Rolldown plugin