| Index: src/x64/stub-cache-x64.cc
 | 
| diff --git a/src/x64/stub-cache-x64.cc b/src/x64/stub-cache-x64.cc
 | 
| index 5ea72579b4d1b76869a4b3e0b708ec77a0e09bfc..76d255579805d5a269e95afb119776fe874a5459 100644
 | 
| --- a/src/x64/stub-cache-x64.cc
 | 
| +++ b/src/x64/stub-cache-x64.cc
 | 
| @@ -2537,7 +2537,7 @@ MaybeObject* KeyedStoreStubCompiler::CompileStoreElement(Map* receiver_map) {
 | 
|    //  -- rsp[0] : return address
 | 
|    // -----------------------------------
 | 
|    Code* stub;
 | 
| -  JSObject::ElementsKind elements_kind = receiver_map->elements_kind();
 | 
| +  ElementsKind elements_kind = receiver_map->elements_kind();
 | 
|    bool is_js_array = receiver_map->instance_type() == JS_ARRAY_TYPE;
 | 
|    MaybeObject* maybe_stub =
 | 
|        KeyedStoreElementStub(is_js_array, elements_kind).TryGetCode();
 | 
| @@ -2996,7 +2996,7 @@ MaybeObject* KeyedLoadStubCompiler::CompileLoadElement(Map* receiver_map) {
 | 
|    //  -- rsp[0] : return address
 | 
|    // -----------------------------------
 | 
|    Code* stub;
 | 
| -  JSObject::ElementsKind elements_kind = receiver_map->elements_kind();
 | 
| +  ElementsKind elements_kind = receiver_map->elements_kind();
 | 
|    MaybeObject* maybe_stub = KeyedLoadElementStub(elements_kind).TryGetCode();
 | 
|    if (!maybe_stub->To(&stub)) return maybe_stub;
 | 
|    __ DispatchMap(rdx,
 | 
| @@ -3227,7 +3227,7 @@ void KeyedLoadStubCompiler::GenerateLoadDictionaryElement(
 | 
|  
 | 
|  void KeyedLoadStubCompiler::GenerateLoadExternalArray(
 | 
|      MacroAssembler* masm,
 | 
| -    JSObject::ElementsKind elements_kind) {
 | 
| +    ElementsKind elements_kind) {
 | 
|    // ----------- S t a t e -------------
 | 
|    //  -- rax    : key
 | 
|    //  -- rdx    : receiver
 | 
| @@ -3255,29 +3255,29 @@ void KeyedLoadStubCompiler::GenerateLoadExternalArray(
 | 
|    __ movq(rbx, FieldOperand(rbx, ExternalArray::kExternalPointerOffset));
 | 
|    // rbx: base pointer of external storage
 | 
|    switch (elements_kind) {
 | 
| -    case JSObject::EXTERNAL_BYTE_ELEMENTS:
 | 
| +    case EXTERNAL_BYTE_ELEMENTS:
 | 
|        __ movsxbq(rcx, Operand(rbx, rcx, times_1, 0));
 | 
|        break;
 | 
| -    case JSObject::EXTERNAL_PIXEL_ELEMENTS:
 | 
| -    case JSObject::EXTERNAL_UNSIGNED_BYTE_ELEMENTS:
 | 
| +    case EXTERNAL_PIXEL_ELEMENTS:
 | 
| +    case EXTERNAL_UNSIGNED_BYTE_ELEMENTS:
 | 
|        __ movzxbq(rcx, Operand(rbx, rcx, times_1, 0));
 | 
|        break;
 | 
| -    case JSObject::EXTERNAL_SHORT_ELEMENTS:
 | 
| +    case EXTERNAL_SHORT_ELEMENTS:
 | 
|        __ movsxwq(rcx, Operand(rbx, rcx, times_2, 0));
 | 
|        break;
 | 
| -    case JSObject::EXTERNAL_UNSIGNED_SHORT_ELEMENTS:
 | 
| +    case EXTERNAL_UNSIGNED_SHORT_ELEMENTS:
 | 
|        __ movzxwq(rcx, Operand(rbx, rcx, times_2, 0));
 | 
|        break;
 | 
| -    case JSObject::EXTERNAL_INT_ELEMENTS:
 | 
| +    case EXTERNAL_INT_ELEMENTS:
 | 
|        __ movsxlq(rcx, Operand(rbx, rcx, times_4, 0));
 | 
|        break;
 | 
| -    case JSObject::EXTERNAL_UNSIGNED_INT_ELEMENTS:
 | 
| +    case EXTERNAL_UNSIGNED_INT_ELEMENTS:
 | 
|        __ movl(rcx, Operand(rbx, rcx, times_4, 0));
 | 
|        break;
 | 
| -    case JSObject::EXTERNAL_FLOAT_ELEMENTS:
 | 
| +    case EXTERNAL_FLOAT_ELEMENTS:
 | 
|        __ cvtss2sd(xmm0, Operand(rbx, rcx, times_4, 0));
 | 
|        break;
 | 
| -    case JSObject::EXTERNAL_DOUBLE_ELEMENTS:
 | 
| +    case EXTERNAL_DOUBLE_ELEMENTS:
 | 
|        __ movsd(xmm0, Operand(rbx, rcx, times_8, 0));
 | 
|        break;
 | 
|      default:
 | 
| @@ -3293,7 +3293,7 @@ void KeyedLoadStubCompiler::GenerateLoadExternalArray(
 | 
|    // xmm0: value as double.
 | 
|  
 | 
|    ASSERT(kSmiValueSize == 32);
 | 
| -  if (elements_kind == JSObject::EXTERNAL_UNSIGNED_INT_ELEMENTS) {
 | 
| +  if (elements_kind == EXTERNAL_UNSIGNED_INT_ELEMENTS) {
 | 
|      // For the UnsignedInt array type, we need to see whether
 | 
|      // the value can be represented in a Smi. If not, we need to convert
 | 
|      // it to a HeapNumber.
 | 
| @@ -3317,8 +3317,8 @@ void KeyedLoadStubCompiler::GenerateLoadExternalArray(
 | 
|      __ movsd(FieldOperand(rcx, HeapNumber::kValueOffset), xmm0);
 | 
|      __ movq(rax, rcx);
 | 
|      __ ret(0);
 | 
| -  } else if (elements_kind == JSObject::EXTERNAL_FLOAT_ELEMENTS ||
 | 
| -             elements_kind == JSObject::EXTERNAL_DOUBLE_ELEMENTS) {
 | 
| +  } else if (elements_kind == EXTERNAL_FLOAT_ELEMENTS ||
 | 
| +             elements_kind == EXTERNAL_DOUBLE_ELEMENTS) {
 | 
|      // For the floating-point array type, we need to always allocate a
 | 
|      // HeapNumber.
 | 
|      __ AllocateHeapNumber(rcx, rbx, &slow);
 | 
| @@ -3361,7 +3361,7 @@ void KeyedLoadStubCompiler::GenerateLoadExternalArray(
 | 
|  
 | 
|  void KeyedStoreStubCompiler::GenerateStoreExternalArray(
 | 
|      MacroAssembler* masm,
 | 
| -    JSObject::ElementsKind elements_kind) {
 | 
| +    ElementsKind elements_kind) {
 | 
|    // ----------- S t a t e -------------
 | 
|    //  -- rax     : value
 | 
|    //  -- rcx     : key
 | 
| @@ -3391,7 +3391,7 @@ void KeyedStoreStubCompiler::GenerateStoreExternalArray(
 | 
|    // rbx: elements array
 | 
|    // rdi: untagged key
 | 
|    Label check_heap_number;
 | 
| -  if (elements_kind == JSObject::EXTERNAL_PIXEL_ELEMENTS) {
 | 
| +  if (elements_kind == EXTERNAL_PIXEL_ELEMENTS) {
 | 
|      // Float to pixel conversion is only implemented in the runtime for now.
 | 
|      __ JumpIfNotSmi(rax, &slow);
 | 
|    } else {
 | 
| @@ -3402,7 +3402,7 @@ void KeyedStoreStubCompiler::GenerateStoreExternalArray(
 | 
|    __ movq(rbx, FieldOperand(rbx, ExternalArray::kExternalPointerOffset));
 | 
|    // rbx: base pointer of external storage
 | 
|    switch (elements_kind) {
 | 
| -    case JSObject::EXTERNAL_PIXEL_ELEMENTS:
 | 
| +    case EXTERNAL_PIXEL_ELEMENTS:
 | 
|        {  // Clamp the value to [0..255].
 | 
|          Label done;
 | 
|          __ testl(rdx, Immediate(0xFFFFFF00));
 | 
| @@ -3413,39 +3413,39 @@ void KeyedStoreStubCompiler::GenerateStoreExternalArray(
 | 
|        }
 | 
|        __ movb(Operand(rbx, rdi, times_1, 0), rdx);
 | 
|        break;
 | 
| -    case JSObject::EXTERNAL_BYTE_ELEMENTS:
 | 
| -    case JSObject::EXTERNAL_UNSIGNED_BYTE_ELEMENTS:
 | 
| +    case EXTERNAL_BYTE_ELEMENTS:
 | 
| +    case EXTERNAL_UNSIGNED_BYTE_ELEMENTS:
 | 
|        __ movb(Operand(rbx, rdi, times_1, 0), rdx);
 | 
|        break;
 | 
| -    case JSObject::EXTERNAL_SHORT_ELEMENTS:
 | 
| -    case JSObject::EXTERNAL_UNSIGNED_SHORT_ELEMENTS:
 | 
| +    case EXTERNAL_SHORT_ELEMENTS:
 | 
| +    case EXTERNAL_UNSIGNED_SHORT_ELEMENTS:
 | 
|        __ movw(Operand(rbx, rdi, times_2, 0), rdx);
 | 
|        break;
 | 
| -    case JSObject::EXTERNAL_INT_ELEMENTS:
 | 
| -    case JSObject::EXTERNAL_UNSIGNED_INT_ELEMENTS:
 | 
| +    case EXTERNAL_INT_ELEMENTS:
 | 
| +    case EXTERNAL_UNSIGNED_INT_ELEMENTS:
 | 
|        __ movl(Operand(rbx, rdi, times_4, 0), rdx);
 | 
|        break;
 | 
| -    case JSObject::EXTERNAL_FLOAT_ELEMENTS:
 | 
| +    case EXTERNAL_FLOAT_ELEMENTS:
 | 
|        // Need to perform int-to-float conversion.
 | 
|        __ cvtlsi2ss(xmm0, rdx);
 | 
|        __ movss(Operand(rbx, rdi, times_4, 0), xmm0);
 | 
|        break;
 | 
| -    case JSObject::EXTERNAL_DOUBLE_ELEMENTS:
 | 
| +    case EXTERNAL_DOUBLE_ELEMENTS:
 | 
|        // Need to perform int-to-float conversion.
 | 
|        __ cvtlsi2sd(xmm0, rdx);
 | 
|        __ movsd(Operand(rbx, rdi, times_8, 0), xmm0);
 | 
|        break;
 | 
| -    case JSObject::FAST_ELEMENTS:
 | 
| -    case JSObject::FAST_DOUBLE_ELEMENTS:
 | 
| -    case JSObject::DICTIONARY_ELEMENTS:
 | 
| -    case JSObject::NON_STRICT_ARGUMENTS_ELEMENTS:
 | 
| +    case FAST_ELEMENTS:
 | 
| +    case FAST_DOUBLE_ELEMENTS:
 | 
| +    case DICTIONARY_ELEMENTS:
 | 
| +    case NON_STRICT_ARGUMENTS_ELEMENTS:
 | 
|        UNREACHABLE();
 | 
|        break;
 | 
|    }
 | 
|    __ ret(0);
 | 
|  
 | 
|    // TODO(danno): handle heap number -> pixel array conversion
 | 
| -  if (elements_kind != JSObject::EXTERNAL_PIXEL_ELEMENTS) {
 | 
| +  if (elements_kind != EXTERNAL_PIXEL_ELEMENTS) {
 | 
|      __ bind(&check_heap_number);
 | 
|      // rax: value
 | 
|      // rcx: key (a smi)
 | 
| @@ -3464,11 +3464,11 @@ void KeyedStoreStubCompiler::GenerateStoreExternalArray(
 | 
|      // rdi: untagged index
 | 
|      // rbx: base pointer of external storage
 | 
|      // top of FPU stack: value
 | 
| -    if (elements_kind == JSObject::EXTERNAL_FLOAT_ELEMENTS) {
 | 
| +    if (elements_kind == EXTERNAL_FLOAT_ELEMENTS) {
 | 
|        __ cvtsd2ss(xmm0, xmm0);
 | 
|        __ movss(Operand(rbx, rdi, times_4, 0), xmm0);
 | 
|        __ ret(0);
 | 
| -    } else if (elements_kind == JSObject::EXTERNAL_DOUBLE_ELEMENTS) {
 | 
| +    } else if (elements_kind == EXTERNAL_DOUBLE_ELEMENTS) {
 | 
|        __ movsd(Operand(rbx, rdi, times_8, 0), xmm0);
 | 
|        __ ret(0);
 | 
|      } else {
 | 
| @@ -3482,30 +3482,30 @@ void KeyedStoreStubCompiler::GenerateStoreExternalArray(
 | 
|        // rdi: untagged index
 | 
|        // rbx: base pointer of external storage
 | 
|        switch (elements_kind) {
 | 
| -        case JSObject::EXTERNAL_BYTE_ELEMENTS:
 | 
| -        case JSObject::EXTERNAL_UNSIGNED_BYTE_ELEMENTS:
 | 
| +        case EXTERNAL_BYTE_ELEMENTS:
 | 
| +        case EXTERNAL_UNSIGNED_BYTE_ELEMENTS:
 | 
|            __ cvttsd2si(rdx, xmm0);
 | 
|            __ movb(Operand(rbx, rdi, times_1, 0), rdx);
 | 
|            break;
 | 
| -        case JSObject::EXTERNAL_SHORT_ELEMENTS:
 | 
| -        case JSObject::EXTERNAL_UNSIGNED_SHORT_ELEMENTS:
 | 
| +        case EXTERNAL_SHORT_ELEMENTS:
 | 
| +        case EXTERNAL_UNSIGNED_SHORT_ELEMENTS:
 | 
|            __ cvttsd2si(rdx, xmm0);
 | 
|            __ movw(Operand(rbx, rdi, times_2, 0), rdx);
 | 
|            break;
 | 
| -        case JSObject::EXTERNAL_INT_ELEMENTS:
 | 
| -        case JSObject::EXTERNAL_UNSIGNED_INT_ELEMENTS:
 | 
| +        case EXTERNAL_INT_ELEMENTS:
 | 
| +        case EXTERNAL_UNSIGNED_INT_ELEMENTS:
 | 
|            // Convert to int64, so that NaN and infinities become
 | 
|            // 0x8000000000000000, which is zero mod 2^32.
 | 
|            __ cvttsd2siq(rdx, xmm0);
 | 
|            __ movl(Operand(rbx, rdi, times_4, 0), rdx);
 | 
|            break;
 | 
| -        case JSObject::EXTERNAL_PIXEL_ELEMENTS:
 | 
| -        case JSObject::EXTERNAL_FLOAT_ELEMENTS:
 | 
| -        case JSObject::EXTERNAL_DOUBLE_ELEMENTS:
 | 
| -        case JSObject::FAST_ELEMENTS:
 | 
| -        case JSObject::FAST_DOUBLE_ELEMENTS:
 | 
| -        case JSObject::DICTIONARY_ELEMENTS:
 | 
| -        case JSObject::NON_STRICT_ARGUMENTS_ELEMENTS:
 | 
| +        case EXTERNAL_PIXEL_ELEMENTS:
 | 
| +        case EXTERNAL_FLOAT_ELEMENTS:
 | 
| +        case EXTERNAL_DOUBLE_ELEMENTS:
 | 
| +        case FAST_ELEMENTS:
 | 
| +        case FAST_DOUBLE_ELEMENTS:
 | 
| +        case DICTIONARY_ELEMENTS:
 | 
| +        case NON_STRICT_ARGUMENTS_ELEMENTS:
 | 
|            UNREACHABLE();
 | 
|            break;
 | 
|        }
 | 
| 
 |