| Index: src/isolate.cc
 | 
| diff --git a/src/isolate.cc b/src/isolate.cc
 | 
| index c235a23439dbc5b44ecd16d3396def081b38b7e4..ec1e2fe2b68afa9ed7b17a6a6faf9193aa7f21cc 100644
 | 
| --- a/src/isolate.cc
 | 
| +++ b/src/isolate.cc
 | 
| @@ -570,7 +570,7 @@ Handle<JSArray> Isolate::CaptureCurrentStackTrace(
 | 
|      frame->Summarize(&frames);
 | 
|      for (int i = frames.length() - 1; i >= 0 && frames_seen < limit; i--) {
 | 
|        // Create a JSObject to hold the information for the StackFrame.
 | 
| -      Handle<JSObject> stackFrame = factory()->NewJSObject(object_function());
 | 
| +      Handle<JSObject> stack_frame = factory()->NewJSObject(object_function());
 | 
|  
 | 
|        Handle<JSFunction> fun = frames[i].function();
 | 
|        Handle<Script> script(Script::cast(fun->shared()->script()));
 | 
| @@ -591,16 +591,24 @@ Handle<JSArray> Isolate::CaptureCurrentStackTrace(
 | 
|              // tag.
 | 
|              column_offset += script->column_offset()->value();
 | 
|            }
 | 
| -          SetLocalPropertyNoThrow(stackFrame, column_key,
 | 
| -                                  Handle<Smi>(Smi::FromInt(column_offset + 1)));
 | 
| +          CHECK_NOT_EMPTY_HANDLE(
 | 
| +              this,
 | 
| +              JSObject::SetLocalPropertyIgnoreAttributes(
 | 
| +                  stack_frame, column_key,
 | 
| +                  Handle<Smi>(Smi::FromInt(column_offset + 1)), NONE));
 | 
|          }
 | 
| -        SetLocalPropertyNoThrow(stackFrame, line_key,
 | 
| -                                Handle<Smi>(Smi::FromInt(line_number + 1)));
 | 
| +        CHECK_NOT_EMPTY_HANDLE(
 | 
| +            this,
 | 
| +            JSObject::SetLocalPropertyIgnoreAttributes(
 | 
| +                stack_frame, line_key,
 | 
| +                Handle<Smi>(Smi::FromInt(line_number + 1)), NONE));
 | 
|        }
 | 
|  
 | 
|        if (options & StackTrace::kScriptName) {
 | 
|          Handle<Object> script_name(script->name(), this);
 | 
| -        SetLocalPropertyNoThrow(stackFrame, script_key, script_name);
 | 
| +        CHECK_NOT_EMPTY_HANDLE(this,
 | 
| +                               JSObject::SetLocalPropertyIgnoreAttributes(
 | 
| +                                   stack_frame, script_key, script_name, NONE));
 | 
|        }
 | 
|  
 | 
|        if (options & StackTrace::kScriptNameOrSourceURL) {
 | 
| @@ -616,8 +624,10 @@ Handle<JSArray> Isolate::CaptureCurrentStackTrace(
 | 
|          if (caught_exception) {
 | 
|            result = factory()->undefined_value();
 | 
|          }
 | 
| -        SetLocalPropertyNoThrow(stackFrame, script_name_or_source_url_key,
 | 
| -                                result);
 | 
| +        CHECK_NOT_EMPTY_HANDLE(this,
 | 
| +                               JSObject::SetLocalPropertyIgnoreAttributes(
 | 
| +                                   stack_frame, script_name_or_source_url_key,
 | 
| +                                   result, NONE));
 | 
|        }
 | 
|  
 | 
|        if (options & StackTrace::kFunctionName) {
 | 
| @@ -625,23 +635,30 @@ Handle<JSArray> Isolate::CaptureCurrentStackTrace(
 | 
|          if (fun_name->ToBoolean()->IsFalse()) {
 | 
|            fun_name = Handle<Object>(fun->shared()->inferred_name(), this);
 | 
|          }
 | 
| -        SetLocalPropertyNoThrow(stackFrame, function_key, fun_name);
 | 
| +        CHECK_NOT_EMPTY_HANDLE(this,
 | 
| +                               JSObject::SetLocalPropertyIgnoreAttributes(
 | 
| +                                   stack_frame, function_key, fun_name, NONE));
 | 
|        }
 | 
|  
 | 
|        if (options & StackTrace::kIsEval) {
 | 
|          int type = Smi::cast(script->compilation_type())->value();
 | 
|          Handle<Object> is_eval = (type == Script::COMPILATION_TYPE_EVAL) ?
 | 
|              factory()->true_value() : factory()->false_value();
 | 
| -        SetLocalPropertyNoThrow(stackFrame, eval_key, is_eval);
 | 
| +        CHECK_NOT_EMPTY_HANDLE(this,
 | 
| +                               JSObject::SetLocalPropertyIgnoreAttributes(
 | 
| +                                   stack_frame, eval_key, is_eval, NONE));
 | 
|        }
 | 
|  
 | 
|        if (options & StackTrace::kIsConstructor) {
 | 
|          Handle<Object> is_constructor = (frames[i].is_constructor()) ?
 | 
|              factory()->true_value() : factory()->false_value();
 | 
| -        SetLocalPropertyNoThrow(stackFrame, constructor_key, is_constructor);
 | 
| +        CHECK_NOT_EMPTY_HANDLE(this,
 | 
| +                               JSObject::SetLocalPropertyIgnoreAttributes(
 | 
| +                                   stack_frame, constructor_key,
 | 
| +                                   is_constructor, NONE));
 | 
|        }
 | 
|  
 | 
| -      FixedArray::cast(stack_trace->elements())->set(frames_seen, *stackFrame);
 | 
| +      FixedArray::cast(stack_trace->elements())->set(frames_seen, *stack_frame);
 | 
|        frames_seen++;
 | 
|      }
 | 
|      it.Advance();
 | 
| 
 |