v8
V8 is Google’s open source high-performance JavaScript and WebAssembly engine, written in C++.
Loading...
Searching...
No Matches
flags.h File Reference
#include <optional>
#include "src/common/globals.h"
#include "src/flags/flag-definitions.h"
Include dependency graph for flags.h:

Go to the source code of this file.

Classes

class  v8::internal::FlagValue< T >
 
struct  v8::internal::FlagValues
 
class  v8::internal::FlagList
 
class  v8::internal::FlagList::HelpOptions
 

Namespaces

namespace  v8
 
namespace  v8::internal
 

Macros

#define FLAG_MODE_DECLARE
 
#define DEFINE_IMPLICATION(whenflag, thenflag)
 
#define DEFINE_WEAK_IMPLICATION(whenflag, thenflag)
 
#define DEFINE_WEAK_NEG_IMPLICATION(whenflag, thenflag)
 
#define DEFINE_NEG_IMPLICATION(whenflag, thenflag)
 
#define DEFINE_NEG_NEG_IMPLICATION(whenflag, thenflag)
 
#define FLAG_FULL(ftype, ctype, nam, def, cmt)
 
#define FLAG_READONLY(ftype, ctype, nam, def, cmt)
 
#define FLAG_ALIAS(ftype, ctype, alias, nam)
 
#define DEFINE_VALUE_IMPLICATION(whenflag, thenflag, value)
 
#define DEFINE_WEAK_VALUE_IMPLICATION(whenflag, thenflag, value)
 
#define DEFINE_GENERIC_IMPLICATION(whenflag, statement)
 
#define DEFINE_NEG_VALUE_IMPLICATION(whenflag, thenflag, value)
 
#define DEFINE_NEG_VALUE_VALUE_IMPLICATION(whenflag, whenvalue, thenflag, thenvalue)
 
#define DEFINE_MIN_VALUE_IMPLICATION(flag, min_value)
 
#define DEFINE_DISABLE_FLAG_IMPLICATION(whenflag, thenflag)
 
#define DEFINE_REQUIREMENT(statement)
 
#define ENABLE_SPARKPLUG_BY_DEFAULT   false
 
#define ARM_ARCH_DEFAULT   "armv8"
 
#define ENABLE_LOG_COLOUR   true
 
#define DEFINE_BOOL(nam, def, cmt)
 
#define DEFINE_BOOL_READONLY(nam, def, cmt)
 
#define DEFINE_MAYBE_BOOL(nam, cmt)
 
#define DEFINE_INT(nam, def, cmt)
 
#define DEFINE_UINT(nam, def, cmt)
 
#define DEFINE_UINT_READONLY(nam, def, cmt)
 
#define DEFINE_UINT64(nam, def, cmt)
 
#define DEFINE_FLOAT(nam, def, cmt)
 
#define DEFINE_SIZE_T(nam, def, cmt)
 
#define DEFINE_STRING(nam, def, cmt)
 
#define DEFINE_ALIAS_BOOL(alias, nam)
 
#define DEFINE_ALIAS_INT(alias, nam)
 
#define DEFINE_ALIAS_FLOAT(alias, nam)
 
#define DEFINE_ALIAS_SIZE_T(alias, nam)
 
#define DEFINE_ALIAS_STRING(alias, nam)
 
#define DEFINE_DEBUG_BOOL   DEFINE_BOOL_READONLY
 
#define FLAG   FLAG_FULL
 
#define DEFINE_EXPERIMENTAL_FEATURE(nam, cmt)
 
#define HARMONY_INPROGRESS_BASE(V)
 
#define JAVASCRIPT_INPROGRESS_FEATURES_BASE(V)
 
#define HARMONY_INPROGRESS(V)
 
#define JAVASCRIPT_INPROGRESS_FEATURES(V)
 
#define HARMONY_STAGED_BASE(V)
 
#define JAVASCRIPT_STAGED_FEATURES_BASE(V)
 
#define HARMONY_STAGED(V)
 
#define JAVASCRIPT_STAGED_FEATURES(V)
 
#define HARMONY_SHIPPING_BASE(V)
 
#define JAVASCRIPT_SHIPPING_FEATURES_BASE(V)
 
#define HARMONY_SHIPPING(V)
 
#define JAVASCRIPT_SHIPPING_FEATURES(V)
 
#define FLAG_INPROGRESS_FEATURES(id, description)
 
#define FLAG_STAGED_FEATURES(id, description)
 
#define FLAG_SHIPPING_FEATURES(id, description)
 
#define V8_ENABLE_DOUBLE_CONST_STORE_CHECK_BOOL   false
 
#define V8_LAZY_SOURCE_POSITIONS_BOOL   false
 
#define V8_LITE_MODE_BOOL   false
 
#define V8_ALLOCATION_FOLDING_BOOL   false
 
#define V8_DISABLE_WRITE_BARRIERS_BOOL   false
 
#define V8_ENABLE_UNCONDITIONAL_WRITE_BARRIERS_BOOL   false
 
#define V8_SINGLE_GENERATION_BOOL   false
 
#define V8_ENABLE_CONSERVATIVE_STACK_SCANNING_BOOL   false
 
#define V8_ENABLE_DIRECT_HANDLE_BOOL   false
 
#define V8_ENABLE_LOCAL_OFF_STACK_CHECK_BOOL   false
 
#define FUTURE_BOOL   false
 
#define V8_JITLESS_BOOL   false
 
#define V8_ALLOCATION_SITE_TRACKING_BOOL   false
 
#define DEFAULT_SCAVENGER_MAX_NEW_SPACE_CAPACITY_MB   32
 
#define FLAG   FLAG_READONLY
 
#define FLAG   FLAG_FULL
 
#define V8_ENABLE_TURBOFAN_BOOL   false
 
#define DEFINE_SLOW_TRACING_BOOL   DEFINE_BOOL_READONLY
 
#define DEFAULT_MAX_POLYMORPHIC_MAP_COUNT   4
 
#define V8_SHORT_BUILTIN_CALLS_BOOL   false
 
#define REGEXP_PEEPHOLE_OPTIMIZATION_BOOL   true
 
#define V8_CET_SHADOW_STACK_BOOL   false
 
#define V8_ENABLE_BLACK_ALLOCATED_PAGES_BOOL   false
 
#define V8_ENABLE_STICKY_MARK_BITS_BOOL   false
 
#define V8_MINOR_MS_CONCURRENT_MARKING_MIN_CAPACITY_DEFAULT   8
 
#define FLAG   FLAG_READONLY
 
#define FLAG   FLAG_READONLY
 
#define FLAG   FLAG_FULL
 
#define DEFAULT_PROF_SAMPLING_INTERVAL   1000
 
#define DEFINE_PERF_PROF_BOOL(nam, cmt)
 
#define DEFINE_PERF_PROF_IMPLICATION(...)
 
#define DEFAULT_PERF_BASIC_PROF_PATH   "/tmp"
 
#define DEFAULT_PERF_PROF_PATH   "."
 
#define FLAG   FLAG_READONLY
 
#define FLAG   FLAG_FULL
 
#define FLAG   FLAG_READONLY
 
#define LOG_FLAGS(V)
 
#define SET_IMPLICATIONS(V)
 

Variables

V8_EXPORT_PRIVATE FlagValues v8::internal::v8_flags
 

Macro Definition Documentation

◆ ARM_ARCH_DEFAULT

#define ARM_ARCH_DEFAULT   "armv8"

◆ DEFAULT_MAX_POLYMORPHIC_MAP_COUNT

#define DEFAULT_MAX_POLYMORPHIC_MAP_COUNT   4

◆ DEFAULT_PERF_BASIC_PROF_PATH

#define DEFAULT_PERF_BASIC_PROF_PATH   "/tmp"

◆ DEFAULT_PERF_PROF_PATH

#define DEFAULT_PERF_PROF_PATH   "."

◆ DEFAULT_PROF_SAMPLING_INTERVAL

#define DEFAULT_PROF_SAMPLING_INTERVAL   1000

◆ DEFAULT_SCAVENGER_MAX_NEW_SPACE_CAPACITY_MB

#define DEFAULT_SCAVENGER_MAX_NEW_SPACE_CAPACITY_MB   32

◆ DEFINE_ALIAS_BOOL

#define DEFINE_ALIAS_BOOL ( alias,
nam )
Value:
FLAG_ALIAS(BOOL, bool, alias, nam)
#define FLAG_ALIAS(ftype, ctype, alias, nam)
int BOOL

◆ DEFINE_ALIAS_FLOAT

#define DEFINE_ALIAS_FLOAT ( alias,
nam )
Value:
FLAG_ALIAS(FLOAT, double, alias, nam)

◆ DEFINE_ALIAS_INT

#define DEFINE_ALIAS_INT ( alias,
nam )
Value:
FLAG_ALIAS(INT, int, alias, nam)

◆ DEFINE_ALIAS_SIZE_T

#define DEFINE_ALIAS_SIZE_T ( alias,
nam )
Value:
FLAG_ALIAS(SIZE_T, size_t, alias, nam)

◆ DEFINE_ALIAS_STRING

#define DEFINE_ALIAS_STRING ( alias,
nam )
Value:
FLAG_ALIAS(STRING, const char*, alias, nam)

◆ DEFINE_BOOL

#define DEFINE_BOOL ( nam,
def,
cmt )
Value:
FLAG(BOOL, bool, nam, def, cmt)
#define FLAG

◆ DEFINE_BOOL_READONLY

#define DEFINE_BOOL_READONLY ( nam,
def,
cmt )
Value:
FLAG_READONLY(BOOL, bool, nam, def, cmt)
#define FLAG_READONLY(ftype, ctype, nam, def, cmt)

◆ DEFINE_DEBUG_BOOL

#define DEFINE_DEBUG_BOOL   DEFINE_BOOL_READONLY

◆ DEFINE_DISABLE_FLAG_IMPLICATION

#define DEFINE_DISABLE_FLAG_IMPLICATION ( whenflag,
thenflag )

◆ DEFINE_EXPERIMENTAL_FEATURE

#define DEFINE_EXPERIMENTAL_FEATURE ( nam,
cmt )
Value:
FLAG(BOOL, bool, nam, false, cmt " (experimental)") \
DEFINE_IMPLICATION(nam, experimental)

◆ DEFINE_FLOAT

#define DEFINE_FLOAT ( nam,
def,
cmt )
Value:
FLAG(FLOAT, double, nam, def, cmt)

◆ DEFINE_GENERIC_IMPLICATION

#define DEFINE_GENERIC_IMPLICATION ( whenflag,
statement )

◆ DEFINE_IMPLICATION

#define DEFINE_IMPLICATION ( whenflag,
thenflag )
Value:
DEFINE_VALUE_IMPLICATION(whenflag, thenflag, true)
#define DEFINE_VALUE_IMPLICATION(whenflag, thenflag, value)

◆ DEFINE_INT

#define DEFINE_INT ( nam,
def,
cmt )
Value:
FLAG(INT, int, nam, def, cmt)

◆ DEFINE_MAYBE_BOOL

#define DEFINE_MAYBE_BOOL ( nam,
cmt )
Value:
FLAG(MAYBE_BOOL, std::optional<bool>, nam, std::nullopt, cmt)

◆ DEFINE_MIN_VALUE_IMPLICATION

#define DEFINE_MIN_VALUE_IMPLICATION ( flag,
min_value )

◆ DEFINE_NEG_IMPLICATION

#define DEFINE_NEG_IMPLICATION ( whenflag,
thenflag )
Value:
DEFINE_VALUE_IMPLICATION(whenflag, thenflag, false)

◆ DEFINE_NEG_NEG_IMPLICATION

#define DEFINE_NEG_NEG_IMPLICATION ( whenflag,
thenflag )
Value:
DEFINE_NEG_VALUE_IMPLICATION(whenflag, thenflag, false)
#define DEFINE_NEG_VALUE_IMPLICATION(whenflag, thenflag, value)

◆ DEFINE_NEG_VALUE_IMPLICATION

#define DEFINE_NEG_VALUE_IMPLICATION ( whenflag,
thenflag,
value )

◆ DEFINE_NEG_VALUE_VALUE_IMPLICATION

#define DEFINE_NEG_VALUE_VALUE_IMPLICATION ( whenflag,
whenvalue,
thenflag,
thenvalue )

◆ DEFINE_PERF_PROF_BOOL

#define DEFINE_PERF_PROF_BOOL ( nam,
cmt )
Value:
DEFINE_BOOL_READONLY(nam, false, cmt)
#define DEFINE_BOOL_READONLY(nam, def, cmt)

◆ DEFINE_PERF_PROF_IMPLICATION

#define DEFINE_PERF_PROF_IMPLICATION ( ...)

◆ DEFINE_REQUIREMENT

#define DEFINE_REQUIREMENT ( statement)

◆ DEFINE_SIZE_T

#define DEFINE_SIZE_T ( nam,
def,
cmt )
Value:
FLAG(SIZE_T, size_t, nam, def, cmt)

◆ DEFINE_SLOW_TRACING_BOOL

#define DEFINE_SLOW_TRACING_BOOL   DEFINE_BOOL_READONLY

◆ DEFINE_STRING

#define DEFINE_STRING ( nam,
def,
cmt )
Value:
FLAG(STRING, const char*, nam, def, cmt)

◆ DEFINE_UINT

#define DEFINE_UINT ( nam,
def,
cmt )
Value:
FLAG(UINT, unsigned int, nam, def, cmt)

◆ DEFINE_UINT64

#define DEFINE_UINT64 ( nam,
def,
cmt )
Value:
FLAG(UINT64, uint64_t, nam, def, cmt)

◆ DEFINE_UINT_READONLY

#define DEFINE_UINT_READONLY ( nam,
def,
cmt )
Value:
FLAG_READONLY(UINT, unsigned int, nam, def, cmt)

◆ DEFINE_VALUE_IMPLICATION

#define DEFINE_VALUE_IMPLICATION ( whenflag,
thenflag,
value )

◆ DEFINE_WEAK_IMPLICATION

#define DEFINE_WEAK_IMPLICATION ( whenflag,
thenflag )
Value:
DEFINE_WEAK_VALUE_IMPLICATION(whenflag, thenflag, true)
#define DEFINE_WEAK_VALUE_IMPLICATION(whenflag, thenflag, value)

◆ DEFINE_WEAK_NEG_IMPLICATION

#define DEFINE_WEAK_NEG_IMPLICATION ( whenflag,
thenflag )
Value:
DEFINE_WEAK_VALUE_IMPLICATION(whenflag, thenflag, false)

◆ DEFINE_WEAK_VALUE_IMPLICATION

#define DEFINE_WEAK_VALUE_IMPLICATION ( whenflag,
thenflag,
value )

◆ ENABLE_LOG_COLOUR

#define ENABLE_LOG_COLOUR   true

◆ ENABLE_SPARKPLUG_BY_DEFAULT

#define ENABLE_SPARKPLUG_BY_DEFAULT   false

◆ FLAG [1/9]

#define FLAG   FLAG_FULL

◆ FLAG [2/9]

#define FLAG   FLAG_READONLY

◆ FLAG [3/9]

#define FLAG   FLAG_FULL

◆ FLAG [4/9]

#define FLAG   FLAG_READONLY

◆ FLAG [5/9]

#define FLAG   FLAG_READONLY

◆ FLAG [6/9]

#define FLAG   FLAG_FULL

◆ FLAG [7/9]

#define FLAG   FLAG_READONLY

◆ FLAG [8/9]

#define FLAG   FLAG_FULL

◆ FLAG [9/9]

#define FLAG   FLAG_READONLY

◆ FLAG_ALIAS

#define FLAG_ALIAS ( ftype,
ctype,
alias,
nam )

◆ FLAG_FULL

#define FLAG_FULL ( ftype,
ctype,
nam,
def,
cmt )
Value:
FlagValue<ctype> nam{def};

◆ FLAG_INPROGRESS_FEATURES

#define FLAG_INPROGRESS_FEATURES ( id,
description )
Value:
DEFINE_BOOL(id, false, \
"enable " #description " (in progress / experimental)") \
DEFINE_IMPLICATION(id, experimental)
#define DEFINE_BOOL(nam, def, cmt)

◆ FLAG_MODE_DECLARE

#define FLAG_MODE_DECLARE

Definition at line 69 of file flags.h.

◆ FLAG_READONLY

#define FLAG_READONLY ( ftype,
ctype,
nam,
def,
cmt )
Value:
static constexpr FlagValue<ctype> nam{def};

◆ FLAG_SHIPPING_FEATURES

#define FLAG_SHIPPING_FEATURES ( id,
description )
Value:
DEFINE_BOOL(id, true, "enable " #description) \
DEFINE_NEG_NEG_IMPLICATION(harmony_shipping, id) \
DEFINE_NEG_NEG_IMPLICATION(js_shipping, id)

◆ FLAG_STAGED_FEATURES

#define FLAG_STAGED_FEATURES ( id,
description )
Value:
DEFINE_BOOL(id, false, "enable " #description) \
DEFINE_IMPLICATION(harmony, id) \
DEFINE_IMPLICATION(js_staging, id)

◆ FUTURE_BOOL

#define FUTURE_BOOL   false

◆ HARMONY_INPROGRESS

#define HARMONY_INPROGRESS ( V)
Value:
#define V(Name)
#define HARMONY_INPROGRESS_BASE(V)

◆ HARMONY_INPROGRESS_BASE

#define HARMONY_INPROGRESS_BASE ( V)
Value:
V(harmony_temporal, "Temporal") \
V(harmony_shadow_realm, "harmony ShadowRealm") \
V(harmony_struct, "harmony structs, shared structs, and shared arrays")

◆ HARMONY_SHIPPING

#define HARMONY_SHIPPING ( V)
Value:
#define HARMONY_SHIPPING_BASE(V)

◆ HARMONY_SHIPPING_BASE

#define HARMONY_SHIPPING_BASE ( V)
Value:
V(harmony_import_attributes, "harmony import attributes")

◆ HARMONY_STAGED

#define HARMONY_STAGED ( V)
Value:
#define HARMONY_STAGED_BASE(V)

◆ HARMONY_STAGED_BASE

#define HARMONY_STAGED_BASE ( V)

◆ JAVASCRIPT_INPROGRESS_FEATURES

#define JAVASCRIPT_INPROGRESS_FEATURES ( V)
Value:
#define JAVASCRIPT_INPROGRESS_FEATURES_BASE(V)

◆ JAVASCRIPT_INPROGRESS_FEATURES_BASE

#define JAVASCRIPT_INPROGRESS_FEATURES_BASE ( V)
Value:
V(js_decorators, "decorators") \
V(js_source_phase_imports, "source phase imports") \
V(js_base_64, "Uint8Array to/from base64 and hex")

◆ JAVASCRIPT_SHIPPING_FEATURES

#define JAVASCRIPT_SHIPPING_FEATURES ( V)
Value:
#define JAVASCRIPT_SHIPPING_FEATURES_BASE(V)

◆ JAVASCRIPT_SHIPPING_FEATURES_BASE

#define JAVASCRIPT_SHIPPING_FEATURES_BASE ( V)
Value:
V(js_regexp_duplicate_named_groups, "RegExp duplicate named groups") \
V(js_regexp_modifiers, "RegExp modifiers") \
V(js_promise_try, "Promise.try") \
V(js_atomics_pause, "Atomics.pause") \
V(js_error_iserror, "Error.isError") \
V(js_regexp_escape, "RegExp.escape")

◆ JAVASCRIPT_STAGED_FEATURES

#define JAVASCRIPT_STAGED_FEATURES ( V)
Value:
#define JAVASCRIPT_STAGED_FEATURES_BASE(V)

◆ JAVASCRIPT_STAGED_FEATURES_BASE

#define JAVASCRIPT_STAGED_FEATURES_BASE ( V)
Value:
V(js_explicit_resource_management, "explicit resource management") \
V(js_float16array, \
"Float16Array, Math.f16round, DataView.getFloat16, DataView.setFloat16")

◆ LOG_FLAGS

#define LOG_FLAGS ( V)
Value:
V(log_code) \
V(log_code_disassemble) \
V(log_deopt) \
V(log_feedback_vector) \
V(log_function_events) \
V(log_ic) \
V(log_maps) \
V(log_source_code) \
V(log_source_position) \
V(log_timer_events) \
V(prof) \
V(prof_cpp)

◆ REGEXP_PEEPHOLE_OPTIMIZATION_BOOL

#define REGEXP_PEEPHOLE_OPTIMIZATION_BOOL   true

◆ SET_IMPLICATIONS

#define SET_IMPLICATIONS ( V)
Value:
DEFINE_IMPLICATION(log_all, V) \
DEFINE_IMPLICATION(V, log)
#define DEFINE_IMPLICATION(whenflag, thenflag)

◆ V8_ALLOCATION_FOLDING_BOOL

#define V8_ALLOCATION_FOLDING_BOOL   false

◆ V8_ALLOCATION_SITE_TRACKING_BOOL

#define V8_ALLOCATION_SITE_TRACKING_BOOL   false

◆ V8_CET_SHADOW_STACK_BOOL

#define V8_CET_SHADOW_STACK_BOOL   false

◆ V8_DISABLE_WRITE_BARRIERS_BOOL

#define V8_DISABLE_WRITE_BARRIERS_BOOL   false

◆ V8_ENABLE_BLACK_ALLOCATED_PAGES_BOOL

#define V8_ENABLE_BLACK_ALLOCATED_PAGES_BOOL   false

◆ V8_ENABLE_CONSERVATIVE_STACK_SCANNING_BOOL

#define V8_ENABLE_CONSERVATIVE_STACK_SCANNING_BOOL   false

◆ V8_ENABLE_DIRECT_HANDLE_BOOL

#define V8_ENABLE_DIRECT_HANDLE_BOOL   false

◆ V8_ENABLE_DOUBLE_CONST_STORE_CHECK_BOOL

#define V8_ENABLE_DOUBLE_CONST_STORE_CHECK_BOOL   false

◆ V8_ENABLE_LOCAL_OFF_STACK_CHECK_BOOL

#define V8_ENABLE_LOCAL_OFF_STACK_CHECK_BOOL   false

◆ V8_ENABLE_STICKY_MARK_BITS_BOOL

#define V8_ENABLE_STICKY_MARK_BITS_BOOL   false

◆ V8_ENABLE_TURBOFAN_BOOL

#define V8_ENABLE_TURBOFAN_BOOL   false

◆ V8_ENABLE_UNCONDITIONAL_WRITE_BARRIERS_BOOL

#define V8_ENABLE_UNCONDITIONAL_WRITE_BARRIERS_BOOL   false

◆ V8_JITLESS_BOOL

#define V8_JITLESS_BOOL   false

◆ V8_LAZY_SOURCE_POSITIONS_BOOL

#define V8_LAZY_SOURCE_POSITIONS_BOOL   false

◆ V8_LITE_MODE_BOOL

#define V8_LITE_MODE_BOOL   false

◆ V8_MINOR_MS_CONCURRENT_MARKING_MIN_CAPACITY_DEFAULT

#define V8_MINOR_MS_CONCURRENT_MARKING_MIN_CAPACITY_DEFAULT   8

◆ V8_SHORT_BUILTIN_CALLS_BOOL

#define V8_SHORT_BUILTIN_CALLS_BOOL   false

◆ V8_SINGLE_GENERATION_BOOL

#define V8_SINGLE_GENERATION_BOOL   false