Chromium Code Reviews| Index: src/isolate.cc |
| diff --git a/src/isolate.cc b/src/isolate.cc |
| index 37020da1559b70828dfceedf5eb75cb32391817b..a0c5dcbbf14bcae1ee5cc3198e096049b3c5e7a2 100644 |
| --- a/src/isolate.cc |
| +++ b/src/isolate.cc |
| @@ -491,6 +491,8 @@ class CaptureStackTraceHelper { |
| STATIC_CHAR_VECTOR("scriptNameOrSourceURL")); |
| } |
| if (options & StackTrace::kFunctionName) { |
| + display_name_ = factory()->InternalizeOneByteString( |
| + STATIC_CHAR_VECTOR("displayName")); |
| function_key_ = factory()->InternalizeOneByteString( |
| STATIC_CHAR_VECTOR("functionName")); |
| } |
| @@ -554,8 +556,14 @@ class CaptureStackTraceHelper { |
| } |
| if (!function_key_.is_null()) { |
| - Handle<Object> fun_name(fun->shared()->DebugName(), isolate_); |
| - JSObject::AddProperty(stack_frame, function_key_, fun_name, NONE); |
| + Handle<Object> display_name = |
| + JSObject::GetDataProperty(fun, display_name_); |
| + if (display_name->IsString()) { |
| + JSObject::AddProperty(stack_frame, function_key_, display_name, NONE); |
|
Yang
2015/02/12 14:25:36
Why are we storing this in a separate property, an
kozy
2015/02/12 14:46:13
In output stack frame we store display name or fun
|
| + } else { |
| + Handle<Object> fun_name(fun->shared()->DebugName(), isolate_); |
| + JSObject::AddProperty(stack_frame, function_key_, fun_name, NONE); |
| + } |
| } |
| if (!eval_key_.is_null()) { |
| @@ -585,6 +593,7 @@ class CaptureStackTraceHelper { |
| Handle<String> function_key_; |
| Handle<String> eval_key_; |
| Handle<String> constructor_key_; |
| + Handle<String> display_name_; |
| }; |