All native objects have prototype now
authorCheng Zhao <zcbenz@gmail.com>
Tue, 2 Aug 2016 08:12:17 +0000 (17:12 +0900)
committerCheng Zhao <zcbenz@gmail.com>
Tue, 2 Aug 2016 08:12:17 +0000 (17:12 +0900)
lib/browser/api/app.js
lib/browser/api/auto-updater/auto-updater-native.js
lib/browser/api/power-monitor.js
lib/browser/api/protocol.js
lib/browser/api/screen.js
lib/browser/api/session.js
lib/browser/api/system-preferences.js
lib/browser/api/web-contents.js
lib/renderer/api/web-frame.js

index a63ef24..2a537a6 100644 (file)
@@ -10,7 +10,7 @@ const electron = require('electron')
 const {deprecate, Menu} = electron
 const {EventEmitter} = require('events')
 
-Object.setPrototypeOf(app, EventEmitter.prototype)
+Object.setPrototypeOf(app.__proto__, EventEmitter.prototype)
 
 let appPath = null
 
@@ -78,5 +78,5 @@ for (let name of events) {
 // Wrappers for native classes.
 process.atomBinding('download_item')._setWrapDownloadItem((downloadItem) => {
   // downloadItem is an EventEmitter.
-  Object.setPrototypeOf(downloadItem, EventEmitter.prototype)
+  Object.setPrototypeOf(downloadItem.__proto__, EventEmitter.prototype)
 })
index 1fff05d..4f34f14 100644 (file)
@@ -1,6 +1,6 @@
 const EventEmitter = require('events').EventEmitter
 const autoUpdater = process.atomBinding('auto_updater').autoUpdater
 
-Object.setPrototypeOf(autoUpdater, EventEmitter.prototype)
+Object.setPrototypeOf(autoUpdater.__proto__, EventEmitter.prototype)
 
 module.exports = autoUpdater
index 87c0069..3e93df5 100644 (file)
@@ -1,6 +1,6 @@
 const {EventEmitter} = require('events')
 const {powerMonitor} = process.atomBinding('power_monitor')
 
-Object.setPrototypeOf(powerMonitor, EventEmitter.prototype)
+Object.setPrototypeOf(powerMonitor.__proto__, EventEmitter.prototype)
 
 module.exports = powerMonitor
index 9d8394f..88cf594 100644 (file)
@@ -9,7 +9,7 @@ Object.setPrototypeOf(module.exports, new Proxy({}, {
     if (!app.isReady()) return
 
     const protocol = session.defaultSession.protocol
-    if (!protocol.hasOwnProperty(property)) return
+    if (!protocol.__proto__.hasOwnProperty(property)) return
 
     // Returning a native function directly would throw error.
     return (...args) => protocol[property](...args)
@@ -18,7 +18,7 @@ Object.setPrototypeOf(module.exports, new Proxy({}, {
   ownKeys () {
     if (!app.isReady()) return []
 
-    return Object.getOwnPropertyNames(session.defaultSession.protocol)
+    return Object.getOwnPropertyNames(session.defaultSession.protocol.__proto__)
   },
 
   getOwnPropertyDescriptor (target) {
index 25e3c37..6bba99b 100644 (file)
@@ -1,6 +1,6 @@
 const {EventEmitter} = require('events')
 const {screen} = process.atomBinding('screen')
 
-Object.setPrototypeOf(screen, EventEmitter.prototype)
+Object.setPrototypeOf(screen.__proto__, EventEmitter.prototype)
 
 module.exports = screen
index d82e6d0..0e463cf 100644 (file)
@@ -17,6 +17,6 @@ Object.defineProperties(exports, {
 // Wraps native Session class.
 _setWrapSession(function (session) {
   // Session is an EventEmitter.
-  Object.setPrototypeOf(session, EventEmitter.prototype)
+  Object.setPrototypeOf(session.__proto__, EventEmitter.prototype)
   app.emit('session-created', session)
 })
index 6ba1750..74c2734 100644 (file)
@@ -1,6 +1,6 @@
 const {EventEmitter} = require('events')
 const {systemPreferences} = process.atomBinding('system_preferences')
 
-Object.setPrototypeOf(systemPreferences, EventEmitter.prototype)
+Object.setPrototypeOf(systemPreferences.__proto__, EventEmitter.prototype)
 
 module.exports = systemPreferences
index 04edb8d..a67cf91 100644 (file)
@@ -97,7 +97,7 @@ const webFrameMethodsWithResult = [
 // Add JavaScript wrappers for WebContents class.
 const wrapWebContents = function (webContents) {
   // webContents is an EventEmitter.
-  Object.setPrototypeOf(webContents, EventEmitter.prototype)
+  Object.setPrototypeOf(webContents.__proto__, EventEmitter.prototype)
 
   // Every remote callback from renderer process would add a listenter to the
   // render-view-deleted event, so ignore the listenters warning.
@@ -252,7 +252,7 @@ binding._setWrapWebContents(wrapWebContents)
 // Add JavaScript wrappers for Debugger class.
 const wrapDebugger = function (webContentsDebugger) {
   // debugger is an EventEmitter.
-  Object.setPrototypeOf(webContentsDebugger, EventEmitter.prototype)
+  Object.setPrototypeOf(webContentsDebugger.__proto__, EventEmitter.prototype)
 }
 
 debuggerBinding._setWrapDebugger(wrapDebugger)
index 81855c3..c639329 100644 (file)
@@ -5,7 +5,7 @@ const EventEmitter = require('events').EventEmitter
 const webFrame = process.atomBinding('web_frame').webFrame
 
 // webFrame is an EventEmitter.
-Object.setPrototypeOf(webFrame, EventEmitter.prototype)
+Object.setPrototypeOf(webFrame.__proto__, EventEmitter.prototype)
 
 // Lots of webview would subscribe to webFrame's events.
 webFrame.setMaxListeners(0)