Index: src/hydrogen.cc |
diff --git a/src/hydrogen.cc b/src/hydrogen.cc |
index 8e9fe00034964da47b342582dec75cea8cedc16a..1afa6603aaa31a308969e9f7a15ba92e67e7d61f 100644 |
--- a/src/hydrogen.cc |
+++ b/src/hydrogen.cc |
@@ -3567,7 +3567,10 @@ class BoundsCheckBbData: public ZoneObject { |
HConstant(new_offset, Representation::Integer32()); |
if (*add == NULL) { |
new_constant->InsertBefore(check); |
- *add = new(BasicBlock()->zone()) HAdd(NULL, |
+ // Because of the bounds checks elimination algorithm, the index is always |
+ // an HAdd or an HSub here, so we can safely cast to an HBinaryOperation. |
+ HValue* context = HBinaryOperation::cast(check->index())->context(); |
+ *add = new(BasicBlock()->zone()) HAdd(context, |
original_value, |
new_constant); |
(*add)->AssumeRepresentation(representation); |