// Ċ // ĠCopyright Ġ( c ) Ġ 2 0 2 0 , ĠSales force . com , Ġinc . Ċ // ĠAll Ġrights Ġreserved . Ċ // ĠSPDX - License - Identifier : ĠBSD - 3 - Clause Ċ // ĠFor Ġfull Ġlicense Ġtext , Ġsee Ġthe ĠLICENSE Ġfile Ġin Ġthe Ġrepo Ġroot Ġor Ġhttps :// opensource . org / licenses / BSD - 3 - Clause Ċ // Ċ Ċ package Ġcom . sales force . nim bus . bridge . v 8 Ċ Ċ import Ġcom . ec lip ses ource . v 8 . Java Callback Ċ import Ġcom . ec lip ses ource . v 8 . V 8 Ċ import Ġcom . ec lip ses ource . v 8 . V 8 Array Ċ import Ġcom . ec lip ses ource . v 8 . V 8 Object Ċ import Ġcom . sales force . k 2 v 8 . to V 8 Array Ċ Ċ /** Ċ Ġ* ĠC le ans Ġup Ġthe Ġ[ V 8 Object . register Java Method ] Ġfunction Ġa Ġbit Ġto Ġmove Ġthe Ġmethod Ġto Ġfirst Ġparameter . Ċ Ġ*/ Ċ fun ĠV 8 Object . register Java Callback ( methodName : ĠString , Ġjava Callback : Ġ( V 8 Array ) Ġ-> ĠAny ): ĠV 8 Object Ġ= ĊĠĠĠ Ġregister Java Method ( Java Callback Ġ{ Ġ_, Ġparameters Ġ-> Ġjava Callback ( parameters ) Ġ}, ĠmethodName ) Ċ Ċ /** Ċ Ġ* ĠC le ans Ġup Ġthe Ġ[ V 8 Object . register Java Method ] Ġfunction Ġa Ġbit Ġto Ġmove Ġthe Ġmethod Ġto Ġfirst Ġparameter . Ċ Ġ*/ Ċ fun ĠV 8 Object . register Void Callback ( methodName : ĠString , Ġvoid Callback : Ġ( V 8 Array ) Ġ-> ĠUnit ): ĠV 8 Object Ġ= ĊĠĠĠ Ġregister Java Method ({ Ġ_, Ġparameters Ġ-> Ġvoid Callback ( parameters ) Ġ}, ĠmethodName ) Ċ Ċ /** Ċ Ġ* ĠReturns Ġthe Ġglobal ĠPromise Ġobject . Ċ Ġ*/ Ċ fun ĠV 8 . promise Global (): ĠV 8 Object Ġ= ĠgetObject (" Promise ") Ċ Ċ /** Ċ Ġ* ĠRes olves Ġa ĠPromise Ġwith Ġthe Ġ[ result ]. Ċ Ġ*/ Ċ fun ĠV 8 . resolve Promise ( result : ĠAny ): ĠV 8 Object Ġ{ ĊĠĠĠ Ġreturn Ġpromise Global (). execute Object Function ( ĊĠĠĠĠĠĠĠ Ġ" resolve ", ĊĠĠĠĠĠĠĠ Ġif Ġ( result Ġis ĠList <* >) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresult . to V 8 Array ( this ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠV 8 Array ( this ). push ( result ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ) Ċ } Ċ Ċ /** Ċ Ġ* ĠReject s Ġa ĠPromise Ġwith Ġthe Ġ[ error ]. Ċ Ġ*/ Ċ fun ĠV 8 . reject Promise ( error : ĠAny ): ĠV 8 Object Ġ{ ĊĠĠĠ Ġreturn Ġpromise Global (). execute Object Function ( ĊĠĠĠĠĠĠĠ Ġ" reject ", ĊĠĠĠĠĠĠĠ Ġif Ġ( error Ġis ĠList <* >) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġerror . to V 8 Array ( this ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠV 8 Array ( this ). push ( error ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ) Ċ } Ċ Ċ /** Ċ Ġ* ĠHelper Ġfunction Ġto Ġcreate Ġa Ġ[ V 8 Object ] Ġwhich Ġa ids Ġin Ġtest ability . Ċ Ġ*/ Ċ fun ĠV 8 . createObject () Ġ= ĠV 8 Object ( this ) Ċ Ċ /** Ċ Ġ* ĠCreates Ġa Ġ[ V 8 Bridge . Builder ] Ġand Ġpasses Ġit Ġto Ġthe Ġ[ builder ] Ġfunction , Ġallowing Ġany Ġbind ers Ġto Ġbe Ġadded Ċ Ġ* Ġand Ġthen Ġatt aches Ġto Ġthe Ġ[ V 8 Bridge ] Ġinstance . Ċ Ġ*/ Ċ fun ĠV 8 . bridge ( builder : ĠV 8 Bridge . Builder . () Ġ-> ĠUnit Ġ= Ġ{} ): ĠV 8 Bridge Ġ{ ĊĠĠĠ Ġreturn ĠV 8 Bridge . Builder (). apply ( builder ). attach ( this ) Ċ } Ċ