| Index: src/api.cc
|
| diff --git a/src/api.cc b/src/api.cc
|
| index c852b97964916c618094685e64220d3a243134ca..2d55dac2cca7e669107008e011f62fcb75de3437 100644
|
| --- a/src/api.cc
|
| +++ b/src/api.cc
|
| @@ -3064,8 +3064,11 @@ bool Object::SetAccessor(Handle<String> name,
|
| i::Handle<i::AccessorInfo> info = MakeAccessorInfo(name,
|
| getter, setter, data,
|
| settings, attributes);
|
| + bool fast = Utils::OpenHandle(this)->HasFastProperties();
|
| i::Handle<i::Object> result = i::SetAccessor(Utils::OpenHandle(this), info);
|
| - return !result.is_null() && !result->IsUndefined();
|
| + if (result.is_null() || result->IsUndefined()) return false;
|
| + if (fast) i::JSObject::TransformToFastProperties(Utils::OpenHandle(this), 0);
|
| + return true;
|
| }
|
|
|
|
|
|
|