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 1348 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1359 } | 1359 } |
1360 it->isolate()->ReportFailedAccessCheck(checked); | 1360 it->isolate()->ReportFailedAccessCheck(checked); |
1361 RETURN_VALUE_IF_SCHEDULED_EXCEPTION(it->isolate(), | 1361 RETURN_VALUE_IF_SCHEDULED_EXCEPTION(it->isolate(), |
1362 Nothing<PropertyAttributes>()); | 1362 Nothing<PropertyAttributes>()); |
1363 return Just(ABSENT); | 1363 return Just(ABSENT); |
1364 } | 1364 } |
1365 | 1365 |
1366 | 1366 |
1367 // static | 1367 // static |
1368 bool JSObject::AllCanWrite(LookupIterator* it) { | 1368 bool JSObject::AllCanWrite(LookupIterator* it) { |
1369 for (; it->IsFound(); it->Next()) { | 1369 for (; it->IsFound() && it->state() != LookupIterator::JSPROXY; it->Next()) { |
1370 if (it->state() == LookupIterator::ACCESSOR) { | 1370 if (it->state() == LookupIterator::ACCESSOR) { |
1371 Handle<Object> accessors = it->GetAccessors(); | 1371 Handle<Object> accessors = it->GetAccessors(); |
1372 if (accessors->IsAccessorInfo()) { | 1372 if (accessors->IsAccessorInfo()) { |
1373 if (AccessorInfo::cast(*accessors)->all_can_write()) return true; | 1373 if (AccessorInfo::cast(*accessors)->all_can_write()) return true; |
1374 } | 1374 } |
1375 } | 1375 } |
1376 } | 1376 } |
1377 return false; | 1377 return false; |
1378 } | 1378 } |
1379 | 1379 |
(...skipping 18270 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
19650 if (cell->value() != *new_value) { | 19650 if (cell->value() != *new_value) { |
19651 cell->set_value(*new_value); | 19651 cell->set_value(*new_value); |
19652 Isolate* isolate = cell->GetIsolate(); | 19652 Isolate* isolate = cell->GetIsolate(); |
19653 cell->dependent_code()->DeoptimizeDependentCodeGroup( | 19653 cell->dependent_code()->DeoptimizeDependentCodeGroup( |
19654 isolate, DependentCode::kPropertyCellChangedGroup); | 19654 isolate, DependentCode::kPropertyCellChangedGroup); |
19655 } | 19655 } |
19656 } | 19656 } |
19657 | 19657 |
19658 } // namespace internal | 19658 } // namespace internal |
19659 } // namespace v8 | 19659 } // namespace v8 |
OLD | NEW |