From 585f6b4a38a6d06c6235efd91657ff0411c6a661 Mon Sep 17 00:00:00 2001 From: nightwing Date: Wed, 7 Mar 2018 13:41:34 +0400 Subject: [PATCH] add polyfills for es6 array functions --- .../node_modules/ace/lib/ace/lib/es6-shim.js | 63 +++++++++++++++++-- 1 file changed, 59 insertions(+), 4 deletions(-) diff --git a/plugins/node_modules/ace/lib/ace/lib/es6-shim.js b/plugins/node_modules/ace/lib/ace/lib/es6-shim.js index e81d3d63..6d3b4af3 100644 --- a/plugins/node_modules/ace/lib/ace/lib/es6-shim.js +++ b/plugins/node_modules/ace/lib/ace/lib/es6-shim.js @@ -41,13 +41,13 @@ define(function(require, exports, module) { } if (!String.prototype.includes) { defineProp(String.prototype, "includes", function(str, position) { - return this.indexOf(str, position != -1); + return this.indexOf(str, position) != -1; }); } if (!Object.assign) { - Object.assign = function (target) { + Object.assign = function(target) { if (target === undefined || target === null) { - throw new TypeError('Cannot convert undefined or null to object'); + throw new TypeError("Cannot convert undefined or null to object"); } var output = Object(target); @@ -62,5 +62,60 @@ define(function(require, exports, module) { return output; }; } - + if (!Array.prototype.find) { + defineProp(Array.prototype, "find", function(predicate) { + var len = this.length; + var thisArg = arguments[1]; + for (var k = 0; k < len; k++) { + var kValue = this[k]; + if (predicate.call(thisArg, kValue, k, this)) { + return kValue; + } + } + }); + } + if (!Array.prototype.findIndex) { + defineProp(Array.prototype, "findIndex", function(predicate) { + var len = this.length; + var thisArg = arguments[1]; + for (var k = 0; k < len; k++) { + var kValue = this[k]; + if (predicate.call(thisArg, kValue, k, this)) { + return k; + } + } + }); + } + if (!Array.prototype.includes) { + defineProp(Array.prototype, "includes", function(item, position) { + return this.indexOf(item, position) != -1; + }); + } + if (!Array.prototype.fill) { + defineProp(Array.prototype, "fill", function(value) { + var O = this; + var len = O.length >>> 0; + var start = arguments[1]; + var relativeStart = start >> 0; + var k = relativeStart < 0 ? + Math.max(len + relativeStart, 0) : + Math.min(relativeStart, len); + var end = arguments[2]; + var relativeEnd = end === undefined ? + len : end >> 0; + var final = relativeEnd < 0 ? + Math.max(len + relativeEnd, 0) : + Math.min(relativeEnd, len); + while (k < final) { + O[k] = value; + k++; + } + return O; + }); + } + if (!Array.of) { + defineProp(Array, "of", function() { + return Array.prototype.slice.call(arguments); + }); + } });