diff --git a/shell/common/gin_helper/event_emitter_caller.h b/shell/common/gin_helper/event_emitter_caller.h index b8a0511a0b..1dc4a2701f 100644 --- a/shell/common/gin_helper/event_emitter_caller.h +++ b/shell/common/gin_helper/event_emitter_caller.h @@ -44,11 +44,13 @@ v8::Local EmitEvent(v8::Isolate* isolate, v8::Local obj, const StringType& name, Args&&... args) { + v8::EscapableHandleScope scope{isolate}; internal::ValueVector converted_args = { gin::StringToV8(isolate, name), gin::ConvertToV8(isolate, std::forward(args))..., }; - return internal::CallMethodWithArgs(isolate, obj, "emit", &converted_args); + return scope.Escape( + internal::CallMethodWithArgs(isolate, obj, "emit", &converted_args)); } // obj.custom_emit(args...) @@ -57,11 +59,12 @@ v8::Local CustomEmit(v8::Isolate* isolate, v8::Local object, const char* custom_emit, Args&&... args) { + v8::EscapableHandleScope scope{isolate}; internal::ValueVector converted_args = { gin::ConvertToV8(isolate, std::forward(args))..., }; - return internal::CallMethodWithArgs(isolate, object, custom_emit, - &converted_args); + return scope.Escape(internal::CallMethodWithArgs(isolate, object, custom_emit, + &converted_args)); } template