package Ġcom . ree va js . ree va . runtime . collections Ċ Ċ import Ġcom . ree va js . ree va . runtime . JS Value Ċ import Ġcom . ree va js . ree va . runtime . primitives . JS Undefined Ċ Ċ class ĠJS Arguments ( ĊĠĠĠ Ġarguments : ĠList < JS Value >, ĊĠĠĠ Ġval Ġthis Value : ĠJS Value Ġ= ĠJS Undefined , ĊĠĠĠ Ġval Ġnew Target : ĠJS Value Ġ= ĠJS Undefined , Ċ ) Ġ: ĠList < JS Value > Ġby Ġarguments Ġ{ ĊĠĠĠ Ġfun Ġargument ( index : ĠInt ) Ġ= Ġif Ġ( index Ġ> Ġlast Index ) ĠJS Undefined Ġelse Ġthis [ index ] ĊĊĠĠĠ Ġfun Ġtake Args ( range : ĠInt Range ) Ġ= Ġrange . map (:: argument ) ĊĊĠĠĠ Ġfun Ġwith This Value ( new This Value : ĠJS Value ) Ġ= ĠJS Arguments ( this , Ġnew This Value , Ġnew Target ) ĊĠĠĠ Ġfun Ġwith New Target ( new New Target : ĠJS Value ) Ġ= ĠJS Arguments ( this , Ġthis Value , Ġnew New Target ) ĊĊĠĠĠ Ġoperator Ġfun Ġcomponent 1 () Ġ= Ġthis . toList () ĊĠĠĠ Ġoperator Ġfun Ġcomponent 2 () Ġ= Ġthis Value ĊĠĠĠ Ġoperator Ġfun Ġcomponent 3 () Ġ= Ġnew Target Ċ } Ċ