package Ġme . mat t co . ree va . runtime . wrappers Ċ Ċ import Ġme . mat t co . ree va . core . Realm Ċ import Ġme . mat t co . ree va . runtime . JS Value Ċ import Ġme . mat t co . ree va . runtime . Operations Ċ import Ġme . mat t co . ree va . runtime . Slot Name Ċ import Ġme . mat t co . ree va . runtime . objects . Descriptor Ċ import Ġme . mat t co . ree va . runtime . objects . JS Object Ċ import Ġme . mat t co . ree va . runtime . primitives . JS BigInt Ċ import Ġme . mat t co . ree va . runtime . primitives . JS Undefined Ċ import Ġme . mat t co . ree va . utils . Errors Ċ import Ġme . mat t co . ree va . utils . JS Arguments Ċ import Ġme . mat t co . ree va . utils . argument Ċ import Ġme . mat t co . ree va . utils . to Value Ċ Ċ class ĠJ SB ig Int Proto Ġprivate Ġconstructor ( realm : ĠRealm ) Ġ: ĠJS Object ( realm , Ġrealm . object Proto ) Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġinit () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . init () ĊĊĠĠĠĠĠĠĠ Ġdefine OwnProperty (" constructor ", Ġrealm . big Int Ctor , ĠDescriptor . CONFIG UR ABLE Ġor ĠDescriptor . WR IT ABLE ) ĊĠĠĠĠĠĠĠ Ġdefine OwnProperty ( Realm .` @@ toString Tag `, Ġ" BigInt ". to Value (), ĠDescriptor . CONFIG UR ABLE Ġor ĠDescriptor . HAS _ BASIC ) ĊĠĠĠĠĠĠĠ Ġdefine Native Function (" toString ", Ġ 0 , Ġ:: toString ) ĊĠĠĠĠĠĠĠ Ġdefine Native Function (" valueOf ", Ġ 0 , Ġ:: valueOf ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠtoString ( this Value : ĠJS Value , Ġarguments : ĠJS Arguments ): ĠJS Value Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġbig Int Ġ= Ġthis BigInt Value ( this Value , Ġ" toString ") ĊĠĠĠĠĠĠĠ Ġval Ġradix Arg Ġ= Ġarguments . argument ( 0 ) ĊĠĠĠĠĠĠĠ Ġval Ġradix Ġ= Ġif Ġ( radix Arg Ġ!= ĠJS Undefined ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠOperations . to Integer Or Infinity ( arguments . argument ( 0 )). as Int ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ 1 0 ĊĠĠĠĠĠĠĠ Ġif Ġ( radix Ġ< Ġ 2 Ġ|| Ġradix Ġ> Ġ 3 6 ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠErrors . Number . Invalid Rad ix ( radix ). throw Range Error () ĊĠĠĠĠĠĠĠ Ġreturn Ġbig Int . number . toString ( radix ). to Value () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġvalue Of ( this Value : ĠJS Value , Ġarguments : ĠJS Arguments ): ĠJS Value Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġthis BigInt Value ( this Value , Ġ" valueOf ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġfun Ġthis BigInt Value ( this Value : ĠJS Value , ĠmethodName : ĠString ): ĠJ SB ig Int Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( this Value Ġis ĠJ SB ig Int ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġthis Value ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( this Value Ġ! is ĠJS Object ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠErrors . In compatible MethodCall (" BigInt . prototype .$ methodName "). throw TypeError () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġthis Value . get Slot As ( Slot Name . BigInt Data ) Ġ?: ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠErrors . In compatible MethodCall (" BigInt . prototype .$ methodName "). throw TypeError () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġcreate ( realm : ĠRealm ) Ġ= ĠJ SB ig Int Proto ( realm ). initialize () ĊĠĠĠ Ġ} Ċ } Ċ