/* Ċ Ġ* ĠCopyright Ġ( C ) Ġ 2 0 1 9 ĠSquare , ĠInc . Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ package Ġapp . cash . zi pline Ċ Ċ import Ġjava . util . Arrays Ċ import Ġjava . util . Date Ċ import Ġjava . util . TimeZone Ċ import Ġorg . junit . After Ċ import Ġorg . junit . Assert . assertArrayEquals Ċ import Ġorg . junit . Assert . assertEquals Ċ import Ġorg . junit . Assert . assertFalse Ċ import Ġorg . junit . Assert . assertNull Ċ import Ġorg . junit . Assert . assertTrue Ċ import Ġorg . junit . Test Ċ Ċ @ Suppress (" UN CHECK ED _ CAST ") Ċ class ĠQuick Js Set Test Ġ{ ĊĠ Ġprivate Ġval Ġquick Js Ġ= ĠQuick Js . create () ĊĊĠ Ġ@ After Ġfun ĠtearDown () Ġ{ ĊĠĠĠ Ġquick Js . close () ĊĠ Ġ} ĊĊĠ Ġ@ Test Ġfun Ġset Non Interface () Ġ{ ĊĠĠĠ Ġval Ġt Ġ= ĠassertThrows < Unsupported OperationException > Ġ{ ĊĠĠĠĠĠ Ġquick Js . set (" s ", ĠString :: class , Ġ" foo ") ĊĠĠĠ Ġ} ĊĠĠĠ ĠassertEquals (" Only Ġinterfaces Ġcan Ġbe Ġbound . ĠReceived : Ġclass Ġjava . lang . String ", Ġt . message ) ĊĠ Ġ} ĊĊĠ Ġfun Ġinterface ĠTest Interface Ġ{ ĊĠĠĠ Ġfun ĠgetValue (): ĠString ĊĠ Ġ} ĊĊĠ Ġ@ Test Ġfun Ġcall Method On Java Object () Ġ{ ĊĠĠĠ Ġquick Js . set (" value ", ĠTest Interface :: class , ĠTest Interface Ġ{ Ġ" 8 6 7 5 3 0 9 " Ġ}) ĊĠĠĠ ĠassertEquals (" 8 6 7 5 3 0 9 ", Ġquick Js . evaluate (" value . getValue (); ")) ĊĠ Ġ} ĊĊĠ Ġ@ Test Ġfun Ġcall Missing Method On Java Object Fails () Ġ{ ĊĠĠĠ Ġquick Js . set (" value ", ĠTest Interface :: class , ĠTest Interface Ġ{ Ġthrow ĠAssertionError () Ġ}) ĊĠĠĠ Ġval Ġt Ġ= ĠassertThrows < Quick Js Exception > Ġ{ ĊĠĠĠĠĠ Ġquick Js . evaluate (" value . increment () ") ĊĠĠĠ Ġ} ĊĠĠĠ ĠassertEquals (" not Ġa Ġfunction ", Ġt . message ) ĊĠ Ġ} ĊĊĠ Ġ@ Test Ġfun Ġset Same Name Tw ice Fails () Ġ{ ĊĠĠĠ Ġquick Js . set (" value ", ĠTest Interface :: class , ĠTest Interface Ġ{ Ġ" foo " Ġ}) ĊĠĠĠ Ġval Ġt Ġ= ĠassertThrows < IllegalArgumentException > Ġ{ ĊĠĠĠĠĠ Ġquick Js . set (" value ", ĠTest Interface :: class , ĠTest Interface Ġ{ Ġthrow ĠAssertionError () Ġ}) ĊĠĠĠ Ġ} ĊĠĠĠ ĠassertEquals (" A Ġglobal Ġobject Ġcalled Ġvalue Ġalready Ġexists ", Ġt . message ) ĊĠ Ġ} ĊĊĠ Ġ@ Test Ġfun Ġexceptions From Java With Unified StackTrace () Ġ{ ĊĠĠĠ Ġ@ Suppress (" Object Literal To Lambda ") Ġ// ĠAvoid Ġlambda Ġname Ġin Ġstack trace . ĊĠĠĠ Ġval Ġbound Object Ġ= Ġobject Ġ: ĠTest Interface Ġ{ ĊĠĠĠĠĠ Ġoverride Ġfun ĠgetValue (): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġthrow ĠUnsupportedOperationException (" Cannot ĠgetValue ") ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġquick Js . set (" value ", ĠTest Interface :: class , Ġbound Object ) ĊĊĠĠĠ Ġval Ġt Ġ= ĠassertThrows < Unsupported OperationException > Ġ{ ĊĠĠĠĠĠ Ġquick Js . evaluate (""" ĊĠĠĠĠĠĠĠ Ġ| f 1 (); ĊĠĠĠĠĠĠĠ Ġ| ĊĠĠĠĠĠĠĠ Ġ| function Ġf 1 () Ġ{ ĊĠĠĠĠĠĠĠ Ġ| Ġ Ġf 2 (); ĊĠĠĠĠĠĠĠ Ġ| } ĊĠĠĠĠĠĠĠ Ġ| ĊĠĠĠĠĠĠĠ Ġ| function Ġf 2 () Ġ{ ĊĠĠĠĠĠĠĠ Ġ| Ġ Ġvalue . getValue (); ĊĠĠĠĠĠĠĠ Ġ| } ĊĠĠĠĠĠĠĠ Ġ| """. trim Margin (), Ġ" test . js ") ĊĠĠĠ Ġ} ĊĠĠĠ ĠassertEquals (" Cannot ĠgetValue ", Ġt . message ) ĊĊĠĠĠ Ġval Ġstack Trace Ġ= Ġt . stack Trace ĊĊĠĠĠ Ġ// ĠTop Ġentry Ġis Ġwhat Ġthrew Ġ- Ġthe ĠTest Interface Ġimplementation . ĊĠĠĠ ĠassertEquals ( bound Object . java Class . name , Ġstack Trace [ 0 ]. className ) ĊĠĠĠ ĠassertEquals (" getValue ", Ġstack Trace [ 0 ]. methodName ) ĊĊĠĠĠ Ġ// ĠThe Ġnext Ġfour Ġentries Ġare ĠJavaScript ĊĠĠĠ ĠassertEquals (" JavaScript . getValue ( native )", Ġstack Trace [ 1 ]. toString ()) ĊĠĠĠ ĠassertEquals (" JavaScript . f 2 ( test . js : 8 )", Ġstack Trace [ 2 ]. toString ()) ĊĠĠĠ ĠassertEquals (" JavaScript . f 1 ( test . js : 4 )", Ġstack Trace [ 3 ]. toString ()) ĊĠĠĠ ĠassertEquals (" JavaScript .< eval >( test . js : 1 )", Ġstack Trace [ 4 ]. toString ()) ĊĊĠĠĠ Ġ// ĠThen Ġone Ġor Ġtwo Ġnative ĠJ ni Quick Js . evaluate Ġmethods , Ġfollowed Ġby ĠJ ni Quick Js . evaluate Ġin ĠJava . ĊĠĠĠ Ġvar Ġi Ġ= Ġ 5 ĊĠĠĠ ĠassertEquals (" app . cash . zi pline . Quick Js ", Ġstack Trace [ i ]. className ) ĊĠĠĠ ĠassertEquals (" evaluate ", Ġstack Trace [ i ]. methodName ) ĊĠĠĠ ĠassertTrue ( stack Trace [ i ]. is Native Method ) ĊĠĠĠ Ġwhile Ġ( stack Trace [ i ]. methodName Ġ== Ġ" evaluate ") Ġ{ ĊĠĠĠĠĠ Ġi ++ ĊĠĠĠ Ġ} ĊĠĠĠ ĠassertFalse ( stack Trace [ i Ġ- Ġ 1 ]. is Native Method ) ĊĊĠĠĠ Ġ// ĠThen Ġthis Ġtest Ġmethod . ĊĠĠĠ ĠassertEquals ( Quick Js Set Test :: class . java . name , Ġstack Trace [ i ]. className ) ĊĠĠĠ ĠassertEquals (" exceptions From Java With Unified StackTrace ", Ġstack Trace [ i ]. methodName ) ĊĠ Ġ} ĊĊĠ Ġfun Ġinterface ĠTest Interface Args Ġ{ ĊĠĠĠ Ġfun Ġfoo ( a : ĠString ?, Ġb : ĠString ?, Ġc : ĠString ?): ĠString ? ĊĠ Ġ} ĊĊĠ Ġ@ Test Ġfun Ġcall Method On Java Object Throws Java Exception () Ġ{ ĊĠĠĠ Ġquick Js . set (" value ", ĠTest Interface :: class , ĊĠĠĠĠĠĠĠ ĠTest Interface Ġ{ Ġthrow ĠUnsupportedOperationException (" This Ġis Ġan Ġerror Ġmessage .") Ġ}) ĊĠĠĠ Ġval Ġt Ġ= ĠassertThrows < Unsupported OperationException > Ġ{ ĊĠĠĠĠĠ Ġquick Js . evaluate (" value . getValue () ") ĊĠĠĠ Ġ} ĊĠĠĠ ĠassertEquals (" This Ġis Ġan Ġerror Ġmessage .", Ġt . message ) ĊĠ Ġ} ĊĊĠ Ġ@ Test Ġfun Ġcall Method With Args On Java Object () Ġ{ ĊĠĠĠ Ġquick Js . set (" value ", ĠTest Interface Args :: class , ĊĠĠĠĠĠĠĠ ĠTest Interface Args Ġ{ Ġa , Ġb , Ġc Ġ-> Ġif Ġ( a Ġ!= Ġnull ) Ġa Ġ+ Ġb Ġ+ Ġc Ġelse Ġnull Ġ}) ĊĊĠĠĠ ĠassertEquals (" This Ġis Ġa Ġtest ", Ġquick Js . evaluate (" value . foo (' This ', Ġ' Ġis Ġa Ġ', Ġ' test ') ")) ĊĠĠĠ ĠassertNull ( quick Js . evaluate (" value . foo ( null , Ġnull , Ġnull ) ")) ĊĊĠĠĠ Ġval Ġt 1 Ġ= ĠassertThrows < Quick Js Exception > Ġ{ ĊĠĠĠĠĠ Ġquick Js . evaluate (" value . foo (' This ') ") ĊĠĠĠ Ġ} ĊĠĠĠ ĠassertEquals (" Wrong Ġnumber Ġof Ġarguments ", Ġt 1 . message ) ĊĊĠĠĠ Ġval Ġt 2 Ġ= ĠassertThrows < Quick Js Exception > Ġ{ ĊĠĠĠĠĠ Ġquick Js . evaluate (" value . foo (' This ', Ġ' Ġis Ġ', Ġ' too Ġ', Ġ' many Ġ', Ġ' arguments ') ") ĊĠĠĠ Ġ} ĊĠĠĠ ĠassertEquals (" Wrong Ġnumber Ġof Ġarguments ", Ġt 2 . message ) ĊĊĠĠĠ Ġval Ġt 3 Ġ= ĠassertThrows < IllegalArgumentException > Ġ{ ĊĠĠĠĠĠ Ġquick Js . evaluate (" value . foo (' 1 ', Ġ' 2 ', Ġ 3 )") ĊĠĠĠ Ġ} ĊĠĠĠ ĠassertEquals (" Cannot Ġconvert Ġvalue Ġ 3 Ġto ĠString ", Ġt 3 . message ) ĊĠ Ġ} ĊĊĠ Ġinterface ĠTest Interface Void s Ġ{ ĊĠĠĠ Ġfun Ġfunc () ĊĠĠĠ Ġfun Ġget Result (): ĠString ĊĠ Ġ} ĊĊĠ Ġ@ Test Ġfun Ġcall Void Java Method () Ġ{ ĊĠĠĠ Ġquick Js . set (" value ", ĠTest Interface Void s :: class , Ġobject Ġ: ĠTest Interface Void s Ġ{ ĊĠĠĠĠĠ Ġprivate Ġvar Ġresult Ġ= Ġ" not Ġcalled " ĊĠĠĠĠĠ Ġoverride Ġfun Ġget Result (): ĠString Ġ= Ġresult ĊĠĠĠĠĠ Ġoverride Ġfun Ġfunc () Ġ{ ĊĠĠĠĠĠĠĠ Ġresult Ġ= Ġ" called " ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ}) ĊĠĠĠ ĠassertEquals (" not Ġcalled ", Ġquick Js . evaluate (" value . getResult () ")) ĊĠĠĠ ĠassertNull ( quick Js . evaluate (" value . func () ")) ĊĠĠĠ ĠassertEquals (" called ", Ġquick Js . evaluate (" value . getResult () ")) ĊĠ Ġ} ĊĊĠ Ġinterface ĠTest Primitive Types Ġ{ ĊĠĠĠ Ġfun Ġb ( b : ĠBoolean ): ĠBoolean ĊĠĠĠ Ġfun Ġi ( i : ĠInt ): ĠInt ĊĠĠĠ Ġfun Ġd ( d : ĠDouble ): ĠDouble ĊĠ Ġ} ĊĊĠ Ġ// ĠVerify Ġthat Ġprimitive Ġtypes Ġcan Ġbe Ġused Ġas Ġboth Ġarguments Ġand Ġreturn Ġvalues Ġfrom ĠJava Ġmethods . ĊĠ Ġ@ Test Ġfun Ġcall Java Method With Primitive Types () Ġ{ ĊĠĠĠ Ġquick Js . set (" value ", ĠTest Primitive Types :: class , Ġobject Ġ: ĠTest Primitive Types Ġ{ ĊĠĠĠĠĠ Ġoverride Ġfun Ġb ( b : ĠBoolean ): ĠBoolean Ġ= Ġ! b ĊĠĠĠĠĠ Ġoverride Ġfun Ġi ( i : ĠInt ): ĠInt Ġ= Ġi Ġ* Ġi ĊĠĠĠĠĠ Ġoverride Ġfun Ġd ( d : ĠDouble ): ĠDouble Ġ= Ġd Ġ/ Ġ 2 . 0 ĊĠĠĠ Ġ}) ĊĊĠĠĠ Ġ// ĠTODO : Ġadd Ġan Ġevaluate Ġinterface Ġthat Ġsupports Ġother Ġtypes . ĊĠĠĠ ĠassertEquals (" true ", Ġquick Js . evaluate (" value . b ( false ). toString () ")) ĊĠĠĠ ĠassertEquals (" 1 6 ", Ġquick Js . evaluate (" value . i ( 4 ). toString () ")) ĊĠĠĠ ĠassertEquals (" 3 . 1 4 1 5 9 ", Ġquick Js . evaluate (" value . d ( 6 . 2 8 3 1 8 ). toString () ")) ĊĠ Ġ} ĊĊĠ Ġfun Ġinterface ĠTest Multiple Arg Types Ġ{ ĊĠĠĠ Ġfun Ġprint ( b : ĠBoolean , Ġi : ĠInt , Ġd : ĠDouble ): ĠString ? ĊĠ Ġ} ĊĊĠ Ġ// ĠDouble Ġcheck Ġthat Ġarguments Ġof Ġdifferent Ġtypes Ġare Ġprocessed Ġin Ġthe Ġcorrect Ġorder Ġfrom Ġthe ĊĠ Ġ// ĠQuick Js Ġstack . ĊĠ Ġ@ Test Ġfun Ġcall Java Method With All Arg Types () Ġ{ ĊĠĠĠ Ġquick Js . set (" printer ", ĠTest Multiple Arg Types :: class , ĠTest Multiple Arg Types Ġ{ Ġb , Ġi , Ġd Ġ-> ĊĠĠĠĠĠ ĠString . format (" boolean : Ġ% s , Ġint : Ġ% s , Ġdouble : Ġ% s ", Ġb , Ġi , Ġd ) ĊĠĠĠ Ġ}) ĊĠĠĠ ĠassertEquals (" boolean : Ġtrue , Ġint : Ġ 4 2 , Ġdouble : Ġ 2 . 7 1 8 2 8 1 8 2 8 4 5 9 ", ĊĠĠĠĠĠĠĠ Ġquick Js . evaluate (" printer . print ( true , Ġ 4 2 , Ġ 2 . 7 1 8 2 8 1 8 2 8 4 5 9 ) ")) ĊĠ Ġ} ĊĊĠ Ġinterface ĠTest Boxed Primitive Arg Types Ġ{ ĊĠĠĠ Ġfun Ġb ( b : ĠBoolean ?): ĠBoolean ? ĊĠĠĠ Ġfun Ġi ( i : ĠInt ?): ĠInt ? ĊĠĠĠ Ġfun Ġd ( d : ĠDouble ?): ĠDouble ? ĊĠ Ġ} ĊĊĠ Ġ@ Test Ġfun Ġcall Java Method With Boxed Primitive Types () Ġ{ ĊĠĠĠ Ġquick Js . set (" value ", ĠTest Boxed Primitive Arg Types :: class , ĊĠĠĠĠĠĠĠ Ġobject Ġ: ĠTest Boxed Primitive Arg Types Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġb ( b : ĠBoolean ?): ĠBoolean ? Ġ= Ġif Ġ( b Ġ!= Ġnull ) Ġ! b Ġelse Ġnull ĊĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġi ( i : ĠInt ?): ĠInt ? Ġ= Ġif Ġ( i Ġ!= Ġnull ) Ġi Ġ* Ġi Ġelse Ġnull ĊĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġd ( d : ĠDouble ?): ĠDouble ? Ġ= Ġif Ġ( d Ġ!= Ġnull ) Ġd Ġ/ Ġ 2 . 0 Ġelse Ġnull ĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠ Ġ// ĠTODO : Ġadd Ġan Ġevaluate Ġinterface Ġthat Ġsupports Ġother Ġtypes . ĊĠĠĠ ĠassertEquals (" true ", Ġquick Js . evaluate (" value . b ( false ). toString () ")) ĊĠĠĠ ĠassertEquals (" 1 6 ", Ġquick Js . evaluate (" value . i ( 4 ). toString () ")) ĊĠĠĠ ĠassertEquals (" 3 . 1 4 1 5 9 ", Ġquick Js . evaluate (" value . d ( 6 . 2 8 3 1 8 ). toString () ")) ĊĠĠĠ ĠassertNull ( quick Js . evaluate (" value . b ( null ) ")) ĊĠĠĠ ĠassertNull ( quick Js . evaluate (" value . i ( null ) ")) ĊĠĠĠ ĠassertNull ( quick Js . evaluate (" value . d ( null ) ")) ĊĠ Ġ} ĊĊĠ Ġfun Ġinterface ĠUnsupported ReturnType Ġ{ ĊĠĠĠ Ġfun Ġget (): ĠDate ? ĊĠ Ġ} ĊĊĠ Ġ@ Test Ġfun Ġset Unsupported ReturnType () Ġ{ ĊĠĠĠ Ġval Ġt Ġ= ĠassertThrows < IllegalArgumentException > Ġ{ ĊĠĠĠĠĠ Ġquick Js . set (" value ", ĠUnsupported ReturnType :: class , ĠUnsupported ReturnType Ġ{ Ġnull Ġ}) ĊĠĠĠ Ġ} ĊĠĠĠ ĠassertEquals (" Unsupported ĠJava Ġtype Ġjava . util . Date ", Ġt . message ) ĊĠ Ġ} ĊĊĠ Ġfun Ġinterface ĠUnsupported Argument Type Ġ{ ĊĠĠĠ Ġfun Ġset ( d : ĠDate ?) ĊĠ Ġ} ĊĊĠ Ġ@ Test Ġfun Ġset Unsupported Argument Type () Ġ{ ĊĠĠĠ Ġval Ġt Ġ= ĠassertThrows < IllegalArgumentException > Ġ{ ĊĠĠĠĠĠ Ġquick Js . set (" value ", ĠUnsupported Argument Type :: class , ĠUnsupported Argument Type Ġ{ Ġ}) ĊĠĠĠ Ġ} ĊĠĠĠ ĠassertEquals (" Unsupported ĠJava Ġtype Ġjava . util . Date ", Ġt . message ) ĊĠ Ġ} ĊĊĠ Ġinterface ĠOver loaded Method Ġ{ ĊĠĠĠ Ġfun Ġfoo ( i : ĠInt ) ĊĠĠĠ Ġfun Ġfoo ( d : ĠDouble ) ĊĠ Ġ} ĊĊĠ Ġ@ Test Ġfun Ġset Over loaded Method () Ġ{ ĊĠĠĠ Ġval Ġt Ġ= ĠassertThrows < Unsupported OperationException > Ġ{ ĊĠĠĠĠĠ Ġquick Js . set (" value ", ĠOver loaded Method :: class , Ġobject Ġ: ĠOver loaded Method Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġfoo ( i : ĠInt ) Ġ{} ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġfoo ( d : ĠDouble ) Ġ{} ĊĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĠĠĠ ĠassertEquals (" foo Ġis Ġover loaded Ġin Ġ" Ġ+ ĠOver loaded Method :: class . java . toString (), Ġt . message ) ĊĠ Ġ} ĊĊĠ Ġfun Ġinterface ĠExtended Interface Ġ: ĠTest Interface ĊĊĠ Ġ@ Test Ġfun Ġset Extended Interface () Ġ{ ĊĠĠĠ Ġval Ġt Ġ= ĠassertThrows < Unsupported OperationException > Ġ{ ĊĠĠĠĠĠ Ġquick Js . set (" value ", ĠExtended Interface :: class , ĠExtended Interface Ġ{ Ġ" no pe " Ġ}) ĊĠĠĠ Ġ} ĊĠĠĠ ĠassertEquals ( Extended Interface :: class . java . toString () Ġ+ Ġ" Ġmust Ġnot Ġextend Ġother Ġinterfaces ", ĊĠĠĠĠĠĠĠ Ġt . message ) ĊĠ Ġ} ĊĊĠ Ġ@ Test Ġfun Ġset Failure Le aves Quick Js Cons istent () Ġ{ ĊĠĠĠ Ġquick Js . set (" value ", ĠTest Interface :: class , ĠTest Interface Ġ{ Ġ" 8 6 7 5 3 0 9 " Ġ}) ĊĠĠĠ Ġquick Js . evaluate (" var ĠlocalVar Ġ= Ġ 4 2 ; ") ĊĠĠĠ ĠassertThrows < IllegalArgumentException > Ġ{ ĊĠĠĠĠĠ Ġquick Js . set (" il legal ", ĠUnsupported Argument Type :: class , ĠUnsupported Argument Type Ġ{ Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// ĠThe Ġstate Ġof Ġour ĠQuick Js Ġcontext Ġis Ġstill Ġvalid , Ġcontaining Ġwhat Ġwas Ġthere Ġbefore . ĊĠĠĠ ĠassertEquals (" 8 6 7 5 3 0 9 ", Ġquick Js . evaluate (" value . getValue (); ")) ĊĠĠĠ ĠassertEquals (" 4 2 ", Ġquick Js . evaluate (" localVar . toString (); ")) ĊĠ Ġ} ĊĊĠ Ġfun Ġinterface ĠTest Multiple Object Args Ġ{ ĊĠĠĠ Ġfun Ġprint ( b : ĠAny ?, Ġi : ĠAny ?, Ġd : ĠAny ?): ĠAny ? ĊĠ Ġ} ĊĊĠ Ġ// ĠDouble Ġcheck Ġthat Ġarguments Ġof Ġdifferent Ġtypes Ġare Ġprocessed Ġin Ġthe Ġcorrect Ġorder Ġfrom Ġthe ĊĠ Ġ// ĠQuick Js Ġstack . ĊĠ Ġ@ Test Ġfun Ġcall Java Method Object Args () Ġ{ ĊĠĠĠ Ġquick Js . set (" printer ", ĠTest Multiple Object Args :: class , ĠTest Multiple Object Args Ġ{ Ġb , Ġi , Ġd Ġ-> ĊĠĠĠĠĠ ĠString . format (" boolean : Ġ% s , Ġint : Ġ% s , Ġdouble : Ġ% s ", Ġb , Ġi , Ġd ) ĊĠĠĠ Ġ}) ĊĠĠĠ ĠassertEquals (" boolean : Ġtrue , Ġint : Ġ 4 2 , Ġdouble : Ġ 2 . 7 1 8 2 8 1 8 2 8 4 5 9 ", ĊĠĠĠĠĠĠĠ Ġquick Js . evaluate (" printer . print ( true , Ġ 4 2 , Ġ 2 . 7 1 8 2 8 1 8 2 8 4 5 9 ) ")) ĊĠ Ġ} ĊĊĠ Ġ@ Test Ġfun Ġpass Unsupported Type As Object Fails () Ġ{ ĊĠĠĠ Ġquick Js . set (" printer ", ĠTest Multiple Object Args :: class , ĠTest Multiple Object Args Ġ{ Ġb , Ġi , Ġd Ġ-> ĊĠĠĠĠĠ ĠString . format (" boolean : Ġ% s , Ġint : Ġ% s , Ġdouble : Ġ% s ", Ġb , Ġi , Ġd ) ĊĠĠĠ Ġ}) ĊĠĠĠ Ġval Ġt Ġ= ĠassertThrows < Quick Js Exception > Ġ{ ĊĠĠĠĠĠ Ġquick Js . evaluate (" printer . print ( true , Ġ 4 2 , Ġnew ĠDate ()) ") ĊĠĠĠ Ġ} ĊĠĠĠ ĠassertTrue ( t . message !!. startsWith (" Cannot Ġmarshal Ġ")) ĊĠ Ġ} ĊĊĠ Ġfun Ġinterface ĠTest Var Args Ġ{ ĊĠĠĠ Ġfun Ġformat ( format : ĠString ?, Ġvar arg Ġargs : ĠAny ?): ĠString ? ĊĠ Ġ} ĊĊĠ Ġ@ Test Ġfun Ġcall Var Arg Method () Ġ{ ĊĠĠĠ Ġquick Js . set (" formatter ", ĠTest Var Args :: class , ĊĠĠĠĠĠĠĠ ĠTest Var Args Ġ{ Ġformat , Ġargs Ġ-> ĠString . format ( format !! , Ġ* args ) Ġ}) ĊĠĠĠ ĠassertEquals (" ok ay ", Ġquick Js . evaluate (" formatter . format (' ok ay ') ")) ĊĠĠĠ ĠassertEquals (" 1 9 9 9 - 1 2 - 3 1 Ġ 2 3 : 5 9 : 5 9 . 9 9 9 Ġ- ĠFAT AL : Ġfailure ", Ġquick Js . evaluate ( ĊĠĠĠĠĠĠĠ Ġ" formatter . format ('% s Ġ- Ġ% s : Ġ% s ', Ġ' 1 9 9 9 - 1 2 - 3 1 Ġ 2 3 : 5 9 : 5 9 . 9 9 9 ', Ġ' FATAL ', Ġ' failure '); ")) ĊĠĠĠ ĠassertTrue ( quick Js . evaluate (" formatter . format ('% s Ġ% s ', Ġ' three ', Ġ[ 1 , Ġ 2 , Ġ 3 ]) ") ĊĠĠĠĠĠĠĠ Ġ. toString () ĊĠĠĠĠĠĠĠ Ġ. startsWith (" three Ġ[ Ljava . lang . Object ; ")) ĊĠ Ġ} ĊĊĠ Ġinterface ĠSum mer Ġ{ ĊĠĠĠ Ġfun Ġsum Inte gers ( var arg Ġargs : ĠInt ): ĠInt ĊĠĠĠ Ġfun Ġsum Doubles ( var arg Ġargs : ĠDouble ): ĠDouble ĊĠĠĠ Ġfun Ġcount Tr ues ( var arg Ġargs : ĠBoolean ): ĠInt ĊĠ Ġ} ĊĊĠ Ġ@ Test Ġfun Ġcall Var Arg Primitive Method () Ġ{ ĊĠĠĠ Ġquick Js . set (" Sum mer ", ĠSum mer :: class , Ġobject Ġ: ĠSum mer Ġ{ ĊĠĠĠĠĠ Ġoverride Ġfun Ġsum Inte gers ( var arg Ġargs : ĠInt ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġv Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġfor Ġ( arg Ġin Ġargs ) Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġv Ġ+= Ġarg ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġv ĊĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠ Ġoverride Ġfun Ġsum Doubles ( var arg Ġargs : ĠDouble ): ĠDouble Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġv Ġ= Ġ 0 . 0 ĊĠĠĠĠĠĠĠ Ġfor Ġ( arg Ġin Ġargs ) Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġv Ġ+= Ġarg ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġv ĊĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠ Ġoverride Ġfun Ġcount Tr ues ( var arg Ġargs : ĠBoolean ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġv Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġfor Ġ( arg Ġin Ġargs ) Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġv Ġ+= Ġif Ġ( arg ) Ġ 1 Ġelse Ġ 0 ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġv ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ}) ĊĊĠĠĠ ĠassertEquals ( 0 , Ġquick Js . evaluate (" Sum mer . sum Inte gers () ")) ĊĠĠĠ ĠassertEquals ( 1 0 , Ġquick Js . evaluate (" Sum mer . sum Inte gers ( 1 , Ġ 2 , Ġ 3 , Ġ 4 ) ")) ĊĠĠĠ Ġval Ġt 1 Ġ= ĠassertThrows < IllegalArgumentException > Ġ{ ĊĠĠĠĠĠ Ġquick Js . evaluate (" Sum mer . sum Inte gers ( 1 , Ġ 2 , Ġ' three ', Ġ 4 )") ĊĠĠĠ Ġ} ĊĠĠĠ ĠassertEquals (" Cannot Ġconvert Ġvalue Ġthree Ġto Ġint ", Ġt 1 . message ) ĊĊĠĠĠ ĠassertEquals ( 0 , Ġquick Js . evaluate (" Sum mer . sum Doubles () ")) ĊĠĠĠ ĠassertEquals ( 1 0 , Ġquick Js . evaluate (" Sum mer . sum Doubles ( 0 . 5 , Ġ 2 . 5 , Ġ 3 , Ġ 4 ) ")) ĊĠĠĠ Ġval Ġt 2 Ġ= ĠassertThrows < IllegalArgumentException > Ġ{ ĊĠĠĠĠĠ Ġquick Js . evaluate (" Sum mer . sum Doubles ( 1 , Ġ 2 , Ġ' three ', Ġ 4 )") ĊĠĠĠ Ġ} ĊĠĠĠ ĠassertEquals (" Cannot Ġconvert Ġvalue Ġthree Ġto Ġdouble ", Ġt 2 . message ) ĊĊĠĠĠ ĠassertEquals ( 0 , Ġquick Js . evaluate (" Sum mer . count Tr ues () ")) ĊĠĠĠ ĠassertEquals ( 3 , Ġquick Js . evaluate (" Sum mer . count Tr ues ( true , Ġtrue , Ġfalse , Ġtrue ) ")) ĊĠĠĠ Ġval Ġt 3 Ġ= ĠassertThrows < IllegalArgumentException > Ġ{ ĊĠĠĠĠĠ Ġquick Js . evaluate (" Sum mer . count Tr ues ( true , Ġfalse , Ġ' ninja ', Ġtrue )") ĊĠĠĠ Ġ} ĊĠĠĠ ĠassertEquals (" Cannot Ġconvert Ġvalue Ġn inja Ġto Ġboolean ", Ġt 3 . message ) ĊĠ Ġ} ĊĊĠ Ġfun Ġinterface ĠObject Sorter Ġ{ ĊĠĠĠ Ġfun Ġsort ( args : ĠArray < Any >? ): ĠArray < Any >? ĊĠ Ġ} ĊĊĠ Ġ@ Test Ġfun Ġarrays Of Objects () Ġ{ ĊĠĠĠ Ġquick Js . set (" Sorter ", ĠObject Sorter :: class , Ġobject Ġ: ĠObject Sorter Ġ{ ĊĠĠĠĠĠ Ġoverride Ġfun Ġsort ( args : ĠArray < Any >? ): ĠArray < Any >? Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( args Ġ== Ġnull ) Ġreturn Ġnull ĊĠĠĠĠĠĠĠ ĠArrays . sort ( args , ĠComparator < Any ?> Ġ{ Ġlhs , Ġrhs Ġ-> ĊĠĠĠĠĠĠĠĠĠ Ġif Ġ( lhs Ġ== Ġnull ) Ġreturn @ Comparator Ġ- 1 ĊĠĠĠĠĠĠĠĠĠ Ġif Ġ( rhs Ġ== Ġnull ) Ġ 1 Ġelse Ġ( lhs Ġas ĠComparable < Any ?> ). compareTo ( rhs ) ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġreturn Ġargs ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ}) ĊĠĠĠ ĠassertNull ( quick Js . evaluate (" Sorter . sort ( null ) ")) ĊĠĠĠ Ġassert ArrayEquals ( quick Js . evaluate (" Sorter . sort ([ 2 , Ġ 4 , Ġ 3 , Ġ 1 ]) ") Ġas ĠArray < Any ?> ?, ĊĠĠĠĠĠĠĠ ĠarrayOf ( 1 , Ġ 2 , Ġ 3 , Ġ 4 )) ĊĠĠĠ Ġassert ArrayEquals ( ĊĠĠĠĠĠĠĠ Ġquick Js . evaluate (" Sorter . sort ([' b ', Ġ' d ', Ġnull , Ġ' a ']) ") Ġas ĠArray < Any ?> ?, ĊĠĠĠĠĠĠĠ ĠarrayOf ( null , Ġ" a ", Ġ" b ", Ġ" d ")) ĊĊĠĠĠ Ġval Ġoriginal Ġ= ĠTime Zone . getDefault () ĊĠĠĠ Ġval Ġt Ġ= ĠassertThrows < Quick Js Exception > Ġ{ ĊĠĠĠĠĠ ĠTime Zone . setDefault ( TimeZone . getTime Zone (" GMT + 0 : 0 0 ")) ĊĠĠĠĠĠ Ġquick Js . evaluate (" Sorter . sort ([ Ġ 1 , Ġ 2 , Ġ 3 , Ġnew ĠDate ( 0 ) Ġ]) ") ĊĠĠĠ Ġ} ĊĠĠĠ ĠTime Zone . setDefault ( original ) ĊĠĠĠ ĠassertTrue ( t . message !!. startsWith (" Cannot Ġmarshal Ġ")) ĊĠ Ġ} ĊĊĠ Ġfun Ġinterface ĠString Sorter Ġ{ ĊĠĠĠ Ġfun Ġsort ( args : ĠArray < String >): ĠArray < String > ĊĠ Ġ} ĊĊĠ Ġ@ Test Ġfun Ġarrays Of Strings () Ġ{ ĊĠĠĠ Ġquick Js . set (" Sorter ", ĠString Sorter :: class , ĠString Sorter Ġ{ Ġargs Ġ-> ĊĠĠĠĠĠ ĠArrays . sort ( args ) ĊĠĠĠĠĠ Ġargs ĊĠĠĠ Ġ}) ĊĊĠĠĠ Ġassert ArrayEquals ( ĊĠĠĠĠĠĠĠ Ġquick Js . evaluate (" Sorter . sort ([' b ', Ġ' d ', Ġ' c ', Ġ' a ']) ") Ġas ĠArray < Any ?> ?, ĊĠĠĠĠĠĠĠ ĠarrayOf (" a ", Ġ" b ", Ġ" c ", Ġ" d ")) ĊĊĠĠĠ Ġval Ġt Ġ= ĠassertThrows < IllegalArgumentException > Ġ{ ĊĠĠĠĠĠ Ġquick Js . evaluate (" Sorter . sort ([' b ', Ġ' d ', Ġ 3 , Ġ' a ']) ") ĊĠĠĠ Ġ} ĊĠĠĠ ĠassertEquals (" Cannot Ġconvert Ġvalue Ġ 3 Ġto ĠString ", Ġt . message ) ĊĠ Ġ} ĊĊĠ Ġinterface ĠDouble Sorter Ġ{ ĊĠĠĠ Ġfun Ġsort ( args : ĠDouble Array ): ĠDouble Array ĊĠĠĠ Ġfun Ġsort Null s First ( args : ĠArray < Double >): ĠArray < Double > ĊĠ Ġ} ĊĊĠ Ġ@ Test Ġfun Ġarrays Of Doubles () Ġ{ ĊĠĠĠ Ġquick Js . set (" Sorter ", ĠDouble Sorter :: class , Ġobject Ġ: ĠDouble Sorter Ġ{ ĊĠĠĠĠĠ Ġoverride Ġfun Ġsort ( args : ĠDouble Array ): ĠDouble Array Ġ{ ĊĠĠĠĠĠĠĠ ĠArrays . sort ( args ) ĊĠĠĠĠĠĠĠ Ġreturn Ġargs ĊĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠ Ġoverride Ġfun Ġsort Null s First ( args : ĠArray < Double >): ĠArray < Double > Ġ{ ĊĠĠĠĠĠĠĠ ĠArrays . sort ( args , Ġjava . util . Comparator Ġ{ Ġlhs , Ġrhs Ġ-> ĊĠĠĠĠĠĠĠĠĠ Ġif Ġ( lhs Ġ== Ġnull ) Ġreturn @ Comparator Ġ- 1 ĊĠĠĠĠĠĠĠĠĠ Ġif Ġ( rhs Ġ== Ġnull ) Ġ 1 Ġelse Ġlhs . compareTo ( rhs ) ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġreturn Ġargs ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ}) ĊĊĠĠĠ Ġassert ArrayEquals ( quick Js . evaluate (" Sorter . sort ([ 2 . 9 , Ġ 2 . 3 , Ġ 3 , Ġ 1 ]) ") Ġas ĠArray < Any ?> ?, ĊĠĠĠĠĠĠĠ ĠarrayOf ( 1 , Ġ 2 . 3 , Ġ 2 . 9 , Ġ 3 )) ĊĊĠĠĠ Ġval Ġt Ġ= ĠassertThrows < IllegalArgumentException > Ġ{ ĊĠĠĠĠĠ Ġquick Js . evaluate (" Sorter . sort ([ 2 . 3 , Ġ 4 , Ġnull , Ġ 1 ]) ") ĊĠĠĠ Ġ} ĊĠĠĠ ĠassertEquals (" Cannot Ġconvert Ġvalue Ġnull Ġto Ġdouble ", Ġt . message ) ĊĊĠĠĠ Ġassert ArrayEquals ( ĊĠĠĠĠĠĠĠ Ġquick Js . evaluate (" Sorter . sort Null s First ([ 2 . 9 , Ġnull , Ġ 3 , Ġ 1 ]) ") Ġas ĠArray < Any ?> ?, ĊĠĠĠĠĠĠĠ ĠarrayOf ( null , Ġ 1 , Ġ 2 . 9 , Ġ 3 )) ĊĠ Ġ} ĊĊĠ Ġinterface ĠInt Sorter Ġ{ ĊĠĠĠ Ġfun Ġsort ( args : ĠInt Array ): ĠInt Array ĊĠĠĠ Ġfun Ġsort Null s First ( args : ĠArray < Int >): ĠArray < Int > ĊĠ Ġ} ĊĊĠ Ġ@ Test Ġfun Ġarrays Of Ints () Ġ{ ĊĠĠĠ Ġquick Js . set (" Sorter ", ĠInt Sorter :: class , Ġobject Ġ: ĠInt Sorter Ġ{ ĊĠĠĠĠĠ Ġoverride Ġfun Ġsort ( args : ĠInt Array ): ĠInt Array Ġ{ ĊĠĠĠĠĠĠĠ ĠArrays . sort ( args ) ĊĠĠĠĠĠĠĠ Ġreturn Ġargs ĊĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠ Ġoverride Ġfun Ġsort Null s First ( args : ĠArray < Int >): ĠArray < Int > Ġ{ ĊĠĠĠĠĠĠĠ ĠArrays . sort ( args , Ġjava . util . Comparator Ġ{ Ġlhs , Ġrhs Ġ-> ĊĠĠĠĠĠĠĠĠĠ Ġif Ġ( lhs Ġ== Ġnull ) Ġreturn @ Comparator Ġ- 1 ĊĠĠĠĠĠĠĠĠĠ Ġif Ġ( rhs Ġ== Ġnull ) Ġ 1 Ġelse Ġlhs . compareTo ( rhs ) ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġreturn Ġargs ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ}) ĊĠĠĠ Ġassert ArrayEquals ( quick Js . evaluate (" Sorter . sort ([ 2 , Ġ 4 , Ġ 3 , Ġ 1 ]) ") Ġas ĠArray < Any ?> ?, ĊĠĠĠĠĠĠĠ ĠarrayOf ( 1 , Ġ 2 , Ġ 3 , Ġ 4 )) ĊĊĠĠĠ Ġval Ġt Ġ= ĠassertThrows < IllegalArgumentException > Ġ{ ĊĠĠĠĠĠ Ġquick Js . evaluate (" Sorter . sort ([ 2 , Ġ 4 , Ġnull , Ġ 1 ]) ") ĊĠĠĠ Ġ} ĊĠĠĠ ĠassertEquals (" Cannot Ġconvert Ġvalue Ġnull Ġto Ġint ", Ġt . message ) ĊĊĠĠĠ Ġassert ArrayEquals ( quick Js . evaluate (" Sorter . sort ([ 2 , Ġ 4 , Ġ 3 , Ġ 1 ]) ") Ġas ĠArray < Any ?> ?, ĊĠĠĠĠĠĠĠ ĠarrayOf ( 1 , Ġ 2 , Ġ 3 , Ġ 4 )) ĊĊĠĠĠ Ġassert ArrayEquals ( ĊĠĠĠĠĠĠĠ Ġquick Js . evaluate (" Sorter . sort Null s First ([ 2 , Ġnull , Ġ 3 , Ġ 1 ]) ") Ġas ĠArray < Any ?> ?, ĊĠĠĠĠĠĠĠ ĠarrayOf ( null , Ġ 1 , Ġ 2 , Ġ 3 )) ĊĠ Ġ} ĊĊĠ Ġinterface ĠBool Sorter Ġ{ ĊĠĠĠ Ġfun Ġsort ( args : ĠBoolean Array ): ĠBoolean Array ĊĠĠĠ Ġfun Ġsort Null s First ( args : ĠArray < Boolean >): ĠArray < Boolean > ĊĠ Ġ} ĊĊĠ Ġ@ Test Ġfun Ġarrays Of B ooleans () Ġ{ ĊĠĠĠ Ġquick Js . set (" Sorter ", ĠBool Sorter :: class , Ġobject Ġ: ĠBool Sorter Ġ{ ĊĠĠĠĠĠ Ġoverride Ġfun Ġsort ( args : ĠBoolean Array ): ĠBoolean Array Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġcount Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġfor Ġ( arg Ġin Ġargs ) Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġif Ġ( arg ) Ġcount ++ ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= ĠBoolean Array ( args . size ) ĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġargs . size Ġ- Ġ 1 Ġdown To Ġcount ) Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġresult [ i ] Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġresult ĊĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠ Ġoverride Ġfun Ġsort Null s First ( args : ĠArray < Boolean >): ĠArray < Boolean > Ġ{ ĊĠĠĠĠĠĠĠ ĠArrays . sort ( args , Ġjava . util . Comparator Ġ{ Ġlhs , Ġrhs Ġ-> ĊĠĠĠĠĠĠĠĠĠ Ġif Ġ( lhs Ġ== Ġnull ) Ġreturn @ Comparator Ġ- 1 ĊĠĠĠĠĠĠĠĠĠ Ġif Ġ( rhs Ġ== Ġnull ) Ġ 1 Ġelse Ġlhs . compareTo ( rhs ) ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġreturn Ġargs ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ}) ĊĠĠĠ Ġassert ArrayEquals ( ĊĠĠĠĠĠĠĠ Ġquick Js . evaluate (" Sorter . sort ([ Ġtrue , Ġfalse , Ġtrue , Ġfalse Ġ]) ") Ġas ĠArray < Any ? >, ĊĠĠĠĠĠĠĠ ĠarrayOf < Any >( false , Ġfalse , Ġtrue , Ġtrue )) ĊĊĠĠĠ Ġval Ġt Ġ= ĠassertThrows < IllegalArgumentException > Ġ{ ĊĠĠĠĠĠ Ġquick Js . evaluate (" Sorter . sort ([ false , Ġtrue , Ġnull , Ġfalse ]) ") ĊĠĠĠ Ġ} ĊĠĠĠ ĠassertEquals (" Cannot Ġconvert Ġvalue Ġnull Ġto Ġboolean ", Ġt . message ) ĊĊĠĠĠ Ġassert ArrayEquals ( ĊĠĠĠĠĠĠĠ Ġquick Js . evaluate (" Sorter . sort Null s First ([ true , Ġfalse , Ġtrue , Ġnull ]) ") Ġas ĠArray < Any ? >, ĊĠĠĠĠĠĠĠ ĠarrayOf ( null , Ġfalse , Ġtrue , Ġtrue )) ĊĠ Ġ} ĊĊĠ Ġ@ Test Ġfun Ġlots Of Local Temp s () Ġ{ ĊĠĠĠ Ġquick Js . set (" foo ", ĠTest Interface Args :: class , ĊĠĠĠĠĠĠĠ ĠTest Interface Args Ġ{ Ġa , Ġb , Ġc Ġ-> Ġa Ġ+ Ġb Ġ+ Ġc Ġ}) ĊĠĠĠ Ġval Ġresult Ġ= Ġquick Js . evaluate (""" ĊĠĠĠĠĠ Ġ| var Ġlen Ġ= Ġ 0 ; ĊĠĠĠĠĠ Ġ| for Ġ( var Ġi Ġ= Ġ 0 ; Ġi Ġ< Ġ 1 0 0 0 0 0 ; Ġi ++) Ġ{ ĊĠĠĠĠĠ Ġ| Ġ Ġvar Ġs Ġ= Ġfoo . foo (' a ', Ġ' b ', Ġ' c '); ĊĠĠĠĠĠ Ġ| Ġ Ġlen Ġ+= Ġs . length ; ĊĠĠĠĠĠ Ġ| } ĊĠĠĠĠĠ Ġ| len ; ĊĠĠĠĠĠ Ġ| """. trim Margin ()) ĊĠĠĠ ĠassertEquals ( 3 0 0 0 0 0 , Ġresult ) ĊĠ Ġ} ĊĊĠ Ġ// Ġhttps :// github . com / square / duk tape - android / issues / 9 5 ĊĠ Ġinterface ĠH uge Interface Ġ{ ĊĠĠĠ Ġfun Ġmethod 0 1 ( ĊĠĠĠĠĠ Ġa : ĠString ?, ĊĠĠĠĠĠ Ġb : ĠString ?, ĊĠĠĠĠĠ Ġc : ĠString ?, ĊĠĠĠĠĠ Ġd : ĠString ?, ĊĠĠĠĠĠ Ġe : ĠString ?, ĊĠĠĠĠĠ Ġf : ĠString ?, ĊĠĠĠĠĠ Ġg : ĠString ?, ĊĠĠĠĠĠ Ġh : ĠString ? ĊĠĠĠ Ġ): ĠString ? ĊĊĠĠĠ Ġfun Ġmethod 0 2 ( ĊĠĠĠĠĠ Ġa : ĠString ?, ĊĠĠĠĠĠ Ġb : ĠString ?, ĊĠĠĠĠĠ Ġc : ĠString ?, ĊĠĠĠĠĠ Ġd : ĠString ?, ĊĠĠĠĠĠ Ġe : ĠString ?, ĊĠĠĠĠĠ Ġf : ĠString ?, ĊĠĠĠĠĠ Ġg : ĠString ?, ĊĠĠĠĠĠ Ġh : ĠString ? ĊĠĠĠ Ġ): ĠString ? ĊĊĠĠĠ Ġfun Ġmethod 0 3 ( ĊĠĠĠĠĠ Ġa : ĠString ?, ĊĠĠĠĠĠ Ġb : ĠString ?, ĊĠĠĠĠĠ Ġc : ĠString ?, ĊĠĠĠĠĠ Ġd : ĠString ?, ĊĠĠĠĠĠ Ġe : ĠString ?, ĊĠĠĠĠĠ Ġf : ĠString ?, ĊĠĠĠĠĠ Ġg : ĠString ?, ĊĠĠĠĠĠ Ġh : ĠString ? ĊĠĠĠ Ġ): ĠString ? ĊĊĠĠĠ Ġfun Ġmethod 0 4 ( ĊĠĠĠĠĠ Ġa : ĠString ?, ĊĠĠĠĠĠ Ġb : ĠString ?, ĊĠĠĠĠĠ Ġc : ĠString ?, ĊĠĠĠĠĠ Ġd : ĠString ?, ĊĠĠĠĠĠ Ġe : ĠString ?, ĊĠĠĠĠĠ Ġf : ĠString ?, ĊĠĠĠĠĠ Ġg : ĠString ?, ĊĠĠĠĠĠ Ġh : ĠString ? ĊĠĠĠ Ġ): ĠString ? ĊĊĠĠĠ Ġfun Ġmethod 0 5 ( ĊĠĠĠĠĠ Ġa : ĠString ?, ĊĠĠĠĠĠ Ġb : ĠString ?, ĊĠĠĠĠĠ Ġc : ĠString ?, ĊĠĠĠĠĠ Ġd : ĠString ?, ĊĠĠĠĠĠ Ġe : ĠString ?, ĊĠĠĠĠĠ Ġf : ĠString ?, ĊĠĠĠĠĠ Ġg : ĠString ?, ĊĠĠĠĠĠ Ġh : ĠString ? ĊĠĠĠ Ġ): ĠString ? ĊĊĠĠĠ Ġfun Ġmethod 0 6 ( ĊĠĠĠĠĠ Ġa : ĠString ?, ĊĠĠĠĠĠ Ġb : ĠString ?, ĊĠĠĠĠĠ Ġc : ĠString ?, ĊĠĠĠĠĠ Ġd : ĠString ?, ĊĠĠĠĠĠ Ġe : ĠString ?, ĊĠĠĠĠĠ Ġf : ĠString ?, ĊĠĠĠĠĠ Ġg : ĠString ?, ĊĠĠĠĠĠ Ġh : ĠString ? ĊĠĠĠ Ġ): ĠString ? ĊĊĠĠĠ Ġfun Ġmethod 0 7 ( ĊĠĠĠĠĠ Ġa : ĠString ?, ĊĠĠĠĠĠ Ġb : ĠString ?, ĊĠĠĠĠĠ Ġc : ĠString ?, ĊĠĠĠĠĠ Ġd : ĠString ?, ĊĠĠĠĠĠ Ġe : ĠString ?, ĊĠĠĠĠĠ Ġf : ĠString ?, ĊĠĠĠĠĠ Ġg : ĠString ?, ĊĠĠĠĠĠ Ġh : ĠString ? ĊĠĠĠ Ġ): ĠString ? ĊĊĠĠĠ Ġfun Ġmethod 0 8 ( ĊĠĠĠĠĠ Ġa : ĠString ?, ĊĠĠĠĠĠ Ġb : ĠString ?, ĊĠĠĠĠĠ Ġc : ĠString ?, ĊĠĠĠĠĠ Ġd : ĠString ?, ĊĠĠĠĠĠ Ġe : ĠString ?, ĊĠĠĠĠĠ Ġf : ĠString ?, ĊĠĠĠĠĠ Ġg : ĠString ?, ĊĠĠĠĠĠ Ġh : ĠString ? ĊĠĠĠ Ġ): ĠString ? ĊĊĠĠĠ Ġfun Ġmethod 0 9 ( ĊĠĠĠĠĠ Ġa : ĠString ?, ĊĠĠĠĠĠ Ġb : ĠString ?, ĊĠĠĠĠĠ Ġc : ĠString ?, ĊĠĠĠĠĠ Ġd : ĠString ?, ĊĠĠĠĠĠ Ġe : ĠString ?, ĊĠĠĠĠĠ Ġf : ĠString ?, ĊĠĠĠĠĠ Ġg : ĠString ?, ĊĠĠĠĠĠ Ġh : ĠString ? ĊĠĠĠ Ġ): ĠString ? ĊĊĠĠĠ Ġfun Ġmethod 1 0 ( ĊĠĠĠĠĠ Ġa : ĠString ?, ĊĠĠĠĠĠ Ġb : ĠString ?, ĊĠĠĠĠĠ Ġc : ĠString ?, ĊĠĠĠĠĠ Ġd : ĠString ?, ĊĠĠĠĠĠ Ġe : ĠString ?, ĊĠĠĠĠĠ Ġf : ĠString ?, ĊĠĠĠĠĠ Ġg : ĠString ?, ĊĠĠĠĠĠ Ġh : ĠString ? ĊĠĠĠ Ġ): ĠString ? ĊĊĠĠĠ Ġfun Ġmethod 1 1 ( ĊĠĠĠĠĠ Ġa : ĠString ?, ĊĠĠĠĠĠ Ġb : ĠString ?, ĊĠĠĠĠĠ Ġc : ĠString ?, ĊĠĠĠĠĠ Ġd : ĠString ?, ĊĠĠĠĠĠ Ġe : ĠString ?, ĊĠĠĠĠĠ Ġf : ĠString ?, ĊĠĠĠĠĠ Ġg : ĠString ?, ĊĠĠĠĠĠ Ġh : ĠString ? ĊĠĠĠ Ġ): ĠString ? ĊĊĠĠĠ Ġfun Ġmethod 1 2 ( ĊĠĠĠĠĠ Ġa : ĠString ?, ĊĠĠĠĠĠ Ġb : ĠString ?, ĊĠĠĠĠĠ Ġc : ĠString ?, ĊĠĠĠĠĠ Ġd : ĠString ?, ĊĠĠĠĠĠ Ġe : ĠString ?, ĊĠĠĠĠĠ Ġf : ĠString ?, ĊĠĠĠĠĠ Ġg : ĠString ?, ĊĠĠĠĠĠ Ġh : ĠString ? ĊĠĠĠ Ġ): ĠString ? ĊĊĠĠĠ Ġfun Ġmethod 1 3 ( ĊĠĠĠĠĠ Ġa : ĠString ?, ĊĠĠĠĠĠ Ġb : ĠString ?, ĊĠĠĠĠĠ Ġc : ĠString ?, ĊĠĠĠĠĠ Ġd : ĠString ?, ĊĠĠĠĠĠ Ġe : ĠString ?, ĊĠĠĠĠĠ Ġf : ĠString ?, ĊĠĠĠĠĠ Ġg : ĠString ?, ĊĠĠĠĠĠ Ġh : ĠString ? ĊĠĠĠ Ġ): ĠString ? ĊĊĠĠĠ Ġfun Ġmethod 1 4 ( ĊĠĠĠĠĠ Ġa : ĠString ?, ĊĠĠĠĠĠ Ġb : ĠString ?, ĊĠĠĠĠĠ Ġc : ĠString ?, ĊĠĠĠĠĠ Ġd : ĠString ?, ĊĠĠĠĠĠ Ġe : ĠString ?, ĊĠĠĠĠĠ Ġf : ĠString ?, ĊĠĠĠĠĠ Ġg : ĠString ?, ĊĠĠĠĠĠ Ġh : ĠString ? ĊĠĠĠ Ġ): ĠString ? ĊĊĠĠĠ Ġfun Ġmethod 1 5 ( ĊĠĠĠĠĠ Ġa : ĠString ?, ĊĠĠĠĠĠ Ġb : ĠString ?, ĊĠĠĠĠĠ Ġc : ĠString ?, ĊĠĠĠĠĠ Ġd : ĠString ?, ĊĠĠĠĠĠ Ġe : ĠString ?, ĊĠĠĠĠĠ Ġf : ĠString ?, ĊĠĠĠĠĠ Ġg : ĠString ?, ĊĠĠĠĠĠ Ġh : ĠString ? ĊĠĠĠ Ġ): ĠString ? ĊĊĠĠĠ Ġfun Ġmethod 1 6 ( ĊĠĠĠĠĠ Ġa : ĠString ?, ĊĠĠĠĠĠ Ġb : ĠString ?, ĊĠĠĠĠĠ Ġc : ĠString ?, ĊĠĠĠĠĠ Ġd : ĠString ?, ĊĠĠĠĠĠ Ġe : ĠString ?, ĊĠĠĠĠĠ Ġf : ĠString ?, ĊĠĠĠĠĠ Ġg : ĠString ?, ĊĠĠĠĠĠ Ġh : ĠString ? ĊĠĠĠ Ġ): ĠString ? ĊĊĠĠĠ Ġfun Ġmethod 1 7 ( ĊĠĠĠĠĠ Ġa : ĠString ?, ĊĠĠĠĠĠ Ġb : ĠString ?, ĊĠĠĠĠĠ Ġc : ĠString ?, ĊĠĠĠĠĠ Ġd : ĠString ?, ĊĠĠĠĠĠ Ġe : ĠString ?, ĊĠĠĠĠĠ Ġf : ĠString ?, ĊĠĠĠĠĠ Ġg : ĠString ?, ĊĠĠĠĠĠ Ġh : ĠString ? ĊĠĠĠ Ġ): ĠString ? ĊĊĠĠĠ Ġfun Ġmethod 1 8 ( ĊĠĠĠĠĠ Ġa : ĠString ?, ĊĠĠĠĠĠ Ġb : ĠString ?, ĊĠĠĠĠĠ Ġc : ĠString ?, ĊĠĠĠĠĠ Ġd : ĠString ?, ĊĠĠĠĠĠ Ġe : ĠString ?, ĊĠĠĠĠĠ Ġf : ĠString ?, ĊĠĠĠĠĠ Ġg : ĠString ?, ĊĠĠĠĠĠ Ġh : ĠString ? ĊĠĠĠ Ġ): ĠString ? ĊĊĠĠĠ Ġfun Ġmethod 1 9 ( ĊĠĠĠĠĠ Ġa : ĠString ?, ĊĠĠĠĠĠ Ġb : ĠString ?, ĊĠĠĠĠĠ Ġc : ĠString ?, ĊĠĠĠĠĠ Ġd : ĠString ?, ĊĠĠĠĠĠ Ġe : ĠString ?, ĊĠĠĠĠĠ Ġf : ĠString ?, ĊĠĠĠĠĠ Ġg : ĠString ?, ĊĠĠĠĠĠ Ġh : ĠString ? ĊĠĠĠ Ġ): ĠString ? ĊĊĠĠĠ Ġfun Ġmethod 2 0 ( ĊĠĠĠĠĠ Ġa : ĠString ?, ĊĠĠĠĠĠ Ġb : ĠString ?, ĊĠĠĠĠĠ Ġc : ĠString ?, ĊĠĠĠĠĠ Ġd : ĠString ?, ĊĠĠĠĠĠ Ġe : ĠString ?, ĊĠĠĠĠĠ Ġf : ĠString ?, ĊĠĠĠĠĠ Ġg : ĠString ?, ĊĠĠĠĠĠ Ġh : ĠString ? ĊĠĠĠ Ġ): ĠString ? ĊĊĠĠĠ Ġfun Ġmethod 2 1 ( ĊĠĠĠĠĠ Ġa : ĠString ?, ĊĠĠĠĠĠ Ġb : ĠString ?, ĊĠĠĠĠĠ Ġc : ĠString ?, ĊĠĠĠĠĠ Ġd : ĠString ?, ĊĠĠĠĠĠ Ġe : ĠString ?, ĊĠĠĠĠĠ Ġf : ĠString ?, ĊĠĠĠĠĠ Ġg : ĠString ?, ĊĠĠĠĠĠ Ġh : ĠString ? ĊĠĠĠ Ġ): ĠString ? ĊĊĠĠĠ Ġfun Ġmethod 2 2 ( ĊĠĠĠĠĠ Ġa : ĠString ?, ĊĠĠĠĠĠ Ġb : ĠString ?, ĊĠĠĠĠĠ Ġc : ĠString ?, ĊĠĠĠĠĠ Ġd : ĠString ?, ĊĠĠĠĠĠ Ġe : ĠString ?, ĊĠĠĠĠĠ Ġf : ĠString ?, ĊĠĠĠĠĠ Ġg : ĠString ?, ĊĠĠĠĠĠ Ġh : ĠString ? ĊĠĠĠ Ġ): ĠString ? ĊĊĠĠĠ Ġfun Ġmethod 2 3 ( ĊĠĠĠĠĠ Ġa : ĠString ?, ĊĠĠĠĠĠ Ġb : ĠString ?, ĊĠĠĠĠĠ Ġc : ĠString ?, ĊĠĠĠĠĠ Ġd : ĠString ?, ĊĠĠĠĠĠ Ġe : ĠString ?, ĊĠĠĠĠĠ Ġf : ĠString ?, ĊĠĠĠĠĠ Ġg : ĠString ?, ĊĠĠĠĠĠ Ġh : ĠString ? ĊĠĠĠ Ġ): ĠString ? ĊĊĠĠĠ Ġfun Ġmethod 2 4 ( ĊĠĠĠĠĠ Ġa : ĠString ?, ĊĠĠĠĠĠ Ġb : ĠString ?, ĊĠĠĠĠĠ Ġc : ĠString ?, ĊĠĠĠĠĠ Ġd : ĠString ?, ĊĠĠĠĠĠ Ġe : ĠString ?, ĊĠĠĠĠĠ Ġf : ĠString ?, ĊĠĠĠĠĠ Ġg : ĠString ?, ĊĠĠĠĠĠ Ġh : ĠString ? ĊĠĠĠ Ġ): ĠString ? ĊĊĠĠĠ Ġfun Ġmethod 2 5 ( ĊĠĠĠĠĠ Ġa : ĠString ?, ĊĠĠĠĠĠ Ġb : ĠString ?, ĊĠĠĠĠĠ Ġc : ĠString ?, ĊĠĠĠĠĠ Ġd : ĠString ?, ĊĠĠĠĠĠ Ġe : ĠString ?, ĊĠĠĠĠĠ Ġf : ĠString ?, ĊĠĠĠĠĠ Ġg : ĠString ?, ĊĠĠĠĠĠ Ġh : ĠString ? ĊĠĠĠ Ġ): ĠString ? ĊĊĠĠĠ Ġfun Ġmethod 2 6 ( ĊĠĠĠĠĠ Ġa : ĠString ?, ĊĠĠĠĠĠ Ġb : ĠString ?, ĊĠĠĠĠĠ Ġc : ĠString ?, ĊĠĠĠĠĠ Ġd : ĠString ?, ĊĠĠĠĠĠ Ġe : ĠString ?, ĊĠĠĠĠĠ Ġf : ĠString ?, ĊĠĠĠĠĠ Ġg : ĠString ?, ĊĠĠĠĠĠ Ġh : ĠString ? ĊĠĠĠ Ġ): ĠString ? ĊĊĠĠĠ Ġfun Ġmethod 2 7 ( ĊĠĠĠĠĠ Ġa : ĠString ?, ĊĠĠĠĠĠ Ġb : ĠString ?, ĊĠĠĠĠĠ Ġc : ĠString ?, ĊĠĠĠĠĠ Ġd : ĠString ?, ĊĠĠĠĠĠ Ġe : ĠString ?, ĊĠĠĠĠĠ Ġf : ĠString ?, ĊĠĠĠĠĠ Ġg : ĠString ?, ĊĠĠĠĠĠ Ġh : ĠString ? ĊĠĠĠ Ġ): ĠString ? ĊĊĠĠĠ Ġfun Ġmethod 2 8 ( ĊĠĠĠĠĠ Ġa : ĠString ?, ĊĠĠĠĠĠ Ġb : ĠString ?, ĊĠĠĠĠĠ Ġc : ĠString ?, ĊĠĠĠĠĠ Ġd : ĠString ?, ĊĠĠĠĠĠ Ġe : ĠString ?, ĊĠĠĠĠĠ Ġf : ĠString ?, ĊĠĠĠĠĠ Ġg : ĠString ?, ĊĠĠĠĠĠ Ġh : ĠString ? ĊĠĠĠ Ġ): ĠString ? ĊĊĠĠĠ Ġfun Ġmethod 2 9 ( ĊĠĠĠĠĠ Ġa : ĠString ?, ĊĠĠĠĠĠ Ġb : ĠString ?, ĊĠĠĠĠĠ Ġc : ĠString ?, ĊĠĠĠĠĠ Ġd : ĠString ?, ĊĠĠĠĠĠ Ġe : ĠString ?, ĊĠĠĠĠĠ Ġf : ĠString ?, ĊĠĠĠĠĠ Ġg : ĠString ?, ĊĠĠĠĠĠ Ġh : ĠString ? ĊĠĠĠ Ġ): ĠString ? ĊĊĠĠĠ Ġfun Ġmethod 3 0 ( ĊĠĠĠĠĠ Ġa : ĠString ?, ĊĠĠĠĠĠ Ġb : ĠString ?, ĊĠĠĠĠĠ Ġc : ĠString ?, ĊĠĠĠĠĠ Ġd : ĠString ?, ĊĠĠĠĠĠ Ġe : ĠString ?, ĊĠĠĠĠĠ Ġf : ĠString ?, ĊĠĠĠĠĠ Ġg : ĠString ?, ĊĠĠĠĠĠ Ġh : ĠString ? ĊĠĠĠ Ġ): ĠString ? ĊĊĠĠĠ Ġfun Ġmethod 3 1 ( ĊĠĠĠĠĠ Ġa : ĠString ?, ĊĠĠĠĠĠ Ġb : ĠString ?, ĊĠĠĠĠĠ Ġc : ĠString ?, ĊĠĠĠĠĠ Ġd : ĠString ?, ĊĠĠĠĠĠ Ġe : ĠString ?, ĊĠĠĠĠĠ Ġf : ĠString ?, ĊĠĠĠĠĠ Ġg : ĠString ?, ĊĠĠĠĠĠ Ġh : ĠString ? ĊĠĠĠ Ġ): ĠString ? ĊĊĠĠĠ Ġfun Ġmethod 3 2 ( ĊĠĠĠĠĠ Ġa : ĠString ?, ĊĠĠĠĠĠ Ġb : ĠString ?, ĊĠĠĠĠĠ Ġc : ĠString ?, ĊĠĠĠĠĠ Ġd : ĠString ?, ĊĠĠĠĠĠ Ġe : ĠString ?, ĊĠĠĠĠĠ Ġf : ĠString ?, ĊĠĠĠĠĠ Ġg : ĠString ?, ĊĠĠĠĠĠ Ġh : ĠString ? ĊĠĠĠ Ġ): ĠString ? ĊĊĠĠĠ Ġfun Ġmethod 3 3 ( ĊĠĠĠĠĠ Ġa : ĠString ?, ĊĠĠĠĠĠ Ġb : ĠString ?, ĊĠĠĠĠĠ Ġc : ĠString ?, ĊĠĠĠĠĠ Ġd : ĠString ?, ĊĠĠĠĠĠ Ġe : ĠString ?, ĊĠĠĠĠĠ Ġf : ĠString ?, ĊĠĠĠĠĠ Ġg : ĠString ?, ĊĠĠĠĠĠ Ġh : ĠString ? ĊĠĠĠ Ġ): ĠString ? ĊĊĠĠĠ Ġfun Ġmethod 3 4 ( ĊĠĠĠĠĠ Ġa : ĠString ?, ĊĠĠĠĠĠ Ġb : ĠString ?, ĊĠĠĠĠĠ Ġc : ĠString ?, ĊĠĠĠĠĠ Ġd : ĠString ?, ĊĠĠĠĠĠ Ġe : ĠString ?, ĊĠĠĠĠĠ Ġf : ĠString ?, ĊĠĠĠĠĠ Ġg : ĠString ?, ĊĠĠĠĠĠ Ġh : ĠString ? ĊĠĠĠ Ġ): ĠString ? ĊĊĠĠĠ Ġfun Ġmethod 3 5 ( ĊĠĠĠĠĠ Ġa : ĠString ?, ĊĠĠĠĠĠ Ġb : ĠString ?, ĊĠĠĠĠĠ Ġc : ĠString ?, ĊĠĠĠĠĠ Ġd : ĠString ?, ĊĠĠĠĠĠ Ġe : ĠString ?, ĊĠĠĠĠĠ Ġf : ĠString ?, ĊĠĠĠĠĠ Ġg : ĠString ?, ĊĠĠĠĠĠ Ġh : ĠString ? ĊĠĠĠ Ġ): ĠString ? ĊĊĠĠĠ Ġfun Ġmethod 3 6 ( ĊĠĠĠĠĠ Ġa : ĠString ?, ĊĠĠĠĠĠ Ġb : ĠString ?, ĊĠĠĠĠĠ Ġc : ĠString ?, ĊĠĠĠĠĠ Ġd : ĠString ?, ĊĠĠĠĠĠ Ġe : ĠString ?, ĊĠĠĠĠĠ Ġf : ĠString ?, ĊĠĠĠĠĠ Ġg : ĠString ?, ĊĠĠĠĠĠ Ġh : ĠString ? ĊĠĠĠ Ġ): ĠString ? ĊĊĠĠĠ Ġfun Ġmethod 3 7 ( ĊĠĠĠĠĠ Ġa : ĠString ?, ĊĠĠĠĠĠ Ġb : ĠString ?, ĊĠĠĠĠĠ Ġc : ĠString ?, ĊĠĠĠĠĠ Ġd : ĠString ?, ĊĠĠĠĠĠ Ġe : ĠString ?, ĊĠĠĠĠĠ Ġf : ĠString ?, ĊĠĠĠĠĠ Ġg : ĠString ?, ĊĠĠĠĠĠ Ġh : ĠString ? ĊĠĠĠ Ġ): ĠString ? ĊĊĠĠĠ Ġfun Ġmethod 3 8 ( ĊĠĠĠĠĠ Ġa : ĠString ?, ĊĠĠĠĠĠ Ġb : ĠString ?, ĊĠĠĠĠĠ Ġc : ĠString ?, ĊĠĠĠĠĠ Ġd : ĠString ?, ĊĠĠĠĠĠ Ġe : ĠString ?, ĊĠĠĠĠĠ Ġf : ĠString ?, ĊĠĠĠĠĠ Ġg : ĠString ?, ĊĠĠĠĠĠ Ġh : ĠString ? ĊĠĠĠ Ġ): ĠString ? ĊĊĠĠĠ Ġfun Ġmethod 3 9 ( ĊĠĠĠĠĠ Ġa : ĠString ?, ĊĠĠĠĠĠ Ġb : ĠString ?, ĊĠĠĠĠĠ Ġc : ĠString ?, ĊĠĠĠĠĠ Ġd : ĠString ?, ĊĠĠĠĠĠ Ġe : ĠString ?, ĊĠĠĠĠĠ Ġf : ĠString ?, ĊĠĠĠĠĠ Ġg : ĠString ?, ĊĠĠĠĠĠ Ġh : ĠString ? ĊĠĠĠ Ġ): ĠString ? ĊĊĠĠĠ Ġfun Ġmethod 4 0 ( ĊĠĠĠĠĠ Ġa : ĠString ?, ĊĠĠĠĠĠ Ġb : ĠString ?, ĊĠĠĠĠĠ Ġc : ĠString ?, ĊĠĠĠĠĠ Ġd : ĠString ?, ĊĠĠĠĠĠ Ġe : ĠString ?, ĊĠĠĠĠĠ Ġf : ĠString ?, ĊĠĠĠĠĠ Ġg : ĠString ?, ĊĠĠĠĠĠ Ġh : ĠString ? ĊĠĠĠ Ġ): ĠString ? ĊĊĠĠĠ Ġfun Ġmethod 4 1 ( ĊĠĠĠĠĠ Ġa : ĠString ?, ĊĠĠĠĠĠ Ġb : ĠString ?, ĊĠĠĠĠĠ Ġc : ĠString ?, ĊĠĠĠĠĠ Ġd : ĠString ?, ĊĠĠĠĠĠ Ġe : ĠString ?, ĊĠĠĠĠĠ Ġf : ĠString ?, ĊĠĠĠĠĠ Ġg : ĠString ?, ĊĠĠĠĠĠ Ġh : ĠString ? ĊĠĠĠ Ġ): ĠString ? ĊĊĠĠĠ Ġfun Ġmethod 4 2 ( ĊĠĠĠĠĠ Ġa : ĠString ?, ĊĠĠĠĠĠ Ġb : ĠString ?, ĊĠĠĠĠĠ Ġc : ĠString ?, ĊĠĠĠĠĠ Ġd : ĠString ?, ĊĠĠĠĠĠ Ġe : ĠString ?, ĊĠĠĠĠĠ Ġf : ĠString ?, ĊĠĠĠĠĠ Ġg : ĠString ?, ĊĠĠĠĠĠ Ġh : ĠString ? ĊĠĠĠ Ġ): ĠString ? ĊĊĠĠĠ Ġfun Ġmethod 4 3 ( ĊĠĠĠĠĠ Ġa : ĠString ?, ĊĠĠĠĠĠ Ġb : ĠString ?, ĊĠĠĠĠĠ Ġc : ĠString ?, ĊĠĠĠĠĠ Ġd : ĠString ?, ĊĠĠĠĠĠ Ġe : ĠString ?, ĊĠĠĠĠĠ Ġf : ĠString ?, ĊĠĠĠĠĠ Ġg : ĠString ?, ĊĠĠĠĠĠ Ġh : ĠString ? ĊĠĠĠ Ġ): ĠString ? ĊĊĠĠĠ Ġfun Ġmethod 4 4 ( ĊĠĠĠĠĠ Ġa : ĠString ?, ĊĠĠĠĠĠ Ġb : ĠString ?, ĊĠĠĠĠĠ Ġc : ĠString ?, ĊĠĠĠĠĠ Ġd : ĠString ?, ĊĠĠĠĠĠ Ġe : ĠString ?, ĊĠĠĠĠĠ Ġf : ĠString ?, ĊĠĠĠĠĠ Ġg : ĠString ?, ĊĠĠĠĠĠ Ġh : ĠString ? ĊĠĠĠ Ġ): ĠString ? ĊĊĠĠĠ Ġfun Ġmethod 4 5 ( ĊĠĠĠĠĠ Ġa : ĠString ?, ĊĠĠĠĠĠ Ġb : ĠString ?, ĊĠĠĠĠĠ Ġc : ĠString ?, ĊĠĠĠĠĠ Ġd : ĠString ?, ĊĠĠĠĠĠ Ġe : ĠString ?, ĊĠĠĠĠĠ Ġf : ĠString ?, ĊĠĠĠĠĠ Ġg : ĠString ?, ĊĠĠĠĠĠ Ġh : ĠString ? ĊĠĠĠ Ġ): ĠString ? ĊĊĠĠĠ Ġfun Ġmethod 4 6 ( ĊĠĠĠĠĠ Ġa : ĠString ?, ĊĠĠĠĠĠ Ġb : ĠString ?, ĊĠĠĠĠĠ Ġc : ĠString ?, ĊĠĠĠĠĠ Ġd : ĠString ?, ĊĠĠĠĠĠ Ġe : ĠString ?, ĊĠĠĠĠĠ Ġf : ĠString ?, ĊĠĠĠĠĠ Ġg : ĠString ?, ĊĠĠĠĠĠ Ġh : ĠString ? ĊĠĠĠ Ġ): ĠString ? ĊĊĠĠĠ Ġfun Ġmethod 4 7 ( ĊĠĠĠĠĠ Ġa : ĠString ?, ĊĠĠĠĠĠ Ġb : ĠString ?, ĊĠĠĠĠĠ Ġc : ĠString ?, ĊĠĠĠĠĠ Ġd : ĠString ?, ĊĠĠĠĠĠ Ġe : ĠString ?, ĊĠĠĠĠĠ Ġf : ĠString ?, ĊĠĠĠĠĠ Ġg : ĠString ?, ĊĠĠĠĠĠ Ġh : ĠString ? ĊĠĠĠ Ġ): ĠString ? ĊĊĠĠĠ Ġfun Ġmethod 4 8 ( ĊĠĠĠĠĠ Ġa : ĠString ?, ĊĠĠĠĠĠ Ġb : ĠString ?, ĊĠĠĠĠĠ Ġc : ĠString ?, ĊĠĠĠĠĠ Ġd : ĠString ?, ĊĠĠĠĠĠ Ġe : ĠString ?, ĊĠĠĠĠĠ Ġf : ĠString ?, ĊĠĠĠĠĠ Ġg : ĠString ?, ĊĠĠĠĠĠ Ġh : ĠString ? ĊĠĠĠ Ġ): ĠString ? ĊĊĠĠĠ Ġfun Ġmethod 4 9 ( ĊĠĠĠĠĠ Ġa : ĠString ?, ĊĠĠĠĠĠ Ġb : ĠString ?, ĊĠĠĠĠĠ Ġc : ĠString ?, ĊĠĠĠĠĠ Ġd : ĠString ?, ĊĠĠĠĠĠ Ġe : ĠString ?, ĊĠĠĠĠĠ Ġf : ĠString ?, ĊĠĠĠĠĠ Ġg : ĠString ?, ĊĠĠĠĠĠ Ġh : ĠString ? ĊĠĠĠ Ġ): ĠString ? ĊĊĠĠĠ Ġfun Ġmethod 5 0 ( ĊĠĠĠĠĠ Ġa : ĠString , ĊĠĠĠĠĠ Ġb : ĠString , ĊĠĠĠĠĠ Ġc : ĠString , ĊĠĠĠĠĠ Ġd : ĠString , ĊĠĠĠĠĠ Ġe : ĠString , ĊĠĠĠĠĠ Ġf : ĠString , ĊĠĠĠĠĠ Ġg : ĠString , ĊĠĠĠĠĠ Ġh : ĠString ĊĠĠĠ Ġ): ĠString ĊĠ Ġ} ĊĊĠ Ġ@ Test Ġfun Ġlots Of Interface Methods And Args () Ġ{ ĊĠĠĠ Ġquick Js . set (" foo ", ĠH uge Interface :: class , Ġobject Ġ: ĠH uge Interface Ġ{ ĊĠĠĠĠĠ Ġoverride Ġfun Ġmethod 0 1 ( ĊĠĠĠĠĠĠĠ Ġa : ĠString ?, Ġb : ĠString ?, Ġc : ĠString ?, Ġd : ĠString ?, Ġe : ĠString ?, Ġf : ĠString ?, Ġg : ĠString ?, ĊĠĠĠĠĠĠĠ Ġh : ĠString ? ĊĠĠĠĠĠ Ġ): ĠString ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠ Ġoverride Ġfun Ġmethod 0 2 ( ĊĠĠĠĠĠĠĠ Ġa : ĠString ?, Ġb : ĠString ?, Ġc : ĠString ?, Ġd : ĠString ?, Ġe : ĠString ?, Ġf : ĠString ?, Ġg : ĠString ?, ĊĠĠĠĠĠĠĠ Ġh : ĠString ? ĊĠĠĠĠĠ Ġ): ĠString ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠ Ġoverride Ġfun Ġmethod 0 3 ( ĊĠĠĠĠĠĠĠ Ġa : ĠString ?, Ġb : ĠString ?, Ġc : ĠString ?, Ġd : ĠString ?, Ġe : ĠString ?, Ġf : ĠString ?, Ġg : ĠString ?, ĊĠĠĠĠĠĠĠ Ġh : ĠString ? ĊĠĠĠĠĠ Ġ): ĠString ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠ Ġoverride Ġfun Ġmethod 0 4 ( ĊĠĠĠĠĠĠĠ Ġa : ĠString ?, Ġb : ĠString ?, Ġc : ĠString ?, Ġd : ĠString ?, Ġe : ĠString ?, Ġf : ĠString ?, Ġg : ĠString ?, ĊĠĠĠĠĠĠĠ Ġh : ĠString ? ĊĠĠĠĠĠ Ġ): ĠString ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠ Ġoverride Ġfun Ġmethod 0 5 ( ĊĠĠĠĠĠĠĠ Ġa : ĠString ?, Ġb : ĠString ?, Ġc : ĠString ?, Ġd : ĠString ?, Ġe : ĠString ?, Ġf : ĠString ?, Ġg : ĠString ?, ĊĠĠĠĠĠĠĠ Ġh : ĠString ? ĊĠĠĠĠĠ Ġ): ĠString ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠ Ġoverride Ġfun Ġmethod 0 6 ( ĊĠĠĠĠĠĠĠ Ġa : ĠString ?, Ġb : ĠString ?, Ġc : ĠString ?, Ġd : ĠString ?, Ġe : ĠString ?, Ġf : ĠString ?, Ġg : ĠString ?, ĊĠĠĠĠĠĠĠ Ġh : ĠString ? ĊĠĠĠĠĠ Ġ): ĠString ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠ Ġoverride Ġfun Ġmethod 0 7 ( ĊĠĠĠĠĠĠĠ Ġa : ĠString ?, Ġb : ĠString ?, Ġc : ĠString ?, Ġd : ĠString ?, Ġe : ĠString ?, Ġf : ĠString ?, Ġg : ĠString ?, ĊĠĠĠĠĠĠĠ Ġh : ĠString ? ĊĠĠĠĠĠ Ġ): ĠString ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠ Ġoverride Ġfun Ġmethod 0 8 ( ĊĠĠĠĠĠĠĠ Ġa : ĠString ?, Ġb : ĠString ?, Ġc : ĠString ?, Ġd : ĠString ?, Ġe : ĠString ?, Ġf : ĠString ?, Ġg : ĠString ?, ĊĠĠĠĠĠĠĠ Ġh : ĠString ? ĊĠĠĠĠĠ Ġ): ĠString ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠ Ġoverride Ġfun Ġmethod 0 9 ( ĊĠĠĠĠĠĠĠ Ġa : ĠString ?, Ġb : ĠString ?, Ġc : ĠString ?, Ġd : ĠString ?, Ġe : ĠString ?, Ġf : ĠString ?, Ġg : ĠString ?, ĊĠĠĠĠĠĠĠ Ġh : ĠString ? ĊĠĠĠĠĠ Ġ): ĠString ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠ Ġoverride Ġfun Ġmethod 1 0 ( ĊĠĠĠĠĠĠĠ Ġa : ĠString ?, Ġb : ĠString ?, Ġc : ĠString ?, Ġd : ĠString ?, Ġe : ĠString ?, Ġf : ĠString ?, Ġg : ĠString ?, ĊĠĠĠĠĠĠĠ Ġh : ĠString ? ĊĠĠĠĠĠ Ġ): ĠString ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠ Ġoverride Ġfun Ġmethod 1 1 ( ĊĠĠĠĠĠĠĠ Ġa : ĠString ?, Ġb : ĠString ?, Ġc : ĠString ?, Ġd : ĠString ?, Ġe : ĠString ?, Ġf : ĠString ?, Ġg : ĠString ?, ĊĠĠĠĠĠĠĠ Ġh : ĠString ? ĊĠĠĠĠĠ Ġ): ĠString ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠ Ġoverride Ġfun Ġmethod 1 2 ( ĊĠĠĠĠĠĠĠ Ġa : ĠString ?, Ġb : ĠString ?, Ġc : ĠString ?, Ġd : ĠString ?, Ġe : ĠString ?, Ġf : ĠString ?, Ġg : ĠString ?, ĊĠĠĠĠĠĠĠ Ġh : ĠString ? ĊĠĠĠĠĠ Ġ): ĠString ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠ Ġoverride Ġfun Ġmethod 1 3 ( ĊĠĠĠĠĠĠĠ Ġa : ĠString ?, Ġb : ĠString ?, Ġc : ĠString ?, Ġd : ĠString ?, Ġe : ĠString ?, Ġf : ĠString ?, Ġg : ĠString ?, ĊĠĠĠĠĠĠĠ Ġh : ĠString ? ĊĠĠĠĠĠ Ġ): ĠString ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠ Ġoverride Ġfun Ġmethod 1 4 ( ĊĠĠĠĠĠĠĠ Ġa : ĠString ?, Ġb : ĠString ?, Ġc : ĠString ?, Ġd : ĠString ?, Ġe : ĠString ?, Ġf : ĠString ?, Ġg : ĠString ?, ĊĠĠĠĠĠĠĠ Ġh : ĠString ? ĊĠĠĠĠĠ Ġ): ĠString ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠ Ġoverride Ġfun Ġmethod 1 5 ( ĊĠĠĠĠĠĠĠ Ġa : ĠString ?, Ġb : ĠString ?, Ġc : ĠString ?, Ġd : ĠString ?, Ġe : ĠString ?, Ġf : ĠString ?, Ġg : ĠString ?, ĊĠĠĠĠĠĠĠ Ġh : ĠString ? ĊĠĠĠĠĠ Ġ): ĠString ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠ Ġoverride Ġfun Ġmethod 1 6 ( ĊĠĠĠĠĠĠĠ Ġa : ĠString ?, Ġb : ĠString ?, Ġc : ĠString ?, Ġd : ĠString ?, Ġe : ĠString ?, Ġf : ĠString ?, Ġg : ĠString ?, ĊĠĠĠĠĠĠĠ Ġh : ĠString ? ĊĠĠĠĠĠ Ġ): ĠString ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠ Ġoverride Ġfun Ġmethod 1 7 ( ĊĠĠĠĠĠĠĠ Ġa : ĠString ?, Ġb : ĠString ?, Ġc : ĠString ?, Ġd : ĠString ?, Ġe : ĠString ?, Ġf : ĠString ?, Ġg : ĠString ?, ĊĠĠĠĠĠĠĠ Ġh : ĠString ? ĊĠĠĠĠĠ Ġ): ĠString ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠ Ġoverride Ġfun Ġmethod 1 8 ( ĊĠĠĠĠĠĠĠ Ġa : ĠString ?, Ġb : ĠString ?, Ġc : ĠString ?, Ġd : ĠString ?, Ġe : ĠString ?, Ġf : ĠString ?, Ġg : ĠString ?, ĊĠĠĠĠĠĠĠ Ġh : ĠString ? ĊĠĠĠĠĠ Ġ): ĠString ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠ Ġoverride Ġfun Ġmethod 1 9 ( ĊĠĠĠĠĠĠĠ Ġa : ĠString ?, Ġb : ĠString ?, Ġc : ĠString ?, Ġd : ĠString ?, Ġe : ĠString ?, Ġf : ĠString ?, Ġg : ĠString ?, ĊĠĠĠĠĠĠĠ Ġh : ĠString ? ĊĠĠĠĠĠ Ġ): ĠString ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠ Ġoverride Ġfun Ġmethod 2 0 ( ĊĠĠĠĠĠĠĠ Ġa : ĠString ?, Ġb : ĠString ?, Ġc : ĠString ?, Ġd : ĠString ?, Ġe : ĠString ?, Ġf : ĠString ?, Ġg : ĠString ?, ĊĠĠĠĠĠĠĠ Ġh : ĠString ? ĊĠĠĠĠĠ Ġ): ĠString ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠ Ġoverride Ġfun Ġmethod 2 1 ( ĊĠĠĠĠĠĠĠ Ġa : ĠString ?, Ġb : ĠString ?, Ġc : ĠString ?, Ġd : ĠString ?, Ġe : ĠString ?, Ġf : ĠString ?, Ġg : ĠString ?, ĊĠĠĠĠĠĠĠ Ġh : ĠString ? ĊĠĠĠĠĠ Ġ): ĠString ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠ Ġoverride Ġfun Ġmethod 2 2 ( ĊĠĠĠĠĠĠĠ Ġa : ĠString ?, Ġb : ĠString ?, Ġc : ĠString ?, Ġd : ĠString ?, Ġe : ĠString ?, Ġf : ĠString ?, Ġg : ĠString ?, ĊĠĠĠĠĠĠĠ Ġh : ĠString ? ĊĠĠĠĠĠ Ġ): ĠString ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠ Ġoverride Ġfun Ġmethod 2 3 ( ĊĠĠĠĠĠĠĠ Ġa : ĠString ?, Ġb : ĠString ?, Ġc : ĠString ?, Ġd : ĠString ?, Ġe : ĠString ?, Ġf : ĠString ?, Ġg : ĠString ?, ĊĠĠĠĠĠĠĠ Ġh : ĠString ? ĊĠĠĠĠĠ Ġ): ĠString ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠ Ġoverride Ġfun Ġmethod 2 4 ( ĊĠĠĠĠĠĠĠ Ġa : ĠString ?, Ġb : ĠString ?, Ġc : ĠString ?, Ġd : ĠString ?, Ġe : ĠString ?, Ġf : ĠString ?, Ġg : ĠString ?, ĊĠĠĠĠĠĠĠ Ġh : ĠString ? ĊĠĠĠĠĠ Ġ): ĠString ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠ Ġoverride Ġfun Ġmethod 2 5 ( ĊĠĠĠĠĠĠĠ Ġa : ĠString ?, Ġb : ĠString ?, Ġc : ĠString ?, Ġd : ĠString ?, Ġe : ĠString ?, Ġf : ĠString ?, Ġg : ĠString ?, ĊĠĠĠĠĠĠĠ Ġh : ĠString ? ĊĠĠĠĠĠ Ġ): ĠString ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠ Ġoverride Ġfun Ġmethod 2 6 ( ĊĠĠĠĠĠĠĠ Ġa : ĠString ?, Ġb : ĠString ?, Ġc : ĠString ?, Ġd : ĠString ?, Ġe : ĠString ?, Ġf : ĠString ?, Ġg : ĠString ?, ĊĠĠĠĠĠĠĠ Ġh : ĠString ? ĊĠĠĠĠĠ Ġ): ĠString ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠ Ġoverride Ġfun Ġmethod 2 7 ( ĊĠĠĠĠĠĠĠ Ġa : ĠString ?, Ġb : ĠString ?, Ġc : ĠString ?, Ġd : ĠString ?, Ġe : ĠString ?, Ġf : ĠString ?, Ġg : ĠString ?, ĊĠĠĠĠĠĠĠ Ġh : ĠString ? ĊĠĠĠĠĠ Ġ): ĠString ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠ Ġoverride Ġfun Ġmethod 2 8 ( ĊĠĠĠĠĠĠĠ Ġa : ĠString ?, Ġb : ĠString ?, Ġc : ĠString ?, Ġd : ĠString ?, Ġe : ĠString ?, Ġf : ĠString ?, Ġg : ĠString ?, ĊĠĠĠĠĠĠĠ Ġh : ĠString ? ĊĠĠĠĠĠ Ġ): ĠString ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠ Ġoverride Ġfun Ġmethod 2 9 ( ĊĠĠĠĠĠĠĠ Ġa : ĠString ?, Ġb : ĠString ?, Ġc : ĠString ?, Ġd : ĠString ?, Ġe : ĠString ?, Ġf : ĠString ?, Ġg : ĠString ?, ĊĠĠĠĠĠĠĠ Ġh : ĠString ? ĊĠĠĠĠĠ Ġ): ĠString ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠ Ġoverride Ġfun Ġmethod 3 0 ( ĊĠĠĠĠĠĠĠ Ġa : ĠString ?, Ġb : ĠString ?, Ġc : ĠString ?, Ġd : ĠString ?, Ġe : ĠString ?, Ġf : ĠString ?, Ġg : ĠString ?, ĊĠĠĠĠĠĠĠ Ġh : ĠString ? ĊĠĠĠĠĠ Ġ): ĠString ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠ Ġoverride Ġfun Ġmethod 3 1 ( ĊĠĠĠĠĠĠĠ Ġa : ĠString ?, Ġb : ĠString ?, Ġc : ĠString ?, Ġd : ĠString ?, Ġe : ĠString ?, Ġf : ĠString ?, Ġg : ĠString ?, ĊĠĠĠĠĠĠĠ Ġh : ĠString ? ĊĠĠĠĠĠ Ġ): ĠString ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠ Ġoverride Ġfun Ġmethod 3 2 ( ĊĠĠĠĠĠĠĠ Ġa : ĠString ?, Ġb : ĠString ?, Ġc : ĠString ?, Ġd : ĠString ?, Ġe : ĠString ?, Ġf : ĠString ?, Ġg : ĠString ?, ĊĠĠĠĠĠĠĠ Ġh : ĠString ? ĊĠĠĠĠĠ Ġ): ĠString ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠ Ġoverride Ġfun Ġmethod 3 3 ( ĊĠĠĠĠĠĠĠ Ġa : ĠString ?, Ġb : ĠString ?, Ġc : ĠString ?, Ġd : ĠString ?, Ġe : ĠString ?, Ġf : ĠString ?, Ġg : ĠString ?, ĊĠĠĠĠĠĠĠ Ġh : ĠString ? ĊĠĠĠĠĠ Ġ): ĠString ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠ Ġoverride Ġfun Ġmethod 3 4 ( ĊĠĠĠĠĠĠĠ Ġa : ĠString ?, Ġb : ĠString ?, Ġc : ĠString ?, Ġd : ĠString ?, Ġe : ĠString ?, Ġf : ĠString ?, Ġg : ĠString ?, ĊĠĠĠĠĠĠĠ Ġh : ĠString ? ĊĠĠĠĠĠ Ġ): ĠString ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠ Ġoverride Ġfun Ġmethod 3 5 ( ĊĠĠĠĠĠĠĠ Ġa : ĠString ?, Ġb : ĠString ?, Ġc : ĠString ?, Ġd : ĠString ?, Ġe : ĠString ?, Ġf : ĠString ?, Ġg : ĠString ?, ĊĠĠĠĠĠĠĠ Ġh : ĠString ? ĊĠĠĠĠĠ Ġ): ĠString ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠ Ġoverride Ġfun Ġmethod 3 6 ( ĊĠĠĠĠĠĠĠ Ġa : ĠString ?, Ġb : ĠString ?, Ġc : ĠString ?, Ġd : ĠString ?, Ġe : ĠString ?, Ġf : ĠString ?, Ġg : ĠString ?, ĊĠĠĠĠĠĠĠ Ġh : ĠString ? ĊĠĠĠĠĠ Ġ): ĠString ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠ Ġoverride Ġfun Ġmethod 3 7 ( ĊĠĠĠĠĠĠĠ Ġa : ĠString ?, Ġb : ĠString ?, Ġc : ĠString ?, Ġd : ĠString ?, Ġe : ĠString ?, Ġf : ĠString ?, Ġg : ĠString ?, ĊĠĠĠĠĠĠĠ Ġh : ĠString ? ĊĠĠĠĠĠ Ġ): ĠString ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠ Ġoverride Ġfun Ġmethod 3 8 ( ĊĠĠĠĠĠĠĠ Ġa : ĠString ?, Ġb : ĠString ?, Ġc : ĠString ?, Ġd : ĠString ?, Ġe : ĠString ?, Ġf : ĠString ?, Ġg : ĠString ?, ĊĠĠĠĠĠĠĠ Ġh : ĠString ? ĊĠĠĠĠĠ Ġ): ĠString ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠ Ġoverride Ġfun Ġmethod 3 9 ( ĊĠĠĠĠĠĠĠ Ġa : ĠString ?, Ġb : ĠString ?, Ġc : ĠString ?, Ġd : ĠString ?, Ġe : ĠString ?, Ġf : ĠString ?, Ġg : ĠString ?, ĊĠĠĠĠĠĠĠ Ġh : ĠString ? ĊĠĠĠĠĠ Ġ): ĠString ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠ Ġoverride Ġfun Ġmethod 4 0 ( ĊĠĠĠĠĠĠĠ Ġa : ĠString ?, Ġb : ĠString ?, Ġc : ĠString ?, Ġd : ĠString ?, Ġe : ĠString ?, Ġf : ĠString ?, Ġg : ĠString ?, ĊĠĠĠĠĠĠĠ Ġh : ĠString ? ĊĠĠĠĠĠ Ġ): ĠString ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠ Ġoverride Ġfun Ġmethod 4 1 ( ĊĠĠĠĠĠĠĠ Ġa : ĠString ?, Ġb : ĠString ?, Ġc : ĠString ?, Ġd : ĠString ?, Ġe : ĠString ?, Ġf : ĠString ?, Ġg : ĠString ?, ĊĠĠĠĠĠĠĠ Ġh : ĠString ? ĊĠĠĠĠĠ Ġ): ĠString ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠ Ġoverride Ġfun Ġmethod 4 2 ( ĊĠĠĠĠĠĠĠ Ġa : ĠString ?, Ġb : ĠString ?, Ġc : ĠString ?, Ġd : ĠString ?, Ġe : ĠString ?, Ġf : ĠString ?, Ġg : ĠString ?, ĊĠĠĠĠĠĠĠ Ġh : ĠString ? ĊĠĠĠĠĠ Ġ): ĠString ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠ Ġoverride Ġfun Ġmethod 4 3 ( ĊĠĠĠĠĠĠĠ Ġa : ĠString ?, Ġb : ĠString ?, Ġc : ĠString ?, Ġd : ĠString ?, Ġe : ĠString ?, Ġf : ĠString ?, Ġg : ĠString ?, ĊĠĠĠĠĠĠĠ Ġh : ĠString ? ĊĠĠĠĠĠ Ġ): ĠString ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠ Ġoverride Ġfun Ġmethod 4 4 ( ĊĠĠĠĠĠĠĠ Ġa : ĠString ?, Ġb : ĠString ?, Ġc : ĠString ?, Ġd : ĠString ?, Ġe : ĠString ?, Ġf : ĠString ?, Ġg : ĠString ?, ĊĠĠĠĠĠĠĠ Ġh : ĠString ? ĊĠĠĠĠĠ Ġ): ĠString ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠ Ġoverride Ġfun Ġmethod 4 5 ( ĊĠĠĠĠĠĠĠ Ġa : ĠString ?, Ġb : ĠString ?, Ġc : ĠString ?, Ġd : ĠString ?, Ġe : ĠString ?, Ġf : ĠString ?, Ġg : ĠString ?, ĊĠĠĠĠĠĠĠ Ġh : ĠString ? ĊĠĠĠĠĠ Ġ): ĠString ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠ Ġoverride Ġfun Ġmethod 4 6 ( ĊĠĠĠĠĠĠĠ Ġa : ĠString ?, Ġb : ĠString ?, Ġc : ĠString ?, Ġd : ĠString ?, Ġe : ĠString ?, Ġf : ĠString ?, Ġg : ĠString ?, ĊĠĠĠĠĠĠĠ Ġh : ĠString ? ĊĠĠĠĠĠ Ġ): ĠString ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠ Ġoverride Ġfun Ġmethod 4 7 ( ĊĠĠĠĠĠĠĠ Ġa : ĠString ?, Ġb : ĠString ?, Ġc : ĠString ?, Ġd : ĠString ?, Ġe : ĠString ?, Ġf : ĠString ?, Ġg : ĠString ?, ĊĠĠĠĠĠĠĠ Ġh : ĠString ? ĊĠĠĠĠĠ Ġ): ĠString ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠ Ġoverride Ġfun Ġmethod 4 8 ( ĊĠĠĠĠĠĠĠ Ġa : ĠString ?, Ġb : ĠString ?, Ġc : ĠString ?, Ġd : ĠString ?, Ġe : ĠString ?, Ġf : ĠString ?, Ġg : ĠString ?, ĊĠĠĠĠĠĠĠ Ġh : ĠString ? ĊĠĠĠĠĠ Ġ): ĠString ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠ Ġoverride Ġfun Ġmethod 4 9 ( ĊĠĠĠĠĠĠĠ Ġa : ĠString ?, Ġb : ĠString ?, Ġc : ĠString ?, Ġd : ĠString ?, Ġe : ĠString ?, Ġf : ĠString ?, Ġg : ĠString ?, ĊĠĠĠĠĠĠĠ Ġh : ĠString ? ĊĠĠĠĠĠ Ġ): ĠString ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠ Ġoverride Ġfun Ġmethod 5 0 ( ĊĠĠĠĠĠĠĠ Ġa : ĠString , Ġb : ĠString , Ġc : ĠString , Ġd : ĠString , Ġe : ĠString , Ġf : ĠString , Ġg : ĠString , ĊĠĠĠĠĠĠĠ Ġh : ĠString ĊĠĠĠĠĠ Ġ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġ" method 5 0 $ a $ b $ c $ d $ e $ f $ g $ h " ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ}) ĊĠĠĠ Ġval Ġresult Ġ= Ġquick Js . evaluate (" foo . method 5 0 (' a ', Ġ' b ', Ġ' c ', Ġ' d ', Ġ' e ', Ġ' f ', Ġ' g ', Ġ' h ') \ n ") ĊĠĠĠ ĠassertEquals (" method 5 0 abcdefgh ", Ġresult ) ĊĠ Ġ} Ċ } Ċ