Index: src/hydrogen-instructions.cc |
diff --git a/src/hydrogen-instructions.cc b/src/hydrogen-instructions.cc |
index f4a92a5316d3bca8a58df6fff3e39de8c96486d0..5ed046841a4fdeb05e564eeec63b8bb9e7c1fc4b 100644 |
--- a/src/hydrogen-instructions.cc |
+++ b/src/hydrogen-instructions.cc |
@@ -1276,20 +1276,26 @@ void HReturn::PrintDataTo(StringStream* stream) { |
Representation HBranch::observed_input_representation(int index) { |
static const ToBooleanStub::Types tagged_types( |
- ToBooleanStub::UNDEFINED | |
ToBooleanStub::NULL_TYPE | |
ToBooleanStub::SPEC_OBJECT | |
ToBooleanStub::STRING | |
ToBooleanStub::SYMBOL); |
if (expected_input_types_.ContainsAnyOf(tagged_types)) { |
return Representation::Tagged(); |
- } else if (expected_input_types_.Contains(ToBooleanStub::HEAP_NUMBER)) { |
+ } |
+ if (expected_input_types_.Contains(ToBooleanStub::UNDEFINED)) { |
+ if (expected_input_types_.Contains(ToBooleanStub::HEAP_NUMBER)) { |
+ return Representation::Double(); |
+ } |
+ return Representation::Tagged(); |
+ } |
+ if (expected_input_types_.Contains(ToBooleanStub::HEAP_NUMBER)) { |
return Representation::Double(); |
- } else if (expected_input_types_.Contains(ToBooleanStub::SMI)) { |
+ } |
+ if (expected_input_types_.Contains(ToBooleanStub::SMI)) { |
return Representation::Smi(); |
- } else { |
- return Representation::None(); |
} |
+ return Representation::None(); |
} |