ie-compat 0.1.0 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 9b4f7088415a7dc8f035348ed81fc0d592b08348
4
- data.tar.gz: f9ea8270545de0717d1c088c021263b4515671b3
3
+ metadata.gz: c590aad440dd95ee526a2df9328810c8a4f289b4
4
+ data.tar.gz: 83adebe068eba3126fcf1abed667f02085ea868a
5
5
  SHA512:
6
- metadata.gz: 0289991b634aa58900ebe7e86ae9f3177316d0240393891662176a48d765815b705a84cc639f368176382ceeac5f4bca9d477fb6dffe6d6b1faa67ca6659b631
7
- data.tar.gz: 328c0d7d2abe4529b7b34848cd6fb96fc7e000619d3e500d780c5d36e8af3e23f2ff1283b63609c90f1c43ebd5441c931f9ba841a387ca727d1c293e731b5fcc
6
+ metadata.gz: e1f25390b2c4cc080dfc2e8a96135dd8c8a84bdb6cd088f8b39d682dc0faa696d21fa3bb7fab88505c468ef13006bcb17180bf92a6ebbb3fa0969f5085d6e0d1
7
+ data.tar.gz: 811fb00553e1516791499255137fdf51555de67dce17b8ccec27d6c14e99cd56c403c2c1e039aafaa4ce83083bc4d9b99c11e54c9f1306f7b1cd7b6de82c8ea1
@@ -0,0 +1,63 @@
1
+ // From https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/every#Browser_compatibility
2
+ // Production steps of ECMA-262, Edition 5, 15.4.4.16
3
+ // Reference: http://es5.github.com/#x15.4.4.16
4
+ if (!Array.prototype.every) {
5
+
6
+ Array.prototype.every = function every(callback, thisArg) {
7
+ 'use strict';
8
+ var T, k;
9
+
10
+ if (this == null) {
11
+ throw new TypeError("this is null or not defined");
12
+ }
13
+
14
+ var kValue,
15
+ // 1. Let O be the result of calling ToObject passing the |this| value as the argument.
16
+ O = Object(this),
17
+
18
+ // 2. Let lenValue be the result of calling the Get internal method of O with the argument "length".
19
+ // 3. Let len be ToUint32(lenValue).
20
+ len = O.length >>> 0; // Hack to convert O.length to a UInt32
21
+
22
+ // 4. If IsCallable(callback) is false, throw a TypeError exception.
23
+ // See: http://es5.github.com/#x9.11
24
+ if ({}.toString.call(callback) !== "[object Function]") {
25
+ throw new TypeError(callback + " is not a function");
26
+ }
27
+
28
+ // 5. If thisArg was supplied, let T be thisArg; else let T be undefined.
29
+ if (arguments.length >= 2) {
30
+ T = thisArg;
31
+ }
32
+
33
+ // 6. Let k be 0
34
+ k = 0;
35
+
36
+ // 7. Repeat, while k < len
37
+ while (k < len) {
38
+
39
+ // a. Let Pk be ToString(k).
40
+ // This is implicit for LHS operands of the in operator
41
+ // b. Let kPresent be the result of calling the HasProperty internal method of O with argument Pk.
42
+ // This step can be combined with c
43
+ // c. If kPresent is true, then
44
+ if (k in O) {
45
+
46
+ // i. Let kValue be the result of calling the Get internal method of O with argument Pk.
47
+ kValue = O[k];
48
+
49
+ // ii. Let testResult be the result of calling the [[Call]] internal method of callbackfn
50
+ // with T as the this value and argument list containing kValue, k, and O.
51
+ // iii. If ToBoolean(testResult) is false, return false.
52
+ // the steps above can be rewritten as
53
+ if(!!callback.call(T, kValue, k, O) === false)
54
+ return false;
55
+
56
+ }
57
+ // d. Increase k by 1
58
+ k++;
59
+ }
60
+ // 8. return true
61
+ return (true);
62
+ };
63
+ }
@@ -0,0 +1,75 @@
1
+ // From https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter#Browser_compatibility
2
+ // Production steps of ECMA-262, Edition 5, 15.4.4.20
3
+ // Reference: http://es5.github.com/#x15.4.4.20
4
+ if (!Array.prototype.filter) {
5
+
6
+ Array.prototype.filter = function filter(callback, thisArg) {
7
+ 'use strict';
8
+ var T, k, to;
9
+
10
+ if (this == null) {
11
+ throw new TypeError("this is null or not defined");
12
+ }
13
+
14
+ var kValue,
15
+ // 1. Let O be the result of calling ToObject passing the |this| value as the argument.
16
+ O = Object(this),
17
+
18
+ // 2. Let lenValue be the result of calling the Get internal method of O with the argument "length".
19
+ // 3. Let len be ToUint32(lenValue).
20
+ len = O.length >>> 0; // Hack to convert O.length to a UInt32
21
+
22
+ // 4. If IsCallable(callback) is false, throw a TypeError exception.
23
+ // See: http://es5.github.com/#x9.11
24
+ if ({}.toString.call(callback) !== "[object Function]") {
25
+ throw new TypeError(callback + " is not a function");
26
+ }
27
+
28
+ // 5. If thisArg was supplied, let T be thisArg; else let T be undefined.
29
+ if (arguments.length >= 2) {
30
+ T = thisArg;
31
+ }
32
+
33
+ // 6. Let A be a new array created as if by the expression new Array( len)
34
+ var A = new Array();
35
+
36
+ // 7. Let k be 0
37
+ k = 0;
38
+
39
+ // 8. Let to be 0.
40
+ to = 0;
41
+
42
+ // 9. Repeat, while k < len
43
+ while (k < len) {
44
+
45
+ // a. Let Pk be ToString(k).
46
+ // This is implicit for LHS operands of the in operator
47
+ // b. Let kPresent be the result of calling the HasProperty internal method of O with argument Pk.
48
+ // This step can be combined with c
49
+ // c. If kPresent is true, then
50
+ if (k in O) {
51
+
52
+ // i. Let kValue be the result of calling the Get internal method of O with argument Pk.
53
+ kValue = O[k];
54
+
55
+ // ii. Let selected be the result of calling the [[Call]] internal method of callbackfn
56
+ // with T as the this value and argument list containing kValue, k, and O.
57
+ var selected = callback.call(T, kValue, k, O);
58
+
59
+ // iii. If ToBoolean(selected) is true, then
60
+ if(!!selected === true) {
61
+ // 1. Call the [[DefineOwnProperty]] internal method of A with arguments ToString(to), Property Descriptor
62
+ // {[[Value]]: kValue, [[Writable]]: true, [[Enumerable]]: true, [[Configurable]]: true}, and false.
63
+ // not 100% compliant, but defineProperty is not available on IE < 9
64
+ A.push(kValue);
65
+ // 2. Increase to by 1
66
+ to++;
67
+ }
68
+ }
69
+ // d. Increase k by 1
70
+ k++;
71
+ }
72
+ // 10. return A
73
+ return (A);
74
+ };
75
+ }
@@ -0,0 +1,74 @@
1
+ // From https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/indexOf#Browser_compatibility
2
+ // Production steps of ECMA-262, Edition 5, 15.4.4.14
3
+ // Reference: http://es5.github.com/#x15.4.4.14
4
+ if (!Array.prototype.indexOf) {
5
+
6
+ Array.prototype.indexOf = function indexOf(searchElement, fromIndex) {
7
+ 'use strict';
8
+ var T, k, n = 0;
9
+
10
+ if (this == null) {
11
+ throw new TypeError("this is null or not defined");
12
+ }
13
+
14
+ var kValue,
15
+ // 1. Let O be the result of calling ToObject passing the |this| value as the argument.
16
+ O = Object(this),
17
+
18
+ // 2. Let lenValue be the result of calling the Get internal method of O with the argument "length".
19
+ // 3. Let len be ToUint32(lenValue).
20
+ len = O.length >>> 0; // Hack to convert O.length to a UInt32
21
+
22
+ // 4. If len is 0, return -1.
23
+ if(len === 0)
24
+ return -1;
25
+
26
+ // 5. If argument fromIndex was passed let n be ToInteger(fromIndex); else let n be 0.
27
+ if (arguments.length >= 2) {
28
+ n = fromIndex | 0; // convert fromIndex to int.If it's NaN, the result is 0 (http://es5.github.io/#x9.4)
29
+ }
30
+
31
+ // 6. If n ≥ len, return -1.
32
+ if(n >= len) {
33
+ return -1;
34
+ }
35
+
36
+ // 7. If n ≥ 0, then
37
+ // a. Let k be n.
38
+ if(n >= 0) {
39
+ k = n;
40
+ } else {
41
+ // 8. Else, n<0
42
+ // a. Let k be len - abs(n).
43
+ k = len - (Math.abs(n));
44
+ // b. If k is less than 0, then let k be 0.
45
+ if(k < 0) {
46
+ k = 0
47
+ }
48
+ }
49
+
50
+ // 9. Repeat, while k < len
51
+ while (k < len) {
52
+
53
+ // a. Let kPresent be the result of calling the HasProperty internal method of O with argument Pk.
54
+ // This step can be combined with b
55
+ // b. If kPresent is true, then
56
+ if (k in O) {
57
+
58
+ // i. Let kValue be the result of calling the Get internal method of O with argument Pk.
59
+ kValue = O[k];
60
+
61
+ // ii. Let same be the result of applying the Strict Equality Comparison Algorithm to searchElement and elementK.
62
+ // iii. If same is true, return k.
63
+ // combine the two steps together
64
+ if(searchElement === kValue) {
65
+ return k;
66
+ }
67
+ }
68
+ // c. Increase k by 1
69
+ k++;
70
+ }
71
+ // 10. return -1
72
+ return (-1);
73
+ };
74
+ }
@@ -0,0 +1,66 @@
1
+ // From https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/lastIndexOf#Browser_compatibility
2
+ // Production steps of ECMA-262, Edition 5, 15.4.4.15
3
+ // Reference: http://es5.github.com/#x15.4.4.15
4
+ if (!Array.prototype.lastIndexOf) {
5
+
6
+ Array.prototype.lastIndexOf = function lastIndexOf(searchElement, fromIndex) {
7
+ 'use strict';
8
+ var T, k, n ;
9
+
10
+ if (this == null) {
11
+ throw new TypeError("this is null or not defined");
12
+ }
13
+
14
+ var kValue,
15
+ // 1. Let O be the result of calling ToObject passing the |this| value as the argument.
16
+ O = Object(this),
17
+
18
+ // 2. Let lenValue be the result of calling the Get internal method of O with the argument "length".
19
+ // 3. Let len be ToUint32(lenValue).
20
+ len = O.length >>> 0; // Hack to convert O.length to a UInt32
21
+
22
+ // 4. If len is 0, return -1.
23
+ if(len === 0)
24
+ return -1;
25
+
26
+ // 5. If argument fromIndex was passed let n be ToInteger(fromIndex); else let n be len.
27
+ if (arguments.length >= 2) {
28
+ n = fromIndex | 0; // convert fromIndex to int.If it's NaN, the result is 0 (http://es5.github.io/#x9.4)
29
+ } else {
30
+ n = len;
31
+ }
32
+
33
+ // 6. If n ≥ 0, then let k be min(n, len – 1).
34
+ if(n >= 0) {
35
+ k = Math.min(n, len - 1);
36
+ } else {
37
+ // 7. Else, n<0
38
+ // a. Let k be len - abs(n).
39
+ k = len - (Math.abs(n));
40
+ }
41
+
42
+ // 8. Repeat, while k >= 0
43
+ while (k >= 0) {
44
+
45
+ // a. Let kPresent be the result of calling the HasProperty internal method of O with argument Pk.
46
+ // This step can be combined with b
47
+ // b. If kPresent is true, then
48
+ if (k in O) {
49
+
50
+ // i. Let kValue be the result of calling the Get internal method of O with argument Pk.
51
+ kValue = O[k];
52
+
53
+ // ii. Let same be the result of applying the Strict Equality Comparison Algorithm to searchElement and elementK.
54
+ // iii. If same is true, return k.
55
+ // combine the two steps together
56
+ if(searchElement === kValue) {
57
+ return k;
58
+ }
59
+ }
60
+ // c. Decrease k by 1
61
+ k--;
62
+ }
63
+ // 9. return -1
64
+ return (-1);
65
+ };
66
+ }
@@ -0,0 +1,67 @@
1
+ // From https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map#Browser_compatibility
2
+ // Production steps of ECMA-262, Edition 5, 15.4.4.19
3
+ // Reference: http://es5.github.com/#x15.4.4.19
4
+ if (!Array.prototype.map) {
5
+
6
+ Array.prototype.map = function map(callback, thisArg) {
7
+ 'use strict';
8
+ var T, k;
9
+
10
+ if (this == null) {
11
+ throw new TypeError("this is null or not defined");
12
+ }
13
+
14
+ var kValue,
15
+ // 1. Let O be the result of calling ToObject passing the |this| value as the argument.
16
+ O = Object(this),
17
+
18
+ // 2. Let lenValue be the result of calling the Get internal method of O with the argument "length".
19
+ // 3. Let len be ToUint32(lenValue).
20
+ len = O.length >>> 0; // Hack to convert O.length to a UInt32
21
+
22
+ // 4. If IsCallable(callback) is false, throw a TypeError exception.
23
+ // See: http://es5.github.com/#x9.11
24
+ if ({}.toString.call(callback) !== "[object Function]") {
25
+ throw new TypeError(callback + " is not a function");
26
+ }
27
+
28
+ // 5. If thisArg was supplied, let T be thisArg; else let T be undefined.
29
+ if (arguments.length >= 2) {
30
+ T = thisArg;
31
+ }
32
+
33
+ // 6. Let A be a new array created as if by the expression new Array( len)
34
+ var A = new Array(len);
35
+
36
+ // 7. Let k be 0
37
+ k = 0;
38
+
39
+ // 8. Repeat, while k < len
40
+ while (k < len) {
41
+
42
+ // a. Let Pk be ToString(k).
43
+ // This is implicit for LHS operands of the in operator
44
+ // b. Let kPresent be the result of calling the HasProperty internal method of O with argument Pk.
45
+ // This step can be combined with c
46
+ // c. If kPresent is true, then
47
+ if (k in O) {
48
+
49
+ // i. Let kValue be the result of calling the Get internal method of O with argument Pk.
50
+ kValue = O[k];
51
+
52
+ // ii. Let mappedValue be the result of calling the [[Call]] internal method of callbackfn
53
+ // with T as the this value and argument list containing kValue, k, and O.
54
+ var mappedValue = callback.call(T, kValue, k, O);
55
+
56
+ // iii. Call the [[DefineOwnProperty]] internal method of A with arguments Pk, Property Descriptor
57
+ // {[[Value]]: mappedValue, [[Writable]]: true, [[Enumerable]]: true, [[Configurable]]: true}, and false.
58
+ // not 100% compliant implementation, but defineProperty is not supported in IE < 9
59
+ A[k] = mappedValue;
60
+ }
61
+ // d. Increase k by 1.
62
+ k++;
63
+ }
64
+ // 9. return A
65
+ return (A);
66
+ };
67
+ }
@@ -0,0 +1,97 @@
1
+ // From https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/reduce#Browser_compatibility
2
+ // Production steps of ECMA-262, Edition 5, 15.4.4.21
3
+ // Reference: http://es5.github.com/#x15.4.4.21
4
+
5
+ if (!Array.prototype.reduce) {
6
+
7
+ Array.prototype.reduce = function reduce(callback, initialValue) {
8
+ 'use strict';
9
+ var T, k;
10
+
11
+ if (this == null) {
12
+ throw new TypeError("this is null or not defined");
13
+ }
14
+
15
+ var kValue,
16
+ // 1. Let O be the result of calling ToObject passing the |this| value as the argument.
17
+ O = Object(this),
18
+
19
+ // 2. Let lenValue be the result of calling the Get internal method of O with the argument "length".
20
+ // 3. Let len be ToUint32(lenValue).
21
+ len = O.length >>> 0; // Hack to convert O.length to a UInt32
22
+
23
+ // 4. If IsCallable(callback) is false, throw a TypeError exception.
24
+ // See: http://es5.github.com/#x9.11
25
+ if ({}.toString.call(callback) !== "[object Function]") {
26
+ throw new TypeError(callback + " is not a function");
27
+ }
28
+
29
+ // 5. If len is 0 and initialValue is not present, throw a TypeError exception.
30
+ if(len === 0 && arguments.length < 2) {
31
+ throw new TypeError("Reduce of empty array with no initial value");
32
+ }
33
+
34
+ // 6. Let k be 0
35
+ k = 0;
36
+
37
+ var accumulator;
38
+ // 7. If initialValue is present, then
39
+ if(arguments.length > 1) {
40
+ // a. Set accumulator to initialValue.
41
+ accumulator = initialValue;
42
+ } else {
43
+ // NOTE: verbose but correct implementation
44
+ // 8. Else, initialValue is not present
45
+ // a. Let kPresent be false.
46
+ var kPresent = false;
47
+
48
+ // b. Repeat, while kPresent is false and k < len
49
+ while(kPresent === false && k < len) {
50
+ // i. Let Pk be ToString(k).
51
+ // This is implicit for LHS operands of the in operator
52
+ // ii. Let kPresent be the result of calling the [[HasProperty]] internal method of O with argument Pk.
53
+ kPresent = (k in O);
54
+ // iii. If kPresent is true, then
55
+ if(kPresent === true) {
56
+ // 1. Let accumulator be the result of calling the [[Get]] internal method of O with argument Pk.
57
+ accumulator = O[k];
58
+ }
59
+
60
+ // iv. Increase k by 1.
61
+ k++;
62
+ }
63
+
64
+ // c. If kPresent is false, throw a TypeError exception.
65
+ if(kPresent === false) {
66
+ throw new TypeError("Reduce of empty array with no initial value");
67
+ }
68
+
69
+ }
70
+
71
+ // 7. Repeat, while k < len
72
+ while (k < len) {
73
+
74
+ // a. Let Pk be ToString(k).
75
+ // This is implicit for LHS operands of the in operator
76
+ // b. Let kPresent be the result of calling the HasProperty internal method of O with argument Pk.
77
+ // This step can be combined with c
78
+ // c. If kPresent is true, then
79
+ if (k in O) {
80
+
81
+ // i. Let kValue be the result of calling the Get internal method of O with argument Pk.
82
+ kValue = O[k];
83
+
84
+ // ii. Let accumulator be the result of calling the [[Call]] internal method of callbackfn
85
+ // with undefined as the this value and argument list containing accumulator, kValue, k, and O.
86
+ accumulator = callback.call(undefined, accumulator, kValue, k, O);
87
+ }
88
+ // d. Increase k by 1.
89
+ k++;
90
+ }
91
+ // 10. Return accumulator
92
+ return accumulator;
93
+ };
94
+
95
+ // default reduce behaviour is to reduce to the left
96
+ Array.prototype.reduceLeft = Array.prototype.reduce;
97
+ }
@@ -0,0 +1,94 @@
1
+ // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/reduceRightRight#Browser_compatibility
2
+ // Production steps of ECMA-262, Edition 5, 15.4.4.22
3
+ // Reference: http://es5.github.com/#x15.4.4.22
4
+
5
+ if (!Array.prototype.reduceRight) {
6
+
7
+ Array.prototype.reduceRight = function reduceRight(callback, initialValue) {
8
+ 'use strict';
9
+ var T, k;
10
+
11
+ if (this == null) {
12
+ throw new TypeError("this is null or not defined");
13
+ }
14
+
15
+ var kValue,
16
+ // 1. Let O be the result of calling ToObject passing the |this| value as the argument.
17
+ O = Object(this),
18
+
19
+ // 2. Let lenValue be the result of calling the Get internal method of O with the argument "length".
20
+ // 3. Let len be ToUint32(lenValue).
21
+ len = O.length >>> 0; // Hack to convert O.length to a UInt32
22
+
23
+ // 4. If IsCallable(callback) is false, throw a TypeError exception.
24
+ // See: http://es5.github.com/#x9.11
25
+ if ({}.toString.call(callback) !== "[object Function]") {
26
+ throw new TypeError(callback + " is not a function");
27
+ }
28
+
29
+ // 5. If len is 0 and initialValue is not present, throw a TypeError exception.
30
+ if(len === 0 && arguments.length < 2) {
31
+ throw new TypeError("Reduce of empty array with no initial value");
32
+ }
33
+
34
+ // 6. Let k be len-1
35
+ k = len-1;
36
+
37
+ var accumulator;
38
+ // 7. If initialValue is present, then
39
+ if(arguments.length > 1) {
40
+ // a. Set accumulator to initialValue.
41
+ accumulator = initialValue;
42
+ } else {
43
+ // NOTE: verbose but correct implementation
44
+ // 8. Else, initialValue is not present
45
+ // a. Let kPresent be false.
46
+ var kPresent = false;
47
+
48
+ // b. Repeat, while kPresent is false and k ≥ 0
49
+ while(kPresent === false && k >= 0) {
50
+ // i. Let Pk be ToString(k).
51
+ // This is implicit for LHS operands of the in operator
52
+ // ii. Let kPresent be the result of calling the [[HasProperty]] internal method of O with argument Pk.
53
+ kPresent = (k in O);
54
+ // iii. If kPresent is true, then
55
+ if(kPresent === true) {
56
+ // 1. Let accumulator be the result of calling the [[Get]] internal method of O with argument Pk.
57
+ accumulator = O[k];
58
+ }
59
+
60
+ // iv. Decrease k by 1.
61
+ k--;
62
+ }
63
+
64
+ // c. If kPresent is false, throw a TypeError exception.
65
+ if(kPresent === false) {
66
+ throw new TypeError("Reduce of empty array with no initial value");
67
+ }
68
+
69
+ }
70
+
71
+ // 7. Repeat, while k >= 0
72
+ while (k >= 0) {
73
+
74
+ // a. Let Pk be ToString(k).
75
+ // This is implicit for LHS operands of the in operator
76
+ // b. Let kPresent be the result of calling the HasProperty internal method of O with argument Pk.
77
+ // This step can be combined with c
78
+ // c. If kPresent is true, then
79
+ if (k in O) {
80
+
81
+ // i. Let kValue be the result of calling the Get internal method of O with argument Pk.
82
+ kValue = O[k];
83
+
84
+ // ii. Let accumulator be the result of calling the [[Call]] internal method of callbackfn
85
+ // with undefined as the this value and argument list containing accumulator, kValue, k, and O.
86
+ accumulator = callback.call(undefined, accumulator, kValue, k, O);
87
+ }
88
+ // d. Decrease k by 1.
89
+ k--;
90
+ }
91
+ // 10. Return accumulator
92
+ return accumulator;
93
+ };
94
+ }
@@ -0,0 +1,63 @@
1
+ // From https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/some#Browser_compatibility
2
+ // Production steps of ECMA-262, Edition 5, 15.4.4.17
3
+ // Reference: http://es5.github.com/#x15.4.4.17
4
+ if (!Array.prototype.some) {
5
+
6
+ Array.prototype.some = function some(callback, thisArg) {
7
+ 'use strict';
8
+ var T, k;
9
+
10
+ if (this == null) {
11
+ throw new TypeError("this is null or not defined");
12
+ }
13
+
14
+ var kValue,
15
+ // 1. Let O be the result of calling ToObject passing the |this| value as the argument.
16
+ O = Object(this),
17
+
18
+ // 2. Let lenValue be the result of calling the Get internal method of O with the argument "length".
19
+ // 3. Let len be ToUint32(lenValue).
20
+ len = O.length >>> 0; // Hack to convert O.length to a UInt32
21
+
22
+ // 4. If IsCallable(callback) is false, throw a TypeError exception.
23
+ // See: http://es5.github.com/#x9.11
24
+ if ({}.toString.call(callback) !== "[object Function]") {
25
+ throw new TypeError(callback + " is not a function");
26
+ }
27
+
28
+ // 5. If thisArg was supplied, let T be thisArg; else let T be undefined.
29
+ if (arguments.length >= 2) {
30
+ T = thisArg;
31
+ }
32
+
33
+ // 6. Let k be 0
34
+ k = 0;
35
+
36
+ // 7. Repeat, while k < len
37
+ while (k < len) {
38
+
39
+ // a. Let Pk be ToString(k).
40
+ // This is implicit for LHS operands of the in operator
41
+ // b. Let kPresent be the result of calling the HasProperty internal method of O with argument Pk.
42
+ // This step can be combined with c
43
+ // c. If kPresent is true, then
44
+ if (k in O) {
45
+
46
+ // i. Let kValue be the result of calling the Get internal method of O with argument Pk.
47
+ kValue = O[k];
48
+
49
+ // ii. Let testResult be the result of calling the [[Call]] internal method of callbackfn
50
+ // with T as the this value and argument list containing kValue, k, and O.
51
+ // iii. If ToBoolean(testResult) is true, return true.
52
+ // the steps above can be rewritten as
53
+ if(!!callback.call(T, kValue, k, O) === true)
54
+ return true;
55
+
56
+ }
57
+ // d. Increase k by 1
58
+ k++;
59
+ }
60
+ // 8. return false
61
+ return (false);
62
+ };
63
+ }
@@ -0,0 +1,11 @@
1
+ //= require ie-compat/console
2
+ //= require ie-compat/function_bind
3
+ //= require ie-compat/array_every
4
+ //= require ie-compat/array_filter
5
+ //= require ie-compat/array_foreach
6
+ //= require ie-compat/array_indexof
7
+ //= require ie-compat/array_lastindexof
8
+ //= require ie-compat/array_map
9
+ //= require ie-compat/array_reduce
10
+ //= require ie-compat/array_reduceright
11
+ //= require ie-compat/array_some
File without changes
File without changes
File without changes
File without changes
File without changes
data/lib/ie/compat.rb CHANGED
@@ -2,5 +2,5 @@ require 'ie/compat/version'
2
2
  require 'ie/compat/assets_path'
3
3
  require 'ie/compat/sprockets'
4
4
  require 'ie/compat/opal'
5
- require 'ie/compat/railtie'
5
+ require 'ie/compat/engine'
6
6
 
@@ -1,6 +1,6 @@
1
1
  module IE
2
2
  module Compat
3
- class Railtie < ::Rails::Railtie
3
+ class Engine < ::Rails::Engine
4
4
  config.ie_compat = ActiveSupport::OrderedOptions.new
5
5
 
6
6
  initializer 'ie-compat.initialize' do
@@ -1,5 +1,5 @@
1
1
  module IE
2
2
  module Compat
3
- VERSION = "0.1.0"
3
+ VERSION = '0.1.1'
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ie-compat
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Elia Schito
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-04-17 00:00:00.000000000 Z
11
+ date: 2014-06-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -51,21 +51,29 @@ files:
51
51
  - LICENSE.txt
52
52
  - README.md
53
53
  - Rakefile
54
- - assets/ie-compat/9.js
55
- - assets/ie-compat/array_foreach.js
56
- - assets/ie-compat/console.js
57
- - assets/ie-compat/function_bind.js
58
- - assets/ie-compat/lt-9.js
59
- - assets/ie-compat/vendor/html5shiv-printshiv.js
60
- - assets/ie-compat/vendor/html5shiv.js
61
- - assets/ie-compat/vendor/json2.js
62
- - assets/ie-compat/vendor/selectivizr-min.js
54
+ - assets/ie-compat/array_every.js
55
+ - assets/ie-compat/array_filter.js
56
+ - assets/ie-compat/array_indexof.js
57
+ - assets/ie-compat/array_lastindexof.js
58
+ - assets/ie-compat/array_map.js
59
+ - assets/ie-compat/array_reduce.js
60
+ - assets/ie-compat/array_reduceright.js
61
+ - assets/ie-compat/array_some.js
63
62
  - ie-compat.gemspec
63
+ - lib/assets/ie-compat/9.js
64
+ - lib/assets/ie-compat/array_foreach.js
65
+ - lib/assets/ie-compat/console.js
66
+ - lib/assets/ie-compat/function_bind.js
67
+ - lib/assets/ie-compat/lt-9.js
68
+ - lib/assets/ie-compat/vendor/html5shiv-printshiv.js
69
+ - lib/assets/ie-compat/vendor/html5shiv.js
70
+ - lib/assets/ie-compat/vendor/json2.js
71
+ - lib/assets/ie-compat/vendor/selectivizr-min.js
64
72
  - lib/ie/compat.rb
65
73
  - lib/ie/compat/active_admin.rb
66
74
  - lib/ie/compat/assets_path.rb
75
+ - lib/ie/compat/engine.rb
67
76
  - lib/ie/compat/opal.rb
68
- - lib/ie/compat/railtie.rb
69
77
  - lib/ie/compat/sprockets.rb
70
78
  - lib/ie/compat/version.rb
71
79
  - lib/ie/compat/view_helper.rb
@@ -1,3 +0,0 @@
1
- //= require ie-compat/function_bind
2
- //= require ie-compat/array_foreach
3
- //= require ie-compat/console