OLD | NEW |
1 // Copyright 2015 the V8 project authors. All rights reserved. | 1 // Copyright 2015 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/objects.h" | 5 #include "src/objects.h" |
6 | 6 |
7 #include <cmath> | 7 #include <cmath> |
8 #include <iomanip> | 8 #include <iomanip> |
9 #include <sstream> | 9 #include <sstream> |
10 | 10 |
(...skipping 8952 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
8963 return DefineAccessor(&it, getter, setter, attributes); | 8963 return DefineAccessor(&it, getter, setter, attributes); |
8964 } | 8964 } |
8965 | 8965 |
8966 | 8966 |
8967 MaybeHandle<Object> JSObject::DefineAccessor(LookupIterator* it, | 8967 MaybeHandle<Object> JSObject::DefineAccessor(LookupIterator* it, |
8968 Handle<Object> getter, | 8968 Handle<Object> getter, |
8969 Handle<Object> setter, | 8969 Handle<Object> setter, |
8970 PropertyAttributes attributes) { | 8970 PropertyAttributes attributes) { |
8971 Isolate* isolate = it->isolate(); | 8971 Isolate* isolate = it->isolate(); |
8972 | 8972 |
| 8973 it->UpdateProtector(); |
| 8974 |
8973 if (it->state() == LookupIterator::ACCESS_CHECK) { | 8975 if (it->state() == LookupIterator::ACCESS_CHECK) { |
8974 if (!it->HasAccess()) { | 8976 if (!it->HasAccess()) { |
8975 isolate->ReportFailedAccessCheck(it->GetHolder<JSObject>()); | 8977 isolate->ReportFailedAccessCheck(it->GetHolder<JSObject>()); |
8976 RETURN_EXCEPTION_IF_SCHEDULED_EXCEPTION(isolate, Object); | 8978 RETURN_EXCEPTION_IF_SCHEDULED_EXCEPTION(isolate, Object); |
8977 return isolate->factory()->undefined_value(); | 8979 return isolate->factory()->undefined_value(); |
8978 } | 8980 } |
8979 it->Next(); | 8981 it->Next(); |
8980 } | 8982 } |
8981 | 8983 |
8982 Handle<JSObject> object = Handle<JSObject>::cast(it->GetReceiver()); | 8984 Handle<JSObject> object = Handle<JSObject>::cast(it->GetReceiver()); |
(...skipping 10861 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
19844 if (cell->value() != *new_value) { | 19846 if (cell->value() != *new_value) { |
19845 cell->set_value(*new_value); | 19847 cell->set_value(*new_value); |
19846 Isolate* isolate = cell->GetIsolate(); | 19848 Isolate* isolate = cell->GetIsolate(); |
19847 cell->dependent_code()->DeoptimizeDependentCodeGroup( | 19849 cell->dependent_code()->DeoptimizeDependentCodeGroup( |
19848 isolate, DependentCode::kPropertyCellChangedGroup); | 19850 isolate, DependentCode::kPropertyCellChangedGroup); |
19849 } | 19851 } |
19850 } | 19852 } |
19851 | 19853 |
19852 } // namespace internal | 19854 } // namespace internal |
19853 } // namespace v8 | 19855 } // namespace v8 |
OLD | NEW |