summaryrefslogtreecommitdiff
path: root/deps/v8/test/js-perf-test/ArrayInOperator
diff options
context:
space:
mode:
authorUjjwal Sharma <usharma1998@gmail.com>2019-03-15 18:35:06 +0530
committerRefael Ackermann <refack@gmail.com>2019-03-28 16:36:18 -0400
commitf579e1194046c50f2e6bb54348d48c8e7d1a53cf (patch)
tree9125787c758358365f74f9fd9673c14f57e67870 /deps/v8/test/js-perf-test/ArrayInOperator
parent2c73868b0471fbd4038f500d076df056cbf697fe (diff)
downloadandroid-node-v8-f579e1194046c50f2e6bb54348d48c8e7d1a53cf.tar.gz
android-node-v8-f579e1194046c50f2e6bb54348d48c8e7d1a53cf.tar.bz2
android-node-v8-f579e1194046c50f2e6bb54348d48c8e7d1a53cf.zip
deps: update V8 to 7.4.288.13
PR-URL: https://github.com/nodejs/node/pull/26685 Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Michaƫl Zasso <targos@protonmail.com> Reviewed-By: Refael Ackermann <refack@gmail.com>
Diffstat (limited to 'deps/v8/test/js-perf-test/ArrayInOperator')
-rw-r--r--deps/v8/test/js-perf-test/ArrayInOperator/run.js245
1 files changed, 245 insertions, 0 deletions
diff --git a/deps/v8/test/js-perf-test/ArrayInOperator/run.js b/deps/v8/test/js-perf-test/ArrayInOperator/run.js
new file mode 100644
index 0000000000..db63584499
--- /dev/null
+++ b/deps/v8/test/js-perf-test/ArrayInOperator/run.js
@@ -0,0 +1,245 @@
+// Copyright 2019 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Compare `in` operator on different types of arrays.
+
+const size = 1e5;
+let packed_smi = [];
+let packed_double = [];
+let packed_elements = [];
+let holey_smi = new Array(size);
+let holey_double = new Array(size);
+let holey_elements = new Array(size);
+let sparse_smi = new Array(size);
+let sparse_double = new Array(size);
+let sparse_elements = new Array(size);
+let typed_uint8 = new Uint8Array(size);
+let typed_int32 = new Int32Array(size);
+let typed_float = new Float64Array(size);
+
+for (let i = 0; i < size; ++i) {
+ packed_smi[i] = i;
+ packed_double[i] = i + 0.1;
+ packed_elements[i] = "" + i;
+ holey_smi[i] = i;
+ holey_double[i] = i + 0.1;
+ holey_elements[i] = "" + i;
+ typed_uint8[i] = i % 0x100;
+ typed_int32[i] = i;
+ typed_float[i] = i + 0.1;
+}
+
+let sparse = 0;
+for (let i = 0; i < size; i += 100) {
+ ++sparse;
+ sparse_smi[i] = i;
+ sparse_double[i] = i + 0.1;
+ sparse_elements[i] = "" + i;
+}
+
+// ----------------------------------------------------------------------------
+// Benchmark: Packed SMI
+// ----------------------------------------------------------------------------
+
+function PackedSMI() {
+ let cnt = 0;
+ let ary = packed_smi;
+ for (let i = 0; i < ary.length; ++i) {
+ if (i in ary) ++cnt;
+ }
+
+ if (cnt != size) throw 666;
+}
+
+// ----------------------------------------------------------------------------
+// Benchmark: Packed Double
+// ----------------------------------------------------------------------------
+
+function PackedDouble() {
+ let cnt = 0;
+ let ary = packed_double;
+ for (let i = 0; i < ary.length; ++i) {
+ if (i in ary) ++cnt;
+ }
+
+ if (cnt != size) throw 666;
+}
+
+// ----------------------------------------------------------------------------
+// Benchmark: Packed Elements
+// ----------------------------------------------------------------------------
+
+function PackedElements() {
+ let cnt = 0;
+ let ary = packed_elements;
+ for (let i = 0; i < ary.length; ++i) {
+ if (i in ary) ++cnt;
+ }
+
+ if (cnt != size) throw 666;
+}
+
+// ----------------------------------------------------------------------------
+// Benchmark: Holey SMI
+// ----------------------------------------------------------------------------
+
+function HoleySMI() {
+ let cnt = 0;
+ let ary = holey_smi;
+ for (let i = 0; i < ary.length; ++i) {
+ if (i in ary) ++cnt;
+ }
+
+ if (cnt != size) throw 666;
+}
+
+// ----------------------------------------------------------------------------
+// Benchmark: Holey Double
+// ----------------------------------------------------------------------------
+
+function HoleyDouble() {
+ let cnt = 0;
+ let ary = holey_double;
+ for (let i = 0; i < ary.length; ++i) {
+ if (i in ary) ++cnt;
+ }
+
+ if (cnt != size) throw 666;
+}
+
+// ----------------------------------------------------------------------------
+// Benchmark: Holey Elements
+// ----------------------------------------------------------------------------
+
+function HoleyElements() {
+ let cnt = 0;
+ let ary = holey_elements;
+ for (let i = 0; i < ary.length; ++i) {
+ if (i in ary) ++cnt;
+ }
+
+ if (cnt != size) throw 666;
+}
+
+// ----------------------------------------------------------------------------
+// Benchmark: Sparse SMI
+// ----------------------------------------------------------------------------
+
+function SparseSMI() {
+ let cnt = 0;
+ let ary = sparse_smi;
+ for (let i = 0; i < ary.length; ++i) {
+ if (i in ary) ++cnt;
+ }
+
+ if (cnt != sparse) throw 666;
+}
+
+// ----------------------------------------------------------------------------
+// Benchmark: Sparse Double
+// ----------------------------------------------------------------------------
+
+function SparseDouble() {
+ let cnt = 0;
+ let ary = sparse_double;
+ for (let i = 0; i < ary.length; ++i) {
+ if (i in ary) ++cnt;
+ }
+
+ if (cnt != sparse) throw 666;
+}
+
+// ----------------------------------------------------------------------------
+// Benchmark: Sparse Elements
+// ----------------------------------------------------------------------------
+
+function SparseElements() {
+ let cnt = 0;
+ let ary = sparse_elements;
+ for (let i = 0; i < ary.length; ++i) {
+ if (i in ary) ++cnt;
+ }
+
+ if (cnt != sparse) throw 666;
+}
+
+// ----------------------------------------------------------------------------
+// Benchmark: Typed Uint8
+// ----------------------------------------------------------------------------
+
+function TypedUint8() {
+ let cnt = 0;
+ let ary = typed_uint8;
+ for (let i = 0; i < ary.length; ++i) {
+ if (i in ary) ++cnt;
+ }
+
+ if (cnt != size) throw 666;
+}
+
+// ----------------------------------------------------------------------------
+// Benchmark: Typed Int32
+// ----------------------------------------------------------------------------
+
+function TypedInt32() {
+ let cnt = 0;
+ let ary = typed_int32;
+ for (let i = 0; i < ary.length; ++i) {
+ if (i in ary) ++cnt;
+ }
+
+ if (cnt != size) throw 666;
+}
+
+// ----------------------------------------------------------------------------
+// Benchmark: Typed Float64
+// ----------------------------------------------------------------------------
+
+function TypedFloat64() {
+ let cnt = 0;
+ let ary = typed_float;
+ for (let i = 0; i < ary.length; ++i) {
+ if (i in ary) ++cnt;
+ }
+
+ if (cnt != size) throw 666;
+}
+
+// ----------------------------------------------------------------------------
+// Setup and Run
+// ----------------------------------------------------------------------------
+
+load('../base.js');
+
+var success = true;
+
+function PrintResult(name, result) {
+ print(name + '-ArrayInOperator(Score): ' + result);
+}
+
+function PrintError(name, error) {
+ PrintResult('Error: ' + name, error);
+ success = false;
+}
+
+function CreateBenchmark(name, f) {
+ new BenchmarkSuite(name, [1000], [ new Benchmark(name, false, false, 5, f) ]);
+}
+
+CreateBenchmark('PackedSMI', PackedSMI);
+CreateBenchmark('PackedDouble', PackedDouble);
+CreateBenchmark('PackedElements', PackedElements);
+CreateBenchmark('HoleySMI', HoleySMI);
+CreateBenchmark('HoleyDouble', HoleyDouble);
+CreateBenchmark('HoleyElements', HoleyElements);
+CreateBenchmark('SparseSMI', SparseSMI);
+CreateBenchmark('SparseDouble', SparseDouble);
+CreateBenchmark('SparseElements', SparseElements);
+CreateBenchmark('TypedUint8', TypedUint8);
+CreateBenchmark('TypedInt32', TypedInt32);
+CreateBenchmark('TypedFloat64', TypedFloat64);
+
+BenchmarkSuite.config.doWarmup = true;
+BenchmarkSuite.config.doDeterministic = true;
+BenchmarkSuite.RunSuites({NotifyResult: PrintResult, NotifyError: PrintError});