Skip to content

Commit

Permalink
Underscore.js 1.9.1
Browse files Browse the repository at this point in the history
  • Loading branch information
jashkenas committed May 31, 2018
1 parent 5a55dd1 commit ae037f7
Show file tree
Hide file tree
Showing 6 changed files with 36 additions and 21 deletions.
28 changes: 16 additions & 12 deletions docs/underscore.html
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ <h1>underscore.js</h1>
<div class="pilwrap ">
<a class="pilcrow" href="#section-1">&#182;</a>
</div>
<pre><code>Underscore.js <span class="hljs-number">1.9</span><span class="hljs-number">.0</span>
<pre><code>Underscore.js <span class="hljs-number">1.9</span><span class="hljs-number">.1</span>
http:<span class="hljs-comment">//underscorejs.org</span>
(c) <span class="hljs-number">2009</span><span class="hljs-number">-2018</span> Jeremy Ashkenas, DocumentCloud and Investigative Reporters &amp; Editors
Underscore may be freely distributed under the MIT license.
Expand Down Expand Up @@ -222,7 +222,7 @@ <h2 id="baseline-setup">Baseline setup</h2>

</div>

<div class="content"><div class='highlight'><pre> _.VERSION = <span class="hljs-string">'1.9.0'</span>;</pre></div></div>
<div class="content"><div class='highlight'><pre> _.VERSION = <span class="hljs-string">'1.9.1'</span>;</pre></div></div>

</li>

Expand Down Expand Up @@ -383,6 +383,10 @@ <h2 id="baseline-setup">Baseline setup</h2>
};
};

<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>{
<span class="hljs-keyword">return</span> obj != <span class="hljs-literal">null</span> &amp;&amp; hasOwnProperty.call(obj, path);
}

<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>{
<span class="hljs-keyword">var</span> length = path.length;
<span class="hljs-keyword">for</span> (<span class="hljs-keyword">var</span> i = <span class="hljs-number">0</span>; i &lt; length; i++) {
Expand Down Expand Up @@ -991,7 +995,7 @@ <h2 id="collection-functions">Collection Functions</h2>
</div>

<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>{
<span class="hljs-keyword">if</span> (_.has(result, key)) result[key].push(value); <span class="hljs-keyword">else</span> result[key] = [value];
<span class="hljs-keyword">if</span> (has(result, key)) result[key].push(value); <span class="hljs-keyword">else</span> result[key] = [value];
});</pre></div></div>

</li>
Expand Down Expand Up @@ -1028,7 +1032,7 @@ <h2 id="collection-functions">Collection Functions</h2>
</div>

<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>{
<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>;
<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>;
});

<span class="hljs-keyword">var</span> reStrSymbol = <span class="hljs-regexp">/[^\ud800-\udfff]|[\ud800-\udbff][\udc00-\udfff]|[\ud800-\udfff]/g</span>;</pre></div></div>
Expand Down Expand Up @@ -1147,7 +1151,7 @@ <h2 id="array-functions">Array Functions</h2>
</div>

<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>{
<span class="hljs-keyword">if</span> (array == <span class="hljs-literal">null</span> || array.length &lt; <span class="hljs-number">1</span>) <span class="hljs-keyword">return</span> <span class="hljs-keyword">void</span> <span class="hljs-number">0</span>;
<span class="hljs-keyword">if</span> (array == <span class="hljs-literal">null</span> || array.length &lt; <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> : [];
<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>];
<span class="hljs-keyword">return</span> _.initial(array, array.length - n);
};</pre></div></div>
Expand Down Expand Up @@ -1186,7 +1190,7 @@ <h2 id="array-functions">Array Functions</h2>
</div>

<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>{
<span class="hljs-keyword">if</span> (array == <span class="hljs-literal">null</span> || array.length &lt; <span class="hljs-number">1</span>) <span class="hljs-keyword">return</span> <span class="hljs-keyword">void</span> <span class="hljs-number">0</span>;
<span class="hljs-keyword">if</span> (array == <span class="hljs-literal">null</span> || array.length &lt; <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> : [];
<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>];
<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));
};</pre></div></div>
Expand Down Expand Up @@ -1812,7 +1816,7 @@ <h2 id="function-ahem-functions">Function (ahem) Functions</h2>
<span class="hljs-keyword">var</span> memoize = <span class="hljs-function"><span class="hljs-keyword">function</span>(<span class="hljs-params">key</span>) </span>{
<span class="hljs-keyword">var</span> cache = memoize.cache;
<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);
<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>);
<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>);
<span class="hljs-keyword">return</span> cache[address];
};
memoize.cache = {};
Expand Down Expand Up @@ -2145,7 +2149,7 @@ <h2 id="object-functions">Object Functions</h2>
</div>

<div class="content"><div class='highlight'><pre> <span class="hljs-keyword">var</span> prop = <span class="hljs-string">'constructor'</span>;
<span class="hljs-keyword">if</span> (_.has(obj, prop) &amp;&amp; !_.contains(keys, prop)) keys.push(prop);
<span class="hljs-keyword">if</span> (has(obj, prop) &amp;&amp; !_.contains(keys, prop)) keys.push(prop);

<span class="hljs-keyword">while</span> (nonEnumIdx--) {
prop = nonEnumerableProps[nonEnumIdx];
Expand Down Expand Up @@ -2173,7 +2177,7 @@ <h2 id="object-functions">Object Functions</h2>
<span class="hljs-keyword">if</span> (!_.isObject(obj)) <span class="hljs-keyword">return</span> [];
<span class="hljs-keyword">if</span> (nativeKeys) <span class="hljs-keyword">return</span> nativeKeys(obj);
<span class="hljs-keyword">var</span> keys = [];
<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>
<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>

</li>

Expand Down Expand Up @@ -3017,7 +3021,7 @@ <h2 id="object-functions">Object Functions</h2>
</div>

<div class="content"><div class='highlight'><pre> key = keys[length];
<span class="hljs-keyword">if</span> (!(_.has(b, key) &amp;&amp; eq(a[key], b[key], aStack, bStack))) <span class="hljs-keyword">return</span> <span class="hljs-literal">false</span>;
<span class="hljs-keyword">if</span> (!(has(b, key) &amp;&amp; eq(a[key], b[key], aStack, bStack))) <span class="hljs-keyword">return</span> <span class="hljs-literal">false</span>;
}
}</pre></div></div>

Expand Down Expand Up @@ -3164,7 +3168,7 @@ <h2 id="object-functions">Object Functions</h2>

<div class="content"><div class='highlight'><pre> <span class="hljs-keyword">if</span> (!_.isArguments(<span class="hljs-built_in">arguments</span>)) {
_.isArguments = <span class="hljs-function"><span class="hljs-keyword">function</span>(<span class="hljs-params">obj</span>) </span>{
<span class="hljs-keyword">return</span> _.has(obj, <span class="hljs-string">'callee'</span>);
<span class="hljs-keyword">return</span> has(obj, <span class="hljs-string">'callee'</span>);
};
}</pre></div></div>

Expand Down Expand Up @@ -3290,7 +3294,7 @@ <h2 id="object-functions">Object Functions</h2>

<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>{
<span class="hljs-keyword">if</span> (!_.isArray(path)) {
<span class="hljs-keyword">return</span> obj != <span class="hljs-literal">null</span> &amp;&amp; hasOwnProperty.call(obj, path);
<span class="hljs-keyword">return</span> has(obj, path);
}
<span class="hljs-keyword">var</span> length = path.length;
<span class="hljs-keyword">for</span> (<span class="hljs-keyword">var</span> i = <span class="hljs-number">0</span>; i &lt; length; i++) {
Expand Down
17 changes: 14 additions & 3 deletions index.html
Original file line number Diff line number Diff line change
Expand Up @@ -182,7 +182,7 @@
<div id="sidebar" class="interface">

<a class="toc_title" href="#">
Underscore.js <span class="version">(1.9.0)</span>
Underscore.js <span class="version">(1.9.1)</span>
</a>
<ul class="toc_section">
<li>&raquo; <a href="https://github.com/jashkenas/underscore">GitHub Repository</a></li>
Expand Down Expand Up @@ -440,11 +440,11 @@ <h2>Downloads <i style="padding-left: 12px; font-size:12px;">(Right-click, and u

<table>
<tr>
<td><a href="underscore.js">Development Version (1.9.0)</a></td>
<td><a href="underscore.js">Development Version (1.9.1)</a></td>
<td><i>60kb, Uncompressed with Plentiful Comments</i></td>
</tr>
<tr>
<td><a href="underscore-min.js">Production Version (1.9.0)</a></td>
<td><a href="underscore-min.js">Production Version (1.9.1)</a></td>
<td>
<i>6.5kb, Minified and Gzipped</i>
&nbsp;<small>(<a href="underscore-min.js.map">Source Map</a>)</small>
Expand Down Expand Up @@ -2391,6 +2391,17 @@ <h2 id="links">Links &amp; Suggested Reading</h2>

<h2 id="changelog">Change Log</h2>

<p id="1.9.1">
<b class="header">1.9.1</b> &mdash; <small><i>May 31, 2018</i></small> &mdash; <a href="https://github.com/jashkenas/underscore/compare/1.9.0...1.9.1">Diff</a> &mdash; <a href="https://cdn.rawgit.com/jashkenas/underscore/1.9.1/index.html">Docs</a><br />
<ul>
<li>
Fixes edge-case regressions from 1.9.0, including certain forms
of calling <tt>_.first</tt> and <tt>_.last</tt> on an empty array,
and passing arrays as keys to <tt>_.countBy</tt> and <tt>_.groupBy</tt>.
</li>
</ul>
</p>

<p id="1.9.0">
<b class="header">1.9.0</b> &mdash; <small><i>April 18, 2018</i></small> &mdash; <a href="https://github.com/jashkenas/underscore/compare/1.8.3...1.9.0">Diff</a> &mdash; <a href="https://cdn.rawgit.com/jashkenas/underscore/1.9.0/index.html">Docs</a><br />
<ul>
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
"url": "git://github.com/jashkenas/underscore.git"
},
"main": "underscore.js",
"version": "1.9.0",
"version": "1.9.1",
"devDependencies": {
"coveralls": "^2.11.2",
"docco": "*",
Expand Down
Loading

0 comments on commit ae037f7

Please sign in to comment.