Index: src/objects.cc |
diff --git a/src/objects.cc b/src/objects.cc |
index 180eb63536c1f35bf5d07189478a81c55951d281..3339b6d127696e0c929177bc5fa95604bad497bf 100644 |
--- a/src/objects.cc |
+++ b/src/objects.cc |
@@ -5467,9 +5467,16 @@ MaybeHandle<Object> JSObject::DeleteProperty(Handle<JSObject> object, |
} |
// Fall through. |
case LookupIterator::ACCESSOR: { |
- if (!it.IsConfigurable()) { |
- // Fail if the property is not configurable. |
+ if (!it.IsConfigurable() || object->map()->is_strong()) { |
+ // Fail if the property is not configurable, or on a strong object. |
if (is_strict(language_mode)) { |
+ if (object->map()->is_strong()) { |
+ THROW_NEW_ERROR( |
+ it.isolate(), |
+ NewTypeError(MessageTemplate::kStrongDeleteProperty, object, |
+ name), |
+ Object); |
+ } |
THROW_NEW_ERROR(it.isolate(), |
NewTypeError(MessageTemplate::kStrictDeleteProperty, |
name, object), |