Skip to content

Releases: RetireJS/ASTronomical

3.0.7

11 Jun 08:33
5416a23

Choose a tag to compare

[3.0.7] - 2026-06-11

Performance upgrades

  • Store scope ids as a flat scopeId property on AST nodes instead of a nested extra object, removing an object allocation per node
  • Materialize NodePath objects lazily — only when a selector actually matches — instead of for every visited node (ancestors are materialized on demand, so ../ filter chains are unchanged)
  • Key the per-depth filter map by AST node instead of query node, making filter lookup O(1) instead of scanning filters accumulated across siblings
  • Remove dead per-depth filter stack and allocate filter-result arrays lazily (most matches carry no filter)
  • Skip the binding-registration call for already-registered subtrees and avoid wrapper-array allocations in the binding pass
  • Gate debug-only statistics counters that did a hash write per created path
  • ~10% faster on the retire.js detection suite; retained heap during a query on large files reduced by more than half

Performance upgrades

  • Index active descendant (//Type) selectors by node type so each visited node only checks the selectors that can match its type, instead of scanning every active descendant selector (arbitrary-depth matching unchanged)
  • Lazily allocate the per-depth filter map, avoiding a Map allocation for every visited node
  • Replace the per-node descendant-presence scan and slice() with O(1) checks
  • ~23% faster querying on large minified/bundled files

3.0.6

05 Jun 09:23
774504c

Choose a tag to compare

[3.0.6] - 2026-06-05

Performance upgrades

  • Index active descendant (//Type) selectors by node type so each visited node only checks the selectors that can match its type, instead of scanning every active descendant selector (arbitrary-depth matching unchanged)
  • Lazily allocate the per-depth filter map, avoiding a Map allocation for every visited node
  • Replace the per-node descendant-presence scan and slice() with O(1) checks
  • ~23% faster querying on large minified/bundled files

3.0.5

15 May 09:24
9bfa2f9

Choose a tag to compare

[3.0.5] - 2026-05-15

  • Upgrade meriyah to 7.x (sourceType replaces module: boolean)
  • Disable regex validation (validateRegex: false) during parsing

3.0.4

15 May 09:10
9448884

Choose a tag to compare

[3.0.4] - 2026-05-15

  • Add JSX parsing support by falling back to meriyah's jsx option when non-JSX parsing fails (tries both module and script modes)

3.0.3

07 Mar 08:21
3.0.3
e1b9263

Choose a tag to compare

[3.0.3] - 2026-03-07

  • Fix problem with resolving TemplateElement values in filters

3.0.2

07 Mar 08:05
3.0.2
07cd10d

Choose a tag to compare

[3.0.2] - 2026-03-07

  • Fix problem with resolving TemplateElement values in filters

3.0.1

07 Mar 07:49
3.0.1
421dc7e

Choose a tag to compare

[3.0.1] - 2026-03-07

  • Fix problem with resolving TemplateElement values
  • Update dependencies and fix related stuff

3.0.0

18 Jan 08:38
3.0.0
2470dc1

Choose a tag to compare

Fix broken CJS/ESM dual build

v2.1.1-rc.1 performance

14 Oct 12:59
v2.1.1-rc.1
53df609

Choose a tag to compare

Pre-release

Memory/CPU usage updates

2.0.1

04 Jun 06:49
2.0.1
72d901e

Choose a tag to compare

Reduce memory