@@ -85,9 +85,12 @@ const messageTypes = {
85
85
LOAD_SCRIPT : 'loadScript' ,
86
86
} ;
87
87
88
- let messageEvent ;
89
- function lazyMessageEvent ( ) {
90
- return messageEvent ??= require ( 'internal/deps/undici/undici' ) . MessageEvent ;
88
+ // createFastMessageEvent skips webidl argument validation when the arguments
89
+ // passed are known to be valid.
90
+ let fastCreateMessageEvent ;
91
+ function lazyMessageEvent ( type , init ) {
92
+ fastCreateMessageEvent ??= require ( 'internal/deps/undici/undici' ) . createFastMessageEvent ;
93
+ return fastCreateMessageEvent ( type , init ) ;
91
94
}
92
95
93
96
// We have to mess with the MessagePort prototype a bit, so that a) we can make
@@ -128,7 +131,7 @@ ObjectDefineProperty(
128
131
}
129
132
const ports = this [ kCurrentlyReceivingPorts ] ;
130
133
this [ kCurrentlyReceivingPorts ] = undefined ;
131
- return new ( lazyMessageEvent ( ) ) ( type , { data, ports } ) ;
134
+ return lazyMessageEvent ( type , { data, ports } ) ;
132
135
} ,
133
136
configurable : false ,
134
137
writable : false ,
@@ -321,7 +324,7 @@ function receiveMessageOnPort(port) {
321
324
}
322
325
323
326
function onMessageEvent ( type , data ) {
324
- this . dispatchEvent ( new ( lazyMessageEvent ( ) ) ( type , { data } ) ) ;
327
+ this . dispatchEvent ( lazyMessageEvent ( type , { data } ) ) ;
325
328
}
326
329
327
330
function isBroadcastChannel ( value ) {
0 commit comments