Index: src/compiler/simplified-operator.h |
diff --git a/src/compiler/simplified-operator.h b/src/compiler/simplified-operator.h |
index 53a7007760d7f14dd0ed477fb583c00373cf50dc..9cd721f22924847424811bb90ac6627648fdb470 100644 |
--- a/src/compiler/simplified-operator.h |
+++ b/src/compiler/simplified-operator.h |
@@ -140,7 +140,15 @@ std::ostream& operator<<(std::ostream&, CheckForMinusZeroMode); |
CheckForMinusZeroMode CheckMinusZeroModeOf(const Operator*) WARN_UNUSED_RESULT; |
-Type* TypeOf(const Operator* op) WARN_UNUSED_RESULT; |
+// A descriptor for elements kind transitions. |
+enum class ElementsTransition : uint8_t { |
+ kFastTransition, // simple transition, just updating the map. |
+ kSlowTransition // full transition, round-trip to the runtime. |
+}; |
+ |
+std::ostream& operator<<(std::ostream&, ElementsTransition); |
+ |
+ElementsTransition ElementsTransitionOf(const Operator* op) WARN_UNUSED_RESULT; |
BinaryOperationHints::Hint BinaryOperationHintOf(const Operator* op); |
@@ -288,6 +296,9 @@ class SimplifiedOperatorBuilder final : public ZoneObject { |
const Operator* ObjectIsString(); |
const Operator* ObjectIsUndetectable(); |
+ // transition-elements-kind object, from-map, to-map |
+ const Operator* TransitionElementsKind(ElementsTransition transition); |
+ |
const Operator* Allocate(PretenureFlag pretenure = NOT_TENURED); |
const Operator* LoadField(FieldAccess const&); |