File tree Expand file tree Collapse file tree 2 files changed +73
-0
lines changed Expand file tree Collapse file tree 2 files changed +73
-0
lines changed Original file line number Diff line number Diff line change
1
+ /*
2
+
3
+ Source of the polyfill: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/reduce#Polyfill
4
+
5
+ */
6
+
7
+ if ( ! Array . prototype . reduce ) {
8
+
9
+ Array . prototype . reduce = function ( callback ) {
10
+ 'use strict' ;
11
+ if ( this == null ) {
12
+ throw new TypeError ( 'Array.prototype.reduce called on null or undefined' ) ;
13
+ }
14
+ if ( typeof callback !== 'function' ) {
15
+ throw new TypeError ( callback + ' is not a function' ) ;
16
+ }
17
+ var t = Object ( this ) , len = t . length >>> 0 , k = 0 , value ;
18
+ if ( arguments . length == 2 ) {
19
+ value = arguments [ 1 ] ;
20
+ } else {
21
+ while ( k < len && ! ( k in t ) ) {
22
+ k ++ ;
23
+ }
24
+ if ( k >= len ) {
25
+ throw new TypeError ( 'Reduce of empty array with no initial value' ) ;
26
+ }
27
+ value = t [ k ++ ] ;
28
+ }
29
+ for ( ; k < len ; k ++ ) {
30
+ if ( k in t ) {
31
+ value = callback ( value , t [ k ] , k , t ) ;
32
+ }
33
+ }
34
+ return value ;
35
+ } ;
36
+ }
Original file line number Diff line number Diff line change @@ -78,6 +78,43 @@ if (!Array.from) {
78
78
} ( ) ) ;
79
79
}
80
80
81
+ //reduce.js
82
+ /*
83
+ Source of the polyfill:
84
+ https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/reduce#Polyfill
85
+
86
+ */
87
+
88
+ if ( ! Array . prototype . reduce ) {
89
+
90
+ Array . prototype . reduce = function ( callback ) {
91
+ 'use strict' ;
92
+ if ( this == null ) {
93
+ throw new TypeError ( 'Array.prototype.reduce called on null or undefined' ) ;
94
+ }
95
+ if ( typeof callback !== 'function' ) {
96
+ throw new TypeError ( callback + ' is not a function' ) ;
97
+ }
98
+ var t = Object ( this ) , len = t . length >>> 0 , k = 0 , value ;
99
+ if ( arguments . length == 2 ) {
100
+ value = arguments [ 1 ] ;
101
+ } else {
102
+ while ( k < len && ! ( k in t ) ) {
103
+ k ++ ;
104
+ }
105
+ if ( k >= len ) {
106
+ throw new TypeError ( 'Reduce of empty array with no initial value' ) ;
107
+ }
108
+ value = t [ k ++ ] ;
109
+ }
110
+ for ( ; k < len ; k ++ ) {
111
+ if ( k in t ) {
112
+ value = callback ( value , t [ k ] , k , t ) ;
113
+ }
114
+ }
115
+ return value ;
116
+ } ;
117
+ }
81
118
//assign.js
82
119
/**
83
120
* https://gist.github.com/WebReflection/10404826
You can’t perform that action at this time.
0 commit comments