Index: src/hydrogen-instructions.h |
diff --git a/src/hydrogen-instructions.h b/src/hydrogen-instructions.h |
index 80773bf14789e8524dc4c46184588641d6396495..85bb51eb6bb7975a33c0c4e8c1e63c1088051b13 100644 |
--- a/src/hydrogen-instructions.h |
+++ b/src/hydrogen-instructions.h |
@@ -4436,23 +4436,35 @@ class HClassOfTestAndBranch V8_FINAL : public HUnaryControlInstruction { |
class HTypeofIsAndBranch V8_FINAL : public HUnaryControlInstruction { |
public: |
- DECLARE_INSTRUCTION_FACTORY_P2(HTypeofIsAndBranch, HValue*, Handle<String>); |
+ static HTypeofIsAndBranch* New(Zone* zone, HValue* context, |
Jakob Kummerow
2013/11/08 12:07:05
Please leave the DECLARE_INSTRUCTION_FACTORY_P2 ma
Weiliang
2013/11/08 13:50:26
Done.
|
+ HValue* value, Handle<String> type_literal) { |
+ Heap* heap = zone->isolate()->heap(); |
+ bool is_number = false; |
Jakob Kummerow
2013/11/08 12:07:05
bool is_number = type_literal->Equals(heap->number
Weiliang
2013/11/08 13:50:26
Done.
|
+ if (type_literal->Equals(heap->number_string())) { |
+ is_number = true; |
+ } |
+ return new(zone) HTypeofIsAndBranch(value, type_literal, is_number); |
+ } |
Handle<String> type_literal() { return type_literal_; } |
+ bool CheckNumberString() { return is_number_; } |
Jakob Kummerow
2013/11/08 12:07:05
I'd call the field compares_number_type_ and the a
Weiliang
2013/11/08 13:50:26
Done.
|
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) |
+ HTypeofIsAndBranch(HValue* value, Handle<String> type_literal, bool is_number) |
: HUnaryControlInstruction(value, NULL, NULL), |
- type_literal_(type_literal) { } |
+ type_literal_(type_literal), is_number_(is_number) { } |
Handle<String> type_literal_; |
+ bool is_number_ : 1; |
}; |