diff options
Diffstat (limited to 'src/js/utils')
-rw-r--r-- | src/js/utils/elements.js | 2 | ||||
-rw-r--r-- | src/js/utils/is.js | 2 | ||||
-rw-r--r-- | src/js/utils/promise.js | 23 |
3 files changed, 7 insertions, 20 deletions
diff --git a/src/js/utils/elements.js b/src/js/utils/elements.js index 43f46416..bdf18bfd 100644 --- a/src/js/utils/elements.js +++ b/src/js/utils/elements.js @@ -221,7 +221,7 @@ export function hasClass(element, className) { // Element matches selector export function matches(element, selector) { - const prototype = Element.prototype; + const {prototype} = Element; function match() { return Array.from(document.querySelectorAll(selector)).includes(this); diff --git a/src/js/utils/is.js b/src/js/utils/is.js index b005cd31..24f176cc 100644 --- a/src/js/utils/is.js +++ b/src/js/utils/is.js @@ -19,7 +19,7 @@ const isEvent = input => instanceOf(input, Event); const isKeyboardEvent = input => instanceOf(input, KeyboardEvent); const isCue = input => instanceOf(input, window.TextTrackCue) || instanceOf(input, window.VTTCue); const isTrack = input => instanceOf(input, TextTrack) || (!isNullOrUndefined(input) && isString(input.kind)); -const isPromise = input => instanceOf(input, Promise); +const isPromise = input => instanceOf(input, Promise) && isFunction(input.then); const isEmpty = input => isNullOrUndefined(input) || diff --git a/src/js/utils/promise.js b/src/js/utils/promise.js index 42fcc2c3..f45b46ab 100644 --- a/src/js/utils/promise.js +++ b/src/js/utils/promise.js @@ -1,27 +1,14 @@ -/** - * Returns whether an object is `Promise`-like (i.e. has a `then` method). - * - * @param {Object} value - * An object that may or may not be `Promise`-like. - * - * @return {boolean} - * Whether or not the object is `Promise`-like. - */ -export function isPromise(value) { - return value !== undefined && value !== null && typeof value.then === 'function'; -} - +import is from './is'; /** * Silence a Promise-like object. - * * This is useful for avoiding non-harmful, but potentially confusing "uncaught * play promise" rejection error messages. - * - * @param {Object} value - * An object that may or may not be `Promise`-like. + * @param {Object} value An object that may or may not be `Promise`-like. */ export function silencePromise(value) { - if (isPromise(value)) { + if (is.promise(value)) { value.then(null, () => {}); } } + +export default { silencePromise }; |