IE7 Object doesn't support map #751

Closed
shannonarcher opened this Issue Feb 24, 2014 · 0 comments

Comments

Projects
None yet
1 participant

Developing a site for IE7 and came across this bug.
SCRIPT438: Object doesn't support property or method 'map'
handlebars.js, line 2021 character 9

Guess IE7 doesn't support Array.map(), grabbed a fix from https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map

if (!Array.prototype.map)
{
  Array.prototype.map = function(fun /*, thisArg */)
  {
    "use strict";

    if (this === void 0 || this === null)
      throw new TypeError();

    var t = Object(this);
    var len = t.length >>> 0;
    if (typeof fun !== "function")
      throw new TypeError();

    var res = new Array(len);
    var thisArg = arguments.length >= 2 ? arguments[1] : void 0;
    for (var i = 0; i < len; i++)
    {
      // NOTE: Absolute correctness would demand Object.defineProperty
      //       be used.  But this method is fairly new, and failure is
      //       possible only if Object.prototype or Array.prototype
      //       has a property |i| (very unlikely), so use a less-correct
      //       but more portable alternative.
      if (i in t)
        res[i] = fun.call(thisArg, t[i], i, t);
    }

    return res;
  };
}

kpdecker closed this in 5999baf Mar 5, 2014

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment