Skip to content

Commit bf261b4

Browse files
iamstoliselkorchi
authored andcommitted
[GR-65032] Backport to 24.2: Upgrading the underlying Node.js to version 22.15.1.
PullRequest: js/3517
2 parents 850509e + 5970046 commit bf261b4

File tree

2,385 files changed

+175486
-70390
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

2,385 files changed

+175486
-70390
lines changed

3rd_party_licenses.txt

Lines changed: 42 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -512,7 +512,7 @@ THE POSSIBILITY OF SUCH DAMAGE.
512512

513513
================================================================================
514514

515-
Node.js 22.13.1
515+
Node.js 22.15.1
516516

517517
Node.js is licensed for use as follows:
518518

@@ -624,13 +624,13 @@ The externally maintained libraries used by Node.js are:
624624
"""
625625
MIT License
626626
-----------
627-
627+
628628
Copyright (C) 2018-2020 Guy Bedford
629-
629+
630630
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
631-
631+
632632
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
633-
633+
634634
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
635635
"""
636636

@@ -882,7 +882,7 @@ The externally maintained libraries used by Node.js are:
882882

883883
COPYRIGHT AND PERMISSION NOTICE
884884

885-
Copyright © 2016-2024 Unicode, Inc.
885+
Copyright © 2016-2025 Unicode, Inc.
886886

887887
NOTICE TO USER: Carefully read the following legal agreement. BY
888888
DOWNLOADING, INSTALLING, COPYING OR OTHERWISE USING DATA FILES, AND/OR
@@ -2275,7 +2275,7 @@ The externally maintained libraries used by Node.js are:
22752275
same "printed page" as the copyright notice for easier
22762276
identification within third-party archives.
22772277

2278-
Copyright 2018-2023 The simdjson authors
2278+
Copyright 2018-2025 The simdjson authors
22792279

22802280
Licensed under the Apache License, Version 2.0 (the "License");
22812281
you may not use this file except in compliance with the License.
@@ -2614,7 +2614,7 @@ The externally maintained libraries used by Node.js are:
26142614
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26152615
"""
26162616

2617-
- inspector_protocol, located at tools/inspector_protocol, is licensed as follows:
2617+
- inspector_protocol, located at deps/inspector_protocol, is licensed as follows:
26182618
"""
26192619
// Copyright 2016 The Chromium Authors. All rights reserved.
26202620
//
@@ -2900,6 +2900,40 @@ The externally maintained libraries used by Node.js are:
29002900
THE SOFTWARE.
29012901
"""
29022902

2903+
- zstd, located at deps/zstd, is licensed as follows:
2904+
"""
2905+
BSD License
2906+
2907+
For Zstandard software
2908+
2909+
Copyright (c) Meta Platforms, Inc. and affiliates. All rights reserved.
2910+
2911+
Redistribution and use in source and binary forms, with or without modification,
2912+
are permitted provided that the following conditions are met:
2913+
2914+
* Redistributions of source code must retain the above copyright notice, this
2915+
list of conditions and the following disclaimer.
2916+
2917+
* Redistributions in binary form must reproduce the above copyright notice,
2918+
this list of conditions and the following disclaimer in the documentation
2919+
and/or other materials provided with the distribution.
2920+
2921+
* Neither the name Facebook, nor Meta, nor the names of its contributors may
2922+
be used to endorse or promote products derived from this software without
2923+
specific prior written permission.
2924+
2925+
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
2926+
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
2927+
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
2928+
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
2929+
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
2930+
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
2931+
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
2932+
ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
2933+
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
2934+
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
2935+
"""
2936+
29032937
- HdrHistogram, located at deps/histogram, is licensed as follows:
29042938
"""
29052939
The code in this repository code was Written by Gil Tene, Michael Barker,

CHANGELOG.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,9 @@ The main focus is on user-observable behavior of the engine.
55
Changelog may include unreleased versions.
66
See [release calendar](https://www.graalvm.org/release-calendar/) for release dates.
77

8+
## Version 24.2.2
9+
* Updated Node.js to version 22.15.1.
10+
811
## Version 24.2.1
912
* Made option `js.text-encoding` stable and allowed in `SandboxPolicy.CONSTRAINED`.
1013

graal-js/src/com.oracle.truffle.js/src/com/oracle/truffle/js/builtins/ForInIteratorPrototypeBuiltins.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright (c) 2019, 2024, Oracle and/or its affiliates. All rights reserved.
2+
* Copyright (c) 2019, 2025, Oracle and/or its affiliates. All rights reserved.
33
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
44
*
55
* The Universal Permissive License (UPL), Version 1.0
@@ -108,7 +108,7 @@ public ForInIteratorPrototypeNextNode(JSContext context, JSBuiltin builtin) {
108108
super(context, builtin);
109109
this.createIterResultObjectNode = CreateIterResultObjectNode.create(context);
110110
this.getPrototypeNode = GetPrototypeNode.create();
111-
this.getOwnPropertyNode = JSGetOwnPropertyNode.create();
111+
this.getOwnPropertyNode = JSGetOwnPropertyNode.create(false);
112112
}
113113

114114
@Specialization

graal-js/src/com.oracle.truffle.js/src/com/oracle/truffle/js/runtime/objects/CyclicModuleRecord.java

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,11 +41,14 @@
4141
package com.oracle.truffle.js.runtime.objects;
4242

4343
import java.util.ArrayList;
44+
import java.util.HashSet;
4445
import java.util.List;
46+
import java.util.Set;
4547

4648
import org.graalvm.collections.EconomicMap;
4749

4850
import com.oracle.js.parser.ir.Module.ModuleRequest;
51+
import com.oracle.truffle.api.CompilerAsserts;
4952
import com.oracle.truffle.api.CompilerDirectives.TruffleBoundary;
5053
import com.oracle.truffle.api.source.Source;
5154
import com.oracle.truffle.js.runtime.JSContext;
@@ -303,4 +306,34 @@ public final void setCycleRoot(CyclicModuleRecord module) {
303306
public final CyclicModuleRecord getCycleRoot() {
304307
return cycleRoot;
305308
}
309+
310+
@TruffleBoundary
311+
public final boolean isReadyForSyncExecution() {
312+
return isReadyForSyncExecution(new HashSet<>());
313+
}
314+
315+
private boolean isReadyForSyncExecution(Set<AbstractModuleRecord> seen) {
316+
CompilerAsserts.neverPartOfCompilation();
317+
if (!seen.add(this)) {
318+
return true;
319+
}
320+
if (getStatus() == Status.Evaluated) {
321+
return true;
322+
} else if (getStatus() == Status.Evaluating || getStatus() == Status.EvaluatingAsync) {
323+
return false;
324+
} else {
325+
assert getStatus() == Status.Linked : getStatus();
326+
if (hasTLA()) {
327+
return false;
328+
}
329+
for (ModuleRequest request : getRequestedModules()) {
330+
var requiredModule = getImportedModule(request);
331+
if (requiredModule instanceof CyclicModuleRecord requiredCyclicModule && !requiredCyclicModule.isReadyForSyncExecution(seen)) {
332+
return false;
333+
}
334+
}
335+
return true;
336+
}
337+
}
338+
306339
}

graal-nodejs/.github/CODEOWNERS

Lines changed: 18 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,6 @@
3535

3636
# net
3737

38-
/deps/ada @nodejs/url
3938
/deps/cares @nodejs/net
4039
/doc/api/dgram.md @nodejs/net
4140
/doc/api/dns.md @nodejs/net
@@ -47,14 +46,11 @@
4746
/lib/internal/js_stream_socket.js @nodejs/net
4847
/lib/internal/net.js @nodejs/net
4948
/lib/internal/socket_list.js @nodejs/net
50-
/lib/internal/url.js @nodejs/url
5149
/lib/net.js @nodejs/net
52-
/lib/url.js @nodejs/url
5350
/src/cares_wrap.cc @nodejs/net
5451
/src/connect_wrap.* @nodejs/net
5552
/src/connection_wrap.* @nodejs/net
5653
/src/node_sockaddr* @nodejs/net
57-
/src/node_url.* @nodejs/url
5854
/src/tcp_wrap.* @nodejs/net
5955
/src/udp_wrap.* @nodejs/net
6056

@@ -171,6 +167,9 @@
171167
/src/permission/* @nodejs/security-wg
172168
/test/parallel/test-permission-* @nodejs/security-wg
173169

170+
# Security Release
171+
/doc/contributing/security-release-process.md @nodejs/security-stewards
172+
174173
# Dependency Update Tools
175174

176175
/.github/workflows/tools.yml @nodejs/security-wg
@@ -194,3 +193,18 @@
194193

195194
# Performance
196195
/benchmark/* @nodejs/performance
196+
197+
# URL
198+
/deps/ada @nodejs/url
199+
/lib/internal/url.js @nodejs/url
200+
/lib/url.js @nodejs/url
201+
/src/node_url.* @nodejs/url
202+
/test/fixtures/wpt/url @nodejs/url
203+
204+
# SQLite
205+
/deps/sqlite/ @nodejs/sqlite
206+
/doc/api/sqlite.md @nodejs/sqlite
207+
/src/node_sqlite.* @nodejs/sqlite
208+
/test/parallel/test-sqlite* @nodejs/sqlite
209+
/test/sqlite/ @nodejs/sqlite
210+
/tools/dep_updaters/update-sqlite.sh @nodejs/sqlite

graal-nodejs/.github/SUPPORT.md

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,10 @@ Node.js](https://github.com/nodejs/Release#release-schedule).
77
When looking for support, please first search for your question in these venues:
88

99
* [Node.js Website](https://nodejs.org/en/), especially the
10-
[API docs](https://nodejs.org/api/)
11-
* [Node.js Help](https://github.com/nodejs/help)
10+
[API docs](https://nodejs.org/api/) or the [Learn material](https://nodejs.org/en/learn)
11+
* [Node.js's GitHub Help repository](https://github.com/nodejs/help)
1212
* [Open or closed issues in the Node.js GitHub organization](https://github.com/issues?utf8=%E2%9C%93&q=sort%3Aupdated-desc+org%3Anodejs+is%3Aissue)
13+
* [Ask for support on Node.js's Discord server](https://nodejs.org/discord)
1314

1415
If you didn't find an answer in the resources above, try these unofficial
1516
resources:
@@ -19,7 +20,7 @@ resources:
1920
* [Node.js Slack Community](https://node-js.slack.com/)
2021
* To register: [nodeslackers.com](https://www.nodeslackers.com/)
2122

22-
GitHub issues are for tracking enhancements and bugs, not general support.
23+
**GitHub issues are for tracking enhancements and bugs, not general support.**
2324

2425
The open source license grants you the freedom to use Node.js. It does not
2526
guarantee commitments of other people's time. Please be respectful and manage

graal-nodejs/.github/dependabot.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,15 +8,15 @@ updates:
88
interval: monthly
99
commit-message:
1010
prefix: meta
11-
open-pull-requests-limit: 10
11+
open-pull-requests-limit: ${{secrets.OPEN_PR_LIMIT}}
1212

1313
- package-ecosystem: npm
1414
directory: /tools/eslint
1515
schedule:
1616
interval: monthly
1717
commit-message:
1818
prefix: tools
19-
open-pull-requests-limit: 10
19+
open-pull-requests-limit: ${{secrets.OPEN_PR_LIMIT}}
2020
groups:
2121
eslint:
2222
applies-to: version-updates
@@ -29,7 +29,7 @@ updates:
2929
interval: monthly
3030
commit-message:
3131
prefix: tools
32-
open-pull-requests-limit: 10
32+
open-pull-requests-limit: ${{secrets.OPEN_PR_LIMIT}}
3333
groups:
3434
lint-md:
3535
applies-to: version-updates

graal-nodejs/.github/label-pr-config.yml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,9 @@ subSystemLabels:
3434
/^src\/node_bob*/: c++, quic
3535
/^src\/node_sea/: single-executable
3636
/^src\/node_sqlite.*/: c++, sqlite
37+
/^src\/node_config_file.*/: c++, config
38+
/^src\/node_dotenv.*/: c++, config
39+
/^src\/node_options.*/: c++, config
3740

3841
# Properly label changes to V8 inspector integration-related files
3942
/^src\/inspector_/: c++, inspector, needs-ci
@@ -125,6 +128,8 @@ exlusiveLabels:
125128
/^test\/es-module\//: test, esm
126129
/^test\/fixtures\/wpt\/streams\//: test, web streams
127130
/^test\/fixtures\/typescript/: test, strip-types
131+
/^test\/module-hooks\//: test, module, loaders
132+
/^test\/fixtures/module-hooks\//: test, module, loaders
128133

129134
/^test\//: test
130135

@@ -147,6 +152,8 @@ exlusiveLabels:
147152
# Specific map for typescript.md as it should be labeled 'strip-types'
148153
/^doc\/api\/typescript.md$/: doc, strip-types
149154

155+
/^doc\/node-config-schema.json$/: doc, config
156+
150157
/^doc\//: doc
151158

152159
# More specific benchmarks
@@ -166,6 +173,7 @@ allJsSubSystems:
166173
- buffer
167174
- child_process
168175
- cluster
176+
- config
169177
- console
170178
- crypto
171179
- debugger

graal-nodejs/.github/workflows/auto-start-ci.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ jobs:
5050
persist-credentials: false
5151

5252
- name: Install Node.js
53-
uses: actions/setup-node@39370e3970a6d050c480ffad4ff0ed4d3fdee5af # v4.1.0
53+
uses: actions/setup-node@1d0ff469b7ec7b3cb9d8673fde0c81c44821de2a # v4.2.0
5454
with:
5555
node-version: ${{ env.NODE_VERSION }}
5656

graal-nodejs/.github/workflows/build-tarball.yml

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -46,13 +46,13 @@ jobs:
4646
with:
4747
persist-credentials: false
4848
- name: Set up Python ${{ env.PYTHON_VERSION }}
49-
uses: actions/setup-python@0b93645e9fea7318ecaed2b359559ac225c90a2b # v5.3.0
49+
uses: actions/setup-python@42375524e23c412d93fb67b49958b491fce71c38 # v5.4.0
5050
with:
5151
python-version: ${{ env.PYTHON_VERSION }}
5252
- name: Set up sccache
53-
uses: mozilla-actions/sccache-action@9e326ebed976843c9932b3aa0e021c6f50310eb4 # v0.0.6
53+
uses: Mozilla-Actions/sccache-action@65101d47ea8028ed0c98a1cdea8dd9182e9b5133 # v0.0.8
5454
with:
55-
version: v0.8.1
55+
version: v0.10.0
5656
- name: Environment Information
5757
run: npx envinfo
5858
- name: Make tarball
@@ -64,7 +64,7 @@ jobs:
6464
mkdir tarballs
6565
mv *.tar.gz tarballs
6666
- name: Upload tarball artifact
67-
uses: actions/upload-artifact@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882 # v4.4.3
67+
uses: actions/upload-artifact@4cec3d8aa04e39d1a68397de0c4cd6fb9dce8ec1 # v4.6.1
6868
with:
6969
name: tarballs
7070
path: tarballs
@@ -76,17 +76,17 @@ jobs:
7676
with:
7777
persist-credentials: false
7878
- name: Set up Python ${{ env.PYTHON_VERSION }}
79-
uses: actions/setup-python@0b93645e9fea7318ecaed2b359559ac225c90a2b # v5.3.0
79+
uses: actions/setup-python@42375524e23c412d93fb67b49958b491fce71c38 # v5.4.0
8080
with:
8181
python-version: ${{ env.PYTHON_VERSION }}
8282
- name: Set up sccache
83-
uses: mozilla-actions/sccache-action@9e326ebed976843c9932b3aa0e021c6f50310eb4 # v0.0.6
83+
uses: Mozilla-Actions/sccache-action@65101d47ea8028ed0c98a1cdea8dd9182e9b5133 # v0.0.8
8484
with:
85-
version: v0.8.1
85+
version: v0.10.0
8686
- name: Environment Information
8787
run: npx envinfo
8888
- name: Download tarball
89-
uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8
89+
uses: actions/download-artifact@cc203385981b70ca67e1cc392babf9cc229d5806 # v4.1.9
9090
with:
9191
name: tarballs
9292
path: tarballs
@@ -105,4 +105,4 @@ jobs:
105105
- name: Test
106106
run: |
107107
cd $TAR_DIR
108-
make run-ci -j4 V=1 TEST_CI_ARGS="-p dots --node-args='--test-reporter=spec' --measure-flakiness 9"
108+
make run-ci -j4 V=1 TEST_CI_ARGS="-p dots --measure-flakiness 9"

0 commit comments

Comments
 (0)