mermaid
Version:
Markdownish syntax for generating flowcharts, sequence diagrams and gantt charts.
440 lines (377 loc) • 1.55 MB
HTML
<!DOCTYPE html>
<html>
<head>
<title>lodash.js</title>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<link rel="stylesheet" media="all" href="../../doc-style.css" />
<script src="../../doc-filelist.js"></script>
<script>
var relativeDir = "../../", thisFile = "Users/knut/Documents/source/mermaid/bower_components/lodash/lodash.js", defaultSidebar = true;
</script>
<script src="../../doc-script.js"></script>
<script src="../../mermaid.js"></script>
<link rel="stylesheet" href="../../mermaid.css" />
</head>
<body>
<div id="sidebar_wrapper">
<div id="sidebar_switch">
<span class="tree">Files</span>
<span class="headings">Headings</span>
</div>
<div id="tree"></div>
<div id="headings">
<div class="heading h1">
<a href="#lodash.js">lodash.js</a>
</div>
</div>
</div>
<div id="sidebar-toggle"></div>
<div id="container"><div class="background highlight"></div>
<table cellpadding="0" cellspacing="0">
<tbody>
<tr>
<td class="docs">
<div class="pilwrap" id="lodash.js">
<h1>
<a href="#lodash.js" name="lodash.js" class="pilcrow">¶</a>lodash.js
</h1>
</div>
</td>
<td class="code highlight"></td>
</tr>
<tr>
<td class="docs">
<div class="pilwrap">
<a class="pilcrow" href="#section-1" id="section-1">¶</a>
</div>
<div class="dox">
<div class="summary">
</div>
<div class="body">
</div>
<div class="details">
<div class="dox_tag_title">license
lodash</div>
<div class="dox_tag_detail">
<span>3.10.0 (Custom Build) <a href="https://lodash.com/">https://lodash.com/</a>
Build: <code>lodash modern -o ./lodash.js</code>
Copyright 2012-2015 The Dojo Foundation <a href="http://dojofoundation.org/">http://dojofoundation.org/</a>
Based on Underscore.js 1.8.3 <a href="http://underscorejs.org/LICENSE">http://underscorejs.org/LICENSE</a>
Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
Available under MIT license <a href="https://lodash.com/license">https://lodash.com/license</a>
</span>
</div>
</div>
</div>
</td>
<td class="code highlight"><div class="highlight"><pre><span class="p">;(</span><span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
<span class="cm">/** Used as a safe reference for `undefined` in pre-ES5 environments. */</span>
<span class="kd">var</span> <span class="kc">undefined</span><span class="p">;</span>
<span class="cm">/** Used as the semantic version number. */</span>
<span class="kd">var</span> <span class="nx">VERSION</span> <span class="o">=</span> <span class="s1">'3.10.0'</span><span class="p">;</span>
<span class="cm">/** Used to compose bitmasks for wrapper metadata. */</span>
<span class="kd">var</span> <span class="nx">BIND_FLAG</span> <span class="o">=</span> <span class="mi">1</span><span class="p">,</span>
<span class="nx">BIND_KEY_FLAG</span> <span class="o">=</span> <span class="mi">2</span><span class="p">,</span>
<span class="nx">CURRY_BOUND_FLAG</span> <span class="o">=</span> <span class="mi">4</span><span class="p">,</span>
<span class="nx">CURRY_FLAG</span> <span class="o">=</span> <span class="mi">8</span><span class="p">,</span>
<span class="nx">CURRY_RIGHT_FLAG</span> <span class="o">=</span> <span class="mi">16</span><span class="p">,</span>
<span class="nx">PARTIAL_FLAG</span> <span class="o">=</span> <span class="mi">32</span><span class="p">,</span>
<span class="nx">PARTIAL_RIGHT_FLAG</span> <span class="o">=</span> <span class="mi">64</span><span class="p">,</span>
<span class="nx">ARY_FLAG</span> <span class="o">=</span> <span class="mi">128</span><span class="p">,</span>
<span class="nx">REARG_FLAG</span> <span class="o">=</span> <span class="mi">256</span><span class="p">;</span>
<span class="cm">/** Used as default options for `_.trunc`. */</span>
<span class="kd">var</span> <span class="nx">DEFAULT_TRUNC_LENGTH</span> <span class="o">=</span> <span class="mi">30</span><span class="p">,</span>
<span class="nx">DEFAULT_TRUNC_OMISSION</span> <span class="o">=</span> <span class="s1">'...'</span><span class="p">;</span>
<span class="cm">/** Used to detect when a function becomes hot. */</span>
<span class="kd">var</span> <span class="nx">HOT_COUNT</span> <span class="o">=</span> <span class="mi">150</span><span class="p">,</span>
<span class="nx">HOT_SPAN</span> <span class="o">=</span> <span class="mi">16</span><span class="p">;</span>
<span class="cm">/** Used as the size to enable large array optimizations. */</span>
<span class="kd">var</span> <span class="nx">LARGE_ARRAY_SIZE</span> <span class="o">=</span> <span class="mi">200</span><span class="p">;</span>
<span class="cm">/** Used to indicate the type of lazy iteratees. */</span>
<span class="kd">var</span> <span class="nx">LAZY_FILTER_FLAG</span> <span class="o">=</span> <span class="mi">1</span><span class="p">,</span>
<span class="nx">LAZY_MAP_FLAG</span> <span class="o">=</span> <span class="mi">2</span><span class="p">;</span>
<span class="cm">/** Used as the `TypeError` message for "Functions" methods. */</span>
<span class="kd">var</span> <span class="nx">FUNC_ERROR_TEXT</span> <span class="o">=</span> <span class="s1">'Expected a function'</span><span class="p">;</span>
<span class="cm">/** Used as the internal argument placeholder. */</span>
<span class="kd">var</span> <span class="nx">PLACEHOLDER</span> <span class="o">=</span> <span class="s1">'__lodash_placeholder__'</span><span class="p">;</span>
<span class="cm">/** `Object#toString` result references. */</span>
<span class="kd">var</span> <span class="nx">argsTag</span> <span class="o">=</span> <span class="s1">'[object Arguments]'</span><span class="p">,</span>
<span class="nx">arrayTag</span> <span class="o">=</span> <span class="s1">'[object Array]'</span><span class="p">,</span>
<span class="nx">boolTag</span> <span class="o">=</span> <span class="s1">'[object Boolean]'</span><span class="p">,</span>
<span class="nx">dateTag</span> <span class="o">=</span> <span class="s1">'[object Date]'</span><span class="p">,</span>
<span class="nx">errorTag</span> <span class="o">=</span> <span class="s1">'[object Error]'</span><span class="p">,</span>
<span class="nx">funcTag</span> <span class="o">=</span> <span class="s1">'[object Function]'</span><span class="p">,</span>
<span class="nx">mapTag</span> <span class="o">=</span> <span class="s1">'[object Map]'</span><span class="p">,</span>
<span class="nx">numberTag</span> <span class="o">=</span> <span class="s1">'[object Number]'</span><span class="p">,</span>
<span class="nx">objectTag</span> <span class="o">=</span> <span class="s1">'[object Object]'</span><span class="p">,</span>
<span class="nx">regexpTag</span> <span class="o">=</span> <span class="s1">'[object RegExp]'</span><span class="p">,</span>
<span class="nx">setTag</span> <span class="o">=</span> <span class="s1">'[object Set]'</span><span class="p">,</span>
<span class="nx">stringTag</span> <span class="o">=</span> <span class="s1">'[object String]'</span><span class="p">,</span>
<span class="nx">weakMapTag</span> <span class="o">=</span> <span class="s1">'[object WeakMap]'</span><span class="p">;</span>
<span class="kd">var</span> <span class="nx">arrayBufferTag</span> <span class="o">=</span> <span class="s1">'[object ArrayBuffer]'</span><span class="p">,</span>
<span class="nx">float32Tag</span> <span class="o">=</span> <span class="s1">'[object Float32Array]'</span><span class="p">,</span>
<span class="nx">float64Tag</span> <span class="o">=</span> <span class="s1">'[object Float64Array]'</span><span class="p">,</span>
<span class="nx">int8Tag</span> <span class="o">=</span> <span class="s1">'[object Int8Array]'</span><span class="p">,</span>
<span class="nx">int16Tag</span> <span class="o">=</span> <span class="s1">'[object Int16Array]'</span><span class="p">,</span>
<span class="nx">int32Tag</span> <span class="o">=</span> <span class="s1">'[object Int32Array]'</span><span class="p">,</span>
<span class="nx">uint8Tag</span> <span class="o">=</span> <span class="s1">'[object Uint8Array]'</span><span class="p">,</span>
<span class="nx">uint8ClampedTag</span> <span class="o">=</span> <span class="s1">'[object Uint8ClampedArray]'</span><span class="p">,</span>
<span class="nx">uint16Tag</span> <span class="o">=</span> <span class="s1">'[object Uint16Array]'</span><span class="p">,</span>
<span class="nx">uint32Tag</span> <span class="o">=</span> <span class="s1">'[object Uint32Array]'</span><span class="p">;</span>
<span class="cm">/** Used to match empty string literals in compiled template source. */</span>
<span class="kd">var</span> <span class="nx">reEmptyStringLeading</span> <span class="o">=</span> <span class="sr">/\b__p \+= '';/g</span><span class="p">,</span>
<span class="nx">reEmptyStringMiddle</span> <span class="o">=</span> <span class="sr">/\b(__p \+=) '' \+/g</span><span class="p">,</span>
<span class="nx">reEmptyStringTrailing</span> <span class="o">=</span> <span class="sr">/(__e\(.*?\)|\b__t\)) \+\n'';/g</span><span class="p">;</span>
<span class="cm">/** Used to match HTML entities and HTML characters. */</span>
<span class="kd">var</span> <span class="nx">reEscapedHtml</span> <span class="o">=</span> <span class="sr">/&(?:amp|lt|gt|quot|#39|#96);/g</span><span class="p">,</span>
<span class="nx">reUnescapedHtml</span> <span class="o">=</span> <span class="sr">/[&<>"'`]/g</span><span class="p">,</span>
<span class="nx">reHasEscapedHtml</span> <span class="o">=</span> <span class="nb">RegExp</span><span class="p">(</span><span class="nx">reEscapedHtml</span><span class="p">.</span><span class="nx">source</span><span class="p">),</span>
<span class="nx">reHasUnescapedHtml</span> <span class="o">=</span> <span class="nb">RegExp</span><span class="p">(</span><span class="nx">reUnescapedHtml</span><span class="p">.</span><span class="nx">source</span><span class="p">);</span>
<span class="cm">/** Used to match template delimiters. */</span>
<span class="kd">var</span> <span class="nx">reEscape</span> <span class="o">=</span> <span class="sr">/<%-([\s\S]+?)%>/g</span><span class="p">,</span>
<span class="nx">reEvaluate</span> <span class="o">=</span> <span class="sr">/<%([\s\S]+?)%>/g</span><span class="p">,</span>
<span class="nx">reInterpolate</span> <span class="o">=</span> <span class="sr">/<%=([\s\S]+?)%>/g</span><span class="p">;</span>
<span class="cm">/** Used to match property names within property paths. */</span>
<span class="kd">var</span> <span class="nx">reIsDeepProp</span> <span class="o">=</span> <span class="sr">/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\n\\]|\\.)*?\1)\]/</span><span class="p">,</span>
<span class="nx">reIsPlainProp</span> <span class="o">=</span> <span class="sr">/^\w*$/</span><span class="p">,</span>
<span class="nx">rePropName</span> <span class="o">=</span> <span class="sr">/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\n\\]|\\.)*?)\2)\]/g</span><span class="p">;</span>
</pre></div>
</td>
</tr>
<tr>
<td class="docs">
<div class="pilwrap">
<a class="pilcrow" href="#section-2" id="section-2">¶</a>
</div>
<div class="dox">
<div class="summary"><p>Used to match <code>RegExp</code> <a href="http://ecma-international.org/ecma-262/6.0/#sec-patterns">syntax characters</a>
and those outlined by <a href="http://ecma-international.org/ecma-262/6.0/#sec-escaperegexppattern"><code>EscapeRegExpPattern</code></a>.</p>
</div>
<div class="body">
</div>
</div>
</td>
<td class="code highlight"><div class="highlight"><pre>
<span class="kd">var</span> <span class="nx">reRegExpChars</span> <span class="o">=</span> <span class="sr">/^[:!,]|[\\^$.*+?()[\]{}|\/]|(^[0-9a-fA-Fnrtuvx])|([\n\r\u2028\u2029])/g</span><span class="p">,</span>
<span class="nx">reHasRegExpChars</span> <span class="o">=</span> <span class="nb">RegExp</span><span class="p">(</span><span class="nx">reRegExpChars</span><span class="p">.</span><span class="nx">source</span><span class="p">);</span>
</pre></div>
</td>
</tr>
<tr>
<td class="docs">
<div class="pilwrap">
<a class="pilcrow" href="#section-3" id="section-3">¶</a>
</div>
<div class="dox">
<div class="summary"><p>Used to match <a href="https://en.wikipedia.org/wiki/Combining_Diacritical_Marks">combining diacritical marks</a>.<br>var reComboMark = /[\u0300-\u036f\ufe20-\ufe23]/g;</p>
</div>
<div class="body"><p>/<em>* Used to match backslashes in property paths. </em>/</p>
</div>
</div>
</td>
<td class="code highlight"><div class="highlight"><pre>
<span class="kd">var</span> <span class="nx">reEscapeChar</span> <span class="o">=</span> <span class="sr">/\\(\\)?/g</span><span class="p">;</span>
<span class="cm">/** Used to match [ES template delimiters](http://ecma-international.org/ecma-262/6.0/#sec-template-literal-lexical-components). */</span>
<span class="kd">var</span> <span class="nx">reEsTemplate</span> <span class="o">=</span> <span class="sr">/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g</span><span class="p">;</span>
<span class="cm">/** Used to match `RegExp` flags from their coerced string values. */</span>
<span class="kd">var</span> <span class="nx">reFlags</span> <span class="o">=</span> <span class="sr">/\w*$/</span><span class="p">;</span>
<span class="cm">/** Used to detect hexadecimal string values. */</span>
<span class="kd">var</span> <span class="nx">reHasHexPrefix</span> <span class="o">=</span> <span class="sr">/^0[xX]/</span><span class="p">;</span>
<span class="cm">/** Used to detect host constructors (Safari > 5). */</span>
<span class="kd">var</span> <span class="nx">reIsHostCtor</span> <span class="o">=</span> <span class="sr">/^\[object .+?Constructor\]$/</span><span class="p">;</span>
<span class="cm">/** Used to detect unsigned integer values. */</span>
<span class="kd">var</span> <span class="nx">reIsUint</span> <span class="o">=</span> <span class="sr">/^\d+$/</span><span class="p">;</span>
<span class="cm">/** Used to match latin-1 supplementary letters (excluding mathematical operators). */</span>
<span class="kd">var</span> <span class="nx">reLatin1</span> <span class="o">=</span> <span class="sr">/[\xc0-\xd6\xd8-\xde\xdf-\xf6\xf8-\xff]/g</span><span class="p">;</span>
<span class="cm">/** Used to ensure capturing order of template delimiters. */</span>
<span class="kd">var</span> <span class="nx">reNoMatch</span> <span class="o">=</span> <span class="sr">/($^)/</span><span class="p">;</span>
<span class="cm">/** Used to match unescaped characters in compiled string literals. */</span>
<span class="kd">var</span> <span class="nx">reUnescapedString</span> <span class="o">=</span> <span class="sr">/['\n\r\u2028\u2029\\]/g</span><span class="p">;</span>
<span class="cm">/** Used to match words to create compound words. */</span>
<span class="kd">var</span> <span class="nx">reWords</span> <span class="o">=</span> <span class="p">(</span><span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
<span class="kd">var</span> <span class="nx">upper</span> <span class="o">=</span> <span class="s1">'[A-Z\\xc0-\\xd6\\xd8-\\xde]'</span><span class="p">,</span>
<span class="nx">lower</span> <span class="o">=</span> <span class="s1">'[a-z\\xdf-\\xf6\\xf8-\\xff]+'</span><span class="p">;</span>
<span class="k">return</span> <span class="nb">RegExp</span><span class="p">(</span><span class="nx">upper</span> <span class="o">+</span> <span class="s1">'+(?='</span> <span class="o">+</span> <span class="nx">upper</span> <span class="o">+</span> <span class="nx">lower</span> <span class="o">+</span> <span class="s1">')|'</span> <span class="o">+</span> <span class="nx">upper</span> <span class="o">+</span> <span class="s1">'?'</span> <span class="o">+</span> <span class="nx">lower</span> <span class="o">+</span> <span class="s1">'|'</span> <span class="o">+</span> <span class="nx">upper</span> <span class="o">+</span> <span class="s1">'+|[0-9]+'</span><span class="p">,</span> <span class="s1">'g'</span><span class="p">);</span>
<span class="p">}());</span>
<span class="cm">/** Used to assign default `context` object properties. */</span>
<span class="kd">var</span> <span class="nx">contextProps</span> <span class="o">=</span> <span class="p">[</span>
<span class="s1">'Array'</span><span class="p">,</span> <span class="s1">'ArrayBuffer'</span><span class="p">,</span> <span class="s1">'Date'</span><span class="p">,</span> <span class="s1">'Error'</span><span class="p">,</span> <span class="s1">'Float32Array'</span><span class="p">,</span> <span class="s1">'Float64Array'</span><span class="p">,</span>
<span class="s1">'Function'</span><span class="p">,</span> <span class="s1">'Int8Array'</span><span class="p">,</span> <span class="s1">'Int16Array'</span><span class="p">,</span> <span class="s1">'Int32Array'</span><span class="p">,</span> <span class="s1">'Math'</span><span class="p">,</span> <span class="s1">'Number'</span><span class="p">,</span>
<span class="s1">'Object'</span><span class="p">,</span> <span class="s1">'RegExp'</span><span class="p">,</span> <span class="s1">'Set'</span><span class="p">,</span> <span class="s1">'String'</span><span class="p">,</span> <span class="s1">'_'</span><span class="p">,</span> <span class="s1">'clearTimeout'</span><span class="p">,</span> <span class="s1">'isFinite'</span><span class="p">,</span>
<span class="s1">'parseFloat'</span><span class="p">,</span> <span class="s1">'parseInt'</span><span class="p">,</span> <span class="s1">'setTimeout'</span><span class="p">,</span> <span class="s1">'TypeError'</span><span class="p">,</span> <span class="s1">'Uint8Array'</span><span class="p">,</span>
<span class="s1">'Uint8ClampedArray'</span><span class="p">,</span> <span class="s1">'Uint16Array'</span><span class="p">,</span> <span class="s1">'Uint32Array'</span><span class="p">,</span> <span class="s1">'WeakMap'</span>
<span class="p">];</span>
<span class="cm">/** Used to make template sourceURLs easier to identify. */</span>
<span class="kd">var</span> <span class="nx">templateCounter</span> <span class="o">=</span> <span class="o">-</span><span class="mi">1</span><span class="p">;</span>
<span class="cm">/** Used to identify `toStringTag` values of typed arrays. */</span>
<span class="kd">var</span> <span class="nx">typedArrayTags</span> <span class="o">=</span> <span class="p">{};</span>
<span class="nx">typedArrayTags</span><span class="p">[</span><span class="nx">float32Tag</span><span class="p">]</span> <span class="o">=</span> <span class="nx">typedArrayTags</span><span class="p">[</span><span class="nx">float64Tag</span><span class="p">]</span> <span class="o">=</span>
<span class="nx">typedArrayTags</span><span class="p">[</span><span class="nx">int8Tag</span><span class="p">]</span> <span class="o">=</span> <span class="nx">typedArrayTags</span><span class="p">[</span><span class="nx">int16Tag</span><span class="p">]</span> <span class="o">=</span>
<span class="nx">typedArrayTags</span><span class="p">[</span><span class="nx">int32Tag</span><span class="p">]</span> <span class="o">=</span> <span class="nx">typedArrayTags</span><span class="p">[</span><span class="nx">uint8Tag</span><span class="p">]</span> <span class="o">=</span>
<span class="nx">typedArrayTags</span><span class="p">[</span><span class="nx">uint8ClampedTag</span><span class="p">]</span> <span class="o">=</span> <span class="nx">typedArrayTags</span><span class="p">[</span><span class="nx">uint16Tag</span><span class="p">]</span> <span class="o">=</span>
<span class="nx">typedArrayTags</span><span class="p">[</span><span class="nx">uint32Tag</span><span class="p">]</span> <span class="o">=</span> <span class="kc">true</span><span class="p">;</span>
<span class="nx">typedArrayTags</span><span class="p">[</span><span class="nx">argsTag</span><span class="p">]</span> <span class="o">=</span> <span class="nx">typedArrayTags</span><span class="p">[</span><span class="nx">arrayTag</span><span class="p">]</span> <span class="o">=</span>
<span class="nx">typedArrayTags</span><span class="p">[</span><span class="nx">arrayBufferTag</span><span class="p">]</span> <span class="o">=</span> <span class="nx">typedArrayTags</span><span class="p">[</span><span class="nx">boolTag</span><span class="p">]</span> <span class="o">=</span>
<span class="nx">typedArrayTags</span><span class="p">[</span><span class="nx">dateTag</span><span class="p">]</span> <span class="o">=</span> <span class="nx">typedArrayTags</span><span class="p">[</span><span class="nx">errorTag</span><span class="p">]</span> <span class="o">=</span>
<span class="nx">typedArrayTags</span><span class="p">[</span><span class="nx">funcTag</span><span class="p">]</span> <span class="o">=</span> <span class="nx">typedArrayTags</span><span class="p">[</span><span class="nx">mapTag</span><span class="p">]</span> <span class="o">=</span>
<span class="nx">typedArrayTags</span><span class="p">[</span><span class="nx">numberTag</span><span class="p">]</span> <span class="o">=</span> <span class="nx">typedArrayTags</span><span class="p">[</span><span class="nx">objectTag</span><span class="p">]</span> <span class="o">=</span>
<span class="nx">typedArrayTags</span><span class="p">[</span><span class="nx">regexpTag</span><span class="p">]</span> <span class="o">=</span> <span class="nx">typedArrayTags</span><span class="p">[</span><span class="nx">setTag</span><span class="p">]</span> <span class="o">=</span>
<span class="nx">typedArrayTags</span><span class="p">[</span><span class="nx">stringTag</span><span class="p">]</span> <span class="o">=</span> <span class="nx">typedArrayTags</span><span class="p">[</span><span class="nx">weakMapTag</span><span class="p">]</span> <span class="o">=</span> <span class="kc">false</span><span class="p">;</span>
<span class="cm">/** Used to identify `toStringTag` values supported by `_.clone`. */</span>
<span class="kd">var</span> <span class="nx">cloneableTags</span> <span class="o">=</span> <span class="p">{};</span>
<span class="nx">cloneableTags</span><span class="p">[</span><span class="nx">argsTag</span><span class="p">]</span> <span class="o">=</span> <span class="nx">cloneableTags</span><span class="p">[</span><span class="nx">arrayTag</span><span class="p">]</span> <span class="o">=</span>
<span class="nx">cloneableTags</span><span class="p">[</span><span class="nx">arrayBufferTag</span><span class="p">]</span> <span class="o">=</span> <span class="nx">cloneableTags</span><span class="p">[</span><span class="nx">boolTag</span><span class="p">]</span> <span class="o">=</span>
<span class="nx">cloneableTags</span><span class="p">[</span><span class="nx">dateTag</span><span class="p">]</span> <span class="o">=</span> <span class="nx">cloneableTags</span><span class="p">[</span><span class="nx">float32Tag</span><span class="p">]</span> <span class="o">=</span>
<span class="nx">cloneableTags</span><span class="p">[</span><span class="nx">float64Tag</span><span class="p">]</span> <span class="o">=</span> <span class="nx">cloneableTags</span><span class="p">[</span><span class="nx">int8Tag</span><span class="p">]</span> <span class="o">=</span>
<span class="nx">cloneableTags</span><span class="p">[</span><span class="nx">int16Tag</span><span class="p">]</span> <span class="o">=</span> <span class="nx">cloneableTags</span><span class="p">[</span><span class="nx">int32Tag</span><span class="p">]</span> <span class="o">=</span>
<span class="nx">cloneableTags</span><span class="p">[</span><span class="nx">numberTag</span><span class="p">]</span> <span class="o">=</span> <span class="nx">cloneableTags</span><span class="p">[</span><span class="nx">objectTag</span><span class="p">]</span> <span class="o">=</span>
<span class="nx">cloneableTags</span><span class="p">[</span><span class="nx">regexpTag</span><span class="p">]</span> <span class="o">=</span> <span class="nx">cloneableTags</span><span class="p">[</span><span class="nx">stringTag</span><span class="p">]</span> <span class="o">=</span>
<span class="nx">cloneableTags</span><span class="p">[</span><span class="nx">uint8Tag</span><span class="p">]</span> <span class="o">=</span> <span class="nx">cloneableTags</span><span class="p">[</span><span class="nx">uint8ClampedTag</span><span class="p">]</span> <span class="o">=</span>
<span class="nx">cloneableTags</span><span class="p">[</span><span class="nx">uint16Tag</span><span class="p">]</span> <span class="o">=</span> <span class="nx">cloneableTags</span><span class="p">[</span><span class="nx">uint32Tag</span><span class="p">]</span> <span class="o">=</span> <span class="kc">true</span><span class="p">;</span>
<span class="nx">cloneableTags</span><span class="p">[</span><span class="nx">errorTag</span><span class="p">]</span> <span class="o">=</span> <span class="nx">cloneableTags</span><span class="p">[</span><span class="nx">funcTag</span><span class="p">]</span> <span class="o">=</span>
<span class="nx">cloneableTags</span><span class="p">[</span><span class="nx">mapTag</span><span class="p">]</span> <span class="o">=</span> <span class="nx">cloneableTags</span><span class="p">[</span><span class="nx">setTag</span><span class="p">]</span> <span class="o">=</span>
<span class="nx">cloneableTags</span><span class="p">[</span><span class="nx">weakMapTag</span><span class="p">]</span> <span class="o">=</span> <span class="kc">false</span><span class="p">;</span>
<span class="cm">/** Used to map latin-1 supplementary letters to basic latin letters. */</span>
<span class="kd">var</span> <span class="nx">deburredLetters</span> <span class="o">=</span> <span class="p">{</span>
<span class="s1">'\xc0'</span><span class="o">:</span> <span class="s1">'A'</span><span class="p">,</span> <span class="s1">'\xc1'</span><span class="o">:</span> <span class="s1">'A'</span><span class="p">,</span> <span class="s1">'\xc2'</span><span class="o">:</span> <span class="s1">'A'</span><span class="p">,</span> <span class="s1">'\xc3'</span><span class="o">:</span> <span class="s1">'A'</span><span class="p">,</span> <span class="s1">'\xc4'</span><span class="o">:</span> <span class="s1">'A'</span><span class="p">,</span> <span class="s1">'\xc5'</span><span class="o">:</span> <span class="s1">'A'</span><span class="p">,</span>
<span class="s1">'\xe0'</span><span class="o">:</span> <span class="s1">'a'</span><span class="p">,</span> <span class="s1">'\xe1'</span><span class="o">:</span> <span class="s1">'a'</span><span class="p">,</span> <span class="s1">'\xe2'</span><span class="o">:</span> <span class="s1">'a'</span><span class="p">,</span> <span class="s1">'\xe3'</span><span class="o">:</span> <span class="s1">'a'</span><span class="p">,</span> <span class="s1">'\xe4'</span><span class="o">:</span> <span class="s1">'a'</span><span class="p">,</span> <span class="s1">'\xe5'</span><span class="o">:</span> <span class="s1">'a'</span><span class="p">,</span>
<span class="s1">'\xc7'</span><span class="o">:</span> <span class="s1">'C'</span><span class="p">,</span> <span class="s1">'\xe7'</span><span class="o">:</span> <span class="s1">'c'</span><span class="p">,</span>
<span class="s1">'\xd0'</span><span class="o">:</span> <span class="s1">'D'</span><span class="p">,</span> <span class="s1">'\xf0'</span><span class="o">:</span> <span class="s1">'d'</span><span class="p">,</span>
<span class="s1">'\xc8'</span><span class="o">:</span> <span class="s1">'E'</span><span class="p">,</span> <span class="s1">'\xc9'</span><span class="o">:</span> <span class="s1">'E'</span><span class="p">,</span> <span class="s1">'\xca'</span><span class="o">:</span> <span class="s1">'E'</span><span class="p">,</span> <span class="s1">'\xcb'</span><span class="o">:</span> <span class="s1">'E'</span><span class="p">,</span>
<span class="s1">'\xe8'</span><span class="o">:</span> <span class="s1">'e'</span><span class="p">,</span> <span class="s1">'\xe9'</span><span class="o">:</span> <span class="s1">'e'</span><span class="p">,</span> <span class="s1">'\xea'</span><span class="o">:</span> <span class="s1">'e'</span><span class="p">,</span> <span class="s1">'\xeb'</span><span class="o">:</span> <span class="s1">'e'</span><span class="p">,</span>
<span class="s1">'\xcC'</span><span class="o">:</span> <span class="s1">'I'</span><span class="p">,</span> <span class="s1">'\xcd'</span><span class="o">:</span> <span class="s1">'I'</span><span class="p">,</span> <span class="s1">'\xce'</span><span class="o">:</span> <span class="s1">'I'</span><span class="p">,</span> <span class="s1">'\xcf'</span><span class="o">:</span> <span class="s1">'I'</span><span class="p">,</span>
<span class="s1">'\xeC'</span><span class="o">:</span> <span class="s1">'i'</span><span class="p">,</span> <span class="s1">'\xed'</span><span class="o">:</span> <span class="s1">'i'</span><span class="p">,</span> <span class="s1">'\xee'</span><span class="o">:</span> <span class="s1">'i'</span><span class="p">,</span> <span class="s1">'\xef'</span><span class="o">:</span> <span class="s1">'i'</span><span class="p">,</span>
<span class="s1">'\xd1'</span><span class="o">:</span> <span class="s1">'N'</span><span class="p">,</span> <span class="s1">'\xf1'</span><span class="o">:</span> <span class="s1">'n'</span><span class="p">,</span>
<span class="s1">'\xd2'</span><span class="o">:</span> <span class="s1">'O'</span><span class="p">,</span> <span class="s1">'\xd3'</span><span class="o">:</span> <span class="s1">'O'</span><span class="p">,</span> <span class="s1">'\xd4'</span><span class="o">:</span> <span class="s1">'O'</span><span class="p">,</span> <span class="s1">'\xd5'</span><span class="o">:</span> <span class="s1">'O'</span><span class="p">,</span> <span class="s1">'\xd6'</span><span class="o">:</span> <span class="s1">'O'</span><span class="p">,</span> <span class="s1">'\xd8'</span><span class="o">:</span> <span class="s1">'O'</span><span class="p">,</span>
<span class="s1">'\xf2'</span><span class="o">:</span> <span class="s1">'o'</span><span class="p">,</span> <span class="s1">'\xf3'</span><span class="o">:</span> <span class="s1">'o'</span><span class="p">,</span> <span class="s1">'\xf4'</span><span class="o">:</span> <span class="s1">'o'</span><span class="p">,</span> <span class="s1">'\xf5'</span><span class="o">:</span> <span class="s1">'o'</span><span class="p">,</span> <span class="s1">'\xf6'</span><span class="o">:</span> <span class="s1">'o'</span><span class="p">,</span> <span class="s1">'\xf8'</span><span class="o">:</span> <span class="s1">'o'</span><span class="p">,</span>
<span class="s1">'\xd9'</span><span class="o">:</span> <span class="s1">'U'</span><span class="p">,</span> <span class="s1">'\xda'</span><span class="o">:</span> <span class="s1">'U'</span><span class="p">,</span> <span class="s1">'\xdb'</span><span class="o">:</span> <span class="s1">'U'</span><span class="p">,</span> <span class="s1">'\xdc'</span><span class="o">:</span> <span class="s1">'U'</span><span class="p">,</span>
<span class="s1">'\xf9'</span><span class="o">:</span> <span class="s1">'u'</span><span class="p">,</span> <span class="s1">'\xfa'</span><span class="o">:</span> <span class="s1">'u'</span><span class="p">,</span> <span class="s1">'\xfb'</span><span class="o">:</span> <span class="s1">'u'</span><span class="p">,</span> <span class="s1">'\xfc'</span><span class="o">:</span> <span class="s1">'u'</span><span class="p">,</span>
<span class="s1">'\xdd'</span><span class="o">:</span> <span class="s1">'Y'</span><span class="p">,</span> <span class="s1">'\xfd'</span><span class="o">:</span> <span class="s1">'y'</span><span class="p">,</span> <span class="s1">'\xff'</span><span class="o">:</span> <span class="s1">'y'</span><span class="p">,</span>
<span class="s1">'\xc6'</span><span class="o">:</span> <span class="s1">'Ae'</span><span class="p">,</span> <span class="s1">'\xe6'</span><span class="o">:</span> <span class="s1">'ae'</span><span class="p">,</span>
<span class="s1">'\xde'</span><span class="o">:</span> <span class="s1">'Th'</span><span class="p">,</span> <span class="s1">'\xfe'</span><span class="o">:</span> <span class="s1">'th'</span><span class="p">,</span>
<span class="s1">'\xdf'</span><span class="o">:</span> <span class="s1">'ss'</span>
<span class="p">};</span>
<span class="cm">/** Used to map characters to HTML entities. */</span>
<span class="kd">var</span> <span class="nx">htmlEscapes</span> <span class="o">=</span> <span class="p">{</span>
<span class="s1">'&'</span><span class="o">:</span> <span class="s1">'&amp;'</span><span class="p">,</span>
<span class="s1">'<'</span><span class="o">:</span> <span class="s1">'&lt;'</span><span class="p">,</span>
<span class="s1">'>'</span><span class="o">:</span> <span class="s1">'&gt;'</span><span class="p">,</span>
<span class="s1">'"'</span><span class="o">:</span> <span class="s1">'&quot;'</span><span class="p">,</span>
<span class="s2">"'"</span><span class="o">:</span> <span class="s1">'&#39;'</span><span class="p">,</span>
<span class="s1">'`'</span><span class="o">:</span> <span class="s1">'&#96;'</span>
<span class="p">};</span>
<span class="cm">/** Used to map HTML entities to characters. */</span>
<span class="kd">var</span> <span class="nx">htmlUnescapes</span> <span class="o">=</span> <span class="p">{</span>
<span class="s1">'&amp;'</span><span class="o">:</span> <span class="s1">'&'</span><span class="p">,</span>
<span class="s1">'&lt;'</span><span class="o">:</span> <span class="s1">'<'</span><span class="p">,</span>
<span class="s1">'&gt;'</span><span class="o">:</span> <span class="s1">'>'</span><span class="p">,</span>
<span class="s1">'&quot;'</span><span class="o">:</span> <span class="s1">'"'</span><span class="p">,</span>
<span class="s1">'&#39;'</span><span class="o">:</span> <span class="s2">"'"</span><span class="p">,</span>
<span class="s1">'&#96;'</span><span class="o">:</span> <span class="s1">'`'</span>
<span class="p">};</span>
<span class="cm">/** Used to determine if values are of the language type `Object`. */</span>
<span class="kd">var</span> <span class="nx">objectTypes</span> <span class="o">=</span> <span class="p">{</span>
<span class="s1">'function'</span><span class="o">:</span> <span class="kc">true</span><span class="p">,</span>
<span class="s1">'object'</span><span class="o">:</span> <span class="kc">true</span>
<span class="p">};</span>
<span class="cm">/** Used to escape characters for inclusion in compiled regexes. */</span>
<span class="kd">var</span> <span class="nx">regexpEscapes</span> <span class="o">=</span> <span class="p">{</span>
<span class="s1">'0'</span><span class="o">:</span> <span class="s1">'x30'</span><span class="p">,</span> <span class="s1">'1'</span><span class="o">:</span> <span class="s1">'x31'</span><span class="p">,</span> <span class="s1">'2'</span><span class="o">:</span> <span class="s1">'x32'</span><span class="p">,</span> <span class="s1">'3'</span><span class="o">:</span> <span class="s1">'x33'</span><span class="p">,</span> <span class="s1">'4'</span><span class="o">:</span> <span class="s1">'x34'</span><span class="p">,</span>
<span class="s1">'5'</span><span class="o">:</span> <span class="s1">'x35'</span><span class="p">,</span> <span class="s1">'6'</span><span class="o">:</span> <span class="s1">'x36'</span><span class="p">,</span> <span class="s1">'7'</span><span class="o">:</span> <span class="s1">'x37'</span><span class="p">,</span> <span class="s1">'8'</span><span class="o">:</span> <span class="s1">'x38'</span><span class="p">,</span> <span class="s1">'9'</span><span class="o">:</span> <span class="s1">'x39'</span><span class="p">,</span>
<span class="s1">'A'</span><span class="o">:</span> <span class="s1">'x41'</span><span class="p">,</span> <span class="s1">'B'</span><span class="o">:</span> <span class="s1">'x42'</span><span class="p">,</span> <span class="s1">'C'</span><span class="o">:</span> <span class="s1">'x43'</span><span class="p">,</span> <span class="s1">'D'</span><span class="o">:</span> <span class="s1">'x44'</span><span class="p">,</span> <span class="s1">'E'</span><span class="o">:</span> <span class="s1">'x45'</span><span class="p">,</span> <span class="s1">'F'</span><span class="o">:</span> <span class="s1">'x46'</span><span class="p">,</span>
<span class="s1">'a'</span><span class="o">:</span> <span class="s1">'x61'</span><span class="p">,</span> <span class="s1">'b'</span><span class="o">:</span> <span class="s1">'x62'</span><span class="p">,</span> <span class="s1">'c'</span><span class="o">:</span> <span class="s1">'x63'</span><span class="p">,</span> <span class="s1">'d'</span><span class="o">:</span> <span class="s1">'x64'</span><span class="p">,</span> <span class="s1">'e'</span><span class="o">:</span> <span class="s1">'x65'</span><span class="p">,</span> <span class="s1">'f'</span><span class="o">:</span> <span class="s1">'x66'</span><span class="p">,</span>
<span class="s1">'n'</span><span class="o">:</span> <span class="s1">'x6e'</span><span class="p">,</span> <span class="s1">'r'</span><span class="o">:</span> <span class="s1">'x72'</span><span class="p">,</span> <span class="s1">'t'</span><span class="o">:</span> <span class="s1">'x74'</span><span class="p">,</span> <span class="s1">'u'</span><span class="o">:</span> <span class="s1">'x75'</span><span class="p">,</span> <span class="s1">'v'</span><span class="o">:</span> <span class="s1">'x76'</span><span class="p">,</span> <span class="s1">'x'</span><span class="o">:</span> <span class="s1">'x78'</span>
<span class="p">};</span>
<span class="cm">/** Used to escape characters for inclusion in compiled string literals. */</span>
<span class="kd">var</span> <span class="nx">stringEscapes</span> <span class="o">=</span> <span class="p">{</span>
<span class="s1">'\\'</span><span class="o">:</span> <span class="s1">'\\'</span><span class="p">,</span>
<span class="s2">"'"</span><span class="o">:</span> <span class="s2">"'"</span><span class="p">,</span>
<span class="s1">'\n'</span><span class="o">:</span> <span class="s1">'n'</span><span class="p">,</span>
<span class="s1">'\r'</span><span class="o">:</span> <span class="s1">'r'</span><span class="p">,</span>
<span class="s1">'\u2028'</span><span class="o">:</span> <span class="s1">'u2028'</span><span class="p">,</span>
<span class="s1">'\u2029'</span><span class="o">:</span> <span class="s1">'u2029'</span>
<span class="p">};</span>
<span class="cm">/** Detect free variable `exports`. */</span>
<span class="kd">var</span> <span class="nx">freeExports</span> <span class="o">=</span> <span class="nx">objectTypes</span><span class="p">[</span><span class="k">typeof</span> <span class="nx">exports</span><span class="p">]</span> <span class="o">&&</span> <span class="nx">exports</span> <span class="o">&&</span> <span class="o">!</span><span class="nx">exports</span><span class="p">.</span><span class="nx">nodeType</span> <span class="o">&&</span> <span class="nx">exports</span><span class="p">;</span>
<span class="cm">/** Detect free variable `module`. */</span>
<span class="kd">var</span> <span class="nx">freeModule</span> <span class="o">=</span> <span class="nx">objectTypes</span><span class="p">[</span><span class="k">typeof</span> <span class="nx">module</span><span class="p">]</span> <span class="o">&&</span> <span class="nx">module</span> <span class="o">&&</span> <span class="o">!</span><span class="nx">module</span><span class="p">.</span><span class="nx">nodeType</span> <span class="o">&&</span> <span class="nx">module</span><span class="p">;</span>
<span class="cm">/** Detect free variable `global` from Node.js. */</span>
<span class="kd">var</span> <span class="nx">freeGlobal</span> <span class="o">=</span> <span class="nx">freeExports</span> <span class="o">&&</span> <span class="nx">freeModule</span> <span class="o">&&</span> <span class="k">typeof</span> <span class="nx">global</span> <span class="o">==</span> <span class="s1">'object'</span> <span class="o">&&</span> <span class="nx">global</span> <span class="o">&&</span> <span class="nx">global</span><span class="p">.</span><span class="nb">Object</span> <span class="o">&&</span> <span class="nx">global</span><span class="p">;</span>
<span class="cm">/** Detect free variable `self`. */</span>
<span class="kd">var</span> <span class="nx">freeSelf</span> <span class="o">=</span> <span class="nx">objectTypes</span><span class="p">[</span><span class="k">typeof</span> <span class="nx">self</span><span class="p">]</span> <span class="o">&&</span> <span class="nx">self</span> <span class="o">&&</span> <span class="nx">self</span><span class="p">.</span><span class="nb">Object</span> <span class="o">&&</span> <span class="nx">self</span><span class="p">;</span>
<span class="cm">/** Detect free variable `window`. */</span>
<span class="kd">var</span> <span class="nx">freeWindow</span> <span class="o">=</span> <span class="nx">objectTypes</span><span class="p">[</span><span class="k">typeof</span> <span class="nb">window</span><span class="p">]</span> <span class="o">&&</span> <span class="nb">window</span> <span class="o">&&</span> <span class="nb">window</span><span class="p">.</span><span class="nb">Object</span> <span class="o">&&</span> <span class="nb">window</span><span class="p">;</span>
<span class="cm">/** Detect the popular CommonJS extension `module.exports`. */</span>
<span class="kd">var</span> <span class="nx">moduleExports</span> <span class="o">=</span> <span class="nx">freeModule</span> <span class="o">&&</span> <span class="nx">freeModule</span><span class="p">.</span><span class="nx">exports</span> <span class="o">===</span> <span class="nx">freeExports</span> <span class="o">&&</span> <span class="nx">freeExports</span><span class="p">;</span>
</pre></div>
</td>
</tr>
<tr>
<td class="docs">
<div class="pilwrap">
<a class="pilcrow" href="#section-4" id="section-4">¶</a>
</div>
<div class="dox">
<div class="summary"><p>Used as a reference to the global object.</p>
</div>
<div class="body"><p>The <code>this</code> value is used if it's the global object to avoid Greasemonkey's
restricted <code>window</code> object, otherwise the <code>window</code> object is used.</p>
</div>
</div>
</td>
<td class="code highlight"><div class="highlight"><pre>
<span class="kd">var</span> <span class="nx">root</span> <span class="o">=</span> <span class="nx">freeGlobal</span> <span class="o">||</span> <span class="p">((</span><span class="nx">freeWindow</span> <span class="o">!==</span> <span class="p">(</span><span class="k">this</span> <span class="o">&&</span> <span class="k">this</span><span class="p">.</span><span class="nb">window</span><span class="p">))</span> <span class="o">&&</span> <span class="nx">freeWindow</span><span class="p">)</span> <span class="o">||</span> <span class="nx">freeSelf</span> <span class="o">||</span> <span class="k">this</span><span class="p">;</span>
<span class="cm">/*--------------------------------------------------------------------------*/</span>
</pre></div>
</td>
</tr>
<tr>
<td class="docs">
<div class="pilwrap">
<a class="pilcrow" href="#section-5" id="section-5">¶</a>
</div>
<div class="dox">
<div class="summary"><p>The base implementation of <code>compareAscending</code> which compares values and
sorts them in ascending order without guaranteeing a stable sort.</p>
</div>
<div class="body">
</div>
<div class="details">
<div class="dox_tag_title">API</div>
<div class="dox_tag_detail">
<span class="dox_type">private</span>
</div>
<div class="dox_tag_title">Params</div>
<div class="dox_tag_detail">
<span class="dox_tag_name">value</span>
<span class="dox_type"><em></span>
<span>The value to compare.
</span>
</div>
<div class="dox_tag_detail">
<span class="dox_tag_name">other</span>
<span class="dox_type"></em></span>
<span>The other value to compare.
</span>
</div>
<div class="dox_tag_title">Returns</div>
<div class="dox_tag_detail">
<span class="dox_tag_name"></span>
<span class="dox_type">number</span>
<span>Returns the sort order indicator for <code>value</code>.
</span>
</div>
</div>
</div>
</td>
<td class="code highlight"><div class="highlight"><pre>
<span class="kd">function</span> <span class="nx">baseCompareAscending</span><span class="p">(</span><span class="nx">value</span><span class="p">,</span> <span class="nx">other</span><span class="p">)</span> <span class="p">{</span>
<span class="k">if</span> <span class="p">(</span><span class="nx">value</span> <span class="o">!==</span> <span class="nx">other</span><span class="p">)</span> <span class="p">{</span>
<span class="kd">var</span> <span class="nx">valIsNull</span> <span class="o">=</span> <span class="nx">value</span> <span class="o">===</span> <span class="kc">null</span><span class="p">,</span>
<span class="nx">valIsUndef</span> <span class="o">=</span> <span class="nx">value</span> <span class="o">===</span> <span class="kc">undefined</span><span class="p">,</span>
<span class="nx">valIsReflexive</span> <span class="o">=</span> <span class="nx">value</span> <span class="o">===</span> <span class="nx">value</span><span class="p">;</span>
<span class="kd">var</span> <span class="nx">othIsNull</span> <span class="o">=</span> <span class="nx">other</span> <span class="o">===</span> <span class="kc">null</span><span class="p">,</span>
<span class="nx">othIsUndef</span> <span class="o">=</span> <span class="nx">other</span> <span class="o">===</span> <span class="kc">undefined</span><span class="p">,</span>
<span class="nx">othIsReflexive</span> <span class="o">=</span> <span class="nx">other</span> <span class="o">===</span> <span class="nx">other</span><span class="p">;</span>
<span class="k">if</span> <span class="p">((</span><span class="nx">value</span> <span class="o">></span> <span class="nx">other</span> <span class="o">&&</span> <span class="o">!</span><span class="nx">othIsNull</span><span class="p">)</span> <span class="o">||</span> <span class="o">!</span><span class="nx">valIsReflexive</span> <span class="o">||</span>
<span class="p">(</span><span class="nx">valIsNull</span> <span class