| OLD | NEW |
| 1 // Copyright 2006-2008 the V8 project authors. All rights reserved. | 1 // Copyright 2006-2008 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 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 46 PropertyDetails::PropertyDetails(Smi* smi) { | 46 PropertyDetails::PropertyDetails(Smi* smi) { |
| 47 value_ = smi->value(); | 47 value_ = smi->value(); |
| 48 } | 48 } |
| 49 | 49 |
| 50 | 50 |
| 51 Smi* PropertyDetails::AsSmi() { | 51 Smi* PropertyDetails::AsSmi() { |
| 52 return Smi::FromInt(value_); | 52 return Smi::FromInt(value_); |
| 53 } | 53 } |
| 54 | 54 |
| 55 | 55 |
| 56 PropertyDetails PropertyDetails::AsDeleted() { |
| 57 PropertyDetails d(DONT_ENUM, NORMAL); |
| 58 Smi* smi = Smi::FromInt(AsSmi()->value() | DeletedField::encode(1)); |
| 59 return PropertyDetails(smi); |
| 60 } |
| 61 |
| 62 |
| 56 #define CAST_ACCESSOR(type) \ | 63 #define CAST_ACCESSOR(type) \ |
| 57 type* type::cast(Object* object) { \ | 64 type* type::cast(Object* object) { \ |
| 58 ASSERT(object->Is##type()); \ | 65 ASSERT(object->Is##type()); \ |
| 59 return reinterpret_cast<type*>(object); \ | 66 return reinterpret_cast<type*>(object); \ |
| 60 } | 67 } |
| 61 | 68 |
| 62 | 69 |
| 63 #define INT_ACCESSORS(holder, name, offset) \ | 70 #define INT_ACCESSORS(holder, name, offset) \ |
| 64 int holder::name() { return READ_INT_FIELD(this, offset); } \ | 71 int holder::name() { return READ_INT_FIELD(this, offset); } \ |
| 65 void holder::set_##name(int value) { WRITE_INT_FIELD(this, offset, value); } | 72 void holder::set_##name(int value) { WRITE_INT_FIELD(this, offset, value); } |
| (...skipping 336 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 402 && HeapObject::cast(this)->map()->instance_type() == CODE_TYPE; | 409 && HeapObject::cast(this)->map()->instance_type() == CODE_TYPE; |
| 403 } | 410 } |
| 404 | 411 |
| 405 | 412 |
| 406 bool Object::IsOddball() { | 413 bool Object::IsOddball() { |
| 407 return Object::IsHeapObject() | 414 return Object::IsHeapObject() |
| 408 && HeapObject::cast(this)->map()->instance_type() == ODDBALL_TYPE; | 415 && HeapObject::cast(this)->map()->instance_type() == ODDBALL_TYPE; |
| 409 } | 416 } |
| 410 | 417 |
| 411 | 418 |
| 419 bool Object::IsJSGlobalPropertyCell() { |
| 420 return Object::IsHeapObject() |
| 421 && HeapObject::cast(this)->map()->instance_type() |
| 422 == JS_GLOBAL_PROPERTY_CELL_TYPE; |
| 423 } |
| 424 |
| 425 |
| 412 bool Object::IsSharedFunctionInfo() { | 426 bool Object::IsSharedFunctionInfo() { |
| 413 return Object::IsHeapObject() && | 427 return Object::IsHeapObject() && |
| 414 (HeapObject::cast(this)->map()->instance_type() == | 428 (HeapObject::cast(this)->map()->instance_type() == |
| 415 SHARED_FUNCTION_INFO_TYPE); | 429 SHARED_FUNCTION_INFO_TYPE); |
| 416 } | 430 } |
| 417 | 431 |
| 418 | 432 |
| 419 bool Object::IsJSValue() { | 433 bool Object::IsJSValue() { |
| 420 return Object::IsHeapObject() | 434 return Object::IsHeapObject() |
| 421 && HeapObject::cast(this)->map()->instance_type() == JS_VALUE_TYPE; | 435 && HeapObject::cast(this)->map()->instance_type() == JS_VALUE_TYPE; |
| (...skipping 611 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1033 void JSObject::initialize_elements() { | 1047 void JSObject::initialize_elements() { |
| 1034 ASSERT(!Heap::InNewSpace(Heap::empty_fixed_array())); | 1048 ASSERT(!Heap::InNewSpace(Heap::empty_fixed_array())); |
| 1035 WRITE_FIELD(this, kElementsOffset, Heap::empty_fixed_array()); | 1049 WRITE_FIELD(this, kElementsOffset, Heap::empty_fixed_array()); |
| 1036 } | 1050 } |
| 1037 | 1051 |
| 1038 | 1052 |
| 1039 ACCESSORS(Oddball, to_string, String, kToStringOffset) | 1053 ACCESSORS(Oddball, to_string, String, kToStringOffset) |
| 1040 ACCESSORS(Oddball, to_number, Object, kToNumberOffset) | 1054 ACCESSORS(Oddball, to_number, Object, kToNumberOffset) |
| 1041 | 1055 |
| 1042 | 1056 |
| 1057 ACCESSORS(JSGlobalPropertyCell, value, Object, kValueOffset) |
| 1058 |
| 1043 int JSObject::GetHeaderSize() { | 1059 int JSObject::GetHeaderSize() { |
| 1044 switch (map()->instance_type()) { | 1060 switch (map()->instance_type()) { |
| 1045 case JS_GLOBAL_PROXY_TYPE: | 1061 case JS_GLOBAL_PROXY_TYPE: |
| 1046 return JSGlobalProxy::kSize; | 1062 return JSGlobalProxy::kSize; |
| 1047 case JS_GLOBAL_OBJECT_TYPE: | 1063 case JS_GLOBAL_OBJECT_TYPE: |
| 1048 return JSGlobalObject::kSize; | 1064 return JSGlobalObject::kSize; |
| 1049 case JS_BUILTINS_OBJECT_TYPE: | 1065 case JS_BUILTINS_OBJECT_TYPE: |
| 1050 return JSBuiltinsObject::kSize; | 1066 return JSBuiltinsObject::kSize; |
| 1051 case JS_FUNCTION_TYPE: | 1067 case JS_FUNCTION_TYPE: |
| 1052 return JSFunction::kSize; | 1068 return JSFunction::kSize; |
| (...skipping 337 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1390 CAST_ACCESSOR(SlicedString) | 1406 CAST_ACCESSOR(SlicedString) |
| 1391 CAST_ACCESSOR(ExternalString) | 1407 CAST_ACCESSOR(ExternalString) |
| 1392 CAST_ACCESSOR(ExternalAsciiString) | 1408 CAST_ACCESSOR(ExternalAsciiString) |
| 1393 CAST_ACCESSOR(ExternalTwoByteString) | 1409 CAST_ACCESSOR(ExternalTwoByteString) |
| 1394 CAST_ACCESSOR(JSObject) | 1410 CAST_ACCESSOR(JSObject) |
| 1395 CAST_ACCESSOR(Smi) | 1411 CAST_ACCESSOR(Smi) |
| 1396 CAST_ACCESSOR(Failure) | 1412 CAST_ACCESSOR(Failure) |
| 1397 CAST_ACCESSOR(HeapObject) | 1413 CAST_ACCESSOR(HeapObject) |
| 1398 CAST_ACCESSOR(HeapNumber) | 1414 CAST_ACCESSOR(HeapNumber) |
| 1399 CAST_ACCESSOR(Oddball) | 1415 CAST_ACCESSOR(Oddball) |
| 1416 CAST_ACCESSOR(JSGlobalPropertyCell) |
| 1400 CAST_ACCESSOR(SharedFunctionInfo) | 1417 CAST_ACCESSOR(SharedFunctionInfo) |
| 1401 CAST_ACCESSOR(Map) | 1418 CAST_ACCESSOR(Map) |
| 1402 CAST_ACCESSOR(JSFunction) | 1419 CAST_ACCESSOR(JSFunction) |
| 1403 CAST_ACCESSOR(GlobalObject) | 1420 CAST_ACCESSOR(GlobalObject) |
| 1404 CAST_ACCESSOR(JSGlobalProxy) | 1421 CAST_ACCESSOR(JSGlobalProxy) |
| 1405 CAST_ACCESSOR(JSGlobalObject) | 1422 CAST_ACCESSOR(JSGlobalObject) |
| 1406 CAST_ACCESSOR(JSBuiltinsObject) | 1423 CAST_ACCESSOR(JSBuiltinsObject) |
| 1407 CAST_ACCESSOR(Code) | 1424 CAST_ACCESSOR(Code) |
| 1408 CAST_ACCESSOR(JSArray) | 1425 CAST_ACCESSOR(JSArray) |
| 1409 CAST_ACCESSOR(JSRegExp) | 1426 CAST_ACCESSOR(JSRegExp) |
| (...skipping 1265 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2675 #undef WRITE_INT_FIELD | 2692 #undef WRITE_INT_FIELD |
| 2676 #undef READ_SHORT_FIELD | 2693 #undef READ_SHORT_FIELD |
| 2677 #undef WRITE_SHORT_FIELD | 2694 #undef WRITE_SHORT_FIELD |
| 2678 #undef READ_BYTE_FIELD | 2695 #undef READ_BYTE_FIELD |
| 2679 #undef WRITE_BYTE_FIELD | 2696 #undef WRITE_BYTE_FIELD |
| 2680 | 2697 |
| 2681 | 2698 |
| 2682 } } // namespace v8::internal | 2699 } } // namespace v8::internal |
| 2683 | 2700 |
| 2684 #endif // V8_OBJECTS_INL_H_ | 2701 #endif // V8_OBJECTS_INL_H_ |
| OLD | NEW |