| OLD | NEW |
| 1 // Copyright 2006-2009 the V8 project authors. All rights reserved. | 1 // Copyright 2006-2009 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 1230 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1241 | 1241 |
| 1242 inline PropertyAttributes GetPropertyAttribute(String* name); | 1242 inline PropertyAttributes GetPropertyAttribute(String* name); |
| 1243 PropertyAttributes GetPropertyAttributeWithReceiver(JSObject* receiver, | 1243 PropertyAttributes GetPropertyAttributeWithReceiver(JSObject* receiver, |
| 1244 String* name); | 1244 String* name); |
| 1245 PropertyAttributes GetLocalPropertyAttribute(String* name); | 1245 PropertyAttributes GetLocalPropertyAttribute(String* name); |
| 1246 | 1246 |
| 1247 Object* DefineAccessor(String* name, bool is_getter, JSFunction* fun, | 1247 Object* DefineAccessor(String* name, bool is_getter, JSFunction* fun, |
| 1248 PropertyAttributes attributes); | 1248 PropertyAttributes attributes); |
| 1249 Object* LookupAccessor(String* name, bool is_getter); | 1249 Object* LookupAccessor(String* name, bool is_getter); |
| 1250 | 1250 |
| 1251 Object* DefineAccessor(AccessorInfo* info); |
| 1252 |
| 1251 // Used from Object::GetProperty(). | 1253 // Used from Object::GetProperty(). |
| 1252 Object* GetPropertyWithFailedAccessCheck(Object* receiver, | 1254 Object* GetPropertyWithFailedAccessCheck(Object* receiver, |
| 1253 LookupResult* result, | 1255 LookupResult* result, |
| 1254 String* name, | 1256 String* name, |
| 1255 PropertyAttributes* attributes); | 1257 PropertyAttributes* attributes); |
| 1256 Object* GetPropertyWithInterceptor(JSObject* receiver, | 1258 Object* GetPropertyWithInterceptor(JSObject* receiver, |
| 1257 String* name, | 1259 String* name, |
| 1258 PropertyAttributes* attributes); | 1260 PropertyAttributes* attributes); |
| 1259 Object* GetPropertyPostInterceptor(JSObject* receiver, | 1261 Object* GetPropertyPostInterceptor(JSObject* receiver, |
| 1260 String* name, | 1262 String* name, |
| (...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1363 // Lookup a property. If found, the result is valid and has | 1365 // Lookup a property. If found, the result is valid and has |
| 1364 // detailed information. | 1366 // detailed information. |
| 1365 void LocalLookup(String* name, LookupResult* result); | 1367 void LocalLookup(String* name, LookupResult* result); |
| 1366 void Lookup(String* name, LookupResult* result); | 1368 void Lookup(String* name, LookupResult* result); |
| 1367 | 1369 |
| 1368 // The following lookup functions skip interceptors. | 1370 // The following lookup functions skip interceptors. |
| 1369 void LocalLookupRealNamedProperty(String* name, LookupResult* result); | 1371 void LocalLookupRealNamedProperty(String* name, LookupResult* result); |
| 1370 void LookupRealNamedProperty(String* name, LookupResult* result); | 1372 void LookupRealNamedProperty(String* name, LookupResult* result); |
| 1371 void LookupRealNamedPropertyInPrototypes(String* name, LookupResult* result); | 1373 void LookupRealNamedPropertyInPrototypes(String* name, LookupResult* result); |
| 1372 void LookupCallbackSetterInPrototypes(String* name, LookupResult* result); | 1374 void LookupCallbackSetterInPrototypes(String* name, LookupResult* result); |
| 1373 Object* LookupCallbackSetterInPrototypes(uint32_t index); | 1375 bool SetElementWithCallbackSetterInPrototypes(uint32_t index, Object* value); |
| 1374 void LookupCallback(String* name, LookupResult* result); | 1376 void LookupCallback(String* name, LookupResult* result); |
| 1375 | 1377 |
| 1376 // Returns the number of properties on this object filtering out properties | 1378 // Returns the number of properties on this object filtering out properties |
| 1377 // with the specified attributes (ignoring interceptors). | 1379 // with the specified attributes (ignoring interceptors). |
| 1378 int NumberOfLocalProperties(PropertyAttributes filter); | 1380 int NumberOfLocalProperties(PropertyAttributes filter); |
| 1379 // Returns the number of enumerable properties (ignoring interceptors). | 1381 // Returns the number of enumerable properties (ignoring interceptors). |
| 1380 int NumberOfEnumProperties(); | 1382 int NumberOfEnumProperties(); |
| 1381 // Fill in details for properties into storage starting at the specified | 1383 // Fill in details for properties into storage starting at the specified |
| 1382 // index. | 1384 // index. |
| 1383 void GetLocalPropertyNames(FixedArray* storage, int index); | 1385 void GetLocalPropertyNames(FixedArray* storage, int index); |
| (...skipping 148 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1532 // Layout description. | 1534 // Layout description. |
| 1533 static const int kPropertiesOffset = HeapObject::kHeaderSize; | 1535 static const int kPropertiesOffset = HeapObject::kHeaderSize; |
| 1534 static const int kElementsOffset = kPropertiesOffset + kPointerSize; | 1536 static const int kElementsOffset = kPropertiesOffset + kPointerSize; |
| 1535 static const int kHeaderSize = kElementsOffset + kPointerSize; | 1537 static const int kHeaderSize = kElementsOffset + kPointerSize; |
| 1536 | 1538 |
| 1537 STATIC_CHECK(kHeaderSize == Internals::kJSObjectHeaderSize); | 1539 STATIC_CHECK(kHeaderSize == Internals::kJSObjectHeaderSize); |
| 1538 | 1540 |
| 1539 Object* GetElementWithInterceptor(JSObject* receiver, uint32_t index); | 1541 Object* GetElementWithInterceptor(JSObject* receiver, uint32_t index); |
| 1540 | 1542 |
| 1541 private: | 1543 private: |
| 1544 Object* GetElementWithCallback(Object* receiver, |
| 1545 Object* structure, |
| 1546 uint32_t index, |
| 1547 Object* holder); |
| 1548 Object* SetElementWithCallback(Object* structure, |
| 1549 uint32_t index, |
| 1550 Object* value, |
| 1551 JSObject* holder); |
| 1542 Object* SetElementWithInterceptor(uint32_t index, Object* value); | 1552 Object* SetElementWithInterceptor(uint32_t index, Object* value); |
| 1543 Object* SetElementWithoutInterceptor(uint32_t index, Object* value); | 1553 Object* SetElementWithoutInterceptor(uint32_t index, Object* value); |
| 1544 | 1554 |
| 1545 Object* GetElementPostInterceptor(JSObject* receiver, uint32_t index); | 1555 Object* GetElementPostInterceptor(JSObject* receiver, uint32_t index); |
| 1546 | 1556 |
| 1547 Object* DeletePropertyPostInterceptor(String* name, DeleteMode mode); | 1557 Object* DeletePropertyPostInterceptor(String* name, DeleteMode mode); |
| 1548 Object* DeletePropertyWithInterceptor(String* name); | 1558 Object* DeletePropertyWithInterceptor(String* name); |
| 1549 | 1559 |
| 1550 Object* DeleteElementPostInterceptor(uint32_t index, DeleteMode mode); | 1560 Object* DeleteElementPostInterceptor(uint32_t index, DeleteMode mode); |
| 1551 Object* DeleteElementWithInterceptor(uint32_t index); | 1561 Object* DeleteElementWithInterceptor(uint32_t index); |
| (...skipping 10 matching lines...) Expand all Loading... |
| 1562 String* name, | 1572 String* name, |
| 1563 bool continue_search); | 1573 bool continue_search); |
| 1564 PropertyAttributes GetPropertyAttribute(JSObject* receiver, | 1574 PropertyAttributes GetPropertyAttribute(JSObject* receiver, |
| 1565 LookupResult* result, | 1575 LookupResult* result, |
| 1566 String* name, | 1576 String* name, |
| 1567 bool continue_search); | 1577 bool continue_search); |
| 1568 | 1578 |
| 1569 // Returns true if most of the elements backing storage is used. | 1579 // Returns true if most of the elements backing storage is used. |
| 1570 bool HasDenseElements(); | 1580 bool HasDenseElements(); |
| 1571 | 1581 |
| 1582 bool CanSetCallback(String* name); |
| 1583 Object* SetElementCallback(uint32_t index, |
| 1584 Object* structure, |
| 1585 PropertyAttributes attributes); |
| 1586 Object* SetPropertyCallback(String* name, |
| 1587 Object* structure, |
| 1588 PropertyAttributes attributes); |
| 1572 Object* DefineGetterSetter(String* name, PropertyAttributes attributes); | 1589 Object* DefineGetterSetter(String* name, PropertyAttributes attributes); |
| 1573 | 1590 |
| 1574 void LookupInDescriptor(String* name, LookupResult* result); | 1591 void LookupInDescriptor(String* name, LookupResult* result); |
| 1575 | 1592 |
| 1576 DISALLOW_IMPLICIT_CONSTRUCTORS(JSObject); | 1593 DISALLOW_IMPLICIT_CONSTRUCTORS(JSObject); |
| 1577 }; | 1594 }; |
| 1578 | 1595 |
| 1579 | 1596 |
| 1580 // Abstract super class arrays. It provides length behavior. | 1597 // Abstract super class arrays. It provides length behavior. |
| 1581 class Array: public HeapObject { | 1598 class Array: public HeapObject { |
| (...skipping 3581 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5163 } else { | 5180 } else { |
| 5164 value &= ~(1 << bit_position); | 5181 value &= ~(1 << bit_position); |
| 5165 } | 5182 } |
| 5166 return value; | 5183 return value; |
| 5167 } | 5184 } |
| 5168 }; | 5185 }; |
| 5169 | 5186 |
| 5170 } } // namespace v8::internal | 5187 } } // namespace v8::internal |
| 5171 | 5188 |
| 5172 #endif // V8_OBJECTS_H_ | 5189 #endif // V8_OBJECTS_H_ |
| OLD | NEW |