Index: src/isolate.cc |
diff --git a/src/isolate.cc b/src/isolate.cc |
index 7cd8b002c4b096e15c83a085eba72eaaf4b8739c..7a6cd5f34cf0b7b04854cf10bf5a2729f605260d 100644 |
--- a/src/isolate.cc |
+++ b/src/isolate.cc |
@@ -489,6 +489,8 @@ class CaptureStackTraceHelper { |
if (options & StackTrace::kFunctionName) { |
function_key_ = factory()->InternalizeOneByteString( |
STATIC_CHAR_VECTOR("functionName")); |
+ name_key_ = |
+ factory()->InternalizeOneByteString(STATIC_CHAR_VECTOR("name")); |
} |
if (options & StackTrace::kIsEval) { |
eval_key_ = |
@@ -550,7 +552,10 @@ class CaptureStackTraceHelper { |
} |
if (!function_key_.is_null()) { |
- Handle<Object> fun_name(fun->shared()->DebugName(), isolate_); |
+ Handle<Object> fun_name = |
+ JSObject::GetProperty(fun, name_key_).ToHandleChecked(); |
+ if (fun_name.is_null() || !fun_name->IsString()) |
yurys
2015/03/05 14:12:56
Can it ever be null?
kozy
2015/03/05 15:01:09
Replaced with GetDataProperty
|
+ fun_name = Handle<Object>(fun->shared()->DebugName(), isolate_); |
JSObject::AddProperty(stack_frame, function_key_, fun_name, NONE); |
} |
@@ -581,6 +586,7 @@ class CaptureStackTraceHelper { |
Handle<String> function_key_; |
Handle<String> eval_key_; |
Handle<String> constructor_key_; |
+ Handle<String> name_key_; |
}; |