Index: test/js-perf-test/RestParameters/rest.js |
diff --git a/test/js-perf-test/RestParameters/rest.js b/test/js-perf-test/RestParameters/rest.js |
index cf52f5f45f50859c37ca8452fef6e45829d26aed..1e5f67a362af3da94e314aa3a887166aeed561e7 100644 |
--- a/test/js-perf-test/RestParameters/rest.js |
+++ b/test/js-perf-test/RestParameters/rest.js |
@@ -7,6 +7,18 @@ new BenchmarkSuite('Basic1', [1000], [ |
BasicRest1, BasicRest1Setup, BasicRest1TearDown) |
]); |
+new BenchmarkSuite('ReturnArgsBabel', [10000], [ |
+ new Benchmark('ReturnArgsBabel', false, false, 0, |
+ ReturnArgsBabel, ReturnArgsBabelSetup, |
+ ReturnArgsBabelTearDown) |
+]); |
+ |
+new BenchmarkSuite('ReturnArgsNative', [10000], [ |
+ new Benchmark('ReturnArgsNative', false, false, 0, |
+ ReturnArgsNative, ReturnArgsNativeSetup, |
+ ReturnArgsNativeTearDown) |
+]); |
+ |
// ---------------------------------------------------------------------------- |
var result; |
@@ -28,3 +40,57 @@ function BasicRest1() { |
function BasicRest1TearDown() { |
return result == 550; |
} |
+ |
+// ---------------------------------------------------------------------------- |
+ |
+var length = 50; |
+var numbers = Array.apply(null, {length}).map(Number.call, Number); |
+var strings = numbers.map(String.call, String); |
+ |
+function ReturnArgsBabelFunction(unused) { |
+ "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; |
+} |
+ |
+function ReturnArgsBabelSetup() { |
+ // Warm up with FAST_HOLEY_ELEMENTS |
+ result = ReturnArgsBabelFunction(...strings); |
+ // Warm up with FAST_HOLEY_SMI_ELEMENTS |
+ result = ReturnArgsBabelFunction(...numbers); |
+} |
+ |
+function ReturnArgsBabel() { |
+ result = ReturnArgsBabelFunction(...strings); |
+ result = ReturnArgsBabelFunction(...numbers); |
+} |
+ |
+function ReturnArgsBabelTearDown() { |
+ return result.indexOf(0) === 0; |
+} |
+ |
+// ---------------------------------------------------------------------------- |
+ |
+function ReturnArgsNativeFunction(unused, ...args) { |
+ return args; |
+} |
+ |
+function ReturnArgsNativeSetup() { |
+ // Warm up with FAST_HOLEY_ELEMENTS |
+ result = ReturnArgsNativeFunction(...strings); |
+ // Warm up with FAST_HOLEY_SMI_ELEMENTS |
+ result = ReturnArgsNativeFunction(...numbers); |
+} |
+ |
+function ReturnArgsNative() { |
+ result = ReturnArgsNativeFunction(...strings); |
+ result = ReturnArgsNativeFunction(...numbers); |
+} |
+ |
+function ReturnArgsNativeTearDown() { |
+ return result.indexOf(0) === 0; |
+} |