Electronで内部的に使われているnodeのバージョンはv5系です。
process.versions
を確認すると内部で使われているnode
とchrome
のバージョンが確認できます。
console.log(process.versions);
// => { http_parser: '2.6.2',
// node: '5.10.0',
// v8: '4.9.385.28',
// uv: '1.8.0',
// zlib: '1.2.8',
// ares: '1.10.1-DEV',
// modules: '47',
// openssl: '1.0.2g',
// electron: '0.37.8',
// 'atom-shell': '0.37.8',
// chrome: '49.0.2623.75
// }
node 5.10.0は本来ならば、デストラクチャリングに対応していません。
しかしながら、Electron v0.37からは、デストラクチャリングが使えるので以下のように書くことができます。
before
const electron = require('electron');
const app = electron.app;
const BrowserWindow = electron.BrowserWindow;
after
const {app, BrowserWindow} = require('electron');
Electronのメインプロセスでは、内部のnodeのバージョンでes6対応が決まると勘違いしていましたが、どうやら違うようです。
問題はv8のバージョンっぽいですね。
What’s new in Electron 0.37 - Atom Blog
上記のリンクによると現在ElectronのES2015対応は91%です。
個人的にはデストラクチャリングが使えればわりと満足なので、async/awaitを使う必要がなければ、バベる必要もないと思います。