![Shelley Vohr](/assets/img/avatar_default.png)
* chore: bump Node.js to v22.9.0 * build: drop base64 dep in GN build https://github.com/nodejs/node/pull/52856 * build,tools: make addons tests work with GN https://github.com/nodejs/node/pull/50737 * fs: add fast api for InternalModuleStat https://github.com/nodejs/node/pull/51344 * src: move package_json_reader cache to c++ https://github.com/nodejs/node/pull/50322 * crypto: disable PKCS#1 padding for privateDecrypt https://github.com/nodejs-private/node-private/pull/525 * src: move more crypto code to ncrypto https://github.com/nodejs/node/pull/54320 * crypto: ensure valid point on elliptic curve in SubtleCrypto.importKey https://github.com/nodejs/node/pull/50234 * src: shift more crypto impl details to ncrypto https://github.com/nodejs/node/pull/54028 * src: switch crypto APIs to use Maybe<void> https://github.com/nodejs/node/pull/54775 * crypto: remove DEFAULT_ENCODING https://github.com/nodejs/node/pull/47182 * deps: update libuv to 1.47.0 https://github.com/nodejs/node/pull/50650 * build: fix conflict gyp configs https://github.com/nodejs/node/pull/53605 * lib,src: drop --experimental-network-imports https://github.com/nodejs/node/pull/53822 * esm: align sync and async load implementations https://github.com/nodejs/node/pull/49152 * esm: remove unnecessary toNamespacedPath calls https://github.com/nodejs/node/pull/53656 * module: detect ESM syntax by trying to recompile as SourceTextModule https://github.com/nodejs/node/pull/52413 * test: adapt debugger tests to V8 11.4 https://github.com/nodejs/node/pull/49639 * lib: update usage of always on Atomics API https://github.com/nodejs/node/pull/49639 * test: adapt test-fs-write to V8 internal changes https://github.com/nodejs/node/pull/49639 * test: adapt to new V8 trusted memory spaces https://github.com/nodejs/node/pull/50115 * deps: update libuv to 1.47.0 https://github.com/nodejs/node/pull/50650 * src: use non-deprecated v8::Uint8Array::kMaxLength https://github.com/nodejs/node/pull/50115 * src: update default V8 platform to override functions with location https://github.com/nodejs/node/pull/51362 * src: add missing TryCatch https://github.com/nodejs/node/pull/51362 * lib,test: handle new Iterator global https://github.com/nodejs/node/pull/51362 * src: use non-deprecated version of CreateSyntheticModule https://github.com/nodejs/node/pull/50115 * src: remove calls to recently deprecated V8 APIs https://github.com/nodejs/node/pull/52996 * src: use new V8 API to define stream accessor https://github.com/nodejs/node/pull/53084 * src: do not use deprecated V8 API https://github.com/nodejs/node/pull/53084 * src: do not use soon-to-be-deprecated V8 API https://github.com/nodejs/node/pull/53174 * src: migrate to new V8 interceptors API https://github.com/nodejs/node/pull/52745 * src: use supported API to get stalled TLA messages https://github.com/nodejs/node/pull/51362 * module: print location of unsettled top-level await in entry points https://github.com/nodejs/node/pull/51999 * test: make snapshot comparison more flexible https://github.com/nodejs/node/pull/54375 * test: do not set concurrency on parallelized runs https://github.com/nodejs/node/pull/52177 * src: move FromNamespacedPath to path.cc https://github.com/nodejs/node/pull/53540 * test: adapt to new V8 trusted memory spaces https://github.com/nodejs/node/pull/50115 * build: add option to enable clang-cl on Windows https://github.com/nodejs/node/pull/52870 * chore: fixup patch indices * chore: add/remove changed files * esm: drop support for import assertions https://github.com/nodejs/node/pull/54890 * build: compile with C++20 support https://github.com/nodejs/node/pull/52838 * deps: update nghttp2 to 1.62.1 https://github.com/nodejs/node/pull/52966 * src: parse inspector profiles with simdjson https://github.com/nodejs/node/pull/51783 * build: add GN build files https://github.com/nodejs/node/pull/47637 * deps,lib,src: add experimental web storage https://github.com/nodejs/node/pull/52435 * build: add missing BoringSSL dep * src: rewrite task runner in c++ https://github.com/nodejs/node/pull/52609 * fixup! build: add GN build files * src: stop using deprecated fields of v8::FastApiCallbackOptions https://github.com/nodejs/node/pull/54077 * fix: shadow variable * build: add back incorrectly removed SetAccessor patch * fixup! fixup! build: add GN build files * crypto: fix integer comparison in crypto for BoringSSL * src,lib: reducing C++ calls of esm legacy main resolve https://github.com/nodejs/node/pull/48325 * src: move more crypto_dh.cc code to ncrypto https://github.com/nodejs/node/pull/54459 * chore: fixup GN files for previous commit * src: move more crypto code to ncrypto https://github.com/nodejs/node/pull/54320 * Fixup Perfetto ifdef guards * fix: missing electron_natives dep * fix: node_use_node_platform = false * fix: include src/node_snapshot_stub.cc in libnode * 5507047: [import-attributes] Remove support for import assertions https://chromium-review.googlesource.com/c/v8/v8/+/5507047 * fix: restore v8-sandbox.h in filenames.json * fix: re-add original-fs generation logic * fix: ngtcp2 openssl dep * test: try removing NAPI_VERSION undef * chore(deps): bump @types/node * src: move more crypto_dh.cc code to ncrypto https://github.com/nodejs/node/pull/54459 * esm: remove unnecessary toNamespacedPath calls https://github.com/nodejs/node/pull/53656 * buffer: fix out of range for toString https://github.com/nodejs/node/pull/54553 * lib: rewrite AsyncLocalStorage without async_hooks https://github.com/nodejs/node/pull/48528 * module: print amount of load time of a cjs module https://github.com/nodejs/node/pull/52213 * test: skip reproducible snapshot test on 32-bit https://github.com/nodejs/node/pull/53592 * fixup! src: move more crypto_dh.cc code to ncrypto * test: adjust emittedUntil return type * chore: remove redundant wpt streams patch * fixup! chore(deps): bump @types/node * fix: gn executable name on Windows * fix: build on Windows * fix: rename conflicting win32 symbols in //third_party/sqlite On Windows otherwise we get: lld-link: error: duplicate symbol: sqlite3_win32_write_debug >>> defined at .\..\..\third_party\electron_node\deps\sqlite\sqlite3.c:47987 >>> obj/third_party/electron_node/deps/sqlite/sqlite/sqlite3.obj >>> defined at obj/third_party/sqlite\chromium_sqlite3/sqlite3_shim.obj lld-link: error: duplicate symbol: sqlite3_win32_sleep >>> defined at .\..\..\third_party\electron_node\deps\sqlite\sqlite3.c:48042 >>> obj/third_party/electron_node/deps/sqlite/sqlite/sqlite3.obj >>> defined at obj/third_party/sqlite\chromium_sqlite3/sqlite3_shim.obj lld-link: error: duplicate symbol: sqlite3_win32_is_nt >>> defined at .\..\..\third_party\electron_node\deps\sqlite\sqlite3.c:48113 >>> obj/third_party/electron_node/deps/sqlite/sqlite/sqlite3.obj >>> defined at obj/third_party/sqlite\chromium_sqlite3/sqlite3_shim.obj lld-link: error: duplicate symbol: sqlite3_win32_utf8_to_unicode >>> defined at .\..\..\third_party\electron_node\deps\sqlite\sqlite3.c:48470 >>> obj/third_party/electron_node/deps/sqlite/sqlite/sqlite3.obj >>> defined at obj/third_party/sqlite\chromium_sqlite3/sqlite3_shim.obj lld-link: error: duplicate symbol: sqlite3_win32_unicode_to_utf8 >>> defined at .\..\..\third_party\electron_node\deps\sqlite\sqlite3.c:48486 >>> obj/third_party/electron_node/deps/sqlite/sqlite/sqlite3.obj >>> defined at obj/third_party/sqlite\chromium_sqlite3/sqlite3_shim.obj lld-link: error: duplicate symbol: sqlite3_win32_mbcs_to_utf8 >>> defined at .\..\..\third_party\electron_node\deps\sqlite\sqlite3.c:48502 >>> obj/third_party/electron_node/deps/sqlite/sqlite/sqlite3.obj >>> defined at obj/third_party/sqlite\chromium_sqlite3/sqlite3_shim.obj lld-link: error: duplicate symbol: sqlite3_win32_mbcs_to_utf8_v2 >>> defined at .\..\..\third_party\electron_node\deps\sqlite\sqlite3.c:48518 >>> obj/third_party/electron_node/deps/sqlite/sqlite/sqlite3.obj >>> defined at obj/third_party/sqlite\chromium_sqlite3/sqlite3_shim.obj lld-link: error: duplicate symbol: sqlite3_win32_utf8_to_mbcs >>> defined at .\..\..\third_party\electron_node\deps\sqlite\sqlite3.c:48534 >>> obj/third_party/electron_node/deps/sqlite/sqlite/sqlite3.obj >>> defined at obj/third_party/sqlite\chromium_sqlite3/sqlite3_shim.obj lld-link: error: duplicate symbol: sqlite3_win32_utf8_to_mbcs_v2 >>> defined at .\..\..\third_party\electron_node\deps\sqlite\sqlite3.c:48550 >>> obj/third_party/electron_node/deps/sqlite/sqlite/sqlite3.obj >>> defined at obj/third_party/sqlite\chromium_sqlite3/sqlite3_shim.obj * docs: remove unnecessary ts-expect-error after types bump * src: move package resolver to c++ https://github.com/nodejs/node/pull/50322 * build: set ASAN detect_container_overflow=0 https://github.com/nodejs/node/issues/55584 * chore: fixup rebase * test: disable failing ASAN test * win: almost fix race detecting ESRCH in uv_kill https://github.com/libuv/libuv/pull/4341
40 lines
1.8 KiB
Diff
40 lines
1.8 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: Cheng Zhao <zcbenz@gmail.com>
|
|
Date: Sun, 27 Mar 2016 14:42:26 +0900
|
|
Subject: Pass all globals through "require"
|
|
|
|
(cherry picked from commit 7d015419cb7a0ecfe6728431a4ed2056cd411d62)
|
|
|
|
diff --git a/lib/internal/modules/cjs/loader.js b/lib/internal/modules/cjs/loader.js
|
|
index 451b7c2195e7ad3ab0bde95259e054dc431d7de9..d49941881e6cfd8647a6d44a57e0daaf1c874702 100644
|
|
--- a/lib/internal/modules/cjs/loader.js
|
|
+++ b/lib/internal/modules/cjs/loader.js
|
|
@@ -182,6 +182,13 @@ const {
|
|
CHAR_FORWARD_SLASH,
|
|
} = require('internal/constants');
|
|
|
|
+// Store the "global" variable from global scope into a local scope, so we can
|
|
+// still reference it from this file even after we deleted the "global" variable
|
|
+// from the global scope.
|
|
+const localGlobal = (typeof global !== 'undefined') ? global : undefined;
|
|
+// Do the same for "Buffer".
|
|
+const localBuffer = (typeof Buffer !== 'undefined') ? Buffer : undefined;
|
|
+
|
|
const {
|
|
isProxy,
|
|
} = require('internal/util/types');
|
|
@@ -1541,10 +1548,12 @@ Module.prototype._compile = function(content, filename, format) {
|
|
this[kIsExecuting] = true;
|
|
if (inspectorWrapper) {
|
|
result = inspectorWrapper(compiledWrapper, thisValue, exports,
|
|
- require, module, filename, dirname);
|
|
+ require, module, filename, dirname,
|
|
+ process, localGlobal, localBuffer);
|
|
} else {
|
|
result = ReflectApply(compiledWrapper, thisValue,
|
|
- [exports, require, module, filename, dirname]);
|
|
+ [exports, require, module, filename,
|
|
+ dirname, process, localGlobal, localBuffer]);
|
|
}
|
|
this[kIsExecuting] = false;
|
|
if (requireDepth === 0) { statCache = null; }
|