Skip to content

Commit f1b0291

Browse files
jasnellcodebytere
authored andcommitted
events: lazy load perf_hooks for EventTarget
PR-URL: #33717 Reviewed-By: Ruben Bridgewater <[email protected]> Reviewed-By: Zeyu Yang <[email protected]> Reviewed-By: Denys Otrishko <[email protected]> Reviewed-By: Juan José Arboleda <[email protected]> Reviewed-By: Benjamin Gruenbaum <[email protected]> Reviewed-By: Trivikram Kamat <[email protected]>
1 parent d427d7f commit f1b0291

File tree

1 file changed

+9
-2
lines changed

1 file changed

+9
-2
lines changed

lib/internal/event_target.js

+9-2
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@ const {
1919
}
2020
} = require('internal/errors');
2121

22-
const perf_hooks = require('perf_hooks');
2322
const { customInspectSymbol } = require('internal/util');
2423
const { inspect } = require('util');
2524

@@ -30,11 +29,19 @@ const kTarget = Symbol('kTarget');
3029
const kNewListener = Symbol('kNewListener');
3130
const kRemoveListener = Symbol('kRemoveListener');
3231

32+
// Lazy load perf_hooks to avoid the additional overhead on startup
33+
let perf_hooks;
34+
function lazyNow() {
35+
if (perf_hooks === undefined)
36+
perf_hooks = require('perf_hooks');
37+
return perf_hooks.performance.now();
38+
}
39+
3340
class Event {
3441
#type = undefined;
3542
#defaultPrevented = false;
3643
#cancelable = false;
37-
#timestamp = perf_hooks.performance.now();
44+
#timestamp = lazyNow();
3845

3946
// None of these are currently used in the Node.js implementation
4047
// of EventTarget because there is no concept of bubbling or

0 commit comments

Comments
 (0)