Chromium Code Reviews| Index: src/compiler/js-typed-lowering.cc |
| diff --git a/src/compiler/js-typed-lowering.cc b/src/compiler/js-typed-lowering.cc |
| index 361cb94f058c3e39ce117c69ba3b44c32a91039c..a9b7493841ba61706bda171c993484344fdc94c0 100644 |
| --- a/src/compiler/js-typed-lowering.cc |
| +++ b/src/compiler/js-typed-lowering.cc |
| @@ -515,6 +515,16 @@ Reduction JSTypedLowering::ReduceJSToBooleanInput(Node* input) { |
| cmp->ReplaceInput(0, input); |
| return Changed(inv); |
| } |
| + if (input_type->Is(Type::Number())) { |
|
rossberg
2014/08/06 13:04:07
Why is this duplicated?
|
| + // JSToBoolean(number) => BooleanNot(NumberEqual(x, #0)) |
| + Node* cmp = graph()->NewNode(simplified()->NumberEqual(), input, |
| + jsgraph()->ZeroConstant()); |
| + Node* inv = graph()->NewNode(simplified()->BooleanNot(), cmp); |
| + ReplaceEagerly(input, inv); |
| + // TODO(titzer): Ugly. ReplaceEagerly() smashes all uses. So smash it back. |
| + cmp->ReplaceInput(0, input); |
| + return Changed(inv); |
| + } |
| // TODO(turbofan): js-typed-lowering of ToBoolean(string) |
| return NoChange(); |
| } |