| 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,
|
|
|