code: function Event (type, optionalProperties) {
    Object.defineProperty(this, 'type', { writable: false, value: type, enumerable: true })
    if (optionalProperties) {
      for (var f in optionalProperties) {
        if (optionalProperties.hasOwnProperty(f)) {
          Object.defineProperty(this, f, { writable: false, value: optionalProperties[f], enumerable: true })
        }
      }
    }
  }
docs: W3C Event
  
  @see http://www.w3.org/TR/DOM-Level-3-Events/#interface-Event
  @api private