summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ext/node/polyfills/internal/child_process.ts7
-rw-r--r--runtime/js/40_process.js14
2 files changed, 12 insertions, 9 deletions
diff --git a/ext/node/polyfills/internal/child_process.ts b/ext/node/polyfills/internal/child_process.ts
index 7f40ce94b..30b15fb62 100644
--- a/ext/node/polyfills/internal/child_process.ts
+++ b/ext/node/polyfills/internal/child_process.ts
@@ -6,6 +6,7 @@
// TODO(petamoriken): enable prefer-primordials for node polyfills
// deno-lint-ignore-file prefer-primordials
+import { core, internals } from "ext:core/mod.js";
import { assert } from "ext:deno_node/_util/asserts.ts";
import { EventEmitter } from "node:events";
import { os } from "ext:deno_node/internal_binding/constants.ts";
@@ -43,6 +44,7 @@ import {
import { kEmptyObject } from "ext:deno_node/internal/util.mjs";
import { getValidatedPath } from "ext:deno_node/internal/fs/utils.mjs";
import process from "node:process";
+
const core = globalThis.__bootstrap.core;
const {
op_node_ipc_read,
@@ -258,8 +260,9 @@ export class ChildProcess extends EventEmitter {
}
}
- if (typeof this.#process._pipeFd == "number") {
- setupChannel(this, this.#process._pipeFd);
+ const pipeFd = internals.getPipeFd(this.#process);
+ if (typeof pipeFd == "number") {
+ setupChannel(this, pipeFd);
}
(async () => {
diff --git a/runtime/js/40_process.js b/runtime/js/40_process.js
index 9239f8e99..2a97f81a3 100644
--- a/runtime/js/40_process.js
+++ b/runtime/js/40_process.js
@@ -1,6 +1,6 @@
// Copyright 2018-2023 the Deno authors. All rights reserved. MIT license.
-import { core, primordials } from "ext:core/mod.js";
+import { core, internals, primordials } from "ext:core/mod.js";
const ops = core.ops;
const {
ArrayPrototypeMap,
@@ -204,16 +204,16 @@ function collectOutput(readableStream) {
return readableStreamCollectIntoUint8Array(readableStream);
}
+const _pipeFd = Symbol("[[pipeFd]]");
+
+internals.getPipeFd = (process) => process[_pipeFd];
+
class ChildProcess {
#rid;
#waitPromise;
#waitComplete = false;
- #pipeFd;
- // internal, used by ext/node
- get _pipeFd() {
- return this.#pipeFd;
- }
+ [_pipeFd];
#pid;
get pid() {
@@ -259,7 +259,7 @@ class ChildProcess {
this.#rid = rid;
this.#pid = pid;
- this.#pipeFd = pipeFd;
+ this[_pipeFd] = pipeFd;
if (stdinRid !== null) {
this.#stdin = writableStreamForRid(stdinRid);