| Index: src/compiler/representation-change.cc | 
| diff --git a/src/compiler/representation-change.cc b/src/compiler/representation-change.cc | 
| index 6e1341321cf2dc81ce51879b7be943810ae5000f..7002b2d9b27b6c47e43632f03afd633cc928c5b7 100644 | 
| --- a/src/compiler/representation-change.cc | 
| +++ b/src/compiler/representation-change.cc | 
| @@ -9,6 +9,7 @@ | 
| #include "src/base/bits.h" | 
| #include "src/code-factory.h" | 
| #include "src/compiler/machine-operator.h" | 
| +#include "src/compiler/node-matchers.h" | 
|  | 
| namespace v8 { | 
| namespace internal { | 
| @@ -694,8 +695,12 @@ Node* RepresentationChanger::GetBitRepresentationFor( | 
| // Eagerly fold representation changes for constants. | 
| switch (node->opcode()) { | 
| case IrOpcode::kHeapConstant: { | 
| -      Handle<HeapObject> value = OpParameter<Handle<HeapObject>>(node); | 
| -      return jsgraph()->Int32Constant(value->BooleanValue() ? 1 : 0); | 
| +      HeapObjectMatcher m(node); | 
| +      if (m.Is(factory()->false_value())) { | 
| +        return jsgraph()->Int32Constant(0); | 
| +      } else if (m.Is(factory()->true_value())) { | 
| +        return jsgraph()->Int32Constant(1); | 
| +      } | 
| } | 
| default: | 
| break; | 
|  |