Index: src/accessors.cc |
diff --git a/src/accessors.cc b/src/accessors.cc |
index 6544e7197c1283f50f9e686643650589f1ff7aab..c1f67ba5242667e678bad954a9ce017fb5ce92b4 100644 |
--- a/src/accessors.cc |
+++ b/src/accessors.cc |
@@ -146,14 +146,13 @@ void Accessors::ArgumentsIteratorSetter( |
const v8::PropertyCallbackInfo<void>& info) { |
i::Isolate* isolate = reinterpret_cast<i::Isolate*>(info.GetIsolate()); |
HandleScope scope(isolate); |
- Handle<JSObject> object = Utils::OpenHandle(*info.This()); |
- Handle<Object> value = Utils::OpenHandle(*val); |
- |
- LookupIterator it(object, Utils::OpenHandle(*name)); |
- CHECK_EQ(LookupIterator::ACCESSOR, it.state()); |
- DCHECK(it.HolderIsReceiverOrHiddenPrototype()); |
+ Handle<JSObject> object_handle = Utils::OpenHandle(*info.This()); |
+ Handle<Object> value_handle = Utils::OpenHandle(*val); |
+ Handle<Name> name_handle = Utils::OpenHandle(*name); |
- if (Object::SetDataProperty(&it, value).is_null()) { |
+ if (JSObject::DefinePropertyOrElementIgnoreAttributes( |
+ object_handle, name_handle, value_handle, NONE) |
+ .is_null()) { |
isolate->OptionalRescheduleException(false); |
} |
} |