Merge pull request #7226 from electron/power-monitor-error

Rethrow caught errors from process.binding
This commit is contained in:
Cheng Zhao 2016-09-19 15:25:18 +09:00 committed by GitHub
commit ffe931bde7
5 changed files with 14 additions and 11 deletions

View file

@ -44,7 +44,7 @@ v8::Local<v8::Value> PowerMonitor::Create(v8::Isolate* isolate) {
if (!Browser::Get()->is_ready()) {
isolate->ThrowException(v8::Exception::Error(mate::StringToV8(
isolate,
"Cannot initialize \"power-monitor\" module before app is ready")));
"Cannot require \"powerMonitor\" module before app is ready")));
return v8::Null(isolate);
}

View file

@ -97,7 +97,7 @@ v8::Local<v8::Value> Screen::Create(v8::Isolate* isolate) {
if (!Browser::Get()->is_ready()) {
isolate->ThrowException(v8::Exception::Error(mate::StringToV8(
isolate,
"Cannot initialize \"screen\" module before app is ready")));
"Cannot require \"screen\" module before app is ready")));
return v8::Null(isolate);
}

View file

@ -2,16 +2,17 @@
> Monitor power state changes.
You can only use it in the main process. You should not use this module until the `ready`
event of the `app` module is emitted.
You cannot require or use this module until the `ready` event of the `app`
module is emitted.
For example:
```javascript
const {app} = require('electron')
const electron = require('electron')
const {app} = electron
app.on('ready', () => {
require('electron').powerMonitor.on('suspend', () => {
electron.powerMonitor.on('suspend', () => {
console.log('The system is going to sleep')
})
})
@ -19,7 +20,7 @@ app.on('ready', () => {
## Events
The `power-monitor` module emits the following events:
The `powerMonitor` module emits the following events:
### Event: 'suspend'

View file

@ -2,8 +2,8 @@
> Retrieve information about screen size, displays, cursor position, etc.
You cannot use this module until the `ready` event of the `app` module is
emitted (by invoking or requiring it).
You cannot require or use this module until the `ready` event of the `app`
module is emitted.
`screen` is an [EventEmitter](http://nodejs.org/api/events.html#events_class_events_eventemitter).

View file

@ -2,10 +2,12 @@ const timers = require('timers')
process.atomBinding = function (name) {
try {
return process.binding('atom_' + process.type + '_' + name)
return process.binding(`atom_${process.type}_${name}`)
} catch (error) {
if (/No such module/.test(error.message)) {
return process.binding('atom_common_' + name)
return process.binding(`atom_common_${name}`)
} else {
throw error
}
}
}