"use strict";
// Polyfills for Array Functions
SmartPolyfill.register('Array.isArray', {
  Chrome: '1 - 4',
  Firefox: '1 - 3',
  IE: '1 - 8',
  Safari: '1 - 4',
  Opera: '1 - 10'
}, function(o){
  return Object.prototype.toString.call(o) === '[object Array]';
});
SmartPolyfill.register('Array.prototype.indexOf', {
  IE: '1 - 8'
}, function(searchElement, fromIndex) {
  fromIndex = fromIndex || 0;
  if(fromIndex < this.length){
    for(var i = fromIndex; i < this.length; ++i){
      if(this[i] === searchElement) return i;
    }
  }
  return -1;
});
SmartPolyfill.register('Array.prototype.lastIndexOf', {
  IE: '1 - 8'
}, function(searchElement, fromIndex){
  fromIndex = fromIndex || this.length - 1;
  if(fromIndex < this.length){
    for(var i = fromIndex; i < this.length && i > -1; --i){
      if(this[i] === searchElement) return i;
    }
  }
  return -1;
});
@@ -844,28 +844,369 @@
 ;%0A    %7D%0A  %7D%0A  return -1;%0A%7D);
+%0ASmartPolyfill.register('Array.prototype.forEach', %7B%0A  IE: '1 - 8'%0A%7D, function(callback, thisArg)%7B%0A  if(typeof callback !== 'function') throw new TypeError(%22Callback is not a function%22);%0A  thisArg = typeof thisArg === 'undefined' ? this : thisArg;%0A  for(var i = 0; i %3C this.length; ++i)%7B%0A    callback.call(thisArg, this%5Bi%5D, i, this);%0A  %7D%0A%7D);

Add Array.prototype.forEach polyfill