flexi-js
Version:
A responsive and flexible css scheme.
31 lines (30 loc) • 720 B
JavaScript
try {
let evt = new CustomEvent('foo');
evt.preventDefault();
if (evt.defaultPrevented !== true) {
throw new Error('failure');
}
} catch (err) {
let CustomEvent = (evt, opt) => {
let e, prev;
opt = opt || {
bubbles: false,
cancelable: false,
detail: undefined
}
e = document.createEvent('CustomEvent');
e.initCustomEvent(evt, params.bubbles, params.cancelable, params.detail);
prev = e.preventDefault;
e.preventDefault = function() {
prev.call(this);
try {
Object.defineProperty(this, 'defaultPrevented', {
get: () => true
});
} catch (err) {
this.defaultPrevented = true;
}
}
return e;
};
}