node/test/parallel/test-perf-hooks-histogram-fast-calls.js
Renegade334 e9a0912848 perf_hooks: fix histogram fast call signatures
PR-URL: https://github.com/nodejs/node/pull/59600
Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com>
Reviewed-By: Anna Henningsen <anna@addaleax.net>
2025-09-24 14:11:35 +00:00

36 lines
1.3 KiB
JavaScript

// Flags: --expose-internals --no-warnings --allow-natives-syntax
'use strict';
const common = require('../common');
const assert = require('assert');
const { internalBinding } = require('internal/test/binding');
const histogram = require('perf_hooks').createHistogram();
function testFastMethods() {
histogram.record(1);
histogram.recordDelta();
histogram.percentile(50);
histogram.reset();
}
eval('%PrepareFunctionForOptimization(histogram.record)');
eval('%PrepareFunctionForOptimization(histogram.recordDelta)');
eval('%PrepareFunctionForOptimization(histogram.percentile)');
eval('%PrepareFunctionForOptimization(histogram.reset)');
testFastMethods();
eval('%OptimizeFunctionOnNextCall(histogram.record)');
eval('%OptimizeFunctionOnNextCall(histogram.recordDelta)');
eval('%OptimizeFunctionOnNextCall(histogram.percentile)');
eval('%OptimizeFunctionOnNextCall(histogram.reset)');
testFastMethods();
if (common.isDebug) {
const { getV8FastApiCallCount } = internalBinding('debug');
assert.strictEqual(getV8FastApiCallCount('histogram.record'), 1);
assert.strictEqual(getV8FastApiCallCount('histogram.recordDelta'), 1);
assert.strictEqual(getV8FastApiCallCount('histogram.percentile'), 1);
assert.strictEqual(getV8FastApiCallCount('histogram.reset'), 1);
}