| 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 1452 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1463 | 1463 |
| 1464 // Returns the constructor name (the name (possibly, inferred name) of the | 1464 // Returns the constructor name (the name (possibly, inferred name) of the |
| 1465 // function that was used to instantiate the object). | 1465 // function that was used to instantiate the object). |
| 1466 String* constructor_name(); | 1466 String* constructor_name(); |
| 1467 | 1467 |
| 1468 inline PropertyAttributes GetPropertyAttribute(String* name); | 1468 inline PropertyAttributes GetPropertyAttribute(String* name); |
| 1469 PropertyAttributes GetPropertyAttributeWithReceiver(JSReceiver* receiver, | 1469 PropertyAttributes GetPropertyAttributeWithReceiver(JSReceiver* receiver, |
| 1470 String* name); | 1470 String* name); |
| 1471 PropertyAttributes GetLocalPropertyAttribute(String* name); | 1471 PropertyAttributes GetLocalPropertyAttribute(String* name); |
| 1472 | 1472 |
| 1473 inline PropertyAttributes GetElementAttribute(uint32_t index); |
| 1474 inline PropertyAttributes GetElementAttributeWithReceiver( |
| 1475 JSReceiver* receiver, |
| 1476 uint32_t index, |
| 1477 bool continue_search); |
| 1478 inline PropertyAttributes GetLocalElementAttribute(uint32_t index); |
| 1479 |
| 1473 // Can cause a GC. | 1480 // Can cause a GC. |
| 1474 inline bool HasProperty(String* name); | 1481 inline bool HasProperty(String* name); |
| 1475 inline bool HasLocalProperty(String* name); | 1482 inline bool HasLocalProperty(String* name); |
| 1476 inline bool HasElement(uint32_t index); | 1483 inline bool HasElement(uint32_t index); |
| 1484 inline bool HasLocalElement(uint32_t index); |
| 1477 | 1485 |
| 1478 // Return the object's prototype (might be Heap::null_value()). | 1486 // Return the object's prototype (might be Heap::null_value()). |
| 1479 inline Object* GetPrototype(); | 1487 inline Object* GetPrototype(); |
| 1480 | 1488 |
| 1481 // Return the constructor function (may be Heap::null_value()). | 1489 // Return the constructor function (may be Heap::null_value()). |
| 1482 inline Object* GetConstructor(); | 1490 inline Object* GetConstructor(); |
| 1483 | 1491 |
| 1484 // Set the object's prototype (only JSReceiver and null are allowed). | 1492 // Set the object's prototype (only JSReceiver and null are allowed). |
| 1485 MUST_USE_RESULT MaybeObject* SetPrototype(Object* value, | 1493 MUST_USE_RESULT MaybeObject* SetPrototype(Object* value, |
| 1486 bool skip_hidden_prototypes); | 1494 bool skip_hidden_prototypes); |
| 1487 | 1495 |
| 1488 // Retrieves a permanent object identity hash code. The undefined value might | 1496 // Retrieves a permanent object identity hash code. The undefined value might |
| 1489 // be returned in case no hash was created yet and OMIT_CREATION was used. | 1497 // be returned in case no hash was created yet and OMIT_CREATION was used. |
| 1490 inline MUST_USE_RESULT MaybeObject* GetIdentityHash(CreationFlag flag); | 1498 inline MUST_USE_RESULT MaybeObject* GetIdentityHash(CreationFlag flag); |
| 1491 | 1499 |
| 1492 // Lookup a property. If found, the result is valid and has | 1500 // Lookup a property. If found, the result is valid and has |
| 1493 // detailed information. | 1501 // detailed information. |
| 1494 void LocalLookup(String* name, LookupResult* result); | 1502 void LocalLookup(String* name, LookupResult* result); |
| 1495 void Lookup(String* name, LookupResult* result); | 1503 void Lookup(String* name, LookupResult* result); |
| 1496 | 1504 |
| 1497 protected: | 1505 protected: |
| 1498 Smi* GenerateIdentityHash(); | 1506 Smi* GenerateIdentityHash(); |
| 1499 | 1507 |
| 1500 private: | 1508 private: |
| 1501 PropertyAttributes GetPropertyAttribute(JSReceiver* receiver, | 1509 PropertyAttributes GetPropertyAttributeForResult(JSReceiver* receiver, |
| 1502 LookupResult* result, | 1510 LookupResult* result, |
| 1503 String* name, | 1511 String* name, |
| 1504 bool continue_search); | 1512 bool continue_search); |
| 1505 | 1513 |
| 1506 DISALLOW_IMPLICIT_CONSTRUCTORS(JSReceiver); | 1514 DISALLOW_IMPLICIT_CONSTRUCTORS(JSReceiver); |
| 1507 }; | 1515 }; |
| 1508 | 1516 |
| 1509 // The JSObject describes real heap allocated JavaScript objects with | 1517 // The JSObject describes real heap allocated JavaScript objects with |
| 1510 // properties. | 1518 // properties. |
| 1511 // Note that the map of JSObject changes during execution to enable inline | 1519 // Note that the map of JSObject changes during execution to enable inline |
| 1512 // caching. | 1520 // caching. |
| 1513 class JSObject: public JSReceiver { | 1521 class JSObject: public JSReceiver { |
| 1514 public: | 1522 public: |
| (...skipping 166 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1681 String* name, | 1689 String* name, |
| 1682 bool continue_search); | 1690 bool continue_search); |
| 1683 PropertyAttributes GetPropertyAttributeWithInterceptor(JSObject* receiver, | 1691 PropertyAttributes GetPropertyAttributeWithInterceptor(JSObject* receiver, |
| 1684 String* name, | 1692 String* name, |
| 1685 bool continue_search); | 1693 bool continue_search); |
| 1686 PropertyAttributes GetPropertyAttributeWithFailedAccessCheck( | 1694 PropertyAttributes GetPropertyAttributeWithFailedAccessCheck( |
| 1687 Object* receiver, | 1695 Object* receiver, |
| 1688 LookupResult* result, | 1696 LookupResult* result, |
| 1689 String* name, | 1697 String* name, |
| 1690 bool continue_search); | 1698 bool continue_search); |
| 1699 PropertyAttributes GetElementAttributeWithReceiver(JSReceiver* receiver, |
| 1700 uint32_t index, |
| 1701 bool continue_search); |
| 1691 | 1702 |
| 1692 static void DefineAccessor(Handle<JSObject> object, | 1703 static void DefineAccessor(Handle<JSObject> object, |
| 1693 Handle<String> name, | 1704 Handle<String> name, |
| 1694 Handle<Object> getter, | 1705 Handle<Object> getter, |
| 1695 Handle<Object> setter, | 1706 Handle<Object> setter, |
| 1696 PropertyAttributes attributes); | 1707 PropertyAttributes attributes); |
| 1697 // Can cause GC. | 1708 // Can cause GC. |
| 1698 MUST_USE_RESULT MaybeObject* DefineAccessor(String* name, | 1709 MUST_USE_RESULT MaybeObject* DefineAccessor(String* name, |
| 1699 Object* getter, | 1710 Object* getter, |
| 1700 Object* setter, | 1711 Object* setter, |
| (...skipping 488 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2189 static inline int SizeOf(Map* map, HeapObject* object); | 2200 static inline int SizeOf(Map* map, HeapObject* object); |
| 2190 }; | 2201 }; |
| 2191 | 2202 |
| 2192 private: | 2203 private: |
| 2193 friend class DictionaryElementsAccessor; | 2204 friend class DictionaryElementsAccessor; |
| 2194 | 2205 |
| 2195 MUST_USE_RESULT MaybeObject* GetElementWithCallback(Object* receiver, | 2206 MUST_USE_RESULT MaybeObject* GetElementWithCallback(Object* receiver, |
| 2196 Object* structure, | 2207 Object* structure, |
| 2197 uint32_t index, | 2208 uint32_t index, |
| 2198 Object* holder); | 2209 Object* holder); |
| 2210 MUST_USE_RESULT PropertyAttributes GetElementAttributeWithInterceptor( |
| 2211 JSReceiver* receiver, |
| 2212 uint32_t index, |
| 2213 bool continue_search); |
| 2214 MUST_USE_RESULT PropertyAttributes GetElementAttributeWithoutInterceptor( |
| 2215 JSReceiver* receiver, |
| 2216 uint32_t index, |
| 2217 bool continue_search); |
| 2199 MUST_USE_RESULT MaybeObject* SetElementWithCallback( | 2218 MUST_USE_RESULT MaybeObject* SetElementWithCallback( |
| 2200 Object* structure, | 2219 Object* structure, |
| 2201 uint32_t index, | 2220 uint32_t index, |
| 2202 Object* value, | 2221 Object* value, |
| 2203 JSObject* holder, | 2222 JSObject* holder, |
| 2204 StrictModeFlag strict_mode); | 2223 StrictModeFlag strict_mode); |
| 2205 MUST_USE_RESULT MaybeObject* SetElementWithInterceptor( | 2224 MUST_USE_RESULT MaybeObject* SetElementWithInterceptor( |
| 2206 uint32_t index, | 2225 uint32_t index, |
| 2207 Object* value, | 2226 Object* value, |
| 2208 PropertyAttributes attributes, | 2227 PropertyAttributes attributes, |
| (...skipping 6766 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 8975 } else { | 8994 } else { |
| 8976 value &= ~(1 << bit_position); | 8995 value &= ~(1 << bit_position); |
| 8977 } | 8996 } |
| 8978 return value; | 8997 return value; |
| 8979 } | 8998 } |
| 8980 }; | 8999 }; |
| 8981 | 9000 |
| 8982 } } // namespace v8::internal | 9001 } } // namespace v8::internal |
| 8983 | 9002 |
| 8984 #endif // V8_OBJECTS_H_ | 9003 #endif // V8_OBJECTS_H_ |
| OLD | NEW |