| 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 5213 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5224 MessageTemplate::Template templ = | 5224 MessageTemplate::Template templ = |
| 5225 receiver->map()->is_strong() | 5225 receiver->map()->is_strong() |
| 5226 ? MessageTemplate::kStrongDeleteProperty | 5226 ? MessageTemplate::kStrongDeleteProperty |
| 5227 : MessageTemplate::kStrictDeleteProperty; | 5227 : MessageTemplate::kStrictDeleteProperty; |
| 5228 THROW_NEW_ERROR( | 5228 THROW_NEW_ERROR( |
| 5229 isolate, NewTypeError(templ, it->GetName(), receiver), Object); | 5229 isolate, NewTypeError(templ, it->GetName(), receiver), Object); |
| 5230 } | 5230 } |
| 5231 return it->factory()->false_value(); | 5231 return it->factory()->false_value(); |
| 5232 } | 5232 } |
| 5233 | 5233 |
| 5234 Handle<JSObject> holder = it->GetHolder<JSObject>(); | |
| 5235 // TODO(verwaest): Remove this temporary compatibility hack when blink | |
| 5236 // tests are updated. | |
| 5237 if (!holder.is_identical_to(receiver) && | |
| 5238 !(receiver->IsJSGlobalProxy() && holder->IsJSGlobalObject())) { | |
| 5239 return it->factory()->true_value(); | |
| 5240 } | |
| 5241 | |
| 5242 it->Delete(); | 5234 it->Delete(); |
| 5243 | 5235 |
| 5244 if (is_observed) { | 5236 if (is_observed) { |
| 5245 RETURN_ON_EXCEPTION(isolate, | 5237 RETURN_ON_EXCEPTION(isolate, |
| 5246 JSObject::EnqueueChangeRecord( | 5238 JSObject::EnqueueChangeRecord( |
| 5247 receiver, "delete", it->GetName(), old_value), | 5239 receiver, "delete", it->GetName(), old_value), |
| 5248 Object); | 5240 Object); |
| 5249 } | 5241 } |
| 5250 | 5242 |
| 5251 return it->factory()->true_value(); | 5243 return it->factory()->true_value(); |
| (...skipping 10868 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 16120 Handle<Object> new_value) { | 16112 Handle<Object> new_value) { |
| 16121 if (cell->value() != *new_value) { | 16113 if (cell->value() != *new_value) { |
| 16122 cell->set_value(*new_value); | 16114 cell->set_value(*new_value); |
| 16123 Isolate* isolate = cell->GetIsolate(); | 16115 Isolate* isolate = cell->GetIsolate(); |
| 16124 cell->dependent_code()->DeoptimizeDependentCodeGroup( | 16116 cell->dependent_code()->DeoptimizeDependentCodeGroup( |
| 16125 isolate, DependentCode::kPropertyCellChangedGroup); | 16117 isolate, DependentCode::kPropertyCellChangedGroup); |
| 16126 } | 16118 } |
| 16127 } | 16119 } |
| 16128 } // namespace internal | 16120 } // namespace internal |
| 16129 } // namespace v8 | 16121 } // namespace v8 |
| OLD | NEW |