1
1
/* global chai, describe, it, window */
2
2
3
- var slug = ( typeof window !== 'undefined' && window . slug ) || require ( '../slug' )
4
- var assert = typeof chai === 'undefined' ? require ( 'assert' ) : chai . assert
3
+ const slug = ( typeof window !== 'undefined' && window . slug ) || require ( '../slug' )
4
+ const assert = typeof chai === 'undefined' ? require ( 'assert' ) : chai . assert
5
5
6
6
// IE11 polyfill
7
7
if ( ! Array . from ) {
8
8
Array . from = ( function ( ) {
9
- var symbolIterator
9
+ let symbolIterator
10
10
try {
11
11
symbolIterator = Symbol . iterator
12
12
? Symbol . iterator
@@ -15,33 +15,33 @@ if (!Array.from) {
15
15
symbolIterator = 'Symbol(Symbol.iterator)'
16
16
}
17
17
18
- var toStr = Object . prototype . toString
19
- var isCallable = function ( fn ) {
18
+ const toStr = Object . prototype . toString
19
+ const isCallable = function ( fn ) {
20
20
return (
21
21
typeof fn === 'function' ||
22
22
toStr . call ( fn ) === '[object Function]'
23
23
)
24
24
}
25
- var toInteger = function ( value ) {
26
- var number = Number ( value )
25
+ const toInteger = function ( value ) {
26
+ const number = Number ( value )
27
27
if ( isNaN ( number ) ) return 0
28
28
if ( number === 0 || ! isFinite ( number ) ) return number
29
29
return ( number > 0 ? 1 : - 1 ) * Math . floor ( Math . abs ( number ) )
30
30
}
31
- var maxSafeInteger = Math . pow ( 2 , 53 ) - 1
32
- var toLength = function ( value ) {
33
- var len = toInteger ( value )
31
+ const maxSafeInteger = Math . pow ( 2 , 53 ) - 1
32
+ const toLength = function ( value ) {
33
+ const len = toInteger ( value )
34
34
return Math . min ( Math . max ( len , 0 ) , maxSafeInteger )
35
35
}
36
36
37
- var setGetItemHandler = function setGetItemHandler ( isIterator , items ) {
38
- var iterator = isIterator && items [ symbolIterator ] ( )
37
+ const setGetItemHandler = function setGetItemHandler ( isIterator , items ) {
38
+ const iterator = isIterator && items [ symbolIterator ] ( )
39
39
return function getItem ( k ) {
40
40
return isIterator ? iterator . next ( ) : items [ k ]
41
41
}
42
42
}
43
43
44
- var getArray = function getArray (
44
+ const getArray = function getArray (
45
45
T ,
46
46
A ,
47
47
len ,
@@ -50,13 +50,13 @@ if (!Array.from) {
50
50
mapFn
51
51
) {
52
52
// 16. Let k be 0.
53
- var k = 0
53
+ let k = 0
54
54
55
55
// 17. Repeat, while k < len… or while iterator is done (also steps a - h)
56
56
// eslint-disable-next-line no-unmodified-loop-condition
57
57
while ( k < len || isIterator ) {
58
- var item = getItem ( k )
59
- var kValue = isIterator ? item . value : item
58
+ const item = getItem ( k )
59
+ const kValue = isIterator ? item . value : item
60
60
61
61
if ( isIterator && item . done ) {
62
62
return A
@@ -87,11 +87,11 @@ if (!Array.from) {
87
87
// The length property of the from method is 1.
88
88
return function from ( arrayLikeOrIterator /*, mapFn, thisArg */ ) {
89
89
// 1. Let C be the this value.
90
- var C = this
90
+ const C = this
91
91
92
92
// 2. Let items be ToObject(arrayLikeOrIterator).
93
- var items = Object ( arrayLikeOrIterator )
94
- var isIterator = isCallable ( items [ symbolIterator ] )
93
+ const items = Object ( arrayLikeOrIterator )
94
+ const isIterator = isCallable ( items [ symbolIterator ] )
95
95
96
96
// 3. ReturnIfAbrupt(items).
97
97
if ( arrayLikeOrIterator == null && ! isIterator ) {
@@ -102,8 +102,8 @@ if (!Array.from) {
102
102
103
103
// 4. If mapfn is undefined, then let mapping be false.
104
104
// eslint-disable-next-line no-void
105
- var mapFn = arguments . length > 1 ? arguments [ 1 ] : void undefined
106
- var T
105
+ const mapFn = arguments . length > 1 ? arguments [ 1 ] : void undefined
106
+ let T
107
107
if ( typeof mapFn !== 'undefined' ) {
108
108
// 5. else
109
109
// 5. a If IsCallable(mapfn) is false, throw a TypeError exception.
@@ -121,13 +121,13 @@ if (!Array.from) {
121
121
122
122
// 10. Let lenValue be Get(items, "length").
123
123
// 11. Let len be ToLength(lenValue).
124
- var len = toLength ( items . length )
124
+ const len = toLength ( items . length )
125
125
126
126
// 13. If IsConstructor(C) is true, then
127
127
// 13. a. Let A be the result of calling the [[Construct]] internal method
128
128
// of C with an argument list containing the single item len.
129
129
// 14. a. Else, Let A be ArrayCreate(len).
130
- var A = isCallable ( C ) ? Object ( new C ( len ) ) : new Array ( len )
130
+ const A = isCallable ( C ) ? Object ( new C ( len ) ) : new Array ( len )
131
131
132
132
return getArray (
133
133
T ,
0 commit comments