Browse Source

Pass real Error object in error event

Cheng Zhao 9 years ago
parent
commit
95fe4beda8
2 changed files with 10 additions and 4 deletions
  1. 9 2
      atom/browser/api/atom_api_auto_updater.cc
  2. 1 2
      docs/api/auto-updater.md

+ 9 - 2
atom/browser/api/atom_api_auto_updater.cc

@@ -23,8 +23,15 @@ AutoUpdater::~AutoUpdater() {
   auto_updater::AutoUpdater::SetDelegate(NULL);
 }
 
-void AutoUpdater::OnError(const std::string& error) {
-  Emit("error", error);
+void AutoUpdater::OnError(const std::string& message) {
+  v8::Locker locker(isolate());
+  v8::HandleScope handle_scope(isolate());
+  auto error = v8::Exception::Error(mate::StringToV8(isolate(), message));
+  EmitCustomEvent(
+      "error",
+      error->ToObject(isolate()->GetCurrentContext()).ToLocalChecked(),
+      // Message is also emitted to keep compatibility with old code.
+      message);
 }
 
 void AutoUpdater::OnCheckingForUpdate() {

+ 1 - 2
docs/api/auto-updater.md

@@ -110,8 +110,7 @@ The `autoUpdater` object emits the following events:
 
 Returns:
 
-* `event` Event
-* `message` String
+* `error` Error
 
 Emitted when there is an error while updating.