* Electron version: 1.4.15
* Operating system: Windows 10

### Expected behavior

The new [before-input-event](https://github.com/electron/electron/blob/master/docs/api/web-contents.md#event-before-input-event) event should imitate the properties from [KeyboardEvents](https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent).

### Actual behavior

Missing the ```KeyboardEvent.code``` equivalent.
Because of this, it's not possible for me to distinguish between my shortcuts created with 1 and Numpad1 for instance.

Looking at comments for the ```before-input-event``` issue ([#7586](https://github.com/electron/electron/issues/7586#issuecomment-263431783)), The ```code``` property was never mentioned in the psudo code. Missed by mistake?

```code``` is available on the ```keydown``` events in Electron, which I use now. I'm not able to rewrite my code to use ```before-input-event```, for now.
atom/common/native_mate_converters/blink_converter.cc
v8::Isolate* isolate,
    const blink::WebCache::ResourceTypeStat& stat) {
  mate::Dictionary dict = mate::Dictionary::CreateEmpty(isolate);
  dict.Set("count", static_cast<uint32_t>(stat.count));
  dict.Set("size", static_cast<double>(stat.size));
  dict.Set("liveSize", static_cast<double>(stat.liveSize));
  dict.Set("decodedSize", static_cast<double>(stat.decodedSize));
  dict.Set("purgedSize", static_cast<double>(stat.purgedSize));
  dict.Set("purgeableSize", static_cast<double>(stat.purgeableSize));
  return dict.GetHandle();
}
v8::Local<v8::Value> Converter<blink::WebCache::ResourceTypeStats>::ToV8(
    v8::Isolate* isolate,
    const blink::WebCache::ResourceTypeStats& stats) {
  mate::Dictionary dict = mate::Dictionary::CreateEmpty(isolate);
  dict.Set("images", stats.images);
  dict.Set("scripts", stats.scripts);
  dict.Set("cssStyleSheets", stats.cssStyleSheets);
  dict.Set("xslStyleSheets", stats.xslStyleSheets);
  dict.Set("fonts", stats.fonts);
  dict.Set("other", stats.other);
  return dict.GetHandle();
}
}