1
0
Fork 0
mirror of https://github.com/denoland/deno.git synced 2024-11-24 15:19:26 -05:00

fix(ext/node): handle node child_process with --v8-options flag (#24804)

Makes `v8flags` package from NPM work.
This commit is contained in:
Luca Casonato 2024-07-31 16:28:08 +02:00 committed by GitHub
parent f6fad68d7b
commit 1faac2dce3
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
6 changed files with 34 additions and 0 deletions

View file

@ -1030,6 +1030,7 @@ const kNodeFlagsMap = new Map([
["--v8-pool-size", kLongArg],
]);
const kDenoSubcommands = new Set([
"add",
"bench",
"bundle",
"cache",
@ -1046,6 +1047,7 @@ const kDenoSubcommands = new Set([
"install",
"lint",
"lsp",
"publish",
"repl",
"run",
"tasks",
@ -1092,6 +1094,12 @@ function toDenoArgs(args: string[]): string[] {
let isLongWithValue = false;
let flagValue;
if (flag === "--v8-options") {
// If --v8-options is passed, it should be replaced with --v8-flags="--help".
denoArgs.push("--v8-flags=--help");
continue;
}
if (flagInfo === undefined) {
// If the flag was not found, it's either not a known flag or it's a long
// flag containing an '='.

File diff suppressed because one or more lines are too long

Binary file not shown.

View file

@ -0,0 +1,5 @@
{
"args": "run -A main.js",
"output": "main.out",
"exitCode": 0
}

View file

@ -0,0 +1,17 @@
import v8flags from "npm:v8flags@4.0.1";
const flags = await new Promise((resolve, reject) => {
v8flags((err, flags) => {
if (err) {
reject(err);
} else {
resolve(flags);
}
});
});
if (flags.length < 100) {
throw new Error("Expected at least 100 flags");
}
console.log("ok");

View file

@ -0,0 +1,3 @@
Download http://localhost:4260/v8flags
Download http://localhost:4260/v8flags/v8flags-4.0.1.tgz
ok