@@ -27,7 +27,7 @@ <h1>underscore.js</h1>
27
27
< div class ="pilwrap ">
28
28
< a class ="pilcrow " href ="#section-1 "> ¶</ a >
29
29
</ div >
30
- < pre > < code > Underscore.js < span class ="hljs-number "> 1.9</ span > < span class ="hljs-number "> .0 </ span >
30
+ < pre > < code > Underscore.js < span class ="hljs-number "> 1.9</ span > < span class ="hljs-number "> .1 </ span >
31
31
http:< span class ="hljs-comment "> //underscorejs.org</ span >
32
32
(c) < span class ="hljs-number "> 2009</ span > < span class ="hljs-number "> -2018</ span > Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
33
33
Underscore may be freely distributed under the MIT license.
@@ -222,7 +222,7 @@ <h2 id="baseline-setup">Baseline setup</h2>
222
222
223
223
</ div >
224
224
225
- < div class ="content "> < div class ='highlight '> < pre > _.VERSION = < span class ="hljs-string "> '1.9.0 '</ span > ;</ pre > </ div > </ div >
225
+ < div class ="content "> < div class ='highlight '> < pre > _.VERSION = < span class ="hljs-string "> '1.9.1 '</ span > ;</ pre > </ div > </ div >
226
226
227
227
</ li >
228
228
@@ -383,6 +383,10 @@ <h2 id="baseline-setup">Baseline setup</h2>
383
383
};
384
384
};
385
385
386
+ < span class ="hljs-keyword "> var</ span > has = < span class ="hljs-function "> < span class ="hljs-keyword "> function</ span > (< span class ="hljs-params "> obj, path</ span > ) </ span > {
387
+ < span class ="hljs-keyword "> return</ span > obj != < span class ="hljs-literal "> null</ span > && hasOwnProperty.call(obj, path);
388
+ }
389
+
386
390
< span class ="hljs-keyword "> var</ span > deepGet = < span class ="hljs-function "> < span class ="hljs-keyword "> function</ span > (< span class ="hljs-params "> obj, path</ span > ) </ span > {
387
391
< span class ="hljs-keyword "> var</ span > length = path.length;
388
392
< span class ="hljs-keyword "> for</ span > (< span class ="hljs-keyword "> var</ span > i = < span class ="hljs-number "> 0</ span > ; i < length; i++) {
@@ -991,7 +995,7 @@ <h2 id="collection-functions">Collection Functions</h2>
991
995
</ div >
992
996
993
997
< div class ="content "> < div class ='highlight '> < pre > _.groupBy = group(< span class ="hljs-function "> < span class ="hljs-keyword "> function</ span > (< span class ="hljs-params "> result, value, key</ span > ) </ span > {
994
- < span class ="hljs-keyword "> if</ span > (_. has(result, key)) result[key].push(value); < span class ="hljs-keyword "> else</ span > result[key] = [value];
998
+ < span class ="hljs-keyword "> if</ span > (has(result, key)) result[key].push(value); < span class ="hljs-keyword "> else</ span > result[key] = [value];
995
999
});</ pre > </ div > </ div >
996
1000
997
1001
</ li >
@@ -1028,7 +1032,7 @@ <h2 id="collection-functions">Collection Functions</h2>
1028
1032
</ div >
1029
1033
1030
1034
< div class ="content "> < div class ='highlight '> < pre > _.countBy = group(< span class ="hljs-function "> < span class ="hljs-keyword "> function</ span > (< span class ="hljs-params "> result, value, key</ span > ) </ span > {
1031
- < span class ="hljs-keyword "> if</ span > (_. has(result, key)) result[key]++; < span class ="hljs-keyword "> else</ span > result[key] = < span class ="hljs-number "> 1</ span > ;
1035
+ < span class ="hljs-keyword "> if</ span > (has(result, key)) result[key]++; < span class ="hljs-keyword "> else</ span > result[key] = < span class ="hljs-number "> 1</ span > ;
1032
1036
});
1033
1037
1034
1038
< span class ="hljs-keyword "> var</ span > reStrSymbol = < span class ="hljs-regexp "> /[^\ud800-\udfff]|[\ud800-\udbff][\udc00-\udfff]|[\ud800-\udfff]/g</ span > ;</ pre > </ div > </ div >
@@ -1147,7 +1151,7 @@ <h2 id="array-functions">Array Functions</h2>
1147
1151
</ div >
1148
1152
1149
1153
< div class ="content "> < div class ='highlight '> < pre > _.first = _.head = _.take = < span class ="hljs-function "> < span class ="hljs-keyword "> function</ span > (< span class ="hljs-params "> array, n, guard</ span > ) </ span > {
1150
- < span class ="hljs-keyword "> if</ span > (array == < span class ="hljs-literal "> null</ span > || array.length < < span class ="hljs-number "> 1</ span > ) < span class ="hljs-keyword "> return</ span > < span class ="hljs-keyword "> void</ span > < span class ="hljs-number "> 0</ span > ;
1154
+ < span class ="hljs-keyword "> if</ span > (array == < span class ="hljs-literal "> null</ span > || array.length < < span class ="hljs-number "> 1</ span > ) < span class ="hljs-keyword "> return</ span > n == < span class ="hljs-literal " > null </ span > ? < span class =" hljs- keyword "> void</ span > < span class ="hljs-number "> 0</ span > : [] ;
1151
1155
< span class ="hljs-keyword "> if</ span > (n == < span class ="hljs-literal "> null</ span > || guard) < span class ="hljs-keyword "> return</ span > array[< span class ="hljs-number "> 0</ span > ];
1152
1156
< span class ="hljs-keyword "> return</ span > _.initial(array, array.length - n);
1153
1157
};</ pre > </ div > </ div >
@@ -1186,7 +1190,7 @@ <h2 id="array-functions">Array Functions</h2>
1186
1190
</ div >
1187
1191
1188
1192
< div class ="content "> < div class ='highlight '> < pre > _.last = < span class ="hljs-function "> < span class ="hljs-keyword "> function</ span > (< span class ="hljs-params "> array, n, guard</ span > ) </ span > {
1189
- < span class ="hljs-keyword "> if</ span > (array == < span class ="hljs-literal "> null</ span > || array.length < < span class ="hljs-number "> 1</ span > ) < span class ="hljs-keyword "> return</ span > < span class ="hljs-keyword "> void</ span > < span class ="hljs-number "> 0</ span > ;
1193
+ < span class ="hljs-keyword "> if</ span > (array == < span class ="hljs-literal "> null</ span > || array.length < < span class ="hljs-number "> 1</ span > ) < span class ="hljs-keyword "> return</ span > n == < span class ="hljs-literal " > null </ span > ? < span class =" hljs- keyword "> void</ span > < span class ="hljs-number "> 0</ span > : [] ;
1190
1194
< span class ="hljs-keyword "> if</ span > (n == < span class ="hljs-literal "> null</ span > || guard) < span class ="hljs-keyword "> return</ span > array[array.length - < span class ="hljs-number "> 1</ span > ];
1191
1195
< span class ="hljs-keyword "> return</ span > _.rest(array, < span class ="hljs-built_in "> Math</ span > .max(< span class ="hljs-number "> 0</ span > , array.length - n));
1192
1196
};</ pre > </ div > </ div >
@@ -1812,7 +1816,7 @@ <h2 id="function-ahem-functions">Function (ahem) Functions</h2>
1812
1816
< span class ="hljs-keyword "> var</ span > memoize = < span class ="hljs-function "> < span class ="hljs-keyword "> function</ span > (< span class ="hljs-params "> key</ span > ) </ span > {
1813
1817
< span class ="hljs-keyword "> var</ span > cache = memoize.cache;
1814
1818
< span class ="hljs-keyword "> var</ span > address = < span class ="hljs-string "> ''</ span > + (hasher ? hasher.apply(< span class ="hljs-keyword "> this</ span > , < span class ="hljs-built_in "> arguments</ span > ) : key);
1815
- < span class ="hljs-keyword "> if</ span > (!_. has(cache, address)) cache[address] = func.apply(< span class ="hljs-keyword "> this</ span > , < span class ="hljs-built_in "> arguments</ span > );
1819
+ < span class ="hljs-keyword "> if</ span > (!has(cache, address)) cache[address] = func.apply(< span class ="hljs-keyword "> this</ span > , < span class ="hljs-built_in "> arguments</ span > );
1816
1820
< span class ="hljs-keyword "> return</ span > cache[address];
1817
1821
};
1818
1822
memoize.cache = {};
@@ -2145,7 +2149,7 @@ <h2 id="object-functions">Object Functions</h2>
2145
2149
</ div >
2146
2150
2147
2151
< div class ="content "> < div class ='highlight '> < pre > < span class ="hljs-keyword "> var</ span > prop = < span class ="hljs-string "> 'constructor'</ span > ;
2148
- < span class ="hljs-keyword "> if</ span > (_. has(obj, prop) && !_.contains(keys, prop)) keys.push(prop);
2152
+ < span class ="hljs-keyword "> if</ span > (has(obj, prop) && !_.contains(keys, prop)) keys.push(prop);
2149
2153
2150
2154
< span class ="hljs-keyword "> while</ span > (nonEnumIdx--) {
2151
2155
prop = nonEnumerableProps[nonEnumIdx];
@@ -2173,7 +2177,7 @@ <h2 id="object-functions">Object Functions</h2>
2173
2177
< span class ="hljs-keyword "> if</ span > (!_.isObject(obj)) < span class ="hljs-keyword "> return</ span > [];
2174
2178
< span class ="hljs-keyword "> if</ span > (nativeKeys) < span class ="hljs-keyword "> return</ span > nativeKeys(obj);
2175
2179
< span class ="hljs-keyword "> var</ span > keys = [];
2176
- < span class ="hljs-keyword "> for</ span > (< span class ="hljs-keyword "> var</ span > key < span class ="hljs-keyword "> in</ span > obj) < span class ="hljs-keyword "> if</ span > (_. has(obj, key)) keys.push(key);</ pre > </ div > </ div >
2180
+ < span class ="hljs-keyword "> for</ span > (< span class ="hljs-keyword "> var</ span > key < span class ="hljs-keyword "> in</ span > obj) < span class ="hljs-keyword "> if</ span > (has(obj, key)) keys.push(key);</ pre > </ div > </ div >
2177
2181
2178
2182
</ li >
2179
2183
@@ -3017,7 +3021,7 @@ <h2 id="object-functions">Object Functions</h2>
3017
3021
</ div >
3018
3022
3019
3023
< div class ="content "> < div class ='highlight '> < pre > key = keys[length];
3020
- < span class ="hljs-keyword "> if</ span > (!(_. has(b, key) && eq(a[key], b[key], aStack, bStack))) < span class ="hljs-keyword "> return</ span > < span class ="hljs-literal "> false</ span > ;
3024
+ < span class ="hljs-keyword "> if</ span > (!(has(b, key) && eq(a[key], b[key], aStack, bStack))) < span class ="hljs-keyword "> return</ span > < span class ="hljs-literal "> false</ span > ;
3021
3025
}
3022
3026
}</ pre > </ div > </ div >
3023
3027
@@ -3164,7 +3168,7 @@ <h2 id="object-functions">Object Functions</h2>
3164
3168
3165
3169
< div class ="content "> < div class ='highlight '> < pre > < span class ="hljs-keyword "> if</ span > (!_.isArguments(< span class ="hljs-built_in "> arguments</ span > )) {
3166
3170
_.isArguments = < span class ="hljs-function "> < span class ="hljs-keyword "> function</ span > (< span class ="hljs-params "> obj</ span > ) </ span > {
3167
- < span class ="hljs-keyword "> return</ span > _. has(obj, < span class ="hljs-string "> 'callee'</ span > );
3171
+ < span class ="hljs-keyword "> return</ span > has(obj, < span class ="hljs-string "> 'callee'</ span > );
3168
3172
};
3169
3173
}</ pre > </ div > </ div >
3170
3174
@@ -3290,7 +3294,7 @@ <h2 id="object-functions">Object Functions</h2>
3290
3294
3291
3295
< div class ="content "> < div class ='highlight '> < pre > _.has = < span class ="hljs-function "> < span class ="hljs-keyword "> function</ span > (< span class ="hljs-params "> obj, path</ span > ) </ span > {
3292
3296
< span class ="hljs-keyword "> if</ span > (!_.isArray(path)) {
3293
- < span class ="hljs-keyword "> return</ span > obj != < span class =" hljs-literal " > null </ span > && hasOwnProperty.call (obj, path);
3297
+ < span class ="hljs-keyword "> return</ span > has (obj, path);
3294
3298
}
3295
3299
< span class ="hljs-keyword "> var</ span > length = path.length;
3296
3300
< span class ="hljs-keyword "> for</ span > (< span class ="hljs-keyword "> var</ span > i = < span class ="hljs-number "> 0</ span > ; i < length; i++) {
0 commit comments