{"record":{"id":"45595b5729401558","repo":"nodejs/node","slug":"only-one-of-the-v8-enable-temporal-support-or","errorCode":null,"errorMessage":"Only one of the --v8-enable-temporal-support or --v8-disable-temporal-support options can be specified at a time.","messagePattern":"Only one of the --v8-enable-temporal-support or --v8-disable-temporal-support options can be specified at a time\\.","errorType":"validation","errorClass":"Exception","httpStatus":null,"severity":"error","filePath":"configure.py","lineNumber":2264,"sourceCode":"    if pkg_libs and pkg_libpath:\n      output['libraries'] += [pkg_libpath] + pkg_libs.split()\n    if pkg_cflags:\n      output['include_dirs'] += [flag for flag in [flag.strip() for flag in pkg_cflags.split('-I')] if flag]\n  if options.static_zoslib_gyp:\n    o['variables']['static_zoslib_gyp'] = options.static_zoslib_gyp\n  if flavor != 'linux' and options.v8_enable_hugepage:\n    raise Exception('--v8-enable-hugepage is supported only on linux.')\n  o['variables']['v8_enable_hugepage'] = 1 if options.v8_enable_hugepage else 0\n  if options.v8_enable_short_builtin_calls or o['variables']['target_arch'] == 'x64':\n    o['variables']['v8_enable_short_builtin_calls'] = 1\n  if options.v8_enable_snapshot_compression:\n    o['variables']['v8_enable_snapshot_compression'] = 1\n  if all(opt in sys.argv for opt in ['--v8-enable-object-print', '--v8-disable-object-print']):\n    raise Exception(\n        'Only one of the --v8-enable-object-print or --v8-disable-object-print options '\n        'can be specified at a time.')\n  if all(opt in sys.argv for opt in ['--v8-enable-temporal-support', '--v8-disable-temporal-support']):\n    raise Exception(\n        'Only one of the --v8-enable-temporal-support or --v8-disable-temporal-support options '\n        'can be specified at a time.')\n  if sys.platform != 'darwin':\n    if o['variables']['v8_enable_webassembly'] and o['variables']['target_arch'] == 'x64':\n      o['variables']['v8_enable_wasm_simd256_revec'] = 1\n\ndef configure_openssl(o):\n  variables = o['variables']\n  variables['node_use_openssl'] = b(not options.without_ssl)\n  variables['node_shared_openssl'] = b(options.shared_openssl)\n  variables['node_shared_ngtcp2'] = b(options.shared_ngtcp2)\n  variables['node_shared_nghttp3'] = b(options.shared_nghttp3)\n  variables['openssl_is_fips'] = b(options.openssl_is_fips)\n  variables['node_fipsinstall'] = b(False)\n\n  if options.openssl_no_asm:\n    variables['openssl_no_asm'] = 1\n","sourceCodeStart":2246,"sourceCodeEnd":2282,"githubUrl":"https://github.com/nodejs/node/blob/1b2de5e052fc0fb95fd7fb6846dcec4ade598e9e/configure.py#L2246-L2282","documentation":"configure.py forbids passing both --v8-enable-temporal-support and --v8-disable-temporal-support. These toggle the TC39 Temporal proposal support inside V8 and, like the object-print pair, are validated by a raw sys.argv membership scan rather than an argparse mutex group.","triggerScenarios":"Raised when both 'v8-enable-temporal-support' and 'v8-disable-temporal-support' substrings are present in sys.argv via the `all(opt in sys.argv ...)` test.","commonSituations":"Preset files that appended an override without removing the default; build orchestration that layers a vendor patch enabling Temporal onto a base config that also disables it; flag drift across Node versions where defaults changed.","solutions":["Remove one of the two flags so only your intended Temporal state is expressed.","Drive Temporal from a single variable in your build script and translate it to exactly one configure flag.","Sanity-check argv for known toggle pairs before calling configure.py."],"exampleFix":"// before\n./configure --v8-enable-temporal-support --v8-disable-temporal-support\n// after\n./configure --v8-disable-temporal-support","handlingStrategy":"validation","validationCode":"import sys\npair = {'--v8-enable-temporal-support', '--v8-disable-temporal-support'}\nassert not pair.issubset(sys.argv), 'pass only one of the temporal-support flags'","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Drive Temporal enablement from one config value and translate to a single flag.","Lint configure argv for any enable/disable pair drawn from the same option name."],"tags":["nodejs","configure","v8","flag-conflict","temporal","build"],"backgroundTag":null,"analyzedSha":"1b2de5e052fc0fb95fd7fb6846dcec4ade598e9e","analyzedAt":"2026-08-13T00:53:24.642Z","schemaVersion":2},"datasetVersion":"2026-08-13T04:17:16.726Z"}