Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
56 commits
Select commit Hold shift + click to select a range
7d2bd59
deps: update undici to 7.19.0
nodejs-github-bot Jan 24, 2026
eedd3bb
deps: update undici to 7.19.1
nodejs-github-bot Jan 25, 2026
be644e2
src: throw RangeError on failed ArrayBuffer BackingStore allocation
legendecas Jan 25, 2026
b861451
process: do not truncate long strings in `--print`
mohd-akram Jan 25, 2026
da93e21
doc: move Security-Team from TSC to SECURITY
RafaelGSS Jan 25, 2026
a28ddd4
module: do not wrap module._load when tracing is not enabled
joyeecheung Jan 26, 2026
7725c8d
test: skip --build-sea tests on platforms where SEA is flaky
joyeecheung Jan 26, 2026
5c26087
tools: add LIEF to license builder
legendecas Jan 26, 2026
256fc67
test: update WPT for url to 81a2aed262
nodejs-github-bot Jan 27, 2026
a999edd
deps: update ngtcp2 to 1.20.0
nodejs-github-bot Jan 27, 2026
2eb8e9d
deps: update nghttp3 to 1.15.0
nodejs-github-bot Jan 27, 2026
945b141
test: fix flaky debugger test
islandryu Jan 27, 2026
0ceb8ca
doc: added `requestOCSP` option to `tls.connect`
ikeyan Jan 27, 2026
a782598
lib: unify ICU and no-ICU TextDecoder
ChALkeR Jan 27, 2026
0a952b8
test: ensure removeListener event fires for once() listeners
Han5991 Jan 27, 2026
71702c5
doc: restore @ChALkeR to collaborators
ChALkeR Jan 27, 2026
d5beb4f
tools: move Quic dependencies behind ad-hoc flag
aduh95 Jan 27, 2026
8f2083e
build: enable -DV8_ENABLE_CHECKS flag
islandryu Jan 28, 2026
796ff46
async_hooks: add trackPromises option to createHook()
joyeecheung Jan 28, 2026
39bea22
tools: update gyp-next to 0.21.1
nodejs-github-bot Jan 28, 2026
fb7868b
build,win: fix vs2022 compilation
StefanStojanovic Jan 28, 2026
150910d
build,test: add tests for binary linked with shared libnode
joyeecheung Jan 28, 2026
6fbb0b7
test: delay writing the files only on macOS
lpinca Jan 28, 2026
780e65c
deps: V8: cherry-pick c5ff7c4d6cde
legendecas Jan 14, 2026
8759db9
buffer: disallow ArrayBuffer transfer on pooled buffer
legendecas Jan 13, 2026
f16b532
deps: update corepack to 0.34.6
nodejs-github-bot Jan 28, 2026
6993386
sqlite: reserve vectors space
araujogui Jan 29, 2026
5fe2582
test_runner: add env option to run function
Ethan-Arrowood Jan 29, 2026
93938a4
stream: add bytes() method to stream/consumers
wantaekchoi Jan 29, 2026
9e26a15
deps: upgrade openssl sources to openssl-3.5.5
nodejs-github-bot Jan 27, 2026
2a74379
deps: update archs files for openssl-3.5.5
nodejs-github-bot Jan 27, 2026
3d68811
doc: regenerate `node.1` using `doc-kit`
avivkeller Jan 29, 2026
44b1927
lib: use StringPrototypeStartsWith from primordials in locks
kimtaejin3 Jan 29, 2026
c0dd982
test_runner: differentiate todo and failure styles
MoLow Jan 30, 2026
4726627
test: aix: unflake test_threadsafe_function/test flaky on AIX
sxa Jan 30, 2026
2c39a92
deps: update undici to 7.19.2
nodejs-github-bot Jan 30, 2026
0ef99de
build: aix: deoptimize implementation-visitor.cc with --shared
sxa Jan 30, 2026
fd8be14
test_runner: fix passing `expectFailure`
MoLow Jan 30, 2026
f05bad9
lib: recycle queues
ronag Jan 30, 2026
83b2bf8
test: split test-fs-watch-ignore-*
lpinca Jan 30, 2026
0fce52d
src: expose help texts into node-config-schema.json
pmarchini Aug 24, 2025
915d105
test_runner: update node-config-schema
pmarchini Jan 30, 2026
e62608b
src: improve textEncoder encode performance with simdutf
mertcanaltin Jan 30, 2026
45d25c4
sqlite: change approach to fix segfault SQLTagStore
louwers Jan 31, 2026
9c8d1b0
assert: fix loose deepEqual arrays with undefined and null failing
BridgeAR Feb 1, 2026
cbcfaf9
doc: update IBM/Red Hat volunteers with dedicated project time
BethGriggs Feb 1, 2026
a181d0c
url: update ada to v3.4.2 and support unicode 17
anonrig Feb 1, 2026
7e3eab5
doc: fix node-config-schema
ChALkeR Feb 1, 2026
4bea821
lib: use utf8 fast path for streaming TextDecoder
ChALkeR Jan 27, 2026
d23ee89
benchmark: add streaming TextDecoder benchmark
ChALkeR Jan 27, 2026
3ad4d9b
doc: align Buffer.concat documentation with behavior
gurgunday Feb 2, 2026
4cf94fa
net: add `setTOS` and `getTOS` to `Socket`
amyssnippet Feb 2, 2026
dce6570
src: add initial support for ESM in embedder API
joyeecheung Jan 26, 2026
4a2e184
sea: print error information when fs operations fail
joyeecheung Jan 29, 2026
b2fb829
build: add `--shared-lief` configure flag
aduh95 Jan 26, 2026
f8a81d1
2026-02-03, Version 25.6.0 (Current)
aduh95 Feb 2, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
build: enable -DV8_ENABLE_CHECKS flag
Fixes: #61301
PR-URL: #61327
Reviewed-By: Chengzhong Wu <legendecas@gmail.com>
  • Loading branch information
islandryu authored and aduh95 committed Jan 28, 2026
commit 8f2083e73a37c6344264948888c25ad07bc07a62
11 changes: 5 additions & 6 deletions configure.py
Original file line number Diff line number Diff line change
Expand Up @@ -1907,7 +1907,7 @@ def configure_library(lib, output, pkgname=None):


def configure_v8(o, configs):
set_configuration_variable(configs, 'v8_enable_v8_checks', release=1, debug=0)
set_configuration_variable(configs, 'v8_enable_v8_checks', release=0, debug=1)

o['variables']['v8_enable_webassembly'] = 0 if options.v8_lite_mode else 1
o['variables']['v8_enable_javascript_promise_hooks'] = 1
Expand Down Expand Up @@ -2537,11 +2537,10 @@ def make_bin_override():
del configurations['Release']['variables']
config_debug_vars = configurations['Debug']['variables']
del configurations['Debug']['variables']
output['conditions'].append(['build_type=="Release"', {
'variables': config_release_vars,
}, {
'variables': config_debug_vars,
}])
if options.debug:
variables = variables | config_debug_vars
else:
variables = variables | config_release_vars

# make_global_settings should be a root level element too
if 'make_global_settings' in output:
Expand Down
2 changes: 1 addition & 1 deletion doc/api/util.md
Original file line number Diff line number Diff line change
Expand Up @@ -580,7 +580,7 @@ changes:

> Stability: 1.1 - Active development
* `frameCount` {number} Optional number of frames to capture as call site objects.
* `frameCount` {integer} Optional number of frames to capture as call site objects.
**Default:** `10`. Allowable range is between 1 and 200.
* `options` {Object} Optional
* `sourceMap` {boolean} Reconstruct the original location in the stacktrace from the source-map.
Expand Down
3 changes: 2 additions & 1 deletion lib/util.js
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,7 @@ const {
validateString,
validateOneOf,
validateObject,
validateInteger,
} = require('internal/validators');
const {
isReadableStream,
Expand Down Expand Up @@ -452,7 +453,7 @@ function getCallSites(frameCount = 10, options) {
}

// Using kDefaultMaxCallStackSizeToCapture as reference
validateNumber(frameCount, 'frameCount', 1, 200);
validateInteger(frameCount, 'frameCount', 1, 200);
// If options.sourceMaps is true or if sourceMaps are enabled but the option.sourceMaps is not set explicitly to false
if (options.sourceMap === true || (getOptionValue('--enable-source-maps') && options.sourceMap !== false)) {
return mapCallSite(binding.getCallSites(frameCount));
Expand Down
2 changes: 1 addition & 1 deletion src/heap_utils.cc
Original file line number Diff line number Diff line change
Expand Up @@ -89,7 +89,7 @@ class JSGraph : public EmbedderGraph {
}

Node* V8Node(const Local<v8::Value>& value) override {
return V8Node(value.As<v8::Data>());
return V8Node(v8::Local<v8::Data>(value));
}

Node* AddNode(std::unique_ptr<Node> node) override {
Expand Down
3 changes: 2 additions & 1 deletion src/node_builtins.cc
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
#include "quic/guard.h"
#include "simdutf.h"
#include "util-inl.h"
#include "v8-value.h"

namespace node {
namespace builtins {
Expand Down Expand Up @@ -441,7 +442,7 @@ void BuiltinLoader::SaveCodeCache(const std::string& id, Local<Data> data) {
new_cached_data.reset(
ScriptCompiler::CreateCodeCache(mod->GetUnboundModuleScript()));
} else {
Local<Function> fun = data.As<Function>();
Local<Function> fun = data.As<Value>().As<Function>();
new_cached_data.reset(ScriptCompiler::CreateCodeCacheForFunction(fun));
}
CHECK_NOT_NULL(new_cached_data);
Expand Down
2 changes: 1 addition & 1 deletion src/node_util.cc
Original file line number Diff line number Diff line change
Expand Up @@ -258,7 +258,7 @@ static void GetCallSites(const FunctionCallbackInfo<Value>& args) {
Environment* env = Environment::GetCurrent(context);

CHECK_EQ(args.Length(), 1);
CHECK(args[0]->IsNumber());
CHECK(args[0]->IsUint32());
const uint32_t frames = args[0].As<Uint32>()->Value();
CHECK(frames >= 1 && frames <= 200);

Expand Down
8 changes: 7 additions & 1 deletion src/util-inl.h
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@
#ifndef SRC_UTIL_INL_H_
#define SRC_UTIL_INL_H_

#include "v8-isolate.h"
#if defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS

#include <cmath>
Expand Down Expand Up @@ -678,10 +679,15 @@ T FromV8Value(v8::Local<v8::Value> value) {
"Type is out of unsigned integer range");
if constexpr (!loose) {
CHECK(value->IsUint32());
return static_cast<T>(value.As<v8::Uint32>()->Value());
} else {
CHECK(value->IsNumber());
v8::Isolate* isolate = v8::Isolate::GetCurrent();
v8::Local<v8::Context> context = isolate->GetCurrentContext();
v8::Maybe<uint32_t> maybe = value->Uint32Value(context);
CHECK(!maybe.IsNothing());
return static_cast<T>(maybe.FromJust());
}
return static_cast<T>(value.As<v8::Uint32>()->Value());
} else if constexpr (std::is_integral_v<T> && std::is_signed_v<T>) {
static_assert(
std::numeric_limits<T>::max() <= std::numeric_limits<int32_t>::max() &&
Expand Down
15 changes: 7 additions & 8 deletions test/parallel/test-util-getcallsites.js
Original file line number Diff line number Diff line change
Expand Up @@ -31,15 +31,14 @@ const assert = require('node:assert');
);
}

// Guarantee dot-right numbers are ignored
// frameCount must be an integer
{
const callSites = getCallSites(3.6);
assert.strictEqual(callSites.length, 3);
}

{
const callSites = getCallSites(3.4);
assert.strictEqual(callSites.length, 3);
assert.throws(() => {
const callSites = getCallSites(3.6);
assert.strictEqual(callSites.length, 3);
}, common.expectsError({
code: 'ERR_OUT_OF_RANGE'
}));
}

{
Expand Down