// ĠIG NORE _ BACKEND _ FI R : ĠJVM _ IR Ċ // ĠIG NORE _ BACKEND : ĠJS _ IR Ċ // ĠTODO : Ġmut ed Ġautomatically , Ġinvestigate Ġshould Ġit Ġbe Ġran Ġfor ĠJS Ġor Ġnot Ċ // ĠIG NORE _ BACKEND : ĠJS Ċ Ċ // ĠWITH _ RUNTIME Ċ Ċ fun Ġcheck ( x : ĠLong , Ġleft : ĠLong , Ġright : ĠLong ): ĠBoolean Ġ{ ĊĠĠĠ Ġval Ġresult Ġ= Ġx Ġin Ġleft .. right ĊĠĠĠ Ġval Ġmanual Ġ= Ġx Ġ>= Ġleft Ġ&& Ġx Ġ<= Ġright ĊĠĠĠ Ġval Ġrange Ġ= Ġleft .. right ĊĠĠĠ Ġassert ( result Ġ== Ġmanual ) Ġ{ Ġ" Failed : Ġoptimized Ġ=== Ġmanual Ġfor Ġ$ range " Ġ} ĊĠĠĠ Ġassert ( result Ġ== Ġcheck Un optimized ( x , Ġrange )) Ġ{ Ġ" Failed : Ġoptimized Ġ=== Ġun optimized Ġfor Ġ$ range " Ġ} ĊĠĠĠ Ġreturn Ġresult Ċ } Ċ Ċ fun Ġcheck Un optimized ( x : ĠLong , Ġrange : ĠClosed Range < Long >): ĠBoolean Ġ{ ĊĠĠĠ Ġreturn Ġx Ġin Ġrange Ċ } Ċ Ċ fun Ġbox (): ĠString Ġ{ ĊĠĠĠ Ġassert ( check ( 1 L , Ġ 0 L , Ġ 2 L )) ĊĠĠĠ Ġassert (! check ( 1 L , Ġ- 1 L , Ġ 0 L )) ĊĠĠĠ Ġassert (! check ( 2 3 9 L , Ġ 2 3 9 L , Ġ 2 3 8 L )) ĊĠĠĠ Ġassert ( check ( 2 3 9 L , Ġ 2 3 8 L , Ġ 2 3 9 L )) ĊĊĠĠĠ Ġassert ( check ( Long . MIN _ VALUE , ĠLong . MIN _ VALUE , ĠLong . MIN _ VALUE )) ĊĠĠĠ Ġassert ( check ( Long . MAX _ VALUE , ĠLong . MIN _ VALUE , ĠLong . MAX _ VALUE )) ĊĊĠĠĠ Ġvar Ġvalue Ġ= Ġ 0 L ĊĠĠĠ Ġassert ( ++ value Ġin Ġ 1 L .. 1 L ) ĊĠĠĠ Ġassert ( ++ value Ġ! in Ġ 1 L .. 1 L ) ĊĠĠĠ Ġreturn Ġ" OK " Ċ } Ċ