diff --git a/src/hydrogen-instructions.cc b/src/hydrogen-instructions.cc index ce21756911..18e3b4532d 100644 --- a/src/hydrogen-instructions.cc +++ b/src/hydrogen-instructions.cc @@ -1579,6 +1579,21 @@ HType HUnaryPredicate::CalculateInferredType() { } +HType HInstanceOf::CalculateInferredType() { + return HType::Boolean(); +} + + +HType HDeleteProperty::CalculateInferredType() { + return HType::Boolean(); +} + + +HType HInstanceOfKnownGlobal::CalculateInferredType() { + return HType::Boolean(); +} + + HType HBitwiseBinaryOperation::CalculateInferredType() { return HType::TaggedNumber(); } diff --git a/src/hydrogen-instructions.h b/src/hydrogen-instructions.h index 21994839d1..00e9bd63ef 100644 --- a/src/hydrogen-instructions.h +++ b/src/hydrogen-instructions.h @@ -2789,14 +2789,12 @@ class HInstanceOf: public HTemplateInstruction<3> { HValue* left() { return OperandAt(1); } HValue* right() { return OperandAt(2); } - virtual bool EmitAtUses() { - return !HasSideEffects() && !HasMultipleUses(); - } - virtual Representation RequiredInputRepresentation(int index) const { return Representation::Tagged(); } + virtual HType CalculateInferredType(); + virtual void PrintDataTo(StringStream* stream); DECLARE_CONCRETE_INSTRUCTION(InstanceOf) @@ -2817,6 +2815,8 @@ class HInstanceOfKnownGlobal: public HUnaryOperation { return Representation::Tagged(); } + virtual HType CalculateInferredType(); + DECLARE_CONCRETE_INSTRUCTION(InstanceOfKnownGlobal) private: @@ -4005,6 +4005,8 @@ class HDeleteProperty: public HBinaryOperation { return Representation::Tagged(); } + virtual HType CalculateInferredType(); + DECLARE_CONCRETE_INSTRUCTION(DeleteProperty) HValue* object() { return left(); }