| OLD | NEW | 
|     1 // Copyright 2012 the V8 project authors. All rights reserved. |     1 // Copyright 2012 the V8 project authors. All rights reserved. | 
|     2 // Redistribution and use in source and binary forms, with or without |     2 // Redistribution and use in source and binary forms, with or without | 
|     3 // modification, are permitted provided that the following conditions are |     3 // modification, are permitted provided that the following conditions are | 
|     4 // met: |     4 // met: | 
|     5 // |     5 // | 
|     6 //     * Redistributions of source code must retain the above copyright |     6 //     * Redistributions of source code must retain the above copyright | 
|     7 //       notice, this list of conditions and the following disclaimer. |     7 //       notice, this list of conditions and the following disclaimer. | 
|     8 //     * Redistributions in binary form must reproduce the above |     8 //     * Redistributions in binary form must reproduce the above | 
|     9 //       copyright notice, this list of conditions and the following |     9 //       copyright notice, this list of conditions and the following | 
|    10 //       disclaimer in the documentation and/or other materials provided |    10 //       disclaimer in the documentation and/or other materials provided | 
| (...skipping 2307 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  2318       // Non-negative property indices are in the properties array. |  2318       // Non-negative property indices are in the properties array. | 
|  2319       __ mov(result, FieldOperand(object, JSObject::kPropertiesOffset)); |  2319       __ mov(result, FieldOperand(object, JSObject::kPropertiesOffset)); | 
|  2320       __ mov(result, FieldOperand(result, offset + FixedArray::kHeaderSize)); |  2320       __ mov(result, FieldOperand(result, offset + FixedArray::kHeaderSize)); | 
|  2321     } |  2321     } | 
|  2322   } else if (lookup.IsFound() && lookup.type() == CONSTANT_FUNCTION) { |  2322   } else if (lookup.IsFound() && lookup.type() == CONSTANT_FUNCTION) { | 
|  2323     Handle<JSFunction> function(lookup.GetConstantFunctionFromMap(*type)); |  2323     Handle<JSFunction> function(lookup.GetConstantFunctionFromMap(*type)); | 
|  2324     __ LoadHeapObject(result, function); |  2324     __ LoadHeapObject(result, function); | 
|  2325   } else { |  2325   } else { | 
|  2326     // Negative lookup. |  2326     // Negative lookup. | 
|  2327     // Check prototypes. |  2327     // Check prototypes. | 
|  2328     HeapObject* current = HeapObject::cast((*type)->prototype()); |  2328     Handle<HeapObject> current(HeapObject::cast((*type)->prototype())); | 
|  2329     Heap* heap = type->GetHeap(); |  2329     Heap* heap = type->GetHeap(); | 
|  2330     while (current != heap->null_value()) { |  2330     while (*current != heap->null_value()) { | 
|  2331       Handle<HeapObject> link(current); |  2331       __ LoadHeapObject(result, current); | 
|  2332       __ LoadHeapObject(result, link); |  | 
|  2333       __ cmp(FieldOperand(result, HeapObject::kMapOffset), |  2332       __ cmp(FieldOperand(result, HeapObject::kMapOffset), | 
|  2334                           Handle<Map>(JSObject::cast(current)->map())); |  2333                           Handle<Map>(current->map())); | 
|  2335       DeoptimizeIf(not_equal, env); |  2334       DeoptimizeIf(not_equal, env); | 
|  2336       current = HeapObject::cast(current->map()->prototype()); |  2335       current = | 
 |  2336           Handle<HeapObject>(HeapObject::cast(current->map()->prototype())); | 
|  2337     } |  2337     } | 
|  2338     __ mov(result, factory()->undefined_value()); |  2338     __ mov(result, factory()->undefined_value()); | 
|  2339   } |  2339   } | 
|  2340 } |  2340 } | 
|  2341  |  2341  | 
|  2342  |  2342  | 
|  2343 void LCodeGen::EmitPushTaggedOperand(LOperand* operand) { |  2343 void LCodeGen::EmitPushTaggedOperand(LOperand* operand) { | 
|  2344   ASSERT(!operand->IsDoubleRegister()); |  2344   ASSERT(!operand->IsDoubleRegister()); | 
|  2345   if (operand->IsConstantOperand()) { |  2345   if (operand->IsConstantOperand()) { | 
|  2346     Handle<Object> object = ToHandle(LConstantOperand::cast(operand)); |  2346     Handle<Object> object = ToHandle(LConstantOperand::cast(operand)); | 
| (...skipping 2880 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  5227                               FixedArray::kHeaderSize - kPointerSize)); |  5227                               FixedArray::kHeaderSize - kPointerSize)); | 
|  5228   __ bind(&done); |  5228   __ bind(&done); | 
|  5229 } |  5229 } | 
|  5230  |  5230  | 
|  5231  |  5231  | 
|  5232 #undef __ |  5232 #undef __ | 
|  5233  |  5233  | 
|  5234 } }  // namespace v8::internal |  5234 } }  // namespace v8::internal | 
|  5235  |  5235  | 
|  5236 #endif  // V8_TARGET_ARCH_IA32 |  5236 #endif  // V8_TARGET_ARCH_IA32 | 
| OLD | NEW |