test: add test for Module._stat - #44713
Conversation
18df730 to
dfa0e90
Compare
This comment was marked as outdated.
This comment was marked as outdated.
aduh95
left a comment
There was a problem hiding this comment.
Maybe add mustCalls to ensure it’s indeed being called?
|
@aduh95 aren't |
This comment was marked as outdated.
This comment was marked as outdated.
dfa0e90 to
b814716
Compare
This comment was marked as outdated.
This comment was marked as outdated.
There was a problem hiding this comment.
Wait, that's not a use case we want to support, mutating fs should not have any effect on Node.js internals, we should fix that.
There was a problem hiding this comment.
This is actually how VFSs are implemented in the ecosystem (pkg, electron, etc.) currently and fixing that would break a lot of packages and I believe the intention behind exposing Module._stat is to allow this? I don't think there is any other use case behind Module._stat or Module._readPackage. cc @arcanis
FWIW, we are also trying to find better ways of doing this without monkey-patching in nodejs/single-executable#37.
There was a problem hiding this comment.
It shows that we probably also need Module._realPath and Module._readFileSync – or rather, that we need the loader hook API to stabilize. Anyway, I don't know if we want this is our tests, I think we want to break this at some point.
There was a problem hiding this comment.
@aduh95 if we start exposing Module._* functions for these, we would have to do so for a lot more functions. These are the ones that Electron overrides - https://github.com/electron/electron/blob/eebf34cc6c4691e2ddca9b5a0a97566aeabd9072/lib/asar/fs-wrapper.ts#L236-L854 (quite a lot!) and there are probably additional ones in yarn's fslib implementation - https://github.com/yarnpkg/berry/tree/76ccb18b3b8cc81e28dbef5f3f867395aa31d5fb/packages/yarnpkg-fslib/sources/patchFs.
There was a problem hiding this comment.
Fwiw I personally have an expectation that Node.js should abide to its own fs API (which is part of why _stat and _readPackage were so problematic, being the two places not doing so purely for optimization purposes).
It's probably never been discussed formally before though, and perhaps doing so would be a good thing (if only to get this use case formally recognized, supported, and covered by tests).
There was a problem hiding this comment.
I agree that the lack of consistency is quite bad. IMHO Node.js internals should not be affected by user-land actions, however I could see that we still want to support the use case of alternative fs implementation, which could be supplied by e.g. a CLI flag and would affect the whole process, not just the few files where we forgot to use destructuring.
|
cc @nodejs/modules |
It’s pretty close. Once #44710 and #43772 land and we allow some time for baking, that’s all that’s on our list before declaring the API stable: https://github.com/nodejs/loaders#status |
|
To be clear, the PR that exposed |
Where's the suggestion for reverting? Even if we eventually revert (not that I'm suggesting we do) it would be preferable to revert both the feature and its test together, I think, so we have the history. |
I posted the comment about reverting in #44713 (comment) in case we are not comfortable with exposing
Yes but for that we would need to land the test first. If you take a look at the contents of #44537 you would see that it landed without any tests, which is why I thought of sending a PR to add some. |
This comment was marked as outdated.
This comment was marked as outdated.
Virtual CommonJS files rooted at process.execPath inherit the output directory's type=module package unless the runner hides it alongside Chromium's root package. Ref: nodejs/node#44713 Co-Authored-By: GitHub Copilot <copilot@github.com>
Virtual CommonJS files rooted at process.execPath inherit the output directory's type=module package unless the runner hides it alongside Chromium's root package. Ref: nodejs/node#44713 Co-Authored-By: GitHub Copilot <copilot@github.com>
Virtual CommonJS files rooted at process.execPath inherit the output directory's type=module package unless the runner hides it alongside Chromium's root package. Ref: nodejs/node#44713 Co-Authored-By: GitHub Copilot <copilot@github.com>
Virtual CommonJS files rooted at process.execPath inherit the output directory's type=module package unless the runner hides it alongside Chromium's root package. Ref: nodejs/node#44713 Co-Authored-By: GitHub Copilot <copilot@github.com>
Virtual CommonJS files rooted at process.execPath inherit the output directory's type=module package unless the runner hides it alongside Chromium's root package. Ref: nodejs/node#44713 Co-Authored-By: GitHub Copilot <copilot@github.com>
Virtual CommonJS files rooted at process.execPath inherit the output directory's type=module package unless the runner hides it alongside Chromium's root package. Ref: nodejs/node#44713 Co-Authored-By: GitHub Copilot <copilot@github.com>
Virtual CommonJS files rooted at process.execPath inherit the output directory's type=module package unless the runner hides it alongside Chromium's root package. Ref: nodejs/node#44713 Co-Authored-By: GitHub Copilot <copilot@github.com>
Virtual CommonJS files rooted at process.execPath inherit the output directory's type=module package unless the runner hides it alongside Chromium's root package. Ref: nodejs/node#44713 Co-Authored-By: GitHub Copilot <copilot@github.com>
Virtual CommonJS files rooted at process.execPath inherit the output directory's type=module package unless the runner hides it alongside Chromium's root package. Ref: nodejs/node#44713 Co-Authored-By: GitHub Copilot <copilot@github.com>
Virtual CommonJS files rooted at process.execPath inherit the output directory's type=module package unless the runner hides it alongside Chromium's root package. Ref: nodejs/node#44713 Co-Authored-By: GitHub Copilot <copilot@github.com>
Virtual CommonJS files rooted at process.execPath inherit the output directory's type=module package unless the runner hides it alongside Chromium's root package. Ref: nodejs/node#44713 Co-Authored-By: GitHub Copilot <copilot@github.com>
Virtual CommonJS files rooted at process.execPath inherit the output directory's type=module package unless the runner hides it alongside Chromium's root package. Ref: nodejs/node#44713 Co-Authored-By: GitHub Copilot <copilot@github.com>
Virtual CommonJS files rooted at process.execPath inherit the output directory's type=module package unless the runner hides it alongside Chromium's root package. Ref: nodejs/node#44713 Co-Authored-By: GitHub Copilot <copilot@github.com>
Virtual CommonJS files rooted at process.execPath inherit the output directory's type=module package unless the runner hides it alongside Chromium's root package. Ref: nodejs/node#44713 Co-Authored-By: GitHub Copilot <copilot@github.com>
* chore: bump node in DEPS to v24.19.0 * chore: remove upstreamed patch Ref: nodejs/node#64053 Co-Authored-By: GitHub Copilot <copilot@github.com> * chore: update patches (trivial only) Co-Authored-By: GitHub Copilot <copilot@github.com> * fix(patch): add perfetto trace agent Backport Node's Perfetto tracing agent now that Chromium V8 no longer exposes the legacy tracing controller APIs. Ref: nodejs/node#64565 Ref: nodejs/node#64721 Co-Authored-By: GitHub Copilot <copilot@github.com> * node#64565: src: rename legacy trace event headers Ref: nodejs/node#64565 Co-Authored-By: GitHub Copilot <copilot@github.com> * fix(patch): sample delay per event loop iteration Ref: nodejs/node#62935 Ref: nodejs/node#64480 Co-Authored-By: GitHub Copilot <copilot@github.com> * fix(patch): avoid redundant std::get_if<>() call Ref: nodejs/node#64094 Co-Authored-By: GitHub Copilot <copilot@github.com> * fix(patch): add perfetto trace agent Ref: nodejs/node#64565 Co-Authored-By: GitHub Copilot <copilot@github.com> * node#64053: src: abstract tracing agent for legacy and perfetto Ref: nodejs/node#64053 Co-Authored-By: GitHub Copilot <copilot@github.com> * fix(patch): add perfetto trace agent Ref: nodejs/node#64565 Co-Authored-By: GitHub Copilot <copilot@github.com> * node#64053: src: abstract tracing agent for legacy and perfetto Ref: nodejs/node#64053 Co-Authored-By: GitHub Copilot <copilot@github.com> * fix(patch): support native IPC serialization in V8 sandbox Ref: nodejs/node#63933 Co-Authored-By: GitHub Copilot <copilot@github.com> * test: hide output package.json in node spec runner Virtual CommonJS files rooted at process.execPath inherit the output directory's type=module package unless the runner hides it alongside Chromium's root package. Ref: nodejs/node#44713 Co-Authored-By: GitHub Copilot <copilot@github.com> * fix(patch): account for libc++ rm error on Electron Linux Node's fs.rmSync() delegates recursive deletion to std::filesystem::remove_all(). Electron's Linux build uses libc++, which reports ENOTEMPTY here while Node's libstdc++ build reports EACCES. Ref: nodejs/node#57103 Co-Authored-By: GitHub Copilot <copilot@github.com> * fix(patch): mark worker stack-size test flaky Ref: nodejs/node#33085 Co-Authored-By: GitHub Copilot <copilot@github.com> * fix(patch): restore user timing trace events Ref: #50591 Co-Authored-By: GitHub Copilot <copilot@github.com> * fix(patch): own fallback tracing controller Ref: nodejs/node#64565 Co-Authored-By: GitHub Copilot <copilot@github.com> * fix(patch): release cppgc wrapper tracking nodes Ref: nodejs/node#56534 Co-Authored-By: GitHub Copilot <copilot@github.com> * test: extend cpp heap remote app timeout The ChunkedDataPipeReadableStream liveness test can exceed the remote fixture's 30-second watchdog under Linux ASAN, which disconnects the control socket before assertions run. Ref: #52447 Co-Authored-By: GitHub Copilot <copilot@github.com> * fix(patch): remove unused legacy tracing backend Electron builds Node exclusively with Perfetto since #50591. Wire the upstream Perfetto agent directly and drop the legacy header split and dual-backend source lists. Ref: #50591 Ref: nodejs/node#64565 Co-Authored-By: GitHub Copilot <copilot@github.com> * docs: better explanation of test_account_for_libc_rm_error_on_electron_linux.patch * refactor: node tracing agent and track event registration (#52678) * fix: register Node tracing in utility processes The Node upgrade moved tracing setup out of JavascriptEnvironment, but the utility process did not adopt the explicit registration used by other embedded Node hosts. Register its TrackEvent data source with Chromium before creating the isolate. Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org> * chore: update patches (trivial only) * chore: update patches * Revert "fix(patch): mark worker stack-size test flaky" This reverts commit f2e5cb5. * fixup! support native IPC serialization in V8 sandbox * chore: address review feedback * fixup! support native IPC serialization in V8 sandbox Allocate ValueSerializer buffers as V8 backing stores and retain the original backing store when adopting the released buffer. This preserves the shared allocator lifetime when serialized buffers are transferred from a worker and outlive its isolate. * fixup! refactor: node tracing agent and track event registration --------- Co-authored-by: electron-roller[bot] <84116207+electron-roller[bot]@users.noreply.github.com> Co-authored-by: Charles Kerr <charles@charleskerr.com> Co-authored-by: GitHub Copilot <copilot@github.com> Co-authored-by: Robo <hop2deep@gmail.com> Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org>
Virtual CommonJS files rooted at process.execPath inherit the output directory's type=module package unless the runner hides it alongside Chromium's root package. Ref: nodejs/node#44713 Co-Authored-By: GitHub Copilot <copilot@github.com>
* chore: bump node in DEPS to v24.19.0 * chore: remove upstreamed patch Ref: nodejs/node#64053 Co-Authored-By: GitHub Copilot <copilot@github.com> * chore: update patches (trivial only) * fix(patch): add perfetto trace agent Backport Node's Perfetto tracing agent now that Chromium V8 no longer exposes the legacy tracing controller APIs. Ref: nodejs/node#64565 Ref: nodejs/node#64721 Co-Authored-By: GitHub Copilot <copilot@github.com> * node#64565: src: rename legacy trace event headers Ref: nodejs/node#64565 Co-Authored-By: GitHub Copilot <copilot@github.com> * fix(patch): sample delay per event loop iteration Ref: nodejs/node#62935 Ref: nodejs/node#64480 Co-Authored-By: GitHub Copilot <copilot@github.com> * fix(patch): avoid redundant std::get_if<>() call Ref: nodejs/node#64094 Co-Authored-By: GitHub Copilot <copilot@github.com> * fix(patch): add perfetto trace agent Ref: nodejs/node#64565 Co-Authored-By: GitHub Copilot <copilot@github.com> * node#64053: src: abstract tracing agent for legacy and perfetto Ref: nodejs/node#64053 Co-Authored-By: GitHub Copilot <copilot@github.com> * fix(patch): add perfetto trace agent Ref: nodejs/node#64565 Co-Authored-By: GitHub Copilot <copilot@github.com> * node#64053: src: abstract tracing agent for legacy and perfetto Ref: nodejs/node#64053 Co-Authored-By: GitHub Copilot <copilot@github.com> * fix(patch): support native IPC serialization in V8 sandbox Ref: nodejs/node#63933 Co-Authored-By: GitHub Copilot <copilot@github.com> * test: hide output package.json in node spec runner Virtual CommonJS files rooted at process.execPath inherit the output directory's type=module package unless the runner hides it alongside Chromium's root package. Ref: nodejs/node#44713 Co-Authored-By: GitHub Copilot <copilot@github.com> * fix(patch): account for libc++ rm error on Electron Linux Node's fs.rmSync() delegates recursive deletion to std::filesystem::remove_all(). Electron's Linux build uses libc++, which reports ENOTEMPTY here while Node's libstdc++ build reports EACCES. Ref: nodejs/node#57103 Co-Authored-By: GitHub Copilot <copilot@github.com> * fix(patch): mark worker stack-size test flaky Ref: nodejs/node#33085 Co-Authored-By: GitHub Copilot <copilot@github.com> * fix(patch): restore user timing trace events Ref: #50591 Co-Authored-By: GitHub Copilot <copilot@github.com> * fix(patch): own fallback tracing controller Ref: nodejs/node#64565 Co-Authored-By: GitHub Copilot <copilot@github.com> * fix(patch): release cppgc wrapper tracking nodes Ref: nodejs/node#56534 Co-Authored-By: GitHub Copilot <copilot@github.com> * fix(patch): remove unused legacy tracing backend Electron builds Node exclusively with Perfetto since #50591. Wire the upstream Perfetto agent directly and drop the legacy header split and dual-backend source lists. Ref: #50591 Ref: nodejs/node#64565 Co-Authored-By: GitHub Copilot <copilot@github.com> * docs: better explanation of test_account_for_libc_rm_error_on_electron_linux.patch * refactor: node tracing agent and track event registration (#52678) * fix: register Node tracing in utility processes The Node upgrade moved tracing setup out of JavascriptEnvironment, but the utility process did not adopt the explicit registration used by other embedded Node hosts. Register its TrackEvent data source with Chromium before creating the isolate. Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org> * chore: update patches (trivial only) * chore: update patches (trivial only) Co-Authored-By: GitHub Copilot <copilot@github.com> * fix(patch): skip unsupported WebCrypto fixtures with BoringSSL Ref: nodejs/node#63520 Co-Authored-By: GitHub Copilot <copilot@github.com> * Revert "fix(patch): mark worker stack-size test flaky" This reverts commit f2e5cb5. * chore: address review feedback (cherry picked from commit b8f475c) * fixup! refactor: node tracing agent and track event registration (cherry picked from commit d898f33) --------- Co-authored-by: electron-roller[bot] <84116207+electron-roller[bot]@users.noreply.github.com> Co-authored-by: Charles Kerr <charles@charleskerr.com> Co-authored-by: GitHub Copilot <copilot@github.com> Co-authored-by: Robo <hop2deep@gmail.com> Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org>
* chore: bump node in DEPS to v24.19.0 * chore: remove upstreamed patch Ref: nodejs/node#64053 Co-Authored-By: GitHub Copilot <copilot@github.com> * chore: update patches (trivial only) * fix(patch): add perfetto trace agent Backport Node's Perfetto tracing agent now that Chromium V8 no longer exposes the legacy tracing controller APIs. Ref: nodejs/node#64565 Ref: nodejs/node#64721 Co-Authored-By: GitHub Copilot <copilot@github.com> * node#64565: src: rename legacy trace event headers Ref: nodejs/node#64565 Co-Authored-By: GitHub Copilot <copilot@github.com> * fix(patch): sample delay per event loop iteration Ref: nodejs/node#62935 Ref: nodejs/node#64480 Co-Authored-By: GitHub Copilot <copilot@github.com> * fix(patch): avoid redundant std::get_if<>() call Ref: nodejs/node#64094 Co-Authored-By: GitHub Copilot <copilot@github.com> * fix(patch): add perfetto trace agent Ref: nodejs/node#64565 Co-Authored-By: GitHub Copilot <copilot@github.com> * node#64053: src: abstract tracing agent for legacy and perfetto Ref: nodejs/node#64053 Co-Authored-By: GitHub Copilot <copilot@github.com> * fix(patch): add perfetto trace agent Ref: nodejs/node#64565 Co-Authored-By: GitHub Copilot <copilot@github.com> * node#64053: src: abstract tracing agent for legacy and perfetto Ref: nodejs/node#64053 Co-Authored-By: GitHub Copilot <copilot@github.com> * fix(patch): support native IPC serialization in V8 sandbox Ref: nodejs/node#63933 Co-Authored-By: GitHub Copilot <copilot@github.com> * test: hide output package.json in node spec runner Virtual CommonJS files rooted at process.execPath inherit the output directory's type=module package unless the runner hides it alongside Chromium's root package. Ref: nodejs/node#44713 Co-Authored-By: GitHub Copilot <copilot@github.com> * fix(patch): account for libc++ rm error on Electron Linux Node's fs.rmSync() delegates recursive deletion to std::filesystem::remove_all(). Electron's Linux build uses libc++, which reports ENOTEMPTY here while Node's libstdc++ build reports EACCES. Ref: nodejs/node#57103 Co-Authored-By: GitHub Copilot <copilot@github.com> * fix(patch): mark worker stack-size test flaky Ref: nodejs/node#33085 Co-Authored-By: GitHub Copilot <copilot@github.com> * fix(patch): restore user timing trace events Ref: #50591 Co-Authored-By: GitHub Copilot <copilot@github.com> * fix(patch): own fallback tracing controller Ref: nodejs/node#64565 Co-Authored-By: GitHub Copilot <copilot@github.com> * fix(patch): release cppgc wrapper tracking nodes Ref: nodejs/node#56534 Co-Authored-By: GitHub Copilot <copilot@github.com> * test: extend cpp heap remote app timeout The ChunkedDataPipeReadableStream liveness test can exceed the remote fixture's 30-second watchdog under Linux ASAN, which disconnects the control socket before assertions run. Ref: #52447 Co-Authored-By: GitHub Copilot <copilot@github.com> * fix(patch): remove unused legacy tracing backend Electron builds Node exclusively with Perfetto since #50591. Wire the upstream Perfetto agent directly and drop the legacy header split and dual-backend source lists. Ref: #50591 Ref: nodejs/node#64565 Co-Authored-By: GitHub Copilot <copilot@github.com> * docs: better explanation of test_account_for_libc_rm_error_on_electron_linux.patch * refactor: node tracing agent and track event registration (#52678) * fix: register Node tracing in utility processes The Node upgrade moved tracing setup out of JavascriptEnvironment, but the utility process did not adopt the explicit registration used by other embedded Node hosts. Register its TrackEvent data source with Chromium before creating the isolate. Co-Authored-By: John Kleinschmidt <jkleinsc@electronjs.org> * chore: update patches (trivial only) * chore: update patches (trivial only) Co-Authored-By: GitHub Copilot <copilot@github.com> * Revert "fix(patch): mark worker stack-size test flaky" This reverts commit f2e5cb5. * fixup! support native IPC serialization in V8 sandbox * chore: address review feedback (cherry picked from commit b8f475c) * fixup! support native IPC serialization in V8 sandbox Allocate ValueSerializer buffers as V8 backing stores and retain the original backing store when adopting the released buffer. This preserves the shared allocator lifetime when serialized buffers are transferred from a worker and outlive its isolate. (cherry picked from commit f35b26d) * fixup! refactor: node tracing agent and track event registration (cherry picked from commit d898f33) --------- Co-authored-by: electron-roller[bot] <84116207+electron-roller[bot]@users.noreply.github.com> Co-authored-by: Charles Kerr <charles@charleskerr.com> Co-authored-by: GitHub Copilot <copilot@github.com> Co-authored-by: Robo <hop2deep@gmail.com> Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org>
* chore: bump node in DEPS to v24.19.0 * chore: remove upstreamed patch Ref: nodejs/node#64053 Co-Authored-By: GitHub Copilot <copilot@github.com> * chore: update patches (trivial only) Co-Authored-By: GitHub Copilot <copilot@github.com> * fix(patch): add perfetto trace agent Backport Node's Perfetto tracing agent now that Chromium V8 no longer exposes the legacy tracing controller APIs. Ref: nodejs/node#64565 Ref: nodejs/node#64721 Co-Authored-By: GitHub Copilot <copilot@github.com> * node#64565: src: rename legacy trace event headers Ref: nodejs/node#64565 Co-Authored-By: GitHub Copilot <copilot@github.com> * fix(patch): sample delay per event loop iteration Ref: nodejs/node#62935 Ref: nodejs/node#64480 Co-Authored-By: GitHub Copilot <copilot@github.com> * fix(patch): avoid redundant std::get_if<>() call Ref: nodejs/node#64094 Co-Authored-By: GitHub Copilot <copilot@github.com> * fix(patch): add perfetto trace agent Ref: nodejs/node#64565 Co-Authored-By: GitHub Copilot <copilot@github.com> * node#64053: src: abstract tracing agent for legacy and perfetto Ref: nodejs/node#64053 Co-Authored-By: GitHub Copilot <copilot@github.com> * fix(patch): add perfetto trace agent Ref: nodejs/node#64565 Co-Authored-By: GitHub Copilot <copilot@github.com> * node#64053: src: abstract tracing agent for legacy and perfetto Ref: nodejs/node#64053 Co-Authored-By: GitHub Copilot <copilot@github.com> * fix(patch): support native IPC serialization in V8 sandbox Ref: nodejs/node#63933 Co-Authored-By: GitHub Copilot <copilot@github.com> * test: hide output package.json in node spec runner Virtual CommonJS files rooted at process.execPath inherit the output directory's type=module package unless the runner hides it alongside Chromium's root package. Ref: nodejs/node#44713 Co-Authored-By: GitHub Copilot <copilot@github.com> * fix(patch): account for libc++ rm error on Electron Linux Node's fs.rmSync() delegates recursive deletion to std::filesystem::remove_all(). Electron's Linux build uses libc++, which reports ENOTEMPTY here while Node's libstdc++ build reports EACCES. Ref: nodejs/node#57103 Co-Authored-By: GitHub Copilot <copilot@github.com> * fix(patch): mark worker stack-size test flaky Ref: nodejs/node#33085 Co-Authored-By: GitHub Copilot <copilot@github.com> * fix(patch): restore user timing trace events Ref: #50591 Co-Authored-By: GitHub Copilot <copilot@github.com> * fix(patch): own fallback tracing controller Ref: nodejs/node#64565 Co-Authored-By: GitHub Copilot <copilot@github.com> * fix(patch): release cppgc wrapper tracking nodes Ref: nodejs/node#56534 Co-Authored-By: GitHub Copilot <copilot@github.com> * test: extend cpp heap remote app timeout The ChunkedDataPipeReadableStream liveness test can exceed the remote fixture's 30-second watchdog under Linux ASAN, which disconnects the control socket before assertions run. Ref: #52447 Co-Authored-By: GitHub Copilot <copilot@github.com> * fix(patch): remove unused legacy tracing backend Electron builds Node exclusively with Perfetto since #50591. Wire the upstream Perfetto agent directly and drop the legacy header split and dual-backend source lists. Ref: #50591 Ref: nodejs/node#64565 Co-Authored-By: GitHub Copilot <copilot@github.com> * docs: better explanation of test_account_for_libc_rm_error_on_electron_linux.patch * refactor: node tracing agent and track event registration (#52678) * fix: register Node tracing in utility processes The Node upgrade moved tracing setup out of JavascriptEnvironment, but the utility process did not adopt the explicit registration used by other embedded Node hosts. Register its TrackEvent data source with Chromium before creating the isolate. Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org> * chore: update patches (trivial only) * chore: update patches (trivial only) Co-Authored-By: GitHub Copilot <copilot@github.com> * Revert "fix(patch): mark worker stack-size test flaky" This reverts commit f2e5cb5. * fixup! support native IPC serialization in V8 sandbox * chore: update patch * chore: address review feedback (cherry picked from commit b8f475c) * fixup! support native IPC serialization in V8 sandbox Allocate ValueSerializer buffers as V8 backing stores and retain the original backing store when adopting the released buffer. This preserves the shared allocator lifetime when serialized buffers are transferred from a worker and outlive its isolate. (cherry picked from commit f35b26d) * fixup! refactor: node tracing agent and track event registration (cherry picked from commit d898f33) --------- Co-authored-by: electron-roller[bot] <84116207+electron-roller[bot]@users.noreply.github.com> Co-authored-by: Charles Kerr <charles@charleskerr.com> Co-authored-by: GitHub Copilot <copilot@github.com> Co-authored-by: Robo <hop2deep@gmail.com> Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org>
Module._statlanded in #44537 without a test, so this change adds one.Signed-off-by: Darshan Sen raisinten@gmail.com