OLD | NEW |
1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 the V8 project authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef V8_OBJECTS_H_ | 5 #ifndef V8_OBJECTS_H_ |
6 #define V8_OBJECTS_H_ | 6 #define V8_OBJECTS_H_ |
7 | 7 |
8 #include "src/allocation.h" | 8 #include "src/allocation.h" |
9 #include "src/assert-scope.h" | 9 #include "src/assert-scope.h" |
10 #include "src/builtins.h" | 10 #include "src/builtins.h" |
(...skipping 2130 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2141 | 2141 |
2142 MUST_USE_RESULT static MaybeHandle<Object> SetPropertyForResult( | 2142 MUST_USE_RESULT static MaybeHandle<Object> SetPropertyForResult( |
2143 Handle<JSObject> object, | 2143 Handle<JSObject> object, |
2144 LookupResult* result, | 2144 LookupResult* result, |
2145 Handle<Name> name, | 2145 Handle<Name> name, |
2146 Handle<Object> value, | 2146 Handle<Object> value, |
2147 PropertyAttributes attributes, | 2147 PropertyAttributes attributes, |
2148 StrictMode strict_mode, | 2148 StrictMode strict_mode, |
2149 StoreFromKeyed store_mode = MAY_BE_STORE_FROM_KEYED); | 2149 StoreFromKeyed store_mode = MAY_BE_STORE_FROM_KEYED); |
2150 | 2150 |
| 2151 // SetLocalPropertyIgnoreAttributes converts callbacks to fields. We need to |
| 2152 // grant an exemption to ExecutableAccessor callbacks in some cases. |
| 2153 enum ExecutableAccessorInfoHandling { |
| 2154 DEFAULT_HANDLING, |
| 2155 DONT_FORCE_FIELD |
| 2156 }; |
| 2157 |
2151 MUST_USE_RESULT static MaybeHandle<Object> SetOwnPropertyIgnoreAttributes( | 2158 MUST_USE_RESULT static MaybeHandle<Object> SetOwnPropertyIgnoreAttributes( |
2152 Handle<JSObject> object, | 2159 Handle<JSObject> object, |
2153 Handle<Name> key, | 2160 Handle<Name> key, |
2154 Handle<Object> value, | 2161 Handle<Object> value, |
2155 PropertyAttributes attributes, | 2162 PropertyAttributes attributes, |
2156 ValueType value_type = OPTIMAL_REPRESENTATION, | 2163 ValueType value_type = OPTIMAL_REPRESENTATION, |
2157 StoreMode mode = ALLOW_AS_CONSTANT, | 2164 StoreMode mode = ALLOW_AS_CONSTANT, |
2158 ExtensibilityCheck extensibility_check = PERFORM_EXTENSIBILITY_CHECK, | 2165 ExtensibilityCheck extensibility_check = PERFORM_EXTENSIBILITY_CHECK, |
2159 StoreFromKeyed store_mode = MAY_BE_STORE_FROM_KEYED); | 2166 StoreFromKeyed store_mode = MAY_BE_STORE_FROM_KEYED, |
| 2167 ExecutableAccessorInfoHandling handling = DEFAULT_HANDLING); |
2160 | 2168 |
2161 static void AddProperty(Handle<JSObject> object, | 2169 static void AddProperty(Handle<JSObject> object, |
2162 Handle<Name> key, | 2170 Handle<Name> key, |
2163 Handle<Object> value, | 2171 Handle<Object> value, |
2164 PropertyAttributes attributes, | 2172 PropertyAttributes attributes, |
2165 ValueType value_type = OPTIMAL_REPRESENTATION, | 2173 ValueType value_type = OPTIMAL_REPRESENTATION, |
2166 StoreMode mode = ALLOW_AS_CONSTANT); | 2174 StoreMode mode = ALLOW_AS_CONSTANT); |
2167 | 2175 |
2168 // Extend the receiver with a single fast property appeared first in the | 2176 // Extend the receiver with a single fast property appeared first in the |
2169 // passed map. This also extends the property backing store if necessary. | 2177 // passed map. This also extends the property backing store if necessary. |
(...skipping 9021 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
11191 } else { | 11199 } else { |
11192 value &= ~(1 << bit_position); | 11200 value &= ~(1 << bit_position); |
11193 } | 11201 } |
11194 return value; | 11202 return value; |
11195 } | 11203 } |
11196 }; | 11204 }; |
11197 | 11205 |
11198 } } // namespace v8::internal | 11206 } } // namespace v8::internal |
11199 | 11207 |
11200 #endif // V8_OBJECTS_H_ | 11208 #endif // V8_OBJECTS_H_ |
OLD | NEW |