| Index: src/hydrogen-instructions.cc
|
| diff --git a/src/hydrogen-instructions.cc b/src/hydrogen-instructions.cc
|
| index 5fae5f72237cc824f27bae036f158a0df0ebed92..d3f1a9e09024c8f1643eb53bddc3b595b3953d3e 100644
|
| --- a/src/hydrogen-instructions.cc
|
| +++ b/src/hydrogen-instructions.cc
|
| @@ -2498,8 +2498,10 @@ void HCompareIDAndBranch::InferRepresentation(HInferRepresentation* h_infer) {
|
| Representation observed_left = observed_input_representation(0);
|
| Representation observed_right = observed_input_representation(1);
|
|
|
| - Representation rep = Representation::Smi();
|
| - if (observed_left.IsInteger32() && observed_right.IsInteger32()) {
|
| + Representation rep = Representation::None();
|
| + rep = rep.generalize(observed_left);
|
| + rep = rep.generalize(observed_right);
|
| + if (rep.IsNone() || rep.IsSmiOrInteger32()) {
|
| if (!left_rep.IsTagged()) rep = rep.generalize(left_rep);
|
| if (!right_rep.IsTagged()) rep = rep.generalize(right_rep);
|
| } else {
|
|
|