nodesource / nodesource/distributions

temporal global missing by default on EL8 build of Node.js v26.4.0 despite v8_enable_temporal_support=1 (requires --harmony-temporal)

Open
#1,945 2 comments 1 reaction 1 assignee View on GitHub

@riosje is already working on this.

Since Jul 13, 2026.

Dominant language
Shell
Stars
13.8k
Forks
3.1k
PR merge metrics
No merged PRs in 30d

Description

Describe your bug

On Node.js v26.4.0 installed via the NodeSource RPM repo on AlmaLinux 8, the Temporal global is not defined by default, even though Node 26 is documented to ship Temporal unflagged:

$ node --version
v26.4.0
$ node -e "console.log(typeof Temporal)"
undefined
$ node -e "console.log(Temporal.Now.instant())"
ReferenceError: Temporal is not defined

However, the binary reports Temporal support as compiled in:

$ node -e "console.log(process.config.variables.v8_enable_temporal_support)"
1

And Temporal does work if the legacy flag is passed explicitly:

$ node --harmony-temporal -e "console.log(typeof Temporal)"
object

This suggests Temporal was compiled into this build (v8_enable_temporal_support: 1), but whatever runtime switch is supposed to expose it unflagged by default (per the v26.0.0 release notes) isn't taking effect on this build — it still behaves like a pre-26 experimental build gated behind --harmony-temporal.

Distribution information

  • OS: AlmaLinux 8
  • Node.js version: v26.4.0 (installed from NodeSource RPM repo, node_26.x)
  • Architecture: (please confirm — x86_64 or aarch64)

Diagnostics already collected

$ node --version
v26.4.0

$ node -e "console.log(process.platform, process.arch)"
linux <arch>

$ node -e "console.log(process.config.variables.v8_enable_temporal_support)"
1

$ node -e "console.log(process.config.variables.node_shared_openssl, process.config.variables.icu_small, process.config.variables.node_use_bundled_v8)"
false false true

$ node -e "console.log(process.config.variables.with_intl, process.config.variables.icu_gyp_path, process.config.variables.node_shared_icu)"
undefined tools/icu/icu-generic.gyp undefined

$ node -e "console.log(typeof Temporal)"
undefined

$ node --harmony-temporal -e "console.log(typeof Temporal)"
object

icu_gyp_path pointing at tools/icu/icu-generic.gyp suggests bundled (not system/shared) ICU is in use, which would argue against the known "Temporal disabled when compiling with shared ICU" issue (nodejs/node#62676) — but I haven't been able to fully rule that out from userland config inspection alone.

Expected behavior

Per the Node.js 26 release notes, Temporal should be available as a global without any flag:

"The Temporal API is now enabled by default in Node.js 26."

Actual behavior

Temporal is undefined unless --harmony-temporal is passed explicitly, despite the build reporting v8_enable_temporal_support: 1.

Additional context

I'm aware of related but distinct upstream issues:

  • nodejs/docker-node#2486 (Alpine build missing Temporal entirely due to no Rust/Cargo on the builder — v8_enable_temporal_support would be 0 there, not 1)
  • nodejs/node#62676 (Temporal fails to compile with --with-intl=system-icu or --without-intl)

This report differs from both: the flag reports Temporal as compiled in, but it's still runtime-gated behind the old experimental flag name. This looks like it could be a NodeSource build/packaging configuration issue rather than an upstream Node.js bug, but I wanted to flag it here first in case others are hitting it on EL8/EL9 builds. Happy to provide additional diagnostics if useful.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.