Index: src/globals.h |
diff --git a/src/globals.h b/src/globals.h |
index 5ccd40757da07b611c3a1dc12f16bbd0b831109d..00dcdd22ef5f6eff21d4ec3c521bd4e8d60d1046 100644 |
--- a/src/globals.h |
+++ b/src/globals.h |
@@ -1213,6 +1213,29 @@ inline std::ostream& operator<<(std::ostream& os, CallableType function_type) { |
return os; |
} |
+enum class PushArgsConstructMode : unsigned { |
+ kJSFunction, |
+ kWithFinalSpread, |
+ kOther |
+}; |
+ |
+inline size_t hash_value(PushArgsConstructMode mode) { |
+ return bit_cast<unsigned>(mode); |
+} |
+ |
+inline std::ostream& operator<<(std::ostream& os, PushArgsConstructMode mode) { |
+ switch (mode) { |
+ case PushArgsConstructMode::kJSFunction: |
+ return os << "JSFunction"; |
+ case PushArgsConstructMode::kWithFinalSpread: |
+ return os << "WithFinalSpread"; |
+ case PushArgsConstructMode::kOther: |
+ return os << "Other"; |
+ } |
+ UNREACHABLE(); |
+ return os; |
+} |
+ |
inline uint32_t ObjectHash(Address address) { |
// All objects are at least pointer aligned, so we can remove the trailing |
// zeros. |