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 |