Skip to content

Commit 817c39a

Browse files
authored
Update flatten helper without recursion (#5454)
1 parent 0f02c50 commit 817c39a

File tree

8 files changed

+8
-30
lines changed

8 files changed

+8
-30
lines changed

docs/v2/annotated-source/coffeescript.html

+1-1
Original file line numberDiff line numberDiff line change
@@ -824,7 +824,7 @@ <h1>coffeescript.coffee</h1>
824824
<span class="hljs-string">&quot;<span class="hljs-subst">#{err.toString()}</span>\n<span class="hljs-subst">#{frames.join <span class="hljs-string">&#x27;\n&#x27;</span>}</span>\n&quot;</span>
825825
<span class="hljs-function">
826826
<span class="hljs-title">checkShebangLine</span> = <span class="hljs-params">(file, input)</span> -&gt;</span>
827-
firstLine = input.split(<span class="hljs-regexp">/$/m</span>)[<span class="hljs-number">0</span>]
827+
firstLine = input.split(<span class="hljs-regexp">/$/m</span>, <span class="hljs-number">1</span>)[<span class="hljs-number">0</span>]
828828
rest = firstLine?.match(<span class="hljs-regexp">/^#!\s*([^\s]+\s*)(.*)/</span>)
829829
args = rest?[<span class="hljs-number">2</span>]?.split(<span class="hljs-regexp">/\s/</span>).filter (s) -&gt; s <span class="hljs-keyword">isnt</span> <span class="hljs-string">&#x27;&#x27;</span>
830830
<span class="hljs-keyword">if</span> args?.length &gt; <span class="hljs-number">1</span>

docs/v2/annotated-source/helpers.html

+1-7
Original file line numberDiff line numberDiff line change
@@ -275,13 +275,7 @@ <h1>helpers.coffee</h1>
275275
</div>
276276

277277
<div class="content"><div class='highlight'><pre><span class="hljs-built_in">exports</span>.flatten = flatten = <span class="hljs-function"><span class="hljs-params">(array)</span> -&gt;</span>
278-
flattened = []
279-
<span class="hljs-keyword">for</span> element <span class="hljs-keyword">in</span> array
280-
<span class="hljs-keyword">if</span> <span class="hljs-string">&#x27;[object Array]&#x27;</span> <span class="hljs-keyword">is</span> Object::toString.call element
281-
flattened = flattened.concat flatten element
282-
<span class="hljs-keyword">else</span>
283-
flattened.push element
284-
flattened</pre></div></div>
278+
array.flat(<span class="hljs-literal">Infinity</span>)</pre></div></div>
285279

286280
</li>
287281

docs/v2/browser-compiler-legacy/coffeescript.js

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

docs/v2/browser-compiler-modern/coffeescript.js

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

lib/coffeescript-browser-compiler-legacy/coffeescript.js

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

lib/coffeescript-browser-compiler-modern/coffeescript.js

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

lib/coffeescript/helpers.js

+1-11
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/helpers.coffee

+1-7
Original file line numberDiff line numberDiff line change
@@ -47,13 +47,7 @@ extend = exports.extend = (object, properties) ->
4747
# Return a flattened version of an array.
4848
# Handy for getting a list of `children` from the nodes.
4949
exports.flatten = flatten = (array) ->
50-
flattened = []
51-
for element in array
52-
if '[object Array]' is Object::toString.call element
53-
flattened = flattened.concat flatten element
54-
else
55-
flattened.push element
56-
flattened
50+
array.flat(Infinity)
5751

5852
# Delete a key from an object, returning the value. Useful when a node is
5953
# looking for a particular method in an options hash.

0 commit comments

Comments
 (0)