12014-04-14 Andreas Kling <akling@apple.com>
2
3 Array.prototype.concat should allocate output storage only once.
4 <https://webkit.org/b/131609>
5
6 Do a first pass across 'this' and any arguments to compute the
7 final size of the resulting array from Array.prototype.concat.
8 This avoids having to grow the output incrementally as we go.
9
10 This also includes two other micro-optimizations:
11
12 - Mark getProperty() with ALWAYS_INLINE.
13
14 - Use JSArray::length() instead of taking the generic property
15 lookup path when we know an argument is an Array.
16
17 My MBP says ~3% progression on Dromaeo/jslib-traverse-jquery.
18
19 Reviewed by NOBODY (OOPS!).
20
21 * runtime/ArrayPrototype.cpp:
22 (JSC::getProperty):
23 (JSC::arrayProtoFuncConcat):
24