| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -53,9 +53,8 @@ void BindingData::SlowScheduleTimer(const FunctionCallbackInfo<Value>& args) { | |||
| 53 | 53 | } | |
| 54 | 54 | } | |
| 55 | 55 | ||
| 56 | - void BindingData::FastScheduleTimer(Local<Object> unused, | ||
| 57 | - Local<Object> receiver, | ||
| 58 | - int64_t duration) { | ||
| 56 | + void BindingData::FastScheduleTimer(Local<Object> receiver, int64_t duration) { | ||
| 57 | + TRACK_V8_FAST_API_CALL("timers.scheduleTimer"); | ||
| 59 | 58 | ScheduleTimerImpl(FromJSObject<BindingData>(receiver), duration); | |
| 60 | 59 | } | |
| 61 | 60 | ||
@@ -69,9 +68,8 @@ void BindingData::SlowToggleTimerRef( | |||
| 69 | 68 | args[0]->IsTrue()); | |
| 70 | 69 | } | |
| 71 | 70 | ||
| 72 | - void BindingData::FastToggleTimerRef(Local<Object> unused, | ||
| 73 | - Local<Object> receiver, | ||
| 74 | - bool ref) { | ||
| 71 | + void BindingData::FastToggleTimerRef(Local<Object> receiver, bool ref) { | ||
| 72 | + TRACK_V8_FAST_API_CALL("timers.toggleTimerRef"); | ||
| 75 | 73 | ToggleTimerRefImpl(FromJSObject<BindingData>(receiver), ref); | |
| 76 | 74 | } | |
| 77 | 75 | ||
@@ -85,9 +83,8 @@ void BindingData::SlowToggleImmediateRef( | |||
| 85 | 83 | args[0]->IsTrue()); | |
| 86 | 84 | } | |
| 87 | 85 | ||
| 88 | - void BindingData::FastToggleImmediateRef(Local<Object> unused, | ||
| 89 | - Local<Object> receiver, | ||
| 90 | - bool ref) { | ||
| 86 | + void BindingData::FastToggleImmediateRef(Local<Object> receiver, bool ref) { | ||
| 87 | + TRACK_V8_FAST_API_CALL("timers.toggleImmediateRef"); | ||
| 91 | 88 | ToggleImmediateRefImpl(FromJSObject<BindingData>(receiver), ref); | |
| 92 | 89 | } | |
| 93 | 90 | ||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -31,23 +31,18 @@ class BindingData : public SnapshotableObject { | |||
| 31 | 31 | ||
| 32 | 32 | static void SlowScheduleTimer( | |
| 33 | 33 | const v8::FunctionCallbackInfo<v8::Value>& args); | |
| 34 | - static void FastScheduleTimer(v8::Local<v8::Object> unused, | ||
| 35 | - v8::Local<v8::Object> receiver, | ||
| 34 | + static void FastScheduleTimer(v8::Local<v8::Object> receiver, | ||
| 36 | 35 | int64_t duration); | |
| 37 | 36 | static void ScheduleTimerImpl(BindingData* data, int64_t duration); | |
| 38 | 37 | ||
| 39 | 38 | static void SlowToggleTimerRef( | |
| 40 | 39 | const v8::FunctionCallbackInfo<v8::Value>& args); | |
| 41 | - static void FastToggleTimerRef(v8::Local<v8::Object> unused, | ||
| 42 | - v8::Local<v8::Object> receiver, | ||
| 43 | - bool ref); | ||
| 40 | + static void FastToggleTimerRef(v8::Local<v8::Object> receiver, bool ref); | ||
| 44 | 41 | static void ToggleTimerRefImpl(BindingData* data, bool ref); | |
| 45 | 42 | ||
| 46 | 43 | static void SlowToggleImmediateRef( | |
| 47 | 44 | const v8::FunctionCallbackInfo<v8::Value>& args); | |
| 48 | - static void FastToggleImmediateRef(v8::Local<v8::Object> unused, | ||
| 49 | - v8::Local<v8::Object> receiver, | ||
| 50 | - bool ref); | ||
| 45 | + static void FastToggleImmediateRef(v8::Local<v8::Object> receiver, bool ref); | ||
| 51 | 46 | static void ToggleImmediateRefImpl(BindingData* data, bool ref); | |
| 52 | 47 | ||
| 53 | 48 | static void CreatePerIsolateProperties(IsolateData* isolate_data, | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -0,0 +1,28 @@ | |||
| 1 | + // Flags: --allow-natives-syntax --expose-internals --no-warnings | ||
| 2 | + 'use strict'; | ||
| 3 | + | ||
| 4 | + const common = require('../common'); | ||
| 5 | + const assert = require('assert'); | ||
| 6 | + | ||
| 7 | + const { internalBinding } = require('internal/test/binding'); | ||
| 8 | + const binding = internalBinding('timers'); | ||
| 9 | + | ||
| 10 | + function testFastCalls() { | ||
| 11 | + binding.scheduleTimer(1); | ||
| 12 | + binding.toggleTimerRef(true); | ||
| 13 | + binding.toggleTimerRef(false); | ||
| 14 | + binding.toggleImmediateRef(true); | ||
| 15 | + binding.toggleImmediateRef(false); | ||
| 16 | + } | ||
| 17 | + | ||
| 18 | + eval('%PrepareFunctionForOptimization(testFastCalls)'); | ||
| 19 | + testFastCalls(); | ||
| 20 | + eval('%OptimizeFunctionOnNextCall(testFastCalls)'); | ||
| 21 | + testFastCalls(); | ||
| 22 | + | ||
| 23 | + if (common.isDebug) { | ||
| 24 | + const { getV8FastApiCallCount } = internalBinding('debug'); | ||
| 25 | + assert.strictEqual(getV8FastApiCallCount('timers.scheduleTimer'), 1); | ||
| 26 | + assert.strictEqual(getV8FastApiCallCount('timers.toggleTimerRef'), 2); | ||
| 27 | + assert.strictEqual(getV8FastApiCallCount('timers.toggleImmediateRef'), 2); | ||
| 28 | + } | ||
| Back | FazBrowse Home | New Git URL |
0 commit comments