| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150 | 
							- if (!Array.prototype.forEach) {
 
-   Array.prototype.forEach = function(callback, thisArg) {
 
-     var T, k;
 
-     if (this == null) {
 
-       throw new TypeError(' this is null or not defined');
 
-     }
 
-     // 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 (typeof callback !== "function") {
 
-       throw new TypeError(callback + ' is not a function');
 
-     }
 
-     // 5. If thisArg was supplied, let T be thisArg; else let T be undefined.
 
-     if (arguments.length > 1) {
 
-       T = thisArg;
 
-     }
 
-     // 6. Let k be 0
 
-     k = 0;
 
-     // 7. Repeat, while k < len
 
-     while (k < len) {
 
-       var kValue;
 
-       // 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. Call the Call internal method of callback with T as the this value and
 
-         // argument list containing kValue, k, and O.
 
-         callback.call(T, kValue, k, O);
 
-       }
 
-       // d. Increase k by 1.
 
-       k++;
 
-     }
 
-     // 8. return undefined
 
-   };
 
- }
 
- if (!Array.isArray) {
 
-   Array.isArray = function(arg) {
 
-     return Object.prototype.toString.call(arg) === '[object Array]';
 
-   };
 
- }
 
- if (!Array.prototype.map) {
 
-   Array.prototype.map = function(callback, thisArg) {
 
-     var T, A, k;
 
-     if (this == null) {
 
-       throw new TypeError(' this is null or not defined');
 
-     }
 
-     // 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 (typeof callback !== 'function') {
 
-       throw new TypeError(callback + ' is not a function');
 
-     }
 
-     // 5. If thisArg was supplied, let T be thisArg; else let T be undefined.
 
-     if (arguments.length > 1) {
 
-       T = thisArg;
 
-     }
 
-     // 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);
 
-     // 7. Let k be 0
 
-     k = 0;
 
-     // 8. Repeat, while k < len
 
-     while (k < len) {
 
-       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;
 
-       }
 
-       // d. Increase k by 1.
 
-       k++;
 
-     }
 
-     // 9. return A
 
-     return A;
 
-   };
 
- }
 
 
  |