inline.go 176 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050305130523053305430553056305730583059306030613062306330643065306630673068306930703071307230733074307530763077307830793080308130823083308430853086308730883089309030913092309330943095309630973098309931003101310231033104310531063107310831093110311131123113311431153116311731183119312031213122312331243125312631273128312931303131313231333134313531363137313831393140314131423143314431453146314731483149315031513152315331543155315631573158315931603161316231633164316531663167316831693170317131723173317431753176317731783179318031813182318331843185318631873188318931903191319231933194319531963197319831993200320132023203320432053206320732083209321032113212321332143215321632173218321932203221322232233224322532263227322832293230323132323233323432353236323732383239324032413242324332443245324632473248324932503251325232533254325532563257325832593260326132623263326432653266326732683269327032713272327332743275327632773278327932803281328232833284328532863287328832893290329132923293329432953296329732983299330033013302330333043305330633073308330933103311331233133314331533163317331833193320332133223323332433253326332733283329333033313332333333343335333633373338333933403341334233433344334533463347334833493350335133523353335433553356335733583359336033613362336333643365336633673368336933703371337233733374337533763377337833793380338133823383338433853386338733883389339033913392339333943395339633973398339934003401340234033404340534063407340834093410341134123413341434153416341734183419342034213422342334243425342634273428342934303431343234333434343534363437343834393440344134423443344434453446344734483449345034513452345334543455345634573458345934603461346234633464346534663467346834693470347134723473347434753476347734783479348034813482348334843485348634873488348934903491349234933494349534963497349834993500350135023503350435053506350735083509351035113512351335143515351635173518351935203521352235233524352535263527352835293530353135323533353435353536353735383539354035413542354335443545354635473548354935503551355235533554355535563557355835593560356135623563356435653566356735683569357035713572357335743575357635773578357935803581358235833584358535863587358835893590359135923593359435953596359735983599360036013602360336043605360636073608360936103611361236133614361536163617361836193620362136223623362436253626362736283629363036313632363336343635363636373638363936403641364236433644364536463647364836493650365136523653365436553656365736583659366036613662366336643665366636673668366936703671367236733674367536763677367836793680368136823683368436853686368736883689369036913692369336943695369636973698369937003701370237033704370537063707370837093710371137123713371437153716371737183719372037213722372337243725372637273728372937303731373237333734373537363737373837393740374137423743374437453746374737483749375037513752375337543755375637573758375937603761376237633764376537663767376837693770377137723773377437753776377737783779378037813782378337843785378637873788378937903791379237933794379537963797379837993800380138023803380438053806380738083809381038113812381338143815381638173818381938203821382238233824382538263827382838293830383138323833383438353836383738383839384038413842384338443845384638473848384938503851385238533854385538563857385838593860386138623863386438653866386738683869387038713872387338743875387638773878387938803881388238833884388538863887388838893890389138923893389438953896389738983899390039013902390339043905390639073908390939103911391239133914391539163917391839193920392139223923392439253926392739283929393039313932393339343935393639373938393939403941394239433944394539463947394839493950395139523953395439553956395739583959396039613962396339643965396639673968396939703971397239733974397539763977397839793980398139823983398439853986398739883989399039913992399339943995399639973998399940004001400240034004400540064007400840094010401140124013401440154016401740184019402040214022402340244025402640274028402940304031403240334034403540364037403840394040404140424043404440454046404740484049405040514052405340544055405640574058405940604061406240634064406540664067406840694070407140724073407440754076407740784079408040814082408340844085408640874088408940904091409240934094409540964097409840994100410141024103410441054106410741084109411041114112411341144115411641174118411941204121412241234124412541264127412841294130413141324133413441354136413741384139414041414142414341444145414641474148414941504151415241534154415541564157415841594160416141624163416441654166416741684169417041714172417341744175417641774178417941804181418241834184418541864187418841894190419141924193419441954196419741984199420042014202420342044205420642074208420942104211421242134214421542164217421842194220422142224223422442254226422742284229423042314232423342344235423642374238423942404241424242434244424542464247424842494250425142524253425442554256425742584259426042614262426342644265426642674268426942704271427242734274427542764277427842794280428142824283428442854286428742884289429042914292429342944295429642974298429943004301430243034304430543064307430843094310431143124313431443154316431743184319432043214322432343244325432643274328432943304331433243334334433543364337433843394340434143424343434443454346434743484349435043514352435343544355435643574358435943604361436243634364436543664367436843694370437143724373437443754376437743784379438043814382438343844385438643874388438943904391439243934394439543964397439843994400440144024403440444054406440744084409441044114412441344144415441644174418441944204421442244234424442544264427442844294430443144324433443444354436443744384439444044414442444344444445444644474448444944504451445244534454445544564457445844594460446144624463446444654466446744684469447044714472447344744475447644774478447944804481448244834484448544864487448844894490449144924493449444954496449744984499450045014502450345044505450645074508450945104511451245134514451545164517451845194520452145224523452445254526452745284529453045314532453345344535453645374538453945404541454245434544454545464547454845494550455145524553455445554556455745584559456045614562456345644565456645674568456945704571457245734574457545764577457845794580458145824583458445854586458745884589459045914592459345944595459645974598459946004601460246034604460546064607460846094610461146124613461446154616461746184619462046214622462346244625462646274628462946304631463246334634463546364637463846394640464146424643464446454646464746484649465046514652465346544655465646574658465946604661466246634664466546664667466846694670467146724673467446754676467746784679468046814682468346844685468646874688468946904691469246934694469546964697469846994700470147024703470447054706470747084709471047114712471347144715471647174718471947204721472247234724472547264727472847294730473147324733473447354736473747384739474047414742474347444745474647474748474947504751475247534754475547564757475847594760476147624763476447654766476747684769477047714772477347744775477647774778477947804781478247834784478547864787478847894790479147924793479447954796479747984799480048014802480348044805480648074808480948104811481248134814481548164817481848194820482148224823482448254826482748284829483048314832483348344835483648374838483948404841484248434844484548464847484848494850485148524853485448554856485748584859486048614862486348644865486648674868486948704871487248734874487548764877487848794880488148824883488448854886488748884889489048914892489348944895489648974898489949004901490249034904490549064907490849094910491149124913491449154916491749184919492049214922492349244925492649274928492949304931493249334934493549364937493849394940494149424943494449454946494749484949495049514952495349544955495649574958495949604961496249634964496549664967496849694970497149724973497449754976497749784979498049814982498349844985498649874988498949904991499249934994499549964997499849995000500150025003500450055006500750085009501050115012501350145015501650175018501950205021502250235024502550265027502850295030503150325033503450355036503750385039504050415042504350445045504650475048504950505051505250535054505550565057505850595060506150625063506450655066506750685069507050715072507350745075507650775078507950805081508250835084508550865087508850895090509150925093509450955096509750985099510051015102510351045105510651075108510951105111511251135114511551165117511851195120512151225123512451255126512751285129513051315132513351345135513651375138513951405141514251435144514551465147514851495150515151525153515451555156515751585159516051615162516351645165516651675168516951705171517251735174517551765177517851795180518151825183518451855186518751885189519051915192519351945195519651975198519952005201520252035204520552065207520852095210521152125213521452155216521752185219522052215222522352245225522652275228522952305231523252335234523552365237523852395240524152425243524452455246524752485249525052515252525352545255525652575258525952605261526252635264526552665267526852695270527152725273527452755276527752785279528052815282528352845285528652875288528952905291529252935294529552965297529852995300530153025303530453055306530753085309531053115312531353145315531653175318531953205321532253235324532553265327532853295330533153325333533453355336533753385339534053415342534353445345534653475348534953505351535253535354535553565357535853595360536153625363536453655366536753685369537053715372537353745375537653775378537953805381538253835384538553865387538853895390539153925393539453955396539753985399540054015402540354045405540654075408540954105411541254135414541554165417541854195420542154225423542454255426542754285429543054315432543354345435543654375438543954405441544254435444544554465447544854495450545154525453545454555456545754585459546054615462546354645465546654675468546954705471547254735474547554765477547854795480548154825483548454855486548754885489549054915492549354945495549654975498549955005501550255035504550555065507550855095510551155125513551455155516551755185519552055215522552355245525552655275528552955305531553255335534553555365537553855395540554155425543554455455546554755485549555055515552555355545555555655575558555955605561556255635564556555665567556855695570557155725573557455755576557755785579558055815582558355845585558655875588558955905591559255935594559555965597559855995600560156025603560456055606560756085609561056115612561356145615561656175618561956205621562256235624562556265627562856295630563156325633563456355636563756385639564056415642564356445645564656475648564956505651565256535654565556565657565856595660566156625663566456655666566756685669567056715672567356745675567656775678567956805681568256835684568556865687568856895690569156925693569456955696569756985699570057015702570357045705570657075708570957105711571257135714571557165717571857195720572157225723572457255726572757285729573057315732573357345735573657375738573957405741574257435744574557465747574857495750575157525753575457555756575757585759576057615762576357645765576657675768576957705771577257735774577557765777577857795780578157825783578457855786578757885789579057915792579357945795579657975798579958005801580258035804580558065807580858095810581158125813581458155816581758185819582058215822582358245825582658275828582958305831583258335834583558365837583858395840584158425843584458455846584758485849585058515852585358545855585658575858585958605861586258635864586558665867586858695870587158725873587458755876587758785879588058815882588358845885588658875888588958905891589258935894589558965897589858995900590159025903590459055906590759085909591059115912591359145915591659175918591959205921592259235924592559265927592859295930593159325933593459355936593759385939594059415942594359445945594659475948594959505951595259535954595559565957595859595960596159625963596459655966596759685969597059715972597359745975597659775978597959805981598259835984598559865987598859895990599159925993599459955996599759985999600060016002600360046005600660076008600960106011601260136014601560166017601860196020602160226023602460256026602760286029603060316032603360346035603660376038603960406041604260436044604560466047604860496050605160526053605460556056605760586059606060616062606360646065606660676068606960706071607260736074607560766077607860796080608160826083608460856086608760886089609060916092609360946095609660976098609961006101610261036104610561066107610861096110611161126113611461156116611761186119612061216122612361246125612661276128612961306131613261336134613561366137613861396140614161426143614461456146614761486149615061516152615361546155615661576158615961606161616261636164616561666167616861696170617161726173617461756176617761786179618061816182618361846185618661876188618961906191619261936194619561966197619861996200620162026203620462056206620762086209621062116212621362146215621662176218621962206221622262236224622562266227622862296230623162326233623462356236623762386239624062416242624362446245624662476248624962506251625262536254625562566257625862596260626162626263626462656266626762686269627062716272627362746275627662776278627962806281628262836284628562866287628862896290629162926293629462956296629762986299630063016302630363046305630663076308630963106311631263136314631563166317631863196320632163226323632463256326632763286329633063316332633363346335633663376338633963406341634263436344634563466347634863496350635163526353635463556356635763586359636063616362636363646365636663676368636963706371637263736374637563766377637863796380638163826383638463856386638763886389639063916392639363946395639663976398639964006401640264036404640564066407640864096410641164126413641464156416641764186419642064216422642364246425642664276428642964306431643264336434643564366437643864396440644164426443644464456446644764486449645064516452645364546455645664576458645964606461646264636464646564666467646864696470647164726473647464756476647764786479648064816482648364846485648664876488648964906491649264936494649564966497649864996500650165026503650465056506650765086509651065116512651365146515651665176518651965206521652265236524652565266527652865296530653165326533653465356536653765386539654065416542654365446545654665476548654965506551655265536554655565566557655865596560656165626563656465656566656765686569657065716572657365746575657665776578657965806581658265836584658565866587658865896590659165926593659465956596659765986599660066016602660366046605660666076608660966106611661266136614661566166617661866196620662166226623662466256626662766286629663066316632663366346635663666376638663966406641664266436644664566466647664866496650665166526653665466556656665766586659666066616662666366646665666666676668666966706671667266736674667566766677667866796680668166826683668466856686668766886689669066916692669366946695669666976698669967006701670267036704670567066707670867096710671167126713671467156716671767186719672067216722672367246725672667276728672967306731673267336734673567366737673867396740674167426743674467456746674767486749675067516752675367546755675667576758675967606761676267636764676567666767676867696770677167726773677467756776677767786779678067816782678367846785678667876788678967906791679267936794679567966797679867996800680168026803680468056806680768086809681068116812681368146815681668176818681968206821682268236824682568266827682868296830683168326833683468356836683768386839684068416842684368446845684668476848684968506851685268536854685568566857685868596860686168626863686468656866686768686869687068716872687368746875687668776878687968806881688268836884688568866887688868896890689168926893689468956896689768986899690069016902690369046905690669076908690969106911691269136914691569166917691869196920692169226923692469256926692769286929693069316932693369346935693669376938693969406941694269436944694569466947694869496950695169526953695469556956695769586959696069616962696369646965696669676968696969706971697269736974697569766977697869796980698169826983698469856986698769886989699069916992699369946995699669976998699970007001700270037004700570067007700870097010701170127013701470157016701770187019702070217022702370247025702670277028702970307031703270337034703570367037703870397040704170427043704470457046704770487049705070517052705370547055705670577058705970607061706270637064706570667067706870697070707170727073707470757076707770787079708070817082708370847085708670877088708970907091709270937094709570967097709870997100710171027103710471057106710771087109711071117112711371147115711671177118711971207121712271237124712571267127712871297130713171327133713471357136713771387139714071417142714371447145714671477148714971507151715271537154715571567157715871597160716171627163716471657166716771687169717071717172717371747175717671777178717971807181718271837184718571867187718871897190719171927193719471957196719771987199720072017202720372047205720672077208720972107211721272137214721572167217721872197220722172227223722472257226722772287229723072317232723372347235723672377238723972407241724272437244724572467247724872497250725172527253725472557256725772587259726072617262726372647265726672677268726972707271727272737274727572767277727872797280728172827283728472857286728772887289729072917292729372947295729672977298729973007301730273037304730573067307730873097310731173127313731473157316731773187319732073217322732373247325732673277328732973307331733273337334733573367337733873397340734173427343734473457346734773487349735073517352735373547355735673577358735973607361736273637364736573667367736873697370737173727373737473757376737773787379738073817382738373847385738673877388738973907391739273937394739573967397739873997400740174027403740474057406740774087409741074117412741374147415741674177418741974207421742274237424742574267427742874297430743174327433743474357436743774387439744074417442744374447445744674477448744974507451745274537454745574567457745874597460746174627463746474657466746774687469747074717472747374747475747674777478747974807481748274837484748574867487748874897490749174927493749474957496749774987499750075017502750375047505750675077508750975107511751275137514751575167517751875197520752175227523752475257526752775287529753075317532753375347535753675377538753975407541754275437544754575467547754875497550755175527553755475557556755775587559756075617562756375647565756675677568756975707571757275737574757575767577757875797580758175827583758475857586758775887589759075917592759375947595759675977598759976007601760276037604760576067607760876097610761176127613761476157616761776187619762076217622762376247625762676277628762976307631763276337634763576367637763876397640764176427643764476457646764776487649765076517652765376547655765676577658765976607661766276637664766576667667766876697670767176727673767476757676767776787679768076817682768376847685768676877688768976907691769276937694769576967697769876997700770177027703770477057706770777087709771077117712771377147715771677177718771977207721772277237724772577267727772877297730773177327733773477357736773777387739774077417742774377447745774677477748774977507751775277537754775577567757775877597760776177627763776477657766776777687769777077717772777377747775777677777778777977807781778277837784778577867787778877897790779177927793779477957796779777987799780078017802780378047805780678077808780978107811781278137814781578167817781878197820782178227823782478257826782778287829783078317832783378347835783678377838783978407841784278437844784578467847784878497850785178527853785478557856785778587859786078617862786378647865786678677868786978707871787278737874787578767877787878797880788178827883788478857886788778887889789078917892789378947895789678977898789979007901790279037904790579067907790879097910791179127913791479157916791779187919792079217922792379247925792679277928792979307931793279337934793579367937793879397940794179427943794479457946794779487949795079517952795379547955795679577958795979607961796279637964796579667967796879697970797179727973797479757976797779787979798079817982798379847985798679877988798979907991799279937994799579967997799879998000800180028003800480058006800780088009801080118012801380148015801680178018801980208021802280238024802580268027802880298030803180328033803480358036803780388039804080418042804380448045804680478048804980508051805280538054805580568057805880598060806180628063806480658066806780688069807080718072807380748075807680778078807980808081808280838084808580868087808880898090809180928093809480958096809780988099810081018102810381048105810681078108810981108111811281138114811581168117811881198120812181228123812481258126812781288129813081318132813381348135813681378138813981408141814281438144814581468147814881498150815181528153815481558156815781588159816081618162816381648165816681678168816981708171817281738174817581768177817881798180818181828183818481858186818781888189819081918192819381948195819681978198819982008201820282038204820582068207820882098210821182128213821482158216821782188219822082218222822382248225822682278228822982308231823282338234823582368237823882398240824182428243824482458246824782488249825082518252825382548255825682578258825982608261826282638264826582668267826882698270827182728273827482758276827782788279828082818282828382848285828682878288828982908291829282938294829582968297829882998300830183028303830483058306830783088309831083118312831383148315831683178318831983208321832283238324832583268327832883298330833183328333833483358336833783388339834083418342834383448345834683478348834983508351835283538354835583568357835883598360836183628363836483658366836783688369837083718372837383748375837683778378837983808381838283838384838583868387838883898390839183928393839483958396839783988399840084018402840384048405840684078408840984108411841284138414841584168417841884198420842184228423842484258426842784288429843084318432843384348435843684378438843984408441844284438444844584468447844884498450845184528453845484558456845784588459846084618462846384648465846684678468846984708471847284738474847584768477847884798480848184828483848484858486848784888489849084918492849384948495849684978498849985008501850285038504850585068507850885098510851185128513851485158516851785188519852085218522852385248525852685278528852985308531853285338534853585368537853885398540854185428543854485458546854785488549855085518552855385548555855685578558855985608561856285638564856585668567856885698570857185728573857485758576857785788579858085818582858385848585858685878588858985908591859285938594859585968597859885998600860186028603860486058606860786088609861086118612861386148615861686178618861986208621862286238624862586268627862886298630863186328633863486358636863786388639864086418642864386448645864686478648864986508651865286538654865586568657865886598660
  1. // Code generated by tools/gen-jscore. DO NOT EDIT.
  2. package otto
  3. import (
  4. "math"
  5. )
  6. func (rt *runtime) newContext() {
  7. // Order here is import as definitions depend on each other.
  8. // Object prototype.
  9. rt.global.ObjectPrototype = &object{
  10. runtime: rt,
  11. class: classObjectName,
  12. objectClass: classObject,
  13. prototype: nil,
  14. extensible: true,
  15. value: prototypeValueObject,
  16. }
  17. // Function prototype.
  18. rt.global.FunctionPrototype = &object{
  19. runtime: rt,
  20. class: classFunctionName,
  21. objectClass: classObject,
  22. prototype: rt.global.ObjectPrototype,
  23. extensible: true,
  24. value: prototypeValueFunction,
  25. }
  26. // Object prototype property definition.
  27. rt.global.ObjectPrototype.property = map[string]property{
  28. "hasOwnProperty": {
  29. mode: 0o101,
  30. value: Value{
  31. kind: valueObject,
  32. value: &object{
  33. runtime: rt,
  34. class: classFunctionName,
  35. objectClass: classObject,
  36. prototype: rt.global.FunctionPrototype,
  37. extensible: true,
  38. property: map[string]property{
  39. propertyLength: {
  40. mode: 0,
  41. value: Value{
  42. kind: valueNumber,
  43. value: 1,
  44. },
  45. },
  46. propertyName: {
  47. mode: 0,
  48. value: Value{
  49. kind: valueString,
  50. value: "hasOwnProperty",
  51. },
  52. },
  53. },
  54. propertyOrder: []string{
  55. propertyLength,
  56. propertyName,
  57. },
  58. value: nativeFunctionObject{
  59. name: "hasOwnProperty",
  60. call: builtinObjectHasOwnProperty,
  61. },
  62. },
  63. },
  64. },
  65. "isPrototypeOf": {
  66. mode: 0o101,
  67. value: Value{
  68. kind: valueObject,
  69. value: &object{
  70. runtime: rt,
  71. class: classFunctionName,
  72. objectClass: classObject,
  73. prototype: rt.global.FunctionPrototype,
  74. extensible: true,
  75. property: map[string]property{
  76. propertyLength: {
  77. mode: 0,
  78. value: Value{
  79. kind: valueNumber,
  80. value: 1,
  81. },
  82. },
  83. propertyName: {
  84. mode: 0,
  85. value: Value{
  86. kind: valueString,
  87. value: "isPrototypeOf",
  88. },
  89. },
  90. },
  91. propertyOrder: []string{
  92. propertyLength,
  93. propertyName,
  94. },
  95. value: nativeFunctionObject{
  96. name: "isPrototypeOf",
  97. call: builtinObjectIsPrototypeOf,
  98. },
  99. },
  100. },
  101. },
  102. "propertyIsEnumerable": {
  103. mode: 0o101,
  104. value: Value{
  105. kind: valueObject,
  106. value: &object{
  107. runtime: rt,
  108. class: classFunctionName,
  109. objectClass: classObject,
  110. prototype: rt.global.FunctionPrototype,
  111. extensible: true,
  112. property: map[string]property{
  113. propertyLength: {
  114. mode: 0,
  115. value: Value{
  116. kind: valueNumber,
  117. value: 1,
  118. },
  119. },
  120. propertyName: {
  121. mode: 0,
  122. value: Value{
  123. kind: valueString,
  124. value: "propertyIsEnumerable",
  125. },
  126. },
  127. },
  128. propertyOrder: []string{
  129. propertyLength,
  130. propertyName,
  131. },
  132. value: nativeFunctionObject{
  133. name: "propertyIsEnumerable",
  134. call: builtinObjectPropertyIsEnumerable,
  135. },
  136. },
  137. },
  138. },
  139. methodToString: {
  140. mode: 0o101,
  141. value: Value{
  142. kind: valueObject,
  143. value: &object{
  144. runtime: rt,
  145. class: classFunctionName,
  146. objectClass: classObject,
  147. prototype: rt.global.FunctionPrototype,
  148. extensible: true,
  149. property: map[string]property{
  150. propertyLength: {
  151. mode: 0,
  152. value: Value{
  153. kind: valueNumber,
  154. value: 0,
  155. },
  156. },
  157. propertyName: {
  158. mode: 0,
  159. value: Value{
  160. kind: valueString,
  161. value: "toString",
  162. },
  163. },
  164. },
  165. propertyOrder: []string{
  166. propertyLength,
  167. propertyName,
  168. },
  169. value: nativeFunctionObject{
  170. name: methodToString,
  171. call: builtinObjectToString,
  172. },
  173. },
  174. },
  175. },
  176. "valueOf": {
  177. mode: 0o101,
  178. value: Value{
  179. kind: valueObject,
  180. value: &object{
  181. runtime: rt,
  182. class: classFunctionName,
  183. objectClass: classObject,
  184. prototype: rt.global.FunctionPrototype,
  185. extensible: true,
  186. property: map[string]property{
  187. propertyLength: {
  188. mode: 0,
  189. value: Value{
  190. kind: valueNumber,
  191. value: 0,
  192. },
  193. },
  194. propertyName: {
  195. mode: 0,
  196. value: Value{
  197. kind: valueString,
  198. value: "valueOf",
  199. },
  200. },
  201. },
  202. propertyOrder: []string{
  203. propertyLength,
  204. propertyName,
  205. },
  206. value: nativeFunctionObject{
  207. name: "valueOf",
  208. call: builtinObjectValueOf,
  209. },
  210. },
  211. },
  212. },
  213. "toLocaleString": {
  214. mode: 0o101,
  215. value: Value{
  216. kind: valueObject,
  217. value: &object{
  218. runtime: rt,
  219. class: classFunctionName,
  220. objectClass: classObject,
  221. prototype: rt.global.FunctionPrototype,
  222. extensible: true,
  223. property: map[string]property{
  224. propertyLength: {
  225. mode: 0,
  226. value: Value{
  227. kind: valueNumber,
  228. value: 0,
  229. },
  230. },
  231. propertyName: {
  232. mode: 0,
  233. value: Value{
  234. kind: valueString,
  235. value: "toLocaleString",
  236. },
  237. },
  238. },
  239. propertyOrder: []string{
  240. propertyLength,
  241. propertyName,
  242. },
  243. value: nativeFunctionObject{
  244. name: "toLocaleString",
  245. call: builtinObjectToLocaleString,
  246. },
  247. },
  248. },
  249. },
  250. }
  251. rt.global.ObjectPrototype.propertyOrder = []string{
  252. propertyConstructor,
  253. "hasOwnProperty",
  254. "isPrototypeOf",
  255. "propertyIsEnumerable",
  256. methodToString,
  257. "valueOf",
  258. "toLocaleString",
  259. }
  260. // Function prototype property definition.
  261. rt.global.FunctionPrototype.property = map[string]property{
  262. methodToString: {
  263. mode: 0o101,
  264. value: Value{
  265. kind: valueObject,
  266. value: &object{
  267. runtime: rt,
  268. class: classFunctionName,
  269. objectClass: classObject,
  270. prototype: rt.global.FunctionPrototype,
  271. extensible: true,
  272. property: map[string]property{
  273. propertyLength: {
  274. mode: 0,
  275. value: Value{
  276. kind: valueNumber,
  277. value: 0,
  278. },
  279. },
  280. propertyName: {
  281. mode: 0,
  282. value: Value{
  283. kind: valueString,
  284. value: "toString",
  285. },
  286. },
  287. },
  288. propertyOrder: []string{
  289. propertyLength,
  290. propertyName,
  291. },
  292. value: nativeFunctionObject{
  293. name: methodToString,
  294. call: builtinFunctionToString,
  295. },
  296. },
  297. },
  298. },
  299. "apply": {
  300. mode: 0o101,
  301. value: Value{
  302. kind: valueObject,
  303. value: &object{
  304. runtime: rt,
  305. class: classFunctionName,
  306. objectClass: classObject,
  307. prototype: rt.global.FunctionPrototype,
  308. extensible: true,
  309. property: map[string]property{
  310. propertyLength: {
  311. mode: 0,
  312. value: Value{
  313. kind: valueNumber,
  314. value: 2,
  315. },
  316. },
  317. propertyName: {
  318. mode: 0,
  319. value: Value{
  320. kind: valueString,
  321. value: "apply",
  322. },
  323. },
  324. },
  325. propertyOrder: []string{
  326. propertyLength,
  327. propertyName,
  328. },
  329. value: nativeFunctionObject{
  330. name: "apply",
  331. call: builtinFunctionApply,
  332. },
  333. },
  334. },
  335. },
  336. "call": {
  337. mode: 0o101,
  338. value: Value{
  339. kind: valueObject,
  340. value: &object{
  341. runtime: rt,
  342. class: classFunctionName,
  343. objectClass: classObject,
  344. prototype: rt.global.FunctionPrototype,
  345. extensible: true,
  346. property: map[string]property{
  347. propertyLength: {
  348. mode: 0,
  349. value: Value{
  350. kind: valueNumber,
  351. value: 1,
  352. },
  353. },
  354. propertyName: {
  355. mode: 0,
  356. value: Value{
  357. kind: valueString,
  358. value: "call",
  359. },
  360. },
  361. },
  362. propertyOrder: []string{
  363. propertyLength,
  364. propertyName,
  365. },
  366. value: nativeFunctionObject{
  367. name: "call",
  368. call: builtinFunctionCall,
  369. },
  370. },
  371. },
  372. },
  373. "bind": {
  374. mode: 0o101,
  375. value: Value{
  376. kind: valueObject,
  377. value: &object{
  378. runtime: rt,
  379. class: classFunctionName,
  380. objectClass: classObject,
  381. prototype: rt.global.FunctionPrototype,
  382. extensible: true,
  383. property: map[string]property{
  384. propertyLength: {
  385. mode: 0,
  386. value: Value{
  387. kind: valueNumber,
  388. value: 1,
  389. },
  390. },
  391. propertyName: {
  392. mode: 0,
  393. value: Value{
  394. kind: valueString,
  395. value: "bind",
  396. },
  397. },
  398. },
  399. propertyOrder: []string{
  400. propertyLength,
  401. propertyName,
  402. },
  403. value: nativeFunctionObject{
  404. name: "bind",
  405. call: builtinFunctionBind,
  406. },
  407. },
  408. },
  409. },
  410. propertyLength: {
  411. mode: 0,
  412. value: Value{
  413. kind: valueNumber,
  414. value: 0,
  415. },
  416. },
  417. }
  418. rt.global.FunctionPrototype.propertyOrder = []string{
  419. methodToString,
  420. "apply",
  421. "call",
  422. "bind",
  423. propertyConstructor,
  424. propertyLength,
  425. }
  426. // Object definition.
  427. rt.global.Object = &object{
  428. runtime: rt,
  429. class: classFunctionName,
  430. objectClass: classObject,
  431. prototype: rt.global.FunctionPrototype,
  432. extensible: true,
  433. value: nativeFunctionObject{
  434. name: classObjectName,
  435. call: builtinObject,
  436. construct: builtinNewObject,
  437. },
  438. property: map[string]property{
  439. propertyLength: {
  440. mode: 0,
  441. value: Value{
  442. kind: valueNumber,
  443. value: 1,
  444. },
  445. },
  446. propertyPrototype: {
  447. mode: 0,
  448. value: Value{
  449. kind: valueObject,
  450. value: rt.global.ObjectPrototype,
  451. },
  452. },
  453. "getPrototypeOf": {
  454. mode: 0o101,
  455. value: Value{
  456. kind: valueObject,
  457. value: &object{
  458. runtime: rt,
  459. class: classFunctionName,
  460. objectClass: classObject,
  461. prototype: rt.global.FunctionPrototype,
  462. extensible: true,
  463. property: map[string]property{
  464. propertyLength: {
  465. mode: 0,
  466. value: Value{
  467. kind: valueNumber,
  468. value: 1,
  469. },
  470. },
  471. propertyName: {
  472. mode: 0,
  473. value: Value{
  474. kind: valueString,
  475. value: "getPrototypeOf",
  476. },
  477. },
  478. },
  479. propertyOrder: []string{
  480. propertyLength,
  481. propertyName,
  482. },
  483. value: nativeFunctionObject{
  484. name: "getPrototypeOf",
  485. call: builtinObjectGetPrototypeOf,
  486. },
  487. },
  488. },
  489. },
  490. "getOwnPropertyDescriptor": {
  491. mode: 0o101,
  492. value: Value{
  493. kind: valueObject,
  494. value: &object{
  495. runtime: rt,
  496. class: classFunctionName,
  497. objectClass: classObject,
  498. prototype: rt.global.FunctionPrototype,
  499. extensible: true,
  500. property: map[string]property{
  501. propertyLength: {
  502. mode: 0,
  503. value: Value{
  504. kind: valueNumber,
  505. value: 2,
  506. },
  507. },
  508. propertyName: {
  509. mode: 0,
  510. value: Value{
  511. kind: valueString,
  512. value: "getOwnPropertyDescriptor",
  513. },
  514. },
  515. },
  516. propertyOrder: []string{
  517. propertyLength,
  518. propertyName,
  519. },
  520. value: nativeFunctionObject{
  521. name: "getOwnPropertyDescriptor",
  522. call: builtinObjectGetOwnPropertyDescriptor,
  523. },
  524. },
  525. },
  526. },
  527. "defineProperty": {
  528. mode: 0o101,
  529. value: Value{
  530. kind: valueObject,
  531. value: &object{
  532. runtime: rt,
  533. class: classFunctionName,
  534. objectClass: classObject,
  535. prototype: rt.global.FunctionPrototype,
  536. extensible: true,
  537. property: map[string]property{
  538. propertyLength: {
  539. mode: 0,
  540. value: Value{
  541. kind: valueNumber,
  542. value: 3,
  543. },
  544. },
  545. propertyName: {
  546. mode: 0,
  547. value: Value{
  548. kind: valueString,
  549. value: "defineProperty",
  550. },
  551. },
  552. },
  553. propertyOrder: []string{
  554. propertyLength,
  555. propertyName,
  556. },
  557. value: nativeFunctionObject{
  558. name: "defineProperty",
  559. call: builtinObjectDefineProperty,
  560. },
  561. },
  562. },
  563. },
  564. "defineProperties": {
  565. mode: 0o101,
  566. value: Value{
  567. kind: valueObject,
  568. value: &object{
  569. runtime: rt,
  570. class: classFunctionName,
  571. objectClass: classObject,
  572. prototype: rt.global.FunctionPrototype,
  573. extensible: true,
  574. property: map[string]property{
  575. propertyLength: {
  576. mode: 0,
  577. value: Value{
  578. kind: valueNumber,
  579. value: 2,
  580. },
  581. },
  582. propertyName: {
  583. mode: 0,
  584. value: Value{
  585. kind: valueString,
  586. value: "defineProperties",
  587. },
  588. },
  589. },
  590. propertyOrder: []string{
  591. propertyLength,
  592. propertyName,
  593. },
  594. value: nativeFunctionObject{
  595. name: "defineProperties",
  596. call: builtinObjectDefineProperties,
  597. },
  598. },
  599. },
  600. },
  601. "create": {
  602. mode: 0o101,
  603. value: Value{
  604. kind: valueObject,
  605. value: &object{
  606. runtime: rt,
  607. class: classFunctionName,
  608. objectClass: classObject,
  609. prototype: rt.global.FunctionPrototype,
  610. extensible: true,
  611. property: map[string]property{
  612. propertyLength: {
  613. mode: 0,
  614. value: Value{
  615. kind: valueNumber,
  616. value: 2,
  617. },
  618. },
  619. propertyName: {
  620. mode: 0,
  621. value: Value{
  622. kind: valueString,
  623. value: "create",
  624. },
  625. },
  626. },
  627. propertyOrder: []string{
  628. propertyLength,
  629. propertyName,
  630. },
  631. value: nativeFunctionObject{
  632. name: "create",
  633. call: builtinObjectCreate,
  634. },
  635. },
  636. },
  637. },
  638. "isExtensible": {
  639. mode: 0o101,
  640. value: Value{
  641. kind: valueObject,
  642. value: &object{
  643. runtime: rt,
  644. class: classFunctionName,
  645. objectClass: classObject,
  646. prototype: rt.global.FunctionPrototype,
  647. extensible: true,
  648. property: map[string]property{
  649. propertyLength: {
  650. mode: 0,
  651. value: Value{
  652. kind: valueNumber,
  653. value: 1,
  654. },
  655. },
  656. propertyName: {
  657. mode: 0,
  658. value: Value{
  659. kind: valueString,
  660. value: "isExtensible",
  661. },
  662. },
  663. },
  664. propertyOrder: []string{
  665. propertyLength,
  666. propertyName,
  667. },
  668. value: nativeFunctionObject{
  669. name: "isExtensible",
  670. call: builtinObjectIsExtensible,
  671. },
  672. },
  673. },
  674. },
  675. "preventExtensions": {
  676. mode: 0o101,
  677. value: Value{
  678. kind: valueObject,
  679. value: &object{
  680. runtime: rt,
  681. class: classFunctionName,
  682. objectClass: classObject,
  683. prototype: rt.global.FunctionPrototype,
  684. extensible: true,
  685. property: map[string]property{
  686. propertyLength: {
  687. mode: 0,
  688. value: Value{
  689. kind: valueNumber,
  690. value: 1,
  691. },
  692. },
  693. propertyName: {
  694. mode: 0,
  695. value: Value{
  696. kind: valueString,
  697. value: "preventExtensions",
  698. },
  699. },
  700. },
  701. propertyOrder: []string{
  702. propertyLength,
  703. propertyName,
  704. },
  705. value: nativeFunctionObject{
  706. name: "preventExtensions",
  707. call: builtinObjectPreventExtensions,
  708. },
  709. },
  710. },
  711. },
  712. "isSealed": {
  713. mode: 0o101,
  714. value: Value{
  715. kind: valueObject,
  716. value: &object{
  717. runtime: rt,
  718. class: classFunctionName,
  719. objectClass: classObject,
  720. prototype: rt.global.FunctionPrototype,
  721. extensible: true,
  722. property: map[string]property{
  723. propertyLength: {
  724. mode: 0,
  725. value: Value{
  726. kind: valueNumber,
  727. value: 1,
  728. },
  729. },
  730. propertyName: {
  731. mode: 0,
  732. value: Value{
  733. kind: valueString,
  734. value: "isSealed",
  735. },
  736. },
  737. },
  738. propertyOrder: []string{
  739. propertyLength,
  740. propertyName,
  741. },
  742. value: nativeFunctionObject{
  743. name: "isSealed",
  744. call: builtinObjectIsSealed,
  745. },
  746. },
  747. },
  748. },
  749. "seal": {
  750. mode: 0o101,
  751. value: Value{
  752. kind: valueObject,
  753. value: &object{
  754. runtime: rt,
  755. class: classFunctionName,
  756. objectClass: classObject,
  757. prototype: rt.global.FunctionPrototype,
  758. extensible: true,
  759. property: map[string]property{
  760. propertyLength: {
  761. mode: 0,
  762. value: Value{
  763. kind: valueNumber,
  764. value: 1,
  765. },
  766. },
  767. propertyName: {
  768. mode: 0,
  769. value: Value{
  770. kind: valueString,
  771. value: "seal",
  772. },
  773. },
  774. },
  775. propertyOrder: []string{
  776. propertyLength,
  777. propertyName,
  778. },
  779. value: nativeFunctionObject{
  780. name: "seal",
  781. call: builtinObjectSeal,
  782. },
  783. },
  784. },
  785. },
  786. "isFrozen": {
  787. mode: 0o101,
  788. value: Value{
  789. kind: valueObject,
  790. value: &object{
  791. runtime: rt,
  792. class: classFunctionName,
  793. objectClass: classObject,
  794. prototype: rt.global.FunctionPrototype,
  795. extensible: true,
  796. property: map[string]property{
  797. propertyLength: {
  798. mode: 0,
  799. value: Value{
  800. kind: valueNumber,
  801. value: 1,
  802. },
  803. },
  804. propertyName: {
  805. mode: 0,
  806. value: Value{
  807. kind: valueString,
  808. value: "isFrozen",
  809. },
  810. },
  811. },
  812. propertyOrder: []string{
  813. propertyLength,
  814. propertyName,
  815. },
  816. value: nativeFunctionObject{
  817. name: "isFrozen",
  818. call: builtinObjectIsFrozen,
  819. },
  820. },
  821. },
  822. },
  823. "freeze": {
  824. mode: 0o101,
  825. value: Value{
  826. kind: valueObject,
  827. value: &object{
  828. runtime: rt,
  829. class: classFunctionName,
  830. objectClass: classObject,
  831. prototype: rt.global.FunctionPrototype,
  832. extensible: true,
  833. property: map[string]property{
  834. propertyLength: {
  835. mode: 0,
  836. value: Value{
  837. kind: valueNumber,
  838. value: 1,
  839. },
  840. },
  841. propertyName: {
  842. mode: 0,
  843. value: Value{
  844. kind: valueString,
  845. value: "freeze",
  846. },
  847. },
  848. },
  849. propertyOrder: []string{
  850. propertyLength,
  851. propertyName,
  852. },
  853. value: nativeFunctionObject{
  854. name: "freeze",
  855. call: builtinObjectFreeze,
  856. },
  857. },
  858. },
  859. },
  860. "keys": {
  861. mode: 0o101,
  862. value: Value{
  863. kind: valueObject,
  864. value: &object{
  865. runtime: rt,
  866. class: classFunctionName,
  867. objectClass: classObject,
  868. prototype: rt.global.FunctionPrototype,
  869. extensible: true,
  870. property: map[string]property{
  871. propertyLength: {
  872. mode: 0,
  873. value: Value{
  874. kind: valueNumber,
  875. value: 1,
  876. },
  877. },
  878. propertyName: {
  879. mode: 0,
  880. value: Value{
  881. kind: valueString,
  882. value: "keys",
  883. },
  884. },
  885. },
  886. propertyOrder: []string{
  887. propertyLength,
  888. propertyName,
  889. },
  890. value: nativeFunctionObject{
  891. name: "keys",
  892. call: builtinObjectKeys,
  893. },
  894. },
  895. },
  896. },
  897. "getOwnPropertyNames": {
  898. mode: 0o101,
  899. value: Value{
  900. kind: valueObject,
  901. value: &object{
  902. runtime: rt,
  903. class: classFunctionName,
  904. objectClass: classObject,
  905. prototype: rt.global.FunctionPrototype,
  906. extensible: true,
  907. property: map[string]property{
  908. propertyLength: {
  909. mode: 0,
  910. value: Value{
  911. kind: valueNumber,
  912. value: 1,
  913. },
  914. },
  915. propertyName: {
  916. mode: 0,
  917. value: Value{
  918. kind: valueString,
  919. value: "getOwnPropertyNames",
  920. },
  921. },
  922. },
  923. propertyOrder: []string{
  924. propertyLength,
  925. propertyName,
  926. },
  927. value: nativeFunctionObject{
  928. name: "getOwnPropertyNames",
  929. call: builtinObjectGetOwnPropertyNames,
  930. },
  931. },
  932. },
  933. },
  934. },
  935. propertyOrder: []string{
  936. propertyLength,
  937. propertyPrototype,
  938. "getPrototypeOf",
  939. "getOwnPropertyDescriptor",
  940. "defineProperty",
  941. "defineProperties",
  942. "create",
  943. "isExtensible",
  944. "preventExtensions",
  945. "isSealed",
  946. "seal",
  947. "isFrozen",
  948. "freeze",
  949. "keys",
  950. "getOwnPropertyNames",
  951. },
  952. }
  953. // Object constructor definition.
  954. rt.global.ObjectPrototype.property[propertyConstructor] = property{
  955. mode: 0o101,
  956. value: Value{
  957. kind: valueObject,
  958. value: rt.global.Object,
  959. },
  960. }
  961. // Function definition.
  962. rt.global.Function = &object{
  963. runtime: rt,
  964. class: classFunctionName,
  965. objectClass: classObject,
  966. prototype: rt.global.FunctionPrototype,
  967. extensible: true,
  968. value: nativeFunctionObject{
  969. name: classFunctionName,
  970. call: builtinFunction,
  971. construct: builtinNewFunction,
  972. },
  973. property: map[string]property{
  974. propertyLength: {
  975. mode: 0,
  976. value: Value{
  977. kind: valueNumber,
  978. value: 1,
  979. },
  980. },
  981. propertyPrototype: {
  982. mode: 0,
  983. value: Value{
  984. kind: valueObject,
  985. value: rt.global.FunctionPrototype,
  986. },
  987. },
  988. },
  989. propertyOrder: []string{
  990. propertyLength,
  991. propertyPrototype,
  992. },
  993. }
  994. // Function constructor definition.
  995. rt.global.FunctionPrototype.property[propertyConstructor] = property{
  996. mode: 0o101,
  997. value: Value{
  998. kind: valueObject,
  999. value: rt.global.Function,
  1000. },
  1001. }
  1002. // Array prototype.
  1003. rt.global.ArrayPrototype = &object{
  1004. runtime: rt,
  1005. class: classArrayName,
  1006. objectClass: classArray,
  1007. prototype: rt.global.ObjectPrototype,
  1008. extensible: true,
  1009. value: nil,
  1010. property: map[string]property{
  1011. propertyLength: {
  1012. mode: 0o100,
  1013. value: Value{
  1014. kind: valueNumber,
  1015. value: uint32(0),
  1016. },
  1017. },
  1018. "concat": {
  1019. mode: 0o101,
  1020. value: Value{
  1021. kind: valueObject,
  1022. value: &object{
  1023. runtime: rt,
  1024. class: classFunctionName,
  1025. objectClass: classObject,
  1026. prototype: rt.global.FunctionPrototype,
  1027. extensible: true,
  1028. property: map[string]property{
  1029. propertyLength: {
  1030. mode: 0,
  1031. value: Value{
  1032. kind: valueNumber,
  1033. value: 1,
  1034. },
  1035. },
  1036. propertyName: {
  1037. mode: 0,
  1038. value: Value{
  1039. kind: valueString,
  1040. value: "concat",
  1041. },
  1042. },
  1043. },
  1044. propertyOrder: []string{
  1045. propertyLength,
  1046. propertyName,
  1047. },
  1048. value: nativeFunctionObject{
  1049. name: "concat",
  1050. call: builtinArrayConcat,
  1051. },
  1052. },
  1053. },
  1054. },
  1055. "lastIndexOf": {
  1056. mode: 0o101,
  1057. value: Value{
  1058. kind: valueObject,
  1059. value: &object{
  1060. runtime: rt,
  1061. class: classFunctionName,
  1062. objectClass: classObject,
  1063. prototype: rt.global.FunctionPrototype,
  1064. extensible: true,
  1065. property: map[string]property{
  1066. propertyLength: {
  1067. mode: 0,
  1068. value: Value{
  1069. kind: valueNumber,
  1070. value: 1,
  1071. },
  1072. },
  1073. propertyName: {
  1074. mode: 0,
  1075. value: Value{
  1076. kind: valueString,
  1077. value: "lastIndexOf",
  1078. },
  1079. },
  1080. },
  1081. propertyOrder: []string{
  1082. propertyLength,
  1083. propertyName,
  1084. },
  1085. value: nativeFunctionObject{
  1086. name: "lastIndexOf",
  1087. call: builtinArrayLastIndexOf,
  1088. },
  1089. },
  1090. },
  1091. },
  1092. "pop": {
  1093. mode: 0o101,
  1094. value: Value{
  1095. kind: valueObject,
  1096. value: &object{
  1097. runtime: rt,
  1098. class: classFunctionName,
  1099. objectClass: classObject,
  1100. prototype: rt.global.FunctionPrototype,
  1101. extensible: true,
  1102. property: map[string]property{
  1103. propertyLength: {
  1104. mode: 0,
  1105. value: Value{
  1106. kind: valueNumber,
  1107. value: 0,
  1108. },
  1109. },
  1110. propertyName: {
  1111. mode: 0,
  1112. value: Value{
  1113. kind: valueString,
  1114. value: "pop",
  1115. },
  1116. },
  1117. },
  1118. propertyOrder: []string{
  1119. propertyLength,
  1120. propertyName,
  1121. },
  1122. value: nativeFunctionObject{
  1123. name: "pop",
  1124. call: builtinArrayPop,
  1125. },
  1126. },
  1127. },
  1128. },
  1129. "push": {
  1130. mode: 0o101,
  1131. value: Value{
  1132. kind: valueObject,
  1133. value: &object{
  1134. runtime: rt,
  1135. class: classFunctionName,
  1136. objectClass: classObject,
  1137. prototype: rt.global.FunctionPrototype,
  1138. extensible: true,
  1139. property: map[string]property{
  1140. propertyLength: {
  1141. mode: 0,
  1142. value: Value{
  1143. kind: valueNumber,
  1144. value: 1,
  1145. },
  1146. },
  1147. propertyName: {
  1148. mode: 0,
  1149. value: Value{
  1150. kind: valueString,
  1151. value: "push",
  1152. },
  1153. },
  1154. },
  1155. propertyOrder: []string{
  1156. propertyLength,
  1157. propertyName,
  1158. },
  1159. value: nativeFunctionObject{
  1160. name: "push",
  1161. call: builtinArrayPush,
  1162. },
  1163. },
  1164. },
  1165. },
  1166. "reverse": {
  1167. mode: 0o101,
  1168. value: Value{
  1169. kind: valueObject,
  1170. value: &object{
  1171. runtime: rt,
  1172. class: classFunctionName,
  1173. objectClass: classObject,
  1174. prototype: rt.global.FunctionPrototype,
  1175. extensible: true,
  1176. property: map[string]property{
  1177. propertyLength: {
  1178. mode: 0,
  1179. value: Value{
  1180. kind: valueNumber,
  1181. value: 0,
  1182. },
  1183. },
  1184. propertyName: {
  1185. mode: 0,
  1186. value: Value{
  1187. kind: valueString,
  1188. value: "reverse",
  1189. },
  1190. },
  1191. },
  1192. propertyOrder: []string{
  1193. propertyLength,
  1194. propertyName,
  1195. },
  1196. value: nativeFunctionObject{
  1197. name: "reverse",
  1198. call: builtinArrayReverse,
  1199. },
  1200. },
  1201. },
  1202. },
  1203. "shift": {
  1204. mode: 0o101,
  1205. value: Value{
  1206. kind: valueObject,
  1207. value: &object{
  1208. runtime: rt,
  1209. class: classFunctionName,
  1210. objectClass: classObject,
  1211. prototype: rt.global.FunctionPrototype,
  1212. extensible: true,
  1213. property: map[string]property{
  1214. propertyLength: {
  1215. mode: 0,
  1216. value: Value{
  1217. kind: valueNumber,
  1218. value: 0,
  1219. },
  1220. },
  1221. propertyName: {
  1222. mode: 0,
  1223. value: Value{
  1224. kind: valueString,
  1225. value: "shift",
  1226. },
  1227. },
  1228. },
  1229. propertyOrder: []string{
  1230. propertyLength,
  1231. propertyName,
  1232. },
  1233. value: nativeFunctionObject{
  1234. name: "shift",
  1235. call: builtinArrayShift,
  1236. },
  1237. },
  1238. },
  1239. },
  1240. "unshift": {
  1241. mode: 0o101,
  1242. value: Value{
  1243. kind: valueObject,
  1244. value: &object{
  1245. runtime: rt,
  1246. class: classFunctionName,
  1247. objectClass: classObject,
  1248. prototype: rt.global.FunctionPrototype,
  1249. extensible: true,
  1250. property: map[string]property{
  1251. propertyLength: {
  1252. mode: 0,
  1253. value: Value{
  1254. kind: valueNumber,
  1255. value: 1,
  1256. },
  1257. },
  1258. propertyName: {
  1259. mode: 0,
  1260. value: Value{
  1261. kind: valueString,
  1262. value: "unshift",
  1263. },
  1264. },
  1265. },
  1266. propertyOrder: []string{
  1267. propertyLength,
  1268. propertyName,
  1269. },
  1270. value: nativeFunctionObject{
  1271. name: "unshift",
  1272. call: builtinArrayUnshift,
  1273. },
  1274. },
  1275. },
  1276. },
  1277. "slice": {
  1278. mode: 0o101,
  1279. value: Value{
  1280. kind: valueObject,
  1281. value: &object{
  1282. runtime: rt,
  1283. class: classFunctionName,
  1284. objectClass: classObject,
  1285. prototype: rt.global.FunctionPrototype,
  1286. extensible: true,
  1287. property: map[string]property{
  1288. propertyLength: {
  1289. mode: 0,
  1290. value: Value{
  1291. kind: valueNumber,
  1292. value: 2,
  1293. },
  1294. },
  1295. propertyName: {
  1296. mode: 0,
  1297. value: Value{
  1298. kind: valueString,
  1299. value: "slice",
  1300. },
  1301. },
  1302. },
  1303. propertyOrder: []string{
  1304. propertyLength,
  1305. propertyName,
  1306. },
  1307. value: nativeFunctionObject{
  1308. name: "slice",
  1309. call: builtinArraySlice,
  1310. },
  1311. },
  1312. },
  1313. },
  1314. "sort": {
  1315. mode: 0o101,
  1316. value: Value{
  1317. kind: valueObject,
  1318. value: &object{
  1319. runtime: rt,
  1320. class: classFunctionName,
  1321. objectClass: classObject,
  1322. prototype: rt.global.FunctionPrototype,
  1323. extensible: true,
  1324. property: map[string]property{
  1325. propertyLength: {
  1326. mode: 0,
  1327. value: Value{
  1328. kind: valueNumber,
  1329. value: 1,
  1330. },
  1331. },
  1332. propertyName: {
  1333. mode: 0,
  1334. value: Value{
  1335. kind: valueString,
  1336. value: "sort",
  1337. },
  1338. },
  1339. },
  1340. propertyOrder: []string{
  1341. propertyLength,
  1342. propertyName,
  1343. },
  1344. value: nativeFunctionObject{
  1345. name: "sort",
  1346. call: builtinArraySort,
  1347. },
  1348. },
  1349. },
  1350. },
  1351. "splice": {
  1352. mode: 0o101,
  1353. value: Value{
  1354. kind: valueObject,
  1355. value: &object{
  1356. runtime: rt,
  1357. class: classFunctionName,
  1358. objectClass: classObject,
  1359. prototype: rt.global.FunctionPrototype,
  1360. extensible: true,
  1361. property: map[string]property{
  1362. propertyLength: {
  1363. mode: 0,
  1364. value: Value{
  1365. kind: valueNumber,
  1366. value: 2,
  1367. },
  1368. },
  1369. propertyName: {
  1370. mode: 0,
  1371. value: Value{
  1372. kind: valueString,
  1373. value: "splice",
  1374. },
  1375. },
  1376. },
  1377. propertyOrder: []string{
  1378. propertyLength,
  1379. propertyName,
  1380. },
  1381. value: nativeFunctionObject{
  1382. name: "splice",
  1383. call: builtinArraySplice,
  1384. },
  1385. },
  1386. },
  1387. },
  1388. "indexOf": {
  1389. mode: 0o101,
  1390. value: Value{
  1391. kind: valueObject,
  1392. value: &object{
  1393. runtime: rt,
  1394. class: classFunctionName,
  1395. objectClass: classObject,
  1396. prototype: rt.global.FunctionPrototype,
  1397. extensible: true,
  1398. property: map[string]property{
  1399. propertyLength: {
  1400. mode: 0,
  1401. value: Value{
  1402. kind: valueNumber,
  1403. value: 1,
  1404. },
  1405. },
  1406. propertyName: {
  1407. mode: 0,
  1408. value: Value{
  1409. kind: valueString,
  1410. value: "indexOf",
  1411. },
  1412. },
  1413. },
  1414. propertyOrder: []string{
  1415. propertyLength,
  1416. propertyName,
  1417. },
  1418. value: nativeFunctionObject{
  1419. name: "indexOf",
  1420. call: builtinArrayIndexOf,
  1421. },
  1422. },
  1423. },
  1424. },
  1425. "join": {
  1426. mode: 0o101,
  1427. value: Value{
  1428. kind: valueObject,
  1429. value: &object{
  1430. runtime: rt,
  1431. class: classFunctionName,
  1432. objectClass: classObject,
  1433. prototype: rt.global.FunctionPrototype,
  1434. extensible: true,
  1435. property: map[string]property{
  1436. propertyLength: {
  1437. mode: 0,
  1438. value: Value{
  1439. kind: valueNumber,
  1440. value: 1,
  1441. },
  1442. },
  1443. propertyName: {
  1444. mode: 0,
  1445. value: Value{
  1446. kind: valueString,
  1447. value: "join",
  1448. },
  1449. },
  1450. },
  1451. propertyOrder: []string{
  1452. propertyLength,
  1453. propertyName,
  1454. },
  1455. value: nativeFunctionObject{
  1456. name: "join",
  1457. call: builtinArrayJoin,
  1458. },
  1459. },
  1460. },
  1461. },
  1462. "forEach": {
  1463. mode: 0o101,
  1464. value: Value{
  1465. kind: valueObject,
  1466. value: &object{
  1467. runtime: rt,
  1468. class: classFunctionName,
  1469. objectClass: classObject,
  1470. prototype: rt.global.FunctionPrototype,
  1471. extensible: true,
  1472. property: map[string]property{
  1473. propertyLength: {
  1474. mode: 0,
  1475. value: Value{
  1476. kind: valueNumber,
  1477. value: 1,
  1478. },
  1479. },
  1480. propertyName: {
  1481. mode: 0,
  1482. value: Value{
  1483. kind: valueString,
  1484. value: "forEach",
  1485. },
  1486. },
  1487. },
  1488. propertyOrder: []string{
  1489. propertyLength,
  1490. propertyName,
  1491. },
  1492. value: nativeFunctionObject{
  1493. name: "forEach",
  1494. call: builtinArrayForEach,
  1495. },
  1496. },
  1497. },
  1498. },
  1499. "filter": {
  1500. mode: 0o101,
  1501. value: Value{
  1502. kind: valueObject,
  1503. value: &object{
  1504. runtime: rt,
  1505. class: classFunctionName,
  1506. objectClass: classObject,
  1507. prototype: rt.global.FunctionPrototype,
  1508. extensible: true,
  1509. property: map[string]property{
  1510. propertyLength: {
  1511. mode: 0,
  1512. value: Value{
  1513. kind: valueNumber,
  1514. value: 1,
  1515. },
  1516. },
  1517. propertyName: {
  1518. mode: 0,
  1519. value: Value{
  1520. kind: valueString,
  1521. value: "filter",
  1522. },
  1523. },
  1524. },
  1525. propertyOrder: []string{
  1526. propertyLength,
  1527. propertyName,
  1528. },
  1529. value: nativeFunctionObject{
  1530. name: "filter",
  1531. call: builtinArrayFilter,
  1532. },
  1533. },
  1534. },
  1535. },
  1536. "map": {
  1537. mode: 0o101,
  1538. value: Value{
  1539. kind: valueObject,
  1540. value: &object{
  1541. runtime: rt,
  1542. class: classFunctionName,
  1543. objectClass: classObject,
  1544. prototype: rt.global.FunctionPrototype,
  1545. extensible: true,
  1546. property: map[string]property{
  1547. propertyLength: {
  1548. mode: 0,
  1549. value: Value{
  1550. kind: valueNumber,
  1551. value: 1,
  1552. },
  1553. },
  1554. propertyName: {
  1555. mode: 0,
  1556. value: Value{
  1557. kind: valueString,
  1558. value: "map",
  1559. },
  1560. },
  1561. },
  1562. propertyOrder: []string{
  1563. propertyLength,
  1564. propertyName,
  1565. },
  1566. value: nativeFunctionObject{
  1567. name: "map",
  1568. call: builtinArrayMap,
  1569. },
  1570. },
  1571. },
  1572. },
  1573. "every": {
  1574. mode: 0o101,
  1575. value: Value{
  1576. kind: valueObject,
  1577. value: &object{
  1578. runtime: rt,
  1579. class: classFunctionName,
  1580. objectClass: classObject,
  1581. prototype: rt.global.FunctionPrototype,
  1582. extensible: true,
  1583. property: map[string]property{
  1584. propertyLength: {
  1585. mode: 0,
  1586. value: Value{
  1587. kind: valueNumber,
  1588. value: 1,
  1589. },
  1590. },
  1591. propertyName: {
  1592. mode: 0,
  1593. value: Value{
  1594. kind: valueString,
  1595. value: "every",
  1596. },
  1597. },
  1598. },
  1599. propertyOrder: []string{
  1600. propertyLength,
  1601. propertyName,
  1602. },
  1603. value: nativeFunctionObject{
  1604. name: "every",
  1605. call: builtinArrayEvery,
  1606. },
  1607. },
  1608. },
  1609. },
  1610. "some": {
  1611. mode: 0o101,
  1612. value: Value{
  1613. kind: valueObject,
  1614. value: &object{
  1615. runtime: rt,
  1616. class: classFunctionName,
  1617. objectClass: classObject,
  1618. prototype: rt.global.FunctionPrototype,
  1619. extensible: true,
  1620. property: map[string]property{
  1621. propertyLength: {
  1622. mode: 0,
  1623. value: Value{
  1624. kind: valueNumber,
  1625. value: 1,
  1626. },
  1627. },
  1628. propertyName: {
  1629. mode: 0,
  1630. value: Value{
  1631. kind: valueString,
  1632. value: "some",
  1633. },
  1634. },
  1635. },
  1636. propertyOrder: []string{
  1637. propertyLength,
  1638. propertyName,
  1639. },
  1640. value: nativeFunctionObject{
  1641. name: "some",
  1642. call: builtinArraySome,
  1643. },
  1644. },
  1645. },
  1646. },
  1647. "reduce": {
  1648. mode: 0o101,
  1649. value: Value{
  1650. kind: valueObject,
  1651. value: &object{
  1652. runtime: rt,
  1653. class: classFunctionName,
  1654. objectClass: classObject,
  1655. prototype: rt.global.FunctionPrototype,
  1656. extensible: true,
  1657. property: map[string]property{
  1658. propertyLength: {
  1659. mode: 0,
  1660. value: Value{
  1661. kind: valueNumber,
  1662. value: 1,
  1663. },
  1664. },
  1665. propertyName: {
  1666. mode: 0,
  1667. value: Value{
  1668. kind: valueString,
  1669. value: "reduce",
  1670. },
  1671. },
  1672. },
  1673. propertyOrder: []string{
  1674. propertyLength,
  1675. propertyName,
  1676. },
  1677. value: nativeFunctionObject{
  1678. name: "reduce",
  1679. call: builtinArrayReduce,
  1680. },
  1681. },
  1682. },
  1683. },
  1684. "reduceRight": {
  1685. mode: 0o101,
  1686. value: Value{
  1687. kind: valueObject,
  1688. value: &object{
  1689. runtime: rt,
  1690. class: classFunctionName,
  1691. objectClass: classObject,
  1692. prototype: rt.global.FunctionPrototype,
  1693. extensible: true,
  1694. property: map[string]property{
  1695. propertyLength: {
  1696. mode: 0,
  1697. value: Value{
  1698. kind: valueNumber,
  1699. value: 1,
  1700. },
  1701. },
  1702. propertyName: {
  1703. mode: 0,
  1704. value: Value{
  1705. kind: valueString,
  1706. value: "reduceRight",
  1707. },
  1708. },
  1709. },
  1710. propertyOrder: []string{
  1711. propertyLength,
  1712. propertyName,
  1713. },
  1714. value: nativeFunctionObject{
  1715. name: "reduceRight",
  1716. call: builtinArrayReduceRight,
  1717. },
  1718. },
  1719. },
  1720. },
  1721. "toLocaleString": {
  1722. mode: 0o101,
  1723. value: Value{
  1724. kind: valueObject,
  1725. value: &object{
  1726. runtime: rt,
  1727. class: classFunctionName,
  1728. objectClass: classObject,
  1729. prototype: rt.global.FunctionPrototype,
  1730. extensible: true,
  1731. property: map[string]property{
  1732. propertyLength: {
  1733. mode: 0,
  1734. value: Value{
  1735. kind: valueNumber,
  1736. value: 0,
  1737. },
  1738. },
  1739. propertyName: {
  1740. mode: 0,
  1741. value: Value{
  1742. kind: valueString,
  1743. value: "toLocaleString",
  1744. },
  1745. },
  1746. },
  1747. propertyOrder: []string{
  1748. propertyLength,
  1749. propertyName,
  1750. },
  1751. value: nativeFunctionObject{
  1752. name: "toLocaleString",
  1753. call: builtinArrayToLocaleString,
  1754. },
  1755. },
  1756. },
  1757. },
  1758. methodToString: {
  1759. mode: 0o101,
  1760. value: Value{
  1761. kind: valueObject,
  1762. value: &object{
  1763. runtime: rt,
  1764. class: classFunctionName,
  1765. objectClass: classObject,
  1766. prototype: rt.global.FunctionPrototype,
  1767. extensible: true,
  1768. property: map[string]property{
  1769. propertyLength: {
  1770. mode: 0,
  1771. value: Value{
  1772. kind: valueNumber,
  1773. value: 0,
  1774. },
  1775. },
  1776. propertyName: {
  1777. mode: 0,
  1778. value: Value{
  1779. kind: valueString,
  1780. value: "toString",
  1781. },
  1782. },
  1783. },
  1784. propertyOrder: []string{
  1785. propertyLength,
  1786. propertyName,
  1787. },
  1788. value: nativeFunctionObject{
  1789. name: methodToString,
  1790. call: builtinArrayToString,
  1791. },
  1792. },
  1793. },
  1794. },
  1795. },
  1796. propertyOrder: []string{
  1797. propertyLength,
  1798. propertyConstructor,
  1799. "concat",
  1800. "lastIndexOf",
  1801. "pop",
  1802. "push",
  1803. "reverse",
  1804. "shift",
  1805. "unshift",
  1806. "slice",
  1807. "sort",
  1808. "splice",
  1809. "indexOf",
  1810. "join",
  1811. "forEach",
  1812. "filter",
  1813. "map",
  1814. "every",
  1815. "some",
  1816. "reduce",
  1817. "reduceRight",
  1818. "toLocaleString",
  1819. methodToString,
  1820. },
  1821. }
  1822. // Array definition.
  1823. rt.global.Array = &object{
  1824. runtime: rt,
  1825. class: classFunctionName,
  1826. objectClass: classObject,
  1827. prototype: rt.global.FunctionPrototype,
  1828. extensible: true,
  1829. value: nativeFunctionObject{
  1830. name: classArrayName,
  1831. call: builtinArray,
  1832. construct: builtinNewArray,
  1833. },
  1834. property: map[string]property{
  1835. propertyLength: {
  1836. mode: 0,
  1837. value: Value{
  1838. kind: valueNumber,
  1839. value: 1,
  1840. },
  1841. },
  1842. propertyPrototype: {
  1843. mode: 0,
  1844. value: Value{
  1845. kind: valueObject,
  1846. value: rt.global.ArrayPrototype,
  1847. },
  1848. },
  1849. "isArray": {
  1850. mode: 0o101,
  1851. value: Value{
  1852. kind: valueObject,
  1853. value: &object{
  1854. runtime: rt,
  1855. class: classFunctionName,
  1856. objectClass: classObject,
  1857. prototype: rt.global.FunctionPrototype,
  1858. extensible: true,
  1859. property: map[string]property{
  1860. propertyLength: {
  1861. mode: 0,
  1862. value: Value{
  1863. kind: valueNumber,
  1864. value: 1,
  1865. },
  1866. },
  1867. propertyName: {
  1868. mode: 0,
  1869. value: Value{
  1870. kind: valueString,
  1871. value: "isArray",
  1872. },
  1873. },
  1874. },
  1875. propertyOrder: []string{
  1876. propertyLength,
  1877. propertyName,
  1878. },
  1879. value: nativeFunctionObject{
  1880. name: "isArray",
  1881. call: builtinArrayIsArray,
  1882. },
  1883. },
  1884. },
  1885. },
  1886. },
  1887. propertyOrder: []string{
  1888. propertyLength,
  1889. propertyPrototype,
  1890. "isArray",
  1891. },
  1892. }
  1893. // Array constructor definition.
  1894. rt.global.ArrayPrototype.property[propertyConstructor] = property{
  1895. mode: 0o101,
  1896. value: Value{
  1897. kind: valueObject,
  1898. value: rt.global.Array,
  1899. },
  1900. }
  1901. // String prototype.
  1902. rt.global.StringPrototype = &object{
  1903. runtime: rt,
  1904. class: classStringName,
  1905. objectClass: classString,
  1906. prototype: rt.global.ObjectPrototype,
  1907. extensible: true,
  1908. value: prototypeValueString,
  1909. property: map[string]property{
  1910. propertyLength: {
  1911. mode: 0,
  1912. value: Value{
  1913. kind: valueNumber,
  1914. value: int(0),
  1915. },
  1916. },
  1917. "charAt": {
  1918. mode: 0o101,
  1919. value: Value{
  1920. kind: valueObject,
  1921. value: &object{
  1922. runtime: rt,
  1923. class: classFunctionName,
  1924. objectClass: classObject,
  1925. prototype: rt.global.FunctionPrototype,
  1926. extensible: true,
  1927. property: map[string]property{
  1928. propertyLength: {
  1929. mode: 0,
  1930. value: Value{
  1931. kind: valueNumber,
  1932. value: 1,
  1933. },
  1934. },
  1935. propertyName: {
  1936. mode: 0,
  1937. value: Value{
  1938. kind: valueString,
  1939. value: "charAt",
  1940. },
  1941. },
  1942. },
  1943. propertyOrder: []string{
  1944. propertyLength,
  1945. propertyName,
  1946. },
  1947. value: nativeFunctionObject{
  1948. name: "charAt",
  1949. call: builtinStringCharAt,
  1950. },
  1951. },
  1952. },
  1953. },
  1954. "charCodeAt": {
  1955. mode: 0o101,
  1956. value: Value{
  1957. kind: valueObject,
  1958. value: &object{
  1959. runtime: rt,
  1960. class: classFunctionName,
  1961. objectClass: classObject,
  1962. prototype: rt.global.FunctionPrototype,
  1963. extensible: true,
  1964. property: map[string]property{
  1965. propertyLength: {
  1966. mode: 0,
  1967. value: Value{
  1968. kind: valueNumber,
  1969. value: 1,
  1970. },
  1971. },
  1972. propertyName: {
  1973. mode: 0,
  1974. value: Value{
  1975. kind: valueString,
  1976. value: "charCodeAt",
  1977. },
  1978. },
  1979. },
  1980. propertyOrder: []string{
  1981. propertyLength,
  1982. propertyName,
  1983. },
  1984. value: nativeFunctionObject{
  1985. name: "charCodeAt",
  1986. call: builtinStringCharCodeAt,
  1987. },
  1988. },
  1989. },
  1990. },
  1991. "concat": {
  1992. mode: 0o101,
  1993. value: Value{
  1994. kind: valueObject,
  1995. value: &object{
  1996. runtime: rt,
  1997. class: classFunctionName,
  1998. objectClass: classObject,
  1999. prototype: rt.global.FunctionPrototype,
  2000. extensible: true,
  2001. property: map[string]property{
  2002. propertyLength: {
  2003. mode: 0,
  2004. value: Value{
  2005. kind: valueNumber,
  2006. value: 1,
  2007. },
  2008. },
  2009. propertyName: {
  2010. mode: 0,
  2011. value: Value{
  2012. kind: valueString,
  2013. value: "concat",
  2014. },
  2015. },
  2016. },
  2017. propertyOrder: []string{
  2018. propertyLength,
  2019. propertyName,
  2020. },
  2021. value: nativeFunctionObject{
  2022. name: "concat",
  2023. call: builtinStringConcat,
  2024. },
  2025. },
  2026. },
  2027. },
  2028. "indexOf": {
  2029. mode: 0o101,
  2030. value: Value{
  2031. kind: valueObject,
  2032. value: &object{
  2033. runtime: rt,
  2034. class: classFunctionName,
  2035. objectClass: classObject,
  2036. prototype: rt.global.FunctionPrototype,
  2037. extensible: true,
  2038. property: map[string]property{
  2039. propertyLength: {
  2040. mode: 0,
  2041. value: Value{
  2042. kind: valueNumber,
  2043. value: 1,
  2044. },
  2045. },
  2046. propertyName: {
  2047. mode: 0,
  2048. value: Value{
  2049. kind: valueString,
  2050. value: "indexOf",
  2051. },
  2052. },
  2053. },
  2054. propertyOrder: []string{
  2055. propertyLength,
  2056. propertyName,
  2057. },
  2058. value: nativeFunctionObject{
  2059. name: "indexOf",
  2060. call: builtinStringIndexOf,
  2061. },
  2062. },
  2063. },
  2064. },
  2065. "lastIndexOf": {
  2066. mode: 0o101,
  2067. value: Value{
  2068. kind: valueObject,
  2069. value: &object{
  2070. runtime: rt,
  2071. class: classFunctionName,
  2072. objectClass: classObject,
  2073. prototype: rt.global.FunctionPrototype,
  2074. extensible: true,
  2075. property: map[string]property{
  2076. propertyLength: {
  2077. mode: 0,
  2078. value: Value{
  2079. kind: valueNumber,
  2080. value: 1,
  2081. },
  2082. },
  2083. propertyName: {
  2084. mode: 0,
  2085. value: Value{
  2086. kind: valueString,
  2087. value: "lastIndexOf",
  2088. },
  2089. },
  2090. },
  2091. propertyOrder: []string{
  2092. propertyLength,
  2093. propertyName,
  2094. },
  2095. value: nativeFunctionObject{
  2096. name: "lastIndexOf",
  2097. call: builtinStringLastIndexOf,
  2098. },
  2099. },
  2100. },
  2101. },
  2102. "localeCompare": {
  2103. mode: 0o101,
  2104. value: Value{
  2105. kind: valueObject,
  2106. value: &object{
  2107. runtime: rt,
  2108. class: classFunctionName,
  2109. objectClass: classObject,
  2110. prototype: rt.global.FunctionPrototype,
  2111. extensible: true,
  2112. property: map[string]property{
  2113. propertyLength: {
  2114. mode: 0,
  2115. value: Value{
  2116. kind: valueNumber,
  2117. value: 1,
  2118. },
  2119. },
  2120. propertyName: {
  2121. mode: 0,
  2122. value: Value{
  2123. kind: valueString,
  2124. value: "localeCompare",
  2125. },
  2126. },
  2127. },
  2128. propertyOrder: []string{
  2129. propertyLength,
  2130. propertyName,
  2131. },
  2132. value: nativeFunctionObject{
  2133. name: "localeCompare",
  2134. call: builtinStringLocaleCompare,
  2135. },
  2136. },
  2137. },
  2138. },
  2139. "match": {
  2140. mode: 0o101,
  2141. value: Value{
  2142. kind: valueObject,
  2143. value: &object{
  2144. runtime: rt,
  2145. class: classFunctionName,
  2146. objectClass: classObject,
  2147. prototype: rt.global.FunctionPrototype,
  2148. extensible: true,
  2149. property: map[string]property{
  2150. propertyLength: {
  2151. mode: 0,
  2152. value: Value{
  2153. kind: valueNumber,
  2154. value: 1,
  2155. },
  2156. },
  2157. propertyName: {
  2158. mode: 0,
  2159. value: Value{
  2160. kind: valueString,
  2161. value: "match",
  2162. },
  2163. },
  2164. },
  2165. propertyOrder: []string{
  2166. propertyLength,
  2167. propertyName,
  2168. },
  2169. value: nativeFunctionObject{
  2170. name: "match",
  2171. call: builtinStringMatch,
  2172. },
  2173. },
  2174. },
  2175. },
  2176. "replace": {
  2177. mode: 0o101,
  2178. value: Value{
  2179. kind: valueObject,
  2180. value: &object{
  2181. runtime: rt,
  2182. class: classFunctionName,
  2183. objectClass: classObject,
  2184. prototype: rt.global.FunctionPrototype,
  2185. extensible: true,
  2186. property: map[string]property{
  2187. propertyLength: {
  2188. mode: 0,
  2189. value: Value{
  2190. kind: valueNumber,
  2191. value: 2,
  2192. },
  2193. },
  2194. propertyName: {
  2195. mode: 0,
  2196. value: Value{
  2197. kind: valueString,
  2198. value: "replace",
  2199. },
  2200. },
  2201. },
  2202. propertyOrder: []string{
  2203. propertyLength,
  2204. propertyName,
  2205. },
  2206. value: nativeFunctionObject{
  2207. name: "replace",
  2208. call: builtinStringReplace,
  2209. },
  2210. },
  2211. },
  2212. },
  2213. "search": {
  2214. mode: 0o101,
  2215. value: Value{
  2216. kind: valueObject,
  2217. value: &object{
  2218. runtime: rt,
  2219. class: classFunctionName,
  2220. objectClass: classObject,
  2221. prototype: rt.global.FunctionPrototype,
  2222. extensible: true,
  2223. property: map[string]property{
  2224. propertyLength: {
  2225. mode: 0,
  2226. value: Value{
  2227. kind: valueNumber,
  2228. value: 1,
  2229. },
  2230. },
  2231. propertyName: {
  2232. mode: 0,
  2233. value: Value{
  2234. kind: valueString,
  2235. value: "search",
  2236. },
  2237. },
  2238. },
  2239. propertyOrder: []string{
  2240. propertyLength,
  2241. propertyName,
  2242. },
  2243. value: nativeFunctionObject{
  2244. name: "search",
  2245. call: builtinStringSearch,
  2246. },
  2247. },
  2248. },
  2249. },
  2250. "slice": {
  2251. mode: 0o101,
  2252. value: Value{
  2253. kind: valueObject,
  2254. value: &object{
  2255. runtime: rt,
  2256. class: classFunctionName,
  2257. objectClass: classObject,
  2258. prototype: rt.global.FunctionPrototype,
  2259. extensible: true,
  2260. property: map[string]property{
  2261. propertyLength: {
  2262. mode: 0,
  2263. value: Value{
  2264. kind: valueNumber,
  2265. value: 2,
  2266. },
  2267. },
  2268. propertyName: {
  2269. mode: 0,
  2270. value: Value{
  2271. kind: valueString,
  2272. value: "slice",
  2273. },
  2274. },
  2275. },
  2276. propertyOrder: []string{
  2277. propertyLength,
  2278. propertyName,
  2279. },
  2280. value: nativeFunctionObject{
  2281. name: "slice",
  2282. call: builtinStringSlice,
  2283. },
  2284. },
  2285. },
  2286. },
  2287. "split": {
  2288. mode: 0o101,
  2289. value: Value{
  2290. kind: valueObject,
  2291. value: &object{
  2292. runtime: rt,
  2293. class: classFunctionName,
  2294. objectClass: classObject,
  2295. prototype: rt.global.FunctionPrototype,
  2296. extensible: true,
  2297. property: map[string]property{
  2298. propertyLength: {
  2299. mode: 0,
  2300. value: Value{
  2301. kind: valueNumber,
  2302. value: 2,
  2303. },
  2304. },
  2305. propertyName: {
  2306. mode: 0,
  2307. value: Value{
  2308. kind: valueString,
  2309. value: "split",
  2310. },
  2311. },
  2312. },
  2313. propertyOrder: []string{
  2314. propertyLength,
  2315. propertyName,
  2316. },
  2317. value: nativeFunctionObject{
  2318. name: "split",
  2319. call: builtinStringSplit,
  2320. },
  2321. },
  2322. },
  2323. },
  2324. "substr": {
  2325. mode: 0o101,
  2326. value: Value{
  2327. kind: valueObject,
  2328. value: &object{
  2329. runtime: rt,
  2330. class: classFunctionName,
  2331. objectClass: classObject,
  2332. prototype: rt.global.FunctionPrototype,
  2333. extensible: true,
  2334. property: map[string]property{
  2335. propertyLength: {
  2336. mode: 0,
  2337. value: Value{
  2338. kind: valueNumber,
  2339. value: 2,
  2340. },
  2341. },
  2342. propertyName: {
  2343. mode: 0,
  2344. value: Value{
  2345. kind: valueString,
  2346. value: "substr",
  2347. },
  2348. },
  2349. },
  2350. propertyOrder: []string{
  2351. propertyLength,
  2352. propertyName,
  2353. },
  2354. value: nativeFunctionObject{
  2355. name: "substr",
  2356. call: builtinStringSubstr,
  2357. },
  2358. },
  2359. },
  2360. },
  2361. "substring": {
  2362. mode: 0o101,
  2363. value: Value{
  2364. kind: valueObject,
  2365. value: &object{
  2366. runtime: rt,
  2367. class: classFunctionName,
  2368. objectClass: classObject,
  2369. prototype: rt.global.FunctionPrototype,
  2370. extensible: true,
  2371. property: map[string]property{
  2372. propertyLength: {
  2373. mode: 0,
  2374. value: Value{
  2375. kind: valueNumber,
  2376. value: 2,
  2377. },
  2378. },
  2379. propertyName: {
  2380. mode: 0,
  2381. value: Value{
  2382. kind: valueString,
  2383. value: "substring",
  2384. },
  2385. },
  2386. },
  2387. propertyOrder: []string{
  2388. propertyLength,
  2389. propertyName,
  2390. },
  2391. value: nativeFunctionObject{
  2392. name: "substring",
  2393. call: builtinStringSubstring,
  2394. },
  2395. },
  2396. },
  2397. },
  2398. "startsWith": {
  2399. mode: 0o101,
  2400. value: Value{
  2401. kind: valueObject,
  2402. value: &object{
  2403. runtime: rt,
  2404. class: classFunctionName,
  2405. objectClass: classObject,
  2406. prototype: rt.global.FunctionPrototype,
  2407. extensible: true,
  2408. property: map[string]property{
  2409. propertyLength: {
  2410. mode: 0,
  2411. value: Value{
  2412. kind: valueNumber,
  2413. value: 1,
  2414. },
  2415. },
  2416. propertyName: {
  2417. mode: 0,
  2418. value: Value{
  2419. kind: valueString,
  2420. value: "startsWith",
  2421. },
  2422. },
  2423. },
  2424. propertyOrder: []string{
  2425. propertyLength,
  2426. propertyName,
  2427. },
  2428. value: nativeFunctionObject{
  2429. name: "startsWith",
  2430. call: builtinStringStartsWith,
  2431. },
  2432. },
  2433. },
  2434. },
  2435. methodToString: {
  2436. mode: 0o101,
  2437. value: Value{
  2438. kind: valueObject,
  2439. value: &object{
  2440. runtime: rt,
  2441. class: classFunctionName,
  2442. objectClass: classObject,
  2443. prototype: rt.global.FunctionPrototype,
  2444. extensible: true,
  2445. property: map[string]property{
  2446. propertyLength: {
  2447. mode: 0,
  2448. value: Value{
  2449. kind: valueNumber,
  2450. value: 0,
  2451. },
  2452. },
  2453. propertyName: {
  2454. mode: 0,
  2455. value: Value{
  2456. kind: valueString,
  2457. value: "toString",
  2458. },
  2459. },
  2460. },
  2461. propertyOrder: []string{
  2462. propertyLength,
  2463. propertyName,
  2464. },
  2465. value: nativeFunctionObject{
  2466. name: methodToString,
  2467. call: builtinStringToString,
  2468. },
  2469. },
  2470. },
  2471. },
  2472. "trim": {
  2473. mode: 0o101,
  2474. value: Value{
  2475. kind: valueObject,
  2476. value: &object{
  2477. runtime: rt,
  2478. class: classFunctionName,
  2479. objectClass: classObject,
  2480. prototype: rt.global.FunctionPrototype,
  2481. extensible: true,
  2482. property: map[string]property{
  2483. propertyLength: {
  2484. mode: 0,
  2485. value: Value{
  2486. kind: valueNumber,
  2487. value: 0,
  2488. },
  2489. },
  2490. propertyName: {
  2491. mode: 0,
  2492. value: Value{
  2493. kind: valueString,
  2494. value: "trim",
  2495. },
  2496. },
  2497. },
  2498. propertyOrder: []string{
  2499. propertyLength,
  2500. propertyName,
  2501. },
  2502. value: nativeFunctionObject{
  2503. name: "trim",
  2504. call: builtinStringTrim,
  2505. },
  2506. },
  2507. },
  2508. },
  2509. "trimLeft": {
  2510. mode: 0o101,
  2511. value: Value{
  2512. kind: valueObject,
  2513. value: &object{
  2514. runtime: rt,
  2515. class: classFunctionName,
  2516. objectClass: classObject,
  2517. prototype: rt.global.FunctionPrototype,
  2518. extensible: true,
  2519. property: map[string]property{
  2520. propertyLength: {
  2521. mode: 0,
  2522. value: Value{
  2523. kind: valueNumber,
  2524. value: 0,
  2525. },
  2526. },
  2527. propertyName: {
  2528. mode: 0,
  2529. value: Value{
  2530. kind: valueString,
  2531. value: "trimLeft",
  2532. },
  2533. },
  2534. },
  2535. propertyOrder: []string{
  2536. propertyLength,
  2537. propertyName,
  2538. },
  2539. value: nativeFunctionObject{
  2540. name: "trimLeft",
  2541. call: builtinStringTrimLeft,
  2542. },
  2543. },
  2544. },
  2545. },
  2546. "trimRight": {
  2547. mode: 0o101,
  2548. value: Value{
  2549. kind: valueObject,
  2550. value: &object{
  2551. runtime: rt,
  2552. class: classFunctionName,
  2553. objectClass: classObject,
  2554. prototype: rt.global.FunctionPrototype,
  2555. extensible: true,
  2556. property: map[string]property{
  2557. propertyLength: {
  2558. mode: 0,
  2559. value: Value{
  2560. kind: valueNumber,
  2561. value: 0,
  2562. },
  2563. },
  2564. propertyName: {
  2565. mode: 0,
  2566. value: Value{
  2567. kind: valueString,
  2568. value: "trimRight",
  2569. },
  2570. },
  2571. },
  2572. propertyOrder: []string{
  2573. propertyLength,
  2574. propertyName,
  2575. },
  2576. value: nativeFunctionObject{
  2577. name: "trimRight",
  2578. call: builtinStringTrimRight,
  2579. },
  2580. },
  2581. },
  2582. },
  2583. "toLocaleLowerCase": {
  2584. mode: 0o101,
  2585. value: Value{
  2586. kind: valueObject,
  2587. value: &object{
  2588. runtime: rt,
  2589. class: classFunctionName,
  2590. objectClass: classObject,
  2591. prototype: rt.global.FunctionPrototype,
  2592. extensible: true,
  2593. property: map[string]property{
  2594. propertyLength: {
  2595. mode: 0,
  2596. value: Value{
  2597. kind: valueNumber,
  2598. value: 0,
  2599. },
  2600. },
  2601. propertyName: {
  2602. mode: 0,
  2603. value: Value{
  2604. kind: valueString,
  2605. value: "toLocaleLowerCase",
  2606. },
  2607. },
  2608. },
  2609. propertyOrder: []string{
  2610. propertyLength,
  2611. propertyName,
  2612. },
  2613. value: nativeFunctionObject{
  2614. name: "toLocaleLowerCase",
  2615. call: builtinStringToLocaleLowerCase,
  2616. },
  2617. },
  2618. },
  2619. },
  2620. "toLocaleUpperCase": {
  2621. mode: 0o101,
  2622. value: Value{
  2623. kind: valueObject,
  2624. value: &object{
  2625. runtime: rt,
  2626. class: classFunctionName,
  2627. objectClass: classObject,
  2628. prototype: rt.global.FunctionPrototype,
  2629. extensible: true,
  2630. property: map[string]property{
  2631. propertyLength: {
  2632. mode: 0,
  2633. value: Value{
  2634. kind: valueNumber,
  2635. value: 0,
  2636. },
  2637. },
  2638. propertyName: {
  2639. mode: 0,
  2640. value: Value{
  2641. kind: valueString,
  2642. value: "toLocaleUpperCase",
  2643. },
  2644. },
  2645. },
  2646. propertyOrder: []string{
  2647. propertyLength,
  2648. propertyName,
  2649. },
  2650. value: nativeFunctionObject{
  2651. name: "toLocaleUpperCase",
  2652. call: builtinStringToLocaleUpperCase,
  2653. },
  2654. },
  2655. },
  2656. },
  2657. "toLowerCase": {
  2658. mode: 0o101,
  2659. value: Value{
  2660. kind: valueObject,
  2661. value: &object{
  2662. runtime: rt,
  2663. class: classFunctionName,
  2664. objectClass: classObject,
  2665. prototype: rt.global.FunctionPrototype,
  2666. extensible: true,
  2667. property: map[string]property{
  2668. propertyLength: {
  2669. mode: 0,
  2670. value: Value{
  2671. kind: valueNumber,
  2672. value: 0,
  2673. },
  2674. },
  2675. propertyName: {
  2676. mode: 0,
  2677. value: Value{
  2678. kind: valueString,
  2679. value: "toLowerCase",
  2680. },
  2681. },
  2682. },
  2683. propertyOrder: []string{
  2684. propertyLength,
  2685. propertyName,
  2686. },
  2687. value: nativeFunctionObject{
  2688. name: "toLowerCase",
  2689. call: builtinStringToLowerCase,
  2690. },
  2691. },
  2692. },
  2693. },
  2694. "toUpperCase": {
  2695. mode: 0o101,
  2696. value: Value{
  2697. kind: valueObject,
  2698. value: &object{
  2699. runtime: rt,
  2700. class: classFunctionName,
  2701. objectClass: classObject,
  2702. prototype: rt.global.FunctionPrototype,
  2703. extensible: true,
  2704. property: map[string]property{
  2705. propertyLength: {
  2706. mode: 0,
  2707. value: Value{
  2708. kind: valueNumber,
  2709. value: 0,
  2710. },
  2711. },
  2712. propertyName: {
  2713. mode: 0,
  2714. value: Value{
  2715. kind: valueString,
  2716. value: "toUpperCase",
  2717. },
  2718. },
  2719. },
  2720. propertyOrder: []string{
  2721. propertyLength,
  2722. propertyName,
  2723. },
  2724. value: nativeFunctionObject{
  2725. name: "toUpperCase",
  2726. call: builtinStringToUpperCase,
  2727. },
  2728. },
  2729. },
  2730. },
  2731. "valueOf": {
  2732. mode: 0o101,
  2733. value: Value{
  2734. kind: valueObject,
  2735. value: &object{
  2736. runtime: rt,
  2737. class: classFunctionName,
  2738. objectClass: classObject,
  2739. prototype: rt.global.FunctionPrototype,
  2740. extensible: true,
  2741. property: map[string]property{
  2742. propertyLength: {
  2743. mode: 0,
  2744. value: Value{
  2745. kind: valueNumber,
  2746. value: 0,
  2747. },
  2748. },
  2749. propertyName: {
  2750. mode: 0,
  2751. value: Value{
  2752. kind: valueString,
  2753. value: "valueOf",
  2754. },
  2755. },
  2756. },
  2757. propertyOrder: []string{
  2758. propertyLength,
  2759. propertyName,
  2760. },
  2761. value: nativeFunctionObject{
  2762. name: "valueOf",
  2763. call: builtinStringValueOf,
  2764. },
  2765. },
  2766. },
  2767. },
  2768. },
  2769. propertyOrder: []string{
  2770. propertyLength,
  2771. propertyConstructor,
  2772. "charAt",
  2773. "charCodeAt",
  2774. "concat",
  2775. "indexOf",
  2776. "lastIndexOf",
  2777. "localeCompare",
  2778. "match",
  2779. "replace",
  2780. "search",
  2781. "slice",
  2782. "split",
  2783. "substr",
  2784. "substring",
  2785. "startsWith",
  2786. methodToString,
  2787. "trim",
  2788. "trimLeft",
  2789. "trimRight",
  2790. "toLocaleLowerCase",
  2791. "toLocaleUpperCase",
  2792. "toLowerCase",
  2793. "toUpperCase",
  2794. "valueOf",
  2795. },
  2796. }
  2797. // String definition.
  2798. rt.global.String = &object{
  2799. runtime: rt,
  2800. class: classFunctionName,
  2801. objectClass: classObject,
  2802. prototype: rt.global.FunctionPrototype,
  2803. extensible: true,
  2804. value: nativeFunctionObject{
  2805. name: classStringName,
  2806. call: builtinString,
  2807. construct: builtinNewString,
  2808. },
  2809. property: map[string]property{
  2810. propertyLength: {
  2811. mode: 0,
  2812. value: Value{
  2813. kind: valueNumber,
  2814. value: 1,
  2815. },
  2816. },
  2817. propertyPrototype: {
  2818. mode: 0,
  2819. value: Value{
  2820. kind: valueObject,
  2821. value: rt.global.StringPrototype,
  2822. },
  2823. },
  2824. "fromCharCode": {
  2825. mode: 0o101,
  2826. value: Value{
  2827. kind: valueObject,
  2828. value: &object{
  2829. runtime: rt,
  2830. class: classFunctionName,
  2831. objectClass: classObject,
  2832. prototype: rt.global.FunctionPrototype,
  2833. extensible: true,
  2834. property: map[string]property{
  2835. propertyLength: {
  2836. mode: 0,
  2837. value: Value{
  2838. kind: valueNumber,
  2839. value: 1,
  2840. },
  2841. },
  2842. propertyName: {
  2843. mode: 0,
  2844. value: Value{
  2845. kind: valueString,
  2846. value: "fromCharCode",
  2847. },
  2848. },
  2849. },
  2850. propertyOrder: []string{
  2851. propertyLength,
  2852. propertyName,
  2853. },
  2854. value: nativeFunctionObject{
  2855. name: "fromCharCode",
  2856. call: builtinStringFromCharCode,
  2857. },
  2858. },
  2859. },
  2860. },
  2861. },
  2862. propertyOrder: []string{
  2863. propertyLength,
  2864. propertyPrototype,
  2865. "fromCharCode",
  2866. },
  2867. }
  2868. // String constructor definition.
  2869. rt.global.StringPrototype.property[propertyConstructor] = property{
  2870. mode: 0o101,
  2871. value: Value{
  2872. kind: valueObject,
  2873. value: rt.global.String,
  2874. },
  2875. }
  2876. // Boolean prototype.
  2877. rt.global.BooleanPrototype = &object{
  2878. runtime: rt,
  2879. class: classBooleanName,
  2880. objectClass: classObject,
  2881. prototype: rt.global.ObjectPrototype,
  2882. extensible: true,
  2883. value: prototypeValueBoolean,
  2884. property: map[string]property{
  2885. methodToString: {
  2886. mode: 0o101,
  2887. value: Value{
  2888. kind: valueObject,
  2889. value: &object{
  2890. runtime: rt,
  2891. class: classFunctionName,
  2892. objectClass: classObject,
  2893. prototype: rt.global.FunctionPrototype,
  2894. extensible: true,
  2895. property: map[string]property{
  2896. propertyLength: {
  2897. mode: 0,
  2898. value: Value{
  2899. kind: valueNumber,
  2900. value: 0,
  2901. },
  2902. },
  2903. propertyName: {
  2904. mode: 0,
  2905. value: Value{
  2906. kind: valueString,
  2907. value: "toString",
  2908. },
  2909. },
  2910. },
  2911. propertyOrder: []string{
  2912. propertyLength,
  2913. propertyName,
  2914. },
  2915. value: nativeFunctionObject{
  2916. name: methodToString,
  2917. call: builtinBooleanToString,
  2918. },
  2919. },
  2920. },
  2921. },
  2922. "valueOf": {
  2923. mode: 0o101,
  2924. value: Value{
  2925. kind: valueObject,
  2926. value: &object{
  2927. runtime: rt,
  2928. class: classFunctionName,
  2929. objectClass: classObject,
  2930. prototype: rt.global.FunctionPrototype,
  2931. extensible: true,
  2932. property: map[string]property{
  2933. propertyLength: {
  2934. mode: 0,
  2935. value: Value{
  2936. kind: valueNumber,
  2937. value: 0,
  2938. },
  2939. },
  2940. propertyName: {
  2941. mode: 0,
  2942. value: Value{
  2943. kind: valueString,
  2944. value: "valueOf",
  2945. },
  2946. },
  2947. },
  2948. propertyOrder: []string{
  2949. propertyLength,
  2950. propertyName,
  2951. },
  2952. value: nativeFunctionObject{
  2953. name: "valueOf",
  2954. call: builtinBooleanValueOf,
  2955. },
  2956. },
  2957. },
  2958. },
  2959. },
  2960. propertyOrder: []string{
  2961. propertyConstructor,
  2962. methodToString,
  2963. "valueOf",
  2964. },
  2965. }
  2966. // Boolean definition.
  2967. rt.global.Boolean = &object{
  2968. runtime: rt,
  2969. class: classFunctionName,
  2970. objectClass: classObject,
  2971. prototype: rt.global.FunctionPrototype,
  2972. extensible: true,
  2973. value: nativeFunctionObject{
  2974. name: classBooleanName,
  2975. call: builtinBoolean,
  2976. construct: builtinNewBoolean,
  2977. },
  2978. property: map[string]property{
  2979. propertyLength: {
  2980. mode: 0,
  2981. value: Value{
  2982. kind: valueNumber,
  2983. value: 1,
  2984. },
  2985. },
  2986. propertyPrototype: {
  2987. mode: 0,
  2988. value: Value{
  2989. kind: valueObject,
  2990. value: rt.global.BooleanPrototype,
  2991. },
  2992. },
  2993. },
  2994. propertyOrder: []string{
  2995. propertyLength,
  2996. propertyPrototype,
  2997. },
  2998. }
  2999. // Boolean constructor definition.
  3000. rt.global.BooleanPrototype.property[propertyConstructor] = property{
  3001. mode: 0o101,
  3002. value: Value{
  3003. kind: valueObject,
  3004. value: rt.global.Boolean,
  3005. },
  3006. }
  3007. // Number prototype.
  3008. rt.global.NumberPrototype = &object{
  3009. runtime: rt,
  3010. class: classNumberName,
  3011. objectClass: classObject,
  3012. prototype: rt.global.ObjectPrototype,
  3013. extensible: true,
  3014. value: prototypeValueNumber,
  3015. property: map[string]property{
  3016. "toExponential": {
  3017. mode: 0o101,
  3018. value: Value{
  3019. kind: valueObject,
  3020. value: &object{
  3021. runtime: rt,
  3022. class: classFunctionName,
  3023. objectClass: classObject,
  3024. prototype: rt.global.FunctionPrototype,
  3025. extensible: true,
  3026. property: map[string]property{
  3027. propertyLength: {
  3028. mode: 0,
  3029. value: Value{
  3030. kind: valueNumber,
  3031. value: 1,
  3032. },
  3033. },
  3034. propertyName: {
  3035. mode: 0,
  3036. value: Value{
  3037. kind: valueString,
  3038. value: "toExponential",
  3039. },
  3040. },
  3041. },
  3042. propertyOrder: []string{
  3043. propertyLength,
  3044. propertyName,
  3045. },
  3046. value: nativeFunctionObject{
  3047. name: "toExponential",
  3048. call: builtinNumberToExponential,
  3049. },
  3050. },
  3051. },
  3052. },
  3053. "toFixed": {
  3054. mode: 0o101,
  3055. value: Value{
  3056. kind: valueObject,
  3057. value: &object{
  3058. runtime: rt,
  3059. class: classFunctionName,
  3060. objectClass: classObject,
  3061. prototype: rt.global.FunctionPrototype,
  3062. extensible: true,
  3063. property: map[string]property{
  3064. propertyLength: {
  3065. mode: 0,
  3066. value: Value{
  3067. kind: valueNumber,
  3068. value: 1,
  3069. },
  3070. },
  3071. propertyName: {
  3072. mode: 0,
  3073. value: Value{
  3074. kind: valueString,
  3075. value: "toFixed",
  3076. },
  3077. },
  3078. },
  3079. propertyOrder: []string{
  3080. propertyLength,
  3081. propertyName,
  3082. },
  3083. value: nativeFunctionObject{
  3084. name: "toFixed",
  3085. call: builtinNumberToFixed,
  3086. },
  3087. },
  3088. },
  3089. },
  3090. "toPrecision": {
  3091. mode: 0o101,
  3092. value: Value{
  3093. kind: valueObject,
  3094. value: &object{
  3095. runtime: rt,
  3096. class: classFunctionName,
  3097. objectClass: classObject,
  3098. prototype: rt.global.FunctionPrototype,
  3099. extensible: true,
  3100. property: map[string]property{
  3101. propertyLength: {
  3102. mode: 0,
  3103. value: Value{
  3104. kind: valueNumber,
  3105. value: 1,
  3106. },
  3107. },
  3108. propertyName: {
  3109. mode: 0,
  3110. value: Value{
  3111. kind: valueString,
  3112. value: "toPrecision",
  3113. },
  3114. },
  3115. },
  3116. propertyOrder: []string{
  3117. propertyLength,
  3118. propertyName,
  3119. },
  3120. value: nativeFunctionObject{
  3121. name: "toPrecision",
  3122. call: builtinNumberToPrecision,
  3123. },
  3124. },
  3125. },
  3126. },
  3127. methodToString: {
  3128. mode: 0o101,
  3129. value: Value{
  3130. kind: valueObject,
  3131. value: &object{
  3132. runtime: rt,
  3133. class: classFunctionName,
  3134. objectClass: classObject,
  3135. prototype: rt.global.FunctionPrototype,
  3136. extensible: true,
  3137. property: map[string]property{
  3138. propertyLength: {
  3139. mode: 0,
  3140. value: Value{
  3141. kind: valueNumber,
  3142. value: 0,
  3143. },
  3144. },
  3145. propertyName: {
  3146. mode: 0,
  3147. value: Value{
  3148. kind: valueString,
  3149. value: "toString",
  3150. },
  3151. },
  3152. },
  3153. propertyOrder: []string{
  3154. propertyLength,
  3155. propertyName,
  3156. },
  3157. value: nativeFunctionObject{
  3158. name: methodToString,
  3159. call: builtinNumberToString,
  3160. },
  3161. },
  3162. },
  3163. },
  3164. "valueOf": {
  3165. mode: 0o101,
  3166. value: Value{
  3167. kind: valueObject,
  3168. value: &object{
  3169. runtime: rt,
  3170. class: classFunctionName,
  3171. objectClass: classObject,
  3172. prototype: rt.global.FunctionPrototype,
  3173. extensible: true,
  3174. property: map[string]property{
  3175. propertyLength: {
  3176. mode: 0,
  3177. value: Value{
  3178. kind: valueNumber,
  3179. value: 0,
  3180. },
  3181. },
  3182. propertyName: {
  3183. mode: 0,
  3184. value: Value{
  3185. kind: valueString,
  3186. value: "valueOf",
  3187. },
  3188. },
  3189. },
  3190. propertyOrder: []string{
  3191. propertyLength,
  3192. propertyName,
  3193. },
  3194. value: nativeFunctionObject{
  3195. name: "valueOf",
  3196. call: builtinNumberValueOf,
  3197. },
  3198. },
  3199. },
  3200. },
  3201. "toLocaleString": {
  3202. mode: 0o101,
  3203. value: Value{
  3204. kind: valueObject,
  3205. value: &object{
  3206. runtime: rt,
  3207. class: classFunctionName,
  3208. objectClass: classObject,
  3209. prototype: rt.global.FunctionPrototype,
  3210. extensible: true,
  3211. property: map[string]property{
  3212. propertyLength: {
  3213. mode: 0,
  3214. value: Value{
  3215. kind: valueNumber,
  3216. value: 1,
  3217. },
  3218. },
  3219. propertyName: {
  3220. mode: 0,
  3221. value: Value{
  3222. kind: valueString,
  3223. value: "toLocaleString",
  3224. },
  3225. },
  3226. },
  3227. propertyOrder: []string{
  3228. propertyLength,
  3229. propertyName,
  3230. },
  3231. value: nativeFunctionObject{
  3232. name: "toLocaleString",
  3233. call: builtinNumberToLocaleString,
  3234. },
  3235. },
  3236. },
  3237. },
  3238. },
  3239. propertyOrder: []string{
  3240. propertyConstructor,
  3241. "toExponential",
  3242. "toFixed",
  3243. "toPrecision",
  3244. methodToString,
  3245. "valueOf",
  3246. "toLocaleString",
  3247. },
  3248. }
  3249. // Number definition.
  3250. rt.global.Number = &object{
  3251. runtime: rt,
  3252. class: classFunctionName,
  3253. objectClass: classObject,
  3254. prototype: rt.global.FunctionPrototype,
  3255. extensible: true,
  3256. value: nativeFunctionObject{
  3257. name: classNumberName,
  3258. call: builtinNumber,
  3259. construct: builtinNewNumber,
  3260. },
  3261. property: map[string]property{
  3262. propertyLength: {
  3263. mode: 0,
  3264. value: Value{
  3265. kind: valueNumber,
  3266. value: 1,
  3267. },
  3268. },
  3269. propertyPrototype: {
  3270. mode: 0,
  3271. value: Value{
  3272. kind: valueObject,
  3273. value: rt.global.NumberPrototype,
  3274. },
  3275. },
  3276. "isNaN": {
  3277. mode: 0o101,
  3278. value: Value{
  3279. kind: valueObject,
  3280. value: &object{
  3281. runtime: rt,
  3282. class: classFunctionName,
  3283. objectClass: classObject,
  3284. prototype: rt.global.FunctionPrototype,
  3285. extensible: true,
  3286. property: map[string]property{
  3287. propertyLength: {
  3288. mode: 0,
  3289. value: Value{
  3290. kind: valueNumber,
  3291. value: 1,
  3292. },
  3293. },
  3294. propertyName: {
  3295. mode: 0,
  3296. value: Value{
  3297. kind: valueString,
  3298. value: "isNaN",
  3299. },
  3300. },
  3301. },
  3302. propertyOrder: []string{
  3303. propertyLength,
  3304. propertyName,
  3305. },
  3306. value: nativeFunctionObject{
  3307. name: "isNaN",
  3308. call: builtinNumberIsNaN,
  3309. },
  3310. },
  3311. },
  3312. },
  3313. "MAX_VALUE": {
  3314. mode: 0,
  3315. value: Value{
  3316. kind: valueNumber,
  3317. value: math.MaxFloat64,
  3318. },
  3319. },
  3320. "MIN_VALUE": {
  3321. mode: 0,
  3322. value: Value{
  3323. kind: valueNumber,
  3324. value: math.SmallestNonzeroFloat64,
  3325. },
  3326. },
  3327. "NaN": {
  3328. mode: 0,
  3329. value: Value{
  3330. kind: valueNumber,
  3331. value: math.NaN(),
  3332. },
  3333. },
  3334. "NEGATIVE_INFINITY": {
  3335. mode: 0,
  3336. value: Value{
  3337. kind: valueNumber,
  3338. value: math.Inf(-1),
  3339. },
  3340. },
  3341. "POSITIVE_INFINITY": {
  3342. mode: 0,
  3343. value: Value{
  3344. kind: valueNumber,
  3345. value: math.Inf(+1),
  3346. },
  3347. },
  3348. },
  3349. propertyOrder: []string{
  3350. propertyLength,
  3351. propertyPrototype,
  3352. "isNaN",
  3353. "MAX_VALUE",
  3354. "MIN_VALUE",
  3355. "NaN",
  3356. "NEGATIVE_INFINITY",
  3357. "POSITIVE_INFINITY",
  3358. },
  3359. }
  3360. // Number constructor definition.
  3361. rt.global.NumberPrototype.property[propertyConstructor] = property{
  3362. mode: 0o101,
  3363. value: Value{
  3364. kind: valueObject,
  3365. value: rt.global.Number,
  3366. },
  3367. }
  3368. // Math definition.
  3369. rt.global.Math = &object{
  3370. runtime: rt,
  3371. class: classMathName,
  3372. objectClass: classObject,
  3373. prototype: rt.global.ObjectPrototype,
  3374. extensible: true,
  3375. property: map[string]property{
  3376. "abs": {
  3377. mode: 0o101,
  3378. value: Value{
  3379. kind: valueObject,
  3380. value: &object{
  3381. runtime: rt,
  3382. class: classFunctionName,
  3383. objectClass: classObject,
  3384. prototype: rt.global.FunctionPrototype,
  3385. extensible: true,
  3386. property: map[string]property{
  3387. propertyLength: {
  3388. mode: 0,
  3389. value: Value{
  3390. kind: valueNumber,
  3391. value: 1,
  3392. },
  3393. },
  3394. propertyName: {
  3395. mode: 0,
  3396. value: Value{
  3397. kind: valueString,
  3398. value: "abs",
  3399. },
  3400. },
  3401. },
  3402. propertyOrder: []string{
  3403. propertyLength,
  3404. propertyName,
  3405. },
  3406. value: nativeFunctionObject{
  3407. name: "abs",
  3408. call: builtinMathAbs,
  3409. },
  3410. },
  3411. },
  3412. },
  3413. "acos": {
  3414. mode: 0o101,
  3415. value: Value{
  3416. kind: valueObject,
  3417. value: &object{
  3418. runtime: rt,
  3419. class: classFunctionName,
  3420. objectClass: classObject,
  3421. prototype: rt.global.FunctionPrototype,
  3422. extensible: true,
  3423. property: map[string]property{
  3424. propertyLength: {
  3425. mode: 0,
  3426. value: Value{
  3427. kind: valueNumber,
  3428. value: 1,
  3429. },
  3430. },
  3431. propertyName: {
  3432. mode: 0,
  3433. value: Value{
  3434. kind: valueString,
  3435. value: "acos",
  3436. },
  3437. },
  3438. },
  3439. propertyOrder: []string{
  3440. propertyLength,
  3441. propertyName,
  3442. },
  3443. value: nativeFunctionObject{
  3444. name: "acos",
  3445. call: builtinMathAcos,
  3446. },
  3447. },
  3448. },
  3449. },
  3450. "acosh": {
  3451. mode: 0o101,
  3452. value: Value{
  3453. kind: valueObject,
  3454. value: &object{
  3455. runtime: rt,
  3456. class: classFunctionName,
  3457. objectClass: classObject,
  3458. prototype: rt.global.FunctionPrototype,
  3459. extensible: true,
  3460. property: map[string]property{
  3461. propertyLength: {
  3462. mode: 0,
  3463. value: Value{
  3464. kind: valueNumber,
  3465. value: 1,
  3466. },
  3467. },
  3468. propertyName: {
  3469. mode: 0,
  3470. value: Value{
  3471. kind: valueString,
  3472. value: "acosh",
  3473. },
  3474. },
  3475. },
  3476. propertyOrder: []string{
  3477. propertyLength,
  3478. propertyName,
  3479. },
  3480. value: nativeFunctionObject{
  3481. name: "acosh",
  3482. call: builtinMathAcosh,
  3483. },
  3484. },
  3485. },
  3486. },
  3487. "asin": {
  3488. mode: 0o101,
  3489. value: Value{
  3490. kind: valueObject,
  3491. value: &object{
  3492. runtime: rt,
  3493. class: classFunctionName,
  3494. objectClass: classObject,
  3495. prototype: rt.global.FunctionPrototype,
  3496. extensible: true,
  3497. property: map[string]property{
  3498. propertyLength: {
  3499. mode: 0,
  3500. value: Value{
  3501. kind: valueNumber,
  3502. value: 1,
  3503. },
  3504. },
  3505. propertyName: {
  3506. mode: 0,
  3507. value: Value{
  3508. kind: valueString,
  3509. value: "asin",
  3510. },
  3511. },
  3512. },
  3513. propertyOrder: []string{
  3514. propertyLength,
  3515. propertyName,
  3516. },
  3517. value: nativeFunctionObject{
  3518. name: "asin",
  3519. call: builtinMathAsin,
  3520. },
  3521. },
  3522. },
  3523. },
  3524. "asinh": {
  3525. mode: 0o101,
  3526. value: Value{
  3527. kind: valueObject,
  3528. value: &object{
  3529. runtime: rt,
  3530. class: classFunctionName,
  3531. objectClass: classObject,
  3532. prototype: rt.global.FunctionPrototype,
  3533. extensible: true,
  3534. property: map[string]property{
  3535. propertyLength: {
  3536. mode: 0,
  3537. value: Value{
  3538. kind: valueNumber,
  3539. value: 1,
  3540. },
  3541. },
  3542. propertyName: {
  3543. mode: 0,
  3544. value: Value{
  3545. kind: valueString,
  3546. value: "asinh",
  3547. },
  3548. },
  3549. },
  3550. propertyOrder: []string{
  3551. propertyLength,
  3552. propertyName,
  3553. },
  3554. value: nativeFunctionObject{
  3555. name: "asinh",
  3556. call: builtinMathAsinh,
  3557. },
  3558. },
  3559. },
  3560. },
  3561. "atan": {
  3562. mode: 0o101,
  3563. value: Value{
  3564. kind: valueObject,
  3565. value: &object{
  3566. runtime: rt,
  3567. class: classFunctionName,
  3568. objectClass: classObject,
  3569. prototype: rt.global.FunctionPrototype,
  3570. extensible: true,
  3571. property: map[string]property{
  3572. propertyLength: {
  3573. mode: 0,
  3574. value: Value{
  3575. kind: valueNumber,
  3576. value: 1,
  3577. },
  3578. },
  3579. propertyName: {
  3580. mode: 0,
  3581. value: Value{
  3582. kind: valueString,
  3583. value: "atan",
  3584. },
  3585. },
  3586. },
  3587. propertyOrder: []string{
  3588. propertyLength,
  3589. propertyName,
  3590. },
  3591. value: nativeFunctionObject{
  3592. name: "atan",
  3593. call: builtinMathAtan,
  3594. },
  3595. },
  3596. },
  3597. },
  3598. "atanh": {
  3599. mode: 0o101,
  3600. value: Value{
  3601. kind: valueObject,
  3602. value: &object{
  3603. runtime: rt,
  3604. class: classFunctionName,
  3605. objectClass: classObject,
  3606. prototype: rt.global.FunctionPrototype,
  3607. extensible: true,
  3608. property: map[string]property{
  3609. propertyLength: {
  3610. mode: 0,
  3611. value: Value{
  3612. kind: valueNumber,
  3613. value: 1,
  3614. },
  3615. },
  3616. propertyName: {
  3617. mode: 0,
  3618. value: Value{
  3619. kind: valueString,
  3620. value: "atanh",
  3621. },
  3622. },
  3623. },
  3624. propertyOrder: []string{
  3625. propertyLength,
  3626. propertyName,
  3627. },
  3628. value: nativeFunctionObject{
  3629. name: "atanh",
  3630. call: builtinMathAtanh,
  3631. },
  3632. },
  3633. },
  3634. },
  3635. "atan2": {
  3636. mode: 0o101,
  3637. value: Value{
  3638. kind: valueObject,
  3639. value: &object{
  3640. runtime: rt,
  3641. class: classFunctionName,
  3642. objectClass: classObject,
  3643. prototype: rt.global.FunctionPrototype,
  3644. extensible: true,
  3645. property: map[string]property{
  3646. propertyLength: {
  3647. mode: 0,
  3648. value: Value{
  3649. kind: valueNumber,
  3650. value: 1,
  3651. },
  3652. },
  3653. propertyName: {
  3654. mode: 0,
  3655. value: Value{
  3656. kind: valueString,
  3657. value: "atan2",
  3658. },
  3659. },
  3660. },
  3661. propertyOrder: []string{
  3662. propertyLength,
  3663. propertyName,
  3664. },
  3665. value: nativeFunctionObject{
  3666. name: "atan2",
  3667. call: builtinMathAtan2,
  3668. },
  3669. },
  3670. },
  3671. },
  3672. "cbrt": {
  3673. mode: 0o101,
  3674. value: Value{
  3675. kind: valueObject,
  3676. value: &object{
  3677. runtime: rt,
  3678. class: classFunctionName,
  3679. objectClass: classObject,
  3680. prototype: rt.global.FunctionPrototype,
  3681. extensible: true,
  3682. property: map[string]property{
  3683. propertyLength: {
  3684. mode: 0,
  3685. value: Value{
  3686. kind: valueNumber,
  3687. value: 1,
  3688. },
  3689. },
  3690. propertyName: {
  3691. mode: 0,
  3692. value: Value{
  3693. kind: valueString,
  3694. value: "cbrt",
  3695. },
  3696. },
  3697. },
  3698. propertyOrder: []string{
  3699. propertyLength,
  3700. propertyName,
  3701. },
  3702. value: nativeFunctionObject{
  3703. name: "cbrt",
  3704. call: builtinMathCbrt,
  3705. },
  3706. },
  3707. },
  3708. },
  3709. "ceil": {
  3710. mode: 0o101,
  3711. value: Value{
  3712. kind: valueObject,
  3713. value: &object{
  3714. runtime: rt,
  3715. class: classFunctionName,
  3716. objectClass: classObject,
  3717. prototype: rt.global.FunctionPrototype,
  3718. extensible: true,
  3719. property: map[string]property{
  3720. propertyLength: {
  3721. mode: 0,
  3722. value: Value{
  3723. kind: valueNumber,
  3724. value: 1,
  3725. },
  3726. },
  3727. propertyName: {
  3728. mode: 0,
  3729. value: Value{
  3730. kind: valueString,
  3731. value: "ceil",
  3732. },
  3733. },
  3734. },
  3735. propertyOrder: []string{
  3736. propertyLength,
  3737. propertyName,
  3738. },
  3739. value: nativeFunctionObject{
  3740. name: "ceil",
  3741. call: builtinMathCeil,
  3742. },
  3743. },
  3744. },
  3745. },
  3746. "cos": {
  3747. mode: 0o101,
  3748. value: Value{
  3749. kind: valueObject,
  3750. value: &object{
  3751. runtime: rt,
  3752. class: classFunctionName,
  3753. objectClass: classObject,
  3754. prototype: rt.global.FunctionPrototype,
  3755. extensible: true,
  3756. property: map[string]property{
  3757. propertyLength: {
  3758. mode: 0,
  3759. value: Value{
  3760. kind: valueNumber,
  3761. value: 1,
  3762. },
  3763. },
  3764. propertyName: {
  3765. mode: 0,
  3766. value: Value{
  3767. kind: valueString,
  3768. value: "cos",
  3769. },
  3770. },
  3771. },
  3772. propertyOrder: []string{
  3773. propertyLength,
  3774. propertyName,
  3775. },
  3776. value: nativeFunctionObject{
  3777. name: "cos",
  3778. call: builtinMathCos,
  3779. },
  3780. },
  3781. },
  3782. },
  3783. "cosh": {
  3784. mode: 0o101,
  3785. value: Value{
  3786. kind: valueObject,
  3787. value: &object{
  3788. runtime: rt,
  3789. class: classFunctionName,
  3790. objectClass: classObject,
  3791. prototype: rt.global.FunctionPrototype,
  3792. extensible: true,
  3793. property: map[string]property{
  3794. propertyLength: {
  3795. mode: 0,
  3796. value: Value{
  3797. kind: valueNumber,
  3798. value: 1,
  3799. },
  3800. },
  3801. propertyName: {
  3802. mode: 0,
  3803. value: Value{
  3804. kind: valueString,
  3805. value: "cosh",
  3806. },
  3807. },
  3808. },
  3809. propertyOrder: []string{
  3810. propertyLength,
  3811. propertyName,
  3812. },
  3813. value: nativeFunctionObject{
  3814. name: "cosh",
  3815. call: builtinMathCosh,
  3816. },
  3817. },
  3818. },
  3819. },
  3820. "exp": {
  3821. mode: 0o101,
  3822. value: Value{
  3823. kind: valueObject,
  3824. value: &object{
  3825. runtime: rt,
  3826. class: classFunctionName,
  3827. objectClass: classObject,
  3828. prototype: rt.global.FunctionPrototype,
  3829. extensible: true,
  3830. property: map[string]property{
  3831. propertyLength: {
  3832. mode: 0,
  3833. value: Value{
  3834. kind: valueNumber,
  3835. value: 1,
  3836. },
  3837. },
  3838. propertyName: {
  3839. mode: 0,
  3840. value: Value{
  3841. kind: valueString,
  3842. value: "exp",
  3843. },
  3844. },
  3845. },
  3846. propertyOrder: []string{
  3847. propertyLength,
  3848. propertyName,
  3849. },
  3850. value: nativeFunctionObject{
  3851. name: "exp",
  3852. call: builtinMathExp,
  3853. },
  3854. },
  3855. },
  3856. },
  3857. "expm1": {
  3858. mode: 0o101,
  3859. value: Value{
  3860. kind: valueObject,
  3861. value: &object{
  3862. runtime: rt,
  3863. class: classFunctionName,
  3864. objectClass: classObject,
  3865. prototype: rt.global.FunctionPrototype,
  3866. extensible: true,
  3867. property: map[string]property{
  3868. propertyLength: {
  3869. mode: 0,
  3870. value: Value{
  3871. kind: valueNumber,
  3872. value: 1,
  3873. },
  3874. },
  3875. propertyName: {
  3876. mode: 0,
  3877. value: Value{
  3878. kind: valueString,
  3879. value: "expm1",
  3880. },
  3881. },
  3882. },
  3883. propertyOrder: []string{
  3884. propertyLength,
  3885. propertyName,
  3886. },
  3887. value: nativeFunctionObject{
  3888. name: "expm1",
  3889. call: builtinMathExpm1,
  3890. },
  3891. },
  3892. },
  3893. },
  3894. "floor": {
  3895. mode: 0o101,
  3896. value: Value{
  3897. kind: valueObject,
  3898. value: &object{
  3899. runtime: rt,
  3900. class: classFunctionName,
  3901. objectClass: classObject,
  3902. prototype: rt.global.FunctionPrototype,
  3903. extensible: true,
  3904. property: map[string]property{
  3905. propertyLength: {
  3906. mode: 0,
  3907. value: Value{
  3908. kind: valueNumber,
  3909. value: 1,
  3910. },
  3911. },
  3912. propertyName: {
  3913. mode: 0,
  3914. value: Value{
  3915. kind: valueString,
  3916. value: "floor",
  3917. },
  3918. },
  3919. },
  3920. propertyOrder: []string{
  3921. propertyLength,
  3922. propertyName,
  3923. },
  3924. value: nativeFunctionObject{
  3925. name: "floor",
  3926. call: builtinMathFloor,
  3927. },
  3928. },
  3929. },
  3930. },
  3931. "log": {
  3932. mode: 0o101,
  3933. value: Value{
  3934. kind: valueObject,
  3935. value: &object{
  3936. runtime: rt,
  3937. class: classFunctionName,
  3938. objectClass: classObject,
  3939. prototype: rt.global.FunctionPrototype,
  3940. extensible: true,
  3941. property: map[string]property{
  3942. propertyLength: {
  3943. mode: 0,
  3944. value: Value{
  3945. kind: valueNumber,
  3946. value: 1,
  3947. },
  3948. },
  3949. propertyName: {
  3950. mode: 0,
  3951. value: Value{
  3952. kind: valueString,
  3953. value: "log",
  3954. },
  3955. },
  3956. },
  3957. propertyOrder: []string{
  3958. propertyLength,
  3959. propertyName,
  3960. },
  3961. value: nativeFunctionObject{
  3962. name: "log",
  3963. call: builtinMathLog,
  3964. },
  3965. },
  3966. },
  3967. },
  3968. "log10": {
  3969. mode: 0o101,
  3970. value: Value{
  3971. kind: valueObject,
  3972. value: &object{
  3973. runtime: rt,
  3974. class: classFunctionName,
  3975. objectClass: classObject,
  3976. prototype: rt.global.FunctionPrototype,
  3977. extensible: true,
  3978. property: map[string]property{
  3979. propertyLength: {
  3980. mode: 0,
  3981. value: Value{
  3982. kind: valueNumber,
  3983. value: 1,
  3984. },
  3985. },
  3986. propertyName: {
  3987. mode: 0,
  3988. value: Value{
  3989. kind: valueString,
  3990. value: "log10",
  3991. },
  3992. },
  3993. },
  3994. propertyOrder: []string{
  3995. propertyLength,
  3996. propertyName,
  3997. },
  3998. value: nativeFunctionObject{
  3999. name: "log10",
  4000. call: builtinMathLog10,
  4001. },
  4002. },
  4003. },
  4004. },
  4005. "log1p": {
  4006. mode: 0o101,
  4007. value: Value{
  4008. kind: valueObject,
  4009. value: &object{
  4010. runtime: rt,
  4011. class: classFunctionName,
  4012. objectClass: classObject,
  4013. prototype: rt.global.FunctionPrototype,
  4014. extensible: true,
  4015. property: map[string]property{
  4016. propertyLength: {
  4017. mode: 0,
  4018. value: Value{
  4019. kind: valueNumber,
  4020. value: 1,
  4021. },
  4022. },
  4023. propertyName: {
  4024. mode: 0,
  4025. value: Value{
  4026. kind: valueString,
  4027. value: "log1p",
  4028. },
  4029. },
  4030. },
  4031. propertyOrder: []string{
  4032. propertyLength,
  4033. propertyName,
  4034. },
  4035. value: nativeFunctionObject{
  4036. name: "log1p",
  4037. call: builtinMathLog1p,
  4038. },
  4039. },
  4040. },
  4041. },
  4042. "log2": {
  4043. mode: 0o101,
  4044. value: Value{
  4045. kind: valueObject,
  4046. value: &object{
  4047. runtime: rt,
  4048. class: classFunctionName,
  4049. objectClass: classObject,
  4050. prototype: rt.global.FunctionPrototype,
  4051. extensible: true,
  4052. property: map[string]property{
  4053. propertyLength: {
  4054. mode: 0,
  4055. value: Value{
  4056. kind: valueNumber,
  4057. value: 1,
  4058. },
  4059. },
  4060. propertyName: {
  4061. mode: 0,
  4062. value: Value{
  4063. kind: valueString,
  4064. value: "log2",
  4065. },
  4066. },
  4067. },
  4068. propertyOrder: []string{
  4069. propertyLength,
  4070. propertyName,
  4071. },
  4072. value: nativeFunctionObject{
  4073. name: "log2",
  4074. call: builtinMathLog2,
  4075. },
  4076. },
  4077. },
  4078. },
  4079. "max": {
  4080. mode: 0o101,
  4081. value: Value{
  4082. kind: valueObject,
  4083. value: &object{
  4084. runtime: rt,
  4085. class: classFunctionName,
  4086. objectClass: classObject,
  4087. prototype: rt.global.FunctionPrototype,
  4088. extensible: true,
  4089. property: map[string]property{
  4090. propertyLength: {
  4091. mode: 0,
  4092. value: Value{
  4093. kind: valueNumber,
  4094. value: 2,
  4095. },
  4096. },
  4097. propertyName: {
  4098. mode: 0,
  4099. value: Value{
  4100. kind: valueString,
  4101. value: "max",
  4102. },
  4103. },
  4104. },
  4105. propertyOrder: []string{
  4106. propertyLength,
  4107. propertyName,
  4108. },
  4109. value: nativeFunctionObject{
  4110. name: "max",
  4111. call: builtinMathMax,
  4112. },
  4113. },
  4114. },
  4115. },
  4116. "min": {
  4117. mode: 0o101,
  4118. value: Value{
  4119. kind: valueObject,
  4120. value: &object{
  4121. runtime: rt,
  4122. class: classFunctionName,
  4123. objectClass: classObject,
  4124. prototype: rt.global.FunctionPrototype,
  4125. extensible: true,
  4126. property: map[string]property{
  4127. propertyLength: {
  4128. mode: 0,
  4129. value: Value{
  4130. kind: valueNumber,
  4131. value: 2,
  4132. },
  4133. },
  4134. propertyName: {
  4135. mode: 0,
  4136. value: Value{
  4137. kind: valueString,
  4138. value: "min",
  4139. },
  4140. },
  4141. },
  4142. propertyOrder: []string{
  4143. propertyLength,
  4144. propertyName,
  4145. },
  4146. value: nativeFunctionObject{
  4147. name: "min",
  4148. call: builtinMathMin,
  4149. },
  4150. },
  4151. },
  4152. },
  4153. "pow": {
  4154. mode: 0o101,
  4155. value: Value{
  4156. kind: valueObject,
  4157. value: &object{
  4158. runtime: rt,
  4159. class: classFunctionName,
  4160. objectClass: classObject,
  4161. prototype: rt.global.FunctionPrototype,
  4162. extensible: true,
  4163. property: map[string]property{
  4164. propertyLength: {
  4165. mode: 0,
  4166. value: Value{
  4167. kind: valueNumber,
  4168. value: 2,
  4169. },
  4170. },
  4171. propertyName: {
  4172. mode: 0,
  4173. value: Value{
  4174. kind: valueString,
  4175. value: "pow",
  4176. },
  4177. },
  4178. },
  4179. propertyOrder: []string{
  4180. propertyLength,
  4181. propertyName,
  4182. },
  4183. value: nativeFunctionObject{
  4184. name: "pow",
  4185. call: builtinMathPow,
  4186. },
  4187. },
  4188. },
  4189. },
  4190. "random": {
  4191. mode: 0o101,
  4192. value: Value{
  4193. kind: valueObject,
  4194. value: &object{
  4195. runtime: rt,
  4196. class: classFunctionName,
  4197. objectClass: classObject,
  4198. prototype: rt.global.FunctionPrototype,
  4199. extensible: true,
  4200. property: map[string]property{
  4201. propertyLength: {
  4202. mode: 0,
  4203. value: Value{
  4204. kind: valueNumber,
  4205. value: 0,
  4206. },
  4207. },
  4208. propertyName: {
  4209. mode: 0,
  4210. value: Value{
  4211. kind: valueString,
  4212. value: "random",
  4213. },
  4214. },
  4215. },
  4216. propertyOrder: []string{
  4217. propertyLength,
  4218. propertyName,
  4219. },
  4220. value: nativeFunctionObject{
  4221. name: "random",
  4222. call: builtinMathRandom,
  4223. },
  4224. },
  4225. },
  4226. },
  4227. "round": {
  4228. mode: 0o101,
  4229. value: Value{
  4230. kind: valueObject,
  4231. value: &object{
  4232. runtime: rt,
  4233. class: classFunctionName,
  4234. objectClass: classObject,
  4235. prototype: rt.global.FunctionPrototype,
  4236. extensible: true,
  4237. property: map[string]property{
  4238. propertyLength: {
  4239. mode: 0,
  4240. value: Value{
  4241. kind: valueNumber,
  4242. value: 1,
  4243. },
  4244. },
  4245. propertyName: {
  4246. mode: 0,
  4247. value: Value{
  4248. kind: valueString,
  4249. value: "round",
  4250. },
  4251. },
  4252. },
  4253. propertyOrder: []string{
  4254. propertyLength,
  4255. propertyName,
  4256. },
  4257. value: nativeFunctionObject{
  4258. name: "round",
  4259. call: builtinMathRound,
  4260. },
  4261. },
  4262. },
  4263. },
  4264. "sin": {
  4265. mode: 0o101,
  4266. value: Value{
  4267. kind: valueObject,
  4268. value: &object{
  4269. runtime: rt,
  4270. class: classFunctionName,
  4271. objectClass: classObject,
  4272. prototype: rt.global.FunctionPrototype,
  4273. extensible: true,
  4274. property: map[string]property{
  4275. propertyLength: {
  4276. mode: 0,
  4277. value: Value{
  4278. kind: valueNumber,
  4279. value: 1,
  4280. },
  4281. },
  4282. propertyName: {
  4283. mode: 0,
  4284. value: Value{
  4285. kind: valueString,
  4286. value: "sin",
  4287. },
  4288. },
  4289. },
  4290. propertyOrder: []string{
  4291. propertyLength,
  4292. propertyName,
  4293. },
  4294. value: nativeFunctionObject{
  4295. name: "sin",
  4296. call: builtinMathSin,
  4297. },
  4298. },
  4299. },
  4300. },
  4301. "sinh": {
  4302. mode: 0o101,
  4303. value: Value{
  4304. kind: valueObject,
  4305. value: &object{
  4306. runtime: rt,
  4307. class: classFunctionName,
  4308. objectClass: classObject,
  4309. prototype: rt.global.FunctionPrototype,
  4310. extensible: true,
  4311. property: map[string]property{
  4312. propertyLength: {
  4313. mode: 0,
  4314. value: Value{
  4315. kind: valueNumber,
  4316. value: 1,
  4317. },
  4318. },
  4319. propertyName: {
  4320. mode: 0,
  4321. value: Value{
  4322. kind: valueString,
  4323. value: "sinh",
  4324. },
  4325. },
  4326. },
  4327. propertyOrder: []string{
  4328. propertyLength,
  4329. propertyName,
  4330. },
  4331. value: nativeFunctionObject{
  4332. name: "sinh",
  4333. call: builtinMathSinh,
  4334. },
  4335. },
  4336. },
  4337. },
  4338. "sqrt": {
  4339. mode: 0o101,
  4340. value: Value{
  4341. kind: valueObject,
  4342. value: &object{
  4343. runtime: rt,
  4344. class: classFunctionName,
  4345. objectClass: classObject,
  4346. prototype: rt.global.FunctionPrototype,
  4347. extensible: true,
  4348. property: map[string]property{
  4349. propertyLength: {
  4350. mode: 0,
  4351. value: Value{
  4352. kind: valueNumber,
  4353. value: 1,
  4354. },
  4355. },
  4356. propertyName: {
  4357. mode: 0,
  4358. value: Value{
  4359. kind: valueString,
  4360. value: "sqrt",
  4361. },
  4362. },
  4363. },
  4364. propertyOrder: []string{
  4365. propertyLength,
  4366. propertyName,
  4367. },
  4368. value: nativeFunctionObject{
  4369. name: "sqrt",
  4370. call: builtinMathSqrt,
  4371. },
  4372. },
  4373. },
  4374. },
  4375. "tan": {
  4376. mode: 0o101,
  4377. value: Value{
  4378. kind: valueObject,
  4379. value: &object{
  4380. runtime: rt,
  4381. class: classFunctionName,
  4382. objectClass: classObject,
  4383. prototype: rt.global.FunctionPrototype,
  4384. extensible: true,
  4385. property: map[string]property{
  4386. propertyLength: {
  4387. mode: 0,
  4388. value: Value{
  4389. kind: valueNumber,
  4390. value: 1,
  4391. },
  4392. },
  4393. propertyName: {
  4394. mode: 0,
  4395. value: Value{
  4396. kind: valueString,
  4397. value: "tan",
  4398. },
  4399. },
  4400. },
  4401. propertyOrder: []string{
  4402. propertyLength,
  4403. propertyName,
  4404. },
  4405. value: nativeFunctionObject{
  4406. name: "tan",
  4407. call: builtinMathTan,
  4408. },
  4409. },
  4410. },
  4411. },
  4412. "tanh": {
  4413. mode: 0o101,
  4414. value: Value{
  4415. kind: valueObject,
  4416. value: &object{
  4417. runtime: rt,
  4418. class: classFunctionName,
  4419. objectClass: classObject,
  4420. prototype: rt.global.FunctionPrototype,
  4421. extensible: true,
  4422. property: map[string]property{
  4423. propertyLength: {
  4424. mode: 0,
  4425. value: Value{
  4426. kind: valueNumber,
  4427. value: 1,
  4428. },
  4429. },
  4430. propertyName: {
  4431. mode: 0,
  4432. value: Value{
  4433. kind: valueString,
  4434. value: "tanh",
  4435. },
  4436. },
  4437. },
  4438. propertyOrder: []string{
  4439. propertyLength,
  4440. propertyName,
  4441. },
  4442. value: nativeFunctionObject{
  4443. name: "tanh",
  4444. call: builtinMathTanh,
  4445. },
  4446. },
  4447. },
  4448. },
  4449. "trunc": {
  4450. mode: 0o101,
  4451. value: Value{
  4452. kind: valueObject,
  4453. value: &object{
  4454. runtime: rt,
  4455. class: classFunctionName,
  4456. objectClass: classObject,
  4457. prototype: rt.global.FunctionPrototype,
  4458. extensible: true,
  4459. property: map[string]property{
  4460. propertyLength: {
  4461. mode: 0,
  4462. value: Value{
  4463. kind: valueNumber,
  4464. value: 1,
  4465. },
  4466. },
  4467. propertyName: {
  4468. mode: 0,
  4469. value: Value{
  4470. kind: valueString,
  4471. value: "trunc",
  4472. },
  4473. },
  4474. },
  4475. propertyOrder: []string{
  4476. propertyLength,
  4477. propertyName,
  4478. },
  4479. value: nativeFunctionObject{
  4480. name: "trunc",
  4481. call: builtinMathTrunc,
  4482. },
  4483. },
  4484. },
  4485. },
  4486. "E": {
  4487. mode: 0,
  4488. value: Value{
  4489. kind: valueNumber,
  4490. value: math.E,
  4491. },
  4492. },
  4493. "LN10": {
  4494. mode: 0,
  4495. value: Value{
  4496. kind: valueNumber,
  4497. value: math.Ln10,
  4498. },
  4499. },
  4500. "LN2": {
  4501. mode: 0,
  4502. value: Value{
  4503. kind: valueNumber,
  4504. value: math.Ln2,
  4505. },
  4506. },
  4507. "LOG10E": {
  4508. mode: 0,
  4509. value: Value{
  4510. kind: valueNumber,
  4511. value: math.Log10E,
  4512. },
  4513. },
  4514. "LOG2E": {
  4515. mode: 0,
  4516. value: Value{
  4517. kind: valueNumber,
  4518. value: math.Log2E,
  4519. },
  4520. },
  4521. "PI": {
  4522. mode: 0,
  4523. value: Value{
  4524. kind: valueNumber,
  4525. value: math.Pi,
  4526. },
  4527. },
  4528. "SQRT1_2": {
  4529. mode: 0,
  4530. value: Value{
  4531. kind: valueNumber,
  4532. value: sqrt1_2,
  4533. },
  4534. },
  4535. "SQRT2": {
  4536. mode: 0,
  4537. value: Value{
  4538. kind: valueNumber,
  4539. value: math.Sqrt2,
  4540. },
  4541. },
  4542. },
  4543. propertyOrder: []string{
  4544. "abs",
  4545. "acos",
  4546. "acosh",
  4547. "asin",
  4548. "asinh",
  4549. "atan",
  4550. "atanh",
  4551. "atan2",
  4552. "cbrt",
  4553. "ceil",
  4554. "cos",
  4555. "cosh",
  4556. "exp",
  4557. "expm1",
  4558. "floor",
  4559. "log",
  4560. "log10",
  4561. "log1p",
  4562. "log2",
  4563. "max",
  4564. "min",
  4565. "pow",
  4566. "random",
  4567. "round",
  4568. "sin",
  4569. "sinh",
  4570. "sqrt",
  4571. "tan",
  4572. "tanh",
  4573. "trunc",
  4574. "E",
  4575. "LN10",
  4576. "LN2",
  4577. "LOG10E",
  4578. "LOG2E",
  4579. "PI",
  4580. "SQRT1_2",
  4581. "SQRT2",
  4582. },
  4583. }
  4584. // Date prototype.
  4585. rt.global.DatePrototype = &object{
  4586. runtime: rt,
  4587. class: classDateName,
  4588. objectClass: classObject,
  4589. prototype: rt.global.ObjectPrototype,
  4590. extensible: true,
  4591. value: prototypeValueDate,
  4592. property: map[string]property{
  4593. methodToString: {
  4594. mode: 0o101,
  4595. value: Value{
  4596. kind: valueObject,
  4597. value: &object{
  4598. runtime: rt,
  4599. class: classFunctionName,
  4600. objectClass: classObject,
  4601. prototype: rt.global.FunctionPrototype,
  4602. extensible: true,
  4603. property: map[string]property{
  4604. propertyLength: {
  4605. mode: 0,
  4606. value: Value{
  4607. kind: valueNumber,
  4608. value: 0,
  4609. },
  4610. },
  4611. propertyName: {
  4612. mode: 0,
  4613. value: Value{
  4614. kind: valueString,
  4615. value: "toString",
  4616. },
  4617. },
  4618. },
  4619. propertyOrder: []string{
  4620. propertyLength,
  4621. propertyName,
  4622. },
  4623. value: nativeFunctionObject{
  4624. name: methodToString,
  4625. call: builtinDateToString,
  4626. },
  4627. },
  4628. },
  4629. },
  4630. "toDateString": {
  4631. mode: 0o101,
  4632. value: Value{
  4633. kind: valueObject,
  4634. value: &object{
  4635. runtime: rt,
  4636. class: classFunctionName,
  4637. objectClass: classObject,
  4638. prototype: rt.global.FunctionPrototype,
  4639. extensible: true,
  4640. property: map[string]property{
  4641. propertyLength: {
  4642. mode: 0,
  4643. value: Value{
  4644. kind: valueNumber,
  4645. value: 0,
  4646. },
  4647. },
  4648. propertyName: {
  4649. mode: 0,
  4650. value: Value{
  4651. kind: valueString,
  4652. value: "toDateString",
  4653. },
  4654. },
  4655. },
  4656. propertyOrder: []string{
  4657. propertyLength,
  4658. propertyName,
  4659. },
  4660. value: nativeFunctionObject{
  4661. name: "toDateString",
  4662. call: builtinDateToDateString,
  4663. },
  4664. },
  4665. },
  4666. },
  4667. "toTimeString": {
  4668. mode: 0o101,
  4669. value: Value{
  4670. kind: valueObject,
  4671. value: &object{
  4672. runtime: rt,
  4673. class: classFunctionName,
  4674. objectClass: classObject,
  4675. prototype: rt.global.FunctionPrototype,
  4676. extensible: true,
  4677. property: map[string]property{
  4678. propertyLength: {
  4679. mode: 0,
  4680. value: Value{
  4681. kind: valueNumber,
  4682. value: 0,
  4683. },
  4684. },
  4685. propertyName: {
  4686. mode: 0,
  4687. value: Value{
  4688. kind: valueString,
  4689. value: "toTimeString",
  4690. },
  4691. },
  4692. },
  4693. propertyOrder: []string{
  4694. propertyLength,
  4695. propertyName,
  4696. },
  4697. value: nativeFunctionObject{
  4698. name: "toTimeString",
  4699. call: builtinDateToTimeString,
  4700. },
  4701. },
  4702. },
  4703. },
  4704. "toISOString": {
  4705. mode: 0o101,
  4706. value: Value{
  4707. kind: valueObject,
  4708. value: &object{
  4709. runtime: rt,
  4710. class: classFunctionName,
  4711. objectClass: classObject,
  4712. prototype: rt.global.FunctionPrototype,
  4713. extensible: true,
  4714. property: map[string]property{
  4715. propertyLength: {
  4716. mode: 0,
  4717. value: Value{
  4718. kind: valueNumber,
  4719. value: 0,
  4720. },
  4721. },
  4722. propertyName: {
  4723. mode: 0,
  4724. value: Value{
  4725. kind: valueString,
  4726. value: "toISOString",
  4727. },
  4728. },
  4729. },
  4730. propertyOrder: []string{
  4731. propertyLength,
  4732. propertyName,
  4733. },
  4734. value: nativeFunctionObject{
  4735. name: "toISOString",
  4736. call: builtinDateToISOString,
  4737. },
  4738. },
  4739. },
  4740. },
  4741. "toUTCString": {
  4742. mode: 0o101,
  4743. value: Value{
  4744. kind: valueObject,
  4745. value: &object{
  4746. runtime: rt,
  4747. class: classFunctionName,
  4748. objectClass: classObject,
  4749. prototype: rt.global.FunctionPrototype,
  4750. extensible: true,
  4751. property: map[string]property{
  4752. propertyLength: {
  4753. mode: 0,
  4754. value: Value{
  4755. kind: valueNumber,
  4756. value: 0,
  4757. },
  4758. },
  4759. propertyName: {
  4760. mode: 0,
  4761. value: Value{
  4762. kind: valueString,
  4763. value: "toUTCString",
  4764. },
  4765. },
  4766. },
  4767. propertyOrder: []string{
  4768. propertyLength,
  4769. propertyName,
  4770. },
  4771. value: nativeFunctionObject{
  4772. name: "toUTCString",
  4773. call: builtinDateToUTCString,
  4774. },
  4775. },
  4776. },
  4777. },
  4778. "toGMTString": {
  4779. mode: 0o101,
  4780. value: Value{
  4781. kind: valueObject,
  4782. value: &object{
  4783. runtime: rt,
  4784. class: classFunctionName,
  4785. objectClass: classObject,
  4786. prototype: rt.global.FunctionPrototype,
  4787. extensible: true,
  4788. property: map[string]property{
  4789. propertyLength: {
  4790. mode: 0,
  4791. value: Value{
  4792. kind: valueNumber,
  4793. value: 0,
  4794. },
  4795. },
  4796. propertyName: {
  4797. mode: 0,
  4798. value: Value{
  4799. kind: valueString,
  4800. value: "toGMTString",
  4801. },
  4802. },
  4803. },
  4804. propertyOrder: []string{
  4805. propertyLength,
  4806. propertyName,
  4807. },
  4808. value: nativeFunctionObject{
  4809. name: "toGMTString",
  4810. call: builtinDateToGMTString,
  4811. },
  4812. },
  4813. },
  4814. },
  4815. "getDate": {
  4816. mode: 0o101,
  4817. value: Value{
  4818. kind: valueObject,
  4819. value: &object{
  4820. runtime: rt,
  4821. class: classFunctionName,
  4822. objectClass: classObject,
  4823. prototype: rt.global.FunctionPrototype,
  4824. extensible: true,
  4825. property: map[string]property{
  4826. propertyLength: {
  4827. mode: 0,
  4828. value: Value{
  4829. kind: valueNumber,
  4830. value: 0,
  4831. },
  4832. },
  4833. propertyName: {
  4834. mode: 0,
  4835. value: Value{
  4836. kind: valueString,
  4837. value: "getDate",
  4838. },
  4839. },
  4840. },
  4841. propertyOrder: []string{
  4842. propertyLength,
  4843. propertyName,
  4844. },
  4845. value: nativeFunctionObject{
  4846. name: "getDate",
  4847. call: builtinDateGetDate,
  4848. },
  4849. },
  4850. },
  4851. },
  4852. "setDate": {
  4853. mode: 0o101,
  4854. value: Value{
  4855. kind: valueObject,
  4856. value: &object{
  4857. runtime: rt,
  4858. class: classFunctionName,
  4859. objectClass: classObject,
  4860. prototype: rt.global.FunctionPrototype,
  4861. extensible: true,
  4862. property: map[string]property{
  4863. propertyLength: {
  4864. mode: 0,
  4865. value: Value{
  4866. kind: valueNumber,
  4867. value: 1,
  4868. },
  4869. },
  4870. propertyName: {
  4871. mode: 0,
  4872. value: Value{
  4873. kind: valueString,
  4874. value: "setDate",
  4875. },
  4876. },
  4877. },
  4878. propertyOrder: []string{
  4879. propertyLength,
  4880. propertyName,
  4881. },
  4882. value: nativeFunctionObject{
  4883. name: "setDate",
  4884. call: builtinDateSetDate,
  4885. },
  4886. },
  4887. },
  4888. },
  4889. "getDay": {
  4890. mode: 0o101,
  4891. value: Value{
  4892. kind: valueObject,
  4893. value: &object{
  4894. runtime: rt,
  4895. class: classFunctionName,
  4896. objectClass: classObject,
  4897. prototype: rt.global.FunctionPrototype,
  4898. extensible: true,
  4899. property: map[string]property{
  4900. propertyLength: {
  4901. mode: 0,
  4902. value: Value{
  4903. kind: valueNumber,
  4904. value: 0,
  4905. },
  4906. },
  4907. propertyName: {
  4908. mode: 0,
  4909. value: Value{
  4910. kind: valueString,
  4911. value: "getDay",
  4912. },
  4913. },
  4914. },
  4915. propertyOrder: []string{
  4916. propertyLength,
  4917. propertyName,
  4918. },
  4919. value: nativeFunctionObject{
  4920. name: "getDay",
  4921. call: builtinDateGetDay,
  4922. },
  4923. },
  4924. },
  4925. },
  4926. "getFullYear": {
  4927. mode: 0o101,
  4928. value: Value{
  4929. kind: valueObject,
  4930. value: &object{
  4931. runtime: rt,
  4932. class: classFunctionName,
  4933. objectClass: classObject,
  4934. prototype: rt.global.FunctionPrototype,
  4935. extensible: true,
  4936. property: map[string]property{
  4937. propertyLength: {
  4938. mode: 0,
  4939. value: Value{
  4940. kind: valueNumber,
  4941. value: 0,
  4942. },
  4943. },
  4944. propertyName: {
  4945. mode: 0,
  4946. value: Value{
  4947. kind: valueString,
  4948. value: "getFullYear",
  4949. },
  4950. },
  4951. },
  4952. propertyOrder: []string{
  4953. propertyLength,
  4954. propertyName,
  4955. },
  4956. value: nativeFunctionObject{
  4957. name: "getFullYear",
  4958. call: builtinDateGetFullYear,
  4959. },
  4960. },
  4961. },
  4962. },
  4963. "setFullYear": {
  4964. mode: 0o101,
  4965. value: Value{
  4966. kind: valueObject,
  4967. value: &object{
  4968. runtime: rt,
  4969. class: classFunctionName,
  4970. objectClass: classObject,
  4971. prototype: rt.global.FunctionPrototype,
  4972. extensible: true,
  4973. property: map[string]property{
  4974. propertyLength: {
  4975. mode: 0,
  4976. value: Value{
  4977. kind: valueNumber,
  4978. value: 3,
  4979. },
  4980. },
  4981. propertyName: {
  4982. mode: 0,
  4983. value: Value{
  4984. kind: valueString,
  4985. value: "setFullYear",
  4986. },
  4987. },
  4988. },
  4989. propertyOrder: []string{
  4990. propertyLength,
  4991. propertyName,
  4992. },
  4993. value: nativeFunctionObject{
  4994. name: "setFullYear",
  4995. call: builtinDateSetFullYear,
  4996. },
  4997. },
  4998. },
  4999. },
  5000. "getHours": {
  5001. mode: 0o101,
  5002. value: Value{
  5003. kind: valueObject,
  5004. value: &object{
  5005. runtime: rt,
  5006. class: classFunctionName,
  5007. objectClass: classObject,
  5008. prototype: rt.global.FunctionPrototype,
  5009. extensible: true,
  5010. property: map[string]property{
  5011. propertyLength: {
  5012. mode: 0,
  5013. value: Value{
  5014. kind: valueNumber,
  5015. value: 0,
  5016. },
  5017. },
  5018. propertyName: {
  5019. mode: 0,
  5020. value: Value{
  5021. kind: valueString,
  5022. value: "getHours",
  5023. },
  5024. },
  5025. },
  5026. propertyOrder: []string{
  5027. propertyLength,
  5028. propertyName,
  5029. },
  5030. value: nativeFunctionObject{
  5031. name: "getHours",
  5032. call: builtinDateGetHours,
  5033. },
  5034. },
  5035. },
  5036. },
  5037. "setHours": {
  5038. mode: 0o101,
  5039. value: Value{
  5040. kind: valueObject,
  5041. value: &object{
  5042. runtime: rt,
  5043. class: classFunctionName,
  5044. objectClass: classObject,
  5045. prototype: rt.global.FunctionPrototype,
  5046. extensible: true,
  5047. property: map[string]property{
  5048. propertyLength: {
  5049. mode: 0,
  5050. value: Value{
  5051. kind: valueNumber,
  5052. value: 4,
  5053. },
  5054. },
  5055. propertyName: {
  5056. mode: 0,
  5057. value: Value{
  5058. kind: valueString,
  5059. value: "setHours",
  5060. },
  5061. },
  5062. },
  5063. propertyOrder: []string{
  5064. propertyLength,
  5065. propertyName,
  5066. },
  5067. value: nativeFunctionObject{
  5068. name: "setHours",
  5069. call: builtinDateSetHours,
  5070. },
  5071. },
  5072. },
  5073. },
  5074. "getMilliseconds": {
  5075. mode: 0o101,
  5076. value: Value{
  5077. kind: valueObject,
  5078. value: &object{
  5079. runtime: rt,
  5080. class: classFunctionName,
  5081. objectClass: classObject,
  5082. prototype: rt.global.FunctionPrototype,
  5083. extensible: true,
  5084. property: map[string]property{
  5085. propertyLength: {
  5086. mode: 0,
  5087. value: Value{
  5088. kind: valueNumber,
  5089. value: 0,
  5090. },
  5091. },
  5092. propertyName: {
  5093. mode: 0,
  5094. value: Value{
  5095. kind: valueString,
  5096. value: "getMilliseconds",
  5097. },
  5098. },
  5099. },
  5100. propertyOrder: []string{
  5101. propertyLength,
  5102. propertyName,
  5103. },
  5104. value: nativeFunctionObject{
  5105. name: "getMilliseconds",
  5106. call: builtinDateGetMilliseconds,
  5107. },
  5108. },
  5109. },
  5110. },
  5111. "setMilliseconds": {
  5112. mode: 0o101,
  5113. value: Value{
  5114. kind: valueObject,
  5115. value: &object{
  5116. runtime: rt,
  5117. class: classFunctionName,
  5118. objectClass: classObject,
  5119. prototype: rt.global.FunctionPrototype,
  5120. extensible: true,
  5121. property: map[string]property{
  5122. propertyLength: {
  5123. mode: 0,
  5124. value: Value{
  5125. kind: valueNumber,
  5126. value: 1,
  5127. },
  5128. },
  5129. propertyName: {
  5130. mode: 0,
  5131. value: Value{
  5132. kind: valueString,
  5133. value: "setMilliseconds",
  5134. },
  5135. },
  5136. },
  5137. propertyOrder: []string{
  5138. propertyLength,
  5139. propertyName,
  5140. },
  5141. value: nativeFunctionObject{
  5142. name: "setMilliseconds",
  5143. call: builtinDateSetMilliseconds,
  5144. },
  5145. },
  5146. },
  5147. },
  5148. "getMinutes": {
  5149. mode: 0o101,
  5150. value: Value{
  5151. kind: valueObject,
  5152. value: &object{
  5153. runtime: rt,
  5154. class: classFunctionName,
  5155. objectClass: classObject,
  5156. prototype: rt.global.FunctionPrototype,
  5157. extensible: true,
  5158. property: map[string]property{
  5159. propertyLength: {
  5160. mode: 0,
  5161. value: Value{
  5162. kind: valueNumber,
  5163. value: 0,
  5164. },
  5165. },
  5166. propertyName: {
  5167. mode: 0,
  5168. value: Value{
  5169. kind: valueString,
  5170. value: "getMinutes",
  5171. },
  5172. },
  5173. },
  5174. propertyOrder: []string{
  5175. propertyLength,
  5176. propertyName,
  5177. },
  5178. value: nativeFunctionObject{
  5179. name: "getMinutes",
  5180. call: builtinDateGetMinutes,
  5181. },
  5182. },
  5183. },
  5184. },
  5185. "setMinutes": {
  5186. mode: 0o101,
  5187. value: Value{
  5188. kind: valueObject,
  5189. value: &object{
  5190. runtime: rt,
  5191. class: classFunctionName,
  5192. objectClass: classObject,
  5193. prototype: rt.global.FunctionPrototype,
  5194. extensible: true,
  5195. property: map[string]property{
  5196. propertyLength: {
  5197. mode: 0,
  5198. value: Value{
  5199. kind: valueNumber,
  5200. value: 3,
  5201. },
  5202. },
  5203. propertyName: {
  5204. mode: 0,
  5205. value: Value{
  5206. kind: valueString,
  5207. value: "setMinutes",
  5208. },
  5209. },
  5210. },
  5211. propertyOrder: []string{
  5212. propertyLength,
  5213. propertyName,
  5214. },
  5215. value: nativeFunctionObject{
  5216. name: "setMinutes",
  5217. call: builtinDateSetMinutes,
  5218. },
  5219. },
  5220. },
  5221. },
  5222. "getMonth": {
  5223. mode: 0o101,
  5224. value: Value{
  5225. kind: valueObject,
  5226. value: &object{
  5227. runtime: rt,
  5228. class: classFunctionName,
  5229. objectClass: classObject,
  5230. prototype: rt.global.FunctionPrototype,
  5231. extensible: true,
  5232. property: map[string]property{
  5233. propertyLength: {
  5234. mode: 0,
  5235. value: Value{
  5236. kind: valueNumber,
  5237. value: 0,
  5238. },
  5239. },
  5240. propertyName: {
  5241. mode: 0,
  5242. value: Value{
  5243. kind: valueString,
  5244. value: "getMonth",
  5245. },
  5246. },
  5247. },
  5248. propertyOrder: []string{
  5249. propertyLength,
  5250. propertyName,
  5251. },
  5252. value: nativeFunctionObject{
  5253. name: "getMonth",
  5254. call: builtinDateGetMonth,
  5255. },
  5256. },
  5257. },
  5258. },
  5259. "setMonth": {
  5260. mode: 0o101,
  5261. value: Value{
  5262. kind: valueObject,
  5263. value: &object{
  5264. runtime: rt,
  5265. class: classFunctionName,
  5266. objectClass: classObject,
  5267. prototype: rt.global.FunctionPrototype,
  5268. extensible: true,
  5269. property: map[string]property{
  5270. propertyLength: {
  5271. mode: 0,
  5272. value: Value{
  5273. kind: valueNumber,
  5274. value: 2,
  5275. },
  5276. },
  5277. propertyName: {
  5278. mode: 0,
  5279. value: Value{
  5280. kind: valueString,
  5281. value: "setMonth",
  5282. },
  5283. },
  5284. },
  5285. propertyOrder: []string{
  5286. propertyLength,
  5287. propertyName,
  5288. },
  5289. value: nativeFunctionObject{
  5290. name: "setMonth",
  5291. call: builtinDateSetMonth,
  5292. },
  5293. },
  5294. },
  5295. },
  5296. "getSeconds": {
  5297. mode: 0o101,
  5298. value: Value{
  5299. kind: valueObject,
  5300. value: &object{
  5301. runtime: rt,
  5302. class: classFunctionName,
  5303. objectClass: classObject,
  5304. prototype: rt.global.FunctionPrototype,
  5305. extensible: true,
  5306. property: map[string]property{
  5307. propertyLength: {
  5308. mode: 0,
  5309. value: Value{
  5310. kind: valueNumber,
  5311. value: 0,
  5312. },
  5313. },
  5314. propertyName: {
  5315. mode: 0,
  5316. value: Value{
  5317. kind: valueString,
  5318. value: "getSeconds",
  5319. },
  5320. },
  5321. },
  5322. propertyOrder: []string{
  5323. propertyLength,
  5324. propertyName,
  5325. },
  5326. value: nativeFunctionObject{
  5327. name: "getSeconds",
  5328. call: builtinDateGetSeconds,
  5329. },
  5330. },
  5331. },
  5332. },
  5333. "setSeconds": {
  5334. mode: 0o101,
  5335. value: Value{
  5336. kind: valueObject,
  5337. value: &object{
  5338. runtime: rt,
  5339. class: classFunctionName,
  5340. objectClass: classObject,
  5341. prototype: rt.global.FunctionPrototype,
  5342. extensible: true,
  5343. property: map[string]property{
  5344. propertyLength: {
  5345. mode: 0,
  5346. value: Value{
  5347. kind: valueNumber,
  5348. value: 2,
  5349. },
  5350. },
  5351. propertyName: {
  5352. mode: 0,
  5353. value: Value{
  5354. kind: valueString,
  5355. value: "setSeconds",
  5356. },
  5357. },
  5358. },
  5359. propertyOrder: []string{
  5360. propertyLength,
  5361. propertyName,
  5362. },
  5363. value: nativeFunctionObject{
  5364. name: "setSeconds",
  5365. call: builtinDateSetSeconds,
  5366. },
  5367. },
  5368. },
  5369. },
  5370. "getTime": {
  5371. mode: 0o101,
  5372. value: Value{
  5373. kind: valueObject,
  5374. value: &object{
  5375. runtime: rt,
  5376. class: classFunctionName,
  5377. objectClass: classObject,
  5378. prototype: rt.global.FunctionPrototype,
  5379. extensible: true,
  5380. property: map[string]property{
  5381. propertyLength: {
  5382. mode: 0,
  5383. value: Value{
  5384. kind: valueNumber,
  5385. value: 0,
  5386. },
  5387. },
  5388. propertyName: {
  5389. mode: 0,
  5390. value: Value{
  5391. kind: valueString,
  5392. value: "getTime",
  5393. },
  5394. },
  5395. },
  5396. propertyOrder: []string{
  5397. propertyLength,
  5398. propertyName,
  5399. },
  5400. value: nativeFunctionObject{
  5401. name: "getTime",
  5402. call: builtinDateGetTime,
  5403. },
  5404. },
  5405. },
  5406. },
  5407. "setTime": {
  5408. mode: 0o101,
  5409. value: Value{
  5410. kind: valueObject,
  5411. value: &object{
  5412. runtime: rt,
  5413. class: classFunctionName,
  5414. objectClass: classObject,
  5415. prototype: rt.global.FunctionPrototype,
  5416. extensible: true,
  5417. property: map[string]property{
  5418. propertyLength: {
  5419. mode: 0,
  5420. value: Value{
  5421. kind: valueNumber,
  5422. value: 1,
  5423. },
  5424. },
  5425. propertyName: {
  5426. mode: 0,
  5427. value: Value{
  5428. kind: valueString,
  5429. value: "setTime",
  5430. },
  5431. },
  5432. },
  5433. propertyOrder: []string{
  5434. propertyLength,
  5435. propertyName,
  5436. },
  5437. value: nativeFunctionObject{
  5438. name: "setTime",
  5439. call: builtinDateSetTime,
  5440. },
  5441. },
  5442. },
  5443. },
  5444. "getTimezoneOffset": {
  5445. mode: 0o101,
  5446. value: Value{
  5447. kind: valueObject,
  5448. value: &object{
  5449. runtime: rt,
  5450. class: classFunctionName,
  5451. objectClass: classObject,
  5452. prototype: rt.global.FunctionPrototype,
  5453. extensible: true,
  5454. property: map[string]property{
  5455. propertyLength: {
  5456. mode: 0,
  5457. value: Value{
  5458. kind: valueNumber,
  5459. value: 0,
  5460. },
  5461. },
  5462. propertyName: {
  5463. mode: 0,
  5464. value: Value{
  5465. kind: valueString,
  5466. value: "getTimezoneOffset",
  5467. },
  5468. },
  5469. },
  5470. propertyOrder: []string{
  5471. propertyLength,
  5472. propertyName,
  5473. },
  5474. value: nativeFunctionObject{
  5475. name: "getTimezoneOffset",
  5476. call: builtinDateGetTimezoneOffset,
  5477. },
  5478. },
  5479. },
  5480. },
  5481. "getUTCDate": {
  5482. mode: 0o101,
  5483. value: Value{
  5484. kind: valueObject,
  5485. value: &object{
  5486. runtime: rt,
  5487. class: classFunctionName,
  5488. objectClass: classObject,
  5489. prototype: rt.global.FunctionPrototype,
  5490. extensible: true,
  5491. property: map[string]property{
  5492. propertyLength: {
  5493. mode: 0,
  5494. value: Value{
  5495. kind: valueNumber,
  5496. value: 0,
  5497. },
  5498. },
  5499. propertyName: {
  5500. mode: 0,
  5501. value: Value{
  5502. kind: valueString,
  5503. value: "getUTCDate",
  5504. },
  5505. },
  5506. },
  5507. propertyOrder: []string{
  5508. propertyLength,
  5509. propertyName,
  5510. },
  5511. value: nativeFunctionObject{
  5512. name: "getUTCDate",
  5513. call: builtinDateGetUTCDate,
  5514. },
  5515. },
  5516. },
  5517. },
  5518. "setUTCDate": {
  5519. mode: 0o101,
  5520. value: Value{
  5521. kind: valueObject,
  5522. value: &object{
  5523. runtime: rt,
  5524. class: classFunctionName,
  5525. objectClass: classObject,
  5526. prototype: rt.global.FunctionPrototype,
  5527. extensible: true,
  5528. property: map[string]property{
  5529. propertyLength: {
  5530. mode: 0,
  5531. value: Value{
  5532. kind: valueNumber,
  5533. value: 1,
  5534. },
  5535. },
  5536. propertyName: {
  5537. mode: 0,
  5538. value: Value{
  5539. kind: valueString,
  5540. value: "setUTCDate",
  5541. },
  5542. },
  5543. },
  5544. propertyOrder: []string{
  5545. propertyLength,
  5546. propertyName,
  5547. },
  5548. value: nativeFunctionObject{
  5549. name: "setUTCDate",
  5550. call: builtinDateSetUTCDate,
  5551. },
  5552. },
  5553. },
  5554. },
  5555. "getUTCDay": {
  5556. mode: 0o101,
  5557. value: Value{
  5558. kind: valueObject,
  5559. value: &object{
  5560. runtime: rt,
  5561. class: classFunctionName,
  5562. objectClass: classObject,
  5563. prototype: rt.global.FunctionPrototype,
  5564. extensible: true,
  5565. property: map[string]property{
  5566. propertyLength: {
  5567. mode: 0,
  5568. value: Value{
  5569. kind: valueNumber,
  5570. value: 0,
  5571. },
  5572. },
  5573. propertyName: {
  5574. mode: 0,
  5575. value: Value{
  5576. kind: valueString,
  5577. value: "getUTCDay",
  5578. },
  5579. },
  5580. },
  5581. propertyOrder: []string{
  5582. propertyLength,
  5583. propertyName,
  5584. },
  5585. value: nativeFunctionObject{
  5586. name: "getUTCDay",
  5587. call: builtinDateGetUTCDay,
  5588. },
  5589. },
  5590. },
  5591. },
  5592. "getUTCFullYear": {
  5593. mode: 0o101,
  5594. value: Value{
  5595. kind: valueObject,
  5596. value: &object{
  5597. runtime: rt,
  5598. class: classFunctionName,
  5599. objectClass: classObject,
  5600. prototype: rt.global.FunctionPrototype,
  5601. extensible: true,
  5602. property: map[string]property{
  5603. propertyLength: {
  5604. mode: 0,
  5605. value: Value{
  5606. kind: valueNumber,
  5607. value: 0,
  5608. },
  5609. },
  5610. propertyName: {
  5611. mode: 0,
  5612. value: Value{
  5613. kind: valueString,
  5614. value: "getUTCFullYear",
  5615. },
  5616. },
  5617. },
  5618. propertyOrder: []string{
  5619. propertyLength,
  5620. propertyName,
  5621. },
  5622. value: nativeFunctionObject{
  5623. name: "getUTCFullYear",
  5624. call: builtinDateGetUTCFullYear,
  5625. },
  5626. },
  5627. },
  5628. },
  5629. "setUTCFullYear": {
  5630. mode: 0o101,
  5631. value: Value{
  5632. kind: valueObject,
  5633. value: &object{
  5634. runtime: rt,
  5635. class: classFunctionName,
  5636. objectClass: classObject,
  5637. prototype: rt.global.FunctionPrototype,
  5638. extensible: true,
  5639. property: map[string]property{
  5640. propertyLength: {
  5641. mode: 0,
  5642. value: Value{
  5643. kind: valueNumber,
  5644. value: 3,
  5645. },
  5646. },
  5647. propertyName: {
  5648. mode: 0,
  5649. value: Value{
  5650. kind: valueString,
  5651. value: "setUTCFullYear",
  5652. },
  5653. },
  5654. },
  5655. propertyOrder: []string{
  5656. propertyLength,
  5657. propertyName,
  5658. },
  5659. value: nativeFunctionObject{
  5660. name: "setUTCFullYear",
  5661. call: builtinDateSetUTCFullYear,
  5662. },
  5663. },
  5664. },
  5665. },
  5666. "getUTCHours": {
  5667. mode: 0o101,
  5668. value: Value{
  5669. kind: valueObject,
  5670. value: &object{
  5671. runtime: rt,
  5672. class: classFunctionName,
  5673. objectClass: classObject,
  5674. prototype: rt.global.FunctionPrototype,
  5675. extensible: true,
  5676. property: map[string]property{
  5677. propertyLength: {
  5678. mode: 0,
  5679. value: Value{
  5680. kind: valueNumber,
  5681. value: 0,
  5682. },
  5683. },
  5684. propertyName: {
  5685. mode: 0,
  5686. value: Value{
  5687. kind: valueString,
  5688. value: "getUTCHours",
  5689. },
  5690. },
  5691. },
  5692. propertyOrder: []string{
  5693. propertyLength,
  5694. propertyName,
  5695. },
  5696. value: nativeFunctionObject{
  5697. name: "getUTCHours",
  5698. call: builtinDateGetUTCHours,
  5699. },
  5700. },
  5701. },
  5702. },
  5703. "setUTCHours": {
  5704. mode: 0o101,
  5705. value: Value{
  5706. kind: valueObject,
  5707. value: &object{
  5708. runtime: rt,
  5709. class: classFunctionName,
  5710. objectClass: classObject,
  5711. prototype: rt.global.FunctionPrototype,
  5712. extensible: true,
  5713. property: map[string]property{
  5714. propertyLength: {
  5715. mode: 0,
  5716. value: Value{
  5717. kind: valueNumber,
  5718. value: 4,
  5719. },
  5720. },
  5721. propertyName: {
  5722. mode: 0,
  5723. value: Value{
  5724. kind: valueString,
  5725. value: "setUTCHours",
  5726. },
  5727. },
  5728. },
  5729. propertyOrder: []string{
  5730. propertyLength,
  5731. propertyName,
  5732. },
  5733. value: nativeFunctionObject{
  5734. name: "setUTCHours",
  5735. call: builtinDateSetUTCHours,
  5736. },
  5737. },
  5738. },
  5739. },
  5740. "getUTCMilliseconds": {
  5741. mode: 0o101,
  5742. value: Value{
  5743. kind: valueObject,
  5744. value: &object{
  5745. runtime: rt,
  5746. class: classFunctionName,
  5747. objectClass: classObject,
  5748. prototype: rt.global.FunctionPrototype,
  5749. extensible: true,
  5750. property: map[string]property{
  5751. propertyLength: {
  5752. mode: 0,
  5753. value: Value{
  5754. kind: valueNumber,
  5755. value: 0,
  5756. },
  5757. },
  5758. propertyName: {
  5759. mode: 0,
  5760. value: Value{
  5761. kind: valueString,
  5762. value: "getUTCMilliseconds",
  5763. },
  5764. },
  5765. },
  5766. propertyOrder: []string{
  5767. propertyLength,
  5768. propertyName,
  5769. },
  5770. value: nativeFunctionObject{
  5771. name: "getUTCMilliseconds",
  5772. call: builtinDateGetUTCMilliseconds,
  5773. },
  5774. },
  5775. },
  5776. },
  5777. "setUTCMilliseconds": {
  5778. mode: 0o101,
  5779. value: Value{
  5780. kind: valueObject,
  5781. value: &object{
  5782. runtime: rt,
  5783. class: classFunctionName,
  5784. objectClass: classObject,
  5785. prototype: rt.global.FunctionPrototype,
  5786. extensible: true,
  5787. property: map[string]property{
  5788. propertyLength: {
  5789. mode: 0,
  5790. value: Value{
  5791. kind: valueNumber,
  5792. value: 1,
  5793. },
  5794. },
  5795. propertyName: {
  5796. mode: 0,
  5797. value: Value{
  5798. kind: valueString,
  5799. value: "setUTCMilliseconds",
  5800. },
  5801. },
  5802. },
  5803. propertyOrder: []string{
  5804. propertyLength,
  5805. propertyName,
  5806. },
  5807. value: nativeFunctionObject{
  5808. name: "setUTCMilliseconds",
  5809. call: builtinDateSetUTCMilliseconds,
  5810. },
  5811. },
  5812. },
  5813. },
  5814. "getUTCMinutes": {
  5815. mode: 0o101,
  5816. value: Value{
  5817. kind: valueObject,
  5818. value: &object{
  5819. runtime: rt,
  5820. class: classFunctionName,
  5821. objectClass: classObject,
  5822. prototype: rt.global.FunctionPrototype,
  5823. extensible: true,
  5824. property: map[string]property{
  5825. propertyLength: {
  5826. mode: 0,
  5827. value: Value{
  5828. kind: valueNumber,
  5829. value: 0,
  5830. },
  5831. },
  5832. propertyName: {
  5833. mode: 0,
  5834. value: Value{
  5835. kind: valueString,
  5836. value: "getUTCMinutes",
  5837. },
  5838. },
  5839. },
  5840. propertyOrder: []string{
  5841. propertyLength,
  5842. propertyName,
  5843. },
  5844. value: nativeFunctionObject{
  5845. name: "getUTCMinutes",
  5846. call: builtinDateGetUTCMinutes,
  5847. },
  5848. },
  5849. },
  5850. },
  5851. "setUTCMinutes": {
  5852. mode: 0o101,
  5853. value: Value{
  5854. kind: valueObject,
  5855. value: &object{
  5856. runtime: rt,
  5857. class: classFunctionName,
  5858. objectClass: classObject,
  5859. prototype: rt.global.FunctionPrototype,
  5860. extensible: true,
  5861. property: map[string]property{
  5862. propertyLength: {
  5863. mode: 0,
  5864. value: Value{
  5865. kind: valueNumber,
  5866. value: 3,
  5867. },
  5868. },
  5869. propertyName: {
  5870. mode: 0,
  5871. value: Value{
  5872. kind: valueString,
  5873. value: "setUTCMinutes",
  5874. },
  5875. },
  5876. },
  5877. propertyOrder: []string{
  5878. propertyLength,
  5879. propertyName,
  5880. },
  5881. value: nativeFunctionObject{
  5882. name: "setUTCMinutes",
  5883. call: builtinDateSetUTCMinutes,
  5884. },
  5885. },
  5886. },
  5887. },
  5888. "getUTCMonth": {
  5889. mode: 0o101,
  5890. value: Value{
  5891. kind: valueObject,
  5892. value: &object{
  5893. runtime: rt,
  5894. class: classFunctionName,
  5895. objectClass: classObject,
  5896. prototype: rt.global.FunctionPrototype,
  5897. extensible: true,
  5898. property: map[string]property{
  5899. propertyLength: {
  5900. mode: 0,
  5901. value: Value{
  5902. kind: valueNumber,
  5903. value: 0,
  5904. },
  5905. },
  5906. propertyName: {
  5907. mode: 0,
  5908. value: Value{
  5909. kind: valueString,
  5910. value: "getUTCMonth",
  5911. },
  5912. },
  5913. },
  5914. propertyOrder: []string{
  5915. propertyLength,
  5916. propertyName,
  5917. },
  5918. value: nativeFunctionObject{
  5919. name: "getUTCMonth",
  5920. call: builtinDateGetUTCMonth,
  5921. },
  5922. },
  5923. },
  5924. },
  5925. "setUTCMonth": {
  5926. mode: 0o101,
  5927. value: Value{
  5928. kind: valueObject,
  5929. value: &object{
  5930. runtime: rt,
  5931. class: classFunctionName,
  5932. objectClass: classObject,
  5933. prototype: rt.global.FunctionPrototype,
  5934. extensible: true,
  5935. property: map[string]property{
  5936. propertyLength: {
  5937. mode: 0,
  5938. value: Value{
  5939. kind: valueNumber,
  5940. value: 2,
  5941. },
  5942. },
  5943. propertyName: {
  5944. mode: 0,
  5945. value: Value{
  5946. kind: valueString,
  5947. value: "setUTCMonth",
  5948. },
  5949. },
  5950. },
  5951. propertyOrder: []string{
  5952. propertyLength,
  5953. propertyName,
  5954. },
  5955. value: nativeFunctionObject{
  5956. name: "setUTCMonth",
  5957. call: builtinDateSetUTCMonth,
  5958. },
  5959. },
  5960. },
  5961. },
  5962. "getUTCSeconds": {
  5963. mode: 0o101,
  5964. value: Value{
  5965. kind: valueObject,
  5966. value: &object{
  5967. runtime: rt,
  5968. class: classFunctionName,
  5969. objectClass: classObject,
  5970. prototype: rt.global.FunctionPrototype,
  5971. extensible: true,
  5972. property: map[string]property{
  5973. propertyLength: {
  5974. mode: 0,
  5975. value: Value{
  5976. kind: valueNumber,
  5977. value: 0,
  5978. },
  5979. },
  5980. propertyName: {
  5981. mode: 0,
  5982. value: Value{
  5983. kind: valueString,
  5984. value: "getUTCSeconds",
  5985. },
  5986. },
  5987. },
  5988. propertyOrder: []string{
  5989. propertyLength,
  5990. propertyName,
  5991. },
  5992. value: nativeFunctionObject{
  5993. name: "getUTCSeconds",
  5994. call: builtinDateGetUTCSeconds,
  5995. },
  5996. },
  5997. },
  5998. },
  5999. "setUTCSeconds": {
  6000. mode: 0o101,
  6001. value: Value{
  6002. kind: valueObject,
  6003. value: &object{
  6004. runtime: rt,
  6005. class: classFunctionName,
  6006. objectClass: classObject,
  6007. prototype: rt.global.FunctionPrototype,
  6008. extensible: true,
  6009. property: map[string]property{
  6010. propertyLength: {
  6011. mode: 0,
  6012. value: Value{
  6013. kind: valueNumber,
  6014. value: 2,
  6015. },
  6016. },
  6017. propertyName: {
  6018. mode: 0,
  6019. value: Value{
  6020. kind: valueString,
  6021. value: "setUTCSeconds",
  6022. },
  6023. },
  6024. },
  6025. propertyOrder: []string{
  6026. propertyLength,
  6027. propertyName,
  6028. },
  6029. value: nativeFunctionObject{
  6030. name: "setUTCSeconds",
  6031. call: builtinDateSetUTCSeconds,
  6032. },
  6033. },
  6034. },
  6035. },
  6036. "valueOf": {
  6037. mode: 0o101,
  6038. value: Value{
  6039. kind: valueObject,
  6040. value: &object{
  6041. runtime: rt,
  6042. class: classFunctionName,
  6043. objectClass: classObject,
  6044. prototype: rt.global.FunctionPrototype,
  6045. extensible: true,
  6046. property: map[string]property{
  6047. propertyLength: {
  6048. mode: 0,
  6049. value: Value{
  6050. kind: valueNumber,
  6051. value: 0,
  6052. },
  6053. },
  6054. propertyName: {
  6055. mode: 0,
  6056. value: Value{
  6057. kind: valueString,
  6058. value: "valueOf",
  6059. },
  6060. },
  6061. },
  6062. propertyOrder: []string{
  6063. propertyLength,
  6064. propertyName,
  6065. },
  6066. value: nativeFunctionObject{
  6067. name: "valueOf",
  6068. call: builtinDateValueOf,
  6069. },
  6070. },
  6071. },
  6072. },
  6073. "getYear": {
  6074. mode: 0o101,
  6075. value: Value{
  6076. kind: valueObject,
  6077. value: &object{
  6078. runtime: rt,
  6079. class: classFunctionName,
  6080. objectClass: classObject,
  6081. prototype: rt.global.FunctionPrototype,
  6082. extensible: true,
  6083. property: map[string]property{
  6084. propertyLength: {
  6085. mode: 0,
  6086. value: Value{
  6087. kind: valueNumber,
  6088. value: 0,
  6089. },
  6090. },
  6091. propertyName: {
  6092. mode: 0,
  6093. value: Value{
  6094. kind: valueString,
  6095. value: "getYear",
  6096. },
  6097. },
  6098. },
  6099. propertyOrder: []string{
  6100. propertyLength,
  6101. propertyName,
  6102. },
  6103. value: nativeFunctionObject{
  6104. name: "getYear",
  6105. call: builtinDateGetYear,
  6106. },
  6107. },
  6108. },
  6109. },
  6110. "setYear": {
  6111. mode: 0o101,
  6112. value: Value{
  6113. kind: valueObject,
  6114. value: &object{
  6115. runtime: rt,
  6116. class: classFunctionName,
  6117. objectClass: classObject,
  6118. prototype: rt.global.FunctionPrototype,
  6119. extensible: true,
  6120. property: map[string]property{
  6121. propertyLength: {
  6122. mode: 0,
  6123. value: Value{
  6124. kind: valueNumber,
  6125. value: 1,
  6126. },
  6127. },
  6128. propertyName: {
  6129. mode: 0,
  6130. value: Value{
  6131. kind: valueString,
  6132. value: "setYear",
  6133. },
  6134. },
  6135. },
  6136. propertyOrder: []string{
  6137. propertyLength,
  6138. propertyName,
  6139. },
  6140. value: nativeFunctionObject{
  6141. name: "setYear",
  6142. call: builtinDateSetYear,
  6143. },
  6144. },
  6145. },
  6146. },
  6147. "toJSON": {
  6148. mode: 0o101,
  6149. value: Value{
  6150. kind: valueObject,
  6151. value: &object{
  6152. runtime: rt,
  6153. class: classFunctionName,
  6154. objectClass: classObject,
  6155. prototype: rt.global.FunctionPrototype,
  6156. extensible: true,
  6157. property: map[string]property{
  6158. propertyLength: {
  6159. mode: 0,
  6160. value: Value{
  6161. kind: valueNumber,
  6162. value: 1,
  6163. },
  6164. },
  6165. propertyName: {
  6166. mode: 0,
  6167. value: Value{
  6168. kind: valueString,
  6169. value: "toJSON",
  6170. },
  6171. },
  6172. },
  6173. propertyOrder: []string{
  6174. propertyLength,
  6175. propertyName,
  6176. },
  6177. value: nativeFunctionObject{
  6178. name: "toJSON",
  6179. call: builtinDateToJSON,
  6180. },
  6181. },
  6182. },
  6183. },
  6184. "toLocaleString": {
  6185. mode: 0o101,
  6186. value: Value{
  6187. kind: valueObject,
  6188. value: &object{
  6189. runtime: rt,
  6190. class: classFunctionName,
  6191. objectClass: classObject,
  6192. prototype: rt.global.FunctionPrototype,
  6193. extensible: true,
  6194. property: map[string]property{
  6195. propertyLength: {
  6196. mode: 0,
  6197. value: Value{
  6198. kind: valueNumber,
  6199. value: 0,
  6200. },
  6201. },
  6202. propertyName: {
  6203. mode: 0,
  6204. value: Value{
  6205. kind: valueString,
  6206. value: "toLocaleString",
  6207. },
  6208. },
  6209. },
  6210. propertyOrder: []string{
  6211. propertyLength,
  6212. propertyName,
  6213. },
  6214. value: nativeFunctionObject{
  6215. name: "toLocaleString",
  6216. call: builtinDateToLocaleString,
  6217. },
  6218. },
  6219. },
  6220. },
  6221. "toLocaleDateString": {
  6222. mode: 0o101,
  6223. value: Value{
  6224. kind: valueObject,
  6225. value: &object{
  6226. runtime: rt,
  6227. class: classFunctionName,
  6228. objectClass: classObject,
  6229. prototype: rt.global.FunctionPrototype,
  6230. extensible: true,
  6231. property: map[string]property{
  6232. propertyLength: {
  6233. mode: 0,
  6234. value: Value{
  6235. kind: valueNumber,
  6236. value: 0,
  6237. },
  6238. },
  6239. propertyName: {
  6240. mode: 0,
  6241. value: Value{
  6242. kind: valueString,
  6243. value: "toLocaleDateString",
  6244. },
  6245. },
  6246. },
  6247. propertyOrder: []string{
  6248. propertyLength,
  6249. propertyName,
  6250. },
  6251. value: nativeFunctionObject{
  6252. name: "toLocaleDateString",
  6253. call: builtinDateToLocaleDateString,
  6254. },
  6255. },
  6256. },
  6257. },
  6258. "toLocaleTimeString": {
  6259. mode: 0o101,
  6260. value: Value{
  6261. kind: valueObject,
  6262. value: &object{
  6263. runtime: rt,
  6264. class: classFunctionName,
  6265. objectClass: classObject,
  6266. prototype: rt.global.FunctionPrototype,
  6267. extensible: true,
  6268. property: map[string]property{
  6269. propertyLength: {
  6270. mode: 0,
  6271. value: Value{
  6272. kind: valueNumber,
  6273. value: 0,
  6274. },
  6275. },
  6276. propertyName: {
  6277. mode: 0,
  6278. value: Value{
  6279. kind: valueString,
  6280. value: "toLocaleTimeString",
  6281. },
  6282. },
  6283. },
  6284. propertyOrder: []string{
  6285. propertyLength,
  6286. propertyName,
  6287. },
  6288. value: nativeFunctionObject{
  6289. name: "toLocaleTimeString",
  6290. call: builtinDateToLocaleTimeString,
  6291. },
  6292. },
  6293. },
  6294. },
  6295. },
  6296. propertyOrder: []string{
  6297. propertyConstructor,
  6298. methodToString,
  6299. "toDateString",
  6300. "toTimeString",
  6301. "toISOString",
  6302. "toUTCString",
  6303. "toGMTString",
  6304. "getDate",
  6305. "setDate",
  6306. "getDay",
  6307. "getFullYear",
  6308. "setFullYear",
  6309. "getHours",
  6310. "setHours",
  6311. "getMilliseconds",
  6312. "setMilliseconds",
  6313. "getMinutes",
  6314. "setMinutes",
  6315. "getMonth",
  6316. "setMonth",
  6317. "getSeconds",
  6318. "setSeconds",
  6319. "getTime",
  6320. "setTime",
  6321. "getTimezoneOffset",
  6322. "getUTCDate",
  6323. "setUTCDate",
  6324. "getUTCDay",
  6325. "getUTCFullYear",
  6326. "setUTCFullYear",
  6327. "getUTCHours",
  6328. "setUTCHours",
  6329. "getUTCMilliseconds",
  6330. "setUTCMilliseconds",
  6331. "getUTCMinutes",
  6332. "setUTCMinutes",
  6333. "getUTCMonth",
  6334. "setUTCMonth",
  6335. "getUTCSeconds",
  6336. "setUTCSeconds",
  6337. "valueOf",
  6338. "getYear",
  6339. "setYear",
  6340. "toJSON",
  6341. "toLocaleString",
  6342. "toLocaleDateString",
  6343. "toLocaleTimeString",
  6344. },
  6345. }
  6346. // Date definition.
  6347. rt.global.Date = &object{
  6348. runtime: rt,
  6349. class: classFunctionName,
  6350. objectClass: classObject,
  6351. prototype: rt.global.FunctionPrototype,
  6352. extensible: true,
  6353. value: nativeFunctionObject{
  6354. name: classDateName,
  6355. call: builtinDate,
  6356. construct: builtinNewDate,
  6357. },
  6358. property: map[string]property{
  6359. propertyLength: {
  6360. mode: 0,
  6361. value: Value{
  6362. kind: valueNumber,
  6363. value: 7,
  6364. },
  6365. },
  6366. propertyPrototype: {
  6367. mode: 0,
  6368. value: Value{
  6369. kind: valueObject,
  6370. value: rt.global.DatePrototype,
  6371. },
  6372. },
  6373. "parse": {
  6374. mode: 0o101,
  6375. value: Value{
  6376. kind: valueObject,
  6377. value: &object{
  6378. runtime: rt,
  6379. class: classFunctionName,
  6380. objectClass: classObject,
  6381. prototype: rt.global.FunctionPrototype,
  6382. extensible: true,
  6383. property: map[string]property{
  6384. propertyLength: {
  6385. mode: 0,
  6386. value: Value{
  6387. kind: valueNumber,
  6388. value: 1,
  6389. },
  6390. },
  6391. propertyName: {
  6392. mode: 0,
  6393. value: Value{
  6394. kind: valueString,
  6395. value: "parse",
  6396. },
  6397. },
  6398. },
  6399. propertyOrder: []string{
  6400. propertyLength,
  6401. propertyName,
  6402. },
  6403. value: nativeFunctionObject{
  6404. name: "parse",
  6405. call: builtinDateParse,
  6406. },
  6407. },
  6408. },
  6409. },
  6410. "UTC": {
  6411. mode: 0o101,
  6412. value: Value{
  6413. kind: valueObject,
  6414. value: &object{
  6415. runtime: rt,
  6416. class: classFunctionName,
  6417. objectClass: classObject,
  6418. prototype: rt.global.FunctionPrototype,
  6419. extensible: true,
  6420. property: map[string]property{
  6421. propertyLength: {
  6422. mode: 0,
  6423. value: Value{
  6424. kind: valueNumber,
  6425. value: 7,
  6426. },
  6427. },
  6428. propertyName: {
  6429. mode: 0,
  6430. value: Value{
  6431. kind: valueString,
  6432. value: "UTC",
  6433. },
  6434. },
  6435. },
  6436. propertyOrder: []string{
  6437. propertyLength,
  6438. propertyName,
  6439. },
  6440. value: nativeFunctionObject{
  6441. name: "UTC",
  6442. call: builtinDateUTC,
  6443. },
  6444. },
  6445. },
  6446. },
  6447. "now": {
  6448. mode: 0o101,
  6449. value: Value{
  6450. kind: valueObject,
  6451. value: &object{
  6452. runtime: rt,
  6453. class: classFunctionName,
  6454. objectClass: classObject,
  6455. prototype: rt.global.FunctionPrototype,
  6456. extensible: true,
  6457. property: map[string]property{
  6458. propertyLength: {
  6459. mode: 0,
  6460. value: Value{
  6461. kind: valueNumber,
  6462. value: 0,
  6463. },
  6464. },
  6465. propertyName: {
  6466. mode: 0,
  6467. value: Value{
  6468. kind: valueString,
  6469. value: "now",
  6470. },
  6471. },
  6472. },
  6473. propertyOrder: []string{
  6474. propertyLength,
  6475. propertyName,
  6476. },
  6477. value: nativeFunctionObject{
  6478. name: "now",
  6479. call: builtinDateNow,
  6480. },
  6481. },
  6482. },
  6483. },
  6484. },
  6485. propertyOrder: []string{
  6486. propertyLength,
  6487. propertyPrototype,
  6488. "parse",
  6489. "UTC",
  6490. "now",
  6491. },
  6492. }
  6493. // Date constructor definition.
  6494. rt.global.DatePrototype.property[propertyConstructor] = property{
  6495. mode: 0o101,
  6496. value: Value{
  6497. kind: valueObject,
  6498. value: rt.global.Date,
  6499. },
  6500. }
  6501. // RegExp prototype.
  6502. rt.global.RegExpPrototype = &object{
  6503. runtime: rt,
  6504. class: classRegExpName,
  6505. objectClass: classObject,
  6506. prototype: rt.global.ObjectPrototype,
  6507. extensible: true,
  6508. value: prototypeValueRegExp,
  6509. property: map[string]property{
  6510. "exec": {
  6511. mode: 0o101,
  6512. value: Value{
  6513. kind: valueObject,
  6514. value: &object{
  6515. runtime: rt,
  6516. class: classFunctionName,
  6517. objectClass: classObject,
  6518. prototype: rt.global.FunctionPrototype,
  6519. extensible: true,
  6520. property: map[string]property{
  6521. propertyLength: {
  6522. mode: 0,
  6523. value: Value{
  6524. kind: valueNumber,
  6525. value: 1,
  6526. },
  6527. },
  6528. propertyName: {
  6529. mode: 0,
  6530. value: Value{
  6531. kind: valueString,
  6532. value: "exec",
  6533. },
  6534. },
  6535. },
  6536. propertyOrder: []string{
  6537. propertyLength,
  6538. propertyName,
  6539. },
  6540. value: nativeFunctionObject{
  6541. name: "exec",
  6542. call: builtinRegExpExec,
  6543. },
  6544. },
  6545. },
  6546. },
  6547. "compile": {
  6548. mode: 0o101,
  6549. value: Value{
  6550. kind: valueObject,
  6551. value: &object{
  6552. runtime: rt,
  6553. class: classFunctionName,
  6554. objectClass: classObject,
  6555. prototype: rt.global.FunctionPrototype,
  6556. extensible: true,
  6557. property: map[string]property{
  6558. propertyLength: {
  6559. mode: 0,
  6560. value: Value{
  6561. kind: valueNumber,
  6562. value: 1,
  6563. },
  6564. },
  6565. propertyName: {
  6566. mode: 0,
  6567. value: Value{
  6568. kind: valueString,
  6569. value: "compile",
  6570. },
  6571. },
  6572. },
  6573. propertyOrder: []string{
  6574. propertyLength,
  6575. propertyName,
  6576. },
  6577. value: nativeFunctionObject{
  6578. name: "compile",
  6579. call: builtinRegExpCompile,
  6580. },
  6581. },
  6582. },
  6583. },
  6584. methodToString: {
  6585. mode: 0o101,
  6586. value: Value{
  6587. kind: valueObject,
  6588. value: &object{
  6589. runtime: rt,
  6590. class: classFunctionName,
  6591. objectClass: classObject,
  6592. prototype: rt.global.FunctionPrototype,
  6593. extensible: true,
  6594. property: map[string]property{
  6595. propertyLength: {
  6596. mode: 0,
  6597. value: Value{
  6598. kind: valueNumber,
  6599. value: 0,
  6600. },
  6601. },
  6602. propertyName: {
  6603. mode: 0,
  6604. value: Value{
  6605. kind: valueString,
  6606. value: "toString",
  6607. },
  6608. },
  6609. },
  6610. propertyOrder: []string{
  6611. propertyLength,
  6612. propertyName,
  6613. },
  6614. value: nativeFunctionObject{
  6615. name: methodToString,
  6616. call: builtinRegExpToString,
  6617. },
  6618. },
  6619. },
  6620. },
  6621. "test": {
  6622. mode: 0o101,
  6623. value: Value{
  6624. kind: valueObject,
  6625. value: &object{
  6626. runtime: rt,
  6627. class: classFunctionName,
  6628. objectClass: classObject,
  6629. prototype: rt.global.FunctionPrototype,
  6630. extensible: true,
  6631. property: map[string]property{
  6632. propertyLength: {
  6633. mode: 0,
  6634. value: Value{
  6635. kind: valueNumber,
  6636. value: 1,
  6637. },
  6638. },
  6639. propertyName: {
  6640. mode: 0,
  6641. value: Value{
  6642. kind: valueString,
  6643. value: "test",
  6644. },
  6645. },
  6646. },
  6647. propertyOrder: []string{
  6648. propertyLength,
  6649. propertyName,
  6650. },
  6651. value: nativeFunctionObject{
  6652. name: "test",
  6653. call: builtinRegExpTest,
  6654. },
  6655. },
  6656. },
  6657. },
  6658. },
  6659. propertyOrder: []string{
  6660. propertyConstructor,
  6661. "exec",
  6662. "compile",
  6663. methodToString,
  6664. "test",
  6665. },
  6666. }
  6667. // RegExp definition.
  6668. rt.global.RegExp = &object{
  6669. runtime: rt,
  6670. class: classFunctionName,
  6671. objectClass: classObject,
  6672. prototype: rt.global.FunctionPrototype,
  6673. extensible: true,
  6674. value: nativeFunctionObject{
  6675. name: classRegExpName,
  6676. call: builtinRegExp,
  6677. construct: builtinNewRegExp,
  6678. },
  6679. property: map[string]property{
  6680. propertyLength: {
  6681. mode: 0,
  6682. value: Value{
  6683. kind: valueNumber,
  6684. value: 2,
  6685. },
  6686. },
  6687. propertyPrototype: {
  6688. mode: 0,
  6689. value: Value{
  6690. kind: valueObject,
  6691. value: rt.global.RegExpPrototype,
  6692. },
  6693. },
  6694. },
  6695. propertyOrder: []string{
  6696. propertyLength,
  6697. propertyPrototype,
  6698. },
  6699. }
  6700. // RegExp constructor definition.
  6701. rt.global.RegExpPrototype.property[propertyConstructor] = property{
  6702. mode: 0o101,
  6703. value: Value{
  6704. kind: valueObject,
  6705. value: rt.global.RegExp,
  6706. },
  6707. }
  6708. // Error prototype.
  6709. rt.global.ErrorPrototype = &object{
  6710. runtime: rt,
  6711. class: classErrorName,
  6712. objectClass: classObject,
  6713. prototype: rt.global.ObjectPrototype,
  6714. extensible: true,
  6715. value: nil,
  6716. property: map[string]property{
  6717. "name": {
  6718. mode: 0o101,
  6719. value: Value{
  6720. kind: valueString,
  6721. value: classErrorName,
  6722. },
  6723. },
  6724. "message": {
  6725. mode: 0o101,
  6726. value: Value{
  6727. kind: valueString,
  6728. value: "",
  6729. },
  6730. },
  6731. methodToString: {
  6732. mode: 0o101,
  6733. value: Value{
  6734. kind: valueObject,
  6735. value: &object{
  6736. runtime: rt,
  6737. class: classFunctionName,
  6738. objectClass: classObject,
  6739. prototype: rt.global.FunctionPrototype,
  6740. extensible: true,
  6741. property: map[string]property{
  6742. propertyLength: {
  6743. mode: 0,
  6744. value: Value{
  6745. kind: valueNumber,
  6746. value: 0,
  6747. },
  6748. },
  6749. propertyName: {
  6750. mode: 0,
  6751. value: Value{
  6752. kind: valueString,
  6753. value: "toString",
  6754. },
  6755. },
  6756. },
  6757. propertyOrder: []string{
  6758. propertyLength,
  6759. propertyName,
  6760. },
  6761. value: nativeFunctionObject{
  6762. name: methodToString,
  6763. call: builtinErrorToString,
  6764. },
  6765. },
  6766. },
  6767. },
  6768. },
  6769. propertyOrder: []string{
  6770. propertyConstructor,
  6771. "name",
  6772. "message",
  6773. methodToString,
  6774. },
  6775. }
  6776. // Error definition.
  6777. rt.global.Error = &object{
  6778. runtime: rt,
  6779. class: classFunctionName,
  6780. objectClass: classObject,
  6781. prototype: rt.global.FunctionPrototype,
  6782. extensible: true,
  6783. value: nativeFunctionObject{
  6784. name: classErrorName,
  6785. call: builtinError,
  6786. construct: builtinNewError,
  6787. },
  6788. property: map[string]property{
  6789. propertyLength: {
  6790. mode: 0,
  6791. value: Value{
  6792. kind: valueNumber,
  6793. value: 1,
  6794. },
  6795. },
  6796. propertyPrototype: {
  6797. mode: 0,
  6798. value: Value{
  6799. kind: valueObject,
  6800. value: rt.global.ErrorPrototype,
  6801. },
  6802. },
  6803. },
  6804. propertyOrder: []string{
  6805. propertyLength,
  6806. propertyPrototype,
  6807. },
  6808. }
  6809. // Error constructor definition.
  6810. rt.global.ErrorPrototype.property[propertyConstructor] = property{
  6811. mode: 0o101,
  6812. value: Value{
  6813. kind: valueObject,
  6814. value: rt.global.Error,
  6815. },
  6816. }
  6817. // EvalError prototype.
  6818. rt.global.EvalErrorPrototype = &object{
  6819. runtime: rt,
  6820. class: classEvalErrorName,
  6821. objectClass: classObject,
  6822. prototype: rt.global.ErrorPrototype,
  6823. extensible: true,
  6824. value: nil,
  6825. property: map[string]property{
  6826. "name": {
  6827. mode: 0o101,
  6828. value: Value{
  6829. kind: valueString,
  6830. value: classEvalErrorName,
  6831. },
  6832. },
  6833. "message": {
  6834. mode: 0o101,
  6835. value: Value{
  6836. kind: valueString,
  6837. value: "",
  6838. },
  6839. },
  6840. methodToString: {
  6841. mode: 0o101,
  6842. value: Value{
  6843. kind: valueObject,
  6844. value: &object{
  6845. runtime: rt,
  6846. class: classFunctionName,
  6847. objectClass: classObject,
  6848. prototype: rt.global.FunctionPrototype,
  6849. extensible: true,
  6850. property: map[string]property{
  6851. propertyLength: {
  6852. mode: 0,
  6853. value: Value{
  6854. kind: valueNumber,
  6855. value: 0,
  6856. },
  6857. },
  6858. propertyName: {
  6859. mode: 0,
  6860. value: Value{
  6861. kind: valueString,
  6862. value: "toString",
  6863. },
  6864. },
  6865. },
  6866. propertyOrder: []string{
  6867. propertyLength,
  6868. propertyName,
  6869. },
  6870. value: nativeFunctionObject{
  6871. name: methodToString,
  6872. call: builtinErrorToString,
  6873. },
  6874. },
  6875. },
  6876. },
  6877. },
  6878. propertyOrder: []string{
  6879. propertyConstructor,
  6880. "name",
  6881. "message",
  6882. methodToString,
  6883. },
  6884. }
  6885. // EvalError definition.
  6886. rt.global.EvalError = &object{
  6887. runtime: rt,
  6888. class: classFunctionName,
  6889. objectClass: classObject,
  6890. prototype: rt.global.FunctionPrototype,
  6891. extensible: true,
  6892. value: nativeFunctionObject{
  6893. name: classEvalErrorName,
  6894. call: builtinEvalError,
  6895. construct: builtinNewEvalError,
  6896. },
  6897. property: map[string]property{
  6898. propertyLength: {
  6899. mode: 0,
  6900. value: Value{
  6901. kind: valueNumber,
  6902. value: 1,
  6903. },
  6904. },
  6905. propertyPrototype: {
  6906. mode: 0,
  6907. value: Value{
  6908. kind: valueObject,
  6909. value: rt.global.EvalErrorPrototype,
  6910. },
  6911. },
  6912. },
  6913. propertyOrder: []string{
  6914. propertyLength,
  6915. propertyPrototype,
  6916. },
  6917. }
  6918. // EvalError constructor definition.
  6919. rt.global.EvalErrorPrototype.property[propertyConstructor] = property{
  6920. mode: 0o101,
  6921. value: Value{
  6922. kind: valueObject,
  6923. value: rt.global.EvalError,
  6924. },
  6925. }
  6926. // TypeError prototype.
  6927. rt.global.TypeErrorPrototype = &object{
  6928. runtime: rt,
  6929. class: classTypeErrorName,
  6930. objectClass: classObject,
  6931. prototype: rt.global.ErrorPrototype,
  6932. extensible: true,
  6933. value: nil,
  6934. property: map[string]property{
  6935. "name": {
  6936. mode: 0o101,
  6937. value: Value{
  6938. kind: valueString,
  6939. value: classTypeErrorName,
  6940. },
  6941. },
  6942. "message": {
  6943. mode: 0o101,
  6944. value: Value{
  6945. kind: valueString,
  6946. value: "",
  6947. },
  6948. },
  6949. methodToString: {
  6950. mode: 0o101,
  6951. value: Value{
  6952. kind: valueObject,
  6953. value: &object{
  6954. runtime: rt,
  6955. class: classFunctionName,
  6956. objectClass: classObject,
  6957. prototype: rt.global.FunctionPrototype,
  6958. extensible: true,
  6959. property: map[string]property{
  6960. propertyLength: {
  6961. mode: 0,
  6962. value: Value{
  6963. kind: valueNumber,
  6964. value: 0,
  6965. },
  6966. },
  6967. propertyName: {
  6968. mode: 0,
  6969. value: Value{
  6970. kind: valueString,
  6971. value: "toString",
  6972. },
  6973. },
  6974. },
  6975. propertyOrder: []string{
  6976. propertyLength,
  6977. propertyName,
  6978. },
  6979. value: nativeFunctionObject{
  6980. name: methodToString,
  6981. call: builtinErrorToString,
  6982. },
  6983. },
  6984. },
  6985. },
  6986. },
  6987. propertyOrder: []string{
  6988. propertyConstructor,
  6989. "name",
  6990. "message",
  6991. methodToString,
  6992. },
  6993. }
  6994. // TypeError definition.
  6995. rt.global.TypeError = &object{
  6996. runtime: rt,
  6997. class: classFunctionName,
  6998. objectClass: classObject,
  6999. prototype: rt.global.FunctionPrototype,
  7000. extensible: true,
  7001. value: nativeFunctionObject{
  7002. name: classTypeErrorName,
  7003. call: builtinTypeError,
  7004. construct: builtinNewTypeError,
  7005. },
  7006. property: map[string]property{
  7007. propertyLength: {
  7008. mode: 0,
  7009. value: Value{
  7010. kind: valueNumber,
  7011. value: 1,
  7012. },
  7013. },
  7014. propertyPrototype: {
  7015. mode: 0,
  7016. value: Value{
  7017. kind: valueObject,
  7018. value: rt.global.TypeErrorPrototype,
  7019. },
  7020. },
  7021. },
  7022. propertyOrder: []string{
  7023. propertyLength,
  7024. propertyPrototype,
  7025. },
  7026. }
  7027. // TypeError constructor definition.
  7028. rt.global.TypeErrorPrototype.property[propertyConstructor] = property{
  7029. mode: 0o101,
  7030. value: Value{
  7031. kind: valueObject,
  7032. value: rt.global.TypeError,
  7033. },
  7034. }
  7035. // RangeError prototype.
  7036. rt.global.RangeErrorPrototype = &object{
  7037. runtime: rt,
  7038. class: classRangeErrorName,
  7039. objectClass: classObject,
  7040. prototype: rt.global.ErrorPrototype,
  7041. extensible: true,
  7042. value: nil,
  7043. property: map[string]property{
  7044. "name": {
  7045. mode: 0o101,
  7046. value: Value{
  7047. kind: valueString,
  7048. value: classRangeErrorName,
  7049. },
  7050. },
  7051. "message": {
  7052. mode: 0o101,
  7053. value: Value{
  7054. kind: valueString,
  7055. value: "",
  7056. },
  7057. },
  7058. methodToString: {
  7059. mode: 0o101,
  7060. value: Value{
  7061. kind: valueObject,
  7062. value: &object{
  7063. runtime: rt,
  7064. class: classFunctionName,
  7065. objectClass: classObject,
  7066. prototype: rt.global.FunctionPrototype,
  7067. extensible: true,
  7068. property: map[string]property{
  7069. propertyLength: {
  7070. mode: 0,
  7071. value: Value{
  7072. kind: valueNumber,
  7073. value: 0,
  7074. },
  7075. },
  7076. propertyName: {
  7077. mode: 0,
  7078. value: Value{
  7079. kind: valueString,
  7080. value: "toString",
  7081. },
  7082. },
  7083. },
  7084. propertyOrder: []string{
  7085. propertyLength,
  7086. propertyName,
  7087. },
  7088. value: nativeFunctionObject{
  7089. name: methodToString,
  7090. call: builtinErrorToString,
  7091. },
  7092. },
  7093. },
  7094. },
  7095. },
  7096. propertyOrder: []string{
  7097. propertyConstructor,
  7098. "name",
  7099. "message",
  7100. methodToString,
  7101. },
  7102. }
  7103. // RangeError definition.
  7104. rt.global.RangeError = &object{
  7105. runtime: rt,
  7106. class: classFunctionName,
  7107. objectClass: classObject,
  7108. prototype: rt.global.FunctionPrototype,
  7109. extensible: true,
  7110. value: nativeFunctionObject{
  7111. name: classRangeErrorName,
  7112. call: builtinRangeError,
  7113. construct: builtinNewRangeError,
  7114. },
  7115. property: map[string]property{
  7116. propertyLength: {
  7117. mode: 0,
  7118. value: Value{
  7119. kind: valueNumber,
  7120. value: 1,
  7121. },
  7122. },
  7123. propertyPrototype: {
  7124. mode: 0,
  7125. value: Value{
  7126. kind: valueObject,
  7127. value: rt.global.RangeErrorPrototype,
  7128. },
  7129. },
  7130. },
  7131. propertyOrder: []string{
  7132. propertyLength,
  7133. propertyPrototype,
  7134. },
  7135. }
  7136. // RangeError constructor definition.
  7137. rt.global.RangeErrorPrototype.property[propertyConstructor] = property{
  7138. mode: 0o101,
  7139. value: Value{
  7140. kind: valueObject,
  7141. value: rt.global.RangeError,
  7142. },
  7143. }
  7144. // ReferenceError prototype.
  7145. rt.global.ReferenceErrorPrototype = &object{
  7146. runtime: rt,
  7147. class: classReferenceErrorName,
  7148. objectClass: classObject,
  7149. prototype: rt.global.ErrorPrototype,
  7150. extensible: true,
  7151. value: nil,
  7152. property: map[string]property{
  7153. "name": {
  7154. mode: 0o101,
  7155. value: Value{
  7156. kind: valueString,
  7157. value: classReferenceErrorName,
  7158. },
  7159. },
  7160. "message": {
  7161. mode: 0o101,
  7162. value: Value{
  7163. kind: valueString,
  7164. value: "",
  7165. },
  7166. },
  7167. methodToString: {
  7168. mode: 0o101,
  7169. value: Value{
  7170. kind: valueObject,
  7171. value: &object{
  7172. runtime: rt,
  7173. class: classFunctionName,
  7174. objectClass: classObject,
  7175. prototype: rt.global.FunctionPrototype,
  7176. extensible: true,
  7177. property: map[string]property{
  7178. propertyLength: {
  7179. mode: 0,
  7180. value: Value{
  7181. kind: valueNumber,
  7182. value: 0,
  7183. },
  7184. },
  7185. propertyName: {
  7186. mode: 0,
  7187. value: Value{
  7188. kind: valueString,
  7189. value: "toString",
  7190. },
  7191. },
  7192. },
  7193. propertyOrder: []string{
  7194. propertyLength,
  7195. propertyName,
  7196. },
  7197. value: nativeFunctionObject{
  7198. name: methodToString,
  7199. call: builtinErrorToString,
  7200. },
  7201. },
  7202. },
  7203. },
  7204. },
  7205. propertyOrder: []string{
  7206. propertyConstructor,
  7207. "name",
  7208. "message",
  7209. methodToString,
  7210. },
  7211. }
  7212. // ReferenceError definition.
  7213. rt.global.ReferenceError = &object{
  7214. runtime: rt,
  7215. class: classFunctionName,
  7216. objectClass: classObject,
  7217. prototype: rt.global.FunctionPrototype,
  7218. extensible: true,
  7219. value: nativeFunctionObject{
  7220. name: classReferenceErrorName,
  7221. call: builtinReferenceError,
  7222. construct: builtinNewReferenceError,
  7223. },
  7224. property: map[string]property{
  7225. propertyLength: {
  7226. mode: 0,
  7227. value: Value{
  7228. kind: valueNumber,
  7229. value: 1,
  7230. },
  7231. },
  7232. propertyPrototype: {
  7233. mode: 0,
  7234. value: Value{
  7235. kind: valueObject,
  7236. value: rt.global.ReferenceErrorPrototype,
  7237. },
  7238. },
  7239. },
  7240. propertyOrder: []string{
  7241. propertyLength,
  7242. propertyPrototype,
  7243. },
  7244. }
  7245. // ReferenceError constructor definition.
  7246. rt.global.ReferenceErrorPrototype.property[propertyConstructor] = property{
  7247. mode: 0o101,
  7248. value: Value{
  7249. kind: valueObject,
  7250. value: rt.global.ReferenceError,
  7251. },
  7252. }
  7253. // SyntaxError prototype.
  7254. rt.global.SyntaxErrorPrototype = &object{
  7255. runtime: rt,
  7256. class: classSyntaxErrorName,
  7257. objectClass: classObject,
  7258. prototype: rt.global.ErrorPrototype,
  7259. extensible: true,
  7260. value: nil,
  7261. property: map[string]property{
  7262. "name": {
  7263. mode: 0o101,
  7264. value: Value{
  7265. kind: valueString,
  7266. value: classSyntaxErrorName,
  7267. },
  7268. },
  7269. "message": {
  7270. mode: 0o101,
  7271. value: Value{
  7272. kind: valueString,
  7273. value: "",
  7274. },
  7275. },
  7276. methodToString: {
  7277. mode: 0o101,
  7278. value: Value{
  7279. kind: valueObject,
  7280. value: &object{
  7281. runtime: rt,
  7282. class: classFunctionName,
  7283. objectClass: classObject,
  7284. prototype: rt.global.FunctionPrototype,
  7285. extensible: true,
  7286. property: map[string]property{
  7287. propertyLength: {
  7288. mode: 0,
  7289. value: Value{
  7290. kind: valueNumber,
  7291. value: 0,
  7292. },
  7293. },
  7294. propertyName: {
  7295. mode: 0,
  7296. value: Value{
  7297. kind: valueString,
  7298. value: "toString",
  7299. },
  7300. },
  7301. },
  7302. propertyOrder: []string{
  7303. propertyLength,
  7304. propertyName,
  7305. },
  7306. value: nativeFunctionObject{
  7307. name: methodToString,
  7308. call: builtinErrorToString,
  7309. },
  7310. },
  7311. },
  7312. },
  7313. },
  7314. propertyOrder: []string{
  7315. propertyConstructor,
  7316. "name",
  7317. "message",
  7318. methodToString,
  7319. },
  7320. }
  7321. // SyntaxError definition.
  7322. rt.global.SyntaxError = &object{
  7323. runtime: rt,
  7324. class: classFunctionName,
  7325. objectClass: classObject,
  7326. prototype: rt.global.FunctionPrototype,
  7327. extensible: true,
  7328. value: nativeFunctionObject{
  7329. name: classSyntaxErrorName,
  7330. call: builtinSyntaxError,
  7331. construct: builtinNewSyntaxError,
  7332. },
  7333. property: map[string]property{
  7334. propertyLength: {
  7335. mode: 0,
  7336. value: Value{
  7337. kind: valueNumber,
  7338. value: 1,
  7339. },
  7340. },
  7341. propertyPrototype: {
  7342. mode: 0,
  7343. value: Value{
  7344. kind: valueObject,
  7345. value: rt.global.SyntaxErrorPrototype,
  7346. },
  7347. },
  7348. },
  7349. propertyOrder: []string{
  7350. propertyLength,
  7351. propertyPrototype,
  7352. },
  7353. }
  7354. // SyntaxError constructor definition.
  7355. rt.global.SyntaxErrorPrototype.property[propertyConstructor] = property{
  7356. mode: 0o101,
  7357. value: Value{
  7358. kind: valueObject,
  7359. value: rt.global.SyntaxError,
  7360. },
  7361. }
  7362. // URIError prototype.
  7363. rt.global.URIErrorPrototype = &object{
  7364. runtime: rt,
  7365. class: classURIErrorName,
  7366. objectClass: classObject,
  7367. prototype: rt.global.ErrorPrototype,
  7368. extensible: true,
  7369. value: nil,
  7370. property: map[string]property{
  7371. "name": {
  7372. mode: 0o101,
  7373. value: Value{
  7374. kind: valueString,
  7375. value: classURIErrorName,
  7376. },
  7377. },
  7378. "message": {
  7379. mode: 0o101,
  7380. value: Value{
  7381. kind: valueString,
  7382. value: "",
  7383. },
  7384. },
  7385. methodToString: {
  7386. mode: 0o101,
  7387. value: Value{
  7388. kind: valueObject,
  7389. value: &object{
  7390. runtime: rt,
  7391. class: classFunctionName,
  7392. objectClass: classObject,
  7393. prototype: rt.global.FunctionPrototype,
  7394. extensible: true,
  7395. property: map[string]property{
  7396. propertyLength: {
  7397. mode: 0,
  7398. value: Value{
  7399. kind: valueNumber,
  7400. value: 0,
  7401. },
  7402. },
  7403. propertyName: {
  7404. mode: 0,
  7405. value: Value{
  7406. kind: valueString,
  7407. value: "toString",
  7408. },
  7409. },
  7410. },
  7411. propertyOrder: []string{
  7412. propertyLength,
  7413. propertyName,
  7414. },
  7415. value: nativeFunctionObject{
  7416. name: methodToString,
  7417. call: builtinErrorToString,
  7418. },
  7419. },
  7420. },
  7421. },
  7422. },
  7423. propertyOrder: []string{
  7424. propertyConstructor,
  7425. "name",
  7426. "message",
  7427. methodToString,
  7428. },
  7429. }
  7430. // URIError definition.
  7431. rt.global.URIError = &object{
  7432. runtime: rt,
  7433. class: classFunctionName,
  7434. objectClass: classObject,
  7435. prototype: rt.global.FunctionPrototype,
  7436. extensible: true,
  7437. value: nativeFunctionObject{
  7438. name: classURIErrorName,
  7439. call: builtinURIError,
  7440. construct: builtinNewURIError,
  7441. },
  7442. property: map[string]property{
  7443. propertyLength: {
  7444. mode: 0,
  7445. value: Value{
  7446. kind: valueNumber,
  7447. value: 1,
  7448. },
  7449. },
  7450. propertyPrototype: {
  7451. mode: 0,
  7452. value: Value{
  7453. kind: valueObject,
  7454. value: rt.global.URIErrorPrototype,
  7455. },
  7456. },
  7457. },
  7458. propertyOrder: []string{
  7459. propertyLength,
  7460. propertyPrototype,
  7461. },
  7462. }
  7463. // URIError constructor definition.
  7464. rt.global.URIErrorPrototype.property[propertyConstructor] = property{
  7465. mode: 0o101,
  7466. value: Value{
  7467. kind: valueObject,
  7468. value: rt.global.URIError,
  7469. },
  7470. }
  7471. // JSON definition.
  7472. rt.global.JSON = &object{
  7473. runtime: rt,
  7474. class: classJSONName,
  7475. objectClass: classObject,
  7476. prototype: rt.global.ObjectPrototype,
  7477. extensible: true,
  7478. property: map[string]property{
  7479. "parse": {
  7480. mode: 0o101,
  7481. value: Value{
  7482. kind: valueObject,
  7483. value: &object{
  7484. runtime: rt,
  7485. class: classFunctionName,
  7486. objectClass: classObject,
  7487. prototype: rt.global.FunctionPrototype,
  7488. extensible: true,
  7489. property: map[string]property{
  7490. propertyLength: {
  7491. mode: 0,
  7492. value: Value{
  7493. kind: valueNumber,
  7494. value: 2,
  7495. },
  7496. },
  7497. propertyName: {
  7498. mode: 0,
  7499. value: Value{
  7500. kind: valueString,
  7501. value: "parse",
  7502. },
  7503. },
  7504. },
  7505. propertyOrder: []string{
  7506. propertyLength,
  7507. propertyName,
  7508. },
  7509. value: nativeFunctionObject{
  7510. name: "parse",
  7511. call: builtinJSONParse,
  7512. },
  7513. },
  7514. },
  7515. },
  7516. "stringify": {
  7517. mode: 0o101,
  7518. value: Value{
  7519. kind: valueObject,
  7520. value: &object{
  7521. runtime: rt,
  7522. class: classFunctionName,
  7523. objectClass: classObject,
  7524. prototype: rt.global.FunctionPrototype,
  7525. extensible: true,
  7526. property: map[string]property{
  7527. propertyLength: {
  7528. mode: 0,
  7529. value: Value{
  7530. kind: valueNumber,
  7531. value: 3,
  7532. },
  7533. },
  7534. propertyName: {
  7535. mode: 0,
  7536. value: Value{
  7537. kind: valueString,
  7538. value: "stringify",
  7539. },
  7540. },
  7541. },
  7542. propertyOrder: []string{
  7543. propertyLength,
  7544. propertyName,
  7545. },
  7546. value: nativeFunctionObject{
  7547. name: "stringify",
  7548. call: builtinJSONStringify,
  7549. },
  7550. },
  7551. },
  7552. },
  7553. },
  7554. propertyOrder: []string{
  7555. "parse",
  7556. "stringify",
  7557. },
  7558. }
  7559. // Global properties.
  7560. rt.globalObject.property = map[string]property{
  7561. "eval": {
  7562. mode: 0o101,
  7563. value: Value{
  7564. kind: valueObject,
  7565. value: &object{
  7566. runtime: rt,
  7567. class: classFunctionName,
  7568. objectClass: classObject,
  7569. prototype: rt.global.FunctionPrototype,
  7570. extensible: true,
  7571. property: map[string]property{
  7572. propertyLength: {
  7573. mode: 0,
  7574. value: Value{
  7575. kind: valueNumber,
  7576. value: 1,
  7577. },
  7578. },
  7579. propertyName: {
  7580. mode: 0,
  7581. value: Value{
  7582. kind: valueString,
  7583. value: "eval",
  7584. },
  7585. },
  7586. },
  7587. propertyOrder: []string{
  7588. propertyLength,
  7589. propertyName,
  7590. },
  7591. value: nativeFunctionObject{
  7592. name: "eval",
  7593. call: builtinGlobalEval,
  7594. },
  7595. },
  7596. },
  7597. },
  7598. "parseInt": {
  7599. mode: 0o101,
  7600. value: Value{
  7601. kind: valueObject,
  7602. value: &object{
  7603. runtime: rt,
  7604. class: classFunctionName,
  7605. objectClass: classObject,
  7606. prototype: rt.global.FunctionPrototype,
  7607. extensible: true,
  7608. property: map[string]property{
  7609. propertyLength: {
  7610. mode: 0,
  7611. value: Value{
  7612. kind: valueNumber,
  7613. value: 2,
  7614. },
  7615. },
  7616. propertyName: {
  7617. mode: 0,
  7618. value: Value{
  7619. kind: valueString,
  7620. value: "parseInt",
  7621. },
  7622. },
  7623. },
  7624. propertyOrder: []string{
  7625. propertyLength,
  7626. propertyName,
  7627. },
  7628. value: nativeFunctionObject{
  7629. name: "parseInt",
  7630. call: builtinGlobalParseInt,
  7631. },
  7632. },
  7633. },
  7634. },
  7635. "parseFloat": {
  7636. mode: 0o101,
  7637. value: Value{
  7638. kind: valueObject,
  7639. value: &object{
  7640. runtime: rt,
  7641. class: classFunctionName,
  7642. objectClass: classObject,
  7643. prototype: rt.global.FunctionPrototype,
  7644. extensible: true,
  7645. property: map[string]property{
  7646. propertyLength: {
  7647. mode: 0,
  7648. value: Value{
  7649. kind: valueNumber,
  7650. value: 1,
  7651. },
  7652. },
  7653. propertyName: {
  7654. mode: 0,
  7655. value: Value{
  7656. kind: valueString,
  7657. value: "parseFloat",
  7658. },
  7659. },
  7660. },
  7661. propertyOrder: []string{
  7662. propertyLength,
  7663. propertyName,
  7664. },
  7665. value: nativeFunctionObject{
  7666. name: "parseFloat",
  7667. call: builtinGlobalParseFloat,
  7668. },
  7669. },
  7670. },
  7671. },
  7672. "isNaN": {
  7673. mode: 0o101,
  7674. value: Value{
  7675. kind: valueObject,
  7676. value: &object{
  7677. runtime: rt,
  7678. class: classFunctionName,
  7679. objectClass: classObject,
  7680. prototype: rt.global.FunctionPrototype,
  7681. extensible: true,
  7682. property: map[string]property{
  7683. propertyLength: {
  7684. mode: 0,
  7685. value: Value{
  7686. kind: valueNumber,
  7687. value: 1,
  7688. },
  7689. },
  7690. propertyName: {
  7691. mode: 0,
  7692. value: Value{
  7693. kind: valueString,
  7694. value: "isNaN",
  7695. },
  7696. },
  7697. },
  7698. propertyOrder: []string{
  7699. propertyLength,
  7700. propertyName,
  7701. },
  7702. value: nativeFunctionObject{
  7703. name: "isNaN",
  7704. call: builtinGlobalIsNaN,
  7705. },
  7706. },
  7707. },
  7708. },
  7709. "isFinite": {
  7710. mode: 0o101,
  7711. value: Value{
  7712. kind: valueObject,
  7713. value: &object{
  7714. runtime: rt,
  7715. class: classFunctionName,
  7716. objectClass: classObject,
  7717. prototype: rt.global.FunctionPrototype,
  7718. extensible: true,
  7719. property: map[string]property{
  7720. propertyLength: {
  7721. mode: 0,
  7722. value: Value{
  7723. kind: valueNumber,
  7724. value: 1,
  7725. },
  7726. },
  7727. propertyName: {
  7728. mode: 0,
  7729. value: Value{
  7730. kind: valueString,
  7731. value: "isFinite",
  7732. },
  7733. },
  7734. },
  7735. propertyOrder: []string{
  7736. propertyLength,
  7737. propertyName,
  7738. },
  7739. value: nativeFunctionObject{
  7740. name: "isFinite",
  7741. call: builtinGlobalIsFinite,
  7742. },
  7743. },
  7744. },
  7745. },
  7746. "decodeURI": {
  7747. mode: 0o101,
  7748. value: Value{
  7749. kind: valueObject,
  7750. value: &object{
  7751. runtime: rt,
  7752. class: classFunctionName,
  7753. objectClass: classObject,
  7754. prototype: rt.global.FunctionPrototype,
  7755. extensible: true,
  7756. property: map[string]property{
  7757. propertyLength: {
  7758. mode: 0,
  7759. value: Value{
  7760. kind: valueNumber,
  7761. value: 1,
  7762. },
  7763. },
  7764. propertyName: {
  7765. mode: 0,
  7766. value: Value{
  7767. kind: valueString,
  7768. value: "decodeURI",
  7769. },
  7770. },
  7771. },
  7772. propertyOrder: []string{
  7773. propertyLength,
  7774. propertyName,
  7775. },
  7776. value: nativeFunctionObject{
  7777. name: "decodeURI",
  7778. call: builtinGlobalDecodeURI,
  7779. },
  7780. },
  7781. },
  7782. },
  7783. "decodeURIComponent": {
  7784. mode: 0o101,
  7785. value: Value{
  7786. kind: valueObject,
  7787. value: &object{
  7788. runtime: rt,
  7789. class: classFunctionName,
  7790. objectClass: classObject,
  7791. prototype: rt.global.FunctionPrototype,
  7792. extensible: true,
  7793. property: map[string]property{
  7794. propertyLength: {
  7795. mode: 0,
  7796. value: Value{
  7797. kind: valueNumber,
  7798. value: 1,
  7799. },
  7800. },
  7801. propertyName: {
  7802. mode: 0,
  7803. value: Value{
  7804. kind: valueString,
  7805. value: "decodeURIComponent",
  7806. },
  7807. },
  7808. },
  7809. propertyOrder: []string{
  7810. propertyLength,
  7811. propertyName,
  7812. },
  7813. value: nativeFunctionObject{
  7814. name: "decodeURIComponent",
  7815. call: builtinGlobalDecodeURIComponent,
  7816. },
  7817. },
  7818. },
  7819. },
  7820. "encodeURI": {
  7821. mode: 0o101,
  7822. value: Value{
  7823. kind: valueObject,
  7824. value: &object{
  7825. runtime: rt,
  7826. class: classFunctionName,
  7827. objectClass: classObject,
  7828. prototype: rt.global.FunctionPrototype,
  7829. extensible: true,
  7830. property: map[string]property{
  7831. propertyLength: {
  7832. mode: 0,
  7833. value: Value{
  7834. kind: valueNumber,
  7835. value: 1,
  7836. },
  7837. },
  7838. propertyName: {
  7839. mode: 0,
  7840. value: Value{
  7841. kind: valueString,
  7842. value: "encodeURI",
  7843. },
  7844. },
  7845. },
  7846. propertyOrder: []string{
  7847. propertyLength,
  7848. propertyName,
  7849. },
  7850. value: nativeFunctionObject{
  7851. name: "encodeURI",
  7852. call: builtinGlobalEncodeURI,
  7853. },
  7854. },
  7855. },
  7856. },
  7857. "encodeURIComponent": {
  7858. mode: 0o101,
  7859. value: Value{
  7860. kind: valueObject,
  7861. value: &object{
  7862. runtime: rt,
  7863. class: classFunctionName,
  7864. objectClass: classObject,
  7865. prototype: rt.global.FunctionPrototype,
  7866. extensible: true,
  7867. property: map[string]property{
  7868. propertyLength: {
  7869. mode: 0,
  7870. value: Value{
  7871. kind: valueNumber,
  7872. value: 1,
  7873. },
  7874. },
  7875. propertyName: {
  7876. mode: 0,
  7877. value: Value{
  7878. kind: valueString,
  7879. value: "encodeURIComponent",
  7880. },
  7881. },
  7882. },
  7883. propertyOrder: []string{
  7884. propertyLength,
  7885. propertyName,
  7886. },
  7887. value: nativeFunctionObject{
  7888. name: "encodeURIComponent",
  7889. call: builtinGlobalEncodeURIComponent,
  7890. },
  7891. },
  7892. },
  7893. },
  7894. "escape": {
  7895. mode: 0o101,
  7896. value: Value{
  7897. kind: valueObject,
  7898. value: &object{
  7899. runtime: rt,
  7900. class: classFunctionName,
  7901. objectClass: classObject,
  7902. prototype: rt.global.FunctionPrototype,
  7903. extensible: true,
  7904. property: map[string]property{
  7905. propertyLength: {
  7906. mode: 0,
  7907. value: Value{
  7908. kind: valueNumber,
  7909. value: 1,
  7910. },
  7911. },
  7912. propertyName: {
  7913. mode: 0,
  7914. value: Value{
  7915. kind: valueString,
  7916. value: "escape",
  7917. },
  7918. },
  7919. },
  7920. propertyOrder: []string{
  7921. propertyLength,
  7922. propertyName,
  7923. },
  7924. value: nativeFunctionObject{
  7925. name: "escape",
  7926. call: builtinGlobalEscape,
  7927. },
  7928. },
  7929. },
  7930. },
  7931. "unescape": {
  7932. mode: 0o101,
  7933. value: Value{
  7934. kind: valueObject,
  7935. value: &object{
  7936. runtime: rt,
  7937. class: classFunctionName,
  7938. objectClass: classObject,
  7939. prototype: rt.global.FunctionPrototype,
  7940. extensible: true,
  7941. property: map[string]property{
  7942. propertyLength: {
  7943. mode: 0,
  7944. value: Value{
  7945. kind: valueNumber,
  7946. value: 1,
  7947. },
  7948. },
  7949. propertyName: {
  7950. mode: 0,
  7951. value: Value{
  7952. kind: valueString,
  7953. value: "unescape",
  7954. },
  7955. },
  7956. },
  7957. propertyOrder: []string{
  7958. propertyLength,
  7959. propertyName,
  7960. },
  7961. value: nativeFunctionObject{
  7962. name: "unescape",
  7963. call: builtinGlobalUnescape,
  7964. },
  7965. },
  7966. },
  7967. },
  7968. classObjectName: {
  7969. mode: 0o101,
  7970. value: Value{
  7971. kind: valueObject,
  7972. value: rt.global.Object,
  7973. },
  7974. },
  7975. classFunctionName: {
  7976. mode: 0o101,
  7977. value: Value{
  7978. kind: valueObject,
  7979. value: rt.global.Function,
  7980. },
  7981. },
  7982. classArrayName: {
  7983. mode: 0o101,
  7984. value: Value{
  7985. kind: valueObject,
  7986. value: rt.global.Array,
  7987. },
  7988. },
  7989. classStringName: {
  7990. mode: 0o101,
  7991. value: Value{
  7992. kind: valueObject,
  7993. value: rt.global.String,
  7994. },
  7995. },
  7996. classBooleanName: {
  7997. mode: 0o101,
  7998. value: Value{
  7999. kind: valueObject,
  8000. value: rt.global.Boolean,
  8001. },
  8002. },
  8003. classNumberName: {
  8004. mode: 0o101,
  8005. value: Value{
  8006. kind: valueObject,
  8007. value: rt.global.Number,
  8008. },
  8009. },
  8010. classMathName: {
  8011. mode: 0o101,
  8012. value: Value{
  8013. kind: valueObject,
  8014. value: rt.global.Math,
  8015. },
  8016. },
  8017. classDateName: {
  8018. mode: 0o101,
  8019. value: Value{
  8020. kind: valueObject,
  8021. value: rt.global.Date,
  8022. },
  8023. },
  8024. classRegExpName: {
  8025. mode: 0o101,
  8026. value: Value{
  8027. kind: valueObject,
  8028. value: rt.global.RegExp,
  8029. },
  8030. },
  8031. classErrorName: {
  8032. mode: 0o101,
  8033. value: Value{
  8034. kind: valueObject,
  8035. value: rt.global.Error,
  8036. },
  8037. },
  8038. classEvalErrorName: {
  8039. mode: 0o101,
  8040. value: Value{
  8041. kind: valueObject,
  8042. value: rt.global.EvalError,
  8043. },
  8044. },
  8045. classTypeErrorName: {
  8046. mode: 0o101,
  8047. value: Value{
  8048. kind: valueObject,
  8049. value: rt.global.TypeError,
  8050. },
  8051. },
  8052. classRangeErrorName: {
  8053. mode: 0o101,
  8054. value: Value{
  8055. kind: valueObject,
  8056. value: rt.global.RangeError,
  8057. },
  8058. },
  8059. classReferenceErrorName: {
  8060. mode: 0o101,
  8061. value: Value{
  8062. kind: valueObject,
  8063. value: rt.global.ReferenceError,
  8064. },
  8065. },
  8066. classSyntaxErrorName: {
  8067. mode: 0o101,
  8068. value: Value{
  8069. kind: valueObject,
  8070. value: rt.global.SyntaxError,
  8071. },
  8072. },
  8073. classURIErrorName: {
  8074. mode: 0o101,
  8075. value: Value{
  8076. kind: valueObject,
  8077. value: rt.global.URIError,
  8078. },
  8079. },
  8080. classJSONName: {
  8081. mode: 0o101,
  8082. value: Value{
  8083. kind: valueObject,
  8084. value: rt.global.JSON,
  8085. },
  8086. },
  8087. "undefined": {
  8088. mode: 0,
  8089. value: Value{
  8090. kind: valueUndefined,
  8091. },
  8092. },
  8093. "NaN": {
  8094. mode: 0,
  8095. value: Value{
  8096. kind: valueNumber,
  8097. value: math.NaN(),
  8098. },
  8099. },
  8100. "Infinity": {
  8101. mode: 0,
  8102. value: Value{
  8103. kind: valueNumber,
  8104. value: math.Inf(+1),
  8105. },
  8106. },
  8107. }
  8108. // Global property order.
  8109. rt.globalObject.propertyOrder = []string{
  8110. "eval",
  8111. "parseInt",
  8112. "parseFloat",
  8113. "isNaN",
  8114. "isFinite",
  8115. "decodeURI",
  8116. "decodeURIComponent",
  8117. "encodeURI",
  8118. "encodeURIComponent",
  8119. "escape",
  8120. "unescape",
  8121. classObjectName,
  8122. classFunctionName,
  8123. classArrayName,
  8124. classStringName,
  8125. classBooleanName,
  8126. classNumberName,
  8127. classMathName,
  8128. classDateName,
  8129. classRegExpName,
  8130. classErrorName,
  8131. classEvalErrorName,
  8132. classTypeErrorName,
  8133. classRangeErrorName,
  8134. classReferenceErrorName,
  8135. classSyntaxErrorName,
  8136. classURIErrorName,
  8137. classJSONName,
  8138. "undefined",
  8139. "NaN",
  8140. "Infinity",
  8141. }
  8142. }
  8143. func (rt *runtime) newConsole() *object {
  8144. return &object{
  8145. runtime: rt,
  8146. class: classObjectName,
  8147. objectClass: classObject,
  8148. prototype: rt.global.ObjectPrototype,
  8149. extensible: true,
  8150. property: map[string]property{
  8151. "log": {
  8152. mode: 0o101,
  8153. value: Value{
  8154. kind: valueObject,
  8155. value: &object{
  8156. runtime: rt,
  8157. class: classFunctionName,
  8158. objectClass: classObject,
  8159. prototype: rt.global.FunctionPrototype,
  8160. extensible: true,
  8161. property: map[string]property{
  8162. propertyLength: {
  8163. mode: 0,
  8164. value: Value{
  8165. kind: valueNumber,
  8166. value: 0,
  8167. },
  8168. },
  8169. propertyName: {
  8170. mode: 0,
  8171. value: Value{
  8172. kind: valueString,
  8173. value: "log",
  8174. },
  8175. },
  8176. },
  8177. propertyOrder: []string{
  8178. propertyLength,
  8179. propertyName,
  8180. },
  8181. value: nativeFunctionObject{
  8182. name: "log",
  8183. call: builtinConsoleLog,
  8184. },
  8185. },
  8186. },
  8187. },
  8188. "debug": {
  8189. mode: 0o101,
  8190. value: Value{
  8191. kind: valueObject,
  8192. value: &object{
  8193. runtime: rt,
  8194. class: classFunctionName,
  8195. objectClass: classObject,
  8196. prototype: rt.global.FunctionPrototype,
  8197. extensible: true,
  8198. property: map[string]property{
  8199. propertyLength: {
  8200. mode: 0,
  8201. value: Value{
  8202. kind: valueNumber,
  8203. value: 0,
  8204. },
  8205. },
  8206. propertyName: {
  8207. mode: 0,
  8208. value: Value{
  8209. kind: valueString,
  8210. value: "debug",
  8211. },
  8212. },
  8213. },
  8214. propertyOrder: []string{
  8215. propertyLength,
  8216. propertyName,
  8217. },
  8218. value: nativeFunctionObject{
  8219. name: "debug",
  8220. call: builtinConsoleLog,
  8221. },
  8222. },
  8223. },
  8224. },
  8225. "info": {
  8226. mode: 0o101,
  8227. value: Value{
  8228. kind: valueObject,
  8229. value: &object{
  8230. runtime: rt,
  8231. class: classFunctionName,
  8232. objectClass: classObject,
  8233. prototype: rt.global.FunctionPrototype,
  8234. extensible: true,
  8235. property: map[string]property{
  8236. propertyLength: {
  8237. mode: 0,
  8238. value: Value{
  8239. kind: valueNumber,
  8240. value: 0,
  8241. },
  8242. },
  8243. propertyName: {
  8244. mode: 0,
  8245. value: Value{
  8246. kind: valueString,
  8247. value: "info",
  8248. },
  8249. },
  8250. },
  8251. propertyOrder: []string{
  8252. propertyLength,
  8253. propertyName,
  8254. },
  8255. value: nativeFunctionObject{
  8256. name: "info",
  8257. call: builtinConsoleLog,
  8258. },
  8259. },
  8260. },
  8261. },
  8262. "error": {
  8263. mode: 0o101,
  8264. value: Value{
  8265. kind: valueObject,
  8266. value: &object{
  8267. runtime: rt,
  8268. class: classFunctionName,
  8269. objectClass: classObject,
  8270. prototype: rt.global.FunctionPrototype,
  8271. extensible: true,
  8272. property: map[string]property{
  8273. propertyLength: {
  8274. mode: 0,
  8275. value: Value{
  8276. kind: valueNumber,
  8277. value: 0,
  8278. },
  8279. },
  8280. propertyName: {
  8281. mode: 0,
  8282. value: Value{
  8283. kind: valueString,
  8284. value: "error",
  8285. },
  8286. },
  8287. },
  8288. propertyOrder: []string{
  8289. propertyLength,
  8290. propertyName,
  8291. },
  8292. value: nativeFunctionObject{
  8293. name: "error",
  8294. call: builtinConsoleError,
  8295. },
  8296. },
  8297. },
  8298. },
  8299. "warn": {
  8300. mode: 0o101,
  8301. value: Value{
  8302. kind: valueObject,
  8303. value: &object{
  8304. runtime: rt,
  8305. class: classFunctionName,
  8306. objectClass: classObject,
  8307. prototype: rt.global.FunctionPrototype,
  8308. extensible: true,
  8309. property: map[string]property{
  8310. propertyLength: {
  8311. mode: 0,
  8312. value: Value{
  8313. kind: valueNumber,
  8314. value: 0,
  8315. },
  8316. },
  8317. propertyName: {
  8318. mode: 0,
  8319. value: Value{
  8320. kind: valueString,
  8321. value: "warn",
  8322. },
  8323. },
  8324. },
  8325. propertyOrder: []string{
  8326. propertyLength,
  8327. propertyName,
  8328. },
  8329. value: nativeFunctionObject{
  8330. name: "warn",
  8331. call: builtinConsoleError,
  8332. },
  8333. },
  8334. },
  8335. },
  8336. "dir": {
  8337. mode: 0o101,
  8338. value: Value{
  8339. kind: valueObject,
  8340. value: &object{
  8341. runtime: rt,
  8342. class: classFunctionName,
  8343. objectClass: classObject,
  8344. prototype: rt.global.FunctionPrototype,
  8345. extensible: true,
  8346. property: map[string]property{
  8347. propertyLength: {
  8348. mode: 0,
  8349. value: Value{
  8350. kind: valueNumber,
  8351. value: 0,
  8352. },
  8353. },
  8354. propertyName: {
  8355. mode: 0,
  8356. value: Value{
  8357. kind: valueString,
  8358. value: "dir",
  8359. },
  8360. },
  8361. },
  8362. propertyOrder: []string{
  8363. propertyLength,
  8364. propertyName,
  8365. },
  8366. value: nativeFunctionObject{
  8367. name: "dir",
  8368. call: builtinConsoleDir,
  8369. },
  8370. },
  8371. },
  8372. },
  8373. "time": {
  8374. mode: 0o101,
  8375. value: Value{
  8376. kind: valueObject,
  8377. value: &object{
  8378. runtime: rt,
  8379. class: classFunctionName,
  8380. objectClass: classObject,
  8381. prototype: rt.global.FunctionPrototype,
  8382. extensible: true,
  8383. property: map[string]property{
  8384. propertyLength: {
  8385. mode: 0,
  8386. value: Value{
  8387. kind: valueNumber,
  8388. value: 0,
  8389. },
  8390. },
  8391. propertyName: {
  8392. mode: 0,
  8393. value: Value{
  8394. kind: valueString,
  8395. value: "time",
  8396. },
  8397. },
  8398. },
  8399. propertyOrder: []string{
  8400. propertyLength,
  8401. propertyName,
  8402. },
  8403. value: nativeFunctionObject{
  8404. name: "time",
  8405. call: builtinConsoleTime,
  8406. },
  8407. },
  8408. },
  8409. },
  8410. "timeEnd": {
  8411. mode: 0o101,
  8412. value: Value{
  8413. kind: valueObject,
  8414. value: &object{
  8415. runtime: rt,
  8416. class: classFunctionName,
  8417. objectClass: classObject,
  8418. prototype: rt.global.FunctionPrototype,
  8419. extensible: true,
  8420. property: map[string]property{
  8421. propertyLength: {
  8422. mode: 0,
  8423. value: Value{
  8424. kind: valueNumber,
  8425. value: 0,
  8426. },
  8427. },
  8428. propertyName: {
  8429. mode: 0,
  8430. value: Value{
  8431. kind: valueString,
  8432. value: "timeEnd",
  8433. },
  8434. },
  8435. },
  8436. propertyOrder: []string{
  8437. propertyLength,
  8438. propertyName,
  8439. },
  8440. value: nativeFunctionObject{
  8441. name: "timeEnd",
  8442. call: builtinConsoleTimeEnd,
  8443. },
  8444. },
  8445. },
  8446. },
  8447. "trace": {
  8448. mode: 0o101,
  8449. value: Value{
  8450. kind: valueObject,
  8451. value: &object{
  8452. runtime: rt,
  8453. class: classFunctionName,
  8454. objectClass: classObject,
  8455. prototype: rt.global.FunctionPrototype,
  8456. extensible: true,
  8457. property: map[string]property{
  8458. propertyLength: {
  8459. mode: 0,
  8460. value: Value{
  8461. kind: valueNumber,
  8462. value: 0,
  8463. },
  8464. },
  8465. propertyName: {
  8466. mode: 0,
  8467. value: Value{
  8468. kind: valueString,
  8469. value: "trace",
  8470. },
  8471. },
  8472. },
  8473. propertyOrder: []string{
  8474. propertyLength,
  8475. propertyName,
  8476. },
  8477. value: nativeFunctionObject{
  8478. name: "trace",
  8479. call: builtinConsoleTrace,
  8480. },
  8481. },
  8482. },
  8483. },
  8484. "assert": {
  8485. mode: 0o101,
  8486. value: Value{
  8487. kind: valueObject,
  8488. value: &object{
  8489. runtime: rt,
  8490. class: classFunctionName,
  8491. objectClass: classObject,
  8492. prototype: rt.global.FunctionPrototype,
  8493. extensible: true,
  8494. property: map[string]property{
  8495. propertyLength: {
  8496. mode: 0,
  8497. value: Value{
  8498. kind: valueNumber,
  8499. value: 0,
  8500. },
  8501. },
  8502. propertyName: {
  8503. mode: 0,
  8504. value: Value{
  8505. kind: valueString,
  8506. value: "assert",
  8507. },
  8508. },
  8509. },
  8510. propertyOrder: []string{
  8511. propertyLength,
  8512. propertyName,
  8513. },
  8514. value: nativeFunctionObject{
  8515. name: "assert",
  8516. call: builtinConsoleAssert,
  8517. },
  8518. },
  8519. },
  8520. },
  8521. },
  8522. propertyOrder: []string{
  8523. "log",
  8524. "debug",
  8525. "info",
  8526. "error",
  8527. "warn",
  8528. "dir",
  8529. "time",
  8530. "timeEnd",
  8531. "trace",
  8532. "assert",
  8533. },
  8534. }
  8535. }
  8536. func intValue(value int) Value {
  8537. return Value{
  8538. kind: valueNumber,
  8539. value: value,
  8540. }
  8541. }
  8542. func int32Value(value int32) Value {
  8543. return Value{
  8544. kind: valueNumber,
  8545. value: value,
  8546. }
  8547. }
  8548. func int64Value(value int64) Value {
  8549. return Value{
  8550. kind: valueNumber,
  8551. value: value,
  8552. }
  8553. }
  8554. func uint16Value(value uint16) Value {
  8555. return Value{
  8556. kind: valueNumber,
  8557. value: value,
  8558. }
  8559. }
  8560. func uint32Value(value uint32) Value {
  8561. return Value{
  8562. kind: valueNumber,
  8563. value: value,
  8564. }
  8565. }
  8566. func float64Value(value float64) Value {
  8567. return Value{
  8568. kind: valueNumber,
  8569. value: value,
  8570. }
  8571. }
  8572. func stringValue(value string) Value {
  8573. return Value{
  8574. kind: valueString,
  8575. value: value,
  8576. }
  8577. }
  8578. func string16Value(value []uint16) Value {
  8579. return Value{
  8580. kind: valueString,
  8581. value: value,
  8582. }
  8583. }
  8584. func boolValue(value bool) Value {
  8585. return Value{
  8586. kind: valueBoolean,
  8587. value: value,
  8588. }
  8589. }
  8590. func objectValue(value *object) Value {
  8591. return Value{
  8592. kind: valueObject,
  8593. value: value,
  8594. }
  8595. }