Skip to content

2.1.0

Choose a tag to compare

@RIAEvangelist RIAEvangelist released this 22 Aug 03:22

Highlights

  • Replaces WeakMap-backed modern runtime state with native private fields while preserving the Stack API and LIFO behavior.
  • Uses one native ESM implementation for both import and require on Node.js 22.13.0 and newer; the classic browser build and es5.js fallback remain available.
  • Adds reproducible version-to-version benchmarks, visual charts in the README, and focused Why and Benchmarks documentation pages.
  • Adds the sandboxed editable Playground, split Unit/Functional/Integration/Regression catalogs, and numeric-only trusted npm publishing.

Measured performance

Against easy-stack 2.0.0 on the checked-in benchmark protocol:

  • Node.js 22.13.0: construction 17.92× faster; schedule-and-drain turns 2.40× faster.
  • Node.js 24.18.0: construction 18.50× faster; schedule-and-drain turns 1.57× faster.

Results compare easy-stack versions on the recorded hardware and workload; they are not cross-library claims. Run npm run benchmark to reproduce the protocol.

Compatibility

The minimum supported Node.js version is now 22.13.0 so CommonJS require() and ESM import resolve to the same implementation without the experimental warning. Review the migration guide before upgrading from 2.0.x.

Verification

  • 86 unique vanilla-test cases across four non-duplicated suites
  • Node.js 22.13.0 and 24 on Linux, macOS, and Windows
  • 100% statements, branches, functions, and lines in Node and Chrome coverage
  • Packed-artifact install/import/require smoke and real-Chrome sandbox regressions
  • Zero runtime dependencies

Documentation: https://riaevangelist.github.io/easy-stack/
Benchmarks: https://riaevangelist.github.io/easy-stack/benchmarks/
Migration: https://riaevangelist.github.io/easy-stack/migration/