summaryrefslogtreecommitdiff
path: root/deps/v8/src/base/flags.h
diff options
context:
space:
mode:
Diffstat (limited to 'deps/v8/src/base/flags.h')
-rw-r--r--deps/v8/src/base/flags.h40
1 files changed, 26 insertions, 14 deletions
diff --git a/deps/v8/src/base/flags.h b/deps/v8/src/base/flags.h
index 3bec12cb88..c1637de81c 100644
--- a/deps/v8/src/base/flags.h
+++ b/deps/v8/src/base/flags.h
@@ -27,15 +27,15 @@ class Flags final {
typedef T flag_type;
typedef S mask_type;
- Flags() : mask_(0) {}
- Flags(flag_type flag) // NOLINT(runtime/explicit)
+ constexpr Flags() : mask_(0) {}
+ constexpr Flags(flag_type flag) // NOLINT(runtime/explicit)
: mask_(static_cast<S>(flag)) {}
- explicit Flags(mask_type mask) : mask_(static_cast<S>(mask)) {}
+ constexpr explicit Flags(mask_type mask) : mask_(static_cast<S>(mask)) {}
- bool operator==(flag_type flag) const {
+ constexpr bool operator==(flag_type flag) const {
return mask_ == static_cast<S>(flag);
}
- bool operator!=(flag_type flag) const {
+ constexpr bool operator!=(flag_type flag) const {
return mask_ != static_cast<S>(flag);
}
@@ -52,22 +52,34 @@ class Flags final {
return *this;
}
- Flags operator&(const Flags& flags) const { return Flags(*this) &= flags; }
- Flags operator|(const Flags& flags) const { return Flags(*this) |= flags; }
- Flags operator^(const Flags& flags) const { return Flags(*this) ^= flags; }
+ constexpr Flags operator&(const Flags& flags) const {
+ return Flags(*this) &= flags;
+ }
+ constexpr Flags operator|(const Flags& flags) const {
+ return Flags(*this) |= flags;
+ }
+ constexpr Flags operator^(const Flags& flags) const {
+ return Flags(*this) ^= flags;
+ }
Flags& operator&=(flag_type flag) { return operator&=(Flags(flag)); }
Flags& operator|=(flag_type flag) { return operator|=(Flags(flag)); }
Flags& operator^=(flag_type flag) { return operator^=(Flags(flag)); }
- Flags operator&(flag_type flag) const { return operator&(Flags(flag)); }
- Flags operator|(flag_type flag) const { return operator|(Flags(flag)); }
- Flags operator^(flag_type flag) const { return operator^(Flags(flag)); }
+ constexpr Flags operator&(flag_type flag) const {
+ return operator&(Flags(flag));
+ }
+ constexpr Flags operator|(flag_type flag) const {
+ return operator|(Flags(flag));
+ }
+ constexpr Flags operator^(flag_type flag) const {
+ return operator^(Flags(flag));
+ }
- Flags operator~() const { return Flags(~mask_); }
+ constexpr Flags operator~() const { return Flags(~mask_); }
- operator mask_type() const { return mask_; }
- bool operator!() const { return !mask_; }
+ constexpr operator mask_type() const { return mask_; }
+ constexpr bool operator!() const { return !mask_; }
friend size_t hash_value(const Flags& flags) { return flags.mask_; }