| Index: test/unittests/compiler/js-typed-lowering-unittest.cc
 | 
| diff --git a/test/unittests/compiler/js-typed-lowering-unittest.cc b/test/unittests/compiler/js-typed-lowering-unittest.cc
 | 
| index a31988bfb4f03b69c3af0e4c541bdbfe5b71613d..ae6a59485ef07a883bdb515d6967af99345e5bfa 100644
 | 
| --- a/test/unittests/compiler/js-typed-lowering-unittest.cc
 | 
| +++ b/test/unittests/compiler/js-typed-lowering-unittest.cc
 | 
| @@ -650,37 +650,34 @@
 | 
|        NewArrayBuffer(backing_store, sizeof(backing_store));
 | 
|    ResolvedFeedbackSlot feedback;
 | 
|    TRACED_FOREACH(ExternalArrayType, type, kExternalArrayTypes) {
 | 
| -    TRACED_FOREACH(LanguageMode, language_mode, kLanguageModes) {
 | 
| -      Handle<JSTypedArray> array =
 | 
| -          factory()->NewJSTypedArray(type, buffer, 0, kLength);
 | 
| -      int const element_size = static_cast<int>(array->element_size());
 | 
| -
 | 
| -      Node* key = Parameter(
 | 
| -          Type::Range(kMinInt / element_size, kMaxInt / element_size, zone()));
 | 
| -      Node* base = HeapConstant(array);
 | 
| -      Node* vector = UndefinedConstant();
 | 
| -      Node* context = UndefinedConstant();
 | 
| -      Node* effect = graph()->start();
 | 
| -      Node* control = graph()->start();
 | 
| -      Reduction r = Reduce(
 | 
| -          graph()->NewNode(javascript()->LoadProperty(feedback, language_mode),
 | 
| -                           base, key, vector, context, EmptyFrameState(),
 | 
| -                           EmptyFrameState(), effect, control));
 | 
| -
 | 
| -      Matcher<Node*> offset_matcher =
 | 
| -          element_size == 1
 | 
| -              ? key
 | 
| -              : IsWord32Shl(key, IsInt32Constant(WhichPowerOf2(element_size)));
 | 
| -
 | 
| -      ASSERT_TRUE(r.Changed());
 | 
| -      EXPECT_THAT(
 | 
| -          r.replacement(),
 | 
| -          IsLoadBuffer(BufferAccess(type),
 | 
| -                       IsIntPtrConstant(bit_cast<intptr_t>(&backing_store[0])),
 | 
| -                       offset_matcher,
 | 
| -                       IsNumberConstant(array->byte_length()->Number()), effect,
 | 
| -                       control));
 | 
| -    }
 | 
| +    Handle<JSTypedArray> array =
 | 
| +        factory()->NewJSTypedArray(type, buffer, 0, kLength);
 | 
| +    int const element_size = static_cast<int>(array->element_size());
 | 
| +
 | 
| +    Node* key = Parameter(
 | 
| +        Type::Range(kMinInt / element_size, kMaxInt / element_size, zone()));
 | 
| +    Node* base = HeapConstant(array);
 | 
| +    Node* vector = UndefinedConstant();
 | 
| +    Node* context = UndefinedConstant();
 | 
| +    Node* effect = graph()->start();
 | 
| +    Node* control = graph()->start();
 | 
| +    Reduction r = Reduce(graph()->NewNode(
 | 
| +        javascript()->LoadProperty(feedback), base, key, vector, context,
 | 
| +        EmptyFrameState(), EmptyFrameState(), effect, control));
 | 
| +
 | 
| +    Matcher<Node*> offset_matcher =
 | 
| +        element_size == 1
 | 
| +            ? key
 | 
| +            : IsWord32Shl(key, IsInt32Constant(WhichPowerOf2(element_size)));
 | 
| +
 | 
| +    ASSERT_TRUE(r.Changed());
 | 
| +    EXPECT_THAT(
 | 
| +        r.replacement(),
 | 
| +        IsLoadBuffer(BufferAccess(type),
 | 
| +                     IsIntPtrConstant(bit_cast<intptr_t>(&backing_store[0])),
 | 
| +                     offset_matcher,
 | 
| +                     IsNumberConstant(array->byte_length()->Number()), effect,
 | 
| +                     control));
 | 
|    }
 | 
|  }
 | 
|  
 | 
| @@ -692,32 +689,29 @@
 | 
|        NewArrayBuffer(backing_store, sizeof(backing_store));
 | 
|    ResolvedFeedbackSlot feedback;
 | 
|    TRACED_FOREACH(ExternalArrayType, type, kExternalArrayTypes) {
 | 
| -    TRACED_FOREACH(LanguageMode, language_mode, kLanguageModes) {
 | 
| -      Handle<JSTypedArray> array =
 | 
| -          factory()->NewJSTypedArray(type, buffer, 0, kLength);
 | 
| -      ElementAccess access = AccessBuilder::ForTypedArrayElement(type, true);
 | 
| -
 | 
| -      int min = random_number_generator()->NextInt(static_cast<int>(kLength));
 | 
| -      int max = random_number_generator()->NextInt(static_cast<int>(kLength));
 | 
| -      if (min > max) std::swap(min, max);
 | 
| -      Node* key = Parameter(Type::Range(min, max, zone()));
 | 
| -      Node* base = HeapConstant(array);
 | 
| -      Node* vector = UndefinedConstant();
 | 
| -      Node* context = UndefinedConstant();
 | 
| -      Node* effect = graph()->start();
 | 
| -      Node* control = graph()->start();
 | 
| -      Reduction r = Reduce(
 | 
| -          graph()->NewNode(javascript()->LoadProperty(feedback, language_mode),
 | 
| -                           base, key, vector, context, EmptyFrameState(),
 | 
| -                           EmptyFrameState(), effect, control));
 | 
| -
 | 
| -      ASSERT_TRUE(r.Changed());
 | 
| -      EXPECT_THAT(
 | 
| -          r.replacement(),
 | 
| -          IsLoadElement(access,
 | 
| -                        IsIntPtrConstant(bit_cast<intptr_t>(&backing_store[0])),
 | 
| -                        key, effect, control));
 | 
| -    }
 | 
| +    Handle<JSTypedArray> array =
 | 
| +        factory()->NewJSTypedArray(type, buffer, 0, kLength);
 | 
| +    ElementAccess access = AccessBuilder::ForTypedArrayElement(type, true);
 | 
| +
 | 
| +    int min = random_number_generator()->NextInt(static_cast<int>(kLength));
 | 
| +    int max = random_number_generator()->NextInt(static_cast<int>(kLength));
 | 
| +    if (min > max) std::swap(min, max);
 | 
| +    Node* key = Parameter(Type::Range(min, max, zone()));
 | 
| +    Node* base = HeapConstant(array);
 | 
| +    Node* vector = UndefinedConstant();
 | 
| +    Node* context = UndefinedConstant();
 | 
| +    Node* effect = graph()->start();
 | 
| +    Node* control = graph()->start();
 | 
| +    Reduction r = Reduce(graph()->NewNode(
 | 
| +        javascript()->LoadProperty(feedback), base, key, vector, context,
 | 
| +        EmptyFrameState(), EmptyFrameState(), effect, control));
 | 
| +
 | 
| +    ASSERT_TRUE(r.Changed());
 | 
| +    EXPECT_THAT(
 | 
| +        r.replacement(),
 | 
| +        IsLoadElement(access,
 | 
| +                      IsIntPtrConstant(bit_cast<intptr_t>(&backing_store[0])),
 | 
| +                      key, effect, control));
 | 
|    }
 | 
|  }
 | 
|  
 | 
| @@ -891,17 +885,14 @@
 | 
|    Node* effect = graph()->start();
 | 
|    Node* control = graph()->start();
 | 
|  
 | 
| -  TRACED_FOREACH(LanguageMode, language_mode, kLanguageModes) {
 | 
| -    for (size_t i = 0; i < arraysize(names); i++) {
 | 
| -      Unique<Name> name = Unique<Name>::CreateImmovable(names[i]);
 | 
| -      Reduction r = Reduce(graph()->NewNode(
 | 
| -          javascript()->LoadNamed(name, feedback, language_mode), global,
 | 
| -          vector, context, EmptyFrameState(), EmptyFrameState(), effect,
 | 
| -          control));
 | 
| -
 | 
| -      ASSERT_TRUE(r.Changed());
 | 
| -      EXPECT_THAT(r.replacement(), matches[i]);
 | 
| -    }
 | 
| +  for (size_t i = 0; i < arraysize(names); i++) {
 | 
| +    Unique<Name> name = Unique<Name>::CreateImmovable(names[i]);
 | 
| +    Reduction r = Reduce(graph()->NewNode(
 | 
| +        javascript()->LoadNamed(name, feedback), global, vector, context,
 | 
| +        EmptyFrameState(), EmptyFrameState(), effect, control));
 | 
| +
 | 
| +    ASSERT_TRUE(r.Changed());
 | 
| +    EXPECT_THAT(r.replacement(), matches[i]);
 | 
|    }
 | 
|  }
 | 
|  
 | 
| 
 |