Index: src/hydrogen-instructions.h |
diff --git a/src/hydrogen-instructions.h b/src/hydrogen-instructions.h |
index 40da1b944b7da8e07f02d19919f760dc431b49c9..48662becd63cf963f4af97fa32cdf3a4772fbdda 100644 |
--- a/src/hydrogen-instructions.h |
+++ b/src/hydrogen-instructions.h |
@@ -101,15 +101,14 @@ class LChunkBuilder; |
V(EnterInlined) \ |
V(ExternalArrayLength) \ |
V(FixedArrayLength) \ |
- V(ToInt32) \ |
V(ForceRepresentation) \ |
V(FunctionLiteral) \ |
V(GetCachedArrayIndex) \ |
V(GlobalObject) \ |
V(GlobalReceiver) \ |
V(Goto) \ |
- V(HasInstanceType) \ |
V(HasCachedArrayIndex) \ |
+ V(HasInstanceType) \ |
V(In) \ |
V(InstanceOf) \ |
V(InstanceOfKnownGlobal) \ |
@@ -152,8 +151,8 @@ class LChunkBuilder; |
V(StoreGlobalCell) \ |
V(StoreGlobalGeneric) \ |
V(StoreKeyedFastElement) \ |
- V(StoreKeyedSpecializedArrayElement) \ |
V(StoreKeyedGeneric) \ |
+ V(StoreKeyedSpecializedArrayElement) \ |
V(StoreNamedField) \ |
V(StoreNamedGeneric) \ |
V(StringAdd) \ |
@@ -162,8 +161,10 @@ class LChunkBuilder; |
V(StringLength) \ |
V(Sub) \ |
V(Test) \ |
+ V(ThisFunction) \ |
V(Throw) \ |
V(ToFastProperties) \ |
+ V(ToInt32) \ |
V(Typeof) \ |
V(TypeofIs) \ |
V(UnaryMathOperation) \ |
@@ -1302,6 +1303,24 @@ class HPushArgument: public HUnaryOperation { |
}; |
+class HThisFunction: public HTemplateInstruction<0> { |
+ public: |
+ HThisFunction() { |
+ set_representation(Representation::Tagged()); |
+ SetFlag(kUseGVN); |
+ } |
+ |
+ virtual Representation RequiredInputRepresentation(int index) const { |
+ return Representation::None(); |
+ } |
+ |
+ DECLARE_CONCRETE_INSTRUCTION(ThisFunction) |
+ |
+ protected: |
+ virtual bool DataEquals(HValue* other) { return true; } |
+}; |
+ |
+ |
class HContext: public HTemplateInstruction<0> { |
public: |
HContext() { |
@@ -1313,7 +1332,7 @@ class HContext: public HTemplateInstruction<0> { |
return Representation::None(); |
} |
- DECLARE_CONCRETE_INSTRUCTION(Context); |
+ DECLARE_CONCRETE_INSTRUCTION(Context) |
protected: |
virtual bool DataEquals(HValue* other) { return true; } |