 Chromium Code Reviews
 Chromium Code Reviews Issue 917743002:
  [V8] Use Function.name for stack frames in v8::StackTrace  (Closed) 
  Base URL: https://chromium.googlesource.com/v8/v8.git@master
    
  
    Issue 917743002:
  [V8] Use Function.name for stack frames in v8::StackTrace  (Closed) 
  Base URL: https://chromium.googlesource.com/v8/v8.git@master| 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_; | 
| }; |