v8/test
bmeurer 07e163bd5a [js-perf-test] Add microbenchmarks for materialized rest parameters.
Functions that take mandatory parameters plus a number of optional
parameters, that need to be materialized as an Array are quite common.
The simplest possible case of this is essentially:

  function foo(mandatory, ...args) { return args; }

Babel translates this to something like:

  function foo(mandatory) {
    "use strict";
    for (var _len = arguments.length,
             args = Array(_len > 1 ? _len - 1 : 0),
             _key = 1; _key < _len; _key++) {
      args[_key - 1] = arguments[_key];
    }
    return args;
  }

The key to great performance here is to make sure that we don't
materialize the (unmapped) arguments object in this case, plus that we
have some kind of fast-path for the Array constructor and the
initialization loop.

This microbenchmark ensures that we have decent performance even in the
case where the assignment to args is polymorphic, i.e. the arguments
have seen different elements kinds, starting with FAST_HOLEY_ELEMENTS
and then FAST_HOLEY_SMI_ELEMENTS.

R=yangguo@chromium.org
BUG=v8:6262

Review-Url: https://codereview.chromium.org/2823343004
Cr-Commit-Position: refs/heads/master@{#44709}
2017-04-19 05:25:40 +00:00
..
benchmarks
cctest [wasm] Implement first set of SIMD I8x16 ops 2017-04-18 23:23:12 +00:00
common [wasm] Refactor wasm::Result type 2017-04-10 12:26:51 +00:00
debugger [build] Remove remaining disable-inspector options in GN 2017-04-05 17:59:07 +00:00
fuzzer [wasm] Implement extensible name section 2017-04-07 16:31:47 +00:00
inspector [inspector] move console to builtins 2017-04-18 20:50:30 +00:00
intl [intl] Mark date-format/timezone as pass/fail 2017-04-18 22:37:05 +00:00
js-perf-test [js-perf-test] Add microbenchmarks for materialized rest parameters. 2017-04-19 05:25:40 +00:00
memory
message [asm.js] Test and fix function table definition failures. 2017-04-11 16:46:26 +00:00
mjsunit Add flag to make __defineGetter__ & co. behave as strict functions 2017-04-18 21:40:14 +00:00
mozilla [asm.js] Widen test coverage to cctest and friends. 2017-03-28 08:00:40 +00:00
preparser
promises-aplus
simdjs Store the FunctionTemplateInfo used to create remote objects in the map 2017-03-15 15:57:38 +00:00
test262 Add flag to make __defineGetter__ & co. behave as strict functions 2017-04-18 21:40:14 +00:00
unittests [asm.js] Use token position instead of stream position. 2017-04-18 18:15:00 +00:00
webkit [asm.js] Widen test coverage to message tests. 2017-03-29 08:42:32 +00:00
bot_default.gyp [build] Make inspector the default in gyp 2017-03-30 15:08:31 +00:00
bot_default.isolate Revert of Introduce mkgrokdump to update tools/v8heapconst.py. (patchset #19 id:350001 of https://codereview.chromium.org/2809653003/ ) 2017-04-18 14:41:13 +00:00
BUILD.gn Revert of Introduce mkgrokdump to update tools/v8heapconst.py. (patchset #19 id:350001 of https://codereview.chromium.org/2809653003/ ) 2017-04-18 14:41:13 +00:00
default.gyp [build] Make inspector the default in gyp 2017-03-30 15:08:31 +00:00
default.isolate Revert of Introduce mkgrokdump to update tools/v8heapconst.py. (patchset #19 id:350001 of https://codereview.chromium.org/2809653003/ ) 2017-04-18 14:41:13 +00:00
optimize_for_size.gyp
optimize_for_size.isolate
perf.gyp
perf.isolate Remove SIMD.js from V8. 2017-02-14 06:57:25 +00:00