File tree 2 files changed +24
-3
lines changed
2 files changed +24
-3
lines changed Original file line number Diff line number Diff line change 1
1
#include " timers.h"
2
+
2
3
#include " env-inl.h"
4
+ #include " node_debug.h"
3
5
#include " node_external_reference.h"
4
6
#include " util-inl.h"
5
7
#include " v8.h"
@@ -35,6 +37,7 @@ void BindingData::SlowGetLibuvNow(const FunctionCallbackInfo<Value>& args) {
35
37
36
38
double BindingData::FastGetLibuvNow (Local<Object> unused,
37
39
Local<Object> receiver) {
40
+ TRACK_V8_FAST_API_CALL (" timers.getLibuvNow" );
38
41
return GetLibuvNowImpl (FromJSObject<BindingData>(receiver));
39
42
}
40
43
Original file line number Diff line number Diff line change
1
+ // Flags: --expose-internals --no-warnings --allow-natives-syntax
1
2
'use strict' ;
2
- // Flags: --expose-internals
3
3
4
- require ( '../common' ) ;
5
- const assert = require ( 'assert' ) ;
4
+ const common = require ( '../common' ) ;
5
+ const assert = require ( 'node: assert' ) ;
6
6
const { internalBinding } = require ( 'internal/test/binding' ) ;
7
7
const binding = internalBinding ( 'timers' ) ;
8
8
9
9
// Return value of getLibuvNow() should easily fit in a SMI after start-up.
10
10
// We need to use the binding as the receiver for fast API calls.
11
11
assert ( binding . getLibuvNow ( ) < 0x3ffffff ) ;
12
+
13
+ {
14
+ // Only javascript methods can be optimized through %OptimizeFunctionOnNextCall
15
+ // This is why we surround the C++ method we want to optimize with a JS function.
16
+ function getLibuvNow ( ) {
17
+ return binding . getLibuvNow ( ) ;
18
+ }
19
+
20
+ eval ( '%PrepareFunctionForOptimization(getLibuvNow)' ) ;
21
+ getLibuvNow ( ) ;
22
+ eval ( '%OptimizeFunctionOnNextCall(getLibuvNow)' ) ;
23
+ assert ( getLibuvNow ( ) < 0x3ffffff ) ;
24
+
25
+ if ( common . isDebug ) {
26
+ const { getV8FastApiCallCount } = internalBinding ( 'debug' ) ;
27
+ assert . strictEqual ( getV8FastApiCallCount ( 'timers.getLibuvNow' ) , 1 ) ;
28
+ }
29
+ }
You can’t perform that action at this time.
0 commit comments