Index: src/hydrogen-instructions.h |
diff --git a/src/hydrogen-instructions.h b/src/hydrogen-instructions.h |
index 4a16288943783ad890784acafd6391eff7156d2a..b5741c633bf8eaaf1f7e7f0670524b2c7aba6930 100644 |
--- a/src/hydrogen-instructions.h |
+++ b/src/hydrogen-instructions.h |
@@ -139,6 +139,7 @@ class LChunkBuilder; |
V(LoadNamedField) \ |
V(LoadNamedFieldPolymorphic) \ |
V(LoadNamedGeneric) \ |
+ V(MapEnumLength) \ |
V(MathFloorOfDiv) \ |
V(MathMinMax) \ |
V(Mod) \ |
@@ -1923,6 +1924,26 @@ class HFixedArrayBaseLength: public HUnaryOperation { |
}; |
+class HMapEnumLength: public HUnaryOperation { |
+ public: |
+ explicit HMapEnumLength(HValue* value) : HUnaryOperation(value) { |
+ set_type(HType::Smi()); |
+ set_representation(Representation::Tagged()); |
+ SetFlag(kUseGVN); |
+ SetGVNFlag(kDependsOnMaps); |
+ } |
+ |
+ virtual Representation RequiredInputRepresentation(int index) { |
+ return Representation::Tagged(); |
+ } |
+ |
+ DECLARE_CONCRETE_INSTRUCTION(MapEnumLength) |
+ |
+ protected: |
+ virtual bool DataEquals(HValue* other) { return true; } |
+}; |
+ |
+ |
class HElementsKind: public HUnaryOperation { |
public: |
explicit HElementsKind(HValue* value) : HUnaryOperation(value) { |