mirror of
https://github.com/zebrajr/node.git
synced 2025-12-06 00:20:08 +01:00
timers: fix binding 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>
This commit is contained in:
parent
4f4d5b348c
commit
8ca5fec567
|
|
@ -53,9 +53,8 @@ void BindingData::SlowScheduleTimer(const FunctionCallbackInfo<Value>& args) {
|
|||
}
|
||||
}
|
||||
|
||||
void BindingData::FastScheduleTimer(Local<Object> unused,
|
||||
Local<Object> receiver,
|
||||
int64_t duration) {
|
||||
void BindingData::FastScheduleTimer(Local<Object> receiver, int64_t duration) {
|
||||
TRACK_V8_FAST_API_CALL("timers.scheduleTimer");
|
||||
ScheduleTimerImpl(FromJSObject<BindingData>(receiver), duration);
|
||||
}
|
||||
|
||||
|
|
@ -69,9 +68,8 @@ void BindingData::SlowToggleTimerRef(
|
|||
args[0]->IsTrue());
|
||||
}
|
||||
|
||||
void BindingData::FastToggleTimerRef(Local<Object> unused,
|
||||
Local<Object> receiver,
|
||||
bool ref) {
|
||||
void BindingData::FastToggleTimerRef(Local<Object> receiver, bool ref) {
|
||||
TRACK_V8_FAST_API_CALL("timers.toggleTimerRef");
|
||||
ToggleTimerRefImpl(FromJSObject<BindingData>(receiver), ref);
|
||||
}
|
||||
|
||||
|
|
@ -85,9 +83,8 @@ void BindingData::SlowToggleImmediateRef(
|
|||
args[0]->IsTrue());
|
||||
}
|
||||
|
||||
void BindingData::FastToggleImmediateRef(Local<Object> unused,
|
||||
Local<Object> receiver,
|
||||
bool ref) {
|
||||
void BindingData::FastToggleImmediateRef(Local<Object> receiver, bool ref) {
|
||||
TRACK_V8_FAST_API_CALL("timers.toggleImmediateRef");
|
||||
ToggleImmediateRefImpl(FromJSObject<BindingData>(receiver), ref);
|
||||
}
|
||||
|
||||
|
|
|
|||
11
src/timers.h
11
src/timers.h
|
|
@ -31,23 +31,18 @@ class BindingData : public SnapshotableObject {
|
|||
|
||||
static void SlowScheduleTimer(
|
||||
const v8::FunctionCallbackInfo<v8::Value>& args);
|
||||
static void FastScheduleTimer(v8::Local<v8::Object> unused,
|
||||
v8::Local<v8::Object> receiver,
|
||||
static void FastScheduleTimer(v8::Local<v8::Object> receiver,
|
||||
int64_t duration);
|
||||
static void ScheduleTimerImpl(BindingData* data, int64_t duration);
|
||||
|
||||
static void SlowToggleTimerRef(
|
||||
const v8::FunctionCallbackInfo<v8::Value>& args);
|
||||
static void FastToggleTimerRef(v8::Local<v8::Object> unused,
|
||||
v8::Local<v8::Object> receiver,
|
||||
bool ref);
|
||||
static void FastToggleTimerRef(v8::Local<v8::Object> receiver, bool ref);
|
||||
static void ToggleTimerRefImpl(BindingData* data, bool ref);
|
||||
|
||||
static void SlowToggleImmediateRef(
|
||||
const v8::FunctionCallbackInfo<v8::Value>& args);
|
||||
static void FastToggleImmediateRef(v8::Local<v8::Object> unused,
|
||||
v8::Local<v8::Object> receiver,
|
||||
bool ref);
|
||||
static void FastToggleImmediateRef(v8::Local<v8::Object> receiver, bool ref);
|
||||
static void ToggleImmediateRefImpl(BindingData* data, bool ref);
|
||||
|
||||
static void CreatePerIsolateProperties(IsolateData* isolate_data,
|
||||
|
|
|
|||
28
test/parallel/test-timers-fast-calls.js
Normal file
28
test/parallel/test-timers-fast-calls.js
Normal file
|
|
@ -0,0 +1,28 @@
|
|||
// Flags: --allow-natives-syntax --expose-internals --no-warnings
|
||||
'use strict';
|
||||
|
||||
const common = require('../common');
|
||||
const assert = require('assert');
|
||||
|
||||
const { internalBinding } = require('internal/test/binding');
|
||||
const binding = internalBinding('timers');
|
||||
|
||||
function testFastCalls() {
|
||||
binding.scheduleTimer(1);
|
||||
binding.toggleTimerRef(true);
|
||||
binding.toggleTimerRef(false);
|
||||
binding.toggleImmediateRef(true);
|
||||
binding.toggleImmediateRef(false);
|
||||
}
|
||||
|
||||
eval('%PrepareFunctionForOptimization(testFastCalls)');
|
||||
testFastCalls();
|
||||
eval('%OptimizeFunctionOnNextCall(testFastCalls)');
|
||||
testFastCalls();
|
||||
|
||||
if (common.isDebug) {
|
||||
const { getV8FastApiCallCount } = internalBinding('debug');
|
||||
assert.strictEqual(getV8FastApiCallCount('timers.scheduleTimer'), 1);
|
||||
assert.strictEqual(getV8FastApiCallCount('timers.toggleTimerRef'), 2);
|
||||
assert.strictEqual(getV8FastApiCallCount('timers.toggleImmediateRef'), 2);
|
||||
}
|
||||
Loading…
Reference in New Issue
Block a user