Skip to content

Conversation

@BlobMaster41
Copy link

@BlobMaster41 BlobMaster41 commented Jan 27, 2026

The main motivation of this PR is the update of binaryen from v123 to v125.

Updates binaryen to 125.0.0-nightly.20251209 with corresponding ExpressionId enum changes in src/module.ts. Also upgrades ESLint to v9 with flat config migration, TypeScript, and other dependencies.

Refactors catch blocks in JS files to omit unused error variables for cleaner code (due to new ts version).

Introduces a new eslint.config.js (v9) using the flat config format with tailored rules for JavaScript, TypeScript, AssemblyScript, and test files.

Changes proposed in this pull request:

⯈ Binaryen 123.0.0-nightly.20250530 -> 125.0.0-nightly.20251209:

  • v124 (Sept 2024): Added GC Custom Descriptors, Stack Switching, Branch Hinting, string lifting pass
  • v125 (Nov 2025): Added ReorderTypes optimization, cross-module fuzzing, changed call cost modeling
  • Breaking: ExpressionId values shifted (SIMDExtract 29->30, gaps at 53, 84-85, 93)
  • Updated src/module.ts enum to match binaryen 125 IDs
  • Fixed scripts/build-web.js for npm lockfileVersion 3 format (pkg.packages["node_modules/..."])
  • Regenerated 34 test fixtures for new binaryen output (minimal changes)

⯈ ESLint 8.57.1 -> 9.39.2 with flat config migration:

  • Replaced .eslintrc.cjs and .eslintignore with eslint.config.js
  • Added @eslint/js, typescript-eslint, globals packages
  • Simplified lint script to eslint --max-warnings 0. (v9)
  • Removed obsolete eslint-disable directives in util/web.d.ts and util/web.js

⯈ Other dependency upgrades:

  • typescript: ^5.7.3 -> ^5.9.3
  • @typescript-eslint/eslint-plugin: ^5.62.0 -> ^8.54.0
  • @typescript-eslint/parser: ^5.62.0 -> ^8.54.0
  • @types/node: ^18.19.75 -> ^25.0.10
  • Added typescript-eslint ^8.54.0
  • diff: ^7.0.0 -> ^8.0.3
  • esbuild: ^0.25.0 -> ^0.27.2
  • glob: ^10.4.5 -> ^13.0.0
  • long: ^5.2.4 -> ^5.3.2
  • globals ^15.14.0 -> ^17.1.0

⯈ Node engine >=20 -> >=24 (LTS):

  • Node 20 will be deprecated on April 30, 2026.

  • Required for @types/node 25.x compatibility

  • Allows catch {} syntax (without variable) to fix unused variable warnings

  • Fixed in: cli/index.js, lib/loader/tests/index.js, tests/allocators/index.js, tests/allocators/runner.js

  • I've read the contributing guidelines

  • I've added my name and email to the NOTICE file

Updates dependencies in package.json and package-lock.json, including major upgrades to ESLint, TypeScript and binaryen. Refactors catch blocks in JS files to omit unused error variables for cleaner code (due to new ts version).

Introduces a new eslint.config.js (v9) using the flat config format with tailored rules for JavaScript, TypeScript, AssemblyScript, and test files.
Refactors the TLSF allocator WebAssembly text (WAT) files for improved clarity and maintainability, including renaming variables, restructuring local variables, and updating function signatures. Updates ESLint configuration to allow invalid AST, disables additional rules, and narrows ignore patterns. Bumps dev dependencies: @typescript-eslint/* and globals to latest versions, and updates Node.js engine requirement to >=22. Removes an unnecessary ESLint directive in std/portable/index.d.ts.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant