diff --git a/src/js/utils/browser.js b/src/js/utils/browser.js index 384517fb53..cdd41692f0 100644 --- a/src/js/utils/browser.js +++ b/src/js/utils/browser.js @@ -199,8 +199,9 @@ if (!IS_CHROMIUM) { const minor = match[2] && parseFloat(match[2]); if (major && minor) { - return parseFloat(match[1] + '.' + match[2]); - } else if (major) { + return parseFloat(`${match[1]}.${match[2]}`); + } + if (major) { return major; } return null; diff --git a/src/js/utils/buffer.js b/src/js/utils/buffer.js index 8e5c18585f..c03c775fab 100644 --- a/src/js/utils/buffer.js +++ b/src/js/utils/buffer.js @@ -18,8 +18,6 @@ import { createTimeRange } from './time.js'; */ export function bufferedPercent(buffered, duration) { let bufferedDuration = 0; - let start; - let end; if (!duration) { return 0; @@ -30,13 +28,9 @@ export function bufferedPercent(buffered, duration) { } for (let i = 0; i < buffered.length; i++) { - start = buffered.start(i); - end = buffered.end(i); - + const start = buffered.start(i); // buffered end can be bigger than duration by a very small fraction - if (end > duration) { - end = duration; - } + const end = Math.min(buffered.end(i), duration); bufferedDuration += end - start; } diff --git a/src/js/utils/events.js b/src/js/utils/events.js index 4945c236b0..0f36720b1d 100644 --- a/src/js/utils/events.js +++ b/src/js/utils/events.js @@ -305,12 +305,11 @@ export function on(elem, type, fn) { for (let m = 0, n = handlersCopy.length; m < n; m++) { if (event.isImmediatePropagationStopped()) { break; - } else { - try { - handlersCopy[m].call(elem, event, hash); - } catch (e) { - log.error(e); - } + } + try { + handlersCopy[m].call(elem, event, hash); + } catch (e) { + log.error(e); } } } diff --git a/src/js/utils/filter-source.js b/src/js/utils/filter-source.js index 7cfe021206..f78ca2329b 100644 --- a/src/js/utils/filter-source.js +++ b/src/js/utils/filter-source.js @@ -32,19 +32,16 @@ const filterSource = function(src) { } }); - src = newsrc; - } else if (typeof src === 'string' && src.trim()) { + return newsrc; + } if (typeof src === 'string' && src.trim()) { // convert string into object - src = [fixSource({src})]; - } else if (isObject(src) && typeof src.src === 'string' && src.src && src.src.trim()) { + return [fixSource({src})]; + } if (isObject(src) && typeof src.src === 'string' && src.src && src.src.trim()) { // src is already valid - src = [fixSource(src)]; - } else { - // invalid source, turn it into an empty array - src = []; + return [fixSource(src)]; } - - return src; + // invalid source, turn it into an empty array + return []; }; /** diff --git a/src/js/utils/fn.js b/src/js/utils/fn.js index cf7ba35ed4..df5ccc4760 100644 --- a/src/js/utils/fn.js +++ b/src/js/utils/fn.js @@ -60,19 +60,15 @@ export const bind_ = function(context, fn, uid) { * * @return {Function} */ -export const throttle = function(fn, wait) { - let last = window.performance.now(); - - const throttled = function(...args) { - const now = window.performance.now(); - - if (now - last >= wait) { - fn(...args); - last = now; - } +export const throttle = function(func, delay) { + let lastCallTime = 0; + return function throttled(...args) { + const currentTime = Date.now() + if (currentTime - lastCallTime >= delay) { + lastCallTime = currentTime; + func(...args); + } }; - - return throttled; }; /** diff --git a/src/js/utils/time.js b/src/js/utils/time.js index 408bea08fb..b6f7c44477 100644 --- a/src/js/utils/time.js +++ b/src/js/utils/time.js @@ -141,7 +141,7 @@ function createTimeRangesObj(ranges) { export function createTimeRanges(start, end) { if (Array.isArray(start)) { return createTimeRangesObj(start); - } else if (start === undefined || end === undefined) { + } if (start === undefined || end === undefined) { return createTimeRangesObj(); } return createTimeRangesObj([[start, end]]);