| 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();
|
| }
|
|
|
|
|
|
|