Chromium Code Reviews| 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 5495 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 5506 } | 5506 } |
| 5507 } | 5507 } |
| 5508 | 5508 |
| 5509 return it.isolate()->factory()->true_value(); | 5509 return it.isolate()->factory()->true_value(); |
| 5510 } | 5510 } |
| 5511 | 5511 |
| 5512 | 5512 |
| 5513 MaybeHandle<Object> JSReceiver::DeleteElement(Handle<JSReceiver> object, | 5513 MaybeHandle<Object> JSReceiver::DeleteElement(Handle<JSReceiver> object, |
| 5514 uint32_t index, | 5514 uint32_t index, |
| 5515 LanguageMode language_mode) { | 5515 LanguageMode language_mode) { |
| 5516 if (object->map()->is_strong()) { | |
| 5517 Isolate* isolate = object->GetIsolate(); | |
| 5518 if (is_strict(language_mode)) { | |
| 5519 THROW_NEW_ERROR( | |
|
rossberg
2015/05/22 11:34:50
Why do we need to throw here? Returning false shou
conradw
2015/05/22 13:37:56
Discussed offline, throw is needed but is in wrong
| |
| 5520 isolate, | |
| 5521 NewTypeError(MessageTemplate::kStrongDeleteProperty, | |
| 5522 isolate->factory()->NewNumberFromUint(index), object), | |
| 5523 Object); | |
| 5524 } | |
| 5525 return isolate->factory()->false_value(); | |
| 5526 } | |
| 5516 if (object->IsJSProxy()) { | 5527 if (object->IsJSProxy()) { |
| 5517 return JSProxy::DeleteElementWithHandler(Handle<JSProxy>::cast(object), | 5528 return JSProxy::DeleteElementWithHandler(Handle<JSProxy>::cast(object), |
| 5518 index, language_mode); | 5529 index, language_mode); |
| 5519 } | 5530 } |
| 5520 return JSObject::DeleteElement(Handle<JSObject>::cast(object), index, | 5531 return JSObject::DeleteElement(Handle<JSObject>::cast(object), index, |
| 5521 language_mode); | 5532 language_mode); |
| 5522 } | 5533 } |
| 5523 | 5534 |
| 5524 | 5535 |
| 5525 MaybeHandle<Object> JSReceiver::DeleteProperty(Handle<JSReceiver> object, | 5536 MaybeHandle<Object> JSReceiver::DeleteProperty(Handle<JSReceiver> object, |
| 5526 Handle<Name> name, | 5537 Handle<Name> name, |
| 5527 LanguageMode language_mode) { | 5538 LanguageMode language_mode) { |
| 5539 if (object->map()->is_strong()) { | |
| 5540 Isolate* isolate = object->GetIsolate(); | |
| 5541 if (is_strict(language_mode)) { | |
| 5542 THROW_NEW_ERROR( | |
|
rossberg
2015/05/22 11:34:50
Same here.
conradw
2015/05/22 13:37:56
See above.
| |
| 5543 isolate, | |
| 5544 NewTypeError(MessageTemplate::kStrongDeleteProperty, name, object), | |
| 5545 Object); | |
| 5546 } | |
| 5547 return isolate->factory()->false_value(); | |
| 5548 } | |
| 5528 if (object->IsJSProxy()) { | 5549 if (object->IsJSProxy()) { |
| 5529 return JSProxy::DeletePropertyWithHandler(Handle<JSProxy>::cast(object), | 5550 return JSProxy::DeletePropertyWithHandler(Handle<JSProxy>::cast(object), |
| 5530 name, language_mode); | 5551 name, language_mode); |
| 5531 } | 5552 } |
| 5532 return JSObject::DeleteProperty(Handle<JSObject>::cast(object), name, | 5553 return JSObject::DeleteProperty(Handle<JSObject>::cast(object), name, |
| 5533 language_mode); | 5554 language_mode); |
| 5534 } | 5555 } |
| 5535 | 5556 |
| 5536 | 5557 |
| 5537 bool JSObject::ReferencesObjectFromElements(FixedArray* elements, | 5558 bool JSObject::ReferencesObjectFromElements(FixedArray* elements, |
| (...skipping 11715 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 17253 void PropertyCell::SetValueWithInvalidation(Handle<PropertyCell> cell, | 17274 void PropertyCell::SetValueWithInvalidation(Handle<PropertyCell> cell, |
| 17254 Handle<Object> new_value) { | 17275 Handle<Object> new_value) { |
| 17255 if (cell->value() != *new_value) { | 17276 if (cell->value() != *new_value) { |
| 17256 cell->set_value(*new_value); | 17277 cell->set_value(*new_value); |
| 17257 Isolate* isolate = cell->GetIsolate(); | 17278 Isolate* isolate = cell->GetIsolate(); |
| 17258 cell->dependent_code()->DeoptimizeDependentCodeGroup( | 17279 cell->dependent_code()->DeoptimizeDependentCodeGroup( |
| 17259 isolate, DependentCode::kPropertyCellChangedGroup); | 17280 isolate, DependentCode::kPropertyCellChangedGroup); |
| 17260 } | 17281 } |
| 17261 } | 17282 } |
| 17262 } } // namespace v8::internal | 17283 } } // namespace v8::internal |
| OLD | NEW |