| 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 <sstream> | 5 #include <sstream> |
| 6 | 6 |
| 7 #include "src/v8.h" | 7 #include "src/v8.h" |
| 8 | 8 |
| 9 #include "src/accessors.h" | 9 #include "src/accessors.h" |
| 10 #include "src/allocation-site-scopes.h" | 10 #include "src/allocation-site-scopes.h" |
| (...skipping 2968 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2979 // TODO(verwaest): Throw a TypeError with a more specific message. | 2979 // TODO(verwaest): Throw a TypeError with a more specific message. |
| 2980 return WriteToReadOnlyProperty(it, value, strict_mode); | 2980 return WriteToReadOnlyProperty(it, value, strict_mode); |
| 2981 } | 2981 } |
| 2982 | 2982 |
| 2983 Handle<JSObject> receiver = it->GetStoreTarget(); | 2983 Handle<JSObject> receiver = it->GetStoreTarget(); |
| 2984 | 2984 |
| 2985 // If the receiver is a JSGlobalProxy, store on the prototype (JSGlobalObject) | 2985 // If the receiver is a JSGlobalProxy, store on the prototype (JSGlobalObject) |
| 2986 // instead. If the prototype is Null, the proxy is detached. | 2986 // instead. If the prototype is Null, the proxy is detached. |
| 2987 if (receiver->IsJSGlobalProxy()) return value; | 2987 if (receiver->IsJSGlobalProxy()) return value; |
| 2988 | 2988 |
| 2989 // If the receiver is Indexed Exotic object (currently only typed arrays), | |
| 2990 // disallow adding properties with numeric names. | |
| 2991 if (it->IsSpecialNumericIndex()) return value; | |
| 2992 | |
| 2993 // Possibly migrate to the most up-to-date map that will be able to store | 2989 // Possibly migrate to the most up-to-date map that will be able to store |
| 2994 // |value| under it->name() with |attributes|. | 2990 // |value| under it->name() with |attributes|. |
| 2995 it->PrepareTransitionToDataProperty(value, attributes, store_mode); | 2991 it->PrepareTransitionToDataProperty(value, attributes, store_mode); |
| 2996 if (it->state() != LookupIterator::TRANSITION) { | 2992 if (it->state() != LookupIterator::TRANSITION) { |
| 2997 if (strict_mode == SLOPPY) return value; | 2993 if (strict_mode == SLOPPY) return value; |
| 2998 | 2994 |
| 2999 Handle<Object> args[1] = {it->name()}; | 2995 Handle<Object> args[1] = {it->name()}; |
| 3000 THROW_NEW_ERROR(it->isolate(), | 2996 THROW_NEW_ERROR(it->isolate(), |
| 3001 NewTypeError("object_not_extensible", | 2997 NewTypeError("object_not_extensible", |
| 3002 HandleVector(args, arraysize(args))), | 2998 HandleVector(args, arraysize(args))), |
| (...skipping 13410 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 16413 Handle<DependentCode> codes = | 16409 Handle<DependentCode> codes = |
| 16414 DependentCode::Insert(handle(cell->dependent_code(), info->isolate()), | 16410 DependentCode::Insert(handle(cell->dependent_code(), info->isolate()), |
| 16415 DependentCode::kPropertyCellChangedGroup, | 16411 DependentCode::kPropertyCellChangedGroup, |
| 16416 info->object_wrapper()); | 16412 info->object_wrapper()); |
| 16417 if (*codes != cell->dependent_code()) cell->set_dependent_code(*codes); | 16413 if (*codes != cell->dependent_code()) cell->set_dependent_code(*codes); |
| 16418 info->dependencies(DependentCode::kPropertyCellChangedGroup)->Add( | 16414 info->dependencies(DependentCode::kPropertyCellChangedGroup)->Add( |
| 16419 cell, info->zone()); | 16415 cell, info->zone()); |
| 16420 } | 16416 } |
| 16421 | 16417 |
| 16422 } } // namespace v8::internal | 16418 } } // namespace v8::internal |
| OLD | NEW |