Index: src/top.cc |
diff --git a/src/top.cc b/src/top.cc |
index 35387281f0e825cf8e8812ad7abf9038c2b9b828..3364c0d511c92b1b2c50fba0c9873a8ea571c3a3 100644 |
--- a/src/top.cc |
+++ b/src/top.cc |
@@ -374,18 +374,6 @@ Handle<String> Top::StackTraceString() { |
} |
-static void SetLocalProperty(Handle<JSObject> object, |
- Handle<String> key, |
- Handle<Object> value) { |
- // We set properties on freshly allocated JS object, nothing |
- // should fail except for OOM which is handled by |
- // SetLocalPropertyIgnoreAttributes. |
- ASSERT(!Top::has_pending_exception()); |
- CHECK(!SetLocalPropertyIgnoreAttributes(object, key, value, NONE).is_null()); |
- CHECK(!Top::has_pending_exception()); |
-} |
- |
- |
Handle<JSArray> Top::CaptureCurrentStackTrace( |
int frame_limit, StackTrace::StackTraceOptions options) { |
// Ensure no negative values. |
@@ -433,16 +421,16 @@ Handle<JSArray> Top::CaptureCurrentStackTrace( |
// tag. |
column_offset += script->column_offset()->value(); |
} |
- SetLocalProperty(stackFrame, column_key, |
- Handle<Smi>(Smi::FromInt(column_offset + 1))); |
+ SetLocalPropertyNoThrow(stackFrame, column_key, |
+ Handle<Smi>(Smi::FromInt(column_offset + 1))); |
} |
- SetLocalProperty(stackFrame, line_key, |
- Handle<Smi>(Smi::FromInt(line_number + 1))); |
+ SetLocalPropertyNoThrow(stackFrame, line_key, |
+ Handle<Smi>(Smi::FromInt(line_number + 1))); |
} |
if (options & StackTrace::kScriptName) { |
Handle<Object> script_name(script->name()); |
- SetLocalProperty(stackFrame, script_key, script_name); |
+ SetLocalPropertyNoThrow(stackFrame, script_key, script_name); |
} |
if (options & StackTrace::kScriptNameOrSourceURL) { |
@@ -458,7 +446,8 @@ Handle<JSArray> Top::CaptureCurrentStackTrace( |
if (caught_exception) { |
result = Factory::undefined_value(); |
} |
- SetLocalProperty(stackFrame, script_name_or_source_url_key, result); |
+ SetLocalPropertyNoThrow(stackFrame, script_name_or_source_url_key, |
+ result); |
} |
if (options & StackTrace::kFunctionName) { |
@@ -466,20 +455,20 @@ Handle<JSArray> Top::CaptureCurrentStackTrace( |
if (fun_name->ToBoolean()->IsFalse()) { |
fun_name = Handle<Object>(fun->shared()->inferred_name()); |
} |
- SetLocalProperty(stackFrame, function_key, fun_name); |
+ SetLocalPropertyNoThrow(stackFrame, function_key, fun_name); |
} |
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(); |
- SetLocalProperty(stackFrame, eval_key, is_eval); |
+ SetLocalPropertyNoThrow(stackFrame, eval_key, is_eval); |
} |
if (options & StackTrace::kIsConstructor) { |
Handle<Object> is_constructor = (frames[i].is_constructor()) ? |
Factory::true_value() : Factory::false_value(); |
- SetLocalProperty(stackFrame, constructor_key, is_constructor); |
+ SetLocalPropertyNoThrow(stackFrame, constructor_key, is_constructor); |
} |
FixedArray::cast(stack_trace->elements())->set(frames_seen, *stackFrame); |