Explorar o código

Add array map function for IE9.

Joel Martin %!s(int64=13) %!d(string=hai) anos
pai
achega
32f135d730
Modificáronse 1 ficheiros con 24 adicións e 0 borrados
  1. 24 0
      include/util.js

+ 24 - 0
include/util.js

@@ -33,6 +33,30 @@ Array.prototype.push32 = function (num) {
               (num      ) & 0xFF  );
 };
 
+// IE does not support map (even in IE9)
+//This prototype is provided by the Mozilla foundation and
+//is distributed under the MIT license.
+//http://www.ibiblio.org/pub/Linux/LICENSES/mit.license
+if (!Array.prototype.map)
+{
+  Array.prototype.map = function(fun /*, thisp*/)
+  {
+    var len = this.length;
+    if (typeof fun != "function")
+      throw new TypeError();
+
+    var res = new Array(len);
+    var thisp = arguments[1];
+    for (var i = 0; i < len; i++)
+    {
+      if (i in this)
+        res[i] = fun.call(thisp, this[i], i, this);
+    }
+
+    return res;
+  };
+}
+
 /* 
  * ------------------------------------------------------
  * Namespaced in Util