diff options
Diffstat (limited to 'deps/v8/test/mjsunit/tools/processor-bigint.mjs')
-rw-r--r-- | deps/v8/test/mjsunit/tools/processor-bigint.mjs | 59 |
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")); +})(); |