@@ -97,7 +97,7 @@ export const transferHandlers = new Map<string, TransferHandler>([
9797] ) ;
9898
9999export function expose ( obj : any , ep : Endpoint = self as any ) {
100- ep . addEventListener ( "message" , async function callback ( ev : MessageEvent ) {
100+ ep . addEventListener ( "message" , function callback ( ev : MessageEvent ) {
101101 if ( ! ev || ! ev . data ) {
102102 return ;
103103 }
@@ -113,7 +113,7 @@ export function expose(obj: any, ep: Endpoint = self as any) {
113113 switch ( type ) {
114114 case MessageType . GET :
115115 {
116- returnValue = await rawValue ;
116+ returnValue = rawValue ;
117117 }
118118 break ;
119119 case MessageType . SET :
@@ -124,12 +124,12 @@ export function expose(obj: any, ep: Endpoint = self as any) {
124124 break ;
125125 case MessageType . APPLY :
126126 {
127- returnValue = await rawValue . apply ( parent , argumentList ) ;
127+ returnValue = rawValue . apply ( parent , argumentList ) ;
128128 }
129129 break ;
130130 case MessageType . CONSTRUCT :
131131 {
132- const value = await new rawValue ( ...argumentList ) ;
132+ const value = new rawValue ( ...argumentList ) ;
133133 returnValue = proxy ( value ) ;
134134 }
135135 break ;
@@ -150,13 +150,15 @@ export function expose(obj: any, ep: Endpoint = self as any) {
150150 returnValue = e ;
151151 throwSet . add ( e ) ;
152152 }
153- const [ wireValue , transferables ] = toWireValue ( returnValue ) ;
154- ep . postMessage ( { ...wireValue , id } , transferables ) ;
155- if ( type === MessageType . RELEASE ) {
156- // detach and deactive after sending release response above.
157- ep . removeEventListener ( "message" , callback as any ) ;
158- closeEndPoint ( ep ) ;
159- }
153+ Promise . resolve ( returnValue ) . then ( returnValue => {
154+ const [ wireValue , transferables ] = toWireValue ( returnValue ) ;
155+ ep . postMessage ( { ...wireValue , id } , transferables ) ;
156+ if ( type === MessageType . RELEASE ) {
157+ // detach and deactive after sending release response above.
158+ ep . removeEventListener ( "message" , callback as any ) ;
159+ closeEndPoint ( ep ) ;
160+ }
161+ } ) ;
160162 } as any ) ;
161163 if ( ep . start ) {
162164 ep . start ( ) ;
0 commit comments