@extendscript/aes.patch.array.map
Advanced tools
+83
| /* | ||
| https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map | ||
| */ | ||
| // Production steps of ECMA-262, Edition 5, 15.4.4.19 | ||
| // Reference: http://es5.github.io/#x15.4.4.19 | ||
| if (!Array.prototype.map) { | ||
| Array.prototype.map = function(callback, thisArg) { | ||
| var T, A, k; | ||
| if (this === void 0 || this === null) { | ||
| throw new TypeError('Array.prototype.map called on null or undefined'); | ||
| } | ||
| // 1. Let O be the result of calling ToObject passing the |this| | ||
| // value as the argument. | ||
| var O = Object(this); | ||
| // 2. Let lenValue be the result of calling the Get internal | ||
| // method of O with the argument "length". | ||
| // 3. Let len be ToUint32(lenValue). | ||
| var len = O.length >>> 0; | ||
| // 4. If IsCallable(callback) is false, throw a TypeError exception. | ||
| // See: http://es5.github.com/#x9.11 | ||
| if (callback.__class__ !== 'Function') { | ||
| throw new TypeError(callback + ' is not a function'); | ||
| } | ||
| // 5. If thisArg was supplied, let T be thisArg; else let T be undefined. | ||
| T = (arguments.length > 1) ? thisArg : void 0; | ||
| // 6. Let A be a new array created as if by the expression new Array(len) | ||
| // where Array is the standard built-in constructor with that name and | ||
| // len is the value of len. | ||
| A = new Array(len); | ||
| for (var k = 0; k < len; k++) { | ||
| var kValue, mappedValue; | ||
| // a. Let Pk be ToString(k). | ||
| // This is implicit for LHS operands of the in operator | ||
| // b. Let kPresent be the result of calling the HasProperty internal | ||
| // method of O with argument Pk. | ||
| // This step can be combined with c | ||
| // c. If kPresent is true, then | ||
| if (k in O) { | ||
| // i. Let kValue be the result of calling the Get internal | ||
| // method of O with argument Pk. | ||
| kValue = O[k]; | ||
| // ii. Let mappedValue be the result of calling the Call internal | ||
| // method of callback with T as the this value and argument | ||
| // list containing kValue, k, and O. | ||
| mappedValue = callback.call(T, kValue, k, O); | ||
| // iii. Call the DefineOwnProperty internal method of A with arguments | ||
| // Pk, Property Descriptor | ||
| // { Value: mappedValue, | ||
| // Writable: true, | ||
| // Enumerable: true, | ||
| // Configurable: true }, | ||
| // and false. | ||
| // In browsers that support Object.defineProperty, use the following: | ||
| // Object.defineProperty(A, k, { | ||
| // value: mappedValue, | ||
| // writable: true, | ||
| // enumerable: true, | ||
| // configurable: true | ||
| // }); | ||
| // For best browser support, use the following: | ||
| A[k] = mappedValue; | ||
| } | ||
| } | ||
| // 9. return A | ||
| return A; | ||
| }; | ||
| } |
+3
-3
| { | ||
| "name": "@extendscript/aes.patch.array.map", | ||
| "version": "1.0.0", | ||
| "version": "2.0.0", | ||
| "description": "The Array.map() method creates a new array with the results of calling a provided function on every element in the calling array.", | ||
| "main": "array.map.js", | ||
| "main": "map.js", | ||
| "scripts": { | ||
@@ -29,4 +29,4 @@ "node-env": "curl https://raw.githubusercontent.com/ES-Collection/build-node-venv/master/build-node-venv.sh > ./.bnv.sh && chmod +x ./.bnv.sh && ./.bnv.sh && rm ./.bnv.sh", | ||
| "minimist": "^1.2.0", | ||
| "tap-es": "git+https://github.com/ExtendScript/tap-es.git" | ||
| "@extendscript/tap-es": ">=1.0.5" | ||
| } | ||
| } |
+4
-0
@@ -9,2 +9,6 @@ # array.map | ||
| ## Install | ||
| npm install @extendscript/aes.patch.array.map | ||
| ## Test | ||
@@ -11,0 +15,0 @@ |
+1
-1
| var argv = require('minimist')(process.argv.slice(2)); // Remove nodePath, scriptpath | ||
| var tapes = require("tap-es"), targets = argv._, d = require('path').resolve(__dirname); | ||
| var tapes = require("@extendscript/tap-es"), targets = argv._, d = require('path').resolve(__dirname); | ||
@@ -4,0 +4,0 @@ tapes.reportDuration(false); |
+1
-1
@@ -1,2 +0,2 @@ | ||
| #include '../array.map.js' | ||
| #include '../map.js' | ||
| #include '../../json/json.js' | ||
@@ -3,0 +3,0 @@ |
-83
| /* | ||
| https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map | ||
| */ | ||
| // Production steps of ECMA-262, Edition 5, 15.4.4.19 | ||
| // Reference: http://es5.github.io/#x15.4.4.19 | ||
| if (!Array.prototype.map) { | ||
| Array.prototype.map = function(callback, thisArg) { | ||
| var T, A, k; | ||
| if (this === void 0 || this === null) { | ||
| throw new TypeError('Array.prototype.map called on null or undefined'); | ||
| } | ||
| // 1. Let O be the result of calling ToObject passing the |this| | ||
| // value as the argument. | ||
| var O = Object(this); | ||
| // 2. Let lenValue be the result of calling the Get internal | ||
| // method of O with the argument "length". | ||
| // 3. Let len be ToUint32(lenValue). | ||
| var len = O.length >>> 0; | ||
| // 4. If IsCallable(callback) is false, throw a TypeError exception. | ||
| // See: http://es5.github.com/#x9.11 | ||
| if (callback.__class__ !== 'Function') { | ||
| throw new TypeError(callback + ' is not a function'); | ||
| } | ||
| // 5. If thisArg was supplied, let T be thisArg; else let T be undefined. | ||
| T = (arguments.length > 1) ? thisArg : void 0; | ||
| // 6. Let A be a new array created as if by the expression new Array(len) | ||
| // where Array is the standard built-in constructor with that name and | ||
| // len is the value of len. | ||
| A = new Array(len); | ||
| for (var k = 0; k < len; k++) { | ||
| var kValue, mappedValue; | ||
| // a. Let Pk be ToString(k). | ||
| // This is implicit for LHS operands of the in operator | ||
| // b. Let kPresent be the result of calling the HasProperty internal | ||
| // method of O with argument Pk. | ||
| // This step can be combined with c | ||
| // c. If kPresent is true, then | ||
| if (k in O) { | ||
| // i. Let kValue be the result of calling the Get internal | ||
| // method of O with argument Pk. | ||
| kValue = O[k]; | ||
| // ii. Let mappedValue be the result of calling the Call internal | ||
| // method of callback with T as the this value and argument | ||
| // list containing kValue, k, and O. | ||
| mappedValue = callback.call(T, kValue, k, O); | ||
| // iii. Call the DefineOwnProperty internal method of A with arguments | ||
| // Pk, Property Descriptor | ||
| // { Value: mappedValue, | ||
| // Writable: true, | ||
| // Enumerable: true, | ||
| // Configurable: true }, | ||
| // and false. | ||
| // In browsers that support Object.defineProperty, use the following: | ||
| // Object.defineProperty(A, k, { | ||
| // value: mappedValue, | ||
| // writable: true, | ||
| // enumerable: true, | ||
| // configurable: true | ||
| // }); | ||
| // For best browser support, use the following: | ||
| A[k] = mappedValue; | ||
| } | ||
| } | ||
| // 9. return A | ||
| return A; | ||
| }; | ||
| } |
5304
0.76%20
25%