// ĠIG NORE _ BACKEND : ĠJVM _ IR Ċ // ĠIG NORE _ BACKEND : ĠJS _ IR Ċ // ĠTODO : Ġmut ed Ġautomatically , Ġinvestigate Ġshould Ġit Ġbe Ġran Ġfor ĠJS Ġor Ġnot Ċ // ĠIG NORE _ BACKEND : ĠJS , ĠN ATIVE Ċ Ċ // ĠWITH _ REF LECT Ċ Ċ import Ġkotlin . reflect . K Mutable Property 1 Ċ import Ġkotlin . reflect . full .* Ċ import Ġkotlin . reflect . jvm . is Accessible Ċ Ċ class ĠA ( param : ĠString ) Ġ{ ĊĠĠĠ Ġprotected Ġvar Ġv : ĠString Ġ= Ġparam ĊĊĠĠĠ Ġfun Ġref () Ġ= ĠA :: class . member Properties . single () Ġas ĠK Mutable Property 1 < A , ĠString > Ċ } Ċ Ċ fun Ġbox (): ĠString Ġ{ ĊĠĠĠ Ġval Ġa Ġ= ĠA (": (" ) ĊĠĠĠ Ġval Ġf Ġ= Ġa . ref () ĊĊĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠ Ġf . get ( a ) ĊĠĠĠĠĠĠĠ Ġreturn Ġ" Fail : Ġprotected Ġproperty Ġgetter Ġis Ġaccessible Ġby Ġdefault " ĊĠĠĠ Ġ} Ġcatch Ġ( e : ĠIllegal Callable AccessException ) Ġ{ Ġ} ĊĊĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠ Ġf . set ( a , Ġ": D ") ĊĠĠĠĠĠĠĠ Ġreturn Ġ" Fail : Ġprotected Ġproperty Ġsetter Ġis Ġaccessible Ġby Ġdefault " ĊĠĠĠ Ġ} Ġcatch Ġ( e : ĠIllegal Callable AccessException ) Ġ{ Ġ} ĊĊĠĠĠ Ġf . is Accessible Ġ= Ġtrue ĊĊĠĠĠ Ġf . set ( a , Ġ": )") ĊĊĠĠĠ Ġreturn Ġif Ġ( f . get ( a ) Ġ!= Ġ": )") Ġ" Fail : Ġ${ f . get ( a )}" Ġelse Ġ" OK " Ċ } Ċ