diff options
Diffstat (limited to 'deps/v8/src/ast/variables.h')
-rw-r--r-- | deps/v8/src/ast/variables.h | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/deps/v8/src/ast/variables.h b/deps/v8/src/ast/variables.h index d33062973b..13a444536d 100644 --- a/deps/v8/src/ast/variables.h +++ b/deps/v8/src/ast/variables.h @@ -131,12 +131,13 @@ class Variable final : public ZoneObject { return kind() != SLOPPY_FUNCTION_NAME_VARIABLE || is_strict(language_mode); } - bool is_function() const { return kind() == FUNCTION_VARIABLE; } bool is_this() const { return kind() == THIS_VARIABLE; } bool is_sloppy_function_name() const { return kind() == SLOPPY_FUNCTION_NAME_VARIABLE; } + bool is_parameter() const { return kind() == PARAMETER_VARIABLE; } + Variable* local_if_not_shadowed() const { DCHECK(mode() == VariableMode::kDynamicLocal && local_if_not_shadowed_ != nullptr); @@ -175,6 +176,13 @@ class Variable final : public ZoneObject { index_ = index; } + void MakeParameterNonSimple() { + DCHECK(is_parameter()); + bit_field_ = VariableModeField::update(bit_field_, VariableMode::kLet); + bit_field_ = + InitializationFlagField::update(bit_field_, kNeedsInitialization); + } + static InitializationFlag DefaultInitializationFlag(VariableMode mode) { DCHECK(IsDeclaredVariableMode(mode)); return mode == VariableMode::kVar ? kCreatedInitialized @@ -199,7 +207,7 @@ class Variable final : public ZoneObject { class VariableModeField : public BitField16<VariableMode, 0, 3> {}; class VariableKindField - : public BitField16<VariableKind, VariableModeField::kNext, 3> {}; + : public BitField16<VariableKind, VariableModeField::kNext, 2> {}; class LocationField : public BitField16<VariableLocation, VariableKindField::kNext, 3> {}; class ForceContextAllocationField |