aboutsummaryrefslogtreecommitdiffstats
path: root/src/js/utils
diff options
context:
space:
mode:
Diffstat (limited to 'src/js/utils')
-rw-r--r--src/js/utils/elements.js2
-rw-r--r--src/js/utils/is.js2
-rw-r--r--src/js/utils/promise.js23
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 };