I'm using `electron.systemPreferences.subscribeNotification` to listen for events coming from `NSDistributedNotificationCenter` in my app:

``` js
prefs.subscribeNotification('com.app.name.EventName', function(notification){
  console.log(notification)
})
```

This produces a single line of output in my log every time the event happens on my system, the only trouble is that the output is `undefined`. My expectation is that I would have access to the `NSNotification` object metadata as JSON.

When I subscribe to this notification in an Objective-C app, I get metadata with the event

``` obj-c
<0x618000000750>-[AppDelegate notify:]: object: com.app.name name: com.app.name.EventName userInfo: {
    Key = Value;
    ...
}
```

atom/browser/api/atom_api_system_preferences.cc
v8::Isolate* isolate) {
  return mate::CreateHandle(isolate, new SystemPreferences(isolate));
}
void SystemPreferences::BuildPrototype(
    v8::Isolate* isolate, v8::Local<v8::ObjectTemplate> prototype) {
  mate::ObjectTemplateBuilder(isolate, prototype)
#if defined(OS_WIN)
      .SetMethod("isAeroGlassEnabled", &SystemPreferences::IsAeroGlassEnabled)
#elif defined(OS_MACOSX)
      .SetMethod("subscribeNotification",
                 &SystemPreferences::SubscribeNotification)
      .SetMethod("unsubscribeNotification",
                 &SystemPreferences::UnsubscribeNotification)
      .SetMethod("getUserDefault", &SystemPreferences::GetUserDefault)
#endif
      .SetMethod("isDarkMode", &SystemPreferences::IsDarkMode);
}
}  
}  
namespace {
void Initialize(v8::Local<v8::Object> exports, v8::Local<v8::Value> unused,
                v8::Local<v8::Context> context, void* priv) {
  v8::Isolate* isolate = context->GetIsolate();
  mate::Dictionary dict(isolate, exports);
  dict.Set("systemPreferences", atom::api::SystemPreferences::Create(isolate));
}
}  
NODE_MODULE_CONTEXT_AWARE_BUILTIN(atom_browser_system_preferences, Initialize);