* Electron version: 1.5.0
* Operating system: macOS 10.12

### Expected behavior

* An `uncaughtException` event is emitted on `process` in the main process for thrown errors

### Actual behavior

* Event is not emitted
* Error is logged in the terminal

### How to reproduce

* `throw Error('here')` in the main process
* Dialog does not popup

Only appears to happen in 1.5.0, not 1.4.x, possibly related to the node 7.4 upgrade.

atom/common/node_bindings.cc
DCHECK(!is_browser_ || BrowserThread::CurrentlyOn(BrowserThread::UI));
  
  task_runner_ = base::ThreadTaskRunnerHandle::Get();
  
  UvRunOnce();
}
void NodeBindings::UvRunOnce() {
  DCHECK(!is_browser_ || BrowserThread::CurrentlyOn(BrowserThread::UI));
  node::Environment* env = uv_env();
  
  mate::Locker locker(env->isolate());
  v8::HandleScope handle_scope(env->isolate());
  
  v8::Context::Scope context_scope(env->context());
  
  v8::MicrotasksScope script_scope(env->isolate(),
                                   v8::MicrotasksScope::kRunMicrotasks);
  if (!is_browser_)
    TRACE_EVENT_BEGIN0("devtools.timeline", "FunctionCall");
  
  int r = uv_run(uv_loop_, UV_RUN_NOWAIT);
  if (!is_browser_)
    TRACE_EVENT_END0("devtools.timeline", "FunctionCall");
  if (r == 0)
    base::RunLoop().QuitWhenIdle();  
  
  uv_sem_post(&embed_sem_);
}
void NodeBindings::WakeupMainThread() {