Index: src/hydrogen-instructions.h |
diff --git a/src/hydrogen-instructions.h b/src/hydrogen-instructions.h |
index 9bd0b90b4c3b55b0b958cfeb0ee4b59e7dd52a42..ea6b3cc9be9df490b32f5818bc53e11264ff4ce2 100644 |
--- a/src/hydrogen-instructions.h |
+++ b/src/hydrogen-instructions.h |
@@ -4471,20 +4471,27 @@ class HTypeofIsAndBranch V8_FINAL : public HUnaryControlInstruction { |
DECLARE_INSTRUCTION_FACTORY_P2(HTypeofIsAndBranch, HValue*, Handle<String>); |
Handle<String> type_literal() { return type_literal_; } |
+ bool compares_number_type() { return compares_number_type_; } |
virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE; |
DECLARE_CONCRETE_INSTRUCTION(TypeofIsAndBranch) |
virtual Representation RequiredInputRepresentation(int index) V8_OVERRIDE { |
- return Representation::Tagged(); |
+ return Representation::None(); |
} |
+ virtual bool KnownSuccessorBlock(HBasicBlock** block) V8_OVERRIDE; |
+ |
private: |
HTypeofIsAndBranch(HValue* value, Handle<String> type_literal) |
: HUnaryControlInstruction(value, NULL, NULL), |
- type_literal_(type_literal) { } |
+ type_literal_(type_literal) { |
+ Heap* heap = type_literal->GetHeap(); |
+ compares_number_type_ = type_literal->Equals(heap->number_string()); |
+ } |
Handle<String> type_literal_; |
+ bool compares_number_type_ : 1; |
}; |