| OLD | NEW |
| 1 // Copyright 2013 the V8 project authors. All rights reserved. | 1 // Copyright 2013 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 #include "src/v8.h" | 5 #include "src/v8.h" |
| 6 | 6 |
| 7 #include "src/accessors.h" | 7 #include "src/accessors.h" |
| 8 #include "src/allocation-site-scopes.h" | 8 #include "src/allocation-site-scopes.h" |
| 9 #include "src/api.h" | 9 #include "src/api.h" |
| 10 #include "src/arguments.h" | 10 #include "src/arguments.h" |
| (...skipping 4157 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4168 EnqueueChangeRecord(object, "update", name, old_value); | 4168 EnqueueChangeRecord(object, "update", name, old_value); |
| 4169 } | 4169 } |
| 4170 } | 4170 } |
| 4171 } | 4171 } |
| 4172 } | 4172 } |
| 4173 | 4173 |
| 4174 return result; | 4174 return result; |
| 4175 } | 4175 } |
| 4176 | 4176 |
| 4177 | 4177 |
| 4178 void JSObject::InitializeProperty( |
| 4179 Handle<JSObject> object, |
| 4180 Handle<Name> name, |
| 4181 Handle<Object> value, |
| 4182 PropertyAttributes attributes, |
| 4183 ValueType value_type, |
| 4184 StoreMode store_mode) { |
| 4185 #ifdef DEBUG |
| 4186 uint32_t index; |
| 4187 ASSERT(!object->IsJSProxy()); |
| 4188 ASSERT(!name->AsArrayIndex(&index)); |
| 4189 LookupIterator it(object, name, LookupIterator::CHECK_OWN_REAL); |
| 4190 GetPropertyAttributes(&it); |
| 4191 ASSERT(!it.IsFound()); |
| 4192 ASSERT(object->map()->is_extensible()); |
| 4193 #endif |
| 4194 SetOwnPropertyIgnoreAttributes( |
| 4195 object, name, value, attributes, value_type, store_mode, |
| 4196 OMIT_EXTENSIBILITY_CHECK).Check(); |
| 4197 } |
| 4198 |
| 4199 |
| 4178 // Set a real own property, even if it is READ_ONLY. If the property is not | 4200 // Set a real own property, even if it is READ_ONLY. If the property is not |
| 4179 // present, add it with attributes NONE. This code is an exact clone of | 4201 // present, add it with attributes NONE. This code is an exact clone of |
| 4180 // SetProperty, with the check for IsReadOnly and the check for a | 4202 // SetProperty, with the check for IsReadOnly and the check for a |
| 4181 // callback setter removed. The two lines looking up the LookupResult | 4203 // callback setter removed. The two lines looking up the LookupResult |
| 4182 // result are also added. If one of the functions is changed, the other | 4204 // result are also added. If one of the functions is changed, the other |
| 4183 // should be. | 4205 // should be. |
| 4184 MaybeHandle<Object> JSObject::SetOwnPropertyIgnoreAttributes( | 4206 MaybeHandle<Object> JSObject::SetOwnPropertyIgnoreAttributes( |
| 4185 Handle<JSObject> object, | 4207 Handle<JSObject> object, |
| 4186 Handle<Name> name, | 4208 Handle<Name> name, |
| 4187 Handle<Object> value, | 4209 Handle<Object> value, |
| (...skipping 952 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5140 | 5162 |
| 5141 if (inline_value->IsSmi()) { | 5163 if (inline_value->IsSmi()) { |
| 5142 // We were storing the identity hash inline and now allocated an actual | 5164 // We were storing the identity hash inline and now allocated an actual |
| 5143 // dictionary. Put the identity hash into the new dictionary. | 5165 // dictionary. Put the identity hash into the new dictionary. |
| 5144 hashtable = ObjectHashTable::Put(hashtable, | 5166 hashtable = ObjectHashTable::Put(hashtable, |
| 5145 isolate->factory()->identity_hash_string(), | 5167 isolate->factory()->identity_hash_string(), |
| 5146 inline_value); | 5168 inline_value); |
| 5147 } | 5169 } |
| 5148 | 5170 |
| 5149 JSObject::SetOwnPropertyIgnoreAttributes( | 5171 JSObject::SetOwnPropertyIgnoreAttributes( |
| 5150 object, | 5172 object, isolate->factory()->hidden_string(), |
| 5151 isolate->factory()->hidden_string(), | 5173 hashtable, DONT_ENUM).Assert(); |
| 5152 hashtable, | |
| 5153 DONT_ENUM, | |
| 5154 OPTIMAL_REPRESENTATION, | |
| 5155 ALLOW_AS_CONSTANT, | |
| 5156 OMIT_EXTENSIBILITY_CHECK).Assert(); | |
| 5157 | 5174 |
| 5158 return hashtable; | 5175 return hashtable; |
| 5159 } | 5176 } |
| 5160 | 5177 |
| 5161 | 5178 |
| 5162 Handle<Object> JSObject::SetHiddenPropertiesHashTable(Handle<JSObject> object, | 5179 Handle<Object> JSObject::SetHiddenPropertiesHashTable(Handle<JSObject> object, |
| 5163 Handle<Object> value) { | 5180 Handle<Object> value) { |
| 5164 ASSERT(!object->IsJSGlobalProxy()); | 5181 ASSERT(!object->IsJSGlobalProxy()); |
| 5165 | 5182 |
| 5166 Isolate* isolate = object->GetIsolate(); | 5183 Isolate* isolate = object->GetIsolate(); |
| (...skipping 11823 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 16990 #define ERROR_MESSAGES_TEXTS(C, T) T, | 17007 #define ERROR_MESSAGES_TEXTS(C, T) T, |
| 16991 static const char* error_messages_[] = { | 17008 static const char* error_messages_[] = { |
| 16992 ERROR_MESSAGES_LIST(ERROR_MESSAGES_TEXTS) | 17009 ERROR_MESSAGES_LIST(ERROR_MESSAGES_TEXTS) |
| 16993 }; | 17010 }; |
| 16994 #undef ERROR_MESSAGES_TEXTS | 17011 #undef ERROR_MESSAGES_TEXTS |
| 16995 return error_messages_[reason]; | 17012 return error_messages_[reason]; |
| 16996 } | 17013 } |
| 16997 | 17014 |
| 16998 | 17015 |
| 16999 } } // namespace v8::internal | 17016 } } // namespace v8::internal |
| OLD | NEW |