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/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 979 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
990 handler, trap_name), | 990 handler, trap_name), |
991 Object); | 991 Object); |
992 } | 992 } |
993 // 9. Let extensibleTarget be ? IsExtensible(target). | 993 // 9. Let extensibleTarget be ? IsExtensible(target). |
994 Maybe<bool> is_extensible = JSReceiver::IsExtensible(target); | 994 Maybe<bool> is_extensible = JSReceiver::IsExtensible(target); |
995 if (is_extensible.IsNothing()) return MaybeHandle<Object>(); | 995 if (is_extensible.IsNothing()) return MaybeHandle<Object>(); |
996 // 10. If extensibleTarget is true, return handlerProto. | 996 // 10. If extensibleTarget is true, return handlerProto. |
997 if (is_extensible.FromJust()) return handler_proto; | 997 if (is_extensible.FromJust()) return handler_proto; |
998 // 11. Let targetProto be ? target.[[GetPrototypeOf]](). | 998 // 11. Let targetProto be ? target.[[GetPrototypeOf]](). |
999 Handle<Object> target_proto; | 999 Handle<Object> target_proto; |
1000 ASSIGN_RETURN_ON_EXCEPTION(isolate, handler_proto, | 1000 ASSIGN_RETURN_ON_EXCEPTION(isolate, target_proto, |
1001 Object::GetPrototype(isolate, target), Object); | 1001 Object::GetPrototype(isolate, target), Object); |
1002 // 12. If SameValue(handlerProto, targetProto) is false, throw a TypeError. | 1002 // 12. If SameValue(handlerProto, targetProto) is false, throw a TypeError. |
1003 if (!handler_proto->SameValue(*target_proto)) { | 1003 if (!handler_proto->SameValue(*target_proto)) { |
1004 THROW_NEW_ERROR(isolate, | 1004 THROW_NEW_ERROR(isolate, |
1005 NewTypeError(MessageTemplate::kProxyHandlerTrapMissing, | 1005 NewTypeError(MessageTemplate::kProxyHandlerTrapMissing, |
1006 handler, trap_name), | 1006 handler, trap_name), |
1007 Object); | 1007 Object); |
1008 } | 1008 } |
1009 // 13. Return handlerProto. | 1009 // 13. Return handlerProto. |
1010 return handler_proto; | 1010 return handler_proto; |
(...skipping 18036 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
19047 if (cell->value() != *new_value) { | 19047 if (cell->value() != *new_value) { |
19048 cell->set_value(*new_value); | 19048 cell->set_value(*new_value); |
19049 Isolate* isolate = cell->GetIsolate(); | 19049 Isolate* isolate = cell->GetIsolate(); |
19050 cell->dependent_code()->DeoptimizeDependentCodeGroup( | 19050 cell->dependent_code()->DeoptimizeDependentCodeGroup( |
19051 isolate, DependentCode::kPropertyCellChangedGroup); | 19051 isolate, DependentCode::kPropertyCellChangedGroup); |
19052 } | 19052 } |
19053 } | 19053 } |
19054 | 19054 |
19055 } // namespace internal | 19055 } // namespace internal |
19056 } // namespace v8 | 19056 } // namespace v8 |
OLD | NEW |