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 1819 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1830 inline int GetInternalFieldCount(); | 1830 inline int GetInternalFieldCount(); |
1831 inline int GetInternalFieldOffset(int index); | 1831 inline int GetInternalFieldOffset(int index); |
1832 inline Object* GetInternalField(int index); | 1832 inline Object* GetInternalField(int index); |
1833 inline void SetInternalField(int index, Object* value); | 1833 inline void SetInternalField(int index, Object* value); |
1834 inline void SetInternalField(int index, Smi* value); | 1834 inline void SetInternalField(int index, Smi* value); |
1835 | 1835 |
1836 // The following lookup functions skip interceptors. | 1836 // The following lookup functions skip interceptors. |
1837 void LocalLookupRealNamedProperty(String* name, LookupResult* result); | 1837 void LocalLookupRealNamedProperty(String* name, LookupResult* result); |
1838 void LookupRealNamedProperty(String* name, LookupResult* result); | 1838 void LookupRealNamedProperty(String* name, LookupResult* result); |
1839 void LookupRealNamedPropertyInPrototypes(String* name, LookupResult* result); | 1839 void LookupRealNamedPropertyInPrototypes(String* name, LookupResult* result); |
| 1840 void LookupCallbackSetterInPrototypes(String* name, LookupResult* result); |
1840 MUST_USE_RESULT MaybeObject* SetElementWithCallbackSetterInPrototypes( | 1841 MUST_USE_RESULT MaybeObject* SetElementWithCallbackSetterInPrototypes( |
1841 uint32_t index, Object* value, bool* found, StrictModeFlag strict_mode); | 1842 uint32_t index, Object* value, bool* found, StrictModeFlag strict_mode); |
1842 void LookupCallback(String* name, LookupResult* result); | 1843 void LookupCallback(String* name, LookupResult* result); |
1843 | 1844 |
1844 // Returns the number of properties on this object filtering out properties | 1845 // Returns the number of properties on this object filtering out properties |
1845 // with the specified attributes (ignoring interceptors). | 1846 // with the specified attributes (ignoring interceptors). |
1846 int NumberOfLocalProperties(PropertyAttributes filter = NONE); | 1847 int NumberOfLocalProperties(PropertyAttributes filter = NONE); |
1847 // Fill in details for properties into storage starting at the specified | 1848 // Fill in details for properties into storage starting at the specified |
1848 // index. | 1849 // index. |
1849 void GetLocalPropertyNames(FixedArray* storage, int index); | 1850 void GetLocalPropertyNames(FixedArray* storage, int index); |
(...skipping 264 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2114 bool check_prototype, | 2115 bool check_prototype, |
2115 SetPropertyMode set_mode); | 2116 SetPropertyMode set_mode); |
2116 MUST_USE_RESULT MaybeObject* SetElementWithoutInterceptor( | 2117 MUST_USE_RESULT MaybeObject* SetElementWithoutInterceptor( |
2117 uint32_t index, | 2118 uint32_t index, |
2118 Object* value, | 2119 Object* value, |
2119 PropertyAttributes attributes, | 2120 PropertyAttributes attributes, |
2120 StrictModeFlag strict_mode, | 2121 StrictModeFlag strict_mode, |
2121 bool check_prototype, | 2122 bool check_prototype, |
2122 SetPropertyMode set_mode); | 2123 SetPropertyMode set_mode); |
2123 | 2124 |
2124 // Searches the prototype chain for property 'name'. If it is found and | 2125 // Searches the prototype chain for a callback setter and sets the property |
2125 // has a setter, invoke it and set '*done' to true. If it is found and is | 2126 // with the setter if it finds one. The '*found' flag indicates whether |
2126 // read-only, reject and set '*done' to true. Otherwise, set '*done' to | 2127 // a setter was found or not. |
2127 // false. Can cause GC and can return a failure result with '*done==true'. | 2128 // This function can cause GC and can return a failure result with |
2128 MUST_USE_RESULT MaybeObject* SetPropertyViaPrototypes( | 2129 // '*found==true'. |
| 2130 MUST_USE_RESULT MaybeObject* SetPropertyWithCallbackSetterInPrototypes( |
2129 String* name, | 2131 String* name, |
2130 Object* value, | 2132 Object* value, |
2131 PropertyAttributes attributes, | 2133 PropertyAttributes attributes, |
2132 StrictModeFlag strict_mode, | 2134 bool* found, |
2133 bool* done); | 2135 StrictModeFlag strict_mode); |
2134 | 2136 |
2135 MUST_USE_RESULT MaybeObject* DeletePropertyPostInterceptor(String* name, | 2137 MUST_USE_RESULT MaybeObject* DeletePropertyPostInterceptor(String* name, |
2136 DeleteMode mode); | 2138 DeleteMode mode); |
2137 MUST_USE_RESULT MaybeObject* DeletePropertyWithInterceptor(String* name); | 2139 MUST_USE_RESULT MaybeObject* DeletePropertyWithInterceptor(String* name); |
2138 | 2140 |
2139 MUST_USE_RESULT MaybeObject* DeleteElementWithInterceptor(uint32_t index); | 2141 MUST_USE_RESULT MaybeObject* DeleteElementWithInterceptor(uint32_t index); |
2140 | 2142 |
2141 MUST_USE_RESULT MaybeObject* DeleteFastElement(uint32_t index); | 2143 MUST_USE_RESULT MaybeObject* DeleteFastElement(uint32_t index); |
2142 MUST_USE_RESULT MaybeObject* DeleteDictionaryElement(uint32_t index, | 2144 MUST_USE_RESULT MaybeObject* DeleteDictionaryElement(uint32_t index, |
2143 DeleteMode mode); | 2145 DeleteMode mode); |
(...skipping 5592 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
7736 String* name, | 7738 String* name, |
7737 Object* value, | 7739 Object* value, |
7738 PropertyAttributes attributes, | 7740 PropertyAttributes attributes, |
7739 StrictModeFlag strict_mode); | 7741 StrictModeFlag strict_mode); |
7740 MUST_USE_RESULT MaybeObject* SetElementWithHandler( | 7742 MUST_USE_RESULT MaybeObject* SetElementWithHandler( |
7741 JSReceiver* receiver, | 7743 JSReceiver* receiver, |
7742 uint32_t index, | 7744 uint32_t index, |
7743 Object* value, | 7745 Object* value, |
7744 StrictModeFlag strict_mode); | 7746 StrictModeFlag strict_mode); |
7745 | 7747 |
7746 // If the handler defines an accessor property with a setter, invoke it. | 7748 // If the handler defines an accessor property, invoke its setter |
7747 // If it defines an accessor property without a setter, or a data property | 7749 // (or throw if only a getter exists) and set *found to true. Otherwise false. |
7748 // that is read-only, throw. In all these cases set '*done' to true, | 7750 MUST_USE_RESULT MaybeObject* SetPropertyWithHandlerIfDefiningSetter( |
7749 // otherwise set it to false. | |
7750 MUST_USE_RESULT MaybeObject* SetPropertyViaPrototypesWithHandler( | |
7751 JSReceiver* receiver, | 7751 JSReceiver* receiver, |
7752 String* name, | 7752 String* name, |
7753 Object* value, | 7753 Object* value, |
7754 PropertyAttributes attributes, | 7754 PropertyAttributes attributes, |
7755 StrictModeFlag strict_mode, | 7755 StrictModeFlag strict_mode, |
7756 bool* done); | 7756 bool* found); |
7757 | 7757 |
7758 MUST_USE_RESULT MaybeObject* DeletePropertyWithHandler( | 7758 MUST_USE_RESULT MaybeObject* DeletePropertyWithHandler( |
7759 String* name, | 7759 String* name, |
7760 DeleteMode mode); | 7760 DeleteMode mode); |
7761 MUST_USE_RESULT MaybeObject* DeleteElementWithHandler( | 7761 MUST_USE_RESULT MaybeObject* DeleteElementWithHandler( |
7762 uint32_t index, | 7762 uint32_t index, |
7763 DeleteMode mode); | 7763 DeleteMode mode); |
7764 | 7764 |
7765 MUST_USE_RESULT PropertyAttributes GetPropertyAttributeWithHandler( | 7765 MUST_USE_RESULT PropertyAttributes GetPropertyAttributeWithHandler( |
7766 JSReceiver* receiver, | 7766 JSReceiver* receiver, |
(...skipping 911 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
8678 } else { | 8678 } else { |
8679 value &= ~(1 << bit_position); | 8679 value &= ~(1 << bit_position); |
8680 } | 8680 } |
8681 return value; | 8681 return value; |
8682 } | 8682 } |
8683 }; | 8683 }; |
8684 | 8684 |
8685 } } // namespace v8::internal | 8685 } } // namespace v8::internal |
8686 | 8686 |
8687 #endif // V8_OBJECTS_H_ | 8687 #endif // V8_OBJECTS_H_ |
OLD | NEW |