summaryrefslogtreecommitdiff
path: root/deps/v8/src/flags.cc
diff options
context:
space:
mode:
Diffstat (limited to 'deps/v8/src/flags.cc')
-rw-r--r--deps/v8/src/flags.cc36
1 files changed, 32 insertions, 4 deletions
diff --git a/deps/v8/src/flags.cc b/deps/v8/src/flags.cc
index ef5772dce4..13046097a6 100644
--- a/deps/v8/src/flags.cc
+++ b/deps/v8/src/flags.cc
@@ -39,6 +39,7 @@ struct Flag {
TYPE_MAYBE_BOOL,
TYPE_INT,
TYPE_UINT,
+ TYPE_UINT64,
TYPE_FLOAT,
TYPE_SIZE_T,
TYPE_STRING,
@@ -78,6 +79,11 @@ struct Flag {
return reinterpret_cast<unsigned int*>(valptr_);
}
+ uint64_t* uint64_variable() const {
+ DCHECK(type_ == TYPE_UINT64);
+ return reinterpret_cast<uint64_t*>(valptr_);
+ }
+
double* float_variable() const {
DCHECK(type_ == TYPE_FLOAT);
return reinterpret_cast<double*>(valptr_);
@@ -121,6 +127,11 @@ struct Flag {
return *reinterpret_cast<const unsigned int*>(defptr_);
}
+ uint64_t uint64_default() const {
+ DCHECK(type_ == TYPE_UINT64);
+ return *reinterpret_cast<const uint64_t*>(defptr_);
+ }
+
double float_default() const {
DCHECK(type_ == TYPE_FLOAT);
return *reinterpret_cast<const double*>(defptr_);
@@ -152,6 +163,8 @@ struct Flag {
return *int_variable() == int_default();
case TYPE_UINT:
return *uint_variable() == uint_default();
+ case TYPE_UINT64:
+ return *uint64_variable() == uint64_default();
case TYPE_FLOAT:
return *float_variable() == float_default();
case TYPE_SIZE_T:
@@ -184,6 +197,9 @@ struct Flag {
case TYPE_UINT:
*uint_variable() = uint_default();
break;
+ case TYPE_UINT64:
+ *uint64_variable() = uint64_default();
+ break;
case TYPE_FLOAT:
*float_variable() = float_default();
break;
@@ -217,6 +233,8 @@ static const char* Type2String(Flag::FlagType type) {
case Flag::TYPE_INT: return "int";
case Flag::TYPE_UINT:
return "uint";
+ case Flag::TYPE_UINT64:
+ return "uint64";
case Flag::TYPE_FLOAT: return "float";
case Flag::TYPE_SIZE_T:
return "size_t";
@@ -243,6 +261,9 @@ std::ostream& operator<<(std::ostream& os, const Flag& flag) { // NOLINT
case Flag::TYPE_UINT:
os << *flag.uint_variable();
break;
+ case Flag::TYPE_UINT64:
+ os << *flag.uint64_variable();
+ break;
case Flag::TYPE_FLOAT:
os << *flag.float_variable();
break;
@@ -464,6 +485,12 @@ int FlagList::SetFlagsFromCommandLine(int* argc,
return_code = j;
}
break;
+ case Flag::TYPE_UINT64:
+ if (!TryParseUnsigned(flag, arg, value, &endp,
+ flag->uint64_variable())) {
+ return_code = j;
+ }
+ break;
case Flag::TYPE_FLOAT:
*flag->float_variable() = strtod(value, &endp);
break;
@@ -604,13 +631,14 @@ void FlagList::PrintHelp() {
CpuFeatures::PrintTarget();
CpuFeatures::PrintFeatures();
- OFStream os(stdout);
+ StdoutStream os;
os << "Synopsis:\n"
" shell [options] [--shell] [<file>...]\n"
" d8 [options] [-e <string>] [--shell] [[--module] <file>...]\n\n"
" -e execute a string in V8\n"
" --shell run an interactive JavaScript shell\n"
" --module execute a file as a JavaScript module\n\n"
+ "Note: the --module option is implicitly enabled for *.mjs files.\n\n"
"Options:\n";
for (const Flag& f : flags) {
@@ -633,9 +661,9 @@ void ComputeFlagListHash() {
#ifdef DEBUG
modified_args_as_string << "debug";
#endif // DEBUG
-#ifdef V8_EMBEDDED_BUILTINS
- modified_args_as_string << "embedded";
-#endif // V8_EMBEDDED_BUILTINS
+ if (FLAG_embedded_builtins) {
+ modified_args_as_string << "embedded";
+ }
for (size_t i = 0; i < num_flags; ++i) {
Flag* current = &flags[i];
if (!current->IsDefault()) {