Index: src/hydrogen-instructions.h |
diff --git a/src/hydrogen-instructions.h b/src/hydrogen-instructions.h |
index a05fc776f848875e561e14e7c982229602b0134a..275efcc53882aa99d5dc8e6fccec8f926866fffb 100644 |
--- a/src/hydrogen-instructions.h |
+++ b/src/hydrogen-instructions.h |
@@ -184,7 +184,8 @@ class LChunkBuilder; |
V(ForInPrepareMap) \ |
V(ForInCacheArray) \ |
V(CheckMapValue) \ |
- V(LoadFieldByIndex) |
+ V(LoadFieldByIndex) \ |
+ V(WrapReceiver) |
#define GVN_FLAG_LIST(V) \ |
V(Calls) \ |
@@ -2502,6 +2503,25 @@ class HBinaryOperation: public HTemplateInstruction<3> { |
}; |
+class HWrapReceiver: public HTemplateInstruction<2> { |
+ public: |
+ HWrapReceiver(HValue* receiver, HValue* function) { |
+ set_representation(Representation::Tagged()); |
+ SetOperandAt(0, receiver); |
+ SetOperandAt(1, function); |
+ } |
+ |
+ virtual Representation RequiredInputRepresentation(int index) { |
+ return Representation::Tagged(); |
+ } |
+ |
+ HValue* receiver() { return OperandAt(0); } |
+ HValue* function() { return OperandAt(1); } |
+ |
+ DECLARE_CONCRETE_INSTRUCTION(WrapReceiver) |
+}; |
+ |
+ |
class HApplyArguments: public HTemplateInstruction<4> { |
public: |
HApplyArguments(HValue* function, |