Skip to content

deps,lib,tools: remove jitless and lite modes - #66459

Open
ShogunPanda wants to merge 3 commits into
nodejs:mainfrom
ShogunPanda:no-jitless
Open

ShogunPanda wants to merge 3 commits into
nodejs:mainfrom
ShogunPanda:no-jitless

Conversation

@ShogunPanda

Copy link
Copy Markdown
Contributor

Summary

Remove support for jitless execution and V8 lite mode. Built-in functionality, including fetch() through Undici and TypeScript through Amaro, requires WebAssembly; supporting configurations without it leaves Node.js partially functional.

Changes

  • Reject jitless and lite-mode flags through CLI, NODE_OPTIONS, and V8’s runtime flag API.
  • Remove --v8-lite-mode build support, always enable WebAssembly, and reject interpreter-only V8 build defines.
  • Remove WebAssembly availability guards from TypeScript and frozen intrinsics, and retire ERR_WEBASSEMBLY_NOT_SUPPORTED.
  • Replace jitless compatibility coverage with flag-rejection and WebAssembly coverage.
  • Update platform requirements, CLI documentation, and the manual.

Notes

  • Environments that prohibit runtime executable-memory allocation lose the jitless execution option.
  • Downstream V8 flag changes must be preserved during V8 updates.

Assisted-By: OpenAI:GPT-6 Astra Ultrafast <openai/gpt-6-astra-ultrafast>

Signed-off-by: Paolo Insogna <paolo@cowtech.it>
@nodejs-github-bot

Copy link
Copy Markdown
Collaborator

Review requested:

  • @nodejs/build
  • @nodejs/config
  • @nodejs/gyp
  • @nodejs/security-wg
  • @nodejs/tsc
  • @nodejs/v8-update

@nodejs-github-bot nodejs-github-bot added lib / src Issues and PRs involving general changes in the lib/ or src/ directories. needs-ci PRs that need a full CI run. labels Oct 2, 2026
@marco-ippolito marco-ippolito added the semver-major PRs that contain breaking changes and should be released in the next major version. label Oct 2, 2026

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These are going to require perpetual V8 floating patches, are they strictly necessary? eg. can we override --no-jitless in InitializeNodeWithArgsInternal?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done. How about now?

@codecov

codecov Bot commented Oct 2, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 90.41%. Comparing base (463711a) to head (510cc12).

Additional details and impacted files
@@            Coverage Diff             @@
##             main   #66459      +/-   ##
==========================================
- Coverage   90.43%   90.41%   -0.02%     
==========================================
  Files         791      791              
  Lines      275604   275594      -10     
  Branches    52849    52848       -1     
==========================================
- Hits       249239   249188      -51     
- Misses      16770    16815      +45     
+ Partials     9595     9591       -4     
Files with missing lines Coverage Δ
lib/internal/errors.js 98.81% <ø> (-0.01%) ⬇️
lib/internal/freeze_intrinsics.js 97.04% <100.00%> (-0.02%) ⬇️
lib/internal/util.js 98.48% <ø> (-0.61%) ⬇️
src/node_options.cc 81.58% <ø> (-0.02%) ⬇️

... and 29 files with indirect coverage changes

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

Signed-off-by: Paolo Insogna <paolo@cowtech.it>
@ShogunPanda ShogunPanda added the request-ci Add this label to start a Jenkins CI on a PR. Only starts once the PR has an approving review. label Oct 3, 2026
Signed-off-by: Paolo Insogna <paolo@cowtech.it>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

lib / src Issues and PRs involving general changes in the lib/ or src/ directories. needs-ci PRs that need a full CI run. request-ci Add this label to start a Jenkins CI on a PR. Only starts once the PR has an approving review. semver-major PRs that contain breaking changes and should be released in the next major version.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants