// deno-fmt-ignore-file // deno-lint-ignore-file // Copyright Joyent and Node contributors. All rights reserved. MIT license. // Taken from Node 18.12.1 // This file is automatically generated by "node/_tools/setup.ts". Do not modify this file manually 'use strict'; const common = require('../common'); const assert = require('assert'); // Assert legit flags are allowed, and bogus flags are disallowed { const goodFlags = [ '--perf_basic_prof', '--perf-basic-prof', 'perf-basic-prof', '--perf_basic-prof', 'perf_basic-prof', 'perf_basic_prof', '-r', 'r', '--stack-trace-limit=100', '--stack-trace-limit=-=xX_nodejs_Xx=-', ].concat(process.features.inspector ? [ '--inspect-brk', 'inspect-brk', '--inspect_brk', ] : []); const badFlags = [ 'INSPECT-BRK', '--INSPECT-BRK', '--r', '-R', '---inspect-brk', '--cheeseburgers', ]; goodFlags.forEach((flag) => { assert.strictEqual( process.allowedNodeEnvironmentFlags.has(flag), true, `flag should be in set: ${flag}` ); }); badFlags.forEach((flag) => { assert.strictEqual( process.allowedNodeEnvironmentFlags.has(flag), false, `flag should not be in set: ${flag}` ); }); } // Assert all "canonical" flags begin with dash(es) { process.allowedNodeEnvironmentFlags.forEach((flag) => { assert.match(flag, /^--?[a-zA-Z0-9._-]+$/); }); } // Assert immutability of process.allowedNodeEnvironmentFlags { assert.strictEqual(Object.isFrozen(process.allowedNodeEnvironmentFlags), true); process.allowedNodeEnvironmentFlags.add('foo'); assert.strictEqual(process.allowedNodeEnvironmentFlags.has('foo'), false); Set.prototype.add.call(process.allowedNodeEnvironmentFlags, 'foo'); assert.strictEqual(process.allowedNodeEnvironmentFlags.has('foo'), false); const thisArg = {}; process.allowedNodeEnvironmentFlags.forEach( common.mustCallAtLeast(function(flag, _, set) { assert.notStrictEqual(flag, 'foo'); assert.strictEqual(this, thisArg); assert.strictEqual(set, process.allowedNodeEnvironmentFlags); }), thisArg ); for (const flag of process.allowedNodeEnvironmentFlags.keys()) { assert.notStrictEqual(flag, 'foo'); } for (const flag of process.allowedNodeEnvironmentFlags.values()) { assert.notStrictEqual(flag, 'foo'); } for (const flag of process.allowedNodeEnvironmentFlags) { assert.notStrictEqual(flag, 'foo'); } for (const [flag] of process.allowedNodeEnvironmentFlags.entries()) { assert.notStrictEqual(flag, 'foo'); } const size = process.allowedNodeEnvironmentFlags.size; process.allowedNodeEnvironmentFlags.clear(); assert.strictEqual(process.allowedNodeEnvironmentFlags.size, size); Set.prototype.clear.call(process.allowedNodeEnvironmentFlags); assert.strictEqual(process.allowedNodeEnvironmentFlags.size, size); process.allowedNodeEnvironmentFlags.delete('-r'); assert.strictEqual(process.allowedNodeEnvironmentFlags.size, size); Set.prototype.delete.call(process.allowedNodeEnvironmentFlags, '-r'); assert.strictEqual(process.allowedNodeEnvironmentFlags.size, size); }