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 <iomanip> | 5 #include <iomanip> |
6 #include <sstream> | 6 #include <sstream> |
7 | 7 |
8 #include "src/v8.h" | 8 #include "src/v8.h" |
9 | 9 |
10 #include "src/accessors.h" | 10 #include "src/accessors.h" |
(...skipping 4171 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4182 | 4182 |
4183 for (; it->IsFound(); it->Next()) { | 4183 for (; it->IsFound(); it->Next()) { |
4184 switch (it->state()) { | 4184 switch (it->state()) { |
4185 case LookupIterator::JSPROXY: | 4185 case LookupIterator::JSPROXY: |
4186 case LookupIterator::NOT_FOUND: | 4186 case LookupIterator::NOT_FOUND: |
4187 case LookupIterator::TRANSITION: | 4187 case LookupIterator::TRANSITION: |
4188 UNREACHABLE(); | 4188 UNREACHABLE(); |
4189 | 4189 |
4190 case LookupIterator::ACCESS_CHECK: | 4190 case LookupIterator::ACCESS_CHECK: |
4191 if (!it->HasAccess()) { | 4191 if (!it->HasAccess()) { |
4192 return SetPropertyWithFailedAccessCheck(it, value); | 4192 it->isolate()->ReportFailedAccessCheck(it->GetHolder<JSObject>()); |
| 4193 RETURN_EXCEPTION_IF_SCHEDULED_EXCEPTION(it->isolate(), Object); |
| 4194 return value; |
4193 } | 4195 } |
4194 break; | 4196 break; |
4195 | 4197 |
4196 // If there's an interceptor, try to store the property with the | 4198 // If there's an interceptor, try to store the property with the |
4197 // interceptor. | 4199 // interceptor. |
4198 // In case of success, the attributes will have been reset to the default | 4200 // In case of success, the attributes will have been reset to the default |
4199 // attributes of the interceptor, rather than the incoming attributes. | 4201 // attributes of the interceptor, rather than the incoming attributes. |
4200 // | 4202 // |
4201 // TODO(verwaest): JSProxy afterwards verify the attributes that the | 4203 // TODO(verwaest): JSProxy afterwards verify the attributes that the |
4202 // JSProxy claims it has, and verifies that they are compatible. If not, | 4204 // JSProxy claims it has, and verifies that they are compatible. If not, |
(...skipping 11695 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
15898 Handle<Object> new_value) { | 15900 Handle<Object> new_value) { |
15899 if (cell->value() != *new_value) { | 15901 if (cell->value() != *new_value) { |
15900 cell->set_value(*new_value); | 15902 cell->set_value(*new_value); |
15901 Isolate* isolate = cell->GetIsolate(); | 15903 Isolate* isolate = cell->GetIsolate(); |
15902 cell->dependent_code()->DeoptimizeDependentCodeGroup( | 15904 cell->dependent_code()->DeoptimizeDependentCodeGroup( |
15903 isolate, DependentCode::kPropertyCellChangedGroup); | 15905 isolate, DependentCode::kPropertyCellChangedGroup); |
15904 } | 15906 } |
15905 } | 15907 } |
15906 } // namespace internal | 15908 } // namespace internal |
15907 } // namespace v8 | 15909 } // namespace v8 |
OLD | NEW |