summaryrefslogtreecommitdiff
path: root/deps/v8/test/mjsunit/tools/processor-bigint.mjs
diff options
context:
space:
mode:
Diffstat (limited to 'deps/v8/test/mjsunit/tools/processor-bigint.mjs')
-rw-r--r--deps/v8/test/mjsunit/tools/processor-bigint.mjs59
1 files changed, 59 insertions, 0 deletions
diff --git a/deps/v8/test/mjsunit/tools/processor-bigint.mjs b/deps/v8/test/mjsunit/tools/processor-bigint.mjs
new file mode 100644
index 0000000000..8b6cd54e94
--- /dev/null
+++ b/deps/v8/test/mjsunit/tools/processor-bigint.mjs
@@ -0,0 +1,59 @@
+// Copyright 2020 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.
+
+// Flags: --logfile='+' --log --log-maps --log-ic --log-code
+// Flags: --log-function-events --no-predictable
+
+import { Processor } from "../../../tools/system-analyzer/processor.mjs";
+
+// log code start
+function doWork() {
+ let array = [];
+ for (let i = 0; i < 500; i++) {
+ doWorkStep(i, array);
+ }
+ let sum = 0;
+ for (let i = 0; i < 500; i++) {
+ sum += array[i]["property" + i];
+ }
+ return sum;
+}
+
+function doWorkStep(i, array) {
+ const obj = {
+ ["property" + i]: i,
+ };
+ array.push(obj);
+ obj.custom1 = 1;
+ obj.custom2 = 2;
+}
+
+const result = doWork();
+ // log code end
+
+const logString = d8.log.getAndStop();
+assertTrue(logString.length > 0);
+const useBigInts = true;
+const processor = new Processor(useBigInts);
+await processor.processChunk(logString);
+await processor.finalize();
+
+const maps = processor.mapTimeline;
+const ics = processor.icTimeline;
+const scripts = processor.scripts;
+
+(function testResults() {
+ assertEquals(result, 124750);
+ assertTrue(maps.length > 0);
+ assertTrue(ics.length > 0);
+ assertTrue(scripts.length > 0);
+})();
+
+(function testIcKeys() {
+ const keys = new Set();
+ ics.forEach(ic => keys.add(ic.key));
+ assertTrue(keys.has("custom1"));
+ assertTrue(keys.has("custom2"));
+ assertTrue(keys.has("push"));
+})();