// ĠMODULE _ KIND : ĠCOMMON _ JS Ċ // ĠSKIP _ D CE _ DR IV EN Ċ // ĠSKIP _ MIN IFICATION Ċ Ċ // ĠFILE : Ġapi . kt Ċ package Ġapi Ċ Ċ @ Js Export Ċ data Ġclass ĠPoint ( val Ġx : ĠInt , Ġval Ġy : ĠInt ) Ġ{ ĊĠĠĠ Ġoverride Ġfun ĠtoString (): ĠString Ġ= Ġ"[ ${ x } :: ${ y }] " Ċ } Ċ Ċ // Ġwe Ġneed Ġhis Ġclass Ġto Ġmake Ġsure Ġthat Ġthere 's Ġmore Ġthan Ġone Ġping Ġmethod Ġin Ġexistence Ġ- Ġdue Ġto Ġp ec ul iar ities Ġof Ġcurrent Ġn amer Ġotherwise Ġtest Ġcan Ġpass Ġbut ĠJs Export Ġwon 't Ġbe Ġactually Ġrespect ed Ċ data Ġclass ĠAlt Point ( val Ġx : ĠInt , Ġval Ġy : ĠInt ) Ċ Ċ // ĠFILE : Ġmain . kt Ċ external Ġinterface ĠJs Result Ġ{ ĊĠĠĠ Ġval Ġcopy 0 0 : ĠString ĊĠĠĠ Ġval Ġcopy 0 1 : ĠString ĊĠĠĠ Ġval Ġcopy 1 0 : ĠString ĊĠĠĠ Ġval Ġcopy 1 1 : ĠString ĊĠĠĠ Ġval Ġcomponent 1 : ĠInt ĊĠĠĠ Ġval Ġcomponent 2 : ĠInt Ċ } Ċ Ċ @ Js Module (" lib ") Ċ external Ġfun Ġjs Box (): ĠJs Result Ċ Ċ fun Ġbox (): ĠString Ġ{ ĊĠĠĠ Ġval Ġres Ġ= Ġjs Box () ĊĠĠĠ Ġif Ġ( res . copy 0 0 Ġ!= Ġ"[ 3 :: 7 ]") Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġ" Fail 1 : Ġ${ res . copy 0 0 }" ĊĠĠĠ Ġ} ĊĠĠĠ Ġif Ġ( res . copy 0 1 Ġ!= Ġ"[ 3 :: 1 1 ]") Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġ" Fail 2 : Ġ${ res . copy 0 1 }" ĊĠĠĠ Ġ} ĊĠĠĠ Ġif Ġ( res . copy 1 0 Ġ!= Ġ"[ 1 5 :: 7 ]") Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġ" Fail 3 : Ġ${ res . copy 1 0 }" ĊĠĠĠ Ġ} ĊĠĠĠ Ġif Ġ( res . copy 1 1 Ġ!= Ġ"[ 1 3 :: 1 1 ]") Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġ" Fail 4 : Ġ${ res . copy 1 1 }" ĊĠĠĠ Ġ} ĊĠĠĠ Ġif Ġ( res . component 1 Ġ!= Ġ 3 ) Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġ" Fail 5 : Ġ${ res . component 1 }" ĊĠĠĠ Ġ} ĊĠĠĠ Ġif Ġ( res . component 2 Ġ!= Ġ 7 ) Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġ" Fail 6 : Ġ${ res . component 2 }" ĊĠĠĠ Ġ} ĊĊĊĊĊĠĠĠ Ġreturn Ġ" OK " Ċ }