| Index: src/objects.cc
|
| diff --git a/src/objects.cc b/src/objects.cc
|
| index cc685577ce37cb029d57c98fb058bcd919fcc3bc..44838a61ea7c7e50c5198aedeb30bb37d443a5e2 100644
|
| --- a/src/objects.cc
|
| +++ b/src/objects.cc
|
| @@ -2807,7 +2807,8 @@ MaybeHandle<Object> Object::SetProperty(Handle<Object> object,
|
| MaybeHandle<Object> Object::SetProperty(LookupIterator* it,
|
| Handle<Object> value,
|
| StrictMode strict_mode,
|
| - StoreFromKeyed store_mode) {
|
| + StoreFromKeyed store_mode,
|
| + StorePropertyMode data_store_mode) {
|
| // Make sure that the top context does not change when doing callbacks or
|
| // interceptor calls.
|
| AssertNoContextChange ncc(it->isolate());
|
| @@ -2902,6 +2903,16 @@ MaybeHandle<Object> Object::SetProperty(LookupIterator* it,
|
| Object);
|
| }
|
|
|
| + if (data_store_mode == SUPER_PROPERTY) {
|
| + if (strict_mode == STRICT) {
|
| + Handle<Object> args[1] = {it->name()};
|
| + THROW_NEW_ERROR(it->isolate(),
|
| + NewReferenceError("not_defined", HandleVector(args, 1)),
|
| + Object);
|
| + }
|
| + return value;
|
| + }
|
| +
|
| return AddDataProperty(it, value, NONE, strict_mode, store_mode);
|
| }
|
|
|
|
|