| Index: src/hydrogen-instructions.h
|
| diff --git a/src/hydrogen-instructions.h b/src/hydrogen-instructions.h
|
| index d11835452c72d7024f2a38bb49a854eba7ce45f1..e413f13e9a3cd2c399ac1a6275aa684356cb5970 100644
|
| --- a/src/hydrogen-instructions.h
|
| +++ b/src/hydrogen-instructions.h
|
| @@ -2167,7 +2167,8 @@ class HLoadExternalArrayPointer: public HUnaryOperation {
|
| class HCheckMaps: public HTemplateInstruction<2> {
|
| public:
|
| HCheckMaps(HValue* value, Handle<Map> map, Zone* zone,
|
| - HValue* typecheck = NULL) {
|
| + HValue* typecheck = NULL,
|
| + CompareMapMode mode = REQUIRE_EXACT_MAP) : mode_(mode) {
|
| SetOperandAt(0, value);
|
| // If callers don't depend on a typecheck, they can pass in NULL. In that
|
| // case we use a copy of the |value| argument as a dummy value.
|
| @@ -2178,7 +2179,8 @@ class HCheckMaps: public HTemplateInstruction<2> {
|
| SetGVNFlag(kDependsOnElementsKind);
|
| map_set()->Add(map, zone);
|
| }
|
| - HCheckMaps(HValue* value, SmallMapList* maps, Zone* zone) {
|
| + HCheckMaps(HValue* value, SmallMapList* maps, Zone* zone,
|
| + CompareMapMode mode = REQUIRE_EXACT_MAP) : mode_(mode) {
|
| SetOperandAt(0, value);
|
| SetOperandAt(1, value);
|
| set_representation(Representation::Tagged());
|
| @@ -2222,6 +2224,7 @@ class HCheckMaps: public HTemplateInstruction<2> {
|
|
|
| HValue* value() { return OperandAt(0); }
|
| SmallMapList* map_set() { return &map_set_; }
|
| + CompareMapMode mode() { return mode_; }
|
|
|
| DECLARE_CONCRETE_INSTRUCTION(CheckMaps)
|
|
|
| @@ -2238,6 +2241,7 @@ class HCheckMaps: public HTemplateInstruction<2> {
|
|
|
| private:
|
| SmallMapList map_set_;
|
| + CompareMapMode mode_;
|
| };
|
|
|
|
|
|
|