“use strict”;
const EventInit = require(“../generated/EventInit”);
class EventImpl {
constructor(args, privateData) { const type = args[0]; // TODO: Replace with destructuring const eventInitDict = args[1] || EventInit.convert(undefined); this.type = type; const wrapper = privateData.wrapper; for (const key in eventInitDict) { if (key in wrapper) { this[key] = eventInitDict[key]; } } this.target = null; this.currentTarget = null; this.eventPhase = 0; this._initializedFlag = true; this._stopPropagationFlag = false; this._stopImmediatePropagationFlag = false; this._canceledFlag = false; this._dispatchFlag = false; this.isTrusted = privateData.isTrusted || false; this.timeStamp = Date.now(); } get defaultPrevented() { return this._canceledFlag; } stopPropagation() { this._stopPropagationFlag = true; } get cancelBubble() { return this._stopPropagationFlag; } set cancelBubble(v) { if (v) { this._stopPropagationFlag = true; } } stopImmediatePropagation() { this._stopPropagationFlag = true; this._stopImmediatePropagationFlag = true; } preventDefault() { if (this.cancelable) { this._canceledFlag = true; } } _initialize(type, bubbles, cancelable) { this.type = type; this._initializedFlag = true; this._stopPropagationFlag = false; this._stopImmediatePropagationFlag = false; this._canceledFlag = false; this.isTrusted = false; this.target = null; this.bubbles = bubbles; this.cancelable = cancelable; } initEvent(type, bubbles, cancelable) { if (this._dispatchFlag) { return; } this._initialize(type, bubbles, cancelable); }
}
module.exports = {
implementation: EventImpl
};