%PDF- <> %âãÏÓ endobj 2 0 obj <> endobj 3 0 obj <>/ExtGState<>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI] >>/Annots[ 28 0 R 29 0 R] /MediaBox[ 0 0 595.5 842.25] /Contents 4 0 R/Group<>/Tabs/S>> endobj ºaâÚÎΞ-ÌE1ÍØÄ÷{òò2ÿ ÛÖ^ÔÀá TÎ{¦?§®¥kuµùÕ5sLOšuY>endobj 2 0 obj<>endobj 2 0 obj<>endobj 2 0 obj<>endobj 2 0 obj<> endobj 2 0 obj<>endobj 2 0 obj<>es 3 0 R>> endobj 2 0 obj<> ox[ 0.000000 0.000000 609.600000 935.600000]/Fi endobj 3 0 obj<> endobj 7 1 obj<>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI]>>/Subtype/Form>> stream
'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); }