| Index: src/crankshaft/arm/lithium-arm.cc
|
| diff --git a/src/crankshaft/arm/lithium-arm.cc b/src/crankshaft/arm/lithium-arm.cc
|
| index 004006b0c866f7d5ac718fab45fb141df1ae0c86..67062464bfd3d22c7baad3c143f5052ceb587d42 100644
|
| --- a/src/crankshaft/arm/lithium-arm.cc
|
| +++ b/src/crankshaft/arm/lithium-arm.cc
|
| @@ -867,15 +867,15 @@ LInstruction* LChunkBuilder::DoBranch(HBranch* instr) {
|
| HValue* value = instr->value();
|
| Representation r = value->representation();
|
| HType type = value->type();
|
| - ToBooleanICStub::Types expected = instr->expected_input_types();
|
| - if (expected.IsEmpty()) expected = ToBooleanICStub::Types::Generic();
|
| + ToBooleanHints expected = instr->expected_input_types();
|
| + if (expected == ToBooleanHint::kNone) expected = ToBooleanHint::kAny;
|
|
|
| bool easy_case = !r.IsTagged() || type.IsBoolean() || type.IsSmi() ||
|
| type.IsJSArray() || type.IsHeapNumber() || type.IsString();
|
| LInstruction* branch = new(zone()) LBranch(UseRegister(value));
|
| - if (!easy_case &&
|
| - ((!expected.Contains(ToBooleanICStub::SMI) && expected.NeedsMap()) ||
|
| - !expected.IsGeneric())) {
|
| + if (!easy_case && ((!(expected & ToBooleanHint::kSmallInteger) &&
|
| + (expected & ToBooleanHint::kNeedsMap)) ||
|
| + expected != ToBooleanHint::kAny)) {
|
| branch = AssignEnvironment(branch);
|
| }
|
| return branch;
|
|
|