Skip to content

The Node.js Runtime v8 options list

All the possible options you can use when you start a Node.js program

Node.js can be invoked with an incredibly various set of options.

Most of those options are used to configure the v8 engine behavior.

Some of the options here are disabled by default, as you can see in the Default column. You can enable them by running node and passing the flag, for example node --experimental-extras.

If an option is enabled by default, you can disable it by prepending --no- to the flag name, for example node --no-harmony-shipping.

Some can be used to optimize performance, like --optimize-for-size, --max_old_space_size and --gc_interval, like Heroku suggests.

Some others are used to enable or disable specific features. I use them often to try out new proposed JavaScript features that have been implemented in beta. Like --harmony-public-fields.

Note: options names allow words to be separated by both dashes (-) or underscores (_), or a mix of those. On tutorials you’ll find a mix of both, to it can be confusing. There is no difference.

I got the following list by running the command node --v8-options, and it’s relative to Node.js 11.9.0, the latest Node.js version at the time of writing.

OptionDescriptionTypeDefault
--experimental-extrasenable code compiled in via v8_experimental_extra_library_filesboolfalse
--use-strictenforce strict modeboolfalse
--es-stagingenable test-worthy harmony featuresfor internal use onlybool
--harmonyenable all completed harmony featuresboolfalse
--harmony-shippingenable all shipped harmony featuresbooltrue
--harmony-do-expressionsenable “harmony do-expressions”in progressbool
--harmony-class-fieldsenable “harmony fields in class literals”in progressbool
--harmony-static-fieldsenable “harmony static fields in class literals”in progressbool
--harmony-await-optimizationenable “harmony await taking 1 tick”in progressbool
--harmony-localeenable “Intl.Locale”in progressbool
--harmony-intl-list-formatenable “Intl.ListFormat”in progressbool
--harmony-intl-relative-time-formatenable “Intl.RelativeTimeFormat”in progressbool
--harmony-public-fieldsenable “harmony public fields in class literals”boolfalse
--harmony-private-fieldsenable “harmony private fields in class literals”boolfalse
--harmony-numeric-separatorenable “harmony numeric separator between digits”boolfalse
--harmony-string-matchallenable “harmony String.prototype.matchAll”boolfalse
--harmony-globalenable “harmony global”boolfalse
--harmony-string-trimmingenable “harmony String.prototype.trim{Start,End}“booltrue
--harmony-sharedarraybufferenable “harmony sharedarraybuffer”booltrue
--harmony-function-tostringenable “harmony Function.prototype.toString”booltrue
--harmony-import-metaenable “harmony import.meta property”booltrue
--harmony-bigintenable “harmony arbitrary precision integers”booltrue
--harmony-dynamic-importenable “harmony dynamic import”booltrue
--harmony-array-prototype-valuesenable “harmony Array.prototype.values”booltrue
--harmony-array-flatenable “harmony Array.prototype.{flat,flatMap}“booltrue
--harmony-symbol-descriptionenable “harmony Symbol.prototype.description”booltrue
--icu-timezone-dataget information about timezones from ICUbooltrue
--futureImplies all staged features that we want to ship in the not-too-far futureboolfalse
--allocation-site-pretenuringpretenure with allocation sitesbooltrue
--page-promotionpromote pages based on utilizationbooltrue
--page-promotion-thresholdmin percentage of live bytes on a page to enable fast evacuationint70
--trace-pretenuringtrace pretenuring decisions of HAllocate instructionsboolfalse
--trace-pretenuring-statisticstrace allocation site pretenuring statisticsboolfalse
--track-fieldstrack fields with only smi valuesbooltrue
--track-double-fieldstrack fields with double valuesbooltrue
--track-heap-object-fieldstrack fields with heap valuesbooltrue
--track-computed-fieldstrack computed boilerplate fieldsbooltrue
--track-field-typestrack field typesbooltrue
--trace-block-coveragetrace collected block coverage informationboolfalse
--feedback-normalizationfeed back normalization to constructorsboolfalse
--optimize-for-sizeEnables optimizations which favor memory size over execution speedboolfalse
--enable-one-shot-optimizationEnable size optimizations for the code that will only be executed oncebooltrue
--unbox-double-arraysautomatically unbox arrays of doublesbooltrue
--interrupt-budgetinterrupt budget which should be used for the profiler counterint147456
--ignition-elide-noneffectful-bytecodeselide bytecodes which won’t have any external effectbooltrue
--ignition-reouse ignition register equivalence optimizerbooltrue
--ignition-filter-expression-positionsfilter expression positions before the bytecode pipelinebooltrue
--ignition-share-named-property-feedbackshare feedback slots when loading the same named property from the same objectbooltrue
--print-bytecodeprint bytecode generated by ignition interpreterboolfalse
--print-bytecode-filterfilter for selecting which functions to print bytecodestring*
--trace-ignition-codegentrace the codegen of ignition interpreter bytecode handlersboolfalse
--trace-ignition-dispatchestraces the dispatches to bytecode handlers by the ignition interpreterboolfalse
--trace-ignition-dispatches-output-filethe file to which the bytecode handler dispatch table is writtenby default, the table is not written to a filestring
--fast-mathfasterbut maybe less accurate math functionsbool
--trace-track-allocation-sitestrace the tracking of allocation sitesboolfalse
--trace-migrationtrace object migrationboolfalse
--trace-generalizationtrace map generalizationboolfalse
--concurrent-recompilationoptimizing hot functions asynchronously on a separate threadbooltrue
--trace-concurrent-recompilationtrack concurrent recompilationboolfalse
--concurrent-recompilation-queue-lengththe length of the concurrent compilation queueint8
--concurrent-recompilation-delayartificial compilation delay in msint0
--block-concurrent-recompilationblock queued jobs until releasedboolfalse
--concurrent-compiler-frontendrun optimizing compiler’s frontend phases on a separate threadboolfalse
--strict-heap-brokerfail on incomplete serializationboolfalse
--trace-heap-brokertrace the heap brokerboolfalse
--stress-runsnumber of stress runsint0
--deopt-every-n-timesdeoptimize every n times a deopt point is passedint0
--print-deopt-stressprint number of possible deopt pointsboolfalse
--turbo-sp-frame-accessuse stack pointer-relative access to frame wherever possibleboolfalse
--turbo-preprocess-rangesrun pre-register allocation heuristicsbooltrue
--turbo-filteroptimization filter for TurboFan compilerstring*
--trace-turbotrace generated TurboFan IRboolfalse
--trace-turbo-pathdirectory to dump generated TurboFan IR tostringnullptr
--trace-turbo-filterfilter for tracing turbofan compilationstring*
--trace-turbo-graphtrace generated TurboFan graphsboolfalse
--trace-turbo-scheduledtrace TurboFan IR with scheduleboolfalse
--trace-turbo-cfg-filetrace turbo cfg graphfor C1 visualizer to a given file namestring
--trace-turbo-typestrace TurboFan’s typesbooltrue
--trace-turbo-schedulertrace TurboFan’s schedulerboolfalse
--trace-turbo-reductiontrace TurboFan’s various reducersboolfalse
--trace-turbo-trimmingtrace TurboFan’s graph trimmerboolfalse
--trace-turbo-jttrace TurboFan’s jump threadingboolfalse
--trace-turbo-ceqtrace TurboFan’s control equivalenceboolfalse
--trace-turbo-looptrace TurboFan’s loop optimizationsboolfalse
--trace-alloctrace register allocatorboolfalse
--trace-all-usestrace all use positionsboolfalse
--trace-representationtrace representation typesboolfalse
--turbo-verifyverify TurboFan graphs at each phaseboolfalse
--turbo-verify-machine-graphverify TurboFan machine graph before instruction selectionstringnullptr
--trace-verify-csatrace code stubs verificationboolfalse
--csa-trap-on-nodetrigger break point when a node with given id is created in given stub. The format is: StubName,NodeIdstringnullptr
--turbo-statsprint TurboFan statisticsboolfalse
--turbo-stats-nvpprint TurboFan statistics in machine-readable formatboolfalse
--turbo-stats-wasmprint TurboFan statistics of wasm compilationsboolfalse
--turbo-splittingsplit nodes during scheduling in TurboFanbooltrue
--function-context-specializationenable function context specialization in TurboFanboolfalse
--turbo-inliningenable inlining in TurboFanbooltrue
--max-inlined-bytecode-sizemaximum size of bytecode for a single inliningint500
--max-inlined-bytecode-size-cumulativemaximum cumulative size of bytecode considered for inliningint1000
--max-inlined-bytecode-size-absolutemaximum cumulative size of bytecode considered for inliningint5000
--reserve-inline-budget-scale-factormaximum cumulative size of bytecode considered for inliningfloat1.2
--max-inlined-bytecode-size-smallmaximum size of bytecode considered for small function inliningint30
--min-inlining-frequencyminimum frequency for inliningfloat0.15
--polymorphic-inliningpolymorphic inliningbooltrue
--stress-inlineset high thresholds for inlining to inline as much as possibleboolfalse
--trace-turbo-inliningtrace TurboFan inliningboolfalse
--inline-accessorsinline JavaScript accessorsbooltrue
--inline-into-tryinline into try blocksbooltrue
--turbo-inline-array-builtinsinline array builtins in TurboFan codebooltrue
--use-osruse on-stack replacementbooltrue
--trace-osrtrace on-stack replacementboolfalse
--analyze-environment-livenessanalyze liveness of environment slots and zap dead valuesbooltrue
--trace-environment-livenesstrace liveness of local variable slotsboolfalse
--turbo-load-eliminationenable load elimination in TurboFanbooltrue
--trace-turbo-load-eliminationtrace TurboFan load eliminationboolfalse
--turbo-profilingenable profiling in TurboFanboolfalse
--turbo-verify-allocationverify register allocation in TurboFanboolfalse
--turbo-move-optimizationoptimize gap moves in TurboFanbooltrue
--turbo-jtenable jump threading in TurboFanbooltrue
--turbo-loop-peelingTurbofan loop peelingbooltrue
--turbo-loop-variableTurbofan loop variable optimizationbooltrue
--turbo-cf-optimizationoptimize control flow in TurboFanbooltrue
--turbo-escapeenable escape analysisbooltrue
--turbo-allocation-foldingTurbofan allocation foldingbooltrue
--turbo-instruction-schedulingenable instruction scheduling in TurboFanboolfalse
--turbo-stress-instruction-schedulingrandomly schedule instructions to stress dependency trackingboolfalse
--turbo-store-eliminationenable store-store elimination in TurboFanbooltrue
--trace-store-eliminationtrace store eliminationboolfalse
--turbo-rewrite-far-jumpsrewrite far to near jumpsia32,x64bool
--experimental-inline-promise-constructorinline the Promise constructor in TurboFanbooltrue
--untrusted-code-mitigationsEnable mitigations for executing untrusted codeboolfalse
--branch-load-poisoningMask loads with branch conditions.boolfalse
--minimalsimplifies execution model to make porting easiere.g. always use Ignition, never optimizebool
--expose-wasmexpose wasm interface to JavaScriptbooltrue
--assume-asmjs-originforce wasm decoder to assume input is internal asm-wasm formatboolfalse
--wasm-disable-structured-cloningdisable wasm structured cloningboolfalse
--wasm-num-compilation-tasksnumber of parallel compilation tasks for wasmint10
--wasm-write-protect-code-memorywrite protect code memory on the wasm native heapboolfalse
--wasm-trace-serializationtrace serialization/deserializationboolfalse
--wasm-async-compilationenable actual asynchronous compilation for WebAssembly.compilebooltrue
--wasm-test-streaminguse streaming compilation instead of async compilation for testsboolfalse
--wasm-max-mem-pagesmaximum number of 64KiB memory pages of a wasm instanceuint32767
--wasm-max-table-sizemaximum table size of a wasm instanceuint10000000
--wasm-tier-upenable wasm baseline compilation and tier up to the optimizing compilerbooltrue
--trace-wasm-ast-startstart function for wasm AST traceinclusiveint
--trace-wasm-ast-endend function for wasm AST traceexclusiveint
--liftoffenable Liftoff, the baseline compiler for WebAssemblybooltrue
--wasm-trace-memoryprint all memory updates performed in wasm codeboolfalse
--wasm-tier-mask-for-testingbitmask of functions to compile with TurboFan instead of Liftoffint0
--validate-asmvalidate asm.js modules before compilingbooltrue
--suppress-asm-messagesdon’t emit asm.js related messagesfor golden file testingbool
--trace-asm-timelog asm.js timing info to the consoleboolfalse
--trace-asm-scannerlog tokens encountered by asm.js scannerboolfalse
--trace-asm-parserverbose logging of asm.js parse failuresboolfalse
--stress-validate-asmtry to validate everything as asm.jsboolfalse
--dump-wasm-module-pathdirectory to dump wasm modules tostringnullptr
--experimental-wasm-mvenable prototype multi-value support for wasmboolfalse
--experimental-wasm-ehenable prototype exception handling opcodes for wasmboolfalse
--experimental-wasm-seenable prototype sign extension opcodes for wasmbooltrue
--experimental-wasm-sat-f2i-conversionsenable prototype saturating float conversion opcodes for wasmboolfalse
--experimental-wasm-threadsenable prototype thread opcodes for wasmboolfalse
--experimental-wasm-simdenable prototype SIMD opcodes for wasmboolfalse
--experimental-wasm-anyrefenable prototype anyref opcodes for wasmboolfalse
--experimental-wasm-mut-globalenable prototype import/export mutable global support for wasmbooltrue
--wasm-optenable wasm optimizationboolfalse
--wasm-no-bounds-checksdisable bounds checksperformance testing onlybool
--wasm-no-stack-checksdisable stack checksperformance testing onlybool
--wasm-shared-engineshares one wasm engine between all isolates within a processbooltrue
--wasm-shared-codeshares code underlying a wasm module when it is transferredbooltrue
--wasm-trap-handleruse signal handlers to catch out of bounds memory access in wasmcurrently Linux x86_64 onlybool
--wasm-trap-handler-fallbackUse bounds checks if guarded memory is not availableboolfalse
--wasm-fuzzer-gen-testGenerate a test case when running a wasm fuzzerboolfalse
--print-wasm-codePrint WebAssembly codeboolfalse
--wasm-interpret-allExecute all wasm code in the wasm interpreterboolfalse
--asm-wasm-lazy-compilationenable lazy compilation for asm-wasm modulesbooltrue
--wasm-lazy-compilationenable lazy compilation for all wasm modulesboolfalse
--frame-countnumber of stack frames inspected by the profilerint1
--type-info-thresholdpercentage of ICs that must have type info to allow optimizationint25
--stress-sampling-allocation-profilerEnables sampling allocation profiler with X as a sample intervalint0
--min-semi-space-sizemin size of a semi-spacein MBytes), the new space consists of two semi-spacessize_t
--max-semi-space-sizemax size of a semi-spacein MBytes), the new space consists of two semi-spacessize_t
--semi-space-growth-factorfactor by which to grow the new spaceint2
--experimental-new-space-growth-heuristicGrow the new space based on the percentage of survivors instead of their absolute value.boolfalse
--max-old-space-sizemax size of the old spacein Mbytessize_t
--initial-old-space-sizeinitial old space sizein Mbytessize_t
--gc-globalalways perform global GCsboolfalse
--random-gc-intervalCollect garbage after random(0, X allocations. It overrides gc_interval.int0
--gc-intervalgarbage collect after allocationsint-1
--retain-maps-for-n-gckeeps maps alive for old space garbage collectionsint2
--trace-gcprint one trace line following each garbage collectionboolfalse
--trace-gc-nvpprint one detailed trace line in name=value format after each garbage collectionboolfalse
--trace-gc-ignore-scavengerdo not print trace line after scavenger collectionboolfalse
--trace-idle-notificationprint one trace line following each idle notificationboolfalse
--trace-idle-notification-verboseprints the heap state used by the idle notificationboolfalse
--trace-gc-verboseprint more details following each garbage collectionboolfalse
--trace-allocation-stack-intervalprint stack trace after free-list allocationsint-1
--trace-duplicate-threshold-kbprint duplicate objects in the heap if their size is more than given thresholdint0
--trace-fragmentationreport fragmentation for old spaceboolfalse
--trace-fragmentation-verbosereport fragmentation for old spacedetailedbool
--trace-evacuationreport evacuation statisticsboolfalse
--trace-mutator-utilizationprint mutator utilization, allocation speed, gc speedboolfalse
--incremental-markinguse incremental markingbooltrue
--incremental-marking-wrappersuse incremental marking for marking wrappersbooltrue
--trace-unmapperTrace the unmappingboolfalse
--parallel-scavengeparallel scavengebooltrue
--trace-parallel-scavengetrace parallel scavengeboolfalse
--write-protect-code-memorywrite protect code memorybooltrue
--concurrent-markinguse concurrent markingbooltrue
--parallel-markinguse parallel marking in atomic pausebooltrue
--ephemeron-fixpoint-iterationsnumber of fixpoint iterations it takes to switch to linear ephemeron algorithmint10
--trace-concurrent-markingtrace concurrent markingboolfalse
--black-allocationuse black allocationbooltrue
--concurrent-store-bufferuse concurrent store buffer processingbooltrue
--concurrent-sweepinguse concurrent sweepingbooltrue
--parallel-compactionuse parallel compactionbooltrue
--parallel-pointer-updateuse parallel pointer update during compactionbooltrue
--detect-ineffective-gcs-near-heap-limittrigger out-of-memory failure to avoid GC storm near heap limitbooltrue
--trace-incremental-markingtrace progress of the incremental markingboolfalse
--trace-stress-markingtrace stress marking progressboolfalse
--trace-stress-scavengetrace stress scavenge progressboolfalse
--track-gc-object-statstrack object counts and memory usageboolfalse
--trace-gc-object-statstrace object counts and memory usageboolfalse
--trace-zone-statstrace zone memory usageboolfalse
--track-retaining-pathenable support for tracking retaining pathboolfalse
--concurrent-array-buffer-freeingfree array buffer allocations on a background threadbooltrue
--gc-statsUsed by tracing internally to enable gc statisticsint0
--track-detached-contextstrack native contexts that are expected to be garbage collectedbooltrue
--trace-detached-contextstrace native contexts that are expected to be garbage collectedboolfalse
--move-object-startenable moving of object startsbooltrue
--memory-reduceruse memory reducerbooltrue
--heap-growing-percentspecifies heap growing factor as1 + heap_growing_percent/100int
--v8-os-page-sizeoverride OS page sizein KBytesint
--always-compactPerform compaction on every full GCboolfalse
--never-compactNever perform compaction on full GC - testing onlyboolfalse
--compact-code-spaceCompact code space on full collectionsbooltrue
--use-marking-progress-barUse a progress bar to scan large objects in increments when incremental marking is active.booltrue
--force-marking-deque-overflowsforce overflows of marking deque by reducing it’s size to 64 wordsboolfalse
--stress-compactionstress the GC compactor to flush out bugsimplies —force_marking_deque_overflowsbool
--stress-compaction-randomStress GC compaction by selecting random percent of pages as evacuation candidates. It overrides stress_compaction.boolfalse
--stress-incremental-markingforce incremental marking for small heaps and run it more oftenboolfalse
--fuzzer-gc-analysisprints number of allocations and enables analysis mode for gc fuzz testing, e.g. —stress-marking, —stress-scavengeboolfalse
--stress-markingforce marking at random points between 0 and Xinclusive percent of the regular marking start limitint
--stress-scavengeforce scavenge at random points between 0 and Xinclusive percent of the new space capacityint
--disable-abortjsdisables AbortJS runtime functionboolfalse
--manual-evacuation-candidates-selectionTest mode only flag. It allows an unit test to select evacuation candidates pagesrequires —stress_compaction).bool
--fast-promotion-new-spacefast promote new space on high survival ratesboolfalse
--clear-free-memoryinitialize free memory with 0boolfalse
--young-generation-large-objectsallocates large objects by default in the young generation large object spaceboolfalse
--debug-codegenerate extra codeassertions for debuggingbool
--code-commentsemit comments in code disassembly; for more readable source positions you should add —no-concurrent_recompilationboolfalse
--enable-sse3enable use of SSE3 instructions if availablebooltrue
--enable-ssse3enable use of SSSE3 instructions if availablebooltrue
--enable-sse4-1enable use of SSE4.1 instructions if availablebooltrue
--enable-sahfenable use of SAHF instruction if availableX64 onlybool
--enable-avxenable use of AVX instructions if availablebooltrue
--enable-fma3enable use of FMA3 instructions if availablebooltrue
--enable-bmi1enable use of BMI1 instructions if availablebooltrue
--enable-bmi2enable use of BMI2 instructions if availablebooltrue
--enable-lzcntenable use of LZCNT instruction if availablebooltrue
--enable-popcntenable use of POPCNT instruction if availablebooltrue
--arm-archgenerate instructions for the selected ARM architecture if available: armv6, armv7, armv7+sudiv or armv8stringarmv8
--force-long-branchesforce all emitted branches to be in long modeMIPS/PPC onlybool
--mcpuenable optimization for specific cpustringauto
--partial-constant-poolenable use of partial constant poolsX64 onlybool
--enable-armv7deprecateduse —arm_arch insteadmaybe_bool
--enable-vfp3deprecateduse —arm_arch insteadmaybe_bool
--enable-32dregsdeprecateduse —arm_arch insteadmaybe_bool
--enable-neondeprecateduse —arm_arch insteadmaybe_bool
--enable-sudivdeprecateduse —arm_arch insteadmaybe_bool
--enable-armv8deprecateduse —arm_arch insteadmaybe_bool
--enable-regexp-unaligned-accessesenable unaligned accesses for the regexp enginebooltrue
--script-streamingenable parsing on backgroundbooltrue
--disable-old-api-accessorsDisable old-style API accessors whose setters trigger through the prototype chainboolfalse
--expose-natives-asexpose natives in global objectstringnullptr
--expose-free-bufferexpose freeBuffer extensionboolfalse
--expose-gcexpose gc extensionboolfalse
--expose-gc-asexpose gc extension under the specified namestringnullptr
--expose-externalize-stringexpose externalize string extensionboolfalse
--expose-trigger-failureexpose trigger-failure extensionboolfalse
--stack-trace-limitnumber of stack frames to captureint10
--builtins-in-stack-tracesshow built-in functions in stack tracesboolfalse
--enable-experimental-builtinsenable new csa-based experimental builtinsboolfalse
--disallow-code-generation-from-stringsdisallow eval and friendsboolfalse
--expose-async-hooksexpose async_hooks objectboolfalse
--allow-unsafe-function-constructorallow invoking the function constructor without security checksboolfalse
--force-slow-pathalways take the slow path for builtinsboolfalse
--inline-newuse fast inline allocationbooltrue
--tracetrace function callsboolfalse
--lazyuse lazy compilationbooltrue
--trace-opttrace lazy optimizationboolfalse
--trace-opt-verboseextra verbose compilation tracingboolfalse
--trace-opt-statstrace lazy optimization statisticsboolfalse
--trace-deopttrace optimize function deoptimizationboolfalse
--trace-file-namesinclude file names in trace-opt/trace-deopt outputboolfalse
--trace-interruptstrace interrupts when they are handledboolfalse
--optuse adaptive optimizationsbooltrue
--always-optalways try to optimize functionsboolfalse
--always-osralways try to OSR functionsboolfalse
--prepare-always-optprepare for turning on always optboolfalse
--trace-serializerprint code serializer traceboolfalse
--compilation-cacheenable compilation cachebooltrue
--cache-prototype-transitionscache prototype transitionsbooltrue
--compiler-dispatcherenable compiler dispatcherboolfalse
--trace-compiler-dispatchertrace compiler dispatcher activityboolfalse
--trace-compiler-dispatcher-jobstrace progress of individual jobs managed by the compiler dispatcherboolfalse
--cpu-profiler-sampling-intervalCPU profiler sampling interval in microsecondsint1000
--trace-js-array-abusetrace out-of-bounds accesses to JS arraysboolfalse
--trace-external-array-abusetrace out-of-bounds-accesses to external arraysboolfalse
--trace-array-abusetrace out-of-bounds accesses to all arraysboolfalse
--trace-side-effect-free-debug-evaluateprint debug messages for side-effect-free debug-evaluate for testingboolfalse
--hard-abortabort by crashingbooltrue
--expose-inspector-scriptsexpose injected-script-source.js for debuggingboolfalse
--stack-sizedefault size of stack region v8 is allowed to usein kBytesint
--max-stack-trace-source-lengthmaximum length of function source code printed in a stack trace.int300
--clear-exceptions-on-js-entryclear pending exceptions when entering JavaScriptboolfalse
--histogram-intervaltime interval in ms for aggregating memory histogramsint600000
--heap-profiler-trace-objectsDump heap object allocations/movements/size_updatesboolfalse
--heap-profiler-use-embedder-graphUse the new EmbedderGraph API to get embedder nodesbooltrue
--heap-snapshot-string-limittruncate strings to this length in the heap snapshotint1024
--sampling-heap-profiler-suppress-randomnessUse constant sample intervals to eliminate test flakinessboolfalse
--use-idle-notificationUse idle notification to reduce memory footprint.booltrue
--use-icuse inline cachingbooltrue
--trace-ictrace inline cache state transitions for tools/ic-processorboolfalse
--ic-statsinline cache state transitions statisticsint0
--native-code-countersgenerate extra code for manipulating stats countersboolfalse
--thin-stringsEnable ThinString supportbooltrue
--trace-prototype-usersTrace updates to prototype user trackingboolfalse
--use-verbose-printerallows verbose printingbooltrue
--trace-for-in-enumerateTrace for-in enumerate slow-pathsboolfalse
--trace-mapstrace map creationboolfalse
--trace-maps-detailsalso log map detailsbooltrue
--allow-natives-syntaxallow natives syntaxboolfalse
--lazy-inner-functionsenable lazy parsing inner functionsbooltrue
--aggressive-lazy-inner-functionseven lazier inner function parsingbooltrue
--preparser-scope-analysisperform scope analysis for preparsed inner functionsbooltrue
--trace-simTrace simulator executionboolfalse
--debug-simEnable debugging the simulatorboolfalse
--check-icacheCheck icache flushes in ARM and MIPS simulatorboolfalse
--stop-sim-atSimulator stop after x number of instructionsint0
--sim-stack-alignmentStack alingment in bytes in simulator4 or 8, 8 is defaultint
--sim-stack-sizeStack size of the ARM64, MIPS64 and PPC64 simulator in kBytesdefault is 2 MBint
--log-colourWhen logging, try to use coloured output.booltrue
--ignore-asm-unimplemented-breakDon’t break for ASM_UNIMPLEMENTED_BREAK macros.boolfalse
--trace-sim-messagesTrace simulator debug messages. Implied by —trace-sim.boolfalse
--stack-trace-on-illegalprint stack trace when an illegal exception is thrownboolfalse
--abort-on-uncaught-exceptionabort programdump core when an uncaught exception is thrownbool
--abort-on-stack-or-string-length-overflowAbort program when the stack overflows or a string exceeds maximum lengthas opposed to throwing RangeError). This is useful for fuzzing where the spec behaviour would introduce nondeterminism.bool
--randomize-hashesrandomize hashes to avoid predictable hash collisionswith snapshots this option cannot override the baked-in seedbool
--rehash-snapshotrehash strings from the snapshot to override the baked-in seedbooltrue
--hash-seedFixed seed to use to hash property keys0 means random)(with snapshots this option cannot override the baked-in seeduint64
--random-seedDefault seed for initializing random generator0, the default, means to use system random).int
--fuzzer-random-seedDefault seed for initializing fuzzer random generator0, the default, means to use v8’s random number generator seed).int
--trace-railtrace RAIL modeboolfalse
--print-all-exceptionsprint exception object and stack trace on each thrown exceptionboolfalse
--runtime-call-statsreport runtime call counts and timesboolfalse
--runtime-statsinternal usage only for controlling runtime statisticsint0
--print-embedded-builtin-candidatesPrints builtins that are not yet embedded but could be.boolfalse
--lazy-deserializationDeserialize code lazily from the snapshot.booltrue
--lazy-handler-deserializationDeserialize bytecode handlers lazily from the snapshot.booltrue
--trace-lazy-deserializationTrace lazy deserialization.boolfalse
--profile-deserializationPrint the time it takes to deserialize the snapshot.boolfalse
--serialization-statisticsCollect statistics on serialized objects.boolfalse
--serialization-chunk-sizeCustom size for serialization chunksuint4096
--regexp-optimizationgenerate optimized regexp codebooltrue
--regexp-mode-modifiersenable inline flags in regexp.boolfalse
--testing-bool-flagtesting_bool_flagbooltrue
--testing-maybe-bool-flagtesting_maybe_bool_flagmaybe_boolunset
--testing-int-flagtesting_int_flagint13
--testing-float-flagfloat-flagfloat2.5
--testing-string-flagstring-flagstringHello, world!
--testing-prng-seedSeed used for threading test randomnessint42
--embedded-srcPath for the generated embedded data file.mksnapshot onlystring
--embedded-variantLabel to disambiguate symbols in embedded data file.mksnapshot onlystring
--startup-srcWrite V8 startup as C++ src.mksnapshot onlystring
--startup-blobWrite V8 startup blob file.mksnapshot onlystring
--helpPrint usage message, including flags, on consolebooltrue
--dump-countersDump counters on exitboolfalse
--dump-counters-nvpDump counters as name-value pairs on exitboolfalse
--use-external-stringsUse external strings for source codeboolfalse
--map-countersMap counters to a filestring
--js-argumentsPass all remaining arguments to the script. Alias for ”—“.arguments
--mock-arraybuffer-allocatorUse a mock ArrayBuffer allocator for testing.boolfalse
--logMinimal loggingno API, code, GC, suspect, or handles samples).bool
--log-allLog all events to the log file.boolfalse
--log-apiLog API events to the log file.boolfalse
--log-codeLog code events to the log file without profiling.boolfalse
--log-handlesLog global handle events.boolfalse
--log-suspectLog suspect operations.boolfalse
--log-source-codeLog source code.boolfalse
--log-function-eventsLog function eventsparse, compile, execute separately.bool
--profLog statistical profiling informationimplies —log-code).bool
--detailed-line-infoAlways generate detailed line information for CPU profiling.boolfalse
--prof-sampling-intervalInterval for —prof samplesin microseconds).int
--prof-cppLike —prof, but ignore generated code.boolfalse
--prof-browser-modeUsed with —prof, turns on browser-compatible mode for profiling.booltrue
--logfileSpecify the name of the log file.stringv8.log
--logfile-per-isolateSeparate log files for each isolate.booltrue
--ll-profEnable low-level linux profiler.boolfalse
--interpreted-frames-native-stackShow interpreted frames on the native stackuseful for external profilers).bool
--perf-basic-profEnable perf linux profilerbasic support).bool
--perf-basic-prof-only-functionsOnly report function code ranges to perfi.e. no stubs).bool
--perf-profEnable perf linux profilerexperimental annotate support).bool
--perf-prof-unwinding-infoEnable unwinding info for perf linux profilerexperimental).bool
--gc-fake-mmapSpecify the name of the file for fake gc mmap used in ll_profstring/tmp/v8_gc
--log-internal-timer-eventsTime internal events.boolfalse
--log-timer-eventsTime events including external callbacks.boolfalse
--log-instruction-statsLog AArch64 instruction statistics.boolfalse
--log-instruction-fileAArch64 instruction statistics log file.stringarm64_inst.csv
--log-instruction-periodAArch64 instruction statistics logging period.int4194304
--redirect-code-tracesoutput deopt information and disassembly into file code--.asmboolfalse
--redirect-code-traces-tooutput deopt information and disassembly into the given filestringnullptr
--print-opt-sourceprint source code of optimized and inlined functionsboolfalse
--trace-elements-transitionstrace elements transitionsboolfalse
--trace-creation-allocation-sitestrace the creation of allocation sitesboolfalse
--print-code-stubsprint code stubsboolfalse
--test-secondary-stub-cachetest secondary stub cache by disabling the primary oneboolfalse
--test-primary-stub-cachetest primary stub cache by disabling the secondary oneboolfalse
--test-small-max-function-context-stub-sizeenable testing the function context size overflow path by making the maximum size smallerboolfalse
--print-codeprint generated codeboolfalse
--print-opt-codeprint optimized codeboolfalse
--print-opt-code-filterfilter for printing optimized codestring*
--print-code-verboseprint more information for codeboolfalse
--print-builtin-codeprint generated code for builtinsboolfalse
--print-builtin-code-filterfilter for printing builtin codestring*
--print-builtin-sizeprint code size for builtinsboolfalse
--sodiumprint generated code output suitable for use with the Sodium code viewerboolfalse
--print-all-codeenable all flags related to printing codeboolfalse
--predictableenable predictable modeboolfalse
--single-threadeddisable the use of background tasksboolfalse
--single-threaded-gcdisable the use of background gc tasksboolfalse

→ Here's my latest YouTube video

→ Get my Node.js Handbook

→ I wrote 17 books to help you become a better developer, download them all at $0 cost by joining my newsletter

JOIN MY CODING BOOTCAMP, an amazing cohort course that will be a huge step up in your coding career - covering React, Next.js - next edition February 2025

Bootcamp 2025

Join the waiting list