| 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 3794 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3805 | 3805 |
| 3806 // Reconfigures a property to a data property with attributes, even if it is not | 3806 // Reconfigures a property to a data property with attributes, even if it is not |
| 3807 // reconfigurable. | 3807 // reconfigurable. |
| 3808 MaybeHandle<Object> JSObject::SetOwnPropertyIgnoreAttributes( | 3808 MaybeHandle<Object> JSObject::SetOwnPropertyIgnoreAttributes( |
| 3809 Handle<JSObject> object, | 3809 Handle<JSObject> object, |
| 3810 Handle<Name> name, | 3810 Handle<Name> name, |
| 3811 Handle<Object> value, | 3811 Handle<Object> value, |
| 3812 PropertyAttributes attributes, | 3812 PropertyAttributes attributes, |
| 3813 ExecutableAccessorInfoHandling handling) { | 3813 ExecutableAccessorInfoHandling handling) { |
| 3814 DCHECK(!value->IsTheHole()); | 3814 DCHECK(!value->IsTheHole()); |
| 3815 LookupIterator it(object, name, LookupIterator::HIDDEN_SKIP_INTERCEPTOR); | 3815 LookupIterator it(object, name, LookupIterator::OWN_SKIP_INTERCEPTOR); |
| 3816 bool is_observed = object->map()->is_observed() && | 3816 bool is_observed = object->map()->is_observed() && |
| 3817 *name != it.isolate()->heap()->hidden_string(); | 3817 *name != it.isolate()->heap()->hidden_string(); |
| 3818 for (; it.IsFound(); it.Next()) { | 3818 for (; it.IsFound(); it.Next()) { |
| 3819 switch (it.state()) { | 3819 switch (it.state()) { |
| 3820 case LookupIterator::INTERCEPTOR: | 3820 case LookupIterator::INTERCEPTOR: |
| 3821 case LookupIterator::JSPROXY: | 3821 case LookupIterator::JSPROXY: |
| 3822 case LookupIterator::NOT_FOUND: | 3822 case LookupIterator::NOT_FOUND: |
| 3823 case LookupIterator::TRANSITION: | 3823 case LookupIterator::TRANSITION: |
| 3824 UNREACHABLE(); | 3824 UNREACHABLE(); |
| 3825 | 3825 |
| 3826 case LookupIterator::ACCESS_CHECK: | 3826 case LookupIterator::ACCESS_CHECK: |
| 3827 if (!it.isolate()->MayNamedAccess(object, name, v8::ACCESS_SET)) { | 3827 if (!it.isolate()->MayNamedAccess(object, name, v8::ACCESS_SET)) { |
| 3828 return SetPropertyWithFailedAccessCheck(&it, value, SLOPPY); | 3828 return SetPropertyWithFailedAccessCheck(&it, value, SLOPPY); |
| 3829 } | 3829 } |
| 3830 break; | 3830 break; |
| 3831 | 3831 |
| 3832 case LookupIterator::PROPERTY: { | 3832 case LookupIterator::PROPERTY: { |
| 3833 if (!it.HasProperty()) break; | 3833 if (!it.HasProperty()) break; |
| 3834 if (it.HolderIsNonGlobalHiddenPrototype()) break; | |
| 3835 PropertyDetails details = it.property_details(); | 3834 PropertyDetails details = it.property_details(); |
| 3836 Handle<Object> old_value = it.isolate()->factory()->the_hole_value(); | 3835 Handle<Object> old_value = it.isolate()->factory()->the_hole_value(); |
| 3837 switch (it.property_kind()) { | 3836 switch (it.property_kind()) { |
| 3838 case LookupIterator::ACCESSOR: { | 3837 case LookupIterator::ACCESSOR: { |
| 3839 // Ensure the context isn't changed after calling into accessors. | 3838 // Ensure the context isn't changed after calling into accessors. |
| 3840 AssertNoContextChange ncc(it.isolate()); | 3839 AssertNoContextChange ncc(it.isolate()); |
| 3841 | 3840 |
| 3842 Handle<Object> accessors = it.GetAccessors(); | 3841 Handle<Object> accessors = it.GetAccessors(); |
| 3843 | 3842 |
| 3844 if (is_observed && accessors->IsAccessorInfo()) { | 3843 if (is_observed && accessors->IsAccessorInfo()) { |
| (...skipping 12585 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 16430 #define ERROR_MESSAGES_TEXTS(C, T) T, | 16429 #define ERROR_MESSAGES_TEXTS(C, T) T, |
| 16431 static const char* error_messages_[] = { | 16430 static const char* error_messages_[] = { |
| 16432 ERROR_MESSAGES_LIST(ERROR_MESSAGES_TEXTS) | 16431 ERROR_MESSAGES_LIST(ERROR_MESSAGES_TEXTS) |
| 16433 }; | 16432 }; |
| 16434 #undef ERROR_MESSAGES_TEXTS | 16433 #undef ERROR_MESSAGES_TEXTS |
| 16435 return error_messages_[reason]; | 16434 return error_messages_[reason]; |
| 16436 } | 16435 } |
| 16437 | 16436 |
| 16438 | 16437 |
| 16439 } } // namespace v8::internal | 16438 } } // namespace v8::internal |
| OLD | NEW |