11'use strict' ;
22
33const {
4+ ArrayPrototypeMap,
5+ ArrayPrototypePush,
6+ FunctionPrototypeCall,
47 ObjectAssign,
58 ObjectCreate,
69 ObjectDefineProperty,
710 ObjectGetOwnPropertyDescriptors,
811 ObjectGetPrototypeOf,
912 ObjectSetPrototypeOf,
13+ ReflectApply,
1014 Symbol,
1115} = primordials ;
1216
@@ -87,7 +91,7 @@ ObjectDefineProperty(
8791 {
8892 value : function ( data , type ) {
8993 if ( type !== 'message' && type !== 'messageerror' ) {
90- return originalCreateEvent . call ( this , data , type ) ;
94+ return ReflectApply ( originalCreateEvent , this , arguments ) ;
9195 }
9296 return new MessageEvent ( data , this , type ) ;
9397 } ,
@@ -131,7 +135,7 @@ ObjectDefineProperty(MessagePort.prototype, handleOnCloseSymbol, {
131135MessagePort . prototype . close = function ( cb ) {
132136 if ( typeof cb === 'function' )
133137 this . once ( 'close' , cb ) ;
134- MessagePortPrototype . close . call ( this ) ;
138+ FunctionPrototypeCall ( MessagePortPrototype . close , this ) ;
135139} ;
136140
137141ObjectDefineProperty ( MessagePort . prototype , inspect . custom , {
@@ -142,7 +146,7 @@ ObjectDefineProperty(MessagePort.prototype, inspect.custom, {
142146 try {
143147 // This may throw when `this` does not refer to a native object,
144148 // e.g. when accessing the prototype directly.
145- ref = MessagePortPrototype . hasRef . call ( this ) ;
149+ ref = FunctionPrototypeCall ( MessagePortPrototype . hasRef , this ) ;
146150 } catch { return this ; }
147151 return ObjectAssign ( ObjectCreate ( MessagePort . prototype ) ,
148152 ref === undefined ? {
@@ -170,18 +174,18 @@ function setupPortReferencing(port, eventEmitter, eventName) {
170174 const origNewListener = eventEmitter [ kNewListener ] ;
171175 eventEmitter [ kNewListener ] = function ( size , type , ...args ) {
172176 if ( type === eventName ) newListener ( size - 1 ) ;
173- return origNewListener . call ( this , size , type , ... args ) ;
177+ return ReflectApply ( origNewListener , this , arguments ) ;
174178 } ;
175179 const origRemoveListener = eventEmitter [ kRemoveListener ] ;
176180 eventEmitter [ kRemoveListener ] = function ( size , type , ...args ) {
177181 if ( type === eventName ) removeListener ( size ) ;
178- return origRemoveListener . call ( this , size , type , ... args ) ;
182+ return ReflectApply ( origRemoveListener , this , arguments ) ;
179183 } ;
180184
181185 function newListener ( size ) {
182186 if ( size === 0 ) {
183187 port . ref ( ) ;
184- MessagePortPrototype . start . call ( port ) ;
188+ FunctionPrototypeCall ( MessagePortPrototype . start , port ) ;
185189 }
186190 }
187191
@@ -235,9 +239,10 @@ class WritableWorkerStdio extends Writable {
235239 this [ kPort ] . postMessage ( {
236240 type : messageTypes . STDIO_PAYLOAD ,
237241 stream : this [ kName ] ,
238- chunks : chunks . map ( ( { chunk, encoding } ) => ( { chunk, encoding } ) )
242+ chunks : ArrayPrototypeMap ( chunks ,
243+ ( { chunk, encoding } ) => ( { chunk, encoding } ) ) ,
239244 } ) ;
240- this [ kWritableCallbacks ] . push ( cb ) ;
245+ ArrayPrototypePush ( this [ kWritableCallbacks ] , cb ) ;
241246 if ( this [ kPort ] [ kWaitingStreams ] ++ === 0 )
242247 this [ kPort ] . ref ( ) ;
243248 }
0 commit comments