aboutsummaryrefslogtreecommitdiff
path: root/deps/v8/src/ast/variables.h
diff options
context:
space:
mode:
authorMichaël Zasso <targos@protonmail.com>2019-11-08 15:39:11 +0100
committerMichaël Zasso <targos@protonmail.com>2019-11-08 15:46:25 +0100
commit6ca81ad72a3c6fdf16c683335be748f22aaa9a0d (patch)
tree33c8ee75f729aed76c2c0b89c63f9bf1b4dd66aa /deps/v8/src/ast/variables.h
parent1eee0b8bf8bba39b600fb16a9223e545e3bac2bc (diff)
downloadandroid-node-v8-6ca81ad72a3c6fdf16c683335be748f22aaa9a0d.tar.gz
android-node-v8-6ca81ad72a3c6fdf16c683335be748f22aaa9a0d.tar.bz2
android-node-v8-6ca81ad72a3c6fdf16c683335be748f22aaa9a0d.zip
deps: update V8 to 7.9.317.20
PR-URL: https://github.com/nodejs/node/pull/30020 Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Jiawen Geng <technicalcute@gmail.com> Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Diffstat (limited to 'deps/v8/src/ast/variables.h')
-rw-r--r--deps/v8/src/ast/variables.h20
1 files changed, 18 insertions, 2 deletions
diff --git a/deps/v8/src/ast/variables.h b/deps/v8/src/ast/variables.h
index 1ff6f9f422..7be99adc7c 100644
--- a/deps/v8/src/ast/variables.h
+++ b/deps/v8/src/ast/variables.h
@@ -21,7 +21,8 @@ class Variable final : public ZoneObject {
public:
Variable(Scope* scope, const AstRawString* name, VariableMode mode,
VariableKind kind, InitializationFlag initialization_flag,
- MaybeAssignedFlag maybe_assigned_flag = kNotAssigned)
+ MaybeAssignedFlag maybe_assigned_flag = kNotAssigned,
+ IsStaticFlag is_static_flag = IsStaticFlag::kNotStatic)
: scope_(scope),
name_(name),
local_if_not_shadowed_(nullptr),
@@ -35,10 +36,13 @@ class Variable final : public ZoneObject {
ForceContextAllocationField::encode(false) |
ForceHoleInitializationField::encode(false) |
LocationField::encode(VariableLocation::UNALLOCATED) |
- VariableKindField::encode(kind)) {
+ VariableKindField::encode(kind) |
+ IsStaticFlagField::encode(is_static_flag)) {
// Var declared variables never need initialization.
DCHECK(!(mode == VariableMode::kVar &&
initialization_flag == kNeedsInitialization));
+ DCHECK_IMPLIES(is_static_flag == IsStaticFlag::kStatic,
+ IsConstVariableMode(mode));
}
explicit Variable(Variable* other);
@@ -59,6 +63,14 @@ class Variable final : public ZoneObject {
void set_mode(VariableMode mode) {
bit_field_ = VariableModeField::update(bit_field_, mode);
}
+ void set_is_static_flag(IsStaticFlag is_static_flag) {
+ bit_field_ = IsStaticFlagField::update(bit_field_, is_static_flag);
+ }
+ IsStaticFlag is_static_flag() const {
+ return IsStaticFlagField::decode(bit_field_);
+ }
+ bool is_static() const { return is_static_flag() == IsStaticFlag::kStatic; }
+
bool has_forced_context_allocation() const {
return ForceContextAllocationField::decode(bit_field_);
}
@@ -72,6 +84,9 @@ class Variable final : public ZoneObject {
MaybeAssignedFlag maybe_assigned() const {
return MaybeAssignedFlagField::decode(bit_field_);
}
+ void clear_maybe_assigned() {
+ bit_field_ = MaybeAssignedFlagField::update(bit_field_, kNotAssigned);
+ }
void SetMaybeAssigned() {
if (mode() == VariableMode::kConst) return;
@@ -249,6 +264,7 @@ class Variable final : public ZoneObject {
using ForceHoleInitializationField = InitializationFlagField::Next<bool, 1>;
using MaybeAssignedFlagField =
ForceHoleInitializationField::Next<MaybeAssignedFlag, 1>;
+ using IsStaticFlagField = MaybeAssignedFlagField::Next<IsStaticFlag, 1>;
Variable** next() { return &next_; }
friend List;