| Index: src/runtime.cc
|
| ===================================================================
|
| --- src/runtime.cc (revision 5365)
|
| +++ src/runtime.cc (working copy)
|
| @@ -98,7 +98,7 @@
|
| static StaticResource<StringInputBuffer> runtime_string_input_buffer;
|
|
|
|
|
| -static Object* DeepCopyBoilerplate(JSObject* boilerplate) {
|
| +NOIGNORE static Object* DeepCopyBoilerplate(JSObject* boilerplate) {
|
| StackLimitCheck check;
|
| if (check.HasOverflowed()) return Top::StackOverflow();
|
|
|
| @@ -980,7 +980,9 @@
|
| context->set(index, *initial_value);
|
| }
|
| } else {
|
| - Handle<JSObject>::cast(holder)->SetElement(index, *initial_value);
|
| + // The holder is an arguments object.
|
| + Handle<JSObject> arguments(Handle<JSObject>::cast(holder));
|
| + SetElement(arguments, index, initial_value);
|
| }
|
| } else {
|
| // Slow case: The property is not in the FixedArray part of the context.
|
| @@ -1238,7 +1240,8 @@
|
| } else {
|
| // The holder is an arguments object.
|
| ASSERT((attributes & READ_ONLY) == 0);
|
| - Handle<JSObject>::cast(holder)->SetElement(index, *value);
|
| + Handle<JSObject> arguments(Handle<JSObject>::cast(holder));
|
| + SetElement(arguments, index, value);
|
| }
|
| return *value;
|
| }
|
| @@ -4105,7 +4108,8 @@
|
| if (result.IsProperty() &&
|
| (result.type() == FIELD || result.type() == NORMAL
|
| || result.type() == CONSTANT_FUNCTION)) {
|
| - obj->DeleteProperty(name, JSObject::NORMAL_DELETION);
|
| + Object* ok = obj->DeleteProperty(name, JSObject::NORMAL_DELETION);
|
| + if (ok->IsFailure()) return ok;
|
| }
|
| return obj->DefineAccessor(name, flag_setter->value() == 0, fun, attr);
|
| }
|
|
|