diff --git a/lms/static/js/ie11_find_array.js b/lms/static/js/ie11_find_array.js index 4d3c36fd42..57bccb57f8 100644 --- a/lms/static/js/ie11_find_array.js +++ b/lms/static/js/ie11_find_array.js @@ -1,28 +1,32 @@ // Polyfill for patching IE11 Browsers // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/find#Polyfill +"use strict"; + if (!Array.prototype.find) { - Object.defineProperty(Array.prototype, 'find', { - value: function(predicate) { - // 1. Let O be ? ToObject(this value). - if (this == null) { - throw new TypeError('"this" is null or not defined'); - } + Object.defineProperty(Array.prototype, 'find', { // eslint-disable-line no-extend-native + value: function(predicate) { + var o, len, thisArg, k, kValue; - var o = Object(this); + // 1. Let O be ? ToObject(this value). + if (this == null) { + throw new TypeError('"this" is null or not defined'); + } - // 2. Let len be ? ToLength(? Get(O, "length")). - var len = o.length >>> 0; + o = Object(this); - // 3. If IsCallable(predicate) is false, throw a TypeError exception. - if (typeof predicate !== 'function') { - throw new TypeError('predicate must be a function'); + // 2. Let len be ? ToLength(? Get(O, "length")). + len = o.length >>> 0; + + // 3. If IsCallable(predicate) is false, throw a TypeError exception. + if (typeof predicate !== 'function') { + throw new TypeError('predicate must be a function'); } // 4. If thisArg was supplied, let T be thisArg; else let T be undefined. - var thisArg = arguments[1]; + thisArg = arguments[1]; // 5. Let k be 0. - var k = 0; + k = 0; // 6. Repeat, while k < len while (k < len) { @@ -30,7 +34,7 @@ if (!Array.prototype.find) { // b. Let kValue be ? Get(O, Pk). // c. Let testResult be ToBoolean(? Call(predicate, T, « kValue, k, O »)). // d. If testResult is true, return kValue. - var kValue = o[k]; + kValue = o[k]; if (predicate.call(thisArg, kValue, k, o)) { return kValue; }