| OLD | NEW |
| 1 // Copyright 2011 the V8 project authors. All rights reserved. | 1 // Copyright 2011 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 829 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 840 String* key, | 840 String* key, |
| 841 PropertyAttributes* attributes); | 841 PropertyAttributes* attributes); |
| 842 MUST_USE_RESULT MaybeObject* GetProperty(Object* receiver, | 842 MUST_USE_RESULT MaybeObject* GetProperty(Object* receiver, |
| 843 LookupResult* result, | 843 LookupResult* result, |
| 844 String* key, | 844 String* key, |
| 845 PropertyAttributes* attributes); | 845 PropertyAttributes* attributes); |
| 846 MUST_USE_RESULT MaybeObject* GetPropertyWithCallback(Object* receiver, | 846 MUST_USE_RESULT MaybeObject* GetPropertyWithCallback(Object* receiver, |
| 847 Object* structure, | 847 Object* structure, |
| 848 String* name, | 848 String* name, |
| 849 Object* holder); | 849 Object* holder); |
| 850 MUST_USE_RESULT MaybeObject* GetPropertyWithHandler(Object* receiver, | |
| 851 String* name, | |
| 852 Object* handler); | |
| 853 MUST_USE_RESULT MaybeObject* GetPropertyWithDefinedGetter(Object* receiver, | 850 MUST_USE_RESULT MaybeObject* GetPropertyWithDefinedGetter(Object* receiver, |
| 854 JSFunction* getter); | 851 JSFunction* getter); |
| 855 | 852 |
| 856 inline MaybeObject* GetElement(uint32_t index); | 853 inline MaybeObject* GetElement(uint32_t index); |
| 857 // For use when we know that no exception can be thrown. | 854 // For use when we know that no exception can be thrown. |
| 858 inline Object* GetElementNoExceptionThrown(uint32_t index); | 855 inline Object* GetElementNoExceptionThrown(uint32_t index); |
| 859 MaybeObject* GetElementWithReceiver(Object* receiver, uint32_t index); | 856 MaybeObject* GetElementWithReceiver(Object* receiver, uint32_t index); |
| 860 | 857 |
| 861 // Return the object's prototype (might be Heap::null_value()). | 858 // Return the object's prototype (might be Heap::null_value()). |
| 862 Object* GetPrototype(); | 859 Object* GetPrototype(); |
| (...skipping 518 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1381 // Can cause GC. | 1378 // Can cause GC. |
| 1382 MUST_USE_RESULT MaybeObject* SetProperty(String* key, | 1379 MUST_USE_RESULT MaybeObject* SetProperty(String* key, |
| 1383 Object* value, | 1380 Object* value, |
| 1384 PropertyAttributes attributes, | 1381 PropertyAttributes attributes, |
| 1385 StrictModeFlag strict_mode); | 1382 StrictModeFlag strict_mode); |
| 1386 MUST_USE_RESULT MaybeObject* SetProperty(LookupResult* result, | 1383 MUST_USE_RESULT MaybeObject* SetProperty(LookupResult* result, |
| 1387 String* key, | 1384 String* key, |
| 1388 Object* value, | 1385 Object* value, |
| 1389 PropertyAttributes attributes, | 1386 PropertyAttributes attributes, |
| 1390 StrictModeFlag strict_mode); | 1387 StrictModeFlag strict_mode); |
| 1388 MUST_USE_RESULT MaybeObject* SetPropertyWithDefinedSetter(JSFunction* setter, |
| 1389 Object* value); |
| 1391 | 1390 |
| 1392 MUST_USE_RESULT MaybeObject* DeleteProperty(String* name, DeleteMode mode); | 1391 MUST_USE_RESULT MaybeObject* DeleteProperty(String* name, DeleteMode mode); |
| 1393 | 1392 |
| 1394 // Returns the class name ([[Class]] property in the specification). | 1393 // Returns the class name ([[Class]] property in the specification). |
| 1395 String* class_name(); | 1394 String* class_name(); |
| 1396 | 1395 |
| 1397 // Returns the constructor name (the name (possibly, inferred name) of the | 1396 // Returns the constructor name (the name (possibly, inferred name) of the |
| 1398 // function that was used to instantiate the object). | 1397 // function that was used to instantiate the object). |
| 1399 String* constructor_name(); | 1398 String* constructor_name(); |
| 1400 | 1399 |
| (...skipping 118 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1519 MUST_USE_RESULT inline MaybeObject* EnsureWritableFastElements(); | 1518 MUST_USE_RESULT inline MaybeObject* EnsureWritableFastElements(); |
| 1520 | 1519 |
| 1521 // Collects elements starting at index 0. | 1520 // Collects elements starting at index 0. |
| 1522 // Undefined values are placed after non-undefined values. | 1521 // Undefined values are placed after non-undefined values. |
| 1523 // Returns the number of non-undefined values. | 1522 // Returns the number of non-undefined values. |
| 1524 MUST_USE_RESULT MaybeObject* PrepareElementsForSort(uint32_t limit); | 1523 MUST_USE_RESULT MaybeObject* PrepareElementsForSort(uint32_t limit); |
| 1525 // As PrepareElementsForSort, but only on objects where elements is | 1524 // As PrepareElementsForSort, but only on objects where elements is |
| 1526 // a dictionary, and it will stay a dictionary. | 1525 // a dictionary, and it will stay a dictionary. |
| 1527 MUST_USE_RESULT MaybeObject* PrepareSlowElementsForSort(uint32_t limit); | 1526 MUST_USE_RESULT MaybeObject* PrepareSlowElementsForSort(uint32_t limit); |
| 1528 | 1527 |
| 1528 // Can cause GC. |
| 1529 MUST_USE_RESULT MaybeObject* SetPropertyForResult(LookupResult* result, | 1529 MUST_USE_RESULT MaybeObject* SetPropertyForResult(LookupResult* result, |
| 1530 String* key, | 1530 String* key, |
| 1531 Object* value, | 1531 Object* value, |
| 1532 PropertyAttributes attributes, | 1532 PropertyAttributes attributes, |
| 1533 StrictModeFlag strict_mode); | 1533 StrictModeFlag strict_mode); |
| 1534 MUST_USE_RESULT MaybeObject* SetPropertyWithFailedAccessCheck( | 1534 MUST_USE_RESULT MaybeObject* SetPropertyWithFailedAccessCheck( |
| 1535 LookupResult* result, | 1535 LookupResult* result, |
| 1536 String* name, | 1536 String* name, |
| 1537 Object* value, | 1537 Object* value, |
| 1538 bool check_prototype, | 1538 bool check_prototype, |
| 1539 StrictModeFlag strict_mode); | 1539 StrictModeFlag strict_mode); |
| 1540 MUST_USE_RESULT MaybeObject* SetPropertyWithCallback( | 1540 MUST_USE_RESULT MaybeObject* SetPropertyWithCallback( |
| 1541 Object* structure, | 1541 Object* structure, |
| 1542 String* name, | 1542 String* name, |
| 1543 Object* value, | 1543 Object* value, |
| 1544 JSObject* holder, | 1544 JSObject* holder, |
| 1545 StrictModeFlag strict_mode); | 1545 StrictModeFlag strict_mode); |
| 1546 MUST_USE_RESULT MaybeObject* SetPropertyWithDefinedSetter(JSFunction* setter, | |
| 1547 Object* value); | |
| 1548 MUST_USE_RESULT MaybeObject* SetPropertyWithInterceptor( | 1546 MUST_USE_RESULT MaybeObject* SetPropertyWithInterceptor( |
| 1549 String* name, | 1547 String* name, |
| 1550 Object* value, | 1548 Object* value, |
| 1551 PropertyAttributes attributes, | 1549 PropertyAttributes attributes, |
| 1552 StrictModeFlag strict_mode); | 1550 StrictModeFlag strict_mode); |
| 1553 MUST_USE_RESULT MaybeObject* SetPropertyPostInterceptor( | 1551 MUST_USE_RESULT MaybeObject* SetPropertyPostInterceptor( |
| 1554 String* name, | 1552 String* name, |
| 1555 Object* value, | 1553 Object* value, |
| 1556 PropertyAttributes attributes, | 1554 PropertyAttributes attributes, |
| 1557 StrictModeFlag strict_mode); | 1555 StrictModeFlag strict_mode); |
| (...skipping 208 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1766 | 1764 |
| 1767 // Get the header size for a JSObject. Used to compute the index of | 1765 // Get the header size for a JSObject. Used to compute the index of |
| 1768 // internal fields as well as the number of internal fields. | 1766 // internal fields as well as the number of internal fields. |
| 1769 inline int GetHeaderSize(); | 1767 inline int GetHeaderSize(); |
| 1770 | 1768 |
| 1771 inline int GetInternalFieldCount(); | 1769 inline int GetInternalFieldCount(); |
| 1772 inline int GetInternalFieldOffset(int index); | 1770 inline int GetInternalFieldOffset(int index); |
| 1773 inline Object* GetInternalField(int index); | 1771 inline Object* GetInternalField(int index); |
| 1774 inline void SetInternalField(int index, Object* value); | 1772 inline void SetInternalField(int index, Object* value); |
| 1775 | 1773 |
| 1776 // Lookup a property. If found, the result is valid and has | |
| 1777 // detailed information. | |
| 1778 void LocalLookup(String* name, LookupResult* result); | |
| 1779 | |
| 1780 // The following lookup functions skip interceptors. | 1774 // The following lookup functions skip interceptors. |
| 1781 void LocalLookupRealNamedProperty(String* name, LookupResult* result); | 1775 void LocalLookupRealNamedProperty(String* name, LookupResult* result); |
| 1782 void LookupRealNamedProperty(String* name, LookupResult* result); | 1776 void LookupRealNamedProperty(String* name, LookupResult* result); |
| 1783 void LookupRealNamedPropertyInPrototypes(String* name, LookupResult* result); | 1777 void LookupRealNamedPropertyInPrototypes(String* name, LookupResult* result); |
| 1784 void LookupCallbackSetterInPrototypes(String* name, LookupResult* result); | 1778 void LookupCallbackSetterInPrototypes(String* name, LookupResult* result); |
| 1785 MUST_USE_RESULT MaybeObject* SetElementWithCallbackSetterInPrototypes( | 1779 MUST_USE_RESULT MaybeObject* SetElementWithCallbackSetterInPrototypes( |
| 1786 uint32_t index, Object* value, bool* found, StrictModeFlag strict_mode); | 1780 uint32_t index, Object* value, bool* found, StrictModeFlag strict_mode); |
| 1787 void LookupCallback(String* name, LookupResult* result); | 1781 void LookupCallback(String* name, LookupResult* result); |
| 1788 | 1782 |
| 1789 // Returns the number of properties on this object filtering out properties | 1783 // Returns the number of properties on this object filtering out properties |
| (...skipping 4792 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 6582 class JSProxy: public JSReceiver { | 6576 class JSProxy: public JSReceiver { |
| 6583 public: | 6577 public: |
| 6584 // [handler]: The handler property. | 6578 // [handler]: The handler property. |
| 6585 DECL_ACCESSORS(handler, Object) | 6579 DECL_ACCESSORS(handler, Object) |
| 6586 | 6580 |
| 6587 // Casting. | 6581 // Casting. |
| 6588 static inline JSProxy* cast(Object* obj); | 6582 static inline JSProxy* cast(Object* obj); |
| 6589 | 6583 |
| 6590 bool HasPropertyWithHandler(String* name); | 6584 bool HasPropertyWithHandler(String* name); |
| 6591 | 6585 |
| 6586 MUST_USE_RESULT MaybeObject* GetPropertyWithHandler( |
| 6587 Object* receiver, |
| 6588 String* name); |
| 6589 |
| 6592 MUST_USE_RESULT MaybeObject* SetPropertyWithHandler( | 6590 MUST_USE_RESULT MaybeObject* SetPropertyWithHandler( |
| 6593 String* name, | 6591 String* name, |
| 6594 Object* value, | 6592 Object* value, |
| 6595 PropertyAttributes attributes, | 6593 PropertyAttributes attributes, |
| 6596 StrictModeFlag strict_mode); | 6594 StrictModeFlag strict_mode); |
| 6597 | 6595 |
| 6598 MUST_USE_RESULT MaybeObject* DeletePropertyWithHandler( | 6596 MUST_USE_RESULT MaybeObject* DeletePropertyWithHandler( |
| 6599 String* name, | 6597 String* name, |
| 6600 DeleteMode mode); | 6598 DeleteMode mode); |
| 6601 | 6599 |
| 6602 MUST_USE_RESULT PropertyAttributes GetPropertyAttributeWithHandler( | 6600 MUST_USE_RESULT PropertyAttributes GetPropertyAttributeWithHandler( |
| 6603 JSReceiver* receiver, | 6601 JSReceiver* receiver, |
| 6604 String* name, | 6602 String* name); |
| 6605 bool* has_exception); | |
| 6606 | 6603 |
| 6607 // Turn this into an (empty) JSObject. | 6604 // Turn this into an (empty) JSObject. |
| 6608 void Fix(); | 6605 void Fix(); |
| 6609 | 6606 |
| 6610 // Initializes the body after the handler slot. | 6607 // Initializes the body after the handler slot. |
| 6611 inline void InitializeBody(int object_size, Object* value); | 6608 inline void InitializeBody(int object_size, Object* value); |
| 6612 | 6609 |
| 6610 // Invoke a trap by name. If the trap does not exist on this's handler, |
| 6611 // but derived_trap is non-NULL, invoke that instead. May cause GC. |
| 6612 Handle<Object> CallTrap(const char* name, |
| 6613 Handle<Object> derived_trap, |
| 6614 int argc, |
| 6615 Handle<Object> args[]); |
| 6616 |
| 6613 // Dispatched behavior. | 6617 // Dispatched behavior. |
| 6614 #ifdef OBJECT_PRINT | 6618 #ifdef OBJECT_PRINT |
| 6615 inline void JSProxyPrint() { | 6619 inline void JSProxyPrint() { |
| 6616 JSProxyPrint(stdout); | 6620 JSProxyPrint(stdout); |
| 6617 } | 6621 } |
| 6618 void JSProxyPrint(FILE* out); | 6622 void JSProxyPrint(FILE* out); |
| 6619 #endif | 6623 #endif |
| 6620 #ifdef DEBUG | 6624 #ifdef DEBUG |
| 6621 void JSProxyVerify(); | 6625 void JSProxyVerify(); |
| 6622 #endif | 6626 #endif |
| (...skipping 728 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 7351 } else { | 7355 } else { |
| 7352 value &= ~(1 << bit_position); | 7356 value &= ~(1 << bit_position); |
| 7353 } | 7357 } |
| 7354 return value; | 7358 return value; |
| 7355 } | 7359 } |
| 7356 }; | 7360 }; |
| 7357 | 7361 |
| 7358 } } // namespace v8::internal | 7362 } } // namespace v8::internal |
| 7359 | 7363 |
| 7360 #endif // V8_OBJECTS_H_ | 7364 #endif // V8_OBJECTS_H_ |
| OLD | NEW |