aboutsummaryrefslogtreecommitdiff
path: root/node_modules/es5-ext/array/#/map
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/es5-ext/array/#/map')
-rw-r--r--node_modules/es5-ext/array/#/map/implement.js8
-rw-r--r--node_modules/es5-ext/array/#/map/index.js4
-rw-r--r--node_modules/es5-ext/array/#/map/is-implemented.js8
-rw-r--r--node_modules/es5-ext/array/#/map/shim.js21
4 files changed, 41 insertions, 0 deletions
diff --git a/node_modules/es5-ext/array/#/map/implement.js b/node_modules/es5-ext/array/#/map/implement.js
new file mode 100644
index 000000000..a6d1d9001
--- /dev/null
+++ b/node_modules/es5-ext/array/#/map/implement.js
@@ -0,0 +1,8 @@
+"use strict";
+
+if (!require("./is-implemented")()) {
+ Object.defineProperty(Array.prototype, "map", { value: require("./shim"),
+ configurable: true,
+enumerable: false,
+writable: true });
+}
diff --git a/node_modules/es5-ext/array/#/map/index.js b/node_modules/es5-ext/array/#/map/index.js
new file mode 100644
index 000000000..101c0649e
--- /dev/null
+++ b/node_modules/es5-ext/array/#/map/index.js
@@ -0,0 +1,4 @@
+"use strict";
+
+module.exports = require("./is-implemented")()
+ ? Array.prototype.map : require("./shim");
diff --git a/node_modules/es5-ext/array/#/map/is-implemented.js b/node_modules/es5-ext/array/#/map/is-implemented.js
new file mode 100644
index 000000000..24ab9084f
--- /dev/null
+++ b/node_modules/es5-ext/array/#/map/is-implemented.js
@@ -0,0 +1,8 @@
+"use strict";
+
+var identity = require("../../../function/identity")
+ , SubArray = require("../../_sub-array-dummy-safe");
+
+module.exports = function () {
+ return (new SubArray()).map(identity) instanceof SubArray;
+};
diff --git a/node_modules/es5-ext/array/#/map/shim.js b/node_modules/es5-ext/array/#/map/shim.js
new file mode 100644
index 000000000..6d8cc1fb6
--- /dev/null
+++ b/node_modules/es5-ext/array/#/map/shim.js
@@ -0,0 +1,21 @@
+"use strict";
+
+var isPlainArray = require("../../is-plain-array")
+ , callable = require("../../../object/valid-callable")
+
+ , isArray = Array.isArray, map = Array.prototype.map
+ , forEach = Array.prototype.forEach, call = Function.prototype.call;
+
+module.exports = function (callbackFn/*, thisArg*/) {
+ var result, thisArg;
+ if (!this || !isArray(this) || isPlainArray(this)) {
+ return map.apply(this, arguments);
+ }
+ callable(callbackFn);
+ thisArg = arguments[1];
+ result = new this.constructor(this.length);
+ forEach.call(this, function (val, i, self) {
+ result[i] = call.call(callbackFn, thisArg, val, i, self);
+ });
+ return result;
+};