| Index: src/hydrogen.cc
|
| diff --git a/src/hydrogen.cc b/src/hydrogen.cc
|
| index 0897aad305be9f08bb1771b3612dfc94388c1c3b..03a4f38aa2db63a57833df4c3921e86e39afaac3 100644
|
| --- a/src/hydrogen.cc
|
| +++ b/src/hydrogen.cc
|
| @@ -5846,7 +5846,8 @@ HInstruction* HGraphBuilder::BuildUncheckedMonomorphicElementAccess(
|
| HInstruction* checked_key = NULL;
|
| if (map->has_external_array_elements()) {
|
| length = AddInstruction(new(zone()) HFixedArrayBaseLength(elements));
|
| - checked_key = AddInstruction(new(zone()) HBoundsCheck(key, length));
|
| + checked_key = AddInstruction(new(zone()) HBoundsCheck(key, length,
|
| + ALLOW_SMI_KEY));
|
| HLoadExternalArrayPointer* external_elements =
|
| new(zone()) HLoadExternalArrayPointer(elements);
|
| AddInstruction(external_elements);
|
| @@ -6079,7 +6080,8 @@ HValue* HGraphBuilder::HandlePolymorphicElementAccess(HValue* object,
|
| HInstruction* length;
|
| length = AddInstruction(new(zone()) HJSArrayLength(object, typecheck,
|
| HType::Smi()));
|
| - checked_key = AddInstruction(new(zone()) HBoundsCheck(key, length));
|
| + checked_key = AddInstruction(new(zone()) HBoundsCheck(key, length,
|
| + ALLOW_SMI_KEY));
|
| access = AddInstruction(BuildFastElementAccess(
|
| elements, checked_key, val, elements_kind, is_store));
|
| if (!is_store) {
|
| @@ -6094,7 +6096,8 @@ HValue* HGraphBuilder::HandlePolymorphicElementAccess(HValue* object,
|
|
|
| set_current_block(if_fastobject);
|
| length = AddInstruction(new(zone()) HFixedArrayBaseLength(elements));
|
| - checked_key = AddInstruction(new(zone()) HBoundsCheck(key, length));
|
| + checked_key = AddInstruction(new(zone()) HBoundsCheck(key, length,
|
| + ALLOW_SMI_KEY));
|
| access = AddInstruction(BuildFastElementAccess(
|
| elements, checked_key, val, elements_kind, is_store));
|
| } else if (elements_kind == DICTIONARY_ELEMENTS) {
|
|
|