Index: src/isolate.cc |
diff --git a/src/isolate.cc b/src/isolate.cc |
index 9d3511327e63dd8592c2a33f296e6cc0308d748b..0cfac8c2df24d87ff3134456a9da9e1a3bb6828b 100644 |
--- a/src/isolate.cc |
+++ b/src/isolate.cc |
@@ -39,7 +39,7 @@ |
#include "src/v8.h" |
#include "src/version.h" |
#include "src/vm-state-inl.h" |
- |
+#include "src/wasm/wasm-module.h" |
namespace v8 { |
namespace internal { |
@@ -616,11 +616,17 @@ class CaptureStackTraceHelper { |
factory()->NewJSObject(isolate_->object_function()); |
if (!function_key_.is_null()) { |
- Handle<Object> fun_name = handle(frame->function_name(), isolate_); |
- if (fun_name->IsUndefined()) |
- fun_name = isolate_->factory()->InternalizeUtf8String( |
- Vector<const char>("<WASM>")); |
- JSObject::AddProperty(stack_frame, function_key_, fun_name, NONE); |
+ Object* wasm_object = frame->wasm_obj(); |
+ Handle<String> name; |
+ if (!wasm_object->IsUndefined()) { |
+ Handle<JSObject> wasm = handle(JSObject::cast(wasm_object)); |
+ wasm::GetWasmFunctionName(wasm, frame->function_index()) |
+ .ToHandle(&name); |
+ } |
+ if (name.is_null()) { |
+ name = isolate_->factory()->NewStringFromStaticChars("<WASM UNNAMED>"); |
+ } |
+ JSObject::AddProperty(stack_frame, function_key_, name, NONE); |
} |
// Encode the function index as line number. |
if (!line_key_.is_null()) { |