1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625362636273628362936303631363236333634363536363637363836393640364136423643364436453646364736483649365036513652365336543655365636573658365936603661366236633664366536663667366836693670367136723673367436753676367736783679368036813682368336843685368636873688368936903691369236933694369536963697369836993700370137023703370437053706370737083709371037113712371337143715371637173718371937203721372237233724372537263727372837293730373137323733373437353736373737383739374037413742374337443745374637473748374937503751375237533754375537563757375837593760376137623763376437653766376737683769377037713772377337743775377637773778377937803781378237833784378537863787378837893790379137923793379437953796379737983799380038013802380338043805380638073808380938103811381238133814381538163817381838193820382138223823382438253826382738283829383038313832383338343835383638373838383938403841384238433844384538463847384838493850385138523853385438553856385738583859386038613862386338643865386638673868386938703871387238733874387538763877387838793880388138823883388438853886388738883889389038913892389338943895389638973898389939003901390239033904390539063907390839093910391139123913391439153916391739183919392039213922392339243925392639273928392939303931393239333934393539363937393839393940394139423943394439453946394739483949395039513952395339543955395639573958395939603961396239633964396539663967396839693970397139723973397439753976397739783979398039813982398339843985398639873988398939903991399239933994399539963997399839994000400140024003400440054006400740084009401040114012401340144015401640174018401940204021402240234024402540264027402840294030403140324033403440354036403740384039404040414042404340444045404640474048404940504051405240534054405540564057405840594060406140624063406440654066406740684069407040714072407340744075407640774078407940804081408240834084408540864087408840894090409140924093409440954096409740984099410041014102410341044105410641074108410941104111411241134114411541164117411841194120412141224123412441254126412741284129413041314132413341344135413641374138413941404141414241434144414541464147414841494150415141524153415441554156415741584159416041614162416341644165416641674168416941704171417241734174417541764177417841794180418141824183418441854186418741884189419041914192419341944195419641974198419942004201420242034204420542064207420842094210421142124213421442154216421742184219422042214222422342244225422642274228422942304231423242334234423542364237423842394240424142424243424442454246424742484249425042514252425342544255425642574258425942604261426242634264426542664267426842694270427142724273427442754276427742784279428042814282428342844285428642874288428942904291429242934294429542964297429842994300430143024303430443054306430743084309431043114312431343144315431643174318431943204321432243234324432543264327432843294330433143324333433443354336433743384339434043414342434343444345434643474348434943504351435243534354435543564357435843594360436143624363436443654366436743684369437043714372437343744375437643774378437943804381438243834384438543864387438843894390439143924393439443954396439743984399440044014402440344044405440644074408440944104411441244134414441544164417441844194420442144224423442444254426442744284429443044314432443344344435443644374438443944404441444244434444444544464447444844494450445144524453445444554456445744584459446044614462446344644465446644674468446944704471447244734474447544764477447844794480448144824483448444854486448744884489449044914492449344944495449644974498449945004501450245034504450545064507450845094510451145124513451445154516451745184519452045214522452345244525452645274528452945304531453245334534453545364537453845394540454145424543454445454546454745484549455045514552455345544555455645574558455945604561456245634564456545664567456845694570457145724573457445754576457745784579458045814582458345844585458645874588458945904591459245934594459545964597459845994600460146024603460446054606460746084609461046114612461346144615461646174618461946204621462246234624462546264627462846294630463146324633463446354636463746384639464046414642464346444645464646474648464946504651465246534654465546564657465846594660466146624663466446654666466746684669467046714672467346744675467646774678467946804681468246834684468546864687468846894690469146924693469446954696469746984699470047014702470347044705470647074708470947104711471247134714471547164717471847194720472147224723472447254726472747284729473047314732473347344735473647374738473947404741474247434744474547464747474847494750475147524753475447554756475747584759476047614762476347644765476647674768476947704771477247734774477547764777477847794780478147824783478447854786478747884789479047914792479347944795479647974798479948004801480248034804480548064807480848094810481148124813481448154816481748184819482048214822482348244825482648274828482948304831483248334834483548364837483848394840484148424843484448454846484748484849485048514852485348544855485648574858485948604861486248634864486548664867486848694870487148724873487448754876487748784879488048814882488348844885488648874888488948904891489248934894489548964897489848994900490149024903490449054906490749084909491049114912491349144915491649174918491949204921492249234924492549264927492849294930493149324933493449354936493749384939494049414942494349444945494649474948494949504951495249534954495549564957495849594960496149624963496449654966496749684969497049714972497349744975497649774978497949804981498249834984498549864987498849894990499149924993499449954996499749984999500050015002500350045005500650075008500950105011501250135014501550165017501850195020502150225023502450255026502750285029503050315032503350345035503650375038503950405041504250435044504550465047504850495050505150525053505450555056505750585059506050615062506350645065506650675068506950705071507250735074507550765077507850795080508150825083508450855086508750885089509050915092509350945095509650975098509951005101510251035104510551065107510851095110511151125113511451155116511751185119512051215122512351245125512651275128512951305131513251335134513551365137513851395140514151425143514451455146514751485149515051515152515351545155515651575158515951605161516251635164516551665167516851695170517151725173517451755176517751785179518051815182518351845185518651875188518951905191519251935194519551965197519851995200520152025203520452055206520752085209521052115212521352145215521652175218521952205221522252235224522552265227522852295230523152325233523452355236523752385239524052415242524352445245524652475248524952505251525252535254525552565257525852595260526152625263526452655266526752685269527052715272527352745275527652775278527952805281528252835284528552865287528852895290529152925293529452955296529752985299530053015302530353045305530653075308530953105311531253135314531553165317531853195320532153225323532453255326532753285329533053315332533353345335533653375338533953405341534253435344534553465347534853495350535153525353535453555356535753585359536053615362536353645365536653675368536953705371537253735374537553765377537853795380538153825383538453855386538753885389539053915392539353945395539653975398539954005401540254035404540554065407540854095410541154125413541454155416541754185419542054215422542354245425542654275428542954305431543254335434543554365437543854395440544154425443544454455446544754485449545054515452545354545455545654575458545954605461546254635464546554665467546854695470547154725473547454755476547754785479548054815482548354845485548654875488548954905491549254935494549554965497549854995500550155025503550455055506550755085509551055115512551355145515551655175518551955205521552255235524552555265527552855295530553155325533553455355536553755385539554055415542554355445545554655475548554955505551555255535554555555565557555855595560556155625563556455655566556755685569557055715572557355745575557655775578557955805581558255835584558555865587558855895590559155925593559455955596559755985599560056015602560356045605560656075608560956105611561256135614561556165617561856195620562156225623562456255626562756285629563056315632563356345635563656375638563956405641564256435644564556465647564856495650565156525653565456555656565756585659566056615662566356645665566656675668566956705671567256735674567556765677567856795680568156825683568456855686568756885689569056915692569356945695569656975698569957005701570257035704570557065707570857095710571157125713571457155716571757185719572057215722572357245725572657275728572957305731573257335734573557365737573857395740574157425743574457455746574757485749575057515752575357545755575657575758575957605761576257635764576557665767576857695770577157725773577457755776577757785779578057815782578357845785578657875788578957905791579257935794579557965797579857995800580158025803580458055806580758085809581058115812581358145815581658175818581958205821582258235824582558265827582858295830583158325833583458355836583758385839584058415842584358445845584658475848584958505851585258535854585558565857585858595860586158625863586458655866586758685869587058715872587358745875587658775878587958805881588258835884588558865887588858895890589158925893589458955896589758985899590059015902590359045905590659075908590959105911591259135914591559165917591859195920592159225923592459255926592759285929593059315932593359345935593659375938593959405941594259435944594559465947594859495950595159525953595459555956595759585959596059615962596359645965596659675968596959705971597259735974597559765977597859795980598159825983598459855986598759885989599059915992599359945995599659975998599960006001600260036004600560066007600860096010601160126013601460156016601760186019602060216022602360246025602660276028602960306031603260336034603560366037603860396040604160426043604460456046604760486049605060516052605360546055605660576058605960606061606260636064606560666067606860696070607160726073607460756076607760786079608060816082608360846085608660876088608960906091609260936094609560966097609860996100610161026103610461056106610761086109611061116112611361146115611661176118611961206121612261236124612561266127612861296130613161326133613461356136613761386139614061416142614361446145614661476148614961506151615261536154615561566157615861596160616161626163616461656166616761686169617061716172617361746175617661776178617961806181618261836184618561866187618861896190619161926193619461956196619761986199620062016202620362046205620662076208620962106211621262136214621562166217621862196220622162226223622462256226622762286229623062316232623362346235623662376238623962406241624262436244624562466247624862496250625162526253625462556256625762586259626062616262626362646265626662676268626962706271627262736274627562766277627862796280628162826283628462856286628762886289629062916292629362946295629662976298629963006301630263036304630563066307630863096310631163126313631463156316631763186319632063216322632363246325632663276328632963306331633263336334633563366337633863396340634163426343634463456346634763486349635063516352635363546355635663576358635963606361636263636364636563666367636863696370637163726373637463756376637763786379638063816382638363846385638663876388638963906391639263936394639563966397639863996400640164026403640464056406640764086409641064116412641364146415641664176418641964206421642264236424642564266427642864296430643164326433643464356436643764386439644064416442644364446445644664476448644964506451645264536454645564566457645864596460646164626463646464656466646764686469647064716472647364746475647664776478647964806481648264836484648564866487648864896490649164926493649464956496649764986499650065016502650365046505650665076508650965106511651265136514651565166517651865196520652165226523652465256526652765286529653065316532653365346535653665376538653965406541654265436544654565466547654865496550655165526553655465556556655765586559656065616562656365646565656665676568656965706571657265736574657565766577657865796580658165826583658465856586658765886589659065916592659365946595659665976598659966006601660266036604660566066607660866096610661166126613661466156616661766186619662066216622662366246625662666276628662966306631663266336634663566366637663866396640664166426643664466456646664766486649665066516652665366546655665666576658665966606661666266636664666566666667666866696670667166726673667466756676667766786679668066816682668366846685668666876688668966906691669266936694669566966697669866996700670167026703670467056706670767086709671067116712671367146715671667176718671967206721672267236724672567266727672867296730673167326733673467356736673767386739674067416742674367446745674667476748674967506751675267536754675567566757675867596760676167626763676467656766676767686769677067716772677367746775677667776778677967806781678267836784678567866787678867896790679167926793679467956796679767986799680068016802680368046805680668076808680968106811681268136814681568166817681868196820682168226823682468256826682768286829683068316832683368346835683668376838683968406841684268436844684568466847684868496850685168526853685468556856685768586859686068616862686368646865686668676868686968706871687268736874687568766877687868796880688168826883688468856886688768886889689068916892689368946895689668976898689969006901690269036904690569066907690869096910691169126913691469156916691769186919692069216922692369246925692669276928692969306931693269336934693569366937693869396940694169426943694469456946694769486949695069516952695369546955695669576958695969606961696269636964696569666967696869696970697169726973697469756976697769786979698069816982698369846985698669876988698969906991699269936994699569966997699869997000700170027003700470057006700770087009701070117012701370147015701670177018701970207021702270237024702570267027702870297030703170327033703470357036703770387039704070417042704370447045704670477048704970507051705270537054705570567057705870597060706170627063706470657066706770687069707070717072707370747075707670777078707970807081708270837084708570867087708870897090709170927093709470957096709770987099710071017102710371047105710671077108710971107111711271137114711571167117711871197120712171227123712471257126712771287129713071317132713371347135713671377138713971407141714271437144714571467147714871497150715171527153715471557156715771587159716071617162716371647165716671677168716971707171717271737174717571767177717871797180718171827183718471857186718771887189719071917192719371947195719671977198719972007201720272037204720572067207720872097210721172127213721472157216721772187219722072217222722372247225722672277228722972307231723272337234723572367237723872397240724172427243724472457246724772487249725072517252725372547255725672577258725972607261726272637264726572667267726872697270727172727273727472757276727772787279728072817282728372847285728672877288728972907291729272937294729572967297729872997300730173027303730473057306730773087309731073117312731373147315731673177318731973207321732273237324732573267327732873297330733173327333733473357336733773387339734073417342734373447345734673477348734973507351735273537354735573567357735873597360736173627363736473657366736773687369737073717372737373747375737673777378737973807381738273837384738573867387738873897390739173927393739473957396739773987399740074017402740374047405740674077408740974107411741274137414741574167417741874197420742174227423742474257426742774287429743074317432743374347435743674377438743974407441744274437444744574467447744874497450745174527453745474557456745774587459746074617462746374647465746674677468746974707471747274737474747574767477747874797480748174827483748474857486748774887489749074917492749374947495749674977498749975007501750275037504750575067507750875097510751175127513751475157516751775187519752075217522752375247525752675277528752975307531753275337534753575367537753875397540754175427543754475457546754775487549755075517552755375547555755675577558755975607561756275637564756575667567756875697570757175727573757475757576757775787579758075817582758375847585758675877588758975907591759275937594759575967597759875997600760176027603760476057606760776087609761076117612761376147615761676177618761976207621762276237624762576267627762876297630763176327633763476357636763776387639764076417642764376447645764676477648764976507651765276537654765576567657765876597660766176627663766476657666766776687669767076717672767376747675767676777678767976807681768276837684768576867687768876897690769176927693769476957696769776987699770077017702770377047705770677077708770977107711771277137714771577167717771877197720772177227723772477257726772777287729773077317732773377347735773677377738773977407741774277437744774577467747774877497750775177527753775477557756775777587759776077617762776377647765776677677768776977707771777277737774777577767777777877797780778177827783778477857786778777887789779077917792779377947795779677977798779978007801780278037804780578067807780878097810781178127813781478157816781778187819782078217822782378247825782678277828782978307831783278337834783578367837783878397840784178427843784478457846784778487849785078517852785378547855785678577858785978607861786278637864786578667867786878697870787178727873787478757876787778787879788078817882788378847885788678877888788978907891789278937894789578967897789878997900790179027903790479057906790779087909791079117912791379147915791679177918791979207921792279237924792579267927792879297930793179327933793479357936793779387939794079417942794379447945794679477948794979507951795279537954795579567957795879597960796179627963796479657966796779687969797079717972797379747975797679777978797979807981798279837984798579867987798879897990799179927993799479957996799779987999800080018002800380048005800680078008800980108011801280138014801580168017801880198020802180228023802480258026802780288029803080318032803380348035803680378038803980408041804280438044804580468047804880498050805180528053805480558056805780588059806080618062806380648065806680678068806980708071807280738074807580768077807880798080808180828083808480858086808780888089809080918092809380948095809680978098809981008101810281038104810581068107810881098110811181128113811481158116811781188119812081218122812381248125812681278128812981308131813281338134813581368137813881398140814181428143814481458146814781488149815081518152815381548155815681578158815981608161816281638164816581668167816881698170817181728173817481758176817781788179818081818182818381848185818681878188818981908191819281938194819581968197819881998200820182028203820482058206820782088209821082118212821382148215821682178218821982208221822282238224822582268227822882298230823182328233823482358236823782388239824082418242824382448245824682478248824982508251825282538254825582568257825882598260826182628263826482658266826782688269827082718272827382748275827682778278827982808281828282838284828582868287828882898290829182928293829482958296829782988299830083018302830383048305830683078308830983108311831283138314831583168317831883198320832183228323832483258326832783288329833083318332833383348335833683378338833983408341834283438344834583468347834883498350835183528353835483558356835783588359836083618362836383648365836683678368836983708371837283738374837583768377837883798380838183828383838483858386838783888389839083918392839383948395839683978398839984008401840284038404840584068407840884098410841184128413841484158416841784188419842084218422842384248425842684278428842984308431843284338434843584368437843884398440844184428443844484458446844784488449845084518452845384548455845684578458845984608461846284638464846584668467846884698470847184728473847484758476847784788479848084818482848384848485848684878488848984908491849284938494849584968497849884998500850185028503850485058506850785088509851085118512851385148515851685178518851985208521852285238524852585268527852885298530853185328533853485358536853785388539854085418542854385448545854685478548854985508551855285538554855585568557855885598560856185628563856485658566856785688569857085718572857385748575857685778578857985808581858285838584858585868587858885898590859185928593859485958596859785988599860086018602860386048605860686078608860986108611861286138614861586168617861886198620862186228623862486258626862786288629863086318632863386348635863686378638863986408641864286438644864586468647864886498650865186528653865486558656865786588659866086618662866386648665866686678668866986708671867286738674867586768677867886798680868186828683868486858686868786888689869086918692869386948695869686978698869987008701870287038704870587068707870887098710871187128713871487158716871787188719872087218722872387248725872687278728872987308731873287338734873587368737873887398740874187428743874487458746874787488749875087518752875387548755875687578758875987608761876287638764876587668767876887698770877187728773877487758776877787788779878087818782878387848785878687878788878987908791879287938794879587968797879887998800880188028803880488058806880788088809881088118812881388148815881688178818881988208821882288238824882588268827882888298830883188328833883488358836883788388839884088418842884388448845884688478848884988508851885288538854885588568857885888598860886188628863886488658866886788688869887088718872887388748875887688778878887988808881888288838884888588868887888888898890889188928893889488958896889788988899890089018902890389048905890689078908890989108911891289138914891589168917891889198920892189228923892489258926892789288929893089318932893389348935893689378938893989408941894289438944894589468947894889498950895189528953895489558956895789588959896089618962896389648965896689678968896989708971897289738974897589768977897889798980898189828983898489858986898789888989899089918992899389948995899689978998899990009001900290039004900590069007900890099010901190129013901490159016901790189019902090219022902390249025902690279028902990309031903290339034903590369037903890399040904190429043904490459046904790489049905090519052905390549055905690579058905990609061906290639064906590669067906890699070907190729073907490759076907790789079908090819082908390849085908690879088908990909091909290939094909590969097909890999100910191029103910491059106910791089109911091119112911391149115911691179118911991209121912291239124912591269127912891299130913191329133913491359136913791389139914091419142914391449145914691479148914991509151915291539154915591569157915891599160916191629163916491659166916791689169917091719172917391749175917691779178917991809181918291839184918591869187918891899190919191929193919491959196919791989199920092019202920392049205920692079208920992109211921292139214921592169217921892199220922192229223922492259226922792289229923092319232923392349235923692379238923992409241924292439244924592469247924892499250925192529253925492559256925792589259926092619262926392649265926692679268926992709271927292739274927592769277927892799280928192829283928492859286928792889289929092919292929392949295929692979298929993009301930293039304930593069307930893099310931193129313931493159316931793189319932093219322932393249325932693279328932993309331933293339334933593369337933893399340934193429343934493459346934793489349935093519352935393549355935693579358935993609361936293639364936593669367936893699370937193729373937493759376937793789379938093819382938393849385938693879388938993909391939293939394939593969397939893999400940194029403940494059406940794089409941094119412941394149415941694179418941994209421942294239424942594269427942894299430943194329433943494359436943794389439944094419442944394449445944694479448944994509451945294539454945594569457945894599460946194629463946494659466946794689469947094719472947394749475947694779478947994809481948294839484948594869487948894899490949194929493949494959496949794989499950095019502950395049505950695079508950995109511951295139514951595169517951895199520952195229523952495259526952795289529953095319532953395349535953695379538953995409541954295439544954595469547954895499550955195529553955495559556955795589559956095619562956395649565956695679568956995709571957295739574957595769577957895799580958195829583958495859586958795889589959095919592959395949595959695979598959996009601960296039604960596069607960896099610961196129613961496159616961796189619962096219622962396249625962696279628962996309631963296339634963596369637963896399640964196429643964496459646964796489649965096519652965396549655965696579658965996609661966296639664966596669667966896699670967196729673967496759676967796789679968096819682968396849685968696879688968996909691969296939694969596969697969896999700970197029703970497059706970797089709971097119712971397149715971697179718971997209721972297239724972597269727972897299730973197329733973497359736973797389739974097419742974397449745974697479748974997509751975297539754975597569757975897599760976197629763976497659766976797689769977097719772977397749775977697779778977997809781978297839784978597869787978897899790979197929793979497959796979797989799980098019802980398049805980698079808980998109811981298139814981598169817981898199820982198229823982498259826982798289829983098319832983398349835983698379838983998409841984298439844984598469847984898499850985198529853985498559856985798589859986098619862986398649865986698679868986998709871987298739874987598769877987898799880988198829883988498859886988798889889989098919892989398949895989698979898989999009901990299039904990599069907990899099910991199129913991499159916991799189919992099219922992399249925992699279928992999309931993299339934993599369937993899399940994199429943994499459946994799489949995099519952995399549955995699579958995999609961996299639964996599669967996899699970997199729973997499759976997799789979998099819982998399849985998699879988998999909991999299939994999599969997999899991000010001100021000310004100051000610007100081000910010100111001210013100141001510016100171001810019100201002110022100231002410025100261002710028100291003010031100321003310034100351003610037100381003910040100411004210043100441004510046100471004810049100501005110052100531005410055100561005710058100591006010061100621006310064100651006610067100681006910070100711007210073100741007510076100771007810079100801008110082100831008410085100861008710088100891009010091100921009310094100951009610097100981009910100101011010210103101041010510106101071010810109101101011110112101131011410115101161011710118101191012010121101221012310124101251012610127101281012910130101311013210133101341013510136101371013810139101401014110142101431014410145101461014710148101491015010151101521015310154101551015610157101581015910160101611016210163101641016510166101671016810169101701017110172101731017410175101761017710178101791018010181101821018310184101851018610187101881018910190101911019210193101941019510196101971019810199102001020110202102031020410205102061020710208102091021010211102121021310214102151021610217102181021910220102211022210223102241022510226102271022810229102301023110232102331023410235102361023710238102391024010241102421024310244102451024610247102481024910250102511025210253102541025510256102571025810259102601026110262102631026410265102661026710268102691027010271102721027310274102751027610277102781027910280102811028210283102841028510286102871028810289102901029110292102931029410295102961029710298102991030010301103021030310304103051030610307103081030910310103111031210313103141031510316103171031810319103201032110322103231032410325103261032710328103291033010331103321033310334103351033610337103381033910340103411034210343103441034510346103471034810349103501035110352103531035410355103561035710358103591036010361103621036310364103651036610367103681036910370103711037210373103741037510376103771037810379103801038110382103831038410385103861038710388103891039010391103921039310394103951039610397103981039910400104011040210403104041040510406104071040810409104101041110412104131041410415104161041710418104191042010421104221042310424104251042610427104281042910430104311043210433104341043510436104371043810439104401044110442104431044410445104461044710448104491045010451104521045310454104551045610457104581045910460104611046210463104641046510466104671046810469104701047110472104731047410475104761047710478104791048010481104821048310484104851048610487104881048910490104911049210493104941049510496104971049810499105001050110502105031050410505105061050710508105091051010511105121051310514105151051610517105181051910520105211052210523105241052510526105271052810529105301053110532105331053410535105361053710538105391054010541105421054310544105451054610547105481054910550105511055210553105541055510556105571055810559105601056110562105631056410565105661056710568105691057010571105721057310574105751057610577105781057910580105811058210583105841058510586105871058810589105901059110592105931059410595105961059710598105991060010601106021060310604106051060610607106081060910610106111061210613106141061510616106171061810619106201062110622106231062410625106261062710628106291063010631106321063310634106351063610637106381063910640106411064210643106441064510646106471064810649106501065110652106531065410655106561065710658106591066010661106621066310664106651066610667106681066910670106711067210673106741067510676106771067810679106801068110682106831068410685106861068710688106891069010691106921069310694106951069610697106981069910700107011070210703107041070510706107071070810709107101071110712107131071410715107161071710718107191072010721107221072310724107251072610727107281072910730107311073210733107341073510736107371073810739107401074110742107431074410745107461074710748107491075010751107521075310754107551075610757107581075910760107611076210763107641076510766107671076810769107701077110772107731077410775107761077710778107791078010781107821078310784107851078610787107881078910790107911079210793107941079510796107971079810799108001080110802108031080410805108061080710808108091081010811108121081310814108151081610817108181081910820108211082210823108241082510826108271082810829108301083110832108331083410835108361083710838108391084010841108421084310844108451084610847108481084910850108511085210853108541085510856108571085810859108601086110862108631086410865108661086710868108691087010871108721087310874108751087610877108781087910880108811088210883108841088510886108871088810889108901089110892108931089410895108961089710898108991090010901109021090310904109051090610907109081090910910109111091210913109141091510916109171091810919109201092110922109231092410925109261092710928109291093010931109321093310934109351093610937109381093910940109411094210943109441094510946109471094810949109501095110952109531095410955109561095710958109591096010961109621096310964109651096610967109681096910970109711097210973109741097510976109771097810979109801098110982109831098410985109861098710988109891099010991109921099310994109951099610997109981099911000110011100211003110041100511006110071100811009110101101111012110131101411015110161101711018110191102011021110221102311024110251102611027110281102911030110311103211033110341103511036110371103811039110401104111042110431104411045110461104711048110491105011051110521105311054110551105611057110581105911060110611106211063110641106511066110671106811069110701107111072110731107411075110761107711078110791108011081110821108311084110851108611087110881108911090110911109211093110941109511096110971109811099111001110111102111031110411105111061110711108111091111011111111121111311114111151111611117111181111911120111211112211123111241112511126111271112811129111301113111132111331113411135111361113711138111391114011141111421114311144111451114611147111481114911150111511115211153111541115511156111571115811159111601116111162111631116411165111661116711168111691117011171111721117311174111751117611177111781117911180111811118211183111841118511186111871118811189111901119111192111931119411195111961119711198111991120011201112021120311204112051120611207112081120911210112111121211213112141121511216112171121811219112201122111222112231122411225112261122711228112291123011231112321123311234112351123611237112381123911240112411124211243112441124511246112471124811249112501125111252112531125411255112561125711258112591126011261112621126311264112651126611267112681126911270112711127211273112741127511276112771127811279112801128111282112831128411285112861128711288112891129011291112921129311294112951129611297112981129911300113011130211303113041130511306113071130811309113101131111312113131131411315113161131711318113191132011321113221132311324113251132611327113281132911330113311133211333113341133511336113371133811339113401134111342113431134411345113461134711348113491135011351113521135311354113551135611357113581135911360113611136211363113641136511366113671136811369113701137111372113731137411375113761137711378113791138011381113821138311384113851138611387113881138911390113911139211393113941139511396113971139811399114001140111402114031140411405114061140711408114091141011411114121141311414114151141611417114181141911420114211142211423114241142511426114271142811429114301143111432114331143411435114361143711438114391144011441114421144311444114451144611447114481144911450114511145211453114541145511456114571145811459114601146111462114631146411465114661146711468114691147011471114721147311474114751147611477114781147911480114811148211483114841148511486114871148811489114901149111492114931149411495114961149711498114991150011501115021150311504115051150611507115081150911510115111151211513115141151511516115171151811519115201152111522115231152411525115261152711528115291153011531115321153311534115351153611537115381153911540115411154211543115441154511546115471154811549115501155111552115531155411555115561155711558115591156011561115621156311564115651156611567115681156911570115711157211573115741157511576115771157811579115801158111582115831158411585115861158711588115891159011591115921159311594115951159611597115981159911600116011160211603116041160511606116071160811609116101161111612116131161411615116161161711618116191162011621116221162311624116251162611627116281162911630116311163211633116341163511636116371163811639116401164111642116431164411645116461164711648116491165011651116521165311654116551165611657116581165911660116611166211663116641166511666116671166811669116701167111672116731167411675116761167711678116791168011681116821168311684116851168611687116881168911690116911169211693116941169511696116971169811699117001170111702117031170411705117061170711708117091171011711117121171311714117151171611717117181171911720117211172211723117241172511726117271172811729117301173111732117331173411735117361173711738117391174011741117421174311744117451174611747117481174911750117511175211753117541175511756117571175811759117601176111762117631176411765117661176711768117691177011771117721177311774117751177611777117781177911780117811178211783117841178511786117871178811789117901179111792117931179411795117961179711798117991180011801118021180311804118051180611807118081180911810118111181211813118141181511816118171181811819118201182111822118231182411825118261182711828118291183011831118321183311834118351183611837118381183911840118411184211843118441184511846118471184811849118501185111852118531185411855118561185711858118591186011861118621186311864118651186611867118681186911870118711187211873118741187511876118771187811879118801188111882118831188411885118861188711888118891189011891118921189311894118951189611897118981189911900119011190211903119041190511906119071190811909119101191111912119131191411915119161191711918119191192011921119221192311924119251192611927119281192911930119311193211933119341193511936119371193811939119401194111942119431194411945119461194711948119491195011951119521195311954119551195611957119581195911960119611196211963119641196511966119671196811969119701197111972119731197411975119761197711978119791198011981119821198311984119851198611987119881198911990119911199211993119941199511996119971199811999120001200112002120031200412005120061200712008120091201012011120121201312014120151201612017120181201912020120211202212023120241202512026120271202812029120301203112032120331203412035120361203712038120391204012041120421204312044120451204612047120481204912050120511205212053120541205512056120571205812059120601206112062120631206412065120661206712068120691207012071120721207312074120751207612077120781207912080120811208212083120841208512086120871208812089120901209112092120931209412095120961209712098120991210012101121021210312104121051210612107121081210912110121111211212113121141211512116121171211812119121201212112122121231212412125121261212712128121291213012131121321213312134121351213612137121381213912140121411214212143121441214512146121471214812149121501215112152121531215412155121561215712158121591216012161121621216312164121651216612167121681216912170121711217212173121741217512176121771217812179121801218112182121831218412185121861218712188121891219012191121921219312194121951219612197121981219912200122011220212203122041220512206122071220812209122101221112212122131221412215122161221712218122191222012221122221222312224122251222612227122281222912230122311223212233122341223512236122371223812239122401224112242122431224412245122461224712248122491225012251122521225312254122551225612257122581225912260122611226212263122641226512266122671226812269122701227112272122731227412275122761227712278122791228012281122821228312284122851228612287122881228912290122911229212293122941229512296122971229812299123001230112302123031230412305123061230712308123091231012311123121231312314123151231612317123181231912320123211232212323123241232512326123271232812329123301233112332123331233412335123361233712338123391234012341123421234312344123451234612347123481234912350123511235212353123541235512356123571235812359123601236112362123631236412365123661236712368123691237012371123721237312374123751237612377123781237912380123811238212383123841238512386123871238812389123901239112392123931239412395123961239712398123991240012401124021240312404124051240612407124081240912410124111241212413124141241512416124171241812419124201242112422124231242412425124261242712428124291243012431124321243312434124351243612437124381243912440124411244212443124441244512446124471244812449124501245112452124531245412455124561245712458124591246012461124621246312464124651246612467124681246912470124711247212473124741247512476124771247812479124801248112482124831248412485124861248712488124891249012491124921249312494124951249612497124981249912500125011250212503125041250512506125071250812509125101251112512125131251412515125161251712518125191252012521125221252312524125251252612527125281252912530125311253212533125341253512536125371253812539125401254112542125431254412545125461254712548125491255012551125521255312554125551255612557125581255912560125611256212563125641256512566125671256812569125701257112572125731257412575125761257712578125791258012581125821258312584125851258612587125881258912590125911259212593125941259512596125971259812599126001260112602126031260412605126061260712608126091261012611126121261312614126151261612617126181261912620126211262212623126241262512626126271262812629126301263112632126331263412635126361263712638126391264012641126421264312644126451264612647126481264912650126511265212653126541265512656126571265812659126601266112662126631266412665126661266712668126691267012671126721267312674126751267612677126781267912680126811268212683126841268512686126871268812689126901269112692126931269412695126961269712698126991270012701127021270312704127051270612707127081270912710127111271212713127141271512716127171271812719127201272112722127231272412725127261272712728127291273012731127321273312734127351273612737127381273912740127411274212743127441274512746127471274812749127501275112752127531275412755127561275712758127591276012761127621276312764127651276612767127681276912770127711277212773127741277512776127771277812779127801278112782127831278412785127861278712788127891279012791127921279312794127951279612797127981279912800128011280212803128041280512806128071280812809128101281112812128131281412815128161281712818128191282012821128221282312824128251282612827128281282912830128311283212833128341283512836128371283812839128401284112842128431284412845128461284712848128491285012851128521285312854128551285612857128581285912860128611286212863128641286512866128671286812869128701287112872128731287412875128761287712878128791288012881128821288312884128851288612887128881288912890128911289212893128941289512896128971289812899129001290112902129031290412905129061290712908129091291012911129121291312914129151291612917129181291912920129211292212923129241292512926129271292812929129301293112932129331293412935129361293712938129391294012941129421294312944129451294612947129481294912950129511295212953129541295512956129571295812959129601296112962129631296412965129661296712968129691297012971129721297312974129751297612977129781297912980129811298212983129841298512986129871298812989129901299112992129931299412995129961299712998129991300013001130021300313004130051300613007130081300913010130111301213013130141301513016130171301813019130201302113022130231302413025130261302713028130291303013031130321303313034130351303613037130381303913040130411304213043130441304513046130471304813049130501305113052130531305413055130561305713058130591306013061130621306313064130651306613067130681306913070130711307213073130741307513076130771307813079130801308113082130831308413085130861308713088130891309013091130921309313094130951309613097130981309913100131011310213103131041310513106131071310813109131101311113112131131311413115131161311713118131191312013121131221312313124131251312613127131281312913130131311313213133131341313513136131371313813139131401314113142131431314413145131461314713148131491315013151131521315313154131551315613157131581315913160131611316213163131641316513166131671316813169131701317113172131731317413175131761317713178131791318013181131821318313184131851318613187131881318913190131911319213193131941319513196131971319813199132001320113202132031320413205132061320713208132091321013211132121321313214132151321613217132181321913220132211322213223132241322513226132271322813229132301323113232132331323413235132361323713238132391324013241132421324313244132451324613247132481324913250132511325213253132541325513256132571325813259132601326113262132631326413265132661326713268132691327013271132721327313274132751327613277132781327913280132811328213283132841328513286132871328813289132901329113292132931329413295132961329713298132991330013301133021330313304133051330613307133081330913310133111331213313133141331513316133171331813319133201332113322133231332413325133261332713328133291333013331133321333313334133351333613337133381333913340133411334213343133441334513346133471334813349133501335113352133531335413355133561335713358133591336013361133621336313364133651336613367133681336913370133711337213373133741337513376133771337813379133801338113382133831338413385133861338713388133891339013391133921339313394133951339613397133981339913400134011340213403134041340513406134071340813409134101341113412134131341413415134161341713418134191342013421134221342313424134251342613427134281342913430134311343213433134341343513436134371343813439134401344113442134431344413445134461344713448134491345013451134521345313454134551345613457134581345913460134611346213463134641346513466134671346813469134701347113472134731347413475134761347713478134791348013481134821348313484134851348613487134881348913490134911349213493134941349513496134971349813499135001350113502135031350413505135061350713508135091351013511135121351313514135151351613517135181351913520135211352213523135241352513526135271352813529135301353113532135331353413535135361353713538135391354013541135421354313544135451354613547135481354913550135511355213553135541355513556135571355813559135601356113562135631356413565135661356713568135691357013571135721357313574135751357613577135781357913580135811358213583135841358513586135871358813589135901359113592135931359413595135961359713598135991360013601136021360313604136051360613607136081360913610136111361213613136141361513616136171361813619136201362113622136231362413625136261362713628136291363013631136321363313634136351363613637136381363913640136411364213643136441364513646136471364813649136501365113652136531365413655136561365713658136591366013661136621366313664136651366613667136681366913670136711367213673136741367513676136771367813679136801368113682136831368413685136861368713688136891369013691136921369313694136951369613697136981369913700137011370213703137041370513706137071370813709137101371113712137131371413715137161371713718137191372013721137221372313724137251372613727137281372913730137311373213733137341373513736137371373813739137401374113742137431374413745137461374713748137491375013751137521375313754137551375613757137581375913760137611376213763137641376513766137671376813769137701377113772137731377413775137761377713778137791378013781137821378313784137851378613787137881378913790137911379213793137941379513796137971379813799138001380113802138031380413805138061380713808138091381013811138121381313814138151381613817138181381913820138211382213823138241382513826138271382813829138301383113832138331383413835138361383713838138391384013841138421384313844138451384613847138481384913850138511385213853138541385513856138571385813859138601386113862138631386413865138661386713868138691387013871138721387313874138751387613877138781387913880138811388213883138841388513886138871388813889138901389113892138931389413895138961389713898138991390013901139021390313904139051390613907139081390913910139111391213913139141391513916139171391813919139201392113922139231392413925139261392713928139291393013931139321393313934139351393613937139381393913940139411394213943139441394513946139471394813949139501395113952139531395413955139561395713958139591396013961139621396313964139651396613967139681396913970139711397213973139741397513976139771397813979139801398113982139831398413985139861398713988139891399013991139921399313994139951399613997139981399914000140011400214003140041400514006140071400814009140101401114012140131401414015140161401714018140191402014021140221402314024140251402614027140281402914030140311403214033140341403514036140371403814039140401404114042140431404414045140461404714048140491405014051140521405314054140551405614057140581405914060140611406214063140641406514066140671406814069140701407114072140731407414075140761407714078140791408014081140821408314084140851408614087140881408914090140911409214093140941409514096140971409814099141001410114102141031410414105141061410714108141091411014111141121411314114141151411614117141181411914120141211412214123141241412514126141271412814129141301413114132141331413414135141361413714138141391414014141141421414314144141451414614147141481414914150141511415214153141541415514156141571415814159141601416114162141631416414165141661416714168141691417014171141721417314174141751417614177141781417914180141811418214183141841418514186141871418814189141901419114192141931419414195141961419714198141991420014201142021420314204142051420614207142081420914210142111421214213142141421514216142171421814219142201422114222142231422414225142261422714228142291423014231142321423314234142351423614237142381423914240142411424214243142441424514246142471424814249142501425114252142531425414255142561425714258142591426014261142621426314264142651426614267142681426914270142711427214273142741427514276142771427814279142801428114282142831428414285142861428714288142891429014291142921429314294142951429614297142981429914300143011430214303143041430514306143071430814309143101431114312143131431414315143161431714318143191432014321143221432314324143251432614327143281432914330143311433214333143341433514336143371433814339143401434114342143431434414345143461434714348143491435014351143521435314354143551435614357143581435914360143611436214363143641436514366143671436814369143701437114372143731437414375143761437714378143791438014381143821438314384143851438614387143881438914390143911439214393143941439514396143971439814399144001440114402144031440414405144061440714408144091441014411144121441314414144151441614417144181441914420144211442214423144241442514426144271442814429144301443114432144331443414435144361443714438144391444014441144421444314444144451444614447144481444914450144511445214453144541445514456144571445814459144601446114462144631446414465144661446714468144691447014471144721447314474144751447614477144781447914480144811448214483144841448514486144871448814489144901449114492144931449414495144961449714498144991450014501145021450314504145051450614507145081450914510145111451214513145141451514516145171451814519145201452114522145231452414525145261452714528145291453014531145321453314534145351453614537145381453914540145411454214543145441454514546145471454814549145501455114552145531455414555145561455714558145591456014561145621456314564145651456614567145681456914570145711457214573145741457514576145771457814579145801458114582145831458414585145861458714588145891459014591145921459314594145951459614597145981459914600146011460214603146041460514606146071460814609146101461114612146131461414615146161461714618146191462014621146221462314624146251462614627146281462914630146311463214633146341463514636146371463814639146401464114642146431464414645146461464714648146491465014651146521465314654146551465614657146581465914660146611466214663146641466514666146671466814669146701467114672146731467414675146761467714678146791468014681146821468314684146851468614687146881468914690146911469214693146941469514696146971469814699147001470114702147031470414705147061470714708147091471014711147121471314714147151471614717147181471914720147211472214723147241472514726147271472814729147301473114732147331473414735147361473714738147391474014741147421474314744147451474614747147481474914750147511475214753147541475514756147571475814759147601476114762147631476414765147661476714768147691477014771147721477314774147751477614777147781477914780147811478214783147841478514786147871478814789147901479114792147931479414795147961479714798147991480014801148021480314804148051480614807148081480914810148111481214813148141481514816148171481814819148201482114822148231482414825148261482714828148291483014831148321483314834148351483614837148381483914840148411484214843148441484514846148471484814849148501485114852148531485414855148561485714858148591486014861148621486314864148651486614867148681486914870148711487214873148741487514876148771487814879148801488114882148831488414885148861488714888148891489014891148921489314894148951489614897148981489914900149011490214903149041490514906149071490814909149101491114912149131491414915149161491714918149191492014921149221492314924149251492614927149281492914930149311493214933149341493514936149371493814939149401494114942149431494414945149461494714948149491495014951149521495314954149551495614957149581495914960149611496214963149641496514966149671496814969149701497114972149731497414975149761497714978149791498014981149821498314984149851498614987149881498914990149911499214993149941499514996149971499814999150001500115002150031500415005150061500715008150091501015011150121501315014150151501615017150181501915020150211502215023150241502515026150271502815029150301503115032150331503415035150361503715038150391504015041150421504315044150451504615047150481504915050150511505215053150541505515056150571505815059150601506115062150631506415065150661506715068150691507015071150721507315074150751507615077150781507915080150811508215083150841508515086150871508815089150901509115092150931509415095150961509715098150991510015101151021510315104151051510615107151081510915110151111511215113151141511515116151171511815119151201512115122151231512415125151261512715128151291513015131151321513315134151351513615137151381513915140151411514215143151441514515146151471514815149151501515115152151531515415155151561515715158151591516015161151621516315164151651516615167151681516915170151711517215173151741517515176151771517815179151801518115182151831518415185151861518715188151891519015191151921519315194151951519615197151981519915200152011520215203152041520515206152071520815209152101521115212152131521415215152161521715218152191522015221152221522315224152251522615227152281522915230152311523215233152341523515236152371523815239152401524115242152431524415245152461524715248152491525015251152521525315254152551525615257152581525915260152611526215263152641526515266152671526815269152701527115272152731527415275152761527715278152791528015281152821528315284152851528615287152881528915290152911529215293152941529515296152971529815299153001530115302153031530415305153061530715308153091531015311153121531315314153151531615317153181531915320153211532215323153241532515326153271532815329153301533115332153331533415335153361533715338153391534015341153421534315344153451534615347153481534915350153511535215353153541535515356153571535815359153601536115362153631536415365153661536715368153691537015371153721537315374153751537615377153781537915380153811538215383153841538515386153871538815389153901539115392153931539415395153961539715398153991540015401154021540315404154051540615407154081540915410154111541215413154141541515416154171541815419154201542115422154231542415425154261542715428154291543015431154321543315434154351543615437154381543915440154411544215443154441544515446154471544815449154501545115452154531545415455154561545715458154591546015461154621546315464154651546615467154681546915470154711547215473154741547515476154771547815479154801548115482154831548415485154861548715488154891549015491154921549315494154951549615497154981549915500155011550215503155041550515506155071550815509155101551115512155131551415515155161551715518155191552015521155221552315524155251552615527155281552915530155311553215533155341553515536155371553815539155401554115542155431554415545155461554715548155491555015551155521555315554155551555615557155581555915560155611556215563155641556515566155671556815569155701557115572155731557415575155761557715578155791558015581155821558315584155851558615587155881558915590155911559215593155941559515596155971559815599156001560115602156031560415605156061560715608156091561015611156121561315614156151561615617156181561915620156211562215623156241562515626156271562815629156301563115632156331563415635156361563715638156391564015641156421564315644156451564615647156481564915650156511565215653156541565515656156571565815659156601566115662156631566415665156661566715668156691567015671156721567315674156751567615677156781567915680156811568215683156841568515686156871568815689156901569115692156931569415695156961569715698156991570015701157021570315704157051570615707157081570915710157111571215713157141571515716157171571815719157201572115722157231572415725157261572715728157291573015731157321573315734157351573615737157381573915740157411574215743157441574515746157471574815749157501575115752157531575415755157561575715758157591576015761157621576315764157651576615767157681576915770157711577215773157741577515776157771577815779157801578115782157831578415785157861578715788157891579015791157921579315794157951579615797157981579915800158011580215803158041580515806158071580815809158101581115812158131581415815158161581715818158191582015821158221582315824158251582615827158281582915830158311583215833158341583515836158371583815839158401584115842158431584415845158461584715848158491585015851158521585315854158551585615857158581585915860158611586215863158641586515866158671586815869158701587115872158731587415875158761587715878158791588015881158821588315884158851588615887158881588915890158911589215893158941589515896158971589815899159001590115902159031590415905159061590715908159091591015911159121591315914159151591615917159181591915920159211592215923159241592515926159271592815929159301593115932159331593415935159361593715938159391594015941159421594315944159451594615947159481594915950159511595215953159541595515956159571595815959159601596115962159631596415965159661596715968159691597015971159721597315974159751597615977159781597915980159811598215983159841598515986159871598815989159901599115992159931599415995159961599715998159991600016001160021600316004160051600616007160081600916010160111601216013160141601516016160171601816019160201602116022160231602416025160261602716028160291603016031160321603316034160351603616037160381603916040160411604216043160441604516046160471604816049160501605116052160531605416055160561605716058160591606016061160621606316064160651606616067160681606916070160711607216073160741607516076160771607816079160801608116082160831608416085160861608716088160891609016091160921609316094160951609616097160981609916100161011610216103161041610516106161071610816109161101611116112161131611416115161161611716118161191612016121161221612316124161251612616127161281612916130161311613216133161341613516136161371613816139161401614116142161431614416145161461614716148161491615016151161521615316154161551615616157161581615916160161611616216163161641616516166161671616816169161701617116172161731617416175161761617716178161791618016181161821618316184161851618616187161881618916190161911619216193161941619516196161971619816199162001620116202162031620416205162061620716208162091621016211162121621316214162151621616217162181621916220162211622216223162241622516226162271622816229162301623116232162331623416235162361623716238162391624016241162421624316244162451624616247162481624916250162511625216253162541625516256162571625816259162601626116262162631626416265162661626716268162691627016271162721627316274162751627616277162781627916280162811628216283162841628516286162871628816289162901629116292162931629416295162961629716298162991630016301163021630316304163051630616307163081630916310163111631216313163141631516316163171631816319163201632116322163231632416325163261632716328163291633016331163321633316334163351633616337163381633916340163411634216343163441634516346163471634816349163501635116352163531635416355163561635716358163591636016361163621636316364163651636616367163681636916370163711637216373163741637516376163771637816379163801638116382163831638416385163861638716388163891639016391163921639316394163951639616397163981639916400164011640216403164041640516406164071640816409164101641116412164131641416415164161641716418164191642016421164221642316424164251642616427164281642916430164311643216433164341643516436164371643816439164401644116442164431644416445164461644716448164491645016451164521645316454164551645616457164581645916460164611646216463164641646516466164671646816469164701647116472164731647416475164761647716478164791648016481164821648316484164851648616487164881648916490164911649216493164941649516496164971649816499165001650116502165031650416505165061650716508165091651016511165121651316514165151651616517165181651916520165211652216523165241652516526165271652816529165301653116532165331653416535165361653716538165391654016541165421654316544165451654616547165481654916550165511655216553165541655516556165571655816559165601656116562165631656416565165661656716568165691657016571165721657316574165751657616577165781657916580165811658216583165841658516586165871658816589165901659116592165931659416595165961659716598165991660016601166021660316604166051660616607166081660916610166111661216613166141661516616166171661816619166201662116622166231662416625166261662716628166291663016631166321663316634166351663616637166381663916640166411664216643166441664516646166471664816649166501665116652166531665416655166561665716658166591666016661166621666316664166651666616667166681666916670166711667216673166741667516676166771667816679166801668116682166831668416685166861668716688166891669016691166921669316694166951669616697166981669916700167011670216703167041670516706167071670816709167101671116712167131671416715167161671716718167191672016721167221672316724167251672616727167281672916730167311673216733167341673516736167371673816739167401674116742167431674416745167461674716748167491675016751167521675316754167551675616757167581675916760167611676216763167641676516766167671676816769167701677116772167731677416775167761677716778167791678016781167821678316784167851678616787167881678916790167911679216793167941679516796167971679816799168001680116802168031680416805168061680716808168091681016811168121681316814168151681616817168181681916820168211682216823168241682516826168271682816829168301683116832168331683416835168361683716838168391684016841168421684316844168451684616847168481684916850168511685216853168541685516856168571685816859168601686116862168631686416865168661686716868168691687016871168721687316874168751687616877168781687916880168811688216883168841688516886168871688816889168901689116892168931689416895168961689716898168991690016901169021690316904169051690616907169081690916910169111691216913169141691516916169171691816919169201692116922169231692416925169261692716928169291693016931169321693316934169351693616937169381693916940169411694216943169441694516946169471694816949169501695116952169531695416955169561695716958169591696016961169621696316964169651696616967169681696916970169711697216973169741697516976169771697816979169801698116982169831698416985169861698716988169891699016991169921699316994169951699616997169981699917000170011700217003170041700517006170071700817009170101701117012170131701417015170161701717018170191702017021170221702317024170251702617027170281702917030170311703217033170341703517036170371703817039170401704117042170431704417045170461704717048170491705017051170521705317054170551705617057170581705917060170611706217063170641706517066170671706817069170701707117072170731707417075170761707717078170791708017081170821708317084170851708617087170881708917090170911709217093170941709517096170971709817099171001710117102171031710417105171061710717108171091711017111171121711317114171151711617117171181711917120171211712217123171241712517126171271712817129171301713117132171331713417135171361713717138171391714017141171421714317144171451714617147171481714917150171511715217153171541715517156171571715817159171601716117162171631716417165171661716717168171691717017171171721717317174171751717617177171781717917180171811718217183171841718517186171871718817189171901719117192171931719417195171961719717198171991720017201172021720317204172051720617207172081720917210172111721217213172141721517216172171721817219172201722117222172231722417225172261722717228172291723017231172321723317234172351723617237172381723917240172411724217243172441724517246172471724817249172501725117252172531725417255172561725717258172591726017261172621726317264172651726617267172681726917270172711727217273172741727517276172771727817279172801728117282172831728417285172861728717288172891729017291172921729317294172951729617297172981729917300173011730217303173041730517306173071730817309173101731117312173131731417315173161731717318173191732017321173221732317324173251732617327173281732917330173311733217333173341733517336173371733817339173401734117342173431734417345173461734717348173491735017351173521735317354173551735617357173581735917360173611736217363173641736517366173671736817369173701737117372173731737417375173761737717378173791738017381173821738317384173851738617387173881738917390173911739217393173941739517396173971739817399174001740117402174031740417405174061740717408174091741017411174121741317414174151741617417174181741917420174211742217423174241742517426174271742817429174301743117432174331743417435174361743717438174391744017441174421744317444174451744617447174481744917450174511745217453174541745517456174571745817459174601746117462174631746417465174661746717468174691747017471174721747317474174751747617477174781747917480174811748217483174841748517486174871748817489174901749117492174931749417495174961749717498174991750017501175021750317504175051750617507175081750917510175111751217513175141751517516175171751817519175201752117522175231752417525175261752717528175291753017531175321753317534175351753617537175381753917540175411754217543175441754517546175471754817549175501755117552175531755417555175561755717558175591756017561175621756317564175651756617567175681756917570175711757217573175741757517576175771757817579175801758117582175831758417585175861758717588175891759017591175921759317594175951759617597175981759917600176011760217603176041760517606176071760817609176101761117612176131761417615176161761717618176191762017621176221762317624176251762617627176281762917630176311763217633176341763517636176371763817639176401764117642176431764417645176461764717648176491765017651176521765317654176551765617657176581765917660176611766217663176641766517666176671766817669176701767117672176731767417675176761767717678176791768017681176821768317684176851768617687176881768917690176911769217693176941769517696176971769817699177001770117702177031770417705177061770717708177091771017711177121771317714177151771617717177181771917720177211772217723177241772517726177271772817729177301773117732177331773417735177361773717738177391774017741177421774317744177451774617747177481774917750177511775217753177541775517756177571775817759177601776117762177631776417765177661776717768177691777017771177721777317774177751777617777177781777917780177811778217783177841778517786177871778817789177901779117792177931779417795177961779717798177991780017801178021780317804178051780617807178081780917810178111781217813178141781517816178171781817819178201782117822178231782417825178261782717828178291783017831178321783317834178351783617837178381783917840178411784217843178441784517846178471784817849178501785117852178531785417855178561785717858178591786017861178621786317864178651786617867178681786917870178711787217873178741787517876178771787817879178801788117882178831788417885178861788717888178891789017891178921789317894178951789617897178981789917900179011790217903179041790517906179071790817909179101791117912179131791417915179161791717918179191792017921179221792317924179251792617927179281792917930179311793217933179341793517936179371793817939179401794117942179431794417945179461794717948179491795017951179521795317954179551795617957179581795917960179611796217963179641796517966179671796817969179701797117972179731797417975179761797717978179791798017981179821798317984179851798617987179881798917990179911799217993179941799517996179971799817999180001800118002180031800418005180061800718008180091801018011180121801318014180151801618017180181801918020180211802218023180241802518026180271802818029180301803118032180331803418035180361803718038180391804018041180421804318044180451804618047180481804918050180511805218053180541805518056180571805818059180601806118062180631806418065180661806718068180691807018071180721807318074180751807618077180781807918080180811808218083180841808518086180871808818089180901809118092180931809418095180961809718098180991810018101181021810318104181051810618107181081810918110181111811218113181141811518116181171811818119181201812118122181231812418125181261812718128181291813018131181321813318134181351813618137181381813918140181411814218143181441814518146181471814818149181501815118152181531815418155181561815718158181591816018161181621816318164181651816618167181681816918170181711817218173181741817518176181771817818179181801818118182181831818418185181861818718188181891819018191181921819318194181951819618197181981819918200182011820218203182041820518206182071820818209182101821118212182131821418215182161821718218182191822018221182221822318224182251822618227182281822918230182311823218233182341823518236182371823818239182401824118242182431824418245182461824718248182491825018251182521825318254182551825618257182581825918260182611826218263182641826518266182671826818269182701827118272182731827418275182761827718278182791828018281182821828318284182851828618287182881828918290182911829218293182941829518296182971829818299183001830118302183031830418305183061830718308183091831018311183121831318314183151831618317183181831918320183211832218323183241832518326183271832818329183301833118332183331833418335183361833718338183391834018341183421834318344183451834618347183481834918350183511835218353183541835518356183571835818359183601836118362183631836418365183661836718368183691837018371183721837318374183751837618377183781837918380183811838218383183841838518386183871838818389183901839118392183931839418395183961839718398183991840018401184021840318404184051840618407184081840918410184111841218413184141841518416184171841818419184201842118422184231842418425184261842718428184291843018431184321843318434184351843618437184381843918440184411844218443184441844518446184471844818449184501845118452184531845418455184561845718458184591846018461184621846318464184651846618467184681846918470184711847218473184741847518476184771847818479184801848118482184831848418485184861848718488184891849018491184921849318494184951849618497184981849918500185011850218503185041850518506185071850818509185101851118512185131851418515185161851718518185191852018521185221852318524185251852618527185281852918530185311853218533185341853518536185371853818539185401854118542185431854418545185461854718548185491855018551185521855318554185551855618557185581855918560185611856218563185641856518566185671856818569185701857118572185731857418575185761857718578185791858018581185821858318584185851858618587185881858918590185911859218593185941859518596185971859818599186001860118602186031860418605186061860718608186091861018611186121861318614186151861618617186181861918620186211862218623186241862518626186271862818629186301863118632186331863418635186361863718638186391864018641186421864318644186451864618647186481864918650186511865218653186541865518656186571865818659186601866118662186631866418665186661866718668186691867018671186721867318674186751867618677186781867918680186811868218683186841868518686186871868818689186901869118692186931869418695186961869718698186991870018701187021870318704187051870618707187081870918710187111871218713187141871518716187171871818719187201872118722187231872418725187261872718728187291873018731187321873318734187351873618737187381873918740187411874218743187441874518746187471874818749187501875118752187531875418755187561875718758187591876018761187621876318764187651876618767187681876918770187711877218773187741877518776187771877818779187801878118782187831878418785187861878718788187891879018791187921879318794187951879618797187981879918800188011880218803188041880518806188071880818809188101881118812188131881418815188161881718818188191882018821188221882318824188251882618827188281882918830188311883218833188341883518836188371883818839188401884118842188431884418845188461884718848188491885018851188521885318854188551885618857188581885918860188611886218863188641886518866188671886818869188701887118872188731887418875188761887718878188791888018881188821888318884188851888618887188881888918890188911889218893188941889518896188971889818899189001890118902189031890418905189061890718908189091891018911189121891318914189151891618917189181891918920189211892218923189241892518926189271892818929189301893118932189331893418935189361893718938189391894018941189421894318944189451894618947189481894918950189511895218953189541895518956189571895818959189601896118962189631896418965189661896718968189691897018971189721897318974189751897618977189781897918980189811898218983189841898518986189871898818989189901899118992189931899418995189961899718998189991900019001190021900319004190051900619007190081900919010190111901219013190141901519016190171901819019190201902119022190231902419025190261902719028190291903019031190321903319034190351903619037190381903919040190411904219043190441904519046190471904819049190501905119052190531905419055190561905719058190591906019061190621906319064190651906619067190681906919070190711907219073190741907519076190771907819079190801908119082190831908419085190861908719088190891909019091190921909319094190951909619097190981909919100191011910219103191041910519106191071910819109191101911119112191131911419115191161911719118191191912019121191221912319124191251912619127191281912919130191311913219133191341913519136191371913819139191401914119142191431914419145191461914719148191491915019151191521915319154191551915619157191581915919160191611916219163191641916519166191671916819169191701917119172191731917419175191761917719178191791918019181191821918319184191851918619187191881918919190191911919219193191941919519196191971919819199192001920119202192031920419205192061920719208192091921019211192121921319214192151921619217192181921919220192211922219223192241922519226192271922819229192301923119232192331923419235192361923719238192391924019241192421924319244192451924619247192481924919250192511925219253192541925519256192571925819259192601926119262192631926419265192661926719268192691927019271192721927319274192751927619277192781927919280192811928219283192841928519286192871928819289192901929119292192931929419295192961929719298192991930019301193021930319304193051930619307193081930919310193111931219313193141931519316193171931819319193201932119322193231932419325193261932719328193291933019331193321933319334193351933619337193381933919340193411934219343193441934519346193471934819349193501935119352193531935419355193561935719358193591936019361193621936319364193651936619367193681936919370193711937219373193741937519376193771937819379193801938119382193831938419385193861938719388193891939019391193921939319394193951939619397193981939919400194011940219403194041940519406194071940819409194101941119412194131941419415194161941719418194191942019421194221942319424194251942619427194281942919430194311943219433194341943519436194371943819439194401944119442194431944419445194461944719448194491945019451194521945319454194551945619457194581945919460194611946219463194641946519466194671946819469194701947119472194731947419475194761947719478194791948019481194821948319484194851948619487194881948919490194911949219493194941949519496194971949819499195001950119502195031950419505195061950719508195091951019511195121951319514195151951619517195181951919520195211952219523195241952519526195271952819529195301953119532195331953419535195361953719538195391954019541195421954319544195451954619547195481954919550195511955219553195541955519556195571955819559195601956119562195631956419565195661956719568195691957019571195721957319574195751957619577195781957919580195811958219583195841958519586195871958819589195901959119592195931959419595195961959719598195991960019601196021960319604196051960619607196081960919610196111961219613196141961519616196171961819619196201962119622196231962419625196261962719628196291963019631196321963319634196351963619637196381963919640196411964219643196441964519646196471964819649196501965119652196531965419655196561965719658196591966019661196621966319664196651966619667196681966919670196711967219673196741967519676196771967819679196801968119682196831968419685196861968719688196891969019691196921969319694196951969619697196981969919700197011970219703197041970519706197071970819709197101971119712197131971419715197161971719718197191972019721197221972319724197251972619727197281972919730197311973219733197341973519736197371973819739197401974119742197431974419745197461974719748197491975019751197521975319754197551975619757197581975919760197611976219763197641976519766197671976819769197701977119772197731977419775197761977719778197791978019781197821978319784197851978619787197881978919790197911979219793197941979519796197971979819799198001980119802198031980419805198061980719808198091981019811198121981319814198151981619817198181981919820198211982219823198241982519826198271982819829198301983119832198331983419835198361983719838198391984019841198421984319844198451984619847198481984919850198511985219853198541985519856198571985819859198601986119862198631986419865198661986719868198691987019871198721987319874198751987619877198781987919880198811988219883198841988519886198871988819889198901989119892198931989419895198961989719898198991990019901199021990319904199051990619907199081990919910199111991219913199141991519916199171991819919199201992119922199231992419925199261992719928199291993019931199321993319934199351993619937199381993919940199411994219943199441994519946199471994819949199501995119952199531995419955199561995719958199591996019961199621996319964199651996619967199681996919970199711997219973199741997519976199771997819979199801998119982199831998419985199861998719988199891999019991199921999319994199951999619997199981999920000200012000220003200042000520006200072000820009200102001120012200132001420015200162001720018200192002020021200222002320024200252002620027200282002920030200312003220033200342003520036200372003820039200402004120042200432004420045200462004720048200492005020051200522005320054200552005620057200582005920060200612006220063200642006520066200672006820069200702007120072200732007420075200762007720078200792008020081200822008320084200852008620087200882008920090200912009220093200942009520096200972009820099201002010120102201032010420105201062010720108201092011020111201122011320114201152011620117201182011920120201212012220123201242012520126201272012820129201302013120132201332013420135201362013720138201392014020141201422014320144201452014620147201482014920150201512015220153201542015520156201572015820159201602016120162201632016420165201662016720168201692017020171201722017320174201752017620177201782017920180201812018220183201842018520186201872018820189201902019120192201932019420195201962019720198201992020020201202022020320204202052020620207202082020920210202112021220213202142021520216202172021820219202202022120222202232022420225202262022720228202292023020231202322023320234202352023620237202382023920240202412024220243202442024520246202472024820249202502025120252202532025420255202562025720258202592026020261202622026320264202652026620267202682026920270202712027220273202742027520276202772027820279202802028120282202832028420285202862028720288202892029020291202922029320294202952029620297202982029920300203012030220303203042030520306203072030820309203102031120312203132031420315203162031720318203192032020321203222032320324203252032620327203282032920330203312033220333203342033520336203372033820339203402034120342203432034420345203462034720348203492035020351203522035320354203552035620357203582035920360203612036220363203642036520366203672036820369203702037120372203732037420375203762037720378203792038020381203822038320384203852038620387203882038920390203912039220393203942039520396203972039820399204002040120402204032040420405204062040720408204092041020411204122041320414204152041620417204182041920420204212042220423204242042520426204272042820429204302043120432204332043420435204362043720438204392044020441204422044320444204452044620447204482044920450204512045220453204542045520456204572045820459204602046120462204632046420465204662046720468204692047020471204722047320474204752047620477204782047920480204812048220483204842048520486204872048820489204902049120492204932049420495204962049720498204992050020501205022050320504205052050620507205082050920510205112051220513205142051520516205172051820519205202052120522205232052420525205262052720528205292053020531205322053320534205352053620537205382053920540205412054220543205442054520546205472054820549205502055120552205532055420555205562055720558205592056020561205622056320564205652056620567205682056920570205712057220573205742057520576205772057820579205802058120582205832058420585205862058720588205892059020591205922059320594205952059620597205982059920600206012060220603206042060520606206072060820609206102061120612206132061420615206162061720618206192062020621206222062320624206252062620627206282062920630206312063220633206342063520636206372063820639206402064120642206432064420645206462064720648206492065020651206522065320654206552065620657206582065920660206612066220663206642066520666206672066820669206702067120672206732067420675206762067720678206792068020681206822068320684206852068620687206882068920690206912069220693206942069520696206972069820699207002070120702207032070420705207062070720708207092071020711207122071320714207152071620717207182071920720207212072220723207242072520726207272072820729207302073120732207332073420735207362073720738207392074020741207422074320744207452074620747207482074920750207512075220753207542075520756207572075820759207602076120762207632076420765207662076720768207692077020771207722077320774207752077620777207782077920780207812078220783207842078520786207872078820789207902079120792207932079420795207962079720798207992080020801208022080320804208052080620807208082080920810208112081220813208142081520816208172081820819208202082120822208232082420825208262082720828208292083020831208322083320834208352083620837208382083920840208412084220843208442084520846208472084820849208502085120852208532085420855208562085720858208592086020861208622086320864208652086620867208682086920870208712087220873208742087520876208772087820879208802088120882208832088420885208862088720888208892089020891208922089320894208952089620897208982089920900209012090220903209042090520906209072090820909209102091120912209132091420915209162091720918209192092020921209222092320924209252092620927209282092920930209312093220933209342093520936209372093820939209402094120942209432094420945209462094720948209492095020951209522095320954209552095620957209582095920960209612096220963209642096520966209672096820969209702097120972209732097420975209762097720978209792098020981209822098320984209852098620987209882098920990209912099220993209942099520996209972099820999210002100121002210032100421005210062100721008210092101021011210122101321014210152101621017210182101921020210212102221023210242102521026210272102821029210302103121032210332103421035210362103721038210392104021041210422104321044210452104621047210482104921050210512105221053210542105521056210572105821059210602106121062210632106421065210662106721068210692107021071210722107321074210752107621077210782107921080210812108221083210842108521086210872108821089210902109121092210932109421095210962109721098210992110021101211022110321104211052110621107211082110921110211112111221113211142111521116211172111821119211202112121122211232112421125211262112721128211292113021131211322113321134211352113621137211382113921140211412114221143211442114521146211472114821149211502115121152211532115421155211562115721158211592116021161211622116321164211652116621167211682116921170211712117221173211742117521176211772117821179211802118121182211832118421185211862118721188211892119021191211922119321194211952119621197211982119921200212012120221203212042120521206212072120821209212102121121212212132121421215212162121721218212192122021221212222122321224212252122621227212282122921230212312123221233212342123521236212372123821239212402124121242212432124421245212462124721248212492125021251212522125321254212552125621257212582125921260212612126221263212642126521266212672126821269212702127121272212732127421275212762127721278212792128021281212822128321284212852128621287212882128921290212912129221293212942129521296212972129821299213002130121302213032130421305213062130721308213092131021311213122131321314213152131621317213182131921320213212132221323213242132521326213272132821329213302133121332213332133421335213362133721338213392134021341213422134321344213452134621347213482134921350213512135221353213542135521356213572135821359213602136121362213632136421365213662136721368213692137021371213722137321374213752137621377213782137921380213812138221383213842138521386213872138821389213902139121392213932139421395213962139721398213992140021401214022140321404214052140621407214082140921410214112141221413214142141521416214172141821419214202142121422214232142421425214262142721428214292143021431214322143321434214352143621437214382143921440214412144221443214442144521446214472144821449214502145121452214532145421455214562145721458214592146021461214622146321464214652146621467214682146921470214712147221473214742147521476214772147821479214802148121482214832148421485214862148721488214892149021491214922149321494214952149621497214982149921500215012150221503215042150521506215072150821509215102151121512215132151421515215162151721518215192152021521215222152321524215252152621527215282152921530215312153221533215342153521536215372153821539215402154121542215432154421545215462154721548215492155021551215522155321554215552155621557215582155921560215612156221563215642156521566215672156821569215702157121572215732157421575215762157721578215792158021581215822158321584215852158621587215882158921590215912159221593215942159521596215972159821599216002160121602216032160421605216062160721608216092161021611216122161321614216152161621617216182161921620216212162221623216242162521626216272162821629216302163121632216332163421635216362163721638216392164021641216422164321644216452164621647216482164921650216512165221653216542165521656216572165821659216602166121662216632166421665216662166721668216692167021671216722167321674216752167621677216782167921680216812168221683216842168521686216872168821689216902169121692216932169421695216962169721698216992170021701217022170321704217052170621707217082170921710217112171221713217142171521716217172171821719217202172121722217232172421725217262172721728217292173021731217322173321734217352173621737217382173921740217412174221743217442174521746217472174821749217502175121752217532175421755217562175721758217592176021761217622176321764217652176621767217682176921770217712177221773217742177521776217772177821779217802178121782217832178421785217862178721788217892179021791217922179321794217952179621797217982179921800218012180221803218042180521806218072180821809218102181121812218132181421815218162181721818218192182021821218222182321824218252182621827218282182921830218312183221833218342183521836218372183821839218402184121842218432184421845218462184721848218492185021851218522185321854218552185621857218582185921860218612186221863218642186521866218672186821869218702187121872218732187421875218762187721878218792188021881218822188321884218852188621887218882188921890218912189221893218942189521896218972189821899219002190121902219032190421905219062190721908219092191021911219122191321914219152191621917219182191921920219212192221923219242192521926219272192821929219302193121932219332193421935219362193721938219392194021941219422194321944219452194621947219482194921950219512195221953219542195521956219572195821959219602196121962219632196421965219662196721968219692197021971219722197321974219752197621977219782197921980219812198221983219842198521986219872198821989219902199121992219932199421995219962199721998219992200022001220022200322004220052200622007220082200922010220112201222013220142201522016220172201822019220202202122022220232202422025220262202722028220292203022031220322203322034220352203622037220382203922040220412204222043220442204522046220472204822049220502205122052220532205422055220562205722058220592206022061220622206322064220652206622067220682206922070220712207222073220742207522076220772207822079220802208122082220832208422085220862208722088220892209022091220922209322094220952209622097220982209922100221012210222103221042210522106221072210822109221102211122112221132211422115221162211722118221192212022121221222212322124221252212622127221282212922130221312213222133221342213522136221372213822139221402214122142221432214422145221462214722148221492215022151221522215322154221552215622157221582215922160221612216222163221642216522166221672216822169221702217122172221732217422175221762217722178221792218022181221822218322184221852218622187221882218922190221912219222193221942219522196221972219822199222002220122202222032220422205222062220722208222092221022211222122221322214222152221622217222182221922220222212222222223222242222522226222272222822229222302223122232222332223422235222362223722238222392224022241222422224322244222452224622247222482224922250222512225222253222542225522256222572225822259222602226122262222632226422265222662226722268222692227022271222722227322274222752227622277222782227922280222812228222283222842228522286222872228822289222902229122292222932229422295222962229722298222992230022301223022230322304223052230622307223082230922310223112231222313223142231522316223172231822319223202232122322223232232422325223262232722328223292233022331223322233322334223352233622337223382233922340223412234222343223442234522346223472234822349223502235122352223532235422355223562235722358223592236022361223622236322364223652236622367223682236922370223712237222373223742237522376223772237822379223802238122382223832238422385223862238722388223892239022391223922239322394223952239622397223982239922400224012240222403224042240522406224072240822409224102241122412224132241422415224162241722418224192242022421224222242322424224252242622427224282242922430224312243222433224342243522436224372243822439224402244122442224432244422445224462244722448224492245022451224522245322454224552245622457224582245922460224612246222463224642246522466224672246822469224702247122472224732247422475224762247722478224792248022481224822248322484224852248622487224882248922490224912249222493224942249522496224972249822499225002250122502225032250422505225062250722508225092251022511225122251322514225152251622517225182251922520225212252222523225242252522526225272252822529225302253122532225332253422535225362253722538225392254022541225422254322544225452254622547225482254922550225512255222553225542255522556225572255822559225602256122562225632256422565225662256722568225692257022571225722257322574225752257622577225782257922580225812258222583225842258522586225872258822589225902259122592225932259422595225962259722598225992260022601226022260322604226052260622607226082260922610226112261222613226142261522616226172261822619226202262122622226232262422625226262262722628226292263022631226322263322634226352263622637226382263922640226412264222643226442264522646226472264822649226502265122652226532265422655226562265722658226592266022661226622266322664226652266622667226682266922670226712267222673226742267522676226772267822679226802268122682226832268422685226862268722688226892269022691226922269322694226952269622697226982269922700227012270222703227042270522706227072270822709227102271122712227132271422715227162271722718227192272022721227222272322724227252272622727227282272922730227312273222733227342273522736227372273822739227402274122742227432274422745227462274722748227492275022751227522275322754227552275622757227582275922760227612276222763227642276522766227672276822769227702277122772227732277422775227762277722778227792278022781227822278322784227852278622787227882278922790227912279222793227942279522796227972279822799228002280122802228032280422805228062280722808228092281022811228122281322814228152281622817228182281922820228212282222823228242282522826228272282822829228302283122832228332283422835228362283722838228392284022841228422284322844228452284622847228482284922850228512285222853228542285522856228572285822859228602286122862228632286422865228662286722868228692287022871228722287322874228752287622877228782287922880228812288222883228842288522886228872288822889228902289122892228932289422895228962289722898228992290022901229022290322904229052290622907229082290922910229112291222913229142291522916229172291822919229202292122922229232292422925229262292722928229292293022931229322293322934229352293622937229382293922940229412294222943229442294522946229472294822949229502295122952229532295422955229562295722958229592296022961229622296322964229652296622967229682296922970229712297222973229742297522976229772297822979229802298122982229832298422985229862298722988229892299022991229922299322994229952299622997229982299923000230012300223003230042300523006230072300823009230102301123012230132301423015230162301723018230192302023021230222302323024230252302623027230282302923030230312303223033230342303523036230372303823039230402304123042230432304423045230462304723048230492305023051230522305323054230552305623057230582305923060230612306223063230642306523066230672306823069230702307123072230732307423075230762307723078230792308023081230822308323084230852308623087230882308923090230912309223093230942309523096230972309823099231002310123102231032310423105231062310723108231092311023111231122311323114231152311623117231182311923120231212312223123231242312523126231272312823129231302313123132231332313423135231362313723138231392314023141231422314323144231452314623147231482314923150231512315223153231542315523156231572315823159231602316123162231632316423165231662316723168231692317023171231722317323174231752317623177231782317923180231812318223183231842318523186231872318823189231902319123192231932319423195231962319723198231992320023201232022320323204232052320623207232082320923210232112321223213232142321523216232172321823219232202322123222232232322423225232262322723228232292323023231232322323323234232352323623237232382323923240232412324223243232442324523246232472324823249232502325123252232532325423255232562325723258232592326023261232622326323264232652326623267232682326923270232712327223273232742327523276232772327823279232802328123282232832328423285232862328723288232892329023291232922329323294232952329623297232982329923300233012330223303233042330523306233072330823309233102331123312233132331423315233162331723318233192332023321233222332323324233252332623327233282332923330233312333223333233342333523336233372333823339233402334123342233432334423345233462334723348233492335023351233522335323354233552335623357233582335923360233612336223363233642336523366233672336823369233702337123372233732337423375233762337723378233792338023381233822338323384233852338623387233882338923390233912339223393233942339523396233972339823399234002340123402234032340423405234062340723408234092341023411234122341323414234152341623417234182341923420234212342223423234242342523426234272342823429234302343123432234332343423435234362343723438234392344023441234422344323444234452344623447234482344923450234512345223453234542345523456234572345823459234602346123462234632346423465234662346723468234692347023471234722347323474234752347623477234782347923480234812348223483234842348523486234872348823489234902349123492234932349423495234962349723498234992350023501235022350323504235052350623507235082350923510235112351223513235142351523516235172351823519235202352123522235232352423525235262352723528235292353023531235322353323534235352353623537235382353923540235412354223543235442354523546235472354823549235502355123552235532355423555235562355723558235592356023561235622356323564235652356623567235682356923570235712357223573235742357523576235772357823579235802358123582235832358423585235862358723588235892359023591235922359323594235952359623597235982359923600236012360223603236042360523606236072360823609236102361123612236132361423615236162361723618236192362023621236222362323624236252362623627236282362923630236312363223633236342363523636236372363823639236402364123642236432364423645236462364723648236492365023651236522365323654236552365623657236582365923660236612366223663236642366523666236672366823669236702367123672236732367423675236762367723678236792368023681236822368323684236852368623687236882368923690236912369223693236942369523696236972369823699237002370123702237032370423705237062370723708237092371023711237122371323714237152371623717237182371923720237212372223723237242372523726237272372823729237302373123732237332373423735237362373723738237392374023741237422374323744237452374623747237482374923750237512375223753237542375523756237572375823759237602376123762237632376423765237662376723768237692377023771237722377323774237752377623777237782377923780237812378223783237842378523786237872378823789237902379123792237932379423795237962379723798237992380023801238022380323804238052380623807238082380923810238112381223813238142381523816238172381823819238202382123822238232382423825238262382723828238292383023831238322383323834238352383623837238382383923840238412384223843238442384523846238472384823849238502385123852238532385423855238562385723858238592386023861238622386323864238652386623867238682386923870238712387223873238742387523876238772387823879238802388123882238832388423885238862388723888238892389023891238922389323894238952389623897238982389923900239012390223903239042390523906239072390823909239102391123912239132391423915239162391723918239192392023921239222392323924239252392623927239282392923930239312393223933239342393523936239372393823939239402394123942239432394423945239462394723948239492395023951239522395323954239552395623957239582395923960239612396223963239642396523966239672396823969239702397123972239732397423975239762397723978239792398023981239822398323984239852398623987239882398923990239912399223993239942399523996239972399823999240002400124002240032400424005240062400724008240092401024011240122401324014240152401624017240182401924020240212402224023240242402524026240272402824029240302403124032240332403424035240362403724038240392404024041240422404324044240452404624047240482404924050240512405224053240542405524056240572405824059240602406124062240632406424065240662406724068240692407024071240722407324074240752407624077240782407924080240812408224083240842408524086240872408824089240902409124092240932409424095240962409724098240992410024101241022410324104241052410624107241082410924110241112411224113241142411524116241172411824119241202412124122241232412424125241262412724128241292413024131241322413324134241352413624137241382413924140241412414224143241442414524146241472414824149241502415124152241532415424155241562415724158241592416024161241622416324164241652416624167241682416924170241712417224173241742417524176241772417824179241802418124182241832418424185241862418724188241892419024191241922419324194241952419624197241982419924200242012420224203242042420524206242072420824209242102421124212242132421424215242162421724218242192422024221242222422324224242252422624227242282422924230242312423224233242342423524236242372423824239242402424124242242432424424245242462424724248242492425024251242522425324254242552425624257242582425924260242612426224263242642426524266242672426824269242702427124272242732427424275242762427724278242792428024281242822428324284242852428624287242882428924290242912429224293242942429524296242972429824299243002430124302243032430424305243062430724308243092431024311243122431324314243152431624317243182431924320243212432224323243242432524326243272432824329243302433124332243332433424335243362433724338243392434024341243422434324344243452434624347243482434924350243512435224353243542435524356243572435824359243602436124362243632436424365243662436724368243692437024371243722437324374243752437624377243782437924380243812438224383243842438524386243872438824389243902439124392243932439424395243962439724398243992440024401244022440324404244052440624407244082440924410244112441224413244142441524416244172441824419244202442124422244232442424425244262442724428244292443024431244322443324434244352443624437244382443924440244412444224443244442444524446244472444824449244502445124452244532445424455244562445724458244592446024461244622446324464244652446624467244682446924470244712447224473244742447524476244772447824479244802448124482244832448424485244862448724488244892449024491244922449324494244952449624497244982449924500245012450224503245042450524506245072450824509245102451124512245132451424515245162451724518245192452024521245222452324524245252452624527245282452924530245312453224533245342453524536245372453824539245402454124542245432454424545245462454724548245492455024551245522455324554245552455624557245582455924560245612456224563245642456524566245672456824569245702457124572245732457424575245762457724578245792458024581245822458324584245852458624587245882458924590245912459224593245942459524596245972459824599246002460124602246032460424605246062460724608246092461024611246122461324614246152461624617246182461924620246212462224623246242462524626246272462824629 |
- 2011-02-15 Gavin Barraclough <barraclough@apple.com>
- Reviewed by Geoff Garen.
- Bug 54524 - Allow JSObject to fully utilize cell's capacity for inline storage.
- Currently JSObject is both directly instantiated for regular JS objects, and
- derived to implement subtypes. A consequence of this is that we need to ensure
- that sufficient space from the cell is left unused and available for any data
- members that will be introduced by subclasses of JSObject. By restructuring
- the internal storage array out of JSObject we can increase the size in the
- internal storage for regular objects.
- Add classes JSFinalObject and JSNonFinalObject. JSNonFinalObject retains as
- much additional capacity as is currently available to allow for data members
- in subclasses. JSFinalObject utilizes all available space for internal storage,
- and only allows construction through JSFinalObject::create().
- The additional storage made available in the JSObject means that we need no
- longer rely on a union of the internal storage with a pointer to storage that
- is only valid for external storage. This means we can go back to always having
- a valid pointer to property storage, regardless of whether this is internal or
- external. This simplifies some cases of access to the array from C code, and
- significantly simplifies JIT access, since repatching no longer needs to be
- able to change between a load of the storage pointer / a LEA of the internal
- storage.
- * API/JSObjectRef.cpp:
- (JSObjectMake):
- * assembler/ARMAssembler.h:
- * assembler/ARMv7Assembler.h:
- * assembler/AbstractMacroAssembler.h:
- (JSC::AbstractMacroAssembler::repatchPointer):
- * assembler/MIPSAssembler.h:
- * assembler/MacroAssemblerARM.h:
- * assembler/MacroAssemblerARMv7.h:
- * assembler/MacroAssemblerMIPS.h:
- * assembler/MacroAssemblerX86.h:
- * assembler/MacroAssemblerX86_64.h:
- * assembler/RepatchBuffer.h:
- * assembler/X86Assembler.h:
- * debugger/DebuggerActivation.cpp:
- (JSC::DebuggerActivation::DebuggerActivation):
- * debugger/DebuggerActivation.h:
- * interpreter/Interpreter.cpp:
- (JSC::Interpreter::privateExecute):
- * jit/JIT.h:
- * jit/JITOpcodes.cpp:
- (JSC::JIT::emit_op_resolve_global):
- * jit/JITOpcodes32_64.cpp:
- (JSC::JIT::emit_op_resolve_global):
- * jit/JITPropertyAccess.cpp:
- (JSC::JIT::compileGetDirectOffset):
- (JSC::JIT::emit_op_get_by_pname):
- (JSC::JIT::compileGetByIdHotPath):
- (JSC::JIT::emit_op_put_by_id):
- (JSC::JIT::compilePutDirectOffset):
- (JSC::JIT::patchGetByIdSelf):
- (JSC::JIT::patchPutByIdReplace):
- (JSC::JIT::privateCompileGetByIdProto):
- (JSC::JIT::privateCompileGetByIdSelfList):
- (JSC::JIT::privateCompileGetByIdProtoList):
- (JSC::JIT::privateCompileGetByIdChainList):
- (JSC::JIT::privateCompileGetByIdChain):
- * jit/JITPropertyAccess32_64.cpp:
- (JSC::JIT::compileGetByIdHotPath):
- (JSC::JIT::emit_op_put_by_id):
- (JSC::JIT::compilePutDirectOffset):
- (JSC::JIT::compileGetDirectOffset):
- (JSC::JIT::patchGetByIdSelf):
- (JSC::JIT::patchPutByIdReplace):
- (JSC::JIT::privateCompileGetByIdProto):
- (JSC::JIT::privateCompileGetByIdSelfList):
- (JSC::JIT::privateCompileGetByIdProtoList):
- (JSC::JIT::privateCompileGetByIdChainList):
- (JSC::JIT::privateCompileGetByIdChain):
- (JSC::JIT::emit_op_get_by_pname):
- * jit/JITStubs.cpp:
- (JSC::DEFINE_STUB_FUNCTION):
- * runtime/Arguments.h:
- (JSC::Arguments::Arguments):
- * runtime/ErrorInstance.cpp:
- (JSC::ErrorInstance::ErrorInstance):
- * runtime/ErrorInstance.h:
- * runtime/ExceptionHelpers.cpp:
- (JSC::InterruptedExecutionError::InterruptedExecutionError):
- (JSC::TerminatedExecutionError::TerminatedExecutionError):
- * runtime/JSArray.cpp:
- (JSC::JSArray::JSArray):
- * runtime/JSArray.h:
- * runtime/JSByteArray.cpp:
- (JSC::JSByteArray::JSByteArray):
- * runtime/JSByteArray.h:
- (JSC::JSByteArray::JSByteArray):
- * runtime/JSFunction.cpp:
- (JSC::JSFunction::getOwnPropertySlot):
- * runtime/JSGlobalData.cpp:
- (JSC::JSGlobalData::JSGlobalData):
- * runtime/JSGlobalObject.h:
- (JSC::constructEmptyObject):
- * runtime/JSNotAnObject.h:
- (JSC::JSNotAnObject::JSNotAnObject):
- * runtime/JSObject.cpp:
- (JSC::JSObject::createInheritorID):
- (JSC::JSObject::allocatePropertyStorage):
- * runtime/JSObject.h:
- (JSC::JSObject::propertyStorage):
- (JSC::JSNonFinalObject::JSNonFinalObject):
- (JSC::JSNonFinalObject::createStructure):
- (JSC::JSFinalObject::create):
- (JSC::JSFinalObject::createStructure):
- (JSC::JSFinalObject::JSFinalObject):
- (JSC::JSObject::offsetOfInlineStorage):
- (JSC::constructEmptyObject):
- (JSC::createEmptyObjectStructure):
- (JSC::JSObject::JSObject):
- (JSC::JSObject::~JSObject):
- (JSC::Structure::isUsingInlineStorage):
- * runtime/JSObjectWithGlobalObject.cpp:
- (JSC::JSObjectWithGlobalObject::JSObjectWithGlobalObject):
- * runtime/JSObjectWithGlobalObject.h:
- (JSC::JSObjectWithGlobalObject::JSObjectWithGlobalObject):
- * runtime/JSTypeInfo.h:
- (JSC::TypeInfo::TypeInfo):
- (JSC::TypeInfo::isVanilla):
- * runtime/JSVariableObject.h:
- (JSC::JSVariableObject::JSVariableObject):
- * runtime/JSWrapperObject.h:
- (JSC::JSWrapperObject::JSWrapperObject):
- * runtime/ObjectConstructor.cpp:
- (JSC::constructObject):
- * runtime/ObjectPrototype.cpp:
- (JSC::ObjectPrototype::ObjectPrototype):
- * runtime/ObjectPrototype.h:
- * runtime/StrictEvalActivation.cpp:
- (JSC::StrictEvalActivation::StrictEvalActivation):
- * runtime/StrictEvalActivation.h:
- * runtime/Structure.cpp:
- (JSC::Structure::Structure):
- (JSC::Structure::growPropertyStorageCapacity):
- 2011-02-16 Oliver Hunt <oliver@apple.com>
- Reviewed by Geoff Garen.
- Incorrect handling of global writes in dynamic contexts
- https://bugs.webkit.org/show_bug.cgi?id=49383
- * interpreter/Interpreter.cpp:
- (JSC::Interpreter::privateExecute):
- Can't use the existing callframe to return an uncaught exception
- as by definition that callframe has already been torn down.
- * parser/ASTBuilder.h:
- (JSC::ASTBuilder::ASTBuilder):
- (JSC::ASTBuilder::varDeclarations):
- (JSC::ASTBuilder::funcDeclarations):
- (JSC::ASTBuilder::features):
- (JSC::ASTBuilder::numConstants):
- (JSC::ASTBuilder::createFuncDeclStatement):
- (JSC::ASTBuilder::addVar):
- (JSC::ASTBuilder::incConstants):
- (JSC::ASTBuilder::usesThis):
- (JSC::ASTBuilder::usesCatch):
- (JSC::ASTBuilder::usesClosures):
- (JSC::ASTBuilder::usesArguments):
- (JSC::ASTBuilder::usesAssignment):
- (JSC::ASTBuilder::usesWith):
- (JSC::ASTBuilder::usesEval):
- Don't need a vector of scopes in the ASTBuilder
- * runtime/Operations.h:
- (JSC::resolveBase):
- In strict mode the optimisation that we use to skip a lookup
- on the global object is incorrect and lead to us always
- disallowing global writes when we needed to do a dynamic slot
- lookup. Now the strict mode path actually checks for the
- property.
- 2011-02-15 Jon Honeycutt <jhoneycutt@apple.com>
- Windows build fix for
- https://bugs.webkit.org/show_bug.cgi?id=54415
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
- Remove deleted files.
- 2011-02-15 Oliver Hunt <oliver@apple.com>
- Fix EFL build for
- https://bugs.webkit.org/show_bug.cgi?id=54415
- * CMakeLists.txt:
- 2011-02-14 Oliver Hunt <oliver@apple.com>
- Reviewed by Gavin Barraclough and Geoff Garen.
- Refactor handles and weak pointers to become nicer and more automatic
- https://bugs.webkit.org/show_bug.cgi?id=54415
- Move to a true handle based mechanism for GC value protection. This
- also allows us to switch to a more sensible behaviour for weak pointers
- in which weak pointers are automatically updated.
- This allows us to remove the old (and convoluted) that required all
- objects that may be held by a weak reference to be aware of the reference
- and manually clear them in their destructors.
- This also adds a few new data types to JSC that we use to efficiently
- allocate and return the underlying handle storage.
- This patch is largely renaming and removing now unnecessary destructors
- from objects.
- * API/JSClassRef.cpp:
- (OpaqueJSClass::create):
- (OpaqueJSClassContextData::OpaqueJSClassContextData):
- (OpaqueJSClass::contextData):
- (OpaqueJSClass::prototype):
- * API/JSClassRef.h:
- * CMakeLists.txt:
- * GNUmakefile.am:
- * JavaScriptCore.exp:
- * JavaScriptCore.gypi:
- * JavaScriptCore.pro:
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreCommon.vsprops:
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreGenerated.make:
- * JavaScriptCore.vcproj/WTF/WTF.vcproj:
- * JavaScriptCore.vcproj/jsc/jscCommon.vsprops:
- * JavaScriptCore.xcodeproj/project.pbxproj:
- * collector/handles/Global.h: Added.
- New Global handle type used to keep gc objects live, even if they're not
- marked.
- (JSC::Global::Global):
- (JSC::Global::~Global):
- (JSC::Global::set):
- We can only assign directly to a global from another global.
- In all other cases we need the JSGlobalData to be provided
- explicitly so we use a set function.
- (JSC::Global::operator=):
- (JSC::Global::clear):
- (JSC::Global::isHashTableDeletedValue):
- (JSC::Global::internalSet):
- * collector/handles/Handle.h: Added.
- Root "Handle" type used for immutable handles and to provide the basic
- APIs needed for pointer-like behaviour.
- (JSC::HandleBase::operator!):
- (JSC::HandleBase::operator UnspecifiedBoolType*):
- (JSC::HandleBase::isEmpty):
- (JSC::HandleBase::HandleBase):
- (JSC::HandleBase::slot):
- (JSC::HandleBase::invalidate):
- (JSC::HandleBase::setSlot):
- (JSC::HandleTypes::getFromSlot):
- (JSC::HandleTypes::toJSValue):
- (JSC::HandleTypes::validateUpcast):
- (JSC::HandleConverter::operator->):
- (JSC::HandleConverter::operator*):
- (JSC::Handle::Handle):
- (JSC::Handle::get):
- (JSC::Handle::wrapSlot):
- (JSC::operator==):
- (JSC::operator!=):
- * collector/handles/HandleHeap.cpp: Added.
- New heap for global handles.
- (JSC::HandleHeap::HandleHeap):
- (JSC::HandleHeap::grow):
- (JSC::HandleHeap::markStrongHandles):
- (JSC::HandleHeap::updateAfterMark):
- (JSC::HandleHeap::clearWeakPointers):
- (JSC::HandleHeap::writeBarrier):
- * collector/handles/HandleHeap.h: Added.
- (JSC::HandleHeap::heapFor):
- (JSC::HandleHeap::toHandle):
- (JSC::HandleHeap::toNode):
- (JSC::HandleHeap::allocate):
- (JSC::HandleHeap::deallocate):
- (JSC::HandleHeap::makeWeak):
- Convert a hard handle into weak handle that does not
- protect the object it points to.
- (JSC::HandleHeap::makeSelfDestroying):
- Converts a handle to a weak handle that will be returned
- to the free list when the referenced object dies.
- (JSC::HandleHeap::Node::Node):
- (JSC::HandleHeap::Node::slot):
- (JSC::HandleHeap::Node::handleHeap):
- (JSC::HandleHeap::Node::setFinalizer):
- (JSC::HandleHeap::Node::makeWeak):
- (JSC::HandleHeap::Node::isWeak):
- (JSC::HandleHeap::Node::makeSelfDestroying):
- (JSC::HandleHeap::Node::isSelfDestroying):
- (JSC::HandleHeap::Node::finalizer):
- (JSC::HandleHeap::Node::setPrev):
- (JSC::HandleHeap::Node::prev):
- (JSC::HandleHeap::Node::setNext):
- (JSC::HandleHeap::Node::next):
- * interpreter/Interpreter.cpp:
- (JSC::Interpreter::Interpreter):
- * interpreter/Interpreter.h:
- * interpreter/RegisterFile.cpp:
- (JSC::RegisterFile::globalObjectCollected):
- * interpreter/RegisterFile.h:
- (JSC::RegisterFile::RegisterFile):
- * runtime/GCHandle.cpp: Removed.
- * runtime/GCHandle.h: Removed.
- * runtime/Heap.cpp:
- (JSC::Heap::Heap):
- (JSC::Heap::destroy):
- (JSC::Heap::markRoots):
- * runtime/Heap.h:
- (JSC::Heap::allocateGlobalHandle):
- (JSC::Heap::reportExtraMemoryCost):
- * runtime/JSGlobalData.cpp:
- (JSC::JSGlobalData::JSGlobalData):
- * runtime/JSGlobalData.h:
- (JSC::JSGlobalData::allocateGlobalHandle):
- * runtime/JSGlobalObject.cpp:
- (JSC::JSGlobalObject::~JSGlobalObject):
- * runtime/JSPropertyNameIterator.cpp:
- (JSC::JSPropertyNameIterator::create):
- (JSC::JSPropertyNameIterator::~JSPropertyNameIterator):
- * runtime/JSPropertyNameIterator.h:
- (JSC::JSPropertyNameIterator::createStructure):
- (JSC::Structure::setEnumerationCache):
- (JSC::Structure::clearEnumerationCache):
- * runtime/Protect.h:
- * runtime/Structure.cpp:
- (JSC::Structure::~Structure):
- * runtime/Structure.h:
- * runtime/WeakGCPtr.h:
- (JSC::WeakGCPtrBase::get):
- (JSC::WeakGCPtrBase::clear):
- (JSC::WeakGCPtrBase::operator!):
- (JSC::WeakGCPtrBase::operator UnspecifiedBoolType*):
- (JSC::WeakGCPtrBase::~WeakGCPtrBase):
- (JSC::WeakGCPtrBase::WeakGCPtrBase):
- (JSC::WeakGCPtrBase::internalSet):
- (JSC::LazyWeakGCPtr::LazyWeakGCPtr):
- (JSC::LazyWeakGCPtr::set):
- (JSC::WeakGCPtr::WeakGCPtr):
- (JSC::WeakGCPtr::operator=):
- * runtime/WriteBarrier.h:
- * wtf/BlockStack.h: Added.
- (WTF::::BlockStack):
- (WTF::::~BlockStack):
- (WTF::::blocks):
- (WTF::::grow):
- (WTF::::shrink):
- * wtf/SentinelLinkedList.h: Added.
- (WTF::::SentinelLinkedList):
- (WTF::::begin):
- (WTF::::end):
- (WTF::::push):
- (WTF::::remove):
- * wtf/SinglyLinkedList.h: Added.
- (WTF::::SinglyLinkedList):
- (WTF::::isEmpty):
- (WTF::::push):
- (WTF::::pop):
- 2011-02-15 Pratik Solanki <psolanki@apple.com>
- Move WTF_USE_CFNETWORK to Platform.h
- https://bugs.webkit.org/show_bug.cgi?id=54168
- Reviewed by Darin Adler.
- * wtf/Platform.h: Define WTF_USE_CFNETWORK for Windows builds.
- 2011-02-15 Geoffrey Garen <ggaren@apple.com>
- Reviewed by Darin Adler.
- Moved MarkedBlock data members to the head of the block
- https://bugs.webkit.org/show_bug.cgi?id=54482
-
- This allows for a variable-sized tail, to accommodate oversized blocks.
- SunSpider reports no change.
-
- * runtime/JSCell.h:
- (JSC::JSCell::MarkedBlock::allocate):
- * runtime/MarkedBlock.cpp:
- (JSC::MarkedBlock::destroy):
- (JSC::MarkedBlock::MarkedBlock):
- (JSC::MarkedBlock::sweep):
- * runtime/MarkedBlock.h: Added missing element to the CELLS_PER_BLOCK
- calculation. This kind of error is why we want to migrate to the system
- described below.
- (JSC::roundUpToMultipleOf):
- (JSC::MarkedBlock::firstCell):
- (JSC::MarkedBlock::cells):
- (JSC::MarkedBlock::cellNumber): Use subtraction instead of masking to
- calculate cell number. The mask is no longer correct because the first
- cell is not at the head of the block.
- (JSC::MarkedBlock::forEach): Replaced m_cells data member with a cells()
- accessor. We want to use sizeof(MarkedBlock) to calculate the size of the
- block header, so we can't have an explicit data member to represent the block tail.
-
- Also replaced iteration from zero with iteration from startCell(), since
- the first N cells are now occupied by the header.
- * runtime/MarkedSpace.cpp:
- (JSC::MarkedSpace::MarkedSpace):
- (JSC::MarkedSpace::reset): Replaced iteration from zero as above.
- 2011-02-15 Chris Rogers <crogers@google.com>
- Reviewed by Alexey Proskuryakov.
- Fix Mutex::tryLock() on Windows to work properly with PlatformCondition::timedWait()
- https://bugs.webkit.org/show_bug.cgi?id=54408
- * wtf/ThreadingWin.cpp:
- (WTF::PlatformCondition::timedWait):
- 2011-02-15 Xan Lopez <xlopez@igalia.com>
- Reviewed by Martin Robinson.
- Remove some dead code in ARMv7
- https://bugs.webkit.org/show_bug.cgi?id=54461
- * assembler/ARMv7Assembler.h: remove dead code.
- 2011-02-14 Geoffrey Garen <ggaren@apple.com>
- Rubber-stamped by Gavin Barraclough.
- Some MarkedBlock refactoring.
-
- Made cells private.
-
- Renamed cells => m_cells
- marked => m_marks.
- * runtime/JSCell.h:
- (JSC::JSCell::MarkedBlock::allocate):
- * runtime/MarkedBlock.cpp:
- (JSC::MarkedBlock::destroy):
- (JSC::MarkedBlock::MarkedBlock):
- (JSC::MarkedBlock::sweep):
- * runtime/MarkedBlock.h:
- (JSC::MarkedBlock::isEmpty):
- (JSC::MarkedBlock::clearMarks):
- (JSC::MarkedBlock::markCount):
- (JSC::MarkedBlock::isMarked):
- (JSC::MarkedBlock::testAndSetMarked):
- (JSC::MarkedBlock::setMarked):
- (JSC::MarkedBlock::forEach):
- 2011-02-14 Adam Barth <abarth@webkit.org>
- Reviewed by Eric Seidel.
- Add basic parser for Content Security Policy
- https://bugs.webkit.org/show_bug.cgi?id=54379
- Add a constructor for copying a Vector into a String. I suspect there
- are a number of call sites that are doing this manually that would
- benefit from being moved to this API.
- * wtf/text/WTFString.h:
- (WTF::String::String):
- 2011-02-14 Pavel Podivilov <podivilov@chromium.org>
- Reviewed by Yury Semikhatsky.
- Web Inspector: use call frame column to determine execution line in source frame.
- https://bugs.webkit.org/show_bug.cgi?id=54001
- * wtf/text/TextPosition.h:
- (WTF::ZeroBasedNumber::convertAsOneBasedInt):
- 2011-02-13 Jeremy Moskovich <jeremy@chromium.org>
- Reviewed by Adam Barth.
- Add a compile-time option to completely disable WebArchive support.
- https://bugs.webkit.org/show_bug.cgi?id=52712
- Add an ENABLE(WEB_ARCHIVE) compile-time setting and use it for all WebArchive code.
- Ports Affected:
- WebArchive support is currently enabled for all ports that define PLATFORM(CF) apart from Qt.
- This patch preserves this behavior except that it also disables support in the Chromium port.
- * wtf/Platform.h: Add ENABLE_WEB_ARCHIVE definition and turn it off explicitly for Qt & Chromium ports.
- 2011-02-13 Cameron Zwarich <zwarich@apple.com>
- Reviewed by Dan Bernstein.
- Bug 53760 - JSC fails to build with TOT Clang
- https://bugs.webkit.org/show_bug.cgi?id=53760
- Fix -Woverloaded-virtual warnings. This is also a 6% speedup on the v8 raytrace
- benchmark; it is nothing-to-noise on everything else.
- * API/JSCallbackObject.h: Remove pointlessly overloaded method.
- * API/JSCallbackObjectFunctions.h: Ditto.
- * runtime/Arguments.cpp:
- (JSC::Arguments::put): Change signature to match the base class. This implementation
- was no longer being called by anyone. This wasn't noticed because it is merely an
- optimization of the base class' implementation.
- * runtime/Arguments.h: Ditto.
- 2011-02-12 Adam Barth <abarth@webkit.org>
- Reviewed by Mark Rowe.
- Use /dev/urandom as the OSRandomSource on OS(DARWIN)
- https://bugs.webkit.org/show_bug.cgi?id=54279
- I'm not sure it makes much of a difference whether we use arc4random or
- /dev/urandom on Mac. However, there's some aesthetic benefit to using
- the same underlying API on as many platforms as reasonable.
- * config.h:
- * wtf/OSRandomSource.cpp:
- (WTF::cryptographicallyRandomValuesFromOS):
- 2011-02-12 Adam Barth <abarth@webkit.org>
- Reviewed by Kenneth Russell.
- Enable ArrayBuffers by default
- https://bugs.webkit.org/show_bug.cgi?id=54310
- Export the required functions.
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
- 2011-02-11 Daniel Bates <dbates@rim.com>
- Reviewed by Geoffrey Garen.
- Remove explicit disable ENABLE_ASSEMBLER_WX_EXCLUSIVE on non-iOS ports
- https://bugs.webkit.org/show_bug.cgi?id=54107
-
- It is unnecessary to explicitly disable ENABLE_ASSEMBLER_WX_EXCLUSIVE
- by the definition of ENABLE().
- * wtf/Platform.h:
- 2011-02-11 Geoffrey Garen <ggaren@apple.com>
- Not reviewed.
- Randomly touch some build files in the hopes of fixing the Qt build.
- * JavaScriptCore.gypi:
- * JavaScriptCore.pri:
- * JavaScriptCore.pro:
- 2011-02-11 Geoffrey Garen <ggaren@apple.com>
- Reviewed by Sam Weinig.
- Garbage collection timer cycles forever, even when nothing is happening
- https://bugs.webkit.org/show_bug.cgi?id=54320
-
- (Rolling back in r78386 with the build fixed.)
- * runtime/GCActivityCallbackCF.cpp:
- (JSC::DefaultGCActivityCallbackPlatformData::trigger): Be sure to make
- our timer inert after forcing a GC, to avoid GC'ing repeatedly.
- 2011-02-11 Geoffrey Garen <ggaren@apple.com>
- Not reviewed.
-
- Used svn merge -r78386:78385 to roll out r78386 because it broke the build.
- * runtime/GCActivityCallbackCF.cpp:
- (JSC::DefaultGCActivityCallbackPlatformData::trigger):
- 2011-02-11 Geoffrey Garen <ggaren@apple.com>
- Reviewed by Sam Weinig.
- Garbage collection timer cycles forever, even when nothing is happening
- https://bugs.webkit.org/show_bug.cgi?id=54320
- * runtime/GCActivityCallbackCF.cpp:
- (JSC::DefaultGCActivityCallbackPlatformData::trigger): Be sure to make
- our timer inert after forcing a GC, to avoid GC'ing repeatedly.
- 2011-02-11 Geoffrey Garen <ggaren@apple.com>
- Try to fix the Windows build: added an exported symbol.
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
- 2011-02-11 Geoffrey Garen <ggaren@apple.com>
- Reviewed by Oliver Hunt.
- A little more encapsulation for the heap: Removed CollectorHeapIterator
- https://bugs.webkit.org/show_bug.cgi?id=54298
-
- CollectorHeapIterator is a God object that knows the internals of each
- of the pieces of the heap. This undermines the encapsulation I'm trying
- to achieve by splitting concepts into different classes.
-
- As an alternative, I've given each class a forEach iteration function,
- which takes a functor as an argument. Now, each class just needs to
- know how to iterate the things it knows about.
- * GNUmakefile.am:
- * JavaScriptCore.exp:
- * JavaScriptCore.gypi:
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj: Removed CollectorHeapIterator.
- * debugger/Debugger.cpp:
- (JSC::Recompiler::Recompiler):
- (JSC::Recompiler::~Recompiler):
- (JSC::Recompiler::operator()):
- (JSC::Debugger::recompileAllJSFunctions): Updated to use forEach interface
- instead of an iterator.
- * runtime/CollectorHeapIterator.h: Removed.
- * runtime/Heap.cpp:
- (JSC::TypeCounter::TypeCounter):
- (JSC::TypeCounter::typeName):
- (JSC::TypeCounter::operator()):
- (JSC::TypeCounter::take):
- (JSC::Heap::protectedObjectTypeCounts):
- (JSC::Heap::objectTypeCounts): Added forEach and removed iterator.
- * runtime/Heap.h:
- (JSC::Heap::forEach):
- * runtime/JSGlobalData.cpp:
- (JSC::Recompiler::operator()):
- (JSC::JSGlobalData::recompileAllJSFunctions):
- * runtime/MarkedBlock.h:
- (JSC::MarkedBlock::forEach): Added forEach. Removed friend declaration
- for CollectorHeapIterator. Now, we can make all our data private and
- change it without breaking any other classes.
- * runtime/MarkedSpace.cpp:
- * runtime/MarkedSpace.h:
- (JSC::MarkedSpace::forEach): Added forEach and removed iterator.
- 2011-02-11 Adam Barth <abarth@webkit.org>
- Reviewed by Andreas Kling.
- CryptographicRandomNumber has its threading ifdefs backwards
- https://bugs.webkit.org/show_bug.cgi?id=54280
- Turns out we want the mutex when thread is enabled. :)
- * wtf/CryptographicallyRandomNumber.cpp:
- (WTF::ARC4Stream::ARC4RandomNumberGenerator::randomNumber):
- (WTF::ARC4Stream::ARC4RandomNumberGenerator::randomValues):
- 2011-02-10 Adam Barth <abarth@webkit.org>
- Reviewed by Eric Seidel.
- WebKit should have a cryptographic RNG
- https://bugs.webkit.org/show_bug.cgi?id=22049
- Teach JavaScriptCore how to export this function.
- * JavaScriptCore.exp:
- * JavaScriptCore.xcodeproj/project.pbxproj:
- 2011-02-10 Geoffrey Garen <ggaren@apple.com>
- Reviewed by Sam Weinig.
- A little more encapsulation for MarkedBlock: Made all constants private
- so clients don't know whether allocations are fixed-sized or not
- https://bugs.webkit.org/show_bug.cgi?id=54270
-
- SunSpider reports no change.
- * runtime/CollectorHeapIterator.h:
- (JSC::CollectorHeapIterator::advance): Updated for removal of HeapConstants.
- * runtime/Error.cpp: Switched to using ASSERT_CLASS_FITS_IN_CELL, like
- all other classes.
- * runtime/Heap.cpp:
- (JSC::Heap::allocate): Updated for removal of HeapConstants.
- (JSC::Heap::reset): Updated to use size(), instead of calculating size
- on our own.
- * runtime/Heap.h: Moved the ASSERT here to MarkedBlock, since it enforces
- on special knowledge of fixed-sizery, which only MarkedBlock is supposed
- to know about.
- * runtime/JSCell.h:
- (JSC::JSCell::MarkedBlock::allocate): Updated for removal of HeapConstants.
- Also changed to reset nextCell to 0 at the end of a block, since that
- seems more consistent.
- * runtime/JSGlobalData.cpp:
- (JSC::JSGlobalData::storeVPtrs): Changed to use a fixed array of char.
- This hard-coded size is a little wonky, but the compiler will tell us
- if it's ever wrong, so I think it's OK.
- * runtime/MarkedBlock.cpp:
- (JSC::MarkedBlock::destroy):
- (JSC::MarkedBlock::MarkedBlock):
- (JSC::MarkedBlock::sweep): Updated for removal of HeapConstants.
- * runtime/MarkedBlock.h:
- (JSC::MarkedBlock::isEmpty):
- (JSC::MarkedBlock::clearMarks):
- (JSC::MarkedBlock::size):
- (JSC::MarkedBlock::capacity): Made constants private to this class.
- Removed HeapConstants. Added size() and capacity() functions.
- * runtime/MarkedSpace.cpp:
- (JSC::MarkedSpace::allocate):
- (JSC::MarkedSpace::objectCount):
- (JSC::MarkedSpace::size):
- (JSC::MarkedSpace::capacity):
- * runtime/MarkedSpace.h: Use MarkedBlock helper functions instead of
- direct knowledge of MarkedBlock internals.
- 2011-02-10 Geoffrey Garen <ggaren@apple.com>
- Reviewed by Sam Weinig.
- A little more encapsulation for MarkedBlock: Made mark bits private
- https://bugs.webkit.org/show_bug.cgi?id=54264
-
- SunSpider reports no change.
- * runtime/Heap.cpp:
- (JSC::Heap::markRoots):
- (JSC::Heap::reset): Renamed clearMarkBits => clearMarks, since clients
- don't need to know that marks are represented as bits. Renamed
- markedCells => markCount, since clients don't need to know that blocks
- are split into cells.
- * runtime/MarkedBlock.h:
- (JSC::MarkedBlock::isEmpty):
- (JSC::MarkedBlock::clearMarks):
- (JSC::MarkedBlock::markCount): New helper functions for encapsulating
- the information clients actually need.
- * runtime/MarkedSpace.cpp:
- (JSC::MarkedSpace::destroy):
- (JSC::MarkedSpace::shrink):
- (JSC::MarkedSpace::clearMarks):
- (JSC::MarkedSpace::markCount):
- (JSC::MarkedSpace::objectCount):
- * runtime/MarkedSpace.h: Use new helper functions instead of accessing
- MarkedBlock data directly.
- 2011-02-10 Michael Saboff <msaboff@apple.com>
- Reviewed by Geoffrey Garen.
- Cached JavaScript Parser Data Being Left in Memory Cache
- https://bugs.webkit.org/show_bug.cgi?id=54245
- Added clear method which removes SourceProviderCache items.
- Cleaned up extraneous whitespace.
- * JavaScriptCore.exp:
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
- * parser/SourceProviderCache.cpp:
- (JSC::SourceProviderCache::~SourceProviderCache):
- (JSC::SourceProviderCache::clear):
- (JSC::SourceProviderCache::byteSize):
- (JSC::SourceProviderCache::add):
- * parser/SourceProviderCache.h:
- 2011-02-10 Joseph Pecoraro <joepeck@webkit.org>
- Follow-up fix to r78291. I should pass (int) 0, not '0' to memset.
- * runtime/GCActivityCallbackCF.cpp:
- (JSC::DefaultGCActivityCallback::commonConstructor): fix mistaken post-review change.
- 2011-02-10 Joseph Pecoraro <joepeck@webkit.org>
- Reviewed by Geoffrey Garen.
- Make DefaultGCActivityCallback for PLATFORM(CF) Easier to Subclass
- https://bugs.webkit.org/show_bug.cgi?id=54257
- A subclass may want to specify the CFRunLoop that the Garbage Collection
- will happen on. It was difficult to manipulate this in a subclass because
- the current DefaultGCActivityCallback class does this in its constructor.
- This patch generalizes things a bit more so that a specific run loop can
- be passed in to the constructor. This makes it so all run loop management
- can stay in DefaultGCActivityCallback and a subclass can specify any runloop.
- * runtime/GCActivityCallback.h: expose a PLATFORM(CF) constructor that can
- specify the runloop GC can be scheduled on.
- * runtime/GCActivityCallbackCF.cpp:
- (JSC::DefaultGCActivityCallback::DefaultGCActivityCallback): two constructors,
- one that specifies the run loop and passes that on to commonConstructor and
- the old constructor defaults to the current run loop.
- (JSC::DefaultGCActivityCallback::commonConstructor): do normal construction,
- adding the timer to the given runloop.
- 2011-02-10 Geoffrey Garen <ggaren@apple.com>
- Reviewed by Oliver Hunt.
- A little more encapsulation for MarkedBlock: Moved allocate() and sweep() into MarkedBlock
- https://bugs.webkit.org/show_bug.cgi?id=54253
-
- SunSpider reports no change.
- * runtime/CollectorHeapIterator.h: Removed DeadObjectIterator, since it
- is now unused.
- * runtime/Heap.cpp:
- (JSC::Heap::reset): Moved the call to shrink() here, since it seems a
- little more clear for MarkedSpace's client to tell it explicitly when to
- shrink.
- * runtime/JSCell.h:
- (JSC::JSCell::MarkedBlock::allocate): Split out from MarkedSpace::allocate.
- * runtime/MarkedBlock.cpp:
- (JSC::MarkedBlock::sweep): Split out from MarkedSpace::sweep, and
- converted to more directly iterate a MarkedBlock based on knowing its
- internal structure.
- * runtime/MarkedBlock.h:
- * runtime/MarkedSpace.cpp:
- (JSC::MarkedSpace::allocate):
- (JSC::MarkedSpace::sweep):
- * runtime/MarkedSpace.h: Split out the code mentioned above.
- 2011-02-10 Patrick Gansterer <paroga@webkit.org>
- Reviewed by Andreas Kling.
- Fix compilation error on OpenBSD
- https://bugs.webkit.org/show_bug.cgi?id=53766
- Add a HAVE_STRNSTR in Platform.h and define it only on Darwin and FreeBSD.
- * wtf/Platform.h:
- * wtf/StringExtras.h: Use HAVE(STRNSTR) now.
- 2011-02-10 Adam Roben <aroben@apple.com>
- Print locations of assertions and logs in a way that Visual Studio understands
- With this change, double-clicking one of these locations in Visual Studio's Output Window
- will focus that line of code in the editor.
- Fixes <http://webkit.org/b/54208> Double-clicking locations of assertions/logs in Visual
- Studio's Output Window does nothing
- Reviewed by Alexey Proskuryakov.
- * wtf/Assertions.cpp:
- (printCallSite): Use OS(WINDOWS) instead of the meaningless OS(WIN). When we aren't using
- the debug CRT (and thus can't call _CrtDbgReport), print the file and line number using the
- same format that cl.exe uses when it prints compiler errors.
- 2011-02-10 Dan Bernstein <mitz@apple.com>
- LLVM Compiler build fix.
- * runtime/MarkedBlock.cpp:
- (JSC::MarkedBlock::create):
- 2011-02-10 Peter Varga <pvarga@webkit.org>
- Reviewed by Csaba Osztrogonác.
- Remove PCRE source from trunk
- https://bugs.webkit.org/show_bug.cgi?id=54188
- * Android.mk:
- * Android.v8.wtf.mk:
- * CMakeLists.txt:
- * DerivedSources.make:
- * DerivedSources.pro:
- * GNUmakefile.am:
- * JavaScriptCore.gypi:
- * JavaScriptCore.order:
- * JavaScriptCore.pri:
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreCommon.vsprops:
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreGenerated.make:
- * JavaScriptCore.vcproj/WTF/WTFCommon.vsprops:
- * JavaScriptCore.vcproj/jsc/jscCommon.vsprops:
- * JavaScriptCore.xcodeproj/project.pbxproj:
- * pcre/AUTHORS: Removed.
- * pcre/COPYING: Removed.
- * pcre/dftables: Removed.
- * pcre/pcre.h: Removed.
- * pcre/pcre.pri: Removed.
- * pcre/pcre_compile.cpp: Removed.
- * pcre/pcre_exec.cpp: Removed.
- * pcre/pcre_internal.h: Removed.
- * pcre/pcre_tables.cpp: Removed.
- * pcre/pcre_ucp_searchfuncs.cpp: Removed.
- * pcre/pcre_xclass.cpp: Removed.
- * pcre/ucpinternal.h: Removed.
- * pcre/ucptable.cpp: Removed.
- * wscript:
- 2011-02-10 Patrick Gansterer <paroga@webkit.org>
- Reviewed by Adam Barth.
- Add randomValuesFromOS for OS(WINDOWS)
- https://bugs.webkit.org/show_bug.cgi?id=54155
- Use CryptGenRandom for generating cryptographically secure random numbers.
- This will work on WinCE and MinGW too.
- * config.h:
- * wtf/OSRandomSource.cpp:
- (WTF::randomValuesFromOS):
- 2011-02-10 Jarred Nicholls <jarred@sencha.com>
- Reviewed by Adam Barth.
- REGRESSION(r78149): Return value of read() shouldn't be ignored.
- https://bugs.webkit.org/show_bug.cgi?id=54167
-
- stdio read should have its return value handled. Build error in gcc 4.4.5.
- * wtf/OSRandomSource.cpp:
- (WTF::randomValuesFromOS):
- 2011-02-10 Patrick Gansterer <paroga@webkit.org>
- Reviewed by Adam Barth.
- Rename randomValuesFromOS to cryptographicallyRandomValuesFromOS
- https://bugs.webkit.org/show_bug.cgi?id=54156
- randomValuesFromOS generates random numbers of cryptographic quality.
- Make this clear by adding "cryptographically" to the function name.
- * wtf/CryptographicallyRandomNumber.cpp:
- (WTF::ARC4Stream::ARC4RandomNumberGenerator::stir):
- * wtf/OSRandomSource.cpp:
- (WTF::cryptographicallyRandomValuesFromOS):
- * wtf/OSRandomSource.h:
- 2011-02-09 Mark Rowe <mrowe@apple.com>
- Reviewed by Sam Weinig.
- <rdar://problem/8805364> Malloc zone enumeration code should be safe in the face of errors from the memory reader.
- * wtf/FastMalloc.cpp:
- (WTF::PageHeapAllocator::recordAdministrativeRegions): Use the new helper function to walk the linked list safely.
- (WTF::TCMalloc_ThreadCache_FreeList::enumerateFreeObjects): Ditto.
- (WTF::TCMalloc_Central_FreeList::enumerateFreeObjects): Ditto.
- (WTF::TCMallocStats::PageMapFreeObjectFinder::visit): Bail out if the span could not be read.
- (WTF::TCMallocStats::PageMapMemoryUsageRecorder::visit): Ditto.
- * wtf/MallocZoneSupport.h:
- (WTF::RemoteMemoryReader::operator()): Remove an assert that is not valid.
- (WTF::RemoteMemoryReader::nextEntryInLinkedList): Add a helper function for retrieving the next entry in
- a linked list. It maps a failed read of the remote memory in to a null pointer, which all callers can
- handle gracefully.
- 2011-02-09 Gavin Barraclough <barraclough@apple.com>
- Reviewed by Sam Weinig.
- Bug 54164 - Optimize global_var accesses on JSVALUE64
- Directly embed the pointer to d->registers, optimize out the load
- from the variable object, as we do already in JSVALUE32_64.
- This is a ~1.5% win on sunspidey.
- * jit/JIT.cpp:
- * jit/JIT.h:
- * jit/JITOpcodes.cpp:
- (JSC::JIT::emit_op_get_global_var):
- (JSC::JIT::emit_op_put_global_var):
- (JSC::JIT::emit_op_get_scoped_var):
- (JSC::JIT::emit_op_put_scoped_var):
- 2011-02-09 Geoffrey Garen <ggaren@apple.com>
- Reviewed by Oliver Hunt.
- A little more encapsulation for MarkedBlock: Made MarkedBlock responsible
- for its own initialization and destruction
- https://bugs.webkit.org/show_bug.cgi?id=54137
- * runtime/CollectorHeapIterator.h: Removed ObjectIterator since it is
- now unused.
- * runtime/JSCell.h: Maded MarkedBlock a friend so it can construct and
- destruct JSCells.
- * runtime/MarkedBlock.cpp:
- (JSC::MarkedBlock::create):
- (JSC::MarkedBlock::destroy):
- (JSC::MarkedBlock::MarkedBlock): Migrated initialization and destruction
- code from MarkedSpace, updating it not to use ObjectIterator. We don't
- want to use an abstract iterator since iteration will be unique to each
- block in the future.
- * runtime/MarkedBlock.h: Made the consructor private and moved it into
- the .cpp file because it's big now.
- * runtime/MarkedSpace.cpp:
- (JSC::MarkedSpace::allocateBlock):
- (JSC::MarkedSpace::freeBlock): Migrated code.
- * runtime/MarkedSpace.h:
- (JSC::CollectorHeap::collectorBlock): Keep a vector of MarkedBlock
- pointers instead of aligned allocations -- how MarkedBlocks are allocated
- is now an implementation detail of MarkedBlock.
- 2011-02-09 Adam Barth <abarth@webkit.org>
- Another attempt to fix the Qt Windows build.
- * config.h:
- * wtf/OSRandomSource.cpp:
- (WTF::randomValuesFromOS):
- 2011-02-09 Adam Barth <abarth@webkit.org>
- Attempt to fix the Qt Windows build.
- * wtf/OSRandomSource.cpp:
- (WTF::randomValuesFromOS):
- 2011-02-09 Adam Barth <abarth@webkit.org>
- Reviewed by Eric Seidel.
- Add WTF::cryptographicallyRandomNumber
- https://bugs.webkit.org/show_bug.cgi?id=54083
- Introduce a cryptographically strong random number generator to WTF.
- The random number generator is based on arc4random as found in:
- http://www.openbsd.org/cgi-bin/cvsweb/src/lib/libc/crypt/arc4random.c?rev=1.22
- I've changed to source to WebKit style and abstracted the operating
- system interaction to OSRandomSource. We'll use this functionality to
- expose a cryptographically strong random number generator to
- JavaScript.
- * Android.mk:
- * Android.v8.wtf.mk:
- * GNUmakefile.am:
- * JavaScriptCore.gypi:
- * JavaScriptCore.vcproj/WTF/WTF.vcproj:
- * JavaScriptCore.xcodeproj/project.pbxproj:
- * config.h:
- * wtf/CMakeLists.txt:
- * wtf/CryptographicallyRandomNumber.cpp: Added.
- (WTF::initMutexIfNeeded):
- (WTF::init):
- (WTF::addRandomData):
- (WTF::stir):
- (WTF::stirIfNeeded):
- (WTF::getByte):
- (WTF::getWord):
- (WTF::cryptographicallyRandomNumber):
- (WTF::cryptographicallyRandomValues):
- * wtf/CryptographicallyRandomNumber.h: Added.
- * wtf/OSRandomSource.cpp: Added.
- (WTF::randomValuesFromOS):
- * wtf/OSRandomSource.h: Added.
- * wtf/wtf.pri:
- 2011-02-09 Geoffrey Garen <ggaren@apple.com>
- Try to fix the build.
- * wtf/Bitmap.h: Include string.h for memset. Not sure why this started
- failing now.
- 2011-02-09 Geoffrey Garen <ggaren@apple.com>
- Reviewed by Sam Weinig.
- A tiny bit of encapsulation for MarkedBlock: made its heap data member private
- https://bugs.webkit.org/show_bug.cgi?id=54129
- * runtime/MarkedBlock.h:
- (JSC::MarkedBlock::isCellAligned):
- (JSC::MarkedBlock::MarkedBlock):
- (JSC::MarkedBlock::heap): Made the heap data member private, and provided
- a constructor and an accessor.
- * runtime/MarkedSpace.cpp:
- (JSC::MarkedSpace::allocateBlock):
- * runtime/MarkedSpace.h:
- (JSC::MarkedSpace::heap): Use the constructor and accessor.
- 2011-02-09 Peter Varga <pvarga@webkit.org>
- Reviewed by Gavin Barraclough.
- Replace PCRE with Yarr in WebCore
- https://bugs.webkit.org/show_bug.cgi?id=53496
- * JavaScriptCore.exp:
- * JavaScriptCore.gyp/JavaScriptCore.gyp:
- * JavaScriptCore.gypi:
- * JavaScriptCore.pro:
- * JavaScriptCore.xcodeproj/project.pbxproj:
- * create_regex_tables:
- * runtime/RegExp.cpp:
- * wtf/Platform.h:
- * yarr/Yarr.h:
- * yarr/YarrJIT.cpp:
- * yarr/YarrJIT.h:
- * yarr/YarrParser.h:
- * yarr/YarrPattern.h:
- * yarr/YarrSyntaxChecker.h:
- * yarr/yarr.pri: Added.
- 2011-02-08 Geoffrey Garen <ggaren@apple.com>
- Reviewed by Sam Weinig.
- Removed some dead code from Heap
- https://bugs.webkit.org/show_bug.cgi?id=54064
- * runtime/MarkedSpace.cpp: Removed some now-unused constants and
- declarations.
- (JSC::MarkedSpace::allocate): Removed some ASSERTs that are also ASSERTed
- by our caller. Removed redundant typedefs.
- 2011-02-08 Geoffrey Garen <ggaren@apple.com>
- Reviewed by Sam Weinig.
- Use a vector to track blocks in the Heap, instead of hand-rolled vector-like code
- https://bugs.webkit.org/show_bug.cgi?id=54062
-
- SunSpider reports no change.
- * runtime/CollectorHeapIterator.h:
- (JSC::CollectorHeapIterator::isValid):
- (JSC::CollectorHeapIterator::isLive): Updated for new mark invariant: To
- know if an object is live, you just need to test its mark bit.
- * runtime/MarkedSpace.cpp:
- (JSC::MarkedSpace::MarkedSpace): Moved waterMark and highWaterMark from
- CollectorHeap into MarkedSpace, since they're global state. Removed call
- to memset since CollectorHeap is a true class with its own constructor now.
- (JSC::MarkedSpace::destroy): Change uses of m_heap.usedBlocks to
- m_heap.blocks.size(), and m_heap.numBlocks to m_heap.blocks.capacity().
- (JSC::MarkedSpace::allocateBlock):
- (JSC::MarkedSpace::freeBlock): No need to manage our vector manually anymore.
- (JSC::MarkedSpace::allocate):
- (JSC::MarkedSpace::shrink):
- (JSC::MarkedSpace::clearMarkBits):
- (JSC::MarkedSpace::markedCells):
- (JSC::MarkedSpace::sweep):
- (JSC::MarkedSpace::objectCount):
- (JSC::MarkedSpace::capacity):
- (JSC::MarkedSpace::reset):
- (JSC::MarkedSpace::primaryHeapEnd):
- * runtime/MarkedSpace.h:
- (JSC::CollectorHeap::CollectorHeap):
- (JSC::MarkedSpace::highWaterMark):
- (JSC::MarkedSpace::setHighWaterMark):
- (JSC::MarkedSpace::contains): Same as above.
- 2011-02-08 Geoffrey Garen <ggaren@apple.com>
- Reviewed by Darin Adler.
- Give each MarkedBlock enough mark bits to cover the whole block
- https://bugs.webkit.org/show_bug.cgi?id=54029
-
- SunSpider reports no change.
- This simplifies access to mark bits, since any cell-aligned pointer
- into a block now has a valid mark bit to test.
-
- * runtime/MarkedBlock.h: Changed CELLS_PER_BLOCK to account for the extra
- mark bits. This happens not to change its actual value.
- (JSC::MarkedBlock::cellNumber):
- (JSC::MarkedBlock::isMarked):
- (JSC::MarkedBlock::testAndSetMarked):
- (JSC::MarkedBlock::setMarked): Changed const JSCell* to const void* to
- remove a cast from our caller, and to more accurately reflect the fact
- that MarkedBlock is agnostic about the types pointed to by the pointers
- you pass to it.
- (JSC::MarkedBlock::isPossibleCell): Removed a null check. We now consider
- the null pointer to be a possible cell with a 0 (impossible) block. This
- removes a null check from marking.
- * runtime/MarkedSpace.cpp:
- * runtime/MarkedSpace.h:
- (JSC::MarkedSpace::contains): Simplified the contains check, and inlined
- the whole thing, now that it's so simple.
- 2011-02-08 Daniel Bates <dbates@rim.com>
- Rubber-stamped by Martin Robinson.
- Rename enum ProtectionSeting [sic] to ProtectionSetting.
- * jit/ExecutableAllocator.cpp:
- (JSC::ExecutableAllocator::reprotectRegion):
- * jit/ExecutableAllocator.h:
- 2011-02-08 Balazs Kelemen <kbalazs@webkit.org>
- Reviewed by Andreas Kling.
- [Qt] Should not always define USE_SYSTEM_MALLOC
- https://bugs.webkit.org/show_bug.cgi?id=54007
- * wtf/Platform.h:
- 2011-02-08 Dan Bernstein <mitz@apple.com>
- Reviewed by Maciej Stachowiak.
- LLVM Compiler build fix.
- * runtime/WriteBarrier.h:
- (JSC::WriteBarrier::WriteBarrier):
- 2011-02-07 Ryosuke Niwa <rniwa@webkit.org>
- Reviewed by Darin Adler.
- JSVariableObject::setRegisters should take PassOwnArrayPtr for registersArray.
- https://bugs.webkit.org/show_bug.cgi?id=53902
- * runtime/Arguments.h:
- (JSC::JSActivation::copyRegisters): Uses OwnArrayPtr<Register> instead of Register*.
- * runtime/JSGlobalObject.cpp:
- (JSC::JSGlobalObject::copyGlobalsFrom): Ditto.
- * runtime/JSGlobalObject.h:
- (JSC::JSGlobalObject::setRegisters): Takes PassOwnArrayPtr<Register> instead of Register*
- for registerArray.
- * runtime/JSVariableObject.h:
- (JSC::JSVariableObject::copyRegisterArray): Returns PassOwnArrayPtr<Register> instead of Register*.
- (JSC::JSVariableObject::setRegisters): Takes PassOwnArrayPtr<Register> instead of Register*
- for registerArray.
- 2011-02-07 Geoffrey Garen <ggaren@apple.com>
- Reviewed by Sam Weinig.
- Removed some dead code from Heap
- https://bugs.webkit.org/show_bug.cgi?id=53969
-
- SunSpider reports no change.
- * runtime/MarkedSpace.cpp:
- (JSC::MarkedSpace::shrink):
- (JSC::MarkedSpace::sweep):
- * runtime/MarkedSpace.h: Removed resizeBlocks and growBlocks, and
- renamed shrinkBlocks to shrink, making it unconditionally shrink as
- much as possible.
- 2011-02-07 Geoffrey Garen <ggaren@apple.com>
- Reviewed by Oliver Hunt.
- Simplified the marked space's mark invariant
- https://bugs.webkit.org/show_bug.cgi?id=53968
-
- SunSpider reports no change.
-
- * runtime/MarkedSpace.cpp:
- (JSC::MarkedSpace::allocate): Mark objects when allocating them. This
- means that, at all times other than the mark phase, an object is live
- if and only if it is marked.
- (JSC::MarkedSpace::containsSlowCase): Use the new mark invariant to
- simplify testing whether an object is live.
- 2011-02-07 Beth Dakin <bdakin@apple.com>
- Reviewed by Eric Seidel.
- Fix for https://bugs.webkit.org/show_bug.cgi?id=53950
- USE_WK_SCROLLBAR_PAINTER in ScrollbarThemeMac should be in
- Platform.h instead
- * wtf/Platform.h:
- 2011-02-07 Darin Adler <darin@apple.com>
- Reviewed by Antti Koivisto.
- Add built-in decoder for UTF-8 for improved performance
- https://bugs.webkit.org/show_bug.cgi?id=53898
- * wtf/unicode/UnicodeMacrosFromICU.h: Added U8_MAX_LENGTH and
- U8_APPEND_UNSAFE. Also fixed header.
- 2011-02-07 Adam Roben <aroben@apple.com>
- Delete precompiled headers whenever any .vsprops file changes
- Precompiled headers need to be rebuilt if, e.g., an ENABLE_* macro is changed in one of our
- .vsprops files. Unfortunately, Visual Studio isn't smart enough to figure this out, so we
- give it some assistance by deleting the precompiled headers whenever any .vsprops file
- changes.
- I also made some drive-by fixes while I was in the area.
- Fixes <http://webkit.org/b/53826> react-to-vsprops-changes.py doesn't force precompiled
- headers to be rebuilt, but should
- Reviewed by David Kilzer.
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreGenerated.make: Stop ignoring the
- return code from react-to-vsprops-changes.py so we will notice when errors are introduced.
- But skip the script entirely in production builds, where it is both unnecessary and can't
- function correctly (due to not having the entire source tree available to it).
- * JavaScriptCore.vcproj/JavaScriptCore/react-to-vsprops-changes.py:
- (main): Removed an extra '*' in the glob for finding manifest files. The extra '*' was
- leftover from before we rearranged WebKitBuild in r75138. Moved code to delete an old file
- to the new delete_if_older_than function. Added code to delete any precompiled headers older
- than the newest .vsprops file.
- (delete_if_older_than): Added. Code came from main.
- 2011-02-07 Antti Koivisto <antti@apple.com>
- Not reviewed.
-
- ASSERTS_DISABLED -> ASSERT_DISABLED
- * wtf/BloomFilter.h:
- 2011-02-06 Ryosuke Niwa <rniwa@webkit.org>
- Unreviewed; speculative Qt build fix.
- * JavaScriptCore.pro:
- 2011-02-06 Ryosuke Niwa <rniwa@webkit.org>
- Reviewed by Darin Adler.
- OwnArraryPtr.h uses deleteOwnedPtr but doesn’t include OwnPtrCommon.h
- https://bugs.webkit.org/show_bug.cgi?id=52867
- Removed LOOSE_OWN_ARRAY_PTR and OwnArrayPtr<T>::set. Replaced all calls to OwnArrayPtr::set
- and loose instantiation of OwnArrayPtr by calls to operator= and adoptArrayPtr. Also removed
- OwnArrayPtrCommon.h since PassOwnArrayPtr.h needs to include OwnArrayPtr.h and there is
- no point in putting deleteOwnedArrayPtr into a separate header.
-
- Note: if this patch breaks build, the code is either instiantiating OwnArrayPtr
- without calling adoptArrayPtr or calling set on ArrayOwnPtr instead of operator=.
- No tests are added since this is a refactoring.
- * API/JSStringRefCF.cpp:
- (JSStringCreateWithCFString): Calls adoptArrayPtr.
- * GNUmakefile.am: Removed OwnArrayPtrCommon.h
- * JavaScriptCore.vcproj/WTF/WTF.vcproj: Ditto.
- * JavaScriptCore.xcodeproj/project.pbxproj: Ditto.
- * runtime/Arguments.cpp:
- (JSC::Arguments::deleteProperty): Calls adoptArrayPtr.
- * runtime/Arguments.h:
- (JSC::Arguments::copyRegisters): Ditto.
- * runtime/JSPropertyNameIterator.cpp:
- (JSC::JSPropertyNameIterator::JSPropertyNameIterator): Ditto.
- * runtime/JSVariableObject.h:
- (JSC::JSVariableObject::setRegisters): Calls operator= instead of set.
- * runtime/StructureChain.cpp:
- (JSC::StructureChain::StructureChain): Ditto.
- * wtf/CMakeLists.txt:
- * wtf/DateMath.h:
- (JSC::GregorianDateTime::GregorianDateTime): No longer instnatiates OwnArrayPtr
- with a null pointer.
- * wtf/OwnArrayPtr.h:
- * wtf/OwnArrayPtrCommon.h: Removed.
- * wtf/PassOwnArrayPtr.h: No longer includes OwnArrayCommon.h
- (WTF::deleteOwnedArrayPtr): Moved from OwnArrayPtrCommon.h
- 2011-02-06 Antti Koivisto <antti@apple.com>
- Reviewed by Maciej Stachowiak.
- Use bloom filter for descendant selector filtering
- https://bugs.webkit.org/show_bug.cgi?id=53880
-
- Implement a bloom filter with k=2 and 8 bit counting.
- * GNUmakefile.am:
- * JavaScriptCore.gypi:
- * JavaScriptCore.vcproj/WTF/WTF.vcproj:
- * JavaScriptCore.xcodeproj/project.pbxproj:
- * wtf/BloomFilter.h: Added.
- (WTF::BloomFilter::maximumCount):
- (WTF::BloomFilter::BloomFilter):
- (WTF::BloomFilter::mayContain):
- (WTF::BloomFilter::add):
- (WTF::BloomFilter::remove):
- (WTF::BloomFilter::firstSlot):
- (WTF::BloomFilter::secondSlot):
- (WTF::::add):
- (WTF::::remove):
- (WTF::::clear):
- (WTF::::likelyEmpty):
- (WTF::::isClear):
- 2011-02-04 Geoffrey Garen <ggaren@apple.com>
- Reviewed by Oliver Hunt.
- Rolled back in r77612 with ASSERT/crash fixed.
- https://bugs.webkit.org/show_bug.cgi?id=53759
-
- Don't shrink the heap to 0 unconditionally. Instead, shrink to 1 if
- necessary. For now, the heap assumes that it always has at least one
- block live.
- * runtime/Heap.cpp:
- (JSC::Heap::Heap):
- (JSC::Heap::reset):
- * runtime/Heap.h:
- * runtime/MarkedSpace.cpp:
- (JSC::MarkedSpace::allocate):
- (JSC::MarkedSpace::shrinkBlocks):
- (JSC::MarkedSpace::sweep):
- (JSC::MarkedSpace::reset):
- * runtime/MarkedSpace.h:
- (JSC::MarkedSpace::highWaterMark):
- (JSC::MarkedSpace::setHighWaterMark):
- 2011-02-04 David Kilzer <ddkilzer@apple.com>
- BUILD FIX: REALLY remove the last vestiges of JSVALUE32!
- <rdar://problem/8957409> Remove last vestiges of JSVALUE32
- <http://webkit.org/b/53779>
- * DerivedSources.make: Removed dependency on
- JavaScriptCore.JSVALUE32.exp.
- 2011-02-04 David Kilzer <ddkilzer@apple.com>
- <rdar://problem/8957409> Remove last vestiges of JSVALUE32
- <http://webkit.org/b/53779>
- Reviewed by Darin Adler.
- Support for JSVALUE32 was originaly removed in r70111.
- * Configurations/JavaScriptCore.xcconfig: Changed armv6 to use
- JavaScriptCore.JSVALUE32_64.exp and ppc64 to use
- JavaScriptCore.JSVALUE64.exp to match Platform.h.
- * DerivedSources.make: Removed rule for
- JavaScriptCore.JSVALUE32.exp.
- * JavaScriptCore.JSVALUE32only.exp: Removed.
- * JavaScriptCore.xcodeproj/project.pbxproj: Removed references
- to JavaScriptCore.JSVALUE32only.exp.
- 2011-02-04 David Kilzer <ddkilzer@apple.com>
- Use static_cast and other style cleanup in YarrInterpreter.cpp
- <http://webkit.org/b/53772>
- Reviewed by John Sullivan.
- * yarr/YarrInterpreter.cpp:
- (JSC::Yarr::Interpreter::InputStream::readChecked): Use
- static_cast.
- (JSC::Yarr::Interpreter::InputStream::checkInput): Remove
- unnecessary else block.
- (JSC::Yarr::Interpreter::matchAssertionEOL): Ditto.
- (JSC::Yarr::Interpreter::backtrackBackReference): Ditto.
- (JSC::Yarr::ByteCompiler::emitDisjunction): Use static_cast.
- 2011-02-04 Sheriff Bot <webkit.review.bot@gmail.com>
- Unreviewed, rolling out r77625 and r77626.
- http://trac.webkit.org/changeset/77625
- http://trac.webkit.org/changeset/77626
- https://bugs.webkit.org/show_bug.cgi?id=53765
- It broke Windows builds (Requested by Ossy_ on #webkit).
- * JavaScriptCore.exp:
- * JavaScriptCore.gyp/JavaScriptCore.gyp:
- * JavaScriptCore.gypi:
- * JavaScriptCore.pro:
- * JavaScriptCore.xcodeproj/project.pbxproj:
- * create_regex_tables:
- * runtime/RegExp.cpp:
- * wtf/Platform.h:
- * yarr/Yarr.h:
- * yarr/YarrJIT.cpp:
- * yarr/YarrJIT.h:
- * yarr/YarrParser.h:
- * yarr/YarrPattern.h:
- * yarr/YarrSyntaxChecker.h:
- * yarr/yarr.pri: Removed.
- 2011-02-04 Jessie Berlin <jberlin@apple.com>
- Windows build fix. Unreviewed.
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreGenerated.make:
- 2011-02-04 Peter Varga <pvarga@webkit.org>
- Reviewed by Gavin Barraclough.
- Replace PCRE with Yarr in WebCore
- https://bugs.webkit.org/show_bug.cgi?id=53496
- * JavaScriptCore.exp:
- * JavaScriptCore.gyp/JavaScriptCore.gyp:
- * JavaScriptCore.gypi:
- * JavaScriptCore.pro:
- * JavaScriptCore.xcodeproj/project.pbxproj:
- * create_regex_tables:
- * runtime/RegExp.cpp:
- * wtf/Platform.h:
- * yarr/Yarr.h:
- * yarr/YarrJIT.cpp:
- * yarr/YarrJIT.h:
- * yarr/YarrParser.h:
- * yarr/YarrPattern.h:
- * yarr/YarrSyntaxChecker.h:
- * yarr/yarr.pri: Added.
- 2011-02-04 Ilya Tikhonovsky <loislo@chromium.org>
- Unreviewed rollout two patches r77614 and r77612.
- REGRESSION: Snow Leopard Intel Release anumber of failing tests.
- * runtime/Heap.cpp:
- (JSC::Heap::Heap):
- (JSC::Heap::reset):
- * runtime/Heap.h:
- * runtime/MarkedSpace.cpp:
- (JSC::MarkedSpace::allocate):
- (JSC::MarkedSpace::sweep):
- (JSC::MarkedSpace::reset):
- * runtime/MarkedSpace.h:
- 2011-02-04 Geoffrey Garen <ggaren@apple.com>
- Try to fix 32bit build.
- * runtime/Heap.cpp:
- (JSC::Heap::reset): Use an explicit cast to avoid shortening warnings,
- since 1.5 is double (64bit), and the result is size_t (32bit).
- 2011-02-03 Geoffrey Garen <ggaren@apple.com>
- Reviewed by Cameron Zwarich.
- Changed MarkedSpace to delegate grow/shrink decisions to Heap
- https://bugs.webkit.org/show_bug.cgi?id=53759
-
- SunSpider reports no change.
-
- * runtime/Heap.cpp:
- (JSC::Heap::Heap):
- (JSC::Heap::reset):
- * runtime/Heap.h: Reorganized a few data members for better cache locality.
- Added a grow policy.
-
- * runtime/MarkedSpace.cpp:
- (JSC::MarkedSpace::allocate):
- (JSC::MarkedSpace::sweep):
- (JSC::MarkedSpace::reset): Don't shrink automatically. Instead, wait for
- the heap to make an explicit sweep call.
- * runtime/MarkedSpace.h:
- (JSC::MarkedSpace::highWaterMark):
- (JSC::MarkedSpace::setHighWaterMark): Use a watermark to determine how
- many bytes to allocate before failing and giving the heap an opportunity
- to collect garbage. This also means that we allocate blocks on demand,
- instead of ahead of time.
- 2011-02-03 James Kozianski <koz@chromium.org>
- Reviewed by Dimitri Glazkov.
- Add navigator.registerProtocolHandler behind a flag.
- https://bugs.webkit.org/show_bug.cgi?id=52609
- * Configurations/FeatureDefines.xcconfig:
- 2011-02-03 Geoffrey Garen <ggaren@apple.com>
- Reviewed by Oliver Hunt.
- Not all blocks are freed when the heap is freed (counting is hard!)
- https://bugs.webkit.org/show_bug.cgi?id=53732
- * runtime/MarkedSpace.cpp:
- (JSC::MarkedSpace::destroy): Freeing a block compacts the list, so just
- keep freeing block 0 until there are no blocks left.
- 2011-02-03 Geoffrey Garen <ggaren@apple.com>
- Try to fix the Mac build.
- * JavaScriptCore.xcodeproj/project.pbxproj: The new MarkedBlock.h header
- needs to be private, not project, so other projects can include headers
- that depend on it.
- 2011-02-03 Geoffrey Garen <ggaren@apple.com>
- Reviewed by Sam Weinig.
- Start using MarkedBlock instead of CollectorBlock
- https://bugs.webkit.org/show_bug.cgi?id=53693
-
- SunSpider reports no change.
-
- * runtime/MarkedBlock.h:
- (JSC::MarkedBlock::blockFor):
- (JSC::MarkedBlock::setMarked):
- (JSC::MarkedBlock::isCellAligned):
- (JSC::MarkedBlock::isPossibleCell): Updated for const-ness.
- * runtime/MarkedSpace.cpp:
- (JSC::MarkedSpace::allocateBlock):
- (JSC::MarkedSpace::containsSlowCase):
- (JSC::MarkedSpace::clearMarkBits): Updated for const-ness.
- * runtime/MarkedSpace.h:
- (JSC::CollectorHeap::collectorBlock):
- (JSC::MarkedSpace::heap):
- (JSC::MarkedSpace::isMarked):
- (JSC::MarkedSpace::testAndSetMarked):
- (JSC::MarkedSpace::setMarked):
- (JSC::MarkedSpace::contains): Switched from CollectorBlock to MarkedBlock,
- and deleted dead CollectorBlock-related code.
- 2011-02-03 Patrick Gansterer <paroga@webkit.org>
- Reviewed by Darin Adler.
- Avoid strlen() in AtomicString::fromUTF8
- https://bugs.webkit.org/show_bug.cgi?id=50516
- Add an overload to calculateStringHashFromUTF8 to get
- strlen() of the input data with only one call.
- This change shows about 3% performance win on the xml-parser benchmark.
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
- * wtf/text/AtomicString.cpp:
- (WTF::AtomicString::fromUTF8):
- * wtf/unicode/UTF8.cpp:
- (WTF::Unicode::calculateStringHashAndLengthFromUTF8Internal):
- (WTF::Unicode::calculateStringHashFromUTF8):
- (WTF::Unicode::calculateStringHashAndLengthFromUTF8):
- * wtf/unicode/UTF8.h:
- 2011-02-02 Gavin Barraclough <barraclough@apple.com>
- Windows build fix.
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
- 2011-02-02 Gavin Barraclough <barraclough@apple.com>
- oops, build fix!
- * wtf/Assertions.cpp:
- 2011-02-02 Gavin Barraclough <barraclough@apple.com>
- Reviewed by Sam Weinig.
- Bug 53650 - Add a BACKTRACE macro to Assertions.h
- Add a BACKTRACE macro to Assertions.h, which will print a backtrace on
- debug Mac builds, make CRASH (and thus ASSERT) automatically call this.
- * JavaScriptCore.exp:
- * wtf/Assertions.cpp:
- * wtf/Assertions.h:
- 2011-02-02 Michael Saboff <msaboff@apple.com>
- Reviewed by Gavin Barraclough.
- Improper backtrack of nested non-capturing greedy paren to prior paren
- https://bugs.webkit.org/show_bug.cgi?id=53261
- A paren that follows a non-capturing greedy paren nested within a
- non-capturing fixed paren was back tracking to the last paren
- processed instead of the immediately prior paren.
- Refactored default backtracking of parens to prior paren to work for
- both nested (within) and immediately prior (after) parens.
- * yarr/YarrJIT.cpp:
- (JSC::Yarr::YarrGenerator::GenerationState::addParenthesesTail):
- (JSC::Yarr::YarrGenerator::TermGenerationState::TermGenerationState):
- (JSC::Yarr::YarrGenerator::TermGenerationState::setJumpListToPriorParen):
- (JSC::Yarr::YarrGenerator::TermGenerationState::getJumpListToPriorParen):
- (JSC::Yarr::YarrGenerator::ParenthesesTail::ParenthesesTail):
- (JSC::Yarr::YarrGenerator::ParenthesesTail::generateCode):
- (JSC::Yarr::YarrGenerator::generateParenthesesDisjunction):
- (JSC::Yarr::YarrGenerator::generateParenthesesSingle):
- (JSC::Yarr::YarrGenerator::generateDisjunction):
- 2011-02-02 Jeff Miller <jeffm@apple.com>
- Reviewed by Darin Adler and Steve Falkenburg.
- Add DerivedSources.make to some Visual Studio projects
- https://bugs.webkit.org/show_bug.cgi?id=53607
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreGenerated.vcproj: Add DerivedSources.make.
- 2011-02-02 Steve Lacey <sjl@chromium.org>
- Reviewed by Eric Carlson.
- Implement basic media statistics on media elements.
- https://bugs.webkit.org/show_bug.cgi?id=53322
- * Configurations/FeatureDefines.xcconfig:
- 2011-02-02 Kevin Ollivier <kevino@theolliviers.com>
- [wx] Build fixes for wxWebKit.
- * wtf/wx/StringWx.cpp:
- (WTF::String::String):
- 2011-02-01 Geoffrey Garen <ggaren@apple.com>
- Reviewed by Sam Weinig.
- A little more Heap refactoring
- https://bugs.webkit.org/show_bug.cgi?id=53577
-
- SunSpider reports no change.
-
- Split out MarkedBlock into its own file / class.
-
- Did the following renames:
- isCellMarked => isMarked
- checkMarkCell => testAndSetMarked
- markCell => setMarked
- cellOffset => cellNumber
- collectorBlock => blockFor
- * Android.mk:
- * CMakeLists.txt:
- * GNUmakefile.am:
- * JavaScriptCore.gypi:
- * JavaScriptCore.pro:
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
- * JavaScriptCore.xcodeproj/project.pbxproj:
- * runtime/Heap.cpp:
- (JSC::WeakGCHandlePool::update):
- * runtime/Heap.h:
- (JSC::Heap::isMarked):
- (JSC::Heap::testAndSetMarked):
- (JSC::Heap::setMarked):
- * runtime/JSArray.h:
- (JSC::MarkStack::markChildren):
- (JSC::MarkStack::drain):
- * runtime/JSCell.h:
- (JSC::JSCell::MarkStack::internalAppend):
- * runtime/MarkedBlock.cpp: Added.
- * runtime/MarkedBlock.h: Added.
- (JSC::MarkedBlock::blockFor):
- (JSC::MarkedBlock::cellNumber):
- (JSC::MarkedBlock::isMarked):
- (JSC::MarkedBlock::testAndSetMarked):
- (JSC::MarkedBlock::setMarked):
- (JSC::MarkedBlock::isCellAligned):
- (JSC::MarkedBlock::isPossibleCell):
- * runtime/MarkedSpace.h:
- (JSC::MarkedSpace::isMarked):
- (JSC::MarkedSpace::testAndSetMarked):
- (JSC::MarkedSpace::setMarked):
- * runtime/SmallStrings.cpp:
- (JSC::isMarked):
- * runtime/WeakGCMap.h:
- (JSC::WeakGCMap::isValid):
- (JSC::::get):
- (JSC::::take):
- (JSC::::set):
- 2011-02-02 Sam Weinig <sam@webkit.org>
- Fix windows clean build.
- * DerivedSources.make:
- 2011-02-02 Alejandro G. Castro <alex@igalia.com>
- Reviewed by Martin Robinson.
- [GTK] Fix dist compilation
- https://bugs.webkit.org/show_bug.cgi?id=53579
- * GNUmakefile.am: Added WriteBarrier.h to the sources, it was
- added in r77151
- 2011-02-01 Sheriff Bot <webkit.review.bot@gmail.com>
- Unreviewed, rolling out r77297.
- http://trac.webkit.org/changeset/77297
- https://bugs.webkit.org/show_bug.cgi?id=53538
- caused leopard crashes (Requested by paroga on #webkit).
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
- * wtf/text/AtomicString.cpp:
- (WTF::AtomicString::fromUTF8):
- * wtf/unicode/UTF8.cpp:
- (WTF::Unicode::calculateStringHashFromUTF8):
- * wtf/unicode/UTF8.h:
- 2011-02-01 Sam Weinig <sam@webkit.org>
- Fix Mac production builds.
- * JavaScriptCore.xcodeproj/project.pbxproj:
- 2011-02-01 Sam Weinig <sam@webkit.org>
- Try to fix the windows build.
- * DerivedSources.make:
- 2011-02-01 Patrick Gansterer <paroga@webkit.org>
- Reviewed by Darin Adler.
- Avoid strlen() in AtomicString::fromUTF8
- https://bugs.webkit.org/show_bug.cgi?id=50516
- Add an overload to calculateStringHashFromUTF8 to get
- strlen() of the input data with only one call.
- This change shows about 3% performance win on the xml-parser benchmark.
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
- * wtf/text/AtomicString.cpp:
- (WTF::AtomicString::fromUTF8):
- * wtf/unicode/UTF8.cpp:
- (WTF::Unicode::calculateStringHashAndLengthFromUTF8Internal):
- (WTF::Unicode::calculateStringHashFromUTF8):
- (WTF::Unicode::calculateStringHashAndLengthFromUTF8):
- * wtf/unicode/UTF8.h:
- 2011-02-01 Sam Weinig <sam@webkit.org>
- Reviewed by Beth Dakin.
- Part 2 for <rdar://problem/8492788>
- Adopt WKScrollbarPainterController
- Use header detection to define scrollbar painting controller #define.
- * DerivedSources.make:
- * JavaScriptCore.xcodeproj/project.pbxproj:
- 2011-02-01 Geoffrey Garen <ggaren@apple.com>
- Reviewed by Oliver Hunt.
- Refactor JSGlobalObject-related tear-down
- https://bugs.webkit.org/show_bug.cgi?id=53478
-
- While investigating crashes caused by r77082, I noticed some strange
- destructor-time behaviors. This patch makes them less strange.
- * bytecode/CodeBlock.cpp:
- (JSC::CodeBlock::CodeBlock):
- (JSC::CodeBlock::markAggregate):
- * bytecode/CodeBlock.h:
- (JSC::CodeBlock::globalObject):
- (JSC::GlobalCodeBlock::GlobalCodeBlock):
- (JSC::GlobalCodeBlock::~GlobalCodeBlock): Store the set of global code
- blocks on the Heap, instead of on independent global objects. The heap
- is guaranteed to outlast any GC-owned data structure. The heap is also
- a natural place to store objects that needs out-of-band marking, since
- the heap is responsible for marking all roots.
- * runtime/Heap.cpp:
- (JSC::Heap::markRoots):
- (JSC::Heap::globalObjectCount):
- (JSC::Heap::protectedGlobalObjectCount):
- * runtime/Heap.h:
- (JSC::Heap::codeBlocks):
- * runtime/JSGlobalData.cpp:
- (JSC::JSGlobalData::JSGlobalData):
- * runtime/JSGlobalData.h:
- * runtime/JSGlobalObject.cpp:
- (JSC::JSGlobalObject::~JSGlobalObject):
- (JSC::JSGlobalObject::init):
- (JSC::JSGlobalObject::markChildren):
- * runtime/JSGlobalObject.h:
- * runtime/MarkedSpace.cpp: Store the set of global objects in a weak map
- owned by JSGlobalData, instead of an instrusive circular linked list.
- This is simpler, and it avoids destructor-time access between garbage
- collected objects, which is hard to get right.
- (JSC::MarkedSpace::destroy): Make sure to clear mark bits before tearing
- everything down. Otherwise, weak data structures will incorrectly report
- that objects pending destruction are still alive.
- 2011-02-01 Geoffrey Garen <ggaren@apple.com>
- Reviewed by Oliver Hunt.
- REGRESSION(77082): GC-related crashes seen: on WebKit2 bot; on GTK 32bit
- bot; loading trac pages; typing in search field
- https://bugs.webkit.org/show_bug.cgi?id=53519
-
- The crashes were all caused by failure to run an object's destructor.
- * runtime/CollectorHeapIterator.h:
- (JSC::ObjectIterator::ObjectIterator): Don't skip forward upon
- construction. The iterator class used to do that when it was designed
- for prior-to-beginning initialization. I forgot to remove this line
- of code when I changed the iterator to normal initialization.
-
- Skipping forward upon construction was causing the heap to skip running
- the destructor for the very first object in a block when destroying the
- block. This usually did not crash, since block destruction is rare and
- most objects have pretty trivial destructors. However, in the rare case
- when the heap would destroy a block whose first object was a global
- object or a DOM node, BOOM.
- 2011-01-31 Oliver Hunt <oliver@apple.com>
- Reviewed by Geoffrey Garen.
- Update JSObject storage for new marking API
- https://bugs.webkit.org/show_bug.cgi?id=53467
- JSObject no longer uses EncodedJSValue for its property storage.
- This produces a stream of mechanical changes to PropertySlot and
- anonymous storage APIs.
- * JavaScriptCore.exp:
- * runtime/ArrayPrototype.cpp:
- (JSC::ArrayPrototype::ArrayPrototype):
- * runtime/BooleanConstructor.cpp:
- (JSC::constructBoolean):
- (JSC::constructBooleanFromImmediateBoolean):
- * runtime/BooleanObject.cpp:
- (JSC::BooleanObject::BooleanObject):
- * runtime/BooleanObject.h:
- * runtime/BooleanPrototype.cpp:
- (JSC::BooleanPrototype::BooleanPrototype):
- * runtime/DateInstance.cpp:
- (JSC::DateInstance::DateInstance):
- * runtime/DatePrototype.cpp:
- (JSC::DatePrototype::DatePrototype):
- * runtime/JSActivation.cpp:
- (JSC::JSActivation::getOwnPropertySlot):
- * runtime/JSArray.cpp:
- (JSC::JSArray::getOwnPropertySlot):
- * runtime/JSFunction.cpp:
- (JSC::JSFunction::getOwnPropertySlot):
- * runtime/JSGlobalObject.h:
- (JSC::JSGlobalObject::JSGlobalObject):
- * runtime/JSObject.cpp:
- (JSC::JSObject::fillGetterPropertySlot):
- * runtime/JSObject.h:
- (JSC::JSObject::getDirectLocation):
- (JSC::JSObject::offsetForLocation):
- (JSC::JSObject::putAnonymousValue):
- (JSC::JSObject::clearAnonymousValue):
- (JSC::JSObject::getAnonymousValue):
- (JSC::JSObject::putThisToAnonymousValue):
- (JSC::JSObject::locationForOffset):
- (JSC::JSObject::inlineGetOwnPropertySlot):
- * runtime/JSObjectWithGlobalObject.cpp:
- (JSC::JSObjectWithGlobalObject::JSObjectWithGlobalObject):
- * runtime/JSWrapperObject.h:
- (JSC::JSWrapperObject::JSWrapperObject):
- (JSC::JSWrapperObject::setInternalValue):
- * runtime/Lookup.cpp:
- (JSC::setUpStaticFunctionSlot):
- * runtime/NumberConstructor.cpp:
- (JSC::constructWithNumberConstructor):
- * runtime/NumberObject.cpp:
- (JSC::NumberObject::NumberObject):
- (JSC::constructNumber):
- * runtime/NumberObject.h:
- * runtime/NumberPrototype.cpp:
- (JSC::NumberPrototype::NumberPrototype):
- * runtime/PropertySlot.h:
- (JSC::PropertySlot::getValue):
- (JSC::PropertySlot::setValue):
- (JSC::PropertySlot::setRegisterSlot):
- * runtime/StringObject.cpp:
- (JSC::StringObject::StringObject):
- * runtime/StringPrototype.cpp:
- (JSC::StringPrototype::StringPrototype):
- * runtime/WriteBarrier.h:
- (JSC::WriteBarrierBase::setWithoutWriteBarrier):
- 2011-02-01 Daniel Bates <dbates@rim.com>
- Reviewed by Antonio Gomes.
- Modify RandomNumberSeed.h to use USE(MERSENNE_TWISTER_19937)
- https://bugs.webkit.org/show_bug.cgi?id=53506
- Currently, use of the Mersenne Twister pseudorandom number generator
- is hardcoded to the Windows CE port. With the passing of bug #53253,
- we can generalize support for this PRNG to all ports that use srand(3)
- and rand(3), including Windows CE.
- * wtf/RandomNumberSeed.h:
- (WTF::initializeRandomNumberGenerator):
- 2011-02-01 Dave Tapuska <dtapuska@rim.com>
- Reviewed by Gavin Barraclough.
- MacroAssemblerARM would generate code that did 32bit loads
- on addresses that were not aligned. More specifically it would
- generate a ldr r8,[r1, #7] which isn't valid on ARMv5 and lower.
- The intended instruction really is ldrb r8,[r1, #7]; ensure we
- call load8 instead of load32.
- https://bugs.webkit.org/show_bug.cgi?id=46095
- * assembler/MacroAssemblerARM.h:
- (JSC::MacroAssemblerARM::set32Test32):
- (JSC::MacroAssemblerARM::set32Test8):
- 2011-02-01 Darin Fisher <darin@chromium.org>
- Reviewed by Eric Seidel.
- Fix some Visual Studio compiler warnings.
- https://bugs.webkit.org/show_bug.cgi?id=53476
- * wtf/MathExtras.h:
- (clampToInteger):
- (clampToPositiveInteger):
- * wtf/ThreadingWin.cpp:
- (WTF::absoluteTimeToWaitTimeoutInterval):
- 2011-01-31 Oliver Hunt <oliver@apple.com>
- Reviewed by Sam Weinig.
- Bogus callframe during stack unwinding
- https://bugs.webkit.org/show_bug.cgi?id=53454
- Trying to access a callframe's globalData after destroying its
- ScopeChain is not a good thing. While we could access the
- globalData directly through the (known valid) scopechain we're
- holding on to, it feels fragile. Instead we push the valid
- ScopeChain onto the callframe again to ensure that the callframe
- itself remains valid.
- * interpreter/Interpreter.cpp:
- (JSC::Interpreter::unwindCallFrame):
- 2011-01-31 Michael Saboff <msaboff@apple.com>
- Reviewed by Geoffrey Garen.
- Potentially Unsafe HashSet of RuntimeObject* in RootObject definition
- https://bugs.webkit.org/show_bug.cgi?id=53271
- Reapplying this change again.
- Changed isValid() to use .get() as a result of change r77151.
- Added new isValid() methods to check if a contained object in
- a WeakGCMap is valid when using an unchecked iterator.
- * runtime/WeakGCMap.h:
- (JSC::WeakGCMap::isValid):
- 2011-01-31 Oliver Hunt <oliver@apple.com>
- Convert markstack to a slot visitor API
- https://bugs.webkit.org/show_bug.cgi?id=53219
- rolling r77098, r77099, r77100, r77109, and
- r77111 back in, along with a few more Qt fix attempts.
- * API/JSCallbackObject.h:
- (JSC::JSCallbackObjectData::setPrivateProperty):
- (JSC::JSCallbackObjectData::JSPrivatePropertyMap::getPrivateProperty):
- (JSC::JSCallbackObjectData::JSPrivatePropertyMap::setPrivateProperty):
- (JSC::JSCallbackObjectData::JSPrivatePropertyMap::markChildren):
- (JSC::JSCallbackObject::setPrivateProperty):
- * API/JSCallbackObjectFunctions.h:
- (JSC::::put):
- (JSC::::staticFunctionGetter):
- * API/JSObjectRef.cpp:
- (JSObjectMakeConstructor):
- (JSObjectSetPrivateProperty):
- * API/JSWeakObjectMapRefInternal.h:
- * JavaScriptCore.exp:
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
- * JavaScriptCore.xcodeproj/project.pbxproj:
- * bytecode/CodeBlock.cpp:
- (JSC::CodeBlock::markAggregate):
- * bytecode/CodeBlock.h:
- (JSC::CodeBlock::globalObject):
- * bytecompiler/BytecodeGenerator.cpp:
- (JSC::BytecodeGenerator::BytecodeGenerator):
- (JSC::BytecodeGenerator::emitJumpIfNotFunctionCall):
- (JSC::BytecodeGenerator::emitJumpIfNotFunctionApply):
- (JSC::BytecodeGenerator::findScopedProperty):
- * debugger/Debugger.cpp:
- (JSC::evaluateInGlobalCallFrame):
- * debugger/DebuggerActivation.cpp:
- (JSC::DebuggerActivation::DebuggerActivation):
- (JSC::DebuggerActivation::markChildren):
- * debugger/DebuggerActivation.h:
- * debugger/DebuggerCallFrame.cpp:
- (JSC::DebuggerCallFrame::evaluate):
- * interpreter/CallFrame.h:
- (JSC::ExecState::exception):
- * interpreter/Interpreter.cpp:
- (JSC::Interpreter::resolve):
- (JSC::Interpreter::resolveSkip):
- (JSC::Interpreter::resolveGlobal):
- (JSC::Interpreter::resolveGlobalDynamic):
- (JSC::Interpreter::resolveBaseAndProperty):
- (JSC::Interpreter::unwindCallFrame):
- (JSC::appendSourceToError):
- (JSC::Interpreter::execute):
- (JSC::Interpreter::tryCacheGetByID):
- (JSC::Interpreter::privateExecute):
- * jit/JITStubs.cpp:
- (JSC::JITThunks::tryCacheGetByID):
- (JSC::DEFINE_STUB_FUNCTION):
- * jsc.cpp:
- (GlobalObject::GlobalObject):
- * runtime/ArgList.cpp:
- (JSC::MarkedArgumentBuffer::markLists):
- * runtime/Arguments.cpp:
- (JSC::Arguments::markChildren):
- (JSC::Arguments::getOwnPropertySlot):
- (JSC::Arguments::getOwnPropertyDescriptor):
- (JSC::Arguments::put):
- * runtime/Arguments.h:
- (JSC::Arguments::setActivation):
- (JSC::Arguments::Arguments):
- * runtime/ArrayConstructor.cpp:
- (JSC::ArrayConstructor::ArrayConstructor):
- (JSC::constructArrayWithSizeQuirk):
- * runtime/ArrayPrototype.cpp:
- (JSC::arrayProtoFuncSplice):
- * runtime/BatchedTransitionOptimizer.h:
- (JSC::BatchedTransitionOptimizer::BatchedTransitionOptimizer):
- (JSC::BatchedTransitionOptimizer::~BatchedTransitionOptimizer):
- * runtime/BooleanConstructor.cpp:
- (JSC::BooleanConstructor::BooleanConstructor):
- (JSC::constructBoolean):
- (JSC::constructBooleanFromImmediateBoolean):
- * runtime/BooleanPrototype.cpp:
- (JSC::BooleanPrototype::BooleanPrototype):
- * runtime/ConservativeSet.cpp:
- (JSC::ConservativeSet::grow):
- * runtime/ConservativeSet.h:
- (JSC::ConservativeSet::~ConservativeSet):
- (JSC::ConservativeSet::mark):
- * runtime/DateConstructor.cpp:
- (JSC::DateConstructor::DateConstructor):
- * runtime/DateInstance.cpp:
- (JSC::DateInstance::DateInstance):
- * runtime/DatePrototype.cpp:
- (JSC::dateProtoFuncSetTime):
- (JSC::setNewValueFromTimeArgs):
- (JSC::setNewValueFromDateArgs):
- (JSC::dateProtoFuncSetYear):
- * runtime/ErrorConstructor.cpp:
- (JSC::ErrorConstructor::ErrorConstructor):
- * runtime/ErrorInstance.cpp:
- (JSC::ErrorInstance::ErrorInstance):
- * runtime/ErrorPrototype.cpp:
- (JSC::ErrorPrototype::ErrorPrototype):
- * runtime/FunctionConstructor.cpp:
- (JSC::FunctionConstructor::FunctionConstructor):
- * runtime/FunctionPrototype.cpp:
- (JSC::FunctionPrototype::FunctionPrototype):
- * runtime/GetterSetter.cpp:
- (JSC::GetterSetter::markChildren):
- * runtime/GetterSetter.h:
- (JSC::GetterSetter::GetterSetter):
- (JSC::GetterSetter::getter):
- (JSC::GetterSetter::setGetter):
- (JSC::GetterSetter::setter):
- (JSC::GetterSetter::setSetter):
- * runtime/GlobalEvalFunction.cpp:
- (JSC::GlobalEvalFunction::GlobalEvalFunction):
- (JSC::GlobalEvalFunction::markChildren):
- * runtime/GlobalEvalFunction.h:
- (JSC::GlobalEvalFunction::cachedGlobalObject):
- * runtime/Heap.cpp:
- (JSC::Heap::markProtectedObjects):
- (JSC::Heap::markTempSortVectors):
- (JSC::Heap::markRoots):
- * runtime/InternalFunction.cpp:
- (JSC::InternalFunction::InternalFunction):
- * runtime/JSAPIValueWrapper.h:
- (JSC::JSAPIValueWrapper::value):
- (JSC::JSAPIValueWrapper::JSAPIValueWrapper):
- * runtime/JSActivation.cpp:
- (JSC::JSActivation::markChildren):
- (JSC::JSActivation::put):
- * runtime/JSArray.cpp:
- (JSC::JSArray::JSArray):
- (JSC::JSArray::getOwnPropertySlot):
- (JSC::JSArray::getOwnPropertyDescriptor):
- (JSC::JSArray::put):
- (JSC::JSArray::putSlowCase):
- (JSC::JSArray::deleteProperty):
- (JSC::JSArray::increaseVectorLength):
- (JSC::JSArray::setLength):
- (JSC::JSArray::pop):
- (JSC::JSArray::push):
- (JSC::JSArray::unshiftCount):
- (JSC::JSArray::sort):
- (JSC::JSArray::fillArgList):
- (JSC::JSArray::copyToRegisters):
- (JSC::JSArray::compactForSorting):
- * runtime/JSArray.h:
- (JSC::JSArray::getIndex):
- (JSC::JSArray::setIndex):
- (JSC::JSArray::uncheckedSetIndex):
- (JSC::JSArray::markChildrenDirect):
- * runtime/JSByteArray.cpp:
- (JSC::JSByteArray::JSByteArray):
- * runtime/JSCell.h:
- (JSC::JSCell::MarkStack::append):
- (JSC::JSCell::MarkStack::internalAppend):
- (JSC::JSCell::MarkStack::deprecatedAppend):
- * runtime/JSFunction.cpp:
- (JSC::JSFunction::JSFunction):
- (JSC::JSFunction::getOwnPropertySlot):
- * runtime/JSGlobalData.h:
- * runtime/JSGlobalObject.cpp:
- (JSC::markIfNeeded):
- (JSC::JSGlobalObject::reset):
- (JSC::JSGlobalObject::resetPrototype):
- (JSC::JSGlobalObject::markChildren):
- * runtime/JSGlobalObject.h:
- (JSC::JSGlobalObject::JSGlobalObjectData::JSGlobalObjectData):
- (JSC::JSGlobalObject::regExpConstructor):
- (JSC::JSGlobalObject::errorConstructor):
- (JSC::JSGlobalObject::evalErrorConstructor):
- (JSC::JSGlobalObject::rangeErrorConstructor):
- (JSC::JSGlobalObject::referenceErrorConstructor):
- (JSC::JSGlobalObject::syntaxErrorConstructor):
- (JSC::JSGlobalObject::typeErrorConstructor):
- (JSC::JSGlobalObject::URIErrorConstructor):
- (JSC::JSGlobalObject::evalFunction):
- (JSC::JSGlobalObject::objectPrototype):
- (JSC::JSGlobalObject::functionPrototype):
- (JSC::JSGlobalObject::arrayPrototype):
- (JSC::JSGlobalObject::booleanPrototype):
- (JSC::JSGlobalObject::stringPrototype):
- (JSC::JSGlobalObject::numberPrototype):
- (JSC::JSGlobalObject::datePrototype):
- (JSC::JSGlobalObject::regExpPrototype):
- (JSC::JSGlobalObject::methodCallDummy):
- (JSC::Structure::prototypeForLookup):
- (JSC::constructArray):
- * runtime/JSONObject.cpp:
- (JSC::Stringifier::Holder::object):
- (JSC::Stringifier::Holder::objectSlot):
- (JSC::Stringifier::markAggregate):
- (JSC::Stringifier::stringify):
- (JSC::Stringifier::Holder::appendNextProperty):
- (JSC::Walker::callReviver):
- (JSC::Walker::walk):
- * runtime/JSObject.cpp:
- (JSC::JSObject::defineGetter):
- (JSC::JSObject::defineSetter):
- (JSC::JSObject::removeDirect):
- (JSC::JSObject::putDirectFunction):
- (JSC::JSObject::putDirectFunctionWithoutTransition):
- (JSC::putDescriptor):
- (JSC::JSObject::defineOwnProperty):
- * runtime/JSObject.h:
- (JSC::JSObject::getDirectOffset):
- (JSC::JSObject::putDirectOffset):
- (JSC::JSObject::putUndefinedAtDirectOffset):
- (JSC::JSObject::flattenDictionaryObject):
- (JSC::JSObject::putDirectInternal):
- (JSC::JSObject::putDirect):
- (JSC::JSObject::putDirectFunction):
- (JSC::JSObject::putDirectWithoutTransition):
- (JSC::JSObject::putDirectFunctionWithoutTransition):
- (JSC::JSValue::putDirect):
- (JSC::JSObject::allocatePropertyStorageInline):
- (JSC::JSObject::markChildrenDirect):
- * runtime/JSPropertyNameIterator.cpp:
- (JSC::JSPropertyNameIterator::JSPropertyNameIterator):
- (JSC::JSPropertyNameIterator::get):
- * runtime/JSPropertyNameIterator.h:
- * runtime/JSStaticScopeObject.cpp:
- (JSC::JSStaticScopeObject::markChildren):
- * runtime/JSString.cpp:
- (JSC::StringObject::create):
- * runtime/JSValue.h:
- * runtime/JSWrapperObject.cpp:
- (JSC::JSWrapperObject::markChildren):
- * runtime/JSWrapperObject.h:
- (JSC::JSWrapperObject::internalValue):
- (JSC::JSWrapperObject::setInternalValue):
- * runtime/LiteralParser.cpp:
- (JSC::LiteralParser::parse):
- * runtime/Lookup.cpp:
- (JSC::setUpStaticFunctionSlot):
- * runtime/Lookup.h:
- (JSC::lookupPut):
- * runtime/MarkStack.h:
- (JSC::MarkStack::MarkStack):
- (JSC::MarkStack::deprecatedAppendValues):
- (JSC::MarkStack::appendValues):
- * runtime/MathObject.cpp:
- (JSC::MathObject::MathObject):
- * runtime/NativeErrorConstructor.cpp:
- (JSC::NativeErrorConstructor::NativeErrorConstructor):
- * runtime/NativeErrorPrototype.cpp:
- (JSC::NativeErrorPrototype::NativeErrorPrototype):
- * runtime/NumberConstructor.cpp:
- (JSC::NumberConstructor::NumberConstructor):
- (JSC::constructWithNumberConstructor):
- * runtime/NumberObject.cpp:
- (JSC::constructNumber):
- * runtime/NumberPrototype.cpp:
- (JSC::NumberPrototype::NumberPrototype):
- * runtime/ObjectConstructor.cpp:
- (JSC::ObjectConstructor::ObjectConstructor):
- (JSC::objectConstructorGetOwnPropertyDescriptor):
- * runtime/Operations.h:
- (JSC::normalizePrototypeChain):
- (JSC::resolveBase):
- * runtime/PrototypeFunction.cpp:
- (JSC::PrototypeFunction::PrototypeFunction):
- * runtime/PutPropertySlot.h:
- (JSC::PutPropertySlot::setExistingProperty):
- (JSC::PutPropertySlot::setNewProperty):
- (JSC::PutPropertySlot::base):
- * runtime/RegExpConstructor.cpp:
- (JSC::RegExpConstructor::RegExpConstructor):
- * runtime/ScopeChain.cpp:
- (JSC::ScopeChainNode::print):
- * runtime/ScopeChain.h:
- (JSC::ScopeChainNode::~ScopeChainNode):
- (JSC::ScopeChainIterator::operator*):
- (JSC::ScopeChainIterator::operator->):
- (JSC::ScopeChain::top):
- * runtime/ScopeChainMark.h:
- (JSC::ScopeChain::markAggregate):
- * runtime/SmallStrings.cpp:
- (JSC::isMarked):
- (JSC::SmallStrings::markChildren):
- * runtime/SmallStrings.h:
- (JSC::SmallStrings::emptyString):
- (JSC::SmallStrings::singleCharacterString):
- (JSC::SmallStrings::singleCharacterStrings):
- * runtime/StringConstructor.cpp:
- (JSC::StringConstructor::StringConstructor):
- * runtime/StringObject.cpp:
- (JSC::StringObject::StringObject):
- * runtime/StringObject.h:
- * runtime/StringPrototype.cpp:
- (JSC::StringPrototype::StringPrototype):
- * runtime/Structure.cpp:
- (JSC::Structure::Structure):
- (JSC::Structure::addPropertyTransition):
- (JSC::Structure::toDictionaryTransition):
- (JSC::Structure::flattenDictionaryStructure):
- * runtime/Structure.h:
- (JSC::Structure::storedPrototype):
- (JSC::Structure::storedPrototypeSlot):
- * runtime/WeakGCMap.h:
- (JSC::WeakGCMap::uncheckedGet):
- (JSC::WeakGCMap::uncheckedGetSlot):
- (JSC::::get):
- (JSC::::take):
- (JSC::::set):
- (JSC::::uncheckedRemove):
- * runtime/WriteBarrier.h: Added.
- (JSC::DeprecatedPtr::DeprecatedPtr):
- (JSC::DeprecatedPtr::get):
- (JSC::DeprecatedPtr::operator*):
- (JSC::DeprecatedPtr::operator->):
- (JSC::DeprecatedPtr::slot):
- (JSC::DeprecatedPtr::operator UnspecifiedBoolType*):
- (JSC::DeprecatedPtr::operator!):
- (JSC::WriteBarrierBase::set):
- (JSC::WriteBarrierBase::get):
- (JSC::WriteBarrierBase::operator*):
- (JSC::WriteBarrierBase::operator->):
- (JSC::WriteBarrierBase::clear):
- (JSC::WriteBarrierBase::slot):
- (JSC::WriteBarrierBase::operator UnspecifiedBoolType*):
- (JSC::WriteBarrierBase::operator!):
- (JSC::WriteBarrier::WriteBarrier):
- (JSC::operator==):
- 2011-01-31 Dan Winship <danw@gnome.org>
- Reviewed by Gustavo Noronha Silva.
- wss (websockets ssl) support for gtk via new gio TLS support
- https://bugs.webkit.org/show_bug.cgi?id=50344
- Add a GPollableOutputStream typedef for TLS WebSockets support
- * wtf/gobject/GTypedefs.h:
- 2011-01-31 Gavin Barraclough <barraclough@apple.com>
- Reviewed by Geoff Garen.
- https://bugs.webkit.org/show_bug.cgi?id=53352
- Heavy external fragmentation in FixedVMPoolAllocator can lead to a CRASH().
- The FixedVMPoolAllocator currently uses a best fix policy -
- switch to first fit, this is less prone to external fragmentation.
- * jit/ExecutableAllocatorFixedVMPool.cpp:
- (JSC::AllocationTableSizeClass::AllocationTableSizeClass):
- (JSC::AllocationTableSizeClass::blockSize):
- (JSC::AllocationTableSizeClass::blockCount):
- (JSC::AllocationTableSizeClass::blockAlignment):
- (JSC::AllocationTableSizeClass::size):
- (JSC::AllocationTableLeaf::AllocationTableLeaf):
- (JSC::AllocationTableLeaf::~AllocationTableLeaf):
- (JSC::AllocationTableLeaf::allocate):
- (JSC::AllocationTableLeaf::free):
- (JSC::AllocationTableLeaf::isEmpty):
- (JSC::AllocationTableLeaf::isFull):
- (JSC::AllocationTableLeaf::size):
- (JSC::AllocationTableLeaf::classForSize):
- (JSC::AllocationTableLeaf::dump):
- (JSC::LazyAllocationTable::LazyAllocationTable):
- (JSC::LazyAllocationTable::~LazyAllocationTable):
- (JSC::LazyAllocationTable::allocate):
- (JSC::LazyAllocationTable::free):
- (JSC::LazyAllocationTable::isEmpty):
- (JSC::LazyAllocationTable::isFull):
- (JSC::LazyAllocationTable::size):
- (JSC::LazyAllocationTable::dump):
- (JSC::LazyAllocationTable::classForSize):
- (JSC::AllocationTableDirectory::AllocationTableDirectory):
- (JSC::AllocationTableDirectory::~AllocationTableDirectory):
- (JSC::AllocationTableDirectory::allocate):
- (JSC::AllocationTableDirectory::free):
- (JSC::AllocationTableDirectory::isEmpty):
- (JSC::AllocationTableDirectory::isFull):
- (JSC::AllocationTableDirectory::size):
- (JSC::AllocationTableDirectory::classForSize):
- (JSC::AllocationTableDirectory::dump):
- (JSC::FixedVMPoolAllocator::FixedVMPoolAllocator):
- (JSC::FixedVMPoolAllocator::alloc):
- (JSC::FixedVMPoolAllocator::free):
- (JSC::FixedVMPoolAllocator::allocated):
- (JSC::FixedVMPoolAllocator::isValid):
- (JSC::FixedVMPoolAllocator::classForSize):
- (JSC::FixedVMPoolAllocator::offsetToPointer):
- (JSC::FixedVMPoolAllocator::pointerToOffset):
- (JSC::ExecutableAllocator::committedByteCount):
- (JSC::ExecutableAllocator::isValid):
- (JSC::ExecutableAllocator::underMemoryPressure):
- (JSC::ExecutablePool::systemAlloc):
- (JSC::ExecutablePool::systemRelease):
- * wtf/PageReservation.h:
- (WTF::PageReservation::PageReservation):
- (WTF::PageReservation::commit):
- (WTF::PageReservation::decommit):
- (WTF::PageReservation::committed):
- 2011-01-31 Sheriff Bot <webkit.review.bot@gmail.com>
- Unreviewed, rolling out r76969.
- http://trac.webkit.org/changeset/76969
- https://bugs.webkit.org/show_bug.cgi?id=53418
- "It is causing crashes in GTK+ and Leopard bots" (Requested by
- alexg__ on #webkit).
- * runtime/WeakGCMap.h:
- 2011-01-30 Csaba Osztrogonác <ossy@webkit.org>
- Unreviewed, rolling out r77098, r77099, r77100, r77109, and
- r77111.
- http://trac.webkit.org/changeset/77098
- http://trac.webkit.org/changeset/77099
- http://trac.webkit.org/changeset/77100
- http://trac.webkit.org/changeset/77109
- http://trac.webkit.org/changeset/77111
- https://bugs.webkit.org/show_bug.cgi?id=53219
- Qt build is broken
- * API/JSCallbackObject.h:
- (JSC::JSCallbackObjectData::setPrivateProperty):
- (JSC::JSCallbackObjectData::JSPrivatePropertyMap::getPrivateProperty):
- (JSC::JSCallbackObjectData::JSPrivatePropertyMap::setPrivateProperty):
- (JSC::JSCallbackObjectData::JSPrivatePropertyMap::markChildren):
- (JSC::JSCallbackObject::setPrivateProperty):
- * API/JSCallbackObjectFunctions.h:
- (JSC::::put):
- (JSC::::staticFunctionGetter):
- * API/JSObjectRef.cpp:
- (JSObjectMakeConstructor):
- (JSObjectSetPrivateProperty):
- * API/JSWeakObjectMapRefInternal.h:
- * JavaScriptCore.exp:
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
- * JavaScriptCore.xcodeproj/project.pbxproj:
- * bytecode/CodeBlock.cpp:
- (JSC::CodeBlock::markAggregate):
- * bytecode/CodeBlock.h:
- (JSC::CodeBlock::globalObject):
- * bytecompiler/BytecodeGenerator.cpp:
- (JSC::BytecodeGenerator::BytecodeGenerator):
- (JSC::BytecodeGenerator::emitJumpIfNotFunctionCall):
- (JSC::BytecodeGenerator::emitJumpIfNotFunctionApply):
- (JSC::BytecodeGenerator::findScopedProperty):
- * debugger/Debugger.cpp:
- (JSC::evaluateInGlobalCallFrame):
- * debugger/DebuggerActivation.cpp:
- (JSC::DebuggerActivation::DebuggerActivation):
- (JSC::DebuggerActivation::markChildren):
- * debugger/DebuggerActivation.h:
- * debugger/DebuggerCallFrame.cpp:
- (JSC::DebuggerCallFrame::evaluate):
- * interpreter/CallFrame.h:
- (JSC::ExecState::exception):
- * interpreter/Interpreter.cpp:
- (JSC::Interpreter::resolve):
- (JSC::Interpreter::resolveSkip):
- (JSC::Interpreter::resolveGlobal):
- (JSC::Interpreter::resolveGlobalDynamic):
- (JSC::Interpreter::resolveBaseAndProperty):
- (JSC::Interpreter::unwindCallFrame):
- (JSC::appendSourceToError):
- (JSC::Interpreter::execute):
- (JSC::Interpreter::tryCacheGetByID):
- (JSC::Interpreter::privateExecute):
- * jit/JITStubs.cpp:
- (JSC::JITThunks::tryCacheGetByID):
- (JSC::DEFINE_STUB_FUNCTION):
- * jsc.cpp:
- (GlobalObject::GlobalObject):
- * runtime/ArgList.cpp:
- (JSC::MarkedArgumentBuffer::markLists):
- * runtime/Arguments.cpp:
- (JSC::Arguments::markChildren):
- (JSC::Arguments::getOwnPropertySlot):
- (JSC::Arguments::getOwnPropertyDescriptor):
- (JSC::Arguments::put):
- * runtime/Arguments.h:
- (JSC::Arguments::setActivation):
- (JSC::Arguments::Arguments):
- * runtime/ArrayConstructor.cpp:
- (JSC::ArrayConstructor::ArrayConstructor):
- (JSC::constructArrayWithSizeQuirk):
- * runtime/ArrayPrototype.cpp:
- (JSC::arrayProtoFuncSplice):
- * runtime/BatchedTransitionOptimizer.h:
- (JSC::BatchedTransitionOptimizer::BatchedTransitionOptimizer):
- (JSC::BatchedTransitionOptimizer::~BatchedTransitionOptimizer):
- * runtime/BooleanConstructor.cpp:
- (JSC::BooleanConstructor::BooleanConstructor):
- (JSC::constructBoolean):
- (JSC::constructBooleanFromImmediateBoolean):
- * runtime/BooleanPrototype.cpp:
- (JSC::BooleanPrototype::BooleanPrototype):
- * runtime/ConservativeSet.cpp:
- (JSC::ConservativeSet::grow):
- * runtime/ConservativeSet.h:
- (JSC::ConservativeSet::~ConservativeSet):
- (JSC::ConservativeSet::mark):
- * runtime/DateConstructor.cpp:
- (JSC::DateConstructor::DateConstructor):
- * runtime/DateInstance.cpp:
- (JSC::DateInstance::DateInstance):
- * runtime/DatePrototype.cpp:
- (JSC::dateProtoFuncSetTime):
- (JSC::setNewValueFromTimeArgs):
- (JSC::setNewValueFromDateArgs):
- (JSC::dateProtoFuncSetYear):
- * runtime/ErrorConstructor.cpp:
- (JSC::ErrorConstructor::ErrorConstructor):
- * runtime/ErrorInstance.cpp:
- (JSC::ErrorInstance::ErrorInstance):
- * runtime/ErrorPrototype.cpp:
- (JSC::ErrorPrototype::ErrorPrototype):
- * runtime/FunctionConstructor.cpp:
- (JSC::FunctionConstructor::FunctionConstructor):
- * runtime/FunctionPrototype.cpp:
- (JSC::FunctionPrototype::FunctionPrototype):
- * runtime/GetterSetter.cpp:
- (JSC::GetterSetter::markChildren):
- * runtime/GetterSetter.h:
- (JSC::GetterSetter::GetterSetter):
- (JSC::GetterSetter::getter):
- (JSC::GetterSetter::setGetter):
- (JSC::GetterSetter::setter):
- (JSC::GetterSetter::setSetter):
- * runtime/GlobalEvalFunction.cpp:
- (JSC::GlobalEvalFunction::GlobalEvalFunction):
- (JSC::GlobalEvalFunction::markChildren):
- * runtime/GlobalEvalFunction.h:
- (JSC::GlobalEvalFunction::cachedGlobalObject):
- * runtime/Heap.cpp:
- (JSC::Heap::markProtectedObjects):
- (JSC::Heap::markTempSortVectors):
- (JSC::Heap::markRoots):
- * runtime/InternalFunction.cpp:
- (JSC::InternalFunction::InternalFunction):
- * runtime/JSAPIValueWrapper.h:
- (JSC::JSAPIValueWrapper::value):
- (JSC::JSAPIValueWrapper::JSAPIValueWrapper):
- * runtime/JSActivation.cpp:
- (JSC::JSActivation::markChildren):
- (JSC::JSActivation::put):
- * runtime/JSArray.cpp:
- (JSC::JSArray::JSArray):
- (JSC::JSArray::getOwnPropertySlot):
- (JSC::JSArray::getOwnPropertyDescriptor):
- (JSC::JSArray::put):
- (JSC::JSArray::putSlowCase):
- (JSC::JSArray::deleteProperty):
- (JSC::JSArray::increaseVectorLength):
- (JSC::JSArray::setLength):
- (JSC::JSArray::pop):
- (JSC::JSArray::push):
- (JSC::JSArray::unshiftCount):
- (JSC::JSArray::sort):
- (JSC::JSArray::fillArgList):
- (JSC::JSArray::copyToRegisters):
- (JSC::JSArray::compactForSorting):
- * runtime/JSArray.h:
- (JSC::JSArray::getIndex):
- (JSC::JSArray::setIndex):
- (JSC::JSArray::uncheckedSetIndex):
- (JSC::JSArray::markChildrenDirect):
- * runtime/JSByteArray.cpp:
- (JSC::JSByteArray::JSByteArray):
- * runtime/JSCell.h:
- (JSC::JSCell::JSValue::toThisObject):
- (JSC::JSCell::MarkStack::append):
- * runtime/JSFunction.cpp:
- (JSC::JSFunction::JSFunction):
- (JSC::JSFunction::getOwnPropertySlot):
- * runtime/JSGlobalData.h:
- * runtime/JSGlobalObject.cpp:
- (JSC::markIfNeeded):
- (JSC::JSGlobalObject::reset):
- (JSC::JSGlobalObject::resetPrototype):
- (JSC::JSGlobalObject::markChildren):
- * runtime/JSGlobalObject.h:
- (JSC::JSGlobalObject::JSGlobalObjectData::JSGlobalObjectData):
- (JSC::JSGlobalObject::regExpConstructor):
- (JSC::JSGlobalObject::errorConstructor):
- (JSC::JSGlobalObject::evalErrorConstructor):
- (JSC::JSGlobalObject::rangeErrorConstructor):
- (JSC::JSGlobalObject::referenceErrorConstructor):
- (JSC::JSGlobalObject::syntaxErrorConstructor):
- (JSC::JSGlobalObject::typeErrorConstructor):
- (JSC::JSGlobalObject::URIErrorConstructor):
- (JSC::JSGlobalObject::evalFunction):
- (JSC::JSGlobalObject::objectPrototype):
- (JSC::JSGlobalObject::functionPrototype):
- (JSC::JSGlobalObject::arrayPrototype):
- (JSC::JSGlobalObject::booleanPrototype):
- (JSC::JSGlobalObject::stringPrototype):
- (JSC::JSGlobalObject::numberPrototype):
- (JSC::JSGlobalObject::datePrototype):
- (JSC::JSGlobalObject::regExpPrototype):
- (JSC::JSGlobalObject::methodCallDummy):
- (JSC::Structure::prototypeForLookup):
- (JSC::constructArray):
- * runtime/JSONObject.cpp:
- (JSC::Stringifier::Holder::object):
- (JSC::Stringifier::markAggregate):
- (JSC::Stringifier::stringify):
- (JSC::Stringifier::Holder::appendNextProperty):
- (JSC::Walker::callReviver):
- (JSC::Walker::walk):
- * runtime/JSObject.cpp:
- (JSC::JSObject::defineGetter):
- (JSC::JSObject::defineSetter):
- (JSC::JSObject::removeDirect):
- (JSC::JSObject::putDirectFunction):
- (JSC::JSObject::putDirectFunctionWithoutTransition):
- (JSC::putDescriptor):
- (JSC::JSObject::defineOwnProperty):
- * runtime/JSObject.h:
- (JSC::JSObject::getDirectOffset):
- (JSC::JSObject::putDirectOffset):
- (JSC::JSObject::flattenDictionaryObject):
- (JSC::JSObject::putDirectInternal):
- (JSC::JSObject::putDirect):
- (JSC::JSObject::putDirectFunction):
- (JSC::JSObject::putDirectWithoutTransition):
- (JSC::JSObject::putDirectFunctionWithoutTransition):
- (JSC::JSValue::putDirect):
- (JSC::JSObject::allocatePropertyStorageInline):
- (JSC::JSObject::markChildrenDirect):
- * runtime/JSPropertyNameIterator.cpp:
- (JSC::JSPropertyNameIterator::JSPropertyNameIterator):
- (JSC::JSPropertyNameIterator::get):
- * runtime/JSPropertyNameIterator.h:
- * runtime/JSStaticScopeObject.cpp:
- (JSC::JSStaticScopeObject::markChildren):
- * runtime/JSString.cpp:
- (JSC::StringObject::create):
- * runtime/JSValue.h:
- * runtime/JSWrapperObject.cpp:
- (JSC::JSWrapperObject::markChildren):
- * runtime/JSWrapperObject.h:
- (JSC::JSWrapperObject::internalValue):
- (JSC::JSWrapperObject::setInternalValue):
- * runtime/LiteralParser.cpp:
- (JSC::LiteralParser::parse):
- * runtime/Lookup.cpp:
- (JSC::setUpStaticFunctionSlot):
- * runtime/Lookup.h:
- (JSC::lookupPut):
- * runtime/MarkStack.h:
- (JSC::MarkStack::appendValues):
- * runtime/MathObject.cpp:
- (JSC::MathObject::MathObject):
- * runtime/NativeErrorConstructor.cpp:
- (JSC::NativeErrorConstructor::NativeErrorConstructor):
- * runtime/NativeErrorPrototype.cpp:
- (JSC::NativeErrorPrototype::NativeErrorPrototype):
- * runtime/NumberConstructor.cpp:
- (JSC::NumberConstructor::NumberConstructor):
- (JSC::constructWithNumberConstructor):
- * runtime/NumberObject.cpp:
- (JSC::constructNumber):
- * runtime/NumberPrototype.cpp:
- (JSC::NumberPrototype::NumberPrototype):
- * runtime/ObjectConstructor.cpp:
- (JSC::ObjectConstructor::ObjectConstructor):
- (JSC::objectConstructorGetOwnPropertyDescriptor):
- * runtime/Operations.h:
- (JSC::normalizePrototypeChain):
- (JSC::resolveBase):
- * runtime/PrototypeFunction.cpp:
- (JSC::PrototypeFunction::PrototypeFunction):
- * runtime/PutPropertySlot.h:
- (JSC::PutPropertySlot::setExistingProperty):
- (JSC::PutPropertySlot::setNewProperty):
- (JSC::PutPropertySlot::base):
- * runtime/RegExpConstructor.cpp:
- (JSC::RegExpConstructor::RegExpConstructor):
- * runtime/ScopeChain.cpp:
- (JSC::ScopeChainNode::print):
- * runtime/ScopeChain.h:
- (JSC::ScopeChainNode::~ScopeChainNode):
- (JSC::ScopeChainIterator::operator*):
- (JSC::ScopeChainIterator::operator->):
- (JSC::ScopeChain::top):
- * runtime/ScopeChainMark.h:
- (JSC::ScopeChain::markAggregate):
- * runtime/SmallStrings.cpp:
- (JSC::isMarked):
- (JSC::SmallStrings::markChildren):
- * runtime/SmallStrings.h:
- (JSC::SmallStrings::emptyString):
- (JSC::SmallStrings::singleCharacterString):
- (JSC::SmallStrings::singleCharacterStrings):
- * runtime/StringConstructor.cpp:
- (JSC::StringConstructor::StringConstructor):
- * runtime/StringObject.cpp:
- (JSC::StringObject::StringObject):
- * runtime/StringObject.h:
- * runtime/StringPrototype.cpp:
- (JSC::StringPrototype::StringPrototype):
- * runtime/Structure.cpp:
- (JSC::Structure::Structure):
- (JSC::Structure::addPropertyTransition):
- (JSC::Structure::toDictionaryTransition):
- (JSC::Structure::flattenDictionaryStructure):
- * runtime/Structure.h:
- (JSC::Structure::storedPrototype):
- * runtime/WeakGCMap.h:
- (JSC::WeakGCMap::uncheckedGet):
- (JSC::WeakGCMap::isValid):
- (JSC::::get):
- (JSC::::take):
- (JSC::::set):
- (JSC::::uncheckedRemove):
- * runtime/WriteBarrier.h: Removed.
- 2011-01-30 Simon Fraser <simon.fraser@apple.com>
- Build fix the build fix. I assume Oliver meant m_cell, not m_value.
- * runtime/WriteBarrier.h:
- (JSC::WriteBarrierBase::clear):
- 2011-01-30 Oliver Hunt <oliver@apple.com>
- More Qt build fixes
- * runtime/WriteBarrier.h:
- (JSC::WriteBarrierBase::clear):
- 2011-01-30 Oliver Hunt <oliver@apple.com>
- Convert markstack to a slot visitor API
- https://bugs.webkit.org/show_bug.cgi?id=53219
- rolling r77006 and r77020 back in.
- * API/JSCallbackObject.h:
- (JSC::JSCallbackObjectData::setPrivateProperty):
- (JSC::JSCallbackObjectData::JSPrivatePropertyMap::getPrivateProperty):
- (JSC::JSCallbackObjectData::JSPrivatePropertyMap::setPrivateProperty):
- (JSC::JSCallbackObjectData::JSPrivatePropertyMap::markChildren):
- (JSC::JSCallbackObject::setPrivateProperty):
- * API/JSCallbackObjectFunctions.h:
- (JSC::::put):
- (JSC::::staticFunctionGetter):
- * API/JSObjectRef.cpp:
- (JSObjectMakeConstructor):
- (JSObjectSetPrivateProperty):
- * API/JSWeakObjectMapRefInternal.h:
- * JavaScriptCore.exp:
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
- * JavaScriptCore.xcodeproj/project.pbxproj:
- * bytecode/CodeBlock.cpp:
- (JSC::CodeBlock::markAggregate):
- * bytecode/CodeBlock.h:
- (JSC::CodeBlock::globalObject):
- * bytecompiler/BytecodeGenerator.cpp:
- (JSC::BytecodeGenerator::BytecodeGenerator):
- (JSC::BytecodeGenerator::emitJumpIfNotFunctionCall):
- (JSC::BytecodeGenerator::emitJumpIfNotFunctionApply):
- (JSC::BytecodeGenerator::findScopedProperty):
- * debugger/Debugger.cpp:
- (JSC::evaluateInGlobalCallFrame):
- * debugger/DebuggerActivation.cpp:
- (JSC::DebuggerActivation::DebuggerActivation):
- (JSC::DebuggerActivation::markChildren):
- * debugger/DebuggerActivation.h:
- * debugger/DebuggerCallFrame.cpp:
- (JSC::DebuggerCallFrame::evaluate):
- * interpreter/CallFrame.h:
- (JSC::ExecState::exception):
- * interpreter/Interpreter.cpp:
- (JSC::Interpreter::resolve):
- (JSC::Interpreter::resolveSkip):
- (JSC::Interpreter::resolveGlobal):
- (JSC::Interpreter::resolveGlobalDynamic):
- (JSC::Interpreter::resolveBaseAndProperty):
- (JSC::Interpreter::unwindCallFrame):
- (JSC::appendSourceToError):
- (JSC::Interpreter::execute):
- (JSC::Interpreter::tryCacheGetByID):
- (JSC::Interpreter::privateExecute):
- * jit/JITStubs.cpp:
- (JSC::JITThunks::tryCacheGetByID):
- (JSC::DEFINE_STUB_FUNCTION):
- * jsc.cpp:
- (GlobalObject::GlobalObject):
- * runtime/ArgList.cpp:
- (JSC::MarkedArgumentBuffer::markLists):
- * runtime/Arguments.cpp:
- (JSC::Arguments::markChildren):
- (JSC::Arguments::getOwnPropertySlot):
- (JSC::Arguments::getOwnPropertyDescriptor):
- (JSC::Arguments::put):
- * runtime/Arguments.h:
- (JSC::Arguments::setActivation):
- (JSC::Arguments::Arguments):
- * runtime/ArrayConstructor.cpp:
- (JSC::ArrayConstructor::ArrayConstructor):
- (JSC::constructArrayWithSizeQuirk):
- * runtime/ArrayPrototype.cpp:
- (JSC::arrayProtoFuncSplice):
- * runtime/BatchedTransitionOptimizer.h:
- (JSC::BatchedTransitionOptimizer::BatchedTransitionOptimizer):
- (JSC::BatchedTransitionOptimizer::~BatchedTransitionOptimizer):
- * runtime/BooleanConstructor.cpp:
- (JSC::BooleanConstructor::BooleanConstructor):
- (JSC::constructBoolean):
- (JSC::constructBooleanFromImmediateBoolean):
- * runtime/BooleanPrototype.cpp:
- (JSC::BooleanPrototype::BooleanPrototype):
- * runtime/ConservativeSet.cpp:
- (JSC::ConservativeSet::grow):
- * runtime/ConservativeSet.h:
- (JSC::ConservativeSet::~ConservativeSet):
- (JSC::ConservativeSet::mark):
- * runtime/DateConstructor.cpp:
- (JSC::DateConstructor::DateConstructor):
- * runtime/DateInstance.cpp:
- (JSC::DateInstance::DateInstance):
- * runtime/DatePrototype.cpp:
- (JSC::dateProtoFuncSetTime):
- (JSC::setNewValueFromTimeArgs):
- (JSC::setNewValueFromDateArgs):
- (JSC::dateProtoFuncSetYear):
- * runtime/ErrorConstructor.cpp:
- (JSC::ErrorConstructor::ErrorConstructor):
- * runtime/ErrorInstance.cpp:
- (JSC::ErrorInstance::ErrorInstance):
- * runtime/ErrorPrototype.cpp:
- (JSC::ErrorPrototype::ErrorPrototype):
- * runtime/FunctionConstructor.cpp:
- (JSC::FunctionConstructor::FunctionConstructor):
- * runtime/FunctionPrototype.cpp:
- (JSC::FunctionPrototype::FunctionPrototype):
- * runtime/GetterSetter.cpp:
- (JSC::GetterSetter::markChildren):
- * runtime/GetterSetter.h:
- (JSC::GetterSetter::GetterSetter):
- (JSC::GetterSetter::getter):
- (JSC::GetterSetter::setGetter):
- (JSC::GetterSetter::setter):
- (JSC::GetterSetter::setSetter):
- * runtime/GlobalEvalFunction.cpp:
- (JSC::GlobalEvalFunction::GlobalEvalFunction):
- (JSC::GlobalEvalFunction::markChildren):
- * runtime/GlobalEvalFunction.h:
- (JSC::GlobalEvalFunction::cachedGlobalObject):
- * runtime/Heap.cpp:
- (JSC::Heap::markProtectedObjects):
- (JSC::Heap::markTempSortVectors):
- (JSC::Heap::markRoots):
- * runtime/InternalFunction.cpp:
- (JSC::InternalFunction::InternalFunction):
- * runtime/JSAPIValueWrapper.h:
- (JSC::JSAPIValueWrapper::value):
- (JSC::JSAPIValueWrapper::JSAPIValueWrapper):
- * runtime/JSActivation.cpp:
- (JSC::JSActivation::markChildren):
- (JSC::JSActivation::put):
- * runtime/JSArray.cpp:
- (JSC::JSArray::JSArray):
- (JSC::JSArray::getOwnPropertySlot):
- (JSC::JSArray::getOwnPropertyDescriptor):
- (JSC::JSArray::put):
- (JSC::JSArray::putSlowCase):
- (JSC::JSArray::deleteProperty):
- (JSC::JSArray::increaseVectorLength):
- (JSC::JSArray::setLength):
- (JSC::JSArray::pop):
- (JSC::JSArray::push):
- (JSC::JSArray::unshiftCount):
- (JSC::JSArray::sort):
- (JSC::JSArray::fillArgList):
- (JSC::JSArray::copyToRegisters):
- (JSC::JSArray::compactForSorting):
- * runtime/JSArray.h:
- (JSC::JSArray::getIndex):
- (JSC::JSArray::setIndex):
- (JSC::JSArray::uncheckedSetIndex):
- (JSC::JSArray::markChildrenDirect):
- * runtime/JSByteArray.cpp:
- (JSC::JSByteArray::JSByteArray):
- * runtime/JSCell.h:
- (JSC::JSCell::MarkStack::append):
- (JSC::JSCell::MarkStack::internalAppend):
- (JSC::JSCell::MarkStack::deprecatedAppend):
- * runtime/JSFunction.cpp:
- (JSC::JSFunction::JSFunction):
- (JSC::JSFunction::getOwnPropertySlot):
- * runtime/JSGlobalData.h:
- * runtime/JSGlobalObject.cpp:
- (JSC::markIfNeeded):
- (JSC::JSGlobalObject::reset):
- (JSC::JSGlobalObject::resetPrototype):
- (JSC::JSGlobalObject::markChildren):
- * runtime/JSGlobalObject.h:
- (JSC::JSGlobalObject::JSGlobalObjectData::JSGlobalObjectData):
- (JSC::JSGlobalObject::regExpConstructor):
- (JSC::JSGlobalObject::errorConstructor):
- (JSC::JSGlobalObject::evalErrorConstructor):
- (JSC::JSGlobalObject::rangeErrorConstructor):
- (JSC::JSGlobalObject::referenceErrorConstructor):
- (JSC::JSGlobalObject::syntaxErrorConstructor):
- (JSC::JSGlobalObject::typeErrorConstructor):
- (JSC::JSGlobalObject::URIErrorConstructor):
- (JSC::JSGlobalObject::evalFunction):
- (JSC::JSGlobalObject::objectPrototype):
- (JSC::JSGlobalObject::functionPrototype):
- (JSC::JSGlobalObject::arrayPrototype):
- (JSC::JSGlobalObject::booleanPrototype):
- (JSC::JSGlobalObject::stringPrototype):
- (JSC::JSGlobalObject::numberPrototype):
- (JSC::JSGlobalObject::datePrototype):
- (JSC::JSGlobalObject::regExpPrototype):
- (JSC::JSGlobalObject::methodCallDummy):
- (JSC::Structure::prototypeForLookup):
- (JSC::constructArray):
- * runtime/JSONObject.cpp:
- (JSC::Stringifier::Holder::object):
- (JSC::Stringifier::Holder::objectSlot):
- (JSC::Stringifier::markAggregate):
- (JSC::Stringifier::stringify):
- (JSC::Stringifier::Holder::appendNextProperty):
- (JSC::Walker::callReviver):
- (JSC::Walker::walk):
- * runtime/JSObject.cpp:
- (JSC::JSObject::defineGetter):
- (JSC::JSObject::defineSetter):
- (JSC::JSObject::removeDirect):
- (JSC::JSObject::putDirectFunction):
- (JSC::JSObject::putDirectFunctionWithoutTransition):
- (JSC::putDescriptor):
- (JSC::JSObject::defineOwnProperty):
- * runtime/JSObject.h:
- (JSC::JSObject::getDirectOffset):
- (JSC::JSObject::putDirectOffset):
- (JSC::JSObject::putUndefinedAtDirectOffset):
- (JSC::JSObject::flattenDictionaryObject):
- (JSC::JSObject::putDirectInternal):
- (JSC::JSObject::putDirect):
- (JSC::JSObject::putDirectFunction):
- (JSC::JSObject::putDirectWithoutTransition):
- (JSC::JSObject::putDirectFunctionWithoutTransition):
- (JSC::JSValue::putDirect):
- (JSC::JSObject::allocatePropertyStorageInline):
- (JSC::JSObject::markChildrenDirect):
- * runtime/JSPropertyNameIterator.cpp:
- (JSC::JSPropertyNameIterator::JSPropertyNameIterator):
- (JSC::JSPropertyNameIterator::get):
- * runtime/JSPropertyNameIterator.h:
- * runtime/JSStaticScopeObject.cpp:
- (JSC::JSStaticScopeObject::markChildren):
- * runtime/JSString.cpp:
- (JSC::StringObject::create):
- * runtime/JSValue.h:
- * runtime/JSWrapperObject.cpp:
- (JSC::JSWrapperObject::markChildren):
- * runtime/JSWrapperObject.h:
- (JSC::JSWrapperObject::internalValue):
- (JSC::JSWrapperObject::setInternalValue):
- * runtime/LiteralParser.cpp:
- (JSC::LiteralParser::parse):
- * runtime/Lookup.cpp:
- (JSC::setUpStaticFunctionSlot):
- * runtime/Lookup.h:
- (JSC::lookupPut):
- * runtime/MarkStack.h:
- (JSC::MarkStack::MarkStack):
- (JSC::MarkStack::deprecatedAppendValues):
- (JSC::MarkStack::appendValues):
- * runtime/MathObject.cpp:
- (JSC::MathObject::MathObject):
- * runtime/NativeErrorConstructor.cpp:
- (JSC::NativeErrorConstructor::NativeErrorConstructor):
- * runtime/NativeErrorPrototype.cpp:
- (JSC::NativeErrorPrototype::NativeErrorPrototype):
- * runtime/NumberConstructor.cpp:
- (JSC::NumberConstructor::NumberConstructor):
- (JSC::constructWithNumberConstructor):
- * runtime/NumberObject.cpp:
- (JSC::constructNumber):
- * runtime/NumberPrototype.cpp:
- (JSC::NumberPrototype::NumberPrototype):
- * runtime/ObjectConstructor.cpp:
- (JSC::ObjectConstructor::ObjectConstructor):
- (JSC::objectConstructorGetOwnPropertyDescriptor):
- * runtime/Operations.h:
- (JSC::normalizePrototypeChain):
- (JSC::resolveBase):
- * runtime/PrototypeFunction.cpp:
- (JSC::PrototypeFunction::PrototypeFunction):
- * runtime/PutPropertySlot.h:
- (JSC::PutPropertySlot::setExistingProperty):
- (JSC::PutPropertySlot::setNewProperty):
- (JSC::PutPropertySlot::base):
- * runtime/RegExpConstructor.cpp:
- (JSC::RegExpConstructor::RegExpConstructor):
- * runtime/ScopeChain.cpp:
- (JSC::ScopeChainNode::print):
- * runtime/ScopeChain.h:
- (JSC::ScopeChainNode::~ScopeChainNode):
- (JSC::ScopeChainIterator::operator*):
- (JSC::ScopeChainIterator::operator->):
- (JSC::ScopeChain::top):
- * runtime/ScopeChainMark.h:
- (JSC::ScopeChain::markAggregate):
- * runtime/SmallStrings.cpp:
- (JSC::isMarked):
- (JSC::SmallStrings::markChildren):
- * runtime/SmallStrings.h:
- (JSC::SmallStrings::emptyString):
- (JSC::SmallStrings::singleCharacterString):
- (JSC::SmallStrings::singleCharacterStrings):
- * runtime/StringConstructor.cpp:
- (JSC::StringConstructor::StringConstructor):
- * runtime/StringObject.cpp:
- (JSC::StringObject::StringObject):
- * runtime/StringObject.h:
- * runtime/StringPrototype.cpp:
- (JSC::StringPrototype::StringPrototype):
- * runtime/Structure.cpp:
- (JSC::Structure::Structure):
- (JSC::Structure::addPropertyTransition):
- (JSC::Structure::toDictionaryTransition):
- (JSC::Structure::flattenDictionaryStructure):
- * runtime/Structure.h:
- (JSC::Structure::storedPrototype):
- (JSC::Structure::storedPrototypeSlot):
- * runtime/WeakGCMap.h:
- (JSC::WeakGCMap::uncheckedGet):
- (JSC::WeakGCMap::uncheckedGetSlot):
- (JSC::WeakGCMap::isValid):
- (JSC::::get):
- (JSC::::take):
- (JSC::::set):
- (JSC::::uncheckedRemove):
- * runtime/WriteBarrier.h: Added.
- (JSC::DeprecatedPtr::DeprecatedPtr):
- (JSC::DeprecatedPtr::get):
- (JSC::DeprecatedPtr::operator*):
- (JSC::DeprecatedPtr::operator->):
- (JSC::DeprecatedPtr::slot):
- (JSC::DeprecatedPtr::operator UnspecifiedBoolType*):
- (JSC::DeprecatedPtr::operator!):
- (JSC::WriteBarrierBase::set):
- (JSC::WriteBarrierBase::get):
- (JSC::WriteBarrierBase::operator*):
- (JSC::WriteBarrierBase::operator->):
- (JSC::WriteBarrierBase::slot):
- (JSC::WriteBarrierBase::operator UnspecifiedBoolType*):
- (JSC::WriteBarrierBase::operator!):
- (JSC::WriteBarrier::WriteBarrier):
- (JSC::operator==):
- 2011-01-30 Geoffrey Garen <ggaren@apple.com>
- Reviewed by Oliver Hunt.
- Filter all Heap collection through a common reset function, in
- preparation for adding features triggered by collection.
- https://bugs.webkit.org/show_bug.cgi?id=53396
-
- SunSpider reports no change.
- * runtime/Heap.cpp:
- (JSC::Heap::reportExtraMemoryCostSlowCase): When we're over the extraCost
- limit, just call collectAllGarbage() instead of rolling our own special
- way of resetting the heap. In theory, this may be slower in some cases,
- but it also fixes cases of pathological heap growth that we've seen,
- where the only objects being allocated are temporary and huge
- (<rdar://problem/8885843>).
- (JSC::Heap::allocate):
- (JSC::Heap::collectAllGarbage): Use the shared reset function.
- (JSC::Heap::reset):
- * runtime/Heap.h: Carved a new shared reset function out of the old
- collectAllGarbage.
- 2011-01-30 Sheriff Bot <webkit.review.bot@gmail.com>
- Unreviewed, rolling out r77025.
- http://trac.webkit.org/changeset/77025
- https://bugs.webkit.org/show_bug.cgi?id=53401
- It made js1_5/Regress/regress-159334.js fail on 64 bit Linux
- (Requested by Ossy on #webkit).
- * jit/ExecutableAllocatorFixedVMPool.cpp:
- (JSC::FreeListEntry::FreeListEntry):
- (JSC::AVLTreeAbstractorForFreeList::get_less):
- (JSC::AVLTreeAbstractorForFreeList::set_less):
- (JSC::AVLTreeAbstractorForFreeList::get_greater):
- (JSC::AVLTreeAbstractorForFreeList::set_greater):
- (JSC::AVLTreeAbstractorForFreeList::get_balance_factor):
- (JSC::AVLTreeAbstractorForFreeList::set_balance_factor):
- (JSC::AVLTreeAbstractorForFreeList::null):
- (JSC::AVLTreeAbstractorForFreeList::compare_key_key):
- (JSC::AVLTreeAbstractorForFreeList::compare_key_node):
- (JSC::AVLTreeAbstractorForFreeList::compare_node_node):
- (JSC::reverseSortFreeListEntriesByPointer):
- (JSC::reverseSortCommonSizedAllocations):
- (JSC::FixedVMPoolAllocator::release):
- (JSC::FixedVMPoolAllocator::reuse):
- (JSC::FixedVMPoolAllocator::addToFreeList):
- (JSC::FixedVMPoolAllocator::coalesceFreeSpace):
- (JSC::FixedVMPoolAllocator::FixedVMPoolAllocator):
- (JSC::FixedVMPoolAllocator::alloc):
- (JSC::FixedVMPoolAllocator::free):
- (JSC::FixedVMPoolAllocator::isValid):
- (JSC::FixedVMPoolAllocator::allocInternal):
- (JSC::FixedVMPoolAllocator::isWithinVMPool):
- (JSC::FixedVMPoolAllocator::addToCommittedByteCount):
- (JSC::ExecutableAllocator::committedByteCount):
- (JSC::maybeModifyVMPoolSize):
- (JSC::ExecutableAllocator::isValid):
- (JSC::ExecutableAllocator::underMemoryPressure):
- (JSC::ExecutablePool::systemAlloc):
- (JSC::ExecutablePool::systemRelease):
- * wtf/PageReservation.h:
- (WTF::PageReservation::PageReservation):
- (WTF::PageReservation::commit):
- (WTF::PageReservation::decommit):
- 2011-01-30 Leo Yang <leo.yang@torchmobile.com.cn>
- Reviewed by Daniel Bates.
- Code style issue in JavaScriptCore/wtf/CurrentTime.h
- https://bugs.webkit.org/show_bug.cgi?id=53394
- According to rule #3 at http://webkit.org/coding/coding-style.html,
- This patch fix style issue in CurrentTime.h.
- No functionality change, no new tests.
- * wtf/CurrentTime.h:
- (WTF::currentTimeMS):
- (WTF::getLocalTime):
- 2011-01-30 Benjamin Poulain <ikipou@gmail.com>
- Reviewed by Kenneth Rohde Christiansen.
- [Qt] JavaScriptCore does not link on Mac if building WebKit 2
- https://bugs.webkit.org/show_bug.cgi?id=53377
- The option "-whole-archive" is not availabe with the libtool of Mac OS X,
- instead, we can use "-all_load" on Mac.
- * JavaScriptCore.pri:
- 2011-01-29 Geoffrey Garen <ggaren@apple.com>
- Sorry Leopard bot -- I committed a change by accident.
- * JavaScriptCore.exp: You may have your symbols back now.
- 2011-01-29 Geoffrey Garen <ggaren@apple.com>
- Reviewed by Cameron Zwarich.
- Simplified Heap iteration
- https://bugs.webkit.org/show_bug.cgi?id=53393
- * runtime/CollectorHeapIterator.h:
- (JSC::CollectorHeapIterator::isValid):
- (JSC::CollectorHeapIterator::isLive):
- (JSC::CollectorHeapIterator::advance): Removed "max" argument to
- advance because it's a constant.
- (JSC::LiveObjectIterator::LiveObjectIterator):
- (JSC::LiveObjectIterator::operator++):
- (JSC::DeadObjectIterator::DeadObjectIterator):
- (JSC::DeadObjectIterator::operator++):
- (JSC::ObjectIterator::ObjectIterator):
- (JSC::ObjectIterator::operator++): Factored out common checks into
- two helper functions -- isValid() for "Am I past the end?" and isLive()
- for "Is the cell I'm pointing to live?".
- * runtime/MarkedSpace.cpp:
- (JSC::MarkedSpace::freeBlock):
- (JSC::MarkedSpace::sweep): Always sweep from the beginning of the heap
- to the end, to avoid making sweep subtly reliant on internal Heap state.
- (JSC::MarkedSpace::primaryHeapBegin):
- (JSC::MarkedSpace::primaryHeapEnd): Always be explicit about where
- iteration begins.
- 2011-01-29 Geoffrey Garen <ggaren@apple.com>
- Reviewed by Cameron Zwarich.
- Simplified heap destruction
- https://bugs.webkit.org/show_bug.cgi?id=53392
- * JavaScriptCore.exp:
- * runtime/Heap.cpp:
- (JSC::Heap::destroy):
- * runtime/Heap.h:
- * runtime/MarkedSpace.cpp:
- (JSC::MarkedSpace::destroy):
- * runtime/MarkedSpace.h: Don't go out of our way to destroy GC-protected
- cells last -- the difficult contortions required to do so just don't seem
- justified. We make no guarantees about GC protection after the client
- throws away JSGlobalData, and it doesn't seem like any meaningful
- guarantee is even possible.
- 2011-01-29 Geoffrey Garen <ggaren@apple.com>
- Reviewed by Maciej Stachowiak.
- Switched heap to use the Bitmap class and removed CollectorBitmap
- https://bugs.webkit.org/show_bug.cgi?id=53391
-
- SunSpider says 1.005x as fast. Seems like a fluke.
- * runtime/MarkedSpace.cpp:
- (JSC::MarkedSpace::allocate): Updated for rename and returning a value
- rather than taking a value by reference.
- * runtime/MarkedSpace.h: Code reuse is good.
- * wtf/Bitmap.h:
- (WTF::::testAndSet): Added, since this is the one thing Bitmap was missing
- which CollectorBitmap had. (Renamed from the less conventional "getset".)
- (WTF::::nextPossiblyUnset): Renamed and changed to return a value for
- clarity. It's all the same with inlining.
- 2011-01-28 Geoffrey Garen <ggaren@apple.com>
- Reviewed by Maciej Stachowiak.
- Some more Heap cleanup.
- https://bugs.webkit.org/show_bug.cgi?id=53357
-
- * JavaScriptCore.exp:
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: Updated exported symbols.
- * runtime/Heap.cpp:
- (JSC::Heap::reportExtraMemoryCostSlowCase): Renamed recordExtraCost to
- reportExtraMemoryCostSlowCase to match our naming conventions.
- (JSC::Heap::capacity): Renamed size to capacity because this function
- returns the capacity of the heap, including unused portions.
- * runtime/Heap.h:
- (JSC::Heap::globalData):
- (JSC::Heap::markedSpace):
- (JSC::Heap::machineStackMarker):
- (JSC::Heap::reportExtraMemoryCost): Moved statics to the top of the file.
- Moved ctor and dtor to the beginning of the class definition. Grouped
- functions by purpose.
- * runtime/MarkedSpace.cpp:
- (JSC::MarkedSpace::capacity): Renamed size to capacity because this
- function returns the capacity of the heap, including unused portions.
- * runtime/MarkedSpace.h: Removed statistics and the Statistics class because
- the same information can be gotten just by calling size() and capacity().
- * runtime/MemoryStatistics.cpp:
- * runtime/MemoryStatistics.h: Ditto.
- 2011-01-29 Daniel Bates <dbates@rim.com>
- Reviewed by Eric Seidel.
- Move wince/mt19937ar.c to ThirdParty and make it a policy choice
- https://bugs.webkit.org/show_bug.cgi?id=53253
- Make inclusion of MT19937 a policy decision.
- Currently, we hardcoded to use MT19937 when building for
- Windows CE. Instead, we should make this a policy decision
- with the Windows CE port using this by default.
- * JavaScriptCore.pri: Append Source/ThirdParty to the end
- of the list include directories.
- * wtf/CMakeLists.txt: Ditto.
- * wtf/Platform.h: Defined WTF_USE_MERSENNE_TWISTER_19937 when
- building for Windows CE.
- * wtf/RandomNumber.cpp:
- (WTF::randomNumber): Substituted USE(MERSENNE_TWISTER_19937) for OS(WINCE).
- 2011-01-29 Cameron Zwarich <zwarich@apple.com>
- Reviewed by David Kilzer.
- Bug 53374 - Remove uses of unsafe string functions in debugging code
- https://bugs.webkit.org/show_bug.cgi?id=53374
- * runtime/RegExp.cpp:
- (JSC::RegExp::printTraceData):
- 2011-01-29 Cameron Zwarich <zwarich@apple.com>
- Reviewed by Oliver Hunt.
- JavaScriptCoreUseJIT environment variable broken
- https://bugs.webkit.org/show_bug.cgi?id=53372
- * runtime/JSGlobalData.cpp:
- (JSC::JSGlobalData::JSGlobalData): Check the actual value in the string returned
- by getenv() rather than just doing a NULL check on the return value.
- 2011-01-29 Patrick Gansterer <paroga@webkit.org>
- Reviewed by David Kilzer.
- Move CharacterNames.h into WTF directory
- https://bugs.webkit.org/show_bug.cgi?id=49618
- * GNUmakefile.am:
- * JavaScriptCore.gypi:
- * JavaScriptCore.vcproj/WTF/WTF.vcproj:
- * JavaScriptCore.xcodeproj/project.pbxproj:
- * wtf/CMakeLists.txt:
- * wtf/unicode/CharacterNames.h: Renamed from WebCore/platform/text/CharacterNames.h.
- * wtf/unicode/UTF8.cpp:
- 2011-01-28 Simon Fraser <simon.fraser@apple.com>
- Reviewed by Gavin Barraclough.
- Add various clampToInt() methods to MathExtras.h
- https://bugs.webkit.org/show_bug.cgi?id=52910
-
- Add functions for clamping doubles and floats to valid int
- ranges, for signed and positive integers.
- * wtf/MathExtras.h:
- (clampToInteger):
- (clampToPositiveInteger):
- 2011-01-28 Sheriff Bot <webkit.review.bot@gmail.com>
- Unreviewed, rolling out r77006 and r77020.
- http://trac.webkit.org/changeset/77006
- http://trac.webkit.org/changeset/77020
- https://bugs.webkit.org/show_bug.cgi?id=53360
- "Broke Windows tests" (Requested by rniwa on #webkit).
- * API/JSCallbackObject.h:
- (JSC::JSCallbackObjectData::setPrivateProperty):
- (JSC::JSCallbackObjectData::JSPrivatePropertyMap::getPrivateProperty):
- (JSC::JSCallbackObjectData::JSPrivatePropertyMap::setPrivateProperty):
- (JSC::JSCallbackObjectData::JSPrivatePropertyMap::markChildren):
- (JSC::JSCallbackObject::setPrivateProperty):
- * API/JSCallbackObjectFunctions.h:
- (JSC::::put):
- (JSC::::staticFunctionGetter):
- * API/JSObjectRef.cpp:
- (JSObjectMakeConstructor):
- (JSObjectSetPrivateProperty):
- * API/JSWeakObjectMapRefInternal.h:
- * JavaScriptCore.exp:
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
- * JavaScriptCore.xcodeproj/project.pbxproj:
- * bytecode/CodeBlock.cpp:
- (JSC::CodeBlock::markAggregate):
- * bytecode/CodeBlock.h:
- (JSC::CodeBlock::globalObject):
- * bytecompiler/BytecodeGenerator.cpp:
- (JSC::BytecodeGenerator::BytecodeGenerator):
- (JSC::BytecodeGenerator::emitJumpIfNotFunctionCall):
- (JSC::BytecodeGenerator::emitJumpIfNotFunctionApply):
- (JSC::BytecodeGenerator::findScopedProperty):
- * debugger/Debugger.cpp:
- (JSC::evaluateInGlobalCallFrame):
- * debugger/DebuggerActivation.cpp:
- (JSC::DebuggerActivation::DebuggerActivation):
- (JSC::DebuggerActivation::markChildren):
- * debugger/DebuggerActivation.h:
- * debugger/DebuggerCallFrame.cpp:
- (JSC::DebuggerCallFrame::evaluate):
- * interpreter/CallFrame.h:
- (JSC::ExecState::exception):
- * interpreter/Interpreter.cpp:
- (JSC::Interpreter::resolve):
- (JSC::Interpreter::resolveSkip):
- (JSC::Interpreter::resolveGlobal):
- (JSC::Interpreter::resolveGlobalDynamic):
- (JSC::Interpreter::resolveBaseAndProperty):
- (JSC::Interpreter::unwindCallFrame):
- (JSC::appendSourceToError):
- (JSC::Interpreter::execute):
- (JSC::Interpreter::tryCacheGetByID):
- (JSC::Interpreter::privateExecute):
- * jit/JITStubs.cpp:
- (JSC::JITThunks::tryCacheGetByID):
- (JSC::DEFINE_STUB_FUNCTION):
- * jsc.cpp:
- (GlobalObject::GlobalObject):
- * runtime/ArgList.cpp:
- (JSC::MarkedArgumentBuffer::markLists):
- * runtime/Arguments.cpp:
- (JSC::Arguments::markChildren):
- (JSC::Arguments::getOwnPropertySlot):
- (JSC::Arguments::getOwnPropertyDescriptor):
- (JSC::Arguments::put):
- * runtime/Arguments.h:
- (JSC::Arguments::setActivation):
- (JSC::Arguments::Arguments):
- * runtime/ArrayConstructor.cpp:
- (JSC::ArrayConstructor::ArrayConstructor):
- (JSC::constructArrayWithSizeQuirk):
- * runtime/ArrayPrototype.cpp:
- (JSC::arrayProtoFuncSplice):
- * runtime/BatchedTransitionOptimizer.h:
- (JSC::BatchedTransitionOptimizer::BatchedTransitionOptimizer):
- (JSC::BatchedTransitionOptimizer::~BatchedTransitionOptimizer):
- * runtime/BooleanConstructor.cpp:
- (JSC::BooleanConstructor::BooleanConstructor):
- (JSC::constructBoolean):
- (JSC::constructBooleanFromImmediateBoolean):
- * runtime/BooleanPrototype.cpp:
- (JSC::BooleanPrototype::BooleanPrototype):
- * runtime/ConservativeSet.cpp:
- (JSC::ConservativeSet::grow):
- * runtime/ConservativeSet.h:
- (JSC::ConservativeSet::~ConservativeSet):
- (JSC::ConservativeSet::mark):
- * runtime/DateConstructor.cpp:
- (JSC::DateConstructor::DateConstructor):
- * runtime/DateInstance.cpp:
- (JSC::DateInstance::DateInstance):
- * runtime/DatePrototype.cpp:
- (JSC::dateProtoFuncSetTime):
- (JSC::setNewValueFromTimeArgs):
- (JSC::setNewValueFromDateArgs):
- (JSC::dateProtoFuncSetYear):
- * runtime/ErrorConstructor.cpp:
- (JSC::ErrorConstructor::ErrorConstructor):
- * runtime/ErrorInstance.cpp:
- (JSC::ErrorInstance::ErrorInstance):
- * runtime/ErrorPrototype.cpp:
- (JSC::ErrorPrototype::ErrorPrototype):
- * runtime/FunctionConstructor.cpp:
- (JSC::FunctionConstructor::FunctionConstructor):
- * runtime/FunctionPrototype.cpp:
- (JSC::FunctionPrototype::FunctionPrototype):
- * runtime/GetterSetter.cpp:
- (JSC::GetterSetter::markChildren):
- * runtime/GetterSetter.h:
- (JSC::GetterSetter::GetterSetter):
- (JSC::GetterSetter::getter):
- (JSC::GetterSetter::setGetter):
- (JSC::GetterSetter::setter):
- (JSC::GetterSetter::setSetter):
- * runtime/GlobalEvalFunction.cpp:
- (JSC::GlobalEvalFunction::GlobalEvalFunction):
- (JSC::GlobalEvalFunction::markChildren):
- * runtime/GlobalEvalFunction.h:
- (JSC::GlobalEvalFunction::cachedGlobalObject):
- * runtime/Heap.cpp:
- (JSC::Heap::markProtectedObjects):
- (JSC::Heap::markTempSortVectors):
- (JSC::Heap::markRoots):
- * runtime/InternalFunction.cpp:
- (JSC::InternalFunction::InternalFunction):
- * runtime/JSAPIValueWrapper.h:
- (JSC::JSAPIValueWrapper::value):
- (JSC::JSAPIValueWrapper::JSAPIValueWrapper):
- * runtime/JSActivation.cpp:
- (JSC::JSActivation::markChildren):
- (JSC::JSActivation::put):
- * runtime/JSArray.cpp:
- (JSC::JSArray::JSArray):
- (JSC::JSArray::getOwnPropertySlot):
- (JSC::JSArray::getOwnPropertyDescriptor):
- (JSC::JSArray::put):
- (JSC::JSArray::putSlowCase):
- (JSC::JSArray::deleteProperty):
- (JSC::JSArray::increaseVectorLength):
- (JSC::JSArray::setLength):
- (JSC::JSArray::pop):
- (JSC::JSArray::push):
- (JSC::JSArray::unshiftCount):
- (JSC::JSArray::sort):
- (JSC::JSArray::fillArgList):
- (JSC::JSArray::copyToRegisters):
- (JSC::JSArray::compactForSorting):
- * runtime/JSArray.h:
- (JSC::JSArray::getIndex):
- (JSC::JSArray::setIndex):
- (JSC::JSArray::uncheckedSetIndex):
- (JSC::JSArray::markChildrenDirect):
- * runtime/JSByteArray.cpp:
- (JSC::JSByteArray::JSByteArray):
- * runtime/JSCell.h:
- (JSC::JSCell::JSValue::toThisObject):
- (JSC::JSCell::MarkStack::append):
- * runtime/JSFunction.cpp:
- (JSC::JSFunction::JSFunction):
- (JSC::JSFunction::getOwnPropertySlot):
- * runtime/JSGlobalData.h:
- * runtime/JSGlobalObject.cpp:
- (JSC::markIfNeeded):
- (JSC::JSGlobalObject::reset):
- (JSC::JSGlobalObject::resetPrototype):
- (JSC::JSGlobalObject::markChildren):
- * runtime/JSGlobalObject.h:
- (JSC::JSGlobalObject::JSGlobalObjectData::JSGlobalObjectData):
- (JSC::JSGlobalObject::regExpConstructor):
- (JSC::JSGlobalObject::errorConstructor):
- (JSC::JSGlobalObject::evalErrorConstructor):
- (JSC::JSGlobalObject::rangeErrorConstructor):
- (JSC::JSGlobalObject::referenceErrorConstructor):
- (JSC::JSGlobalObject::syntaxErrorConstructor):
- (JSC::JSGlobalObject::typeErrorConstructor):
- (JSC::JSGlobalObject::URIErrorConstructor):
- (JSC::JSGlobalObject::evalFunction):
- (JSC::JSGlobalObject::objectPrototype):
- (JSC::JSGlobalObject::functionPrototype):
- (JSC::JSGlobalObject::arrayPrototype):
- (JSC::JSGlobalObject::booleanPrototype):
- (JSC::JSGlobalObject::stringPrototype):
- (JSC::JSGlobalObject::numberPrototype):
- (JSC::JSGlobalObject::datePrototype):
- (JSC::JSGlobalObject::regExpPrototype):
- (JSC::JSGlobalObject::methodCallDummy):
- (JSC::Structure::prototypeForLookup):
- (JSC::constructArray):
- * runtime/JSONObject.cpp:
- (JSC::Stringifier::Holder::object):
- (JSC::Stringifier::markAggregate):
- (JSC::Stringifier::stringify):
- (JSC::Stringifier::Holder::appendNextProperty):
- (JSC::Walker::callReviver):
- (JSC::Walker::walk):
- * runtime/JSObject.cpp:
- (JSC::JSObject::defineGetter):
- (JSC::JSObject::defineSetter):
- (JSC::JSObject::removeDirect):
- (JSC::JSObject::putDirectFunction):
- (JSC::JSObject::putDirectFunctionWithoutTransition):
- (JSC::putDescriptor):
- (JSC::JSObject::defineOwnProperty):
- * runtime/JSObject.h:
- (JSC::JSObject::getDirectOffset):
- (JSC::JSObject::putDirectOffset):
- (JSC::JSObject::flattenDictionaryObject):
- (JSC::JSObject::putDirectInternal):
- (JSC::JSObject::putDirect):
- (JSC::JSObject::putDirectFunction):
- (JSC::JSObject::putDirectWithoutTransition):
- (JSC::JSObject::putDirectFunctionWithoutTransition):
- (JSC::JSValue::putDirect):
- (JSC::JSObject::allocatePropertyStorageInline):
- (JSC::JSObject::markChildrenDirect):
- * runtime/JSPropertyNameIterator.cpp:
- (JSC::JSPropertyNameIterator::JSPropertyNameIterator):
- (JSC::JSPropertyNameIterator::get):
- * runtime/JSPropertyNameIterator.h:
- * runtime/JSStaticScopeObject.cpp:
- (JSC::JSStaticScopeObject::markChildren):
- * runtime/JSString.cpp:
- (JSC::StringObject::create):
- * runtime/JSValue.h:
- * runtime/JSWrapperObject.cpp:
- (JSC::JSWrapperObject::markChildren):
- * runtime/JSWrapperObject.h:
- (JSC::JSWrapperObject::internalValue):
- (JSC::JSWrapperObject::setInternalValue):
- * runtime/LiteralParser.cpp:
- (JSC::LiteralParser::parse):
- * runtime/Lookup.cpp:
- (JSC::setUpStaticFunctionSlot):
- * runtime/Lookup.h:
- (JSC::lookupPut):
- * runtime/MarkStack.h:
- (JSC::MarkStack::appendValues):
- * runtime/MathObject.cpp:
- (JSC::MathObject::MathObject):
- * runtime/NativeErrorConstructor.cpp:
- (JSC::NativeErrorConstructor::NativeErrorConstructor):
- * runtime/NativeErrorPrototype.cpp:
- (JSC::NativeErrorPrototype::NativeErrorPrototype):
- * runtime/NumberConstructor.cpp:
- (JSC::NumberConstructor::NumberConstructor):
- (JSC::constructWithNumberConstructor):
- * runtime/NumberObject.cpp:
- (JSC::constructNumber):
- * runtime/NumberPrototype.cpp:
- (JSC::NumberPrototype::NumberPrototype):
- * runtime/ObjectConstructor.cpp:
- (JSC::ObjectConstructor::ObjectConstructor):
- (JSC::objectConstructorGetOwnPropertyDescriptor):
- * runtime/Operations.h:
- (JSC::normalizePrototypeChain):
- (JSC::resolveBase):
- * runtime/PrototypeFunction.cpp:
- (JSC::PrototypeFunction::PrototypeFunction):
- * runtime/PutPropertySlot.h:
- (JSC::PutPropertySlot::setExistingProperty):
- (JSC::PutPropertySlot::setNewProperty):
- (JSC::PutPropertySlot::base):
- * runtime/RegExpConstructor.cpp:
- (JSC::RegExpConstructor::RegExpConstructor):
- * runtime/ScopeChain.cpp:
- (JSC::ScopeChainNode::print):
- * runtime/ScopeChain.h:
- (JSC::ScopeChainNode::~ScopeChainNode):
- (JSC::ScopeChainIterator::operator*):
- (JSC::ScopeChainIterator::operator->):
- (JSC::ScopeChain::top):
- * runtime/ScopeChainMark.h:
- (JSC::ScopeChain::markAggregate):
- * runtime/SmallStrings.cpp:
- (JSC::isMarked):
- (JSC::SmallStrings::markChildren):
- * runtime/SmallStrings.h:
- (JSC::SmallStrings::emptyString):
- (JSC::SmallStrings::singleCharacterString):
- (JSC::SmallStrings::singleCharacterStrings):
- * runtime/StringConstructor.cpp:
- (JSC::StringConstructor::StringConstructor):
- * runtime/StringObject.cpp:
- (JSC::StringObject::StringObject):
- * runtime/StringObject.h:
- * runtime/StringPrototype.cpp:
- (JSC::StringPrototype::StringPrototype):
- * runtime/Structure.cpp:
- (JSC::Structure::Structure):
- (JSC::Structure::addPropertyTransition):
- (JSC::Structure::toDictionaryTransition):
- (JSC::Structure::flattenDictionaryStructure):
- * runtime/Structure.h:
- (JSC::Structure::storedPrototype):
- * runtime/WeakGCMap.h:
- (JSC::WeakGCMap::uncheckedGet):
- (JSC::WeakGCMap::isValid):
- (JSC::::get):
- (JSC::::take):
- (JSC::::set):
- (JSC::::uncheckedRemove):
- * runtime/WriteBarrier.h: Removed.
- 2011-01-28 Gavin Barraclough <barraclough@apple.com>
- Reviewed by Geoff Garen.
- https://bugs.webkit.org/show_bug.cgi?id=53352
- Heavy external fragmentation in FixedVMPoolAllocator can lead to a CRASH().
- The FixedVMPoolAllocator currently uses a best fix policy -
- switch to first fit, this is less prone to external fragmentation.
- * jit/ExecutableAllocatorFixedVMPool.cpp:
- (JSC::AllocationTableSizeClass::AllocationTableSizeClass):
- (JSC::AllocationTableSizeClass::blockSize):
- (JSC::AllocationTableSizeClass::blockCount):
- (JSC::AllocationTableSizeClass::blockAlignment):
- (JSC::AllocationTableSizeClass::size):
- (JSC::AllocationTableLeaf::AllocationTableLeaf):
- (JSC::AllocationTableLeaf::~AllocationTableLeaf):
- (JSC::AllocationTableLeaf::allocate):
- (JSC::AllocationTableLeaf::free):
- (JSC::AllocationTableLeaf::isEmpty):
- (JSC::AllocationTableLeaf::isFull):
- (JSC::AllocationTableLeaf::size):
- (JSC::AllocationTableLeaf::classForSize):
- (JSC::AllocationTableLeaf::dump):
- (JSC::LazyAllocationTable::LazyAllocationTable):
- (JSC::LazyAllocationTable::~LazyAllocationTable):
- (JSC::LazyAllocationTable::allocate):
- (JSC::LazyAllocationTable::free):
- (JSC::LazyAllocationTable::isEmpty):
- (JSC::LazyAllocationTable::isFull):
- (JSC::LazyAllocationTable::size):
- (JSC::LazyAllocationTable::dump):
- (JSC::LazyAllocationTable::classForSize):
- (JSC::AllocationTableDirectory::AllocationTableDirectory):
- (JSC::AllocationTableDirectory::~AllocationTableDirectory):
- (JSC::AllocationTableDirectory::allocate):
- (JSC::AllocationTableDirectory::free):
- (JSC::AllocationTableDirectory::isEmpty):
- (JSC::AllocationTableDirectory::isFull):
- (JSC::AllocationTableDirectory::size):
- (JSC::AllocationTableDirectory::classForSize):
- (JSC::AllocationTableDirectory::dump):
- (JSC::FixedVMPoolAllocator::FixedVMPoolAllocator):
- (JSC::FixedVMPoolAllocator::alloc):
- (JSC::FixedVMPoolAllocator::free):
- (JSC::FixedVMPoolAllocator::allocated):
- (JSC::FixedVMPoolAllocator::isValid):
- (JSC::FixedVMPoolAllocator::classForSize):
- (JSC::FixedVMPoolAllocator::offsetToPointer):
- (JSC::FixedVMPoolAllocator::pointerToOffset):
- (JSC::ExecutableAllocator::committedByteCount):
- (JSC::ExecutableAllocator::isValid):
- (JSC::ExecutableAllocator::underMemoryPressure):
- (JSC::ExecutablePool::systemAlloc):
- (JSC::ExecutablePool::systemRelease):
- * wtf/PageReservation.h:
- (WTF::PageReservation::PageReservation):
- (WTF::PageReservation::commit):
- (WTF::PageReservation::decommit):
- (WTF::PageReservation::committed):
- 2011-01-27 Oliver Hunt <oliver@apple.com>
- Reviewed by Geoffrey Garen.
- Convert markstack to a slot visitor API
- https://bugs.webkit.org/show_bug.cgi?id=53219
- Move the MarkStack over to a slot based marking API.
- In order to avoiding aliasing concerns there are two new types
- that need to be used when holding on to JSValues and JSCell that
- need to be marked: WriteBarrier and DeprecatedPtr. WriteBarrier
- is expected to be used for any JSValue or Cell that's lifetime and
- marking is controlled by another GC object. DeprecatedPtr is used
- for any value that we need to rework ownership for.
- The change over to this model has produced a large amount of
- code changes, but they are mostly mechanical (forwarding JSGlobalData,
- etc).
- * API/JSCallbackObject.h:
- (JSC::JSCallbackObjectData::setPrivateProperty):
- (JSC::JSCallbackObjectData::JSPrivatePropertyMap::getPrivateProperty):
- (JSC::JSCallbackObjectData::JSPrivatePropertyMap::setPrivateProperty):
- (JSC::JSCallbackObjectData::JSPrivatePropertyMap::markChildren):
- (JSC::JSCallbackObject::setPrivateProperty):
- * API/JSCallbackObjectFunctions.h:
- (JSC::::put):
- (JSC::::staticFunctionGetter):
- * API/JSObjectRef.cpp:
- (JSObjectMakeConstructor):
- (JSObjectSetPrivateProperty):
- * API/JSWeakObjectMapRefInternal.h:
- * JavaScriptCore.exp:
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
- * JavaScriptCore.xcodeproj/project.pbxproj:
- * bytecode/CodeBlock.cpp:
- (JSC::CodeBlock::markAggregate):
- * bytecode/CodeBlock.h:
- (JSC::CodeBlock::globalObject):
- * bytecompiler/BytecodeGenerator.cpp:
- (JSC::BytecodeGenerator::BytecodeGenerator):
- (JSC::BytecodeGenerator::emitJumpIfNotFunctionCall):
- (JSC::BytecodeGenerator::emitJumpIfNotFunctionApply):
- (JSC::BytecodeGenerator::findScopedProperty):
- * debugger/DebuggerActivation.cpp:
- (JSC::DebuggerActivation::DebuggerActivation):
- (JSC::DebuggerActivation::markChildren):
- * debugger/DebuggerActivation.h:
- * interpreter/Interpreter.cpp:
- (JSC::Interpreter::resolve):
- (JSC::Interpreter::resolveSkip):
- (JSC::Interpreter::resolveGlobalDynamic):
- (JSC::Interpreter::resolveBaseAndProperty):
- (JSC::Interpreter::unwindCallFrame):
- (JSC::appendSourceToError):
- (JSC::Interpreter::execute):
- (JSC::Interpreter::privateExecute):
- * interpreter/Register.h:
- (JSC::Register::jsValueSlot):
- * jit/JITStubs.cpp:
- (JSC::JITThunks::tryCacheGetByID):
- (JSC::DEFINE_STUB_FUNCTION):
- * jsc.cpp:
- (GlobalObject::GlobalObject):
- * runtime/Arguments.cpp:
- (JSC::Arguments::markChildren):
- (JSC::Arguments::getOwnPropertySlot):
- (JSC::Arguments::getOwnPropertyDescriptor):
- (JSC::Arguments::put):
- * runtime/Arguments.h:
- (JSC::Arguments::setActivation):
- (JSC::Arguments::Arguments):
- * runtime/ArrayConstructor.cpp:
- (JSC::ArrayConstructor::ArrayConstructor):
- (JSC::constructArrayWithSizeQuirk):
- * runtime/ArrayPrototype.cpp:
- (JSC::arrayProtoFuncSplice):
- * runtime/BatchedTransitionOptimizer.h:
- (JSC::BatchedTransitionOptimizer::BatchedTransitionOptimizer):
- (JSC::BatchedTransitionOptimizer::~BatchedTransitionOptimizer):
- * runtime/BooleanConstructor.cpp:
- (JSC::BooleanConstructor::BooleanConstructor):
- (JSC::constructBoolean):
- (JSC::constructBooleanFromImmediateBoolean):
- * runtime/BooleanPrototype.cpp:
- (JSC::BooleanPrototype::BooleanPrototype):
- * runtime/ConservativeSet.h:
- (JSC::ConservativeSet::mark):
- * runtime/DateConstructor.cpp:
- (JSC::DateConstructor::DateConstructor):
- * runtime/DateInstance.cpp:
- (JSC::DateInstance::DateInstance):
- * runtime/DatePrototype.cpp:
- (JSC::dateProtoFuncSetTime):
- (JSC::setNewValueFromTimeArgs):
- (JSC::setNewValueFromDateArgs):
- (JSC::dateProtoFuncSetYear):
- * runtime/ErrorConstructor.cpp:
- (JSC::ErrorConstructor::ErrorConstructor):
- * runtime/ErrorInstance.cpp:
- (JSC::ErrorInstance::ErrorInstance):
- * runtime/ErrorPrototype.cpp:
- (JSC::ErrorPrototype::ErrorPrototype):
- * runtime/FunctionConstructor.cpp:
- (JSC::FunctionConstructor::FunctionConstructor):
- * runtime/FunctionPrototype.cpp:
- (JSC::FunctionPrototype::FunctionPrototype):
- * runtime/GetterSetter.cpp:
- (JSC::GetterSetter::markChildren):
- * runtime/GetterSetter.h:
- (JSC::GetterSetter::GetterSetter):
- (JSC::GetterSetter::getter):
- (JSC::GetterSetter::setGetter):
- (JSC::GetterSetter::setter):
- (JSC::GetterSetter::setSetter):
- * runtime/GlobalEvalFunction.cpp:
- (JSC::GlobalEvalFunction::GlobalEvalFunction):
- (JSC::GlobalEvalFunction::markChildren):
- * runtime/GlobalEvalFunction.h:
- (JSC::GlobalEvalFunction::cachedGlobalObject):
- * runtime/Heap.cpp:
- (JSC::Heap::markProtectedObjects):
- (JSC::Heap::markTempSortVectors):
- (JSC::Heap::markRoots):
- * runtime/InternalFunction.cpp:
- (JSC::InternalFunction::InternalFunction):
- * runtime/JSAPIValueWrapper.h:
- (JSC::JSAPIValueWrapper::value):
- (JSC::JSAPIValueWrapper::JSAPIValueWrapper):
- * runtime/JSActivation.cpp:
- (JSC::JSActivation::put):
- * runtime/JSArray.cpp:
- (JSC::JSArray::JSArray):
- (JSC::JSArray::getOwnPropertySlot):
- (JSC::JSArray::getOwnPropertyDescriptor):
- (JSC::JSArray::put):
- (JSC::JSArray::putSlowCase):
- (JSC::JSArray::deleteProperty):
- (JSC::JSArray::increaseVectorLength):
- (JSC::JSArray::setLength):
- (JSC::JSArray::pop):
- (JSC::JSArray::push):
- (JSC::JSArray::unshiftCount):
- (JSC::JSArray::sort):
- (JSC::JSArray::fillArgList):
- (JSC::JSArray::copyToRegisters):
- (JSC::JSArray::compactForSorting):
- * runtime/JSArray.h:
- (JSC::JSArray::getIndex):
- (JSC::JSArray::setIndex):
- (JSC::JSArray::uncheckedSetIndex):
- (JSC::JSArray::markChildrenDirect):
- * runtime/JSByteArray.cpp:
- (JSC::JSByteArray::JSByteArray):
- * runtime/JSCell.h:
- (JSC::JSCell::MarkStack::append):
- (JSC::JSCell::MarkStack::appendCell):
- * runtime/JSFunction.cpp:
- (JSC::JSFunction::JSFunction):
- (JSC::JSFunction::getOwnPropertySlot):
- * runtime/JSGlobalObject.cpp:
- (JSC::markIfNeeded):
- (JSC::JSGlobalObject::reset):
- (JSC::JSGlobalObject::resetPrototype):
- (JSC::JSGlobalObject::markChildren):
- * runtime/JSGlobalObject.h:
- (JSC::JSGlobalObject::JSGlobalObjectData::JSGlobalObjectData):
- (JSC::JSGlobalObject::regExpConstructor):
- (JSC::JSGlobalObject::errorConstructor):
- (JSC::JSGlobalObject::evalErrorConstructor):
- (JSC::JSGlobalObject::rangeErrorConstructor):
- (JSC::JSGlobalObject::referenceErrorConstructor):
- (JSC::JSGlobalObject::syntaxErrorConstructor):
- (JSC::JSGlobalObject::typeErrorConstructor):
- (JSC::JSGlobalObject::URIErrorConstructor):
- (JSC::JSGlobalObject::evalFunction):
- (JSC::JSGlobalObject::objectPrototype):
- (JSC::JSGlobalObject::functionPrototype):
- (JSC::JSGlobalObject::arrayPrototype):
- (JSC::JSGlobalObject::booleanPrototype):
- (JSC::JSGlobalObject::stringPrototype):
- (JSC::JSGlobalObject::numberPrototype):
- (JSC::JSGlobalObject::datePrototype):
- (JSC::JSGlobalObject::regExpPrototype):
- (JSC::JSGlobalObject::methodCallDummy):
- (JSC::constructArray):
- * runtime/JSONObject.cpp:
- (JSC::Stringifier::Holder::object):
- (JSC::Stringifier::Holder::objectSlot):
- (JSC::Stringifier::markAggregate):
- (JSC::Stringifier::stringify):
- (JSC::Stringifier::Holder::appendNextProperty):
- (JSC::Walker::callReviver):
- (JSC::Walker::walk):
- * runtime/JSObject.cpp:
- (JSC::JSObject::defineGetter):
- (JSC::JSObject::defineSetter):
- (JSC::JSObject::removeDirect):
- (JSC::JSObject::putDirectFunction):
- (JSC::JSObject::putDirectFunctionWithoutTransition):
- (JSC::putDescriptor):
- (JSC::JSObject::defineOwnProperty):
- * runtime/JSObject.h:
- (JSC::JSObject::putDirectOffset):
- (JSC::JSObject::putUndefinedAtDirectOffset):
- (JSC::JSObject::flattenDictionaryObject):
- (JSC::JSObject::putDirectInternal):
- (JSC::JSObject::putDirect):
- (JSC::JSObject::putDirectFunction):
- (JSC::JSObject::putDirectWithoutTransition):
- (JSC::JSObject::putDirectFunctionWithoutTransition):
- (JSC::JSValue::putDirect):
- (JSC::JSObject::allocatePropertyStorageInline):
- (JSC::JSObject::markChildrenDirect):
- * runtime/JSStaticScopeObject.cpp:
- (JSC::JSStaticScopeObject::markChildren):
- * runtime/JSString.cpp:
- (JSC::StringObject::create):
- * runtime/JSValue.h:
- * runtime/JSWrapperObject.cpp:
- (JSC::JSWrapperObject::markChildren):
- * runtime/JSWrapperObject.h:
- (JSC::JSWrapperObject::internalValue):
- (JSC::JSWrapperObject::setInternalValue):
- * runtime/LiteralParser.cpp:
- (JSC::LiteralParser::parse):
- * runtime/Lookup.cpp:
- (JSC::setUpStaticFunctionSlot):
- * runtime/Lookup.h:
- (JSC::lookupPut):
- * runtime/MarkStack.h:
- * runtime/MathObject.cpp:
- (JSC::MathObject::MathObject):
- * runtime/NativeErrorConstructor.cpp:
- (JSC::NativeErrorConstructor::NativeErrorConstructor):
- * runtime/NativeErrorPrototype.cpp:
- (JSC::NativeErrorPrototype::NativeErrorPrototype):
- * runtime/NumberConstructor.cpp:
- (JSC::NumberConstructor::NumberConstructor):
- (JSC::constructWithNumberConstructor):
- * runtime/NumberObject.cpp:
- (JSC::constructNumber):
- * runtime/NumberPrototype.cpp:
- (JSC::NumberPrototype::NumberPrototype):
- * runtime/ObjectConstructor.cpp:
- (JSC::ObjectConstructor::ObjectConstructor):
- (JSC::objectConstructorGetOwnPropertyDescriptor):
- * runtime/Operations.h:
- (JSC::normalizePrototypeChain):
- (JSC::resolveBase):
- * runtime/PrototypeFunction.cpp:
- (JSC::PrototypeFunction::PrototypeFunction):
- * runtime/PutPropertySlot.h:
- (JSC::PutPropertySlot::setExistingProperty):
- (JSC::PutPropertySlot::setNewProperty):
- (JSC::PutPropertySlot::base):
- * runtime/RegExpConstructor.cpp:
- (JSC::RegExpConstructor::RegExpConstructor):
- * runtime/ScopeChain.cpp:
- (JSC::ScopeChainNode::print):
- * runtime/ScopeChain.h:
- (JSC::ScopeChainNode::~ScopeChainNode):
- (JSC::ScopeChainIterator::operator*):
- (JSC::ScopeChainIterator::operator->):
- (JSC::ScopeChain::top):
- * runtime/ScopeChainMark.h:
- (JSC::ScopeChain::markAggregate):
- * runtime/SmallStrings.cpp:
- (JSC::isMarked):
- (JSC::SmallStrings::markChildren):
- * runtime/SmallStrings.h:
- (JSC::SmallStrings::emptyString):
- (JSC::SmallStrings::singleCharacterString):
- (JSC::SmallStrings::singleCharacterStrings):
- * runtime/StringConstructor.cpp:
- (JSC::StringConstructor::StringConstructor):
- * runtime/StringObject.cpp:
- (JSC::StringObject::StringObject):
- * runtime/StringObject.h:
- * runtime/StringPrototype.cpp:
- (JSC::StringPrototype::StringPrototype):
- * runtime/Structure.cpp:
- (JSC::Structure::flattenDictionaryStructure):
- * runtime/Structure.h:
- (JSC::Structure::storedPrototypeSlot):
- * runtime/WeakGCMap.h:
- (JSC::WeakGCMap::uncheckedGet):
- (JSC::WeakGCMap::uncheckedGetSlot):
- (JSC::::get):
- (JSC::::take):
- (JSC::::set):
- (JSC::::uncheckedRemove):
- * runtime/WriteBarrier.h: Added.
- (JSC::DeprecatedPtr::DeprecatedPtr):
- (JSC::DeprecatedPtr::get):
- (JSC::DeprecatedPtr::operator*):
- (JSC::DeprecatedPtr::operator->):
- (JSC::DeprecatedPtr::slot):
- (JSC::DeprecatedPtr::operator UnspecifiedBoolType*):
- (JSC::DeprecatedPtr::operator!):
- (JSC::WriteBarrierBase::set):
- (JSC::WriteBarrierBase::get):
- (JSC::WriteBarrierBase::operator*):
- (JSC::WriteBarrierBase::operator->):
- (JSC::WriteBarrierBase::slot):
- (JSC::WriteBarrierBase::operator UnspecifiedBoolType*):
- (JSC::WriteBarrierBase::operator!):
- (JSC::WriteBarrier::WriteBarrier):
- (JSC::operator==):
- 2011-01-28 Adam Roben <aroben@apple.com>
- Chromium build fix after r76967
- * wtf/ThreadingPrimitives.h: Use OS(WINDOWS) instead of PLATFORM(WIN), to match other
- similar macros in this file.
- 2011-01-28 Michael Saboff <msaboff@apple.com>
- Potentially Unsafe HashSet of RuntimeObject* in RootObject definition
- https://bugs.webkit.org/show_bug.cgi?id=53271
- Reapplying this this change. No change from prior patch in
- JavaScriptCore.
- Added new isValid() methods to check if a contained object in
- a WeakGCMap is valid when using an unchecked iterator.
- * runtime/WeakGCMap.h:
- (JSC::WeakGCMap::isValid):
- 2011-01-27 Adam Roben <aroben@apple.com>
- Extract code to convert a WTF absolute time to a Win32 wait interval into a separate
- function
- Fixes <http://webkit.org/b/53208> <rdar://problem/8922490> BinarySemaphore should wrap a
- Win32 event
- Reviewed by Dave Hyatt.
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: Export the new function.
- * wtf/ThreadingPrimitives.h: Declare the new function.
- * wtf/ThreadingWin.cpp:
- (WTF::ThreadCondition::timedWait): Moved code to convert the absolute time to a wait
- interval from here...
- (WTF::absoluteTimeToWaitTimeoutInterval): ...to here.
- 2011-01-28 Sam Weinig <sam@webkit.org>
- Reviewed by Maciej Stachowiak.
- Add basic rubber banding support
- <rdar://problem/8219429>
- https://bugs.webkit.org/show_bug.cgi?id=53277
- * wtf/Platform.h: Add ENABLE for rubber banding.
- 2011-01-28 Sheriff Bot <webkit.review.bot@gmail.com>
- Unreviewed, rolling out r76893.
- http://trac.webkit.org/changeset/76893
- https://bugs.webkit.org/show_bug.cgi?id=53287
- It made some tests crash on GTK and Qt debug bots (Requested
- by Ossy on #webkit).
- * runtime/WeakGCMap.h:
- 2011-01-27 Adam Barth <abarth@webkit.org>
- Reviewed by Eric Seidel.
- Add WTFString method to compare equality with Vector<UChar>
- https://bugs.webkit.org/show_bug.cgi?id=53266
- I'm planning to use this method in the new XSS filter implementation,
- but it seems generally useful.
- * wtf/text/StringImpl.h:
- (WTF::equalIgnoringNullity):
- * wtf/text/WTFString.h:
- (WTF::equalIgnoringNullity):
- 2011-01-27 Michael Saboff <msaboff@apple.com>
- Potentially Unsafe HashSet of RuntimeObject* in RootObject definition
- https://bugs.webkit.org/show_bug.cgi?id=53271
- Added new isValid() methods to check if a contained object in
- a WeakGCMap is valid when using an unchecked iterator.
- * runtime/WeakGCMap.h:
- (JSC::WeakGCMap::isValid):
- 2011-01-26 Sam Weinig <sam@webkit.org>
- Reviewed by Maciej Stachowiak.
- Add events to represent the start/end of a gesture scroll
- https://bugs.webkit.org/show_bug.cgi?id=53215
- * wtf/Platform.h: Add ENABLE for gesture events.
- 2011-01-26 Yael Aharon <yael.aharon@nokia.com>
- Reviewed by Laszlo Gombos.
- [Qt][Symbian] Fix --minimal build
- https://bugs.webkit.org/show_bug.cgi?id=52839
- Move definition of USE_SYSTEM_MALLOC out of pri file.
- Put it in platform.h instead.
- * wtf/Platform.h:
- * wtf/TCSystemAlloc.cpp:
- * wtf/wtf.pri:
- 2011-01-26 Patrick Gansterer <paroga@webkit.org>
- Reviewed by Andreas Kling.
- [WINCE] Add JIT support to build system
- https://bugs.webkit.org/show_bug.cgi?id=53079
- * CMakeListsWinCE.txt:
- 2011-01-25 Adam Roben <aroben@apple.com>
- Windows Production build fix
- Reviewed by Steve Falkenburg.
- * JavaScriptCore.vcproj/JavaScriptCore.make: Set BUILDSTYLE to Release_PGO at the very start
- of the file so that ConfigurationBuildDir takes that into account. Also set it the right way
- (by redefining the macro) rather than the wrong way (by modifying the environment variable).
- 2011-01-25 Steve Falkenburg <sfalken@apple.com>
- Rubber-stamped by Adam Roben.
- Windows production build fix.
- Use correct environment variable escaping
- * JavaScriptCore.vcproj/JavaScriptCore.make:
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreGenerated.make:
- 2011-01-25 Oliver Hunt <oliver@apple.com>
- Reviewed by Gavin Barraclough.
- JSON.stringify processing time exponentially grows with size of object
- https://bugs.webkit.org/show_bug.cgi?id=51922
- Remove last use of reserveCapacity from JSON stringification, as it results
- in appalling append behaviour when there are a large number of property names
- and nothing else.
- * runtime/JSONObject.cpp:
- (JSC::Stringifier::appendQuotedString):
- 2011-01-25 Antti Koivisto <antti@apple.com>
- Not reviewed.
-
- Try to fix windows build.
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
- 2011-01-25 Antti Koivisto <antti@apple.com>
- Reviewed by Oliver Hunt.
- REGRESSION: Leak in JSParser::Scope::copyCapturedVariablesToVector()
- https://bugs.webkit.org/show_bug.cgi?id=53061
-
- Cache did not know about the subclass so failed to fully delete the items.
- Got rid of the subclass and moved the classes to separate files.
- * CMakeLists.txt:
- * GNUmakefile.am:
- * JavaScriptCore.exp:
- * JavaScriptCore.gypi:
- * JavaScriptCore.pro:
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
- * JavaScriptCore.xcodeproj/project.pbxproj:
- * parser/JSParser.cpp:
- (JSC::JSParser::Scope::saveFunctionInfo):
- (JSC::JSParser::Scope::restoreFunctionInfo):
- (JSC::JSParser::findCachedFunctionInfo):
- (JSC::JSParser::parseFunctionInfo):
- * parser/SourceProvider.h:
- * parser/SourceProviderCache.cpp: Added.
- (JSC::SourceProviderCache::~SourceProviderCache):
- (JSC::SourceProviderCache::byteSize):
- * parser/SourceProviderCache.h: Added.
- (JSC::SourceProviderCache::SourceProviderCache):
- (JSC::SourceProviderCache::add):
- (JSC::SourceProviderCache::get):
- * parser/SourceProviderCacheItem.h: Added.
- (JSC::SourceProviderCacheItem::SourceProviderCacheItem):
- (JSC::SourceProviderCacheItem::approximateByteSize):
- (JSC::SourceProviderCacheItem::closeBraceToken):
- 2011-01-25 Marcilio Mendonca <mamendonca@rim.com>
- Reviewed by Darin Adler.
- Bug 53087: Refactoring: replaced a hanging "else" with a "return"
- statement
- https://bugs.webkit.org/show_bug.cgi?id=53087.
- Refactoring work: Replaced a hanging "else" within an #if PLATFORM(M
- with a "return" so that the code is more readable and less error pro
- (e.g., "else" doesn't use braces so adding extra lines to the else
- block won't have any effect; even worse, code still compiles
- successfully.
- * wtf/Assertions.cpp:
- 2011-01-24 Chris Marrin <cmarrin@apple.com>
- Reviewed by Eric Seidel.
- Change ENABLE_3D_CANVAS to ENABLE_WEBGL
- https://bugs.webkit.org/show_bug.cgi?id=53041
- * Configurations/FeatureDefines.xcconfig:
- 2011-01-25 Adam Roben <aroben@apple.com>
- Windows Production build fix
- * JavaScriptCore.vcproj/JavaScriptCore.make: Added a missing "set".
- 2011-01-25 Patrick Gansterer <paroga@webkit.org>
- Reviewed by Eric Seidel.
- Add missing defines for COMPILER(RVCT) && CPU(ARM_THUMB2)
- https://bugs.webkit.org/show_bug.cgi?id=52949
- * jit/JITStubs.cpp:
- 2011-01-24 Adam Roben <aroben@apple.com>
- Windows Production build fix
- * JavaScriptCore.vcproj/JavaScriptCore.make: Update for move of JavaScriptCore into Source.
- 2011-01-24 Peter Varga <pvarga@webkit.org>
- Reviewed by Oliver Hunt.
- Optimize regex patterns which contain empty alternatives
- https://bugs.webkit.org/show_bug.cgi?id=51395
- Eliminate the empty alternatives from the regex pattern and convert it to do
- the matching in an easier way.
- * yarr/YarrPattern.cpp:
- (JSC::Yarr::YarrPatternConstructor::atomParenthesesEnd):
- 2011-01-24 Andras Becsi <abecsi@webkit.org>
- Reviewed by Csaba Osztrogonác.
- [Qt] Move project files into Source
- https://bugs.webkit.org/show_bug.cgi?id=52891
- * JavaScriptCore.pri:
- * JavaScriptCore.pro:
- * jsc.pro:
- 2011-01-23 Mark Rowe <mrowe@apple.com>
- Follow-up to r76477.
- Fix the scripts that detect problematic code such as static initializers
- and destructors, weak vtables, inappropriate files in the framework wrappers,
- and public headers including private headers. These had all been broken
- since the projects were moved in to the Source directory as the paths to the
- scripts were not updated at that time.
- * JavaScriptCore.xcodeproj/project.pbxproj:
- 2011-01-23 Patrick Gansterer <paroga@webkit.org>
- Reviewed by Darin Adler.
- Use WTF::StringHasher in WebCore
- https://bugs.webkit.org/show_bug.cgi?id=52934
- Add an additional function to calculate the hash
- of data with a runtimedependent size.
- * wtf/StringHasher.h:
- (WTF::StringHasher::createBlobHash):
- 2011-01-23 Patrick Gansterer <paroga@webkit.org>
- Reviewed by David Kilzer.
- Fix comment in String::ascii()
- https://bugs.webkit.org/show_bug.cgi?id=52980
- * wtf/text/WTFString.cpp:
- (WTF::String::ascii):
- 2011-01-23 Patrick Gansterer <paroga@webkit.org>
- Reviewed by David Kilzer.
- Add String::containsOnlyLatin1()
- https://bugs.webkit.org/show_bug.cgi?id=52979
- * wtf/text/WTFString.h:
- (WTF::String::containsOnlyLatin1):
- (WTF::charactersAreAllLatin1):
- 2011-01-23 Patrick Gansterer <paroga@webkit.org>
- Reviewed by Oliver Hunt.
- Remove obsolete JSVALUE32 code
- https://bugs.webkit.org/show_bug.cgi?id=52948
- r70111 removed support for JSVALUE32.
- ARM, MIPS and X86 support JSVALUE32_64 only.
- * jit/JITStubs.cpp:
- 2011-01-22 Geoffrey Garen <ggaren@apple.com>
- Reviewed by Dan Bernstein.
- ASSERT running run-webkit-tests --threaded.
- https://bugs.webkit.org/show_bug.cgi?id=52971
-
- SunSpider and v8 report no change.
- * runtime/ConservativeSet.cpp:
- (JSC::ConservativeSet::grow):
- (JSC::ConservativeSet::add):
- * runtime/ConservativeSet.h: Tweaked the inline capacity to 128, and
- the growth policy to 2X, to make SunSpider and v8 happy.
- (JSC::ConservativeSet::ConservativeSet):
- (JSC::ConservativeSet::~ConservativeSet):
- (JSC::ConservativeSet::mark): Use OSAllocator directly, instead of malloc.
- Malloc is forbidden during a multi-threaded mark phase because it can
- cause deadlock.
- 2011-01-22 Geoffrey Garen <ggaren@apple.com>
- Reviewed by Geoffrey Garen.
- Rubber-stamped by Maciej Stachowiak.
- A few of Maciej's review suggestions for my last patch.
- https://bugs.webkit.org/show_bug.cgi?id=52946
- SunSpider reports no change.
- * Android.mk:
- * CMakeLists.txt:
- * GNUmakefile.am:
- * JavaScriptCore.gypi:
- * JavaScriptCore.pro:
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
- * JavaScriptCore.xcodeproj/project.pbxproj: Updated build systems.
- * runtime/ConservativeSet.cpp: Added.
- (JSC::isPointerAligned):
- (JSC::ConservativeSet::add):
- * runtime/ConservativeSet.h: Added.
- (JSC::ConservativeSet::ConservativeSet):
- (JSC::ConservativeSet::mark): Split ConservativeSet out into its own
- file, and moved the conservative check into ConservativeSet::add, making
- ConservativeSet's responsibility clearer.
- * runtime/Heap.cpp:
- (JSC::Heap::markRoots):
- * runtime/MachineStackMarker.cpp:
- (JSC::MachineStackMarker::markCurrentThreadConservativelyInternal):
- (JSC::MachineStackMarker::markOtherThreadConservatively):
- * runtime/MachineStackMarker.h:
- * runtime/MarkStack.h: Updated for changes above.
- 2011-01-22 Patrick Gansterer <paroga@webkit.org>
- Unreviewed WinCE build fix for r76430.
- * runtime/MachineStackMarker.cpp:
- (JSC::swapIfBackwards):
- 2011-01-21 Geoffrey Garen <ggaren@apple.com>
- Reviewed by Beth Dakin.
- Reorganized MarkedSpace, making many of its functions private.
- * runtime/JSCell.h:
- (JSC::JSCell::Heap::heap):
- * runtime/MarkedSpace.h:
- (JSC::MarkedSpace::globalData):
- (JSC::MarkedSpace::heap):
- 2011-01-21 Geoffrey Garen <ggaren@apple.com>
- Try to fix build: moved helper function out of #ifdef.
- * runtime/MachineStackMarker.cpp:
- (JSC::swapIfBackwards):
- 2011-01-21 Geoffrey Garen <ggaren@apple.com>
- Rubber-stamped by Maciej Stachowiak.
- A few of Maciej's review suggestions for my last patch.
- https://bugs.webkit.org/show_bug.cgi?id=52946
- SunSpider reports no change.
- * runtime/MachineStackMarker.cpp:
- (JSC::swapIfBackwards): Added a helper function for handling platforms
- where the stack can grow in any direction.
- (JSC::MachineStackMarker::markCurrentThreadConservativelyInternal):
- (JSC::MachineStackMarker::markOtherThreadConservatively): Use the helper
- function.
- (JSC::isPointerAligned): Use "!" instead of "==0" because a robot told me to.
- (JSC::MachineStackMarker::markConservatively): Changed to use a more
- standard looping idiom, and to use the helper function above.
- * runtime/MarkedSpace.h:
- (JSC::MarkedSpace::isCellAligned): Use "!" instead of "==0" because a robot told me to.
- 2011-01-21 Geoffrey Garen <ggaren@apple.com>
- Reviewed by Maciej Stachowiak.
- Cleaned up some conservative marking code.
- https://bugs.webkit.org/show_bug.cgi?id=52946
-
- SunSpider reports no change.
- * interpreter/RegisterFile.h: No need for a special marking function,
- since we already expose a start() and end().
- * runtime/Heap.cpp:
- (JSC::Heap::registerFile):
- (JSC::Heap::markRoots):
- * runtime/Heap.h:
- (JSC::Heap::contains): Migrated markConservatively() to the machine stack
- marker class. Now, Heap just provides a contains() function, which the
- machine stack marker uses for checking whether a pointer points into the heap.
- * runtime/MachineStackMarker.cpp:
- (JSC::MachineStackMarker::markCurrentThreadConservativelyInternal):
- (JSC::MachineStackMarker::markOtherThreadConservatively):
- (JSC::isPointerAligned):
- (JSC::MachineStackMarker::markConservatively):
- * runtime/MachineStackMarker.h: Move the conservative marking code here.
- * runtime/MarkStack.h:
- (JSC::ConservativeSet::add):
- (JSC::ConservativeSet::mark): Changed to using a vector instead of hash
- set. Vector seems to be a bit faster, and it generates smaller code.
- * runtime/MarkedSpace.cpp:
- (JSC::MarkedSpace::containsSlowCase):
- * runtime/MarkedSpace.h:
- (JSC::MarkedSpace::isCellAligned):
- (JSC::MarkedSpace::isPossibleCell):
- (JSC::MarkedSpace::contains): Kept the code for determining whether a
- pointer pointed into marked space, and moved the code for marking
- a set of conservative pointers into the machine stack marker.
- * wtf/HashSet.h:
- (WTF::::add): Added two missing inlines that I noticed while testing
- vector vs hash set.
- 2011-01-21 Mark Rowe <mrowe@apple.com>
- Reviewed by Sam Weinig.
- Work around a Clang bug <rdar://problem/8876150> that leads to it incorrectly emitting an access
- control warning when a client tries to use operator bool exposed above via "using PageBlock::operator bool".
- * wtf/PageAllocation.h:
- (WTF::PageAllocation::operator bool):
- * wtf/PageReservation.h:
- (WTF::PageReservation::operator bool):
- 2011-01-21 Michael Saboff <msaboff@apple.com>
- Reviewed by Oliver Hunt.
- [RegexFuzz] Hang with forward assertion
- https://bugs.webkit.org/show_bug.cgi?id=52825
- <rdar://problem/8894332>
- The backtrackTo label from the first term in a list of terms is
- being overwritten by processing of subsequent terms. Changed
- copyBacktrackToLabel() to check for an existing bcaktrackTo label
- before copying and renamed it to propagateBacktrackToLabel() since
- it no longer copies.
- * yarr/YarrJIT.cpp:
- (JSC::Yarr::YarrGenerator::BacktrackDestination::propagateBacktrackToLabel):
- (JSC::Yarr::YarrGenerator::generateParenthesesSingle):
- 2011-01-21 Geoffrey Garen <ggaren@apple.com>
- Reviewed by Sam Weinig.
- Moved the mark stack from global data to the heap, since it pertains
- to the heap, and not the virtual machine as a whole.
- https://bugs.webkit.org/show_bug.cgi?id=52930
-
- SunSpider reports no change.
- * runtime/Heap.cpp:
- (JSC::Heap::Heap):
- (JSC::Heap::markRoots):
- * runtime/Heap.h:
- * runtime/JSGlobalData.cpp:
- (JSC::JSGlobalData::JSGlobalData):
- * runtime/JSGlobalData.h:
- 2011-01-21 Peter Gal <galpeter@inf.u-szeged.hu>
- Reviewed by Darin Adler.
- REGRESSION(r76177): All JavaScriptCore tests fail on ARM
- https://bugs.webkit.org/show_bug.cgi?id=52814
- Get the approximateByteSize value before releasing the OwnPtr.
- * parser/JSParser.cpp:
- (JSC::JSParser::parseFunctionInfo):
- 2011-01-21 Xan Lopez <xlopez@igalia.com>
- Reviewed by Martin Robinson.
- Remove unnecessary <stdio.h> include
- https://bugs.webkit.org/show_bug.cgi?id=52884
- * jit/JIT.cpp: remove unnecessary include.
- 2011-01-20 Ryosuke Niwa <rniwa@webkit.org>
- Reviewed by Maciej Stachowiak.
- Added OwnPtrCommon.h because OwnArrayPtr::set calls deleteOwnedPtr.
- * wtf/OwnArrayPtr.h:
- 2011-01-20 Patrick Gansterer <paroga@webkit.org>
- Reviewed by Oliver Hunt.
- [WINCE] Remove obsolete JSVALUE32 code
- https://bugs.webkit.org/show_bug.cgi?id=52450
- Remove the "offset hack" in create_jit_stubs, since we
- only support JSVALUE32_64 in the meantime.
- * create_jit_stubs: Removed offset argument
- * jit/JITStubs.cpp:
- 2011-01-20 Geoffrey Garen <ggaren@apple.com>
- Reviewed by Oliver Hunt.
- When marking conservatively, guard against reviving dead objects.
- https://bugs.webkit.org/show_bug.cgi?id=52840
-
- SunSpider and v8 say no change.
- * interpreter/RegisterFile.h:
- (JSC::RegisterFile::markCallFrames): Updated to use the ConservativeSet API.
- * runtime/Heap.cpp:
- (JSC::Heap::recordExtraCost): No need to guard against conservative
- marking reviving dead objects anymore, since the conservative marking
- mechanism guards against this now.
- (JSC::Heap::markConservatively):
- (JSC::Heap::markProtectedObjects):
- (JSC::Heap::markTempSortVectors): Don't drain the mark stack inside a
- marking function. We want to establish a separation of concerns between
- visiting roots and draining the mark stack.
- (JSC::Heap::markRoots): Gather the set of conservative references before
- clearning mark bits, because conservative marking now uses the mark bits
- to determine if a reference is valid, and avoid reviving dead objects.
- (JSC::Heap::collectAllGarbage): No need to guard against conservative
- marking reviving dead objects anymore, since the conservative marking
- mechanism guards against this now.
- * runtime/Heap.h: Updated to use the ConservativeSet API.
- * runtime/MachineStackMarker.cpp:
- (JSC::MachineStackMarker::markCurrentThreadConservativelyInternal):
- (JSC::MachineStackMarker::markCurrentThreadConservatively):
- (JSC::MachineStackMarker::markOtherThreadConservatively):
- (JSC::MachineStackMarker::markMachineStackConservatively):
- * runtime/MachineStackMarker.h: Ditto.
- * runtime/MarkStack.h:
- (JSC::ConservativeSet::add):
- (JSC::ConservativeSet::mark): Added ConservativeSet, for gathering the
- set of conservative references. This is different from MarkStack, since
- we don't mark the set until it is completely gathered.
- * runtime/MarkedSpace.cpp:
- (JSC::MarkedSpace::freeBlock):
- (JSC::MarkedSpace::resizeBlocks):
- (JSC::MarkedSpace::markConservatively):
- * runtime/MarkedSpace.h: When marking conservatively, guard against
- reviving dead objects.
- 2011-01-20 Siddharth Mathur <siddharth.mathur@nokia.com>
- Reviewed by Geoffrey Garen.
- [Symbian] Fix StackBounds::initialize()
- https://bugs.webkit.org/show_bug.cgi?id=52842
- * wtf/StackBounds.cpp:
- (WTF::StackBounds::initialize): Use TThreadStackInfo.iLimit for stack limit
- 2011-01-20 Michael Saboff <msaboff@apple.com>
- Reviewed by Oliver Hunt.
- <rdar://problem/8890203> [RegexFuzz] Crash in generated code (52773)
- https://bugs.webkit.org/show_bug.cgi?id=52773
- Fixed case where an existing DataLabelPtr is overwritten. The
- replacing DataLabelPtr is now resolved immediately in
- linkDataLabelToBacktrackIfExists(). Cleanup - eliminated bool
- return value for the routine as it was never used.
- * yarr/YarrJIT.cpp:
- (JSC::Yarr::YarrGenerator::TermGenerationState::linkDataLabelToBacktrackIfExists):
- 2011-01-20 Andras Becsi <abecsi@webkit.org>
- Reviewed by Csaba Osztrogonác.
- [Qt][WK2] WebKit2 enabled build fails to link
- Work around undefined reference linking issues until the buildsystem gets redesigned.
- These issues first occured in minimal builds (see BUG 50519).
- * JavaScriptCore.pri: link as whole-archive for WebKit2 builds
- 2011-01-20 Zoltan Horvath <zoltan@webkit.org>
- Reviewed by Csaba Osztrogonác.
- Refactoring of the custom allocation framework
- https://bugs.webkit.org/show_bug.cgi?id=49897
- Inheriting from FastAllocBase can result in objects getting larger (bug #33896, #46589).
- The modification replaces Noncopyable and FastAllocBase classes and these inherits with their
- equivalent macro implementation at the necessary places.
- * wtf/FastAllocBase.h: Turn FastAllocBase's implementation into a macro.
- 2011-01-20 Mark Rowe <mrowe@apple.com>
- Reviewed by Maciej Stachowiak.
- Follow-up to r75766 / <rdar://problem/5469576>.
- We were failing to initialize the key, causing all sorts of unexpected behavior.
- * wtf/FastMalloc.cpp:
- (WTF::setThreadHeap):
- (WTF::TCMalloc_ThreadCache::GetThreadHeap):
- (WTF::TCMalloc_ThreadCache::InitTSD): Ensure that the key is initialized.
- 2011-01-18 Geoffrey Garen <ggaren@apple.com>
- Reviewed by Darin Adler.
- Rolled back in r76078, with crash fixed.
- https://bugs.webkit.org/show_bug.cgi?id=52668
-
- * runtime/JSGlobalObject.cpp:
- (JSC::JSGlobalObject::markChildren): Account for the fact that the global
- object moves its variables into and out of the register file. While out
- of the register file, the symbol table's size is not an accurate count
- for the size of the register array, since the BytecodeGenerator might
- be compiling, adding items to the symbol table.
-
- 2011-01-18 Darin Adler <darin@apple.com>
- Reviewed by Geoffrey Garen.
- Stack overflow when converting an Error object to string
- https://bugs.webkit.org/show_bug.cgi?id=46410
- * Android.mk: Added StringRecursionChecker.cpp and
- StringRecursionChecker.h.
- * CMakeLists.txt: Ditto.
- * GNUmakefile.am: Ditto.
- * JavaScriptCore.gypi: Ditto.
- * JavaScriptCore.pro: Ditto.
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj: Ditto.
- * JavaScriptCore.xcodeproj/project.pbxproj: Ditto.
- * runtime/ArrayPrototype.cpp:
- (JSC::arrayProtoFuncToString): Use StringRecursionChecker instead
- of the older hand-written code to do the same thing.
- (JSC::arrayProtoFuncToLocaleString): Ditto.
- (JSC::arrayProtoFuncJoin): Ditto.
- * runtime/ErrorPrototype.cpp:
- (JSC::errorProtoFuncToString): Use StringRecursionChecker.
- * runtime/JSGlobalData.h: Renamed arrayVisitedElements to
- stringRecursionCheckVisitedObjects.
- * runtime/RegExpPrototype.cpp:
- (JSC::regExpProtoFuncToString): Use StringRecursionChecker.
- * runtime/StringRecursionChecker.cpp: Added.
- * runtime/StringRecursionChecker.h: Added.
- 2011-01-19 Oliver Hunt <oliver@apple.com>
- Reviewed by Gavin Barraclough.
- Remove non-spec support for callable RegExp
- https://bugs.webkit.org/show_bug.cgi?id=28285
- Remove support for callable regexps. If it breaks sites we can
- just roll this out.
- * runtime/RegExpObject.cpp:
- * runtime/RegExpObject.h:
- * tests/mozilla/expected.html: update results.
- 2011-01-19 Antti Koivisto <antti@apple.com>
- Reviewed by Oliver Hunt.
- Cache function offsets to speed up javascript parsing
- https://bugs.webkit.org/show_bug.cgi?id=52622
-
- Use cache to save function offsets and some other info.
- This avoids quite a bit of work when reparsing the source.
- * parser/ASTBuilder.h:
- * parser/JSParser.cpp:
- (JSC::JSParser::CachedFunctionInfo::CachedFunctionInfo):
- (JSC::JSParser::CachedFunctionInfo::approximateByteSize):
- (JSC::JSParser::CachedFunctionInfo::closeBraceToken):
- (JSC::JSParser::Scope::copyCapturedVariablesToVector):
- (JSC::JSParser::Scope::saveFunctionInfo):
- (JSC::JSParser::Scope::restoreFunctionInfo):
- (JSC::JSParser::findCachedFunctionInfo):
- (JSC::JSParser::JSParser):
- (JSC::JSParser::parseProgram):
- (JSC::JSParser::parseFunctionInfo):
- * parser/Lexer.h:
- (JSC::Lexer::setOffset):
- (JSC::Lexer::setLineNumber):
- (JSC::Lexer::sourceProvider):
- * parser/SourceProvider.h:
- (JSC::SourceProviderCache::SourceProviderCache):
- (JSC::SourceProviderCache::~SourceProviderCache):
- (JSC::SourceProviderCache::byteSize):
- (JSC::SourceProviderCache::add):
- (JSC::SourceProviderCache::get):
- (JSC::SourceProvider::SourceProvider):
- (JSC::SourceProvider::~SourceProvider):
- (JSC::SourceProvider::cache):
- (JSC::SourceProvider::notifyCacheSizeChanged):
- (JSC::SourceProvider::cacheSizeChanged):
- * parser/SyntaxChecker.h:
- 2011-01-19 Mark Rowe <mrowe@apple.com>
- Reviewed by Darin Adler.
- Follow-up to r75766 / <rdar://problem/5469576>.
- * DerivedSources.make: Evaluate the SDKROOT variable correctly.
- 2011-01-19 Oliver Hunt <oliver@apple.com>
- Reviewed by Gavin Barraclough.
- [jsfunfuzz] Defining a function called __proto__ inside an eval triggers an assertion
- https://bugs.webkit.org/show_bug.cgi?id=52672
- Rather than coming up with a somewhat convoluted mechanism to ensure that
- developers can override the global objects prototype with a function named
- __proto__ and expect it to work, we just disallow it at the syntax level.
- * parser/JSParser.cpp:
- (JSC::JSParser::parseFunctionInfo):
- 2011-01-19 Michael Saboff <msaboff@apple.com>
- Reviewed by Darin Adler.
- <rdar://problem/8882994> Regression: Simple nested backtrack hangs
- https://bugs.webkit.org/show_bug.cgi?id=52675
- The changeset (r76076) for https://bugs.webkit.org/show_bug.cgi?id=52540
- broke simple backtracking in some cases. Reworked that change to
- link both jumps and labels.
- * yarr/YarrJIT.cpp:
- (JSC::Yarr::YarrGenerator::BacktrackDestination::hasBacktrackToLabel):
- (JSC::Yarr::YarrGenerator::TermGenerationState::propagateBacktrackingFrom):
- (JSC::Yarr::YarrGenerator::generateParenthesesSingle):
- 2011-01-19 Pavel Podivilov <podivilov@chromium.org>
- Reviewed by Yury Semikhatsky.
- Web Inspector: [JSC] scripts have incorrect starting line (always 1).
- https://bugs.webkit.org/show_bug.cgi?id=52721
- * debugger/Debugger.cpp:
- (JSC::Debugger::recompileAllJSFunctions):
- * debugger/Debugger.h:
- * parser/Parser.h:
- (JSC::Parser::parse):
- * parser/SourceCode.h:
- (JSC::SourceCode::SourceCode):
- * parser/SourceProvider.h:
- (JSC::SourceProvider::startPosition):
- 2011-01-19 Csaba Osztrogonác <ossy@webkit.org>
- Reviewed by Laszlo Gombos and Tor Arne Vestbø.
- [Qt] Remove unnecessary "../Source" from paths
- after moving source files into Source is finished.
- * JavaScriptCore.pri:
- 2011-01-19 Benjamin Kalman <kalman@chromium.org>
- Reviewed by Darin Adler.
- Don't return void from void function String::split
- https://bugs.webkit.org/show_bug.cgi?id=52684
- * wtf/text/WTFString.cpp:
- (WTF::String::split):
- 2011-01-18 Kenneth Russell <kbr@google.com>
- Unreviewed, rolling out r76078.
- http://trac.webkit.org/changeset/76078
- https://bugs.webkit.org/show_bug.cgi?id=52668
- Caused crashes of fast/canvas/webgl/constants.html,
- fast/canvas/webgl/gl-enum-tests.html, and possibly other layout
- test crashes in Release mode. WebGL crashes were observed with
- "run-webkit-tests fast/canvas/webgl". It was necessary to run
- multiple tests to provoke the crash.
- * interpreter/RegisterFile.h:
- (JSC::RegisterFile::markGlobals):
- * runtime/JSActivation.cpp:
- (JSC::JSActivation::markChildren):
- * runtime/JSGlobalObject.cpp:
- (JSC::JSGlobalObject::markChildren):
- 2011-01-18 Oliver Hunt <oliver@apple.com>
- Reviewed by Gavin Barraclough.
- [jsfunfuzz] Assertion asking activation for arguments when arguments is overridden
- https://bugs.webkit.org/show_bug.cgi?id=52690
- Clean up code to retrieve arguments from activation and function objects.
- Remove the incorrect assertion from JSActivation's argumentsGetter.
- * interpreter/Interpreter.cpp:
- (JSC::Interpreter::retrieveArguments):
- * runtime/JSActivation.cpp:
- (JSC::JSActivation::argumentsGetter):
- 2011-01-18 Geoffrey Garen <ggaren@apple.com>
- Reviewed by Darin Adler.
- Removed RegisterFile::markGlobals because it was obtuse, and it
- unnecessarily relied on conservative marking.
- https://bugs.webkit.org/show_bug.cgi?id=52668
- * interpreter/RegisterFile.h: Removed markGlobals.
- * runtime/JSActivation.cpp:
- (JSC::JSActivation::markChildren): Added a comment explaning why some
- JSActivations don't always mark their registers arrays.
- * runtime/JSGlobalObject.cpp:
- (JSC::JSGlobalObject::markChildren): Instead of calling markGlobals, mark
- the registers array directly.
- 2011-01-18 Michael Saboff <msaboff@apple.com>
- Reviewed by Oliver Hunt.
- <rdar://problem/8875432> Regression: Some text-only e-mails cause hang beneath RegExp::match (52540)
- https://bugs.webkit.org/show_bug.cgi?id=52540
- https://bugs.webkit.org/show_bug.cgi?id=52662
- Directly use backtrack label with parentheses nested under a
- non-capturing parentheses. Also linked current parentheses
- tail code object for possible parens nested within a non-capturing
- parentheses.
- * yarr/YarrJIT.cpp:
- (JSC::Yarr::YarrGenerator::BacktrackDestination::linkBacktrackToLabel):
- (JSC::Yarr::YarrGenerator::generateParenthesesSingle):
- 2011-01-18 Daniel Bates <dbates@rim.com>
- Reviewed by Gavin Barraclough.
- Only use moving memory model assumption in ExecutableAllocator::intializePageSize() for Symbian OS
- https://bugs.webkit.org/show_bug.cgi?id=52517
- Patch by David Tapuska
- Currently, we compile code with respect to the Symbian-specific moving memory model
- assumption for all ARMv5 or lower architectures. Instead, we should only compile
- such code when building for Symbian OS on those architectures because this model
- is Symbian-specific.
- * jit/ExecutableAllocator.cpp:
- (JSC::ExecutableAllocator::intializePageSize):
- 2011-01-18 Dimitry Andric <dim@freebsd.org>
- Reviewed by Andreas Kling.
- Fix linking JavaScriptCore on FreeBSD/amd64
- https://bugs.webkit.org/show_bug.cgi?id=52591
- Linking of JavaScriptCore on FreeBSD/amd64 fails, for the same reason as
- in bug 28422: cti_vm_throw needs a "@plt" suffix, otherwise the linker
- complains about the relocation type.
- * jit/JITStubs.cpp: use @plt suffix on x86_64 platforms, for both Linux
- and FreeBSD.
- 2011-01-18 Oliver Hunt <oliver@apple.com>
- Reviewed by Antti Koivisto.
- [jsfunfuzz] Assertion in codegen for array of NaN constants
- https://bugs.webkit.org/show_bug.cgi?id=52643
- Don't cache NaN literals in the code generator, as NaN doesn't compare
- as equal to itself it causes problems when rehashing the number cache.
- * bytecompiler/BytecodeGenerator.cpp:
- (JSC::BytecodeGenerator::emitLoad):
- 2011-01-17 Jarred Nicholls <jarred@sencha.com>
- Reviewed by Csaba Osztrogonác.
- REGRESSION(r75709): Return value of fscanf() shouldn't be ignored.
- https://bugs.webkit.org/show_bug.cgi?id=52585
-
- gcc 4.4.4+ has warn_unused_value attribute on fscanf, so we should check
- the return value to get around the gcc warning
- * jit/ExecutableAllocatorFixedVMPool.cpp:
- (JSC::maybeModifyVMPoolSize):
- 2011-01-17 Michael Saboff <msaboff@apple.com>
- Reviewed by Oliver Hunt.
- [regexfuzz] Crash running regex with lookahead
- https://bugs.webkit.org/show_bug.cgi?id=52548
- Eliminated agressive chaining of backtracks. This code was overwriting
- already valid backtrack information.
- * yarr/YarrJIT.cpp:
- (JSC::Yarr::YarrGenerator::ParenthesesTail::processBacktracks):
- 2011-01-17 Tony Gentilcore <tonyg@chromium.org>
- Reviewed by Alexey Proskuryakov.
- Fix some headers with missing or misspelled #ifndef guards
- https://bugs.webkit.org/show_bug.cgi?id=52545
- * wtf/RefPtrHashMap.h:
- 2011-01-17 Dan Bernstein <mitz@apple.com>
- Rubber-stamped by Mark Rowe.
- Update xcodeproj svn:ignore to include xcuserdata.
- * JavaScriptCore.xcodeproj: Modified property svn:ignore.
- 2011-01-16 Adam Barth <abarth@webkit.org>
- Rubber-stamped by Eric Seidel.
- Move WebKit into Source
- https://bugs.webkit.org/show_bug.cgi?id=52530
- * JavaScriptCore.gyp/JavaScriptCore.gyp:
- 2011-01-16 Oliver Hunt <oliver@apple.com>
- Reviewed by Sam Weinig.
- [jsfunfuzz] Parser doesn't correctly validate for-loop syntax
- https://bugs.webkit.org/show_bug.cgi?id=52516
- Ensure that we always check for a semicolon after encountering
- multiple declarations in the initialiser portion of a for-loop.
- * parser/JSParser.cpp:
- (JSC::JSParser::parseForStatement):
- 2011-01-16 Oliver Hunt <oliver@apple.com>
- Reviewed by Geoffrey Garen.
- Strict mode restrictions on arguments and eval usage aren't complete
- https://bugs.webkit.org/show_bug.cgi?id=52528
- Fix a few bugs in strict mode where we incorrect allow mutation of
- arguments and eval in the parser.
- Alas the "optimisation" used by the syntax checker for validating
- binary and unary expressions was too aggressive: we do actually need
- a stack for operations and operands although it needn't be as complete
- as that used for the full AST builder.
- Also disallow assignment to arguments in all cases as allowing arguments
- to be assignable is always an error in strict mode, regardless of context.
- * parser/ASTBuilder.h:
- (JSC::ASTBuilder::BinaryExprContext::BinaryExprContext):
- (JSC::ASTBuilder::UnaryExprContext::UnaryExprContext):
- * parser/JSParser.cpp:
- (JSC::JSParser::parseAssignmentExpression):
- (JSC::JSParser::parseBinaryExpression):
- (JSC::JSParser::parseUnaryExpression):
- * parser/SyntaxChecker.h:
- (JSC::SyntaxChecker::BinaryExprContext::BinaryExprContext):
- (JSC::SyntaxChecker::BinaryExprContext::~BinaryExprContext):
- (JSC::SyntaxChecker::UnaryExprContext::UnaryExprContext):
- (JSC::SyntaxChecker::UnaryExprContext::~UnaryExprContext):
- (JSC::SyntaxChecker::appendBinaryExpressionInfo):
- (JSC::SyntaxChecker::operatorStackPop):
- 2011-01-15 Geoffrey Garen <ggaren@apple.com>
- Reviewed by Oliver Hunt.
- Rolled back in r75886.
- https://bugs.webkit.org/show_bug.cgi?id=52527
-
- r75886 broke the GTK Linux bot because Linux was -- quite surprisingly --
- set up to use the constants for embedded devices.
- * jit/ExecutableAllocatorFixedVMPool.cpp:
- (JSC::maybeModifyVMPoolSize): Separated Linux constants from embedded
- constants.
- 2011-01-15 Sheriff Bot <webkit.review.bot@gmail.com>
- Unreviewed, rolling out r75886.
- http://trac.webkit.org/changeset/75886
- https://bugs.webkit.org/show_bug.cgi?id=52526
- "Broke GTK+ 64bit" (Requested by xan_ on #webkit).
- * jit/ExecutableAllocatorFixedVMPool.cpp:
- 2011-01-15 Geoffrey Garen <ggaren@apple.com>
- Reviewed by Sam Weinig.
- <rdar://problem/8870429> Shrink the executable pool on embedded devices
- * jit/ExecutableAllocatorFixedVMPool.cpp: Dropped the pool size from 32MB
- to 16MB.
- 2011-01-15 Oliver Hunt <oliver@apple.com>
- Reviewed by Maciej Stachowiak.
- Incorrect behavior changing attributes of an accessor
- https://bugs.webkit.org/show_bug.cgi?id=52515
- defineProperty doesn't correctly handle changing attributes of an accessor
- property. This is because we don't pass the full descriptor to the
- putDescriptor helper function, which means we have insufficient information
- to do the right thing. Once that's passed the correct behavior is relatively
- simple to implement.
- * runtime/JSObject.cpp:
- (JSC::putDescriptor):
- (JSC::JSObject::defineOwnProperty):
- 2011-01-14 Oliver Hunt <oliver@apple.com>
- Reviewed by Maciej Stachowiak.
- [jsfunfuzz] Incorrect handling of consecutive duplicate labels
- https://bugs.webkit.org/show_bug.cgi?id=52505
- Compare StringImpl*'s instead of Identifier*'s when looking for duplicate
- labels.
- * parser/JSParser.cpp:
- (JSC::JSParser::parseExpressionOrLabelStatement):
- 2011-01-14 Simon Fraser <simon.fraser@apple.com>
- No review.
-
- Initialize m_operationInProgress after r75855.
- * runtime/Heap.cpp:
- (JSC::Heap::Heap):
- 2011-01-14 Geoffrey Garen <ggaren@apple.com>
- Reverted accidentally committed code from my last checkin.
- * runtime/Heap.cpp:
- (JSC::Heap::markRoots):
- 2011-01-14 Geoffrey Garen <ggaren@apple.com>
- Reviewed by Sam Weinig.
-
- Try to fix the GTK bot.
- * runtime/Heap.cpp:
- (JSC::Heap::Heap):
- (JSC::Heap::markRoots): Kids, remember to initialize your data members.
- Knowing is half the battle.
- 2011-01-14 Oliver Hunt <oliver@apple.com>
- Reviewed by Stephanie Lewis.
- [jsfunfuzz] We should be clearing the lexers temporary character buffers when switching to strict mode
- https://bugs.webkit.org/show_bug.cgi?id=52501
- Clear the temporary character buffers used for reading escaped characters and
- numbers.
- * parser/Lexer.h:
- (JSC::Lexer::setOffset):
- 2011-01-14 Geoffrey Garen <ggaren@apple.com>
- Try to fix non-Dtrace builds: #include Tracing.h instead of TracingDtrace.h.
- * runtime/Heap.cpp:
- 2011-01-13 Geoffrey Garen <ggaren@apple.com>
- Reviewed by Oliver Hunt.
- Split out a MarkedSpace strategy object from Heap.
- https://bugs.webkit.org/show_bug.cgi?id=52421
-
- SunSpider reports no change.
- * Android.mk:
- * CMakeLists.txt:
- * GNUmakefile.am:
- * JavaScriptCore.gypi:
- * JavaScriptCore.pro:
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
- * JavaScriptCore.xcodeproj/project.pbxproj: Updated our 7 build systems. Which is cool.
- * runtime/Heap.cpp:
- (JSC::Heap::Heap):
- (JSC::Heap::destroy):
- (JSC::Heap::recordExtraCost):
- (JSC::Heap::allocate):
- (JSC::Heap::markConservatively):
- (JSC::Heap::markRoots):
- (JSC::Heap::objectCount):
- (JSC::Heap::statistics):
- (JSC::Heap::size):
- (JSC::Heap::isBusy):
- (JSC::Heap::collectAllGarbage):
- (JSC::Heap::primaryHeapBegin):
- (JSC::Heap::primaryHeapEnd):
- * runtime/Heap.h:
- (JSC::Heap::globalData):
- (JSC::Heap::markedSpace):
- (JSC::Heap::isCellMarked):
- (JSC::Heap::checkMarkCell):
- (JSC::Heap::markCell): Moved all code pertaining to managing chunks of
- collector memory out of this class. Heap now just delegates to MarkedSpace.
- * runtime/JSCell.h:
- (JSC::JSCell::Heap::heap): Updated for MarkedSpace delegation.
- * runtime/JSValue.h: Moved the ValueStringPair typedef to help with #includes.
- * runtime/MarkedSpace.cpp: Copied from runtime/Heap.cpp.
- (JSC::MarkedSpace::MarkedSpace):
- (JSC::MarkedSpace::destroy):
- (JSC::MarkedSpace::allocateBlock):
- (JSC::MarkedSpace::freeBlock):
- (JSC::MarkedSpace::allocate):
- (JSC::MarkedSpace::resizeBlocks):
- (JSC::MarkedSpace::growBlocks):
- (JSC::MarkedSpace::shrinkBlocks):
- (JSC::MarkedSpace::markConservatively):
- (JSC::MarkedSpace::clearMarkBits):
- (JSC::MarkedSpace::markedCells):
- (JSC::MarkedSpace::sweep):
- (JSC::MarkedSpace::objectCount):
- (JSC::MarkedSpace::addToStatistics):
- (JSC::MarkedSpace::statistics):
- (JSC::MarkedSpace::size):
- (JSC::MarkedSpace::reset):
- (JSC::MarkedSpace::primaryHeapBegin):
- (JSC::MarkedSpace::primaryHeapEnd):
- * runtime/MarkedSpace.h: Copied from runtime/Heap.h.
- (JSC::MarkedSpace::globalData):
- (JSC::MarkedSpace::didShrink):
- (JSC::MarkedSpace::cellBlock):
- (JSC::MarkedSpace::cellOffset):
- (JSC::MarkedSpace::isCellMarked):
- (JSC::MarkedSpace::checkMarkCell):
- (JSC::MarkedSpace::markCell): Moved all code pertaining to managing chunks of
- collector memory into this class.
- * runtime/MemoryStatistics.cpp:
- (JSC::heapStatistics):
- * runtime/MemoryStatistics.h: Updated for MarkedSpace delegation.
- 2011-01-14 Oliver Hunt <oliver@apple.com>
- Reviewed by Gavin Barraclough.
- [jsfunfuzz] parser doesn't enforce continue restrictions correctly.
- https://bugs.webkit.org/show_bug.cgi?id=52493
- This patch reworks handling of break, continue and label statements
- to correctly handle all the valid and invalid cases. Previously certain
- errors would be missed by the parser in strict mode, but the bytecode
- generator needed to handle those cases for non-strict code so nothing
- failed, it simply became non-standard behaviour.
- Now that we treat break and continue errors as early faults in non-strict
- mode as well that safety net has been removed so the parser bugs result in
- crashes at codegen time.
- * parser/JSParser.cpp:
- (JSC::JSParser::ScopeLabelInfo::ScopeLabelInfo):
- (JSC::JSParser::next):
- (JSC::JSParser::nextTokenIsColon):
- (JSC::JSParser::continueIsValid):
- Continue is only valid in loops so we can't use breakIsValid()
- (JSC::JSParser::pushLabel):
- We now track whether the label is for a loop (and is therefore a
- valid target for continue.
- (JSC::JSParser::popLabel):
- (JSC::JSParser::getLabel):
- Replace hasLabel with getLabel so that we can validate the target
- when parsing continue statements.
- (JSC::JSParser::Scope::continueIsValid):
- (JSC::JSParser::Scope::pushLabel):
- (JSC::JSParser::Scope::getLabel):
- (JSC::JSParser::JSParser):
- (JSC::JSParser::parseBreakStatement):
- (JSC::JSParser::parseContinueStatement):
- (JSC::LabelInfo::LabelInfo):
- (JSC::JSParser::parseExpressionOrLabelStatement):
- Consecutive labels now get handled iteratively so that we can determine
- whether they're valid targets for continue.
- * parser/Lexer.cpp:
- (JSC::Lexer::nextTokenIsColon):
- * parser/Lexer.h:
- (JSC::Lexer::setOffset):
- 2011-01-14 Patrick Gansterer <paroga@webkit.org>
- Reviewed by Adam Roben.
- Use the Windows thread pool instead of an extra thread for FastMalloc scavenging
- https://bugs.webkit.org/show_bug.cgi?id=45186
- * wtf/FastMalloc.cpp:
- (WTF::TCMalloc_PageHeap::scheduleScavenger): Added missing this pointer to CreateTimerQueueTimer().
- 2011-01-14 Patrick Gansterer <paroga@webkit.org>
- Reviewed by Adam Roben.
- Use the Windows thread pool instead of an extra thread for FastMalloc scavenging
- https://bugs.webkit.org/show_bug.cgi?id=45186
- r75819 accidentally changed the initial state of the scavenge timer.
- * wtf/FastMalloc.cpp:
- (WTF::TCMalloc_PageHeap::initializeScavenger): Changed initial state of m_scavengingSuspended to true.
- 2011-01-14 Patrick Gansterer <paroga@webkit.org>
- Unreviewed Windows Release build fix.
- * wtf/FastMalloc.cpp:
- (WTF::TCMalloc_PageHeap::scavengerTimerFired):
- 2011-01-14 Patrick Gansterer <paroga@webkit.org>
- Unreviewed Windows Release build fix.
- * wtf/FastMalloc.cpp:
- (WTF::TCMalloc_PageHeap::scavengerTimerFired):
- 2011-01-14 Patrick Gansterer <paroga@webkit.org>
- Reviewed by Adam Roben.
- Use the Windows thread pool instead of an extra thread for FastMalloc scavenging
- https://bugs.webkit.org/show_bug.cgi?id=45186
- Use CreateTimerQueueTimer() to start periodicScavenge() and stop it with DeleteTimerQueueTimer().
- * wtf/FastMalloc.cpp:
- (WTF::TCMalloc_PageHeap::initializeScavenger):
- (WTF::TCMalloc_PageHeap::isScavengerSuspended):
- (WTF::TCMalloc_PageHeap::scheduleScavenger):
- (WTF::TCMalloc_PageHeap::rescheduleScavenger):
- (WTF::TCMalloc_PageHeap::suspendScavenger):
- (WTF::scavengerTimerFired):
- (WTF::TCMalloc_PageHeap::periodicScavenge):
- (WTF::TCMalloc_PageHeap::signalScavenger):
- 2011-01-14 Laszlo Gombos <laszlo.1.gombos@nokia.com>
- Reviewed by Kenneth Rohde Christiansen.
- Align import/export directives
- https://bugs.webkit.org/show_bug.cgi?id=52208
- * API/JSBase.h: Align import/export directives with
- WebKit2/Shared/API/c/WKBase.h
- 2011-01-14 Michael Saboff <msaboff@apple.com>
- Reviewed by Oliver Hunt.
- Incorrect backtracking for nested alternatives
- https://bugs.webkit.org/show_bug.cgi?id=52387
- In the process of propigating a datalabel it wasn't getting connected
- to a destination when the destination was an indirect jump. Added
- code to recognize a direct backtrack destination that was an indirect
- jump and added mechanism to associate DataLabelPtrs with indirect
- jump entries.
- Removed dead method
- BacktrackDestination::linkDataLabelToHereIfExists()
- * yarr/YarrJIT.cpp:
- (JSC::Yarr::YarrGenerator::IndirectJumpEntry::IndirectJumpEntry):
- (JSC::Yarr::YarrGenerator::IndirectJumpEntry::addDataLabel):
- (JSC::Yarr::YarrGenerator::GenerationState::addIndirectJumpEntry):
- (JSC::Yarr::YarrGenerator::GenerationState::emitIndirectJumpTable):
- Changes to link indirect jumps with DataLabelPtr's.
- (JSC::Yarr::YarrGenerator::BacktrackDestination::clearSubDataLabelPtr):
- (JSC::Yarr::YarrGenerator::TermGenerationState::linkDataLabelToBacktrackIfExists):
- Updated to handle immediate linking of indirect jumps to
- DataLabelPtr.
- (JSC::Yarr::YarrGenerator::generateParenthesesDisjunction): Changed to
- reflect updated linkDataLabelToBacktrackIfExists().
- 2011-01-14 Pavel Podivilov <podivilov@chromium.org>
- Reviewed by Yury Semikhatsky.
- Web Inspector: provide script column offset to frontend.
- https://bugs.webkit.org/show_bug.cgi?id=52377
- * parser/SourceCode.h:
- (JSC::SourceCode::SourceCode):
- (JSC::SourceCode::firstColumn):
- 2011-01-13 Darin Adler <darin@apple.com>
- Reviewed by Geoff Garen.
- <rdar://problem/5469576> Use __PTK_FRAMEWORK_JAVASCRIPTCORE_KEY0 if available.
- * DerivedSources.make: Create a header file, HeaderDetection.h, that tells
- us whether pthread_machdep.h is available.
- * wtf/FastMalloc.cpp: If __PTK_FRAMEWORK_JAVASCRIPTCORE_KEY0 is available, then
- don't do the pthread_getspecific_function_pointer trick.
- (WTF::setThreadHeap): Ditto, but set thread-specific data.
- (WTF::TCMalloc_ThreadCache::GetThreadHeap): Ditto, but get rather than set.
- 2011-01-13 Xan Lopez <xlopez@igalia.com>
- Reviewed by Gavin Barraclough.
- JIT requires VM overcommit (particularly on x86-64), Linux does not by default support this without swap?
- https://bugs.webkit.org/show_bug.cgi?id=42756
- The FixedVMPool Allocator does not work well on systems where
- allocating very large amounts of memory upfront is not reasonable,
- like Linux without overcommit enabled. As a workaround, on Linux,
- default to the values used in embedded environments (in the MB
- range), and only jump to the GB range if we detect at runtime that
- overcommit is enabled. Should fix crashes on Linux/x86_64 with
- less than 3 or 4GB of RAM.
- * jit/ExecutableAllocatorFixedVMPool.cpp:
- (JSC::FixedVMPoolAllocator::free): use new variables for VM pool
- size and coalesce limit.
- (JSC::ExecutableAllocator::isValid): swap the variables from
- embedded to generic values at runtime, on linux, if overcommit is
- enabled.
- (JSC::ExecutableAllocator::underMemoryPressure): use new variables
- for VM pool size and coalesce limit.
- 2011-01-12 Xan Lopez <xlopez@igalia.com>
- Reviewed by Martin Robinson.
- Add new Yarr.h header to the list file.
- * GNUmakefile.am: ditto.
- 2011-01-12 Martin Robinson <mrobinson@igalia.com>
- Missing Source/JavaScriptCore/assembler/MacroAssemblerARMv7.h in WebKitGtk tarball
- https://bugs.webkit.org/show_bug.cgi?id=52299
- * GNUmakefile.am: Fix the GTK+ build on ARMv7 by including missing source
- files in the source list.
- 2011-01-12 Peter Varga <pvarga@webkit.org>
- Reviewed by Gavin Barraclough.
- Add Yarr.h to YARR
- https://bugs.webkit.org/show_bug.cgi?id=51021
- Move other common constants and functions from YARR's different files
- to Yarr.h.
- Use Yarr.h header instead of including other YARR headers where it
- is possible.
- * JavaScriptCore.gypi:
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
- * JavaScriptCore.xcodeproj/project.pbxproj:
- * runtime/RegExp.cpp:
- * yarr/Yarr.h: Added.
- * yarr/YarrInterpreter.cpp:
- * yarr/YarrInterpreter.h:
- * yarr/YarrJIT.cpp:
- (JSC::Yarr::jitCompile):
- (JSC::Yarr::execute):
- * yarr/YarrJIT.h:
- * yarr/YarrParser.h:
- * yarr/YarrPattern.cpp:
- (JSC::Yarr::YarrPattern::compile):
- (JSC::Yarr::YarrPattern::YarrPattern):
- * yarr/YarrPattern.h:
- 2011-01-12 Sheriff Bot <webkit.review.bot@gmail.com>
- Unreviewed, rolling out r75595.
- http://trac.webkit.org/changeset/75595
- https://bugs.webkit.org/show_bug.cgi?id=52286
- It broke fast/regex/pcre-test-1.html (Requested by Ossy on
- #webkit).
- * JavaScriptCore.gypi:
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
- * JavaScriptCore.xcodeproj/project.pbxproj:
- * runtime/RegExp.cpp:
- * yarr/Yarr.h: Removed.
- * yarr/YarrInterpreter.cpp:
- * yarr/YarrInterpreter.h:
- * yarr/YarrJIT.cpp:
- (JSC::Yarr::jitCompile):
- * yarr/YarrJIT.h:
- (JSC::Yarr::execute):
- * yarr/YarrParser.h:
- * yarr/YarrPattern.cpp:
- (JSC::Yarr::compile):
- (JSC::Yarr::YarrPattern::YarrPattern):
- * yarr/YarrPattern.h:
- 2011-01-12 Peter Varga <pvarga@webkit.org>
- Reviewed by Gavin Barraclough.
- Add Yarr.h to YARR
- https://bugs.webkit.org/show_bug.cgi?id=51021
- Move other common constants and functions from YARR's different files
- to Yarr.h.
- Use Yarr.h header instead of including other YARR headers where it
- is possible.
- * JavaScriptCore.gypi:
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
- * JavaScriptCore.xcodeproj/project.pbxproj:
- * runtime/RegExp.cpp:
- * yarr/Yarr.h: Added.
- * yarr/YarrInterpreter.cpp:
- * yarr/YarrInterpreter.h:
- * yarr/YarrJIT.cpp:
- (JSC::Yarr::jitCompile):
- (JSC::Yarr::execute):
- * yarr/YarrJIT.h:
- * yarr/YarrParser.h:
- * yarr/YarrPattern.cpp:
- (JSC::Yarr::YarrPattern::compile):
- (JSC::Yarr::YarrPattern::YarrPattern):
- * yarr/YarrPattern.h:
- 2011-01-11 Michael Saboff <msaboff@apple.com>
- Reviewed by Geoffrey Garen.
- Missing call to popTempSortVector() for exception case in JSArray::sort.
- https://bugs.webkit.org/show_bug.cgi?id=50718
- Fix to patch of 50718 that added pushTempSortVector() and
- popTempSortVector() to JSArray::sort() to mark elements during sort.
- Need to add popTempSortVector() for the return case if toString()
- had an exception.
- * runtime/JSArray.cpp:
- (JSC::JSArray::sort): Added popTempSortVector()
- 2011-01-11 Xan Lopez <xlopez@igalia.com>
- Reviewed by Darin Adler.
- Microoptimization in ~JSString
- https://bugs.webkit.org/show_bug.cgi?id=52222
- The case where m_fibers is 0 seems to be the most common one
- (almost 1/2 of the time, followed at some distance by m_fibers = 1
- in 1/4 of the cases in a typical SunSpider execution). We can save
- one comparison in this common case by doing a bit of refactoring
- in the JSString destructor; overall a 0.3% progression, but only
- the string tests show improvement.
- * runtime/JSString.h:
- (JSC::RopeBuilder::~JSString):
- 2011-01-10 Michael Saboff <msaboff@apple.com>
- Reviewed by Geoffrey Garen.
- ASSERTION Failure in JSC::binaryChop
- https://bugs.webkit.org/show_bug.cgi?id=25614
- Changed JITStubs::cti_register_file_check() to use the current stack's
- return PC to find the bytecode for handling the exception in the prior
- frame. Also added the appropriate arrity check routine call to the
- JIT to bytecode vector (m_callReturnIndexVector) in the CodeBlock.
- * jit/JIT.cpp:
- (JSC::JIT::privateCompile): Changed the arrity check call location
- so that it gets added to the m_calls list so that it's included in
- CodeBlock::m_callReturnIndexVector.
- * jit/JITStubs.cpp:
- (JSC::DEFINE_STUB_FUNCTION): Use the current call frame's return PC.
- 2011-01-10 Daniel Bates <dbates@rim.com>
- Reviewed by Martin Robinson.
- Remove extraneous COMPILER(GCC) condition when checking GCC_VERSION_AT_LEAST()
- https://bugs.webkit.org/show_bug.cgi?id=52178
- It is sufficient to test GCC_VERSION_AT_LEAST() instead of both COMPILER(GCC) and
- GCC_VERSION_AT_LEAST(). Notice GCC_VERSION_AT_LEAST() is defined to be 0 when we
- are not compiling with GCC.
- Fixes style issues at the callsites (i.e. replace comma with comma-space in
- macro function argument list). Also, makes a spelling correction in a comment.
- * jit/ExecutableAllocator.h:
- (JSC::ExecutableAllocator::cacheFlush):
- * wtf/Platform.h:
- 2011-01-10 Geoffrey Garen <ggaren@apple.com>
- Build fix: removed some uses of nextNumber that I missed last time.
- * runtime/Heap.cpp:
- (JSC::Heap::reset):
- (JSC::Heap::collectAllGarbage):
- 2011-01-10 Daniel Bates <dbates@rim.com>
- Reviewed by Darin Adler.
- Use __builtin_expect when compiling using RVCT in GNU mode
- https://bugs.webkit.org/show_bug.cgi?id=51866
- We should only use __builtin_expect if we are compiling with GCC or RVCT 3 or higher in GNU mode
- as pointed out by Siddharth Mathur per <http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0202h/Cjabddedbde.html>.
- * wtf/AlwaysInline.h:
- * wtf/Platform.h: Removed define WTF_COMPILER_RVCT4_OR_GREATER. Instead added macro
- function RVCT_VERSION_AT_LEAST so that we can test for an arbitrary minimum RVCT
- version.
- 2011-01-10 Geoffrey Garen <ggaren@apple.com>
- Reviewed by Oliver Hunt.
- Moved Collector.* => Heap.*, since the file contains a class named "Heap".
- * API/JSCallbackObject.cpp:
- * Android.mk:
- * CMakeLists.txt:
- * GNUmakefile.am:
- * JavaScriptCore.gypi:
- * JavaScriptCore.pro:
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
- * JavaScriptCore.xcodeproj/project.pbxproj:
- * interpreter/Interpreter.cpp:
- * interpreter/RegisterFile.h:
- * jit/JITStubs.cpp:
- * runtime/Collector.cpp: Removed.
- * runtime/Collector.h: Removed.
- * runtime/CollectorHeapIterator.h:
- * runtime/GCActivityCallbackCF.cpp:
- * runtime/Heap.cpp: Copied from JavaScriptCore/runtime/Collector.cpp.
- * runtime/Heap.h: Copied from JavaScriptCore/runtime/Collector.h.
- * runtime/InitializeThreading.cpp:
- * runtime/JSCell.h:
- * runtime/JSGlobalData.cpp:
- * runtime/JSGlobalData.h:
- * runtime/JSLock.cpp:
- * runtime/JSNumberCell.h:
- * runtime/MachineStackMarker.cpp:
- * runtime/MemoryStatistics.h:
- * runtime/Protect.h:
- * runtime/UString.cpp:
- * runtime/WeakGCMap.h:
- * runtime/WeakGCPtr.h:
- 2011-01-10 Xan Lopez <xlopez@igalia.com>
- Reviewed by Gavin Barraclough.
- Remove unused isString() case in JSString::toPrimitiveString()
- https://bugs.webkit.org/show_bug.cgi?id=52167
- We never call toPrimitiveString() with strings, so remove the
- check and add an ASSERT ensuring this never happens. 0.7% overall
- progression in sunspider, since one of the call sites is very hot.
- * runtime/JSString.h:
- (JSC::JSValue::toPrimitiveString):
- 2011-01-10 Peter Varga <pvarga@inf.u-szeged.hu>
- Reviewed by Gavin Barraclough.
- Rename the existing YARR files and classes
- https://bugs.webkit.org/show_bug.cgi?id=51872
- Replace the "Regex" prefix with "Yarr" in the name of YARR files and classes.
- * Android.mk:
- * CMakeLists.txt:
- * GNUmakefile.am:
- * JavaScriptCore.gypi:
- * JavaScriptCore.pro:
- * JavaScriptCore.xcodeproj/project.pbxproj:
- * runtime/RegExp.cpp:
- (JSC::RegExp::compile):
- (JSC::RegExp::match):
- (JSC::RegExp::printTraceData):
- * yarr/YarrInterpreter.cpp: Renamed from Source/JavaScriptCore/yarr/RegexInterpreter.cpp.
- (JSC::Yarr::Interpreter::appendParenthesesDisjunctionContext):
- (JSC::Yarr::Interpreter::popParenthesesDisjunctionContext):
- (JSC::Yarr::Interpreter::DisjunctionContext::DisjunctionContext):
- (JSC::Yarr::Interpreter::DisjunctionContext::operator new):
- (JSC::Yarr::Interpreter::allocDisjunctionContext):
- (JSC::Yarr::Interpreter::freeDisjunctionContext):
- (JSC::Yarr::Interpreter::ParenthesesDisjunctionContext::ParenthesesDisjunctionContext):
- (JSC::Yarr::Interpreter::ParenthesesDisjunctionContext::operator new):
- (JSC::Yarr::Interpreter::ParenthesesDisjunctionContext::restoreOutput):
- (JSC::Yarr::Interpreter::ParenthesesDisjunctionContext::getDisjunctionContext):
- (JSC::Yarr::Interpreter::allocParenthesesDisjunctionContext):
- (JSC::Yarr::Interpreter::freeParenthesesDisjunctionContext):
- (JSC::Yarr::Interpreter::InputStream::InputStream):
- (JSC::Yarr::Interpreter::InputStream::next):
- (JSC::Yarr::Interpreter::InputStream::rewind):
- (JSC::Yarr::Interpreter::InputStream::read):
- (JSC::Yarr::Interpreter::InputStream::readPair):
- (JSC::Yarr::Interpreter::InputStream::readChecked):
- (JSC::Yarr::Interpreter::InputStream::reread):
- (JSC::Yarr::Interpreter::InputStream::prev):
- (JSC::Yarr::Interpreter::InputStream::getPos):
- (JSC::Yarr::Interpreter::InputStream::setPos):
- (JSC::Yarr::Interpreter::InputStream::atStart):
- (JSC::Yarr::Interpreter::InputStream::atEnd):
- (JSC::Yarr::Interpreter::InputStream::checkInput):
- (JSC::Yarr::Interpreter::InputStream::uncheckInput):
- (JSC::Yarr::Interpreter::InputStream::isNotAvailableInput):
- (JSC::Yarr::Interpreter::testCharacterClass):
- (JSC::Yarr::Interpreter::checkCharacter):
- (JSC::Yarr::Interpreter::checkCasedCharacter):
- (JSC::Yarr::Interpreter::checkCharacterClass):
- (JSC::Yarr::Interpreter::tryConsumeBackReference):
- (JSC::Yarr::Interpreter::matchAssertionBOL):
- (JSC::Yarr::Interpreter::matchAssertionEOL):
- (JSC::Yarr::Interpreter::matchAssertionWordBoundary):
- (JSC::Yarr::Interpreter::backtrackPatternCharacter):
- (JSC::Yarr::Interpreter::backtrackPatternCasedCharacter):
- (JSC::Yarr::Interpreter::matchCharacterClass):
- (JSC::Yarr::Interpreter::backtrackCharacterClass):
- (JSC::Yarr::Interpreter::matchBackReference):
- (JSC::Yarr::Interpreter::backtrackBackReference):
- (JSC::Yarr::Interpreter::recordParenthesesMatch):
- (JSC::Yarr::Interpreter::resetMatches):
- (JSC::Yarr::Interpreter::parenthesesDoBacktrack):
- (JSC::Yarr::Interpreter::matchParenthesesOnceBegin):
- (JSC::Yarr::Interpreter::matchParenthesesOnceEnd):
- (JSC::Yarr::Interpreter::backtrackParenthesesOnceBegin):
- (JSC::Yarr::Interpreter::backtrackParenthesesOnceEnd):
- (JSC::Yarr::Interpreter::matchParenthesesTerminalBegin):
- (JSC::Yarr::Interpreter::matchParenthesesTerminalEnd):
- (JSC::Yarr::Interpreter::backtrackParenthesesTerminalBegin):
- (JSC::Yarr::Interpreter::backtrackParenthesesTerminalEnd):
- (JSC::Yarr::Interpreter::matchParentheticalAssertionBegin):
- (JSC::Yarr::Interpreter::matchParentheticalAssertionEnd):
- (JSC::Yarr::Interpreter::backtrackParentheticalAssertionBegin):
- (JSC::Yarr::Interpreter::backtrackParentheticalAssertionEnd):
- (JSC::Yarr::Interpreter::matchParentheses):
- (JSC::Yarr::Interpreter::backtrackParentheses):
- (JSC::Yarr::Interpreter::lookupForBeginChars):
- (JSC::Yarr::Interpreter::matchDisjunction):
- (JSC::Yarr::Interpreter::matchNonZeroDisjunction):
- (JSC::Yarr::Interpreter::interpret):
- (JSC::Yarr::Interpreter::Interpreter):
- (JSC::Yarr::ByteCompiler::ParenthesesStackEntry::ParenthesesStackEntry):
- (JSC::Yarr::ByteCompiler::ByteCompiler):
- (JSC::Yarr::ByteCompiler::compile):
- (JSC::Yarr::ByteCompiler::checkInput):
- (JSC::Yarr::ByteCompiler::assertionBOL):
- (JSC::Yarr::ByteCompiler::assertionEOL):
- (JSC::Yarr::ByteCompiler::assertionWordBoundary):
- (JSC::Yarr::ByteCompiler::atomPatternCharacter):
- (JSC::Yarr::ByteCompiler::atomCharacterClass):
- (JSC::Yarr::ByteCompiler::atomBackReference):
- (JSC::Yarr::ByteCompiler::atomParenthesesOnceBegin):
- (JSC::Yarr::ByteCompiler::atomParenthesesTerminalBegin):
- (JSC::Yarr::ByteCompiler::atomParenthesesSubpatternBegin):
- (JSC::Yarr::ByteCompiler::atomParentheticalAssertionBegin):
- (JSC::Yarr::ByteCompiler::atomParentheticalAssertionEnd):
- (JSC::Yarr::ByteCompiler::popParenthesesStack):
- (JSC::Yarr::ByteCompiler::dumpDisjunction):
- (JSC::Yarr::ByteCompiler::closeAlternative):
- (JSC::Yarr::ByteCompiler::closeBodyAlternative):
- (JSC::Yarr::ByteCompiler::atomParenthesesSubpatternEnd):
- (JSC::Yarr::ByteCompiler::atomParenthesesOnceEnd):
- (JSC::Yarr::ByteCompiler::atomParenthesesTerminalEnd):
- (JSC::Yarr::ByteCompiler::regexBegin):
- (JSC::Yarr::ByteCompiler::regexEnd):
- (JSC::Yarr::ByteCompiler::alternativeBodyDisjunction):
- (JSC::Yarr::ByteCompiler::alternativeDisjunction):
- (JSC::Yarr::ByteCompiler::emitDisjunction):
- (JSC::Yarr::byteCompile):
- (JSC::Yarr::interpret):
- * yarr/YarrInterpreter.h: Renamed from Source/JavaScriptCore/yarr/RegexInterpreter.h.
- (JSC::Yarr::ByteTerm::ByteTerm):
- (JSC::Yarr::ByteTerm::BOL):
- (JSC::Yarr::ByteTerm::CheckInput):
- (JSC::Yarr::ByteTerm::EOL):
- (JSC::Yarr::ByteTerm::WordBoundary):
- (JSC::Yarr::ByteTerm::BackReference):
- (JSC::Yarr::ByteTerm::BodyAlternativeBegin):
- (JSC::Yarr::ByteTerm::BodyAlternativeDisjunction):
- (JSC::Yarr::ByteTerm::BodyAlternativeEnd):
- (JSC::Yarr::ByteTerm::AlternativeBegin):
- (JSC::Yarr::ByteTerm::AlternativeDisjunction):
- (JSC::Yarr::ByteTerm::AlternativeEnd):
- (JSC::Yarr::ByteTerm::SubpatternBegin):
- (JSC::Yarr::ByteTerm::SubpatternEnd):
- (JSC::Yarr::ByteTerm::invert):
- (JSC::Yarr::ByteTerm::capture):
- (JSC::Yarr::ByteDisjunction::ByteDisjunction):
- (JSC::Yarr::BytecodePattern::BytecodePattern):
- (JSC::Yarr::BytecodePattern::~BytecodePattern):
- * yarr/YarrJIT.cpp: Renamed from Source/JavaScriptCore/yarr/RegexJIT.cpp.
- (JSC::Yarr::YarrGenerator::optimizeAlternative):
- (JSC::Yarr::YarrGenerator::matchCharacterClassRange):
- (JSC::Yarr::YarrGenerator::matchCharacterClass):
- (JSC::Yarr::YarrGenerator::jumpIfNoAvailableInput):
- (JSC::Yarr::YarrGenerator::jumpIfAvailableInput):
- (JSC::Yarr::YarrGenerator::checkInput):
- (JSC::Yarr::YarrGenerator::atEndOfInput):
- (JSC::Yarr::YarrGenerator::notAtEndOfInput):
- (JSC::Yarr::YarrGenerator::jumpIfCharEquals):
- (JSC::Yarr::YarrGenerator::jumpIfCharNotEquals):
- (JSC::Yarr::YarrGenerator::readCharacter):
- (JSC::Yarr::YarrGenerator::storeToFrame):
- (JSC::Yarr::YarrGenerator::storeToFrameWithPatch):
- (JSC::Yarr::YarrGenerator::loadFromFrame):
- (JSC::Yarr::YarrGenerator::loadFromFrameAndJump):
- (JSC::Yarr::YarrGenerator::IndirectJumpEntry::IndirectJumpEntry):
- (JSC::Yarr::YarrGenerator::IndirectJumpEntry::addJump):
- (JSC::Yarr::YarrGenerator::AlternativeBacktrackRecord::AlternativeBacktrackRecord):
- (JSC::Yarr::YarrGenerator::GenerationState::GenerationState):
- (JSC::Yarr::YarrGenerator::GenerationState::addIndirectJumpEntry):
- (JSC::Yarr::YarrGenerator::GenerationState::emitIndirectJumpTable):
- (JSC::Yarr::YarrGenerator::GenerationState::incrementParenNestingLevel):
- (JSC::Yarr::YarrGenerator::GenerationState::decrementParenNestingLevel):
- (JSC::Yarr::YarrGenerator::GenerationState::addParenthesesTail):
- (JSC::Yarr::YarrGenerator::GenerationState::emitParenthesesTail):
- (JSC::Yarr::YarrGenerator::GenerationState::addJumpToNextInteration):
- (JSC::Yarr::YarrGenerator::GenerationState::addJumpsToNextInteration):
- (JSC::Yarr::YarrGenerator::GenerationState::addDataLabelToNextIteration):
- (JSC::Yarr::YarrGenerator::GenerationState::linkToNextIteration):
- (JSC::Yarr::YarrGenerator::BacktrackDestination::BacktrackDestination):
- (JSC::Yarr::YarrGenerator::BacktrackDestination::clear):
- (JSC::Yarr::YarrGenerator::BacktrackDestination::clearDataLabel):
- (JSC::Yarr::YarrGenerator::BacktrackDestination::hasDestination):
- (JSC::Yarr::YarrGenerator::BacktrackDestination::isStackOffset):
- (JSC::Yarr::YarrGenerator::BacktrackDestination::isLabel):
- (JSC::Yarr::YarrGenerator::BacktrackDestination::isJumpList):
- (JSC::Yarr::YarrGenerator::BacktrackDestination::hasDataLabel):
- (JSC::Yarr::YarrGenerator::BacktrackDestination::copyTarget):
- (JSC::Yarr::YarrGenerator::BacktrackDestination::copyTo):
- (JSC::Yarr::YarrGenerator::BacktrackDestination::addBacktrackJump):
- (JSC::Yarr::YarrGenerator::BacktrackDestination::setStackOffset):
- (JSC::Yarr::YarrGenerator::BacktrackDestination::setLabel):
- (JSC::Yarr::YarrGenerator::BacktrackDestination::setNextBacktrackLabel):
- (JSC::Yarr::YarrGenerator::BacktrackDestination::copyBacktrackToLabel):
- (JSC::Yarr::YarrGenerator::BacktrackDestination::setBacktrackToLabel):
- (JSC::Yarr::YarrGenerator::BacktrackDestination::setBacktrackJumpList):
- (JSC::Yarr::YarrGenerator::BacktrackDestination::setBacktrackSourceLabel):
- (JSC::Yarr::YarrGenerator::BacktrackDestination::setDataLabel):
- (JSC::Yarr::YarrGenerator::BacktrackDestination::setSubDataLabelPtr):
- (JSC::Yarr::YarrGenerator::BacktrackDestination::linkToNextBacktrack):
- (JSC::Yarr::YarrGenerator::BacktrackDestination::getStackOffset):
- (JSC::Yarr::YarrGenerator::BacktrackDestination::getLabel):
- (JSC::Yarr::YarrGenerator::BacktrackDestination::getBacktrackJumps):
- (JSC::Yarr::YarrGenerator::BacktrackDestination::getDataLabel):
- (JSC::Yarr::YarrGenerator::BacktrackDestination::jumpToBacktrack):
- (JSC::Yarr::YarrGenerator::BacktrackDestination::linkDataLabelToHereIfExists):
- (JSC::Yarr::YarrGenerator::BacktrackDestination::plantJumpToBacktrackIfExists):
- (JSC::Yarr::YarrGenerator::BacktrackDestination::linkAlternativeBacktracks):
- (JSC::Yarr::YarrGenerator::BacktrackDestination::linkAlternativeBacktracksTo):
- (JSC::Yarr::YarrGenerator::TermGenerationState::TermGenerationState):
- (JSC::Yarr::YarrGenerator::TermGenerationState::resetAlternative):
- (JSC::Yarr::YarrGenerator::TermGenerationState::alternativeValid):
- (JSC::Yarr::YarrGenerator::TermGenerationState::nextAlternative):
- (JSC::Yarr::YarrGenerator::TermGenerationState::alternative):
- (JSC::Yarr::YarrGenerator::TermGenerationState::isLastAlternative):
- (JSC::Yarr::YarrGenerator::TermGenerationState::resetTerm):
- (JSC::Yarr::YarrGenerator::TermGenerationState::termValid):
- (JSC::Yarr::YarrGenerator::TermGenerationState::nextTerm):
- (JSC::Yarr::YarrGenerator::TermGenerationState::term):
- (JSC::Yarr::YarrGenerator::TermGenerationState::isLastTerm):
- (JSC::Yarr::YarrGenerator::TermGenerationState::getSubParenNum):
- (JSC::Yarr::YarrGenerator::TermGenerationState::isMainDisjunction):
- (JSC::Yarr::YarrGenerator::TermGenerationState::setParenthesesTail):
- (JSC::Yarr::YarrGenerator::TermGenerationState::getParenthesesTail):
- (JSC::Yarr::YarrGenerator::TermGenerationState::lookaheadTerm):
- (JSC::Yarr::YarrGenerator::TermGenerationState::isSinglePatternCharacterLookaheadTerm):
- (JSC::Yarr::YarrGenerator::TermGenerationState::inputOffset):
- (JSC::Yarr::YarrGenerator::TermGenerationState::clearBacktrack):
- (JSC::Yarr::YarrGenerator::TermGenerationState::jumpToBacktrack):
- (JSC::Yarr::YarrGenerator::TermGenerationState::plantJumpToBacktrackIfExists):
- (JSC::Yarr::YarrGenerator::TermGenerationState::linkDataLabelToBacktrackIfExists):
- (JSC::Yarr::YarrGenerator::TermGenerationState::addBacktrackJump):
- (JSC::Yarr::YarrGenerator::TermGenerationState::setBacktrackDataLabel):
- (JSC::Yarr::YarrGenerator::TermGenerationState::setBackTrackStackOffset):
- (JSC::Yarr::YarrGenerator::TermGenerationState::setBacktrackLabel):
- (JSC::Yarr::YarrGenerator::TermGenerationState::linkAlternativeBacktracks):
- (JSC::Yarr::YarrGenerator::TermGenerationState::linkAlternativeBacktracksTo):
- (JSC::Yarr::YarrGenerator::TermGenerationState::setBacktrackLink):
- (JSC::Yarr::YarrGenerator::TermGenerationState::chainBacktracks):
- (JSC::Yarr::YarrGenerator::TermGenerationState::chainBacktrackJumps):
- (JSC::Yarr::YarrGenerator::TermGenerationState::getBacktrackDestination):
- (JSC::Yarr::YarrGenerator::TermGenerationState::propagateBacktrackingFrom):
- (JSC::Yarr::YarrGenerator::ParenthesesTail::ParenthesesTail):
- (JSC::Yarr::YarrGenerator::ParenthesesTail::processBacktracks):
- (JSC::Yarr::YarrGenerator::ParenthesesTail::setNextIteration):
- (JSC::Yarr::YarrGenerator::ParenthesesTail::addAfterParenJump):
- (JSC::Yarr::YarrGenerator::ParenthesesTail::generateCode):
- (JSC::Yarr::YarrGenerator::generateAssertionBOL):
- (JSC::Yarr::YarrGenerator::generateAssertionEOL):
- (JSC::Yarr::YarrGenerator::matchAssertionWordchar):
- (JSC::Yarr::YarrGenerator::generateAssertionWordBoundary):
- (JSC::Yarr::YarrGenerator::generatePatternCharacterSingle):
- (JSC::Yarr::YarrGenerator::generatePatternCharacterPair):
- (JSC::Yarr::YarrGenerator::generatePatternCharacterFixed):
- (JSC::Yarr::YarrGenerator::generatePatternCharacterGreedy):
- (JSC::Yarr::YarrGenerator::generatePatternCharacterNonGreedy):
- (JSC::Yarr::YarrGenerator::generateCharacterClassSingle):
- (JSC::Yarr::YarrGenerator::generateCharacterClassFixed):
- (JSC::Yarr::YarrGenerator::generateCharacterClassGreedy):
- (JSC::Yarr::YarrGenerator::generateCharacterClassNonGreedy):
- (JSC::Yarr::YarrGenerator::generateParenthesesDisjunction):
- (JSC::Yarr::YarrGenerator::generateParenthesesSingle):
- (JSC::Yarr::YarrGenerator::generateParenthesesGreedyNoBacktrack):
- (JSC::Yarr::YarrGenerator::generateParentheticalAssertion):
- (JSC::Yarr::YarrGenerator::generateTerm):
- (JSC::Yarr::YarrGenerator::generateDisjunction):
- (JSC::Yarr::YarrGenerator::generateEnter):
- (JSC::Yarr::YarrGenerator::generateReturn):
- (JSC::Yarr::YarrGenerator::YarrGenerator):
- (JSC::Yarr::YarrGenerator::generate):
- (JSC::Yarr::YarrGenerator::compile):
- (JSC::Yarr::jitCompile):
- * yarr/YarrJIT.h: Renamed from Source/JavaScriptCore/yarr/RegexJIT.h.
- (JSC::Yarr::YarrCodeBlock::YarrCodeBlock):
- (JSC::Yarr::YarrCodeBlock::~YarrCodeBlock):
- (JSC::Yarr::YarrCodeBlock::setFallBack):
- (JSC::Yarr::YarrCodeBlock::isFallBack):
- (JSC::Yarr::YarrCodeBlock::set):
- (JSC::Yarr::YarrCodeBlock::execute):
- (JSC::Yarr::YarrCodeBlock::getAddr):
- (JSC::Yarr::execute):
- * yarr/YarrParser.h: Renamed from Source/JavaScriptCore/yarr/RegexParser.h.
- (JSC::Yarr::Parser::CharacterClassParserDelegate::CharacterClassParserDelegate):
- (JSC::Yarr::Parser::CharacterClassParserDelegate::begin):
- (JSC::Yarr::Parser::CharacterClassParserDelegate::atomPatternCharacter):
- (JSC::Yarr::Parser::CharacterClassParserDelegate::atomBuiltInCharacterClass):
- (JSC::Yarr::Parser::CharacterClassParserDelegate::end):
- (JSC::Yarr::Parser::CharacterClassParserDelegate::assertionWordBoundary):
- (JSC::Yarr::Parser::CharacterClassParserDelegate::atomBackReference):
- (JSC::Yarr::Parser::Parser):
- (JSC::Yarr::Parser::parseEscape):
- (JSC::Yarr::Parser::parseAtomEscape):
- (JSC::Yarr::Parser::parseCharacterClassEscape):
- (JSC::Yarr::Parser::parseCharacterClass):
- (JSC::Yarr::Parser::parseParenthesesBegin):
- (JSC::Yarr::Parser::parseParenthesesEnd):
- (JSC::Yarr::Parser::parseQuantifier):
- (JSC::Yarr::Parser::parseTokens):
- (JSC::Yarr::Parser::parse):
- (JSC::Yarr::Parser::saveState):
- (JSC::Yarr::Parser::restoreState):
- (JSC::Yarr::Parser::atEndOfPattern):
- (JSC::Yarr::Parser::peek):
- (JSC::Yarr::Parser::peekIsDigit):
- (JSC::Yarr::Parser::peekDigit):
- (JSC::Yarr::Parser::consume):
- (JSC::Yarr::Parser::consumeDigit):
- (JSC::Yarr::Parser::consumeNumber):
- (JSC::Yarr::Parser::consumeOctal):
- (JSC::Yarr::Parser::tryConsume):
- (JSC::Yarr::Parser::tryConsumeHex):
- (JSC::Yarr::parse):
- * yarr/YarrPattern.cpp: Renamed from Source/JavaScriptCore/yarr/RegexPattern.cpp.
- (JSC::Yarr::CharacterClassConstructor::CharacterClassConstructor):
- (JSC::Yarr::CharacterClassConstructor::reset):
- (JSC::Yarr::CharacterClassConstructor::append):
- (JSC::Yarr::CharacterClassConstructor::putChar):
- (JSC::Yarr::CharacterClassConstructor::isUnicodeUpper):
- (JSC::Yarr::CharacterClassConstructor::isUnicodeLower):
- (JSC::Yarr::CharacterClassConstructor::putRange):
- (JSC::Yarr::CharacterClassConstructor::charClass):
- (JSC::Yarr::CharacterClassConstructor::addSorted):
- (JSC::Yarr::CharacterClassConstructor::addSortedRange):
- (JSC::Yarr::BeginCharHelper::BeginCharHelper):
- (JSC::Yarr::BeginCharHelper::addBeginChar):
- (JSC::Yarr::BeginCharHelper::merge):
- (JSC::Yarr::BeginCharHelper::addCharacter):
- (JSC::Yarr::BeginCharHelper::linkHotTerms):
- (JSC::Yarr::YarrPatternConstructor::YarrPatternConstructor):
- (JSC::Yarr::YarrPatternConstructor::~YarrPatternConstructor):
- (JSC::Yarr::YarrPatternConstructor::reset):
- (JSC::Yarr::YarrPatternConstructor::assertionBOL):
- (JSC::Yarr::YarrPatternConstructor::assertionEOL):
- (JSC::Yarr::YarrPatternConstructor::assertionWordBoundary):
- (JSC::Yarr::YarrPatternConstructor::atomPatternCharacter):
- (JSC::Yarr::YarrPatternConstructor::atomBuiltInCharacterClass):
- (JSC::Yarr::YarrPatternConstructor::atomCharacterClassBegin):
- (JSC::Yarr::YarrPatternConstructor::atomCharacterClassAtom):
- (JSC::Yarr::YarrPatternConstructor::atomCharacterClassRange):
- (JSC::Yarr::YarrPatternConstructor::atomCharacterClassBuiltIn):
- (JSC::Yarr::YarrPatternConstructor::atomCharacterClassEnd):
- (JSC::Yarr::YarrPatternConstructor::atomParenthesesSubpatternBegin):
- (JSC::Yarr::YarrPatternConstructor::atomParentheticalAssertionBegin):
- (JSC::Yarr::YarrPatternConstructor::atomParenthesesEnd):
- (JSC::Yarr::YarrPatternConstructor::atomBackReference):
- (JSC::Yarr::YarrPatternConstructor::copyDisjunction):
- (JSC::Yarr::YarrPatternConstructor::copyTerm):
- (JSC::Yarr::YarrPatternConstructor::quantifyAtom):
- (JSC::Yarr::YarrPatternConstructor::disjunction):
- (JSC::Yarr::YarrPatternConstructor::regexBegin):
- (JSC::Yarr::YarrPatternConstructor::regexEnd):
- (JSC::Yarr::YarrPatternConstructor::regexError):
- (JSC::Yarr::YarrPatternConstructor::setupAlternativeOffsets):
- (JSC::Yarr::YarrPatternConstructor::setupDisjunctionOffsets):
- (JSC::Yarr::YarrPatternConstructor::setupOffsets):
- (JSC::Yarr::YarrPatternConstructor::checkForTerminalParentheses):
- (JSC::Yarr::YarrPatternConstructor::optimizeBOL):
- (JSC::Yarr::YarrPatternConstructor::addBeginTerm):
- (JSC::Yarr::YarrPatternConstructor::setupDisjunctionBeginTerms):
- (JSC::Yarr::YarrPatternConstructor::setupAlternativeBeginTerms):
- (JSC::Yarr::YarrPatternConstructor::setupBeginChars):
- (JSC::Yarr::compile):
- (JSC::Yarr::YarrPattern::YarrPattern):
- * yarr/YarrPattern.h: Renamed from Source/JavaScriptCore/yarr/RegexPattern.h.
- (JSC::Yarr::CharacterRange::CharacterRange):
- (JSC::Yarr::CharacterClassTable::create):
- (JSC::Yarr::CharacterClassTable::CharacterClassTable):
- (JSC::Yarr::CharacterClass::CharacterClass):
- (JSC::Yarr::PatternTerm::PatternTerm):
- (JSC::Yarr::PatternTerm::ForwardReference):
- (JSC::Yarr::PatternTerm::BOL):
- (JSC::Yarr::PatternTerm::EOL):
- (JSC::Yarr::PatternTerm::WordBoundary):
- (JSC::Yarr::PatternTerm::invert):
- (JSC::Yarr::PatternTerm::capture):
- (JSC::Yarr::PatternTerm::quantify):
- (JSC::Yarr::PatternAlternative::PatternAlternative):
- (JSC::Yarr::PatternAlternative::lastTerm):
- (JSC::Yarr::PatternAlternative::removeLastTerm):
- (JSC::Yarr::PatternAlternative::setOnceThrough):
- (JSC::Yarr::PatternAlternative::onceThrough):
- (JSC::Yarr::PatternDisjunction::PatternDisjunction):
- (JSC::Yarr::PatternDisjunction::~PatternDisjunction):
- (JSC::Yarr::PatternDisjunction::addNewAlternative):
- (JSC::Yarr::TermChain::TermChain):
- (JSC::Yarr::BeginChar::BeginChar):
- (JSC::Yarr::YarrPattern::~YarrPattern):
- (JSC::Yarr::YarrPattern::reset):
- (JSC::Yarr::YarrPattern::containsIllegalBackReference):
- (JSC::Yarr::YarrPattern::newlineCharacterClass):
- (JSC::Yarr::YarrPattern::digitsCharacterClass):
- (JSC::Yarr::YarrPattern::spacesCharacterClass):
- (JSC::Yarr::YarrPattern::wordcharCharacterClass):
- (JSC::Yarr::YarrPattern::nondigitsCharacterClass):
- (JSC::Yarr::YarrPattern::nonspacesCharacterClass):
- (JSC::Yarr::YarrPattern::nonwordcharCharacterClass):
- 2011-01-10 Gavin Barraclough <barraclough@apple.com>
- Windows build fix.
- * parser/SyntaxChecker.h:
- 2011-01-10 Dave Tapuska <dtapuska@rim.com>
- Reviewed by Gavin Barraclough.
- Add CTI ASM versions for RVCT ARM THUMB2 mode.
- https://bugs.webkit.org/show_bug.cgi?id=52154
- * jit/JITStubs.cpp:
- (JSC::ctiTrampoline):
- (JSC::ctiVMThrowTrampoline):
- (JSC::ctiOpThrowNotCaught):
- 2011-01-10 Gavin Barraclough <barraclough@apple.com>
- Qt build fix.
- * JavaScriptCore.pro:
- 2011-01-10 Gavin Barraclough <barraclough@apple.com>
- Reviewed by Oliver Hunt.
- Bug 52079 - Syntax errors should be early errors.
- From chapter 16 the spec:
- An implementation must report most errors at the time the relevant ECMAScript language construct is
- evaluated. An early error is an error that can be detected and reported prior to the evaluation of
- any construct in the Program containing the error. An implementation must report early errors in a
- Program prior to the first evaluation of that Program. Early errors in eval code are reported at
- the time eval is called but prior to evaluation of any construct within the eval code. All errors
- that are not early errors are runtime errors.
- An implementation must treat any instance of the following kinds of errors as an early error:
- * Any syntax error."
- * JavaScriptCore.xcodeproj/project.pbxproj:
- Added new files.
- * bytecode/CodeBlock.cpp:
- Removed op_throw_syntax_error.
- * bytecode/Opcode.h:
- Removed op_throw_syntax_error.
- * bytecompiler/BytecodeGenerator.cpp:
- (JSC::BytecodeGenerator::generate):
- If m_expressionTooDeep then throw a runtime error.
- (JSC::BytecodeGenerator::BytecodeGenerator):
- Initialize m_expressionTooDeep.
- (JSC::BytecodeGenerator::emitThrowExpressionTooDeepException):
- Sets m_expressionTooDeep.
- * bytecompiler/BytecodeGenerator.h:
- Added m_expressionTooDeep, removed emitThrowSyntaxError.
- * bytecompiler/NodesCodegen.cpp:
- (JSC::RegExpNode::emitBytecode):
- (JSC::ContinueNode::emitBytecode):
- (JSC::BreakNode::emitBytecode):
- (JSC::ReturnNode::emitBytecode):
- (JSC::LabelNode::emitBytecode):
- Conditions that threw syntax error are now handled during parsing;
- during bytecompilation these are now just ASSERTs.
- * interpreter/Interpreter.cpp:
- (JSC::Interpreter::privateExecute):
- * jit/JIT.cpp:
- (JSC::JIT::privateCompileMainPass):
- * jit/JIT.h:
- * jit/JITOpcodes.cpp:
- * jit/JITOpcodes32_64.cpp:
- * jit/JITStubs.cpp:
- * jit/JITStubs.h:
- Removed op_throw_syntax_error.
- * parser/ASTBuilder.h:
- (JSC::ASTBuilder::createRegExp):
- Renamed; added syntax check.
- * parser/JSParser.cpp:
- (JSC::JSParser::breakIsValid):
- (JSC::JSParser::hasLabel):
- (JSC::JSParser::Scope::Scope):
- (JSC::JSParser::Scope::setIsFunction):
- (JSC::JSParser::Scope::isFunctionBoundary):
- (JSC::JSParser::ScopeRef::hasContainingScope):
- (JSC::JSParser::ScopeRef::containingScope):
- (JSC::JSParser::AutoPopScopeRef::AutoPopScopeRef):
- (JSC::JSParser::AutoPopScopeRef::~AutoPopScopeRef):
- (JSC::JSParser::AutoPopScopeRef::setPopped):
- (JSC::JSParser::popScopeInternal):
- (JSC::JSParser::popScope):
- (JSC::jsParse):
- (JSC::JSParser::JSParser):
- (JSC::JSParser::parseProgram):
- (JSC::JSParser::parseBreakStatement):
- (JSC::JSParser::parseContinueStatement):
- (JSC::JSParser::parseReturnStatement):
- (JSC::JSParser::parseTryStatement):
- (JSC::JSParser::parseFunctionInfo):
- (JSC::JSParser::parseExpressionOrLabelStatement):
- (JSC::JSParser::parsePrimaryExpression):
- * parser/JSParser.h:
- * parser/Nodes.h:
- * parser/Parser.cpp:
- (JSC::Parser::parse):
- * parser/SyntaxChecker.h:
- (JSC::SyntaxChecker::createRegExp):
- Renamed; added syntax check.
- * runtime/ExceptionHelpers.cpp:
- (JSC::createOutOfMemoryError):
- (JSC::throwOutOfMemoryError):
- * runtime/ExceptionHelpers.h:
- Broke out createOutOfMemoryError.
- * runtime/Executable.cpp:
- (JSC::EvalExecutable::compileInternal):
- (JSC::ProgramExecutable::compileInternal):
- (JSC::FunctionExecutable::compileForCallInternal):
- (JSC::FunctionExecutable::compileForConstructInternal):
- Add check for exception after bytecode generation.
- * runtime/RegExpConstructor.cpp:
- (JSC::constructRegExp):
- * runtime/RegExpPrototype.cpp:
- (JSC::regExpProtoFuncCompile):
- RegExp error prefixes not included in error string.
- * yarr/RegexParser.h:
- (JSC::Yarr::Parser::parse):
- Removed regexBegin/regexEnd/regexError.
- * yarr/RegexPattern.cpp:
- (JSC::Yarr::RegexPatternConstructor::regexBegin):
- Removed regexEnd/regexError.
- (JSC::Yarr::compileRegex):
- Add call to regexBegin (no longer called from the parser).
- * yarr/YarrSyntaxChecker.cpp: Added.
- (JSC::Yarr::SyntaxChecker::assertionBOL):
- (JSC::Yarr::SyntaxChecker::assertionEOL):
- (JSC::Yarr::SyntaxChecker::assertionWordBoundary):
- (JSC::Yarr::SyntaxChecker::atomPatternCharacter):
- (JSC::Yarr::SyntaxChecker::atomBuiltInCharacterClass):
- (JSC::Yarr::SyntaxChecker::atomCharacterClassBegin):
- (JSC::Yarr::SyntaxChecker::atomCharacterClassAtom):
- (JSC::Yarr::SyntaxChecker::atomCharacterClassRange):
- (JSC::Yarr::SyntaxChecker::atomCharacterClassBuiltIn):
- (JSC::Yarr::SyntaxChecker::atomCharacterClassEnd):
- (JSC::Yarr::SyntaxChecker::atomParenthesesSubpatternBegin):
- (JSC::Yarr::SyntaxChecker::atomParentheticalAssertionBegin):
- (JSC::Yarr::SyntaxChecker::atomParenthesesEnd):
- (JSC::Yarr::SyntaxChecker::atomBackReference):
- (JSC::Yarr::SyntaxChecker::quantifyAtom):
- (JSC::Yarr::SyntaxChecker::disjunction):
- (JSC::Yarr::checkSyntax):
- * yarr/YarrSyntaxChecker.h: Added.
- Check RegExp syntax.
- 2011-01-10 Adam Roben <aroben@apple.com>
- Roll out r75289
- It was causing assertion failures. See <http://webkit.org/b/52156>.
- * wtf/StackBounds.cpp:
- (WTF::StackBounds::initialize):
- 2011-01-08 Patrick Gansterer <paroga@webkit.org>
- Reviewed by Darin Adler.
- Unify string table adding in AtomicString
- https://bugs.webkit.org/show_bug.cgi?id=51927
- Move code for adding a string into a separate function.
- This removes multiple occurrence of the same logic.
- * wtf/text/AtomicString.cpp:
- (WTF::addToStringTable): Added.
- (WTF::AtomicString::add): Use addToStringTable().
- (WTF::AtomicString::fromUTF8): Ditto.
- 2011-01-07 Geoffrey Garen <ggaren@apple.com>
- Reviewed by Gavin Barraclough.
- Split machine stack marking functions into their own class (MachineStackMarker)
- https://bugs.webkit.org/show_bug.cgi?id=52088
- * API/APIShims.h:
- (JSC::APIEntryShimWithoutLock::APIEntryShimWithoutLock): Moved registerThread()
- call behind an #ifdef because we shouldn't be registering threads at all
- if we don't support usage on multiple threads.
- * Android.mk:
- * CMakeLists.txt:
- * GNUmakefile.am:
- * JavaScriptCore.gypi:
- * JavaScriptCore.pro:
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
- * JavaScriptCore.xcodeproj/project.pbxproj: Updated projects.
- * runtime/Collector.cpp:
- (JSC::Heap::Heap):
- (JSC::Heap::destroy):
- (JSC::Heap::markRoots):
- * runtime/Collector.h:
- (JSC::Heap::machineStackMarker): Moved code to machineStackMarker.
- * runtime/JSGlobalData.h:
- (JSC::JSGlobalData::makeUsableFromMultipleThreads): Removed an unnecessary
- level of indirection, to make Heap less of a God class.
- * runtime/MachineStackMarker.h: Copied from Source/JavaScriptCore/runtime/Collector.h.
- * runtime/MachineStackMarker.cpp: Copied from Source/JavaScriptCore/runtime/Collector.cpp.
- (JSC::MachineStackMarker::MachineStackMarker):
- (JSC::MachineStackMarker::~MachineStackMarker):
- (JSC::MachineStackMarker::makeUsableFromMultipleThreads):
- (JSC::MachineStackMarker::registerThread):
- (JSC::MachineStackMarker::unregisterThread):
- (JSC::MachineStackMarker::markCurrentThreadConservativelyInternal):
- (JSC::MachineStackMarker::markCurrentThreadConservatively):
- (JSC::MachineStackMarker::markOtherThreadConservatively):
- (JSC::MachineStackMarker::markMachineStackConservatively): Moved code from Heap.
- 2011-01-07 Gavin Barraclough <barraclough@apple.com>
- Reviewed by Geoff Garen.
- Bug 26276 - Need a mechanism to determine stack extent on WINDOWS, SOLARIS, OPENBSD, SYMBIAN, HAIKU, WINCE platforms
- Fix for win32. The base of the stack is stored in the "deallocation stack" field of the
- Thread Information Block - see: http://en.wikipedia.org/wiki/Win32_Thread_Information_Block
- for more information!
- * wtf/StackBounds.cpp:
- (WTF::StackBounds::initialize):
- 2011-01-07 Adam Roben <aroben@apple.com>
- Update react-to-vsprops-changes.py after r74855
- * JavaScriptCore.vcproj/JavaScriptCore/react-to-vsprops-changes.py:
- 2011-01-07 Carlos Garcia Campos <cgarcia@igalia.com>
- Reviewed by Martin Robinson.
- [GTK] Port scrollbar painting to GtkStyleContext
- https://bugs.webkit.org/show_bug.cgi?id=52051
- * wtf/gobject/GTypedefs.h: Add GtkStyleContext forward
- declaration.
- 2011-01-07 Daniel Bates <dbates@rim.com>
- Reviewed by Martin Robinson.
- Enable PCRE computed gotos when compiling with RCVT 4.0 or greater in GNU mode
- https://bugs.webkit.org/show_bug.cgi?id=52034
- Derived from a patch by Eli Fidler.
- RVCT 4 or greater in GNU mode supports the computed goto GNU language extension
- as per <http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0348c/ch03s07s12.html>.
- * pcre/pcre_exec.cpp: Modified to check for feature, HAVE(COMPUTED_GOTO), instead
- of hardcoding the GCC compiler.
- * wtf/Platform.h: Define WTF_COMPILER_RVCT4_OR_GREATER if __ARMCC_VERSION >= 400000.
- 2011-01-06 Gavin Barraclough <barraclough@apple.com>
- Reviewed by Geoff Garen.
- Bug 52035 - Unregistering DOMWrapperWorlds is unsafe
- The method DOMWrapperWorld::unregisterWorld() effectively calls the DOMWrapperWorld's
- destructor early, in order to release wrappers once we know we no longer intend to use them.
- Whilst it is okay to have a method to throw away wrappers (assuming we know we're willing to
- lose any state stored on them) it is not okay to deregister the world from the JSGlobalData.
- A sequence of events that triggers the bug would look like this:
- (1) Create a DOMWrapperWorld.
- (2) Register a timer in the world.
- (3) Call unregisterWorld() on the world.
- (4) Timer goes off, code is executed in the world, creates a Node not attached to a Document.
- (5) We attempt to lookup a wrapper map for the world on the JSGlobalData, but because we've
- called forgetWorld() none exists.
- (6) Attempt to add a wrapper to a NULL map.
- Fix the problem by not removing the JSGlobalData's wrapper map until the world really goes away.
- * runtime/WeakGCMap.h:
- (JSC::WeakGCMap::clear):
- 2011-01-06 Gavin Barraclough <barraclough@apple.com>
- Reviewed by Darin Adler.
- Bug 52021 - zeroDouble broken on ARMv7
- The bug here is that zeroDouble was working incorrectly,
- leading to op_loop_if_true failing - specifically in the
- case where the value being checked is 0.0 encoded as a
- double (rather than an integer immediate).
- Additionally this patch removes a redundant duplicate compare
- in some (many) case.
- * assembler/ARMv7Assembler.h:
- (JSC::ARMv7Assembler::vcmp_F64):
- (JSC::ARMv7Assembler::vcmpz_F64):
- * assembler/MacroAssemblerARM.h:
- (JSC::MacroAssemblerARM::branchDoubleNonZero):
- (JSC::MacroAssemblerARM::branchDoubleZeroOrNaN):
- * assembler/MacroAssemblerARMv7.h:
- (JSC::MacroAssemblerARMv7::branchDouble):
- (JSC::MacroAssemblerARMv7::branchDoubleNonZero):
- (JSC::MacroAssemblerARMv7::branchDoubleZeroOrNaN):
- (JSC::MacroAssemblerARMv7::compare32):
- * assembler/MacroAssemblerMIPS.h:
- (JSC::MacroAssemblerMIPS::branchDoubleNonZero):
- (JSC::MacroAssemblerMIPS::branchDoubleZeroOrNaN):
- * assembler/MacroAssemblerX86Common.h:
- (JSC::MacroAssemblerX86Common::branchDoubleNonZero):
- (JSC::MacroAssemblerX86Common::branchDoubleZeroOrNaN):
- * jit/JITOpcodes32_64.cpp:
- (JSC::JIT::emit_op_jfalse):
- (JSC::JIT::emit_op_jtrue):
- 2011-01-06 Michael Saboff <msaboff@apple.com>
- Reviewed by Gavin Barraclough.
- Added debug code to compare the results of JIT regexp with
- interpreted regexp and displays discrepencies. This debug code is
- controlled by the ENABLE_YARR_JIT_DEBUG macro in wtf/Platform.h and
- is only valid if ENABLE_YARR_JIT is enabled.
- Fixed a discovered problem in RegExp::printTraceData, changing
- m_pattern to the getter pattern().
- Also deleted an extraneous semicolon.
- Enhancement: Add Regexp Debug Compare between JIT and Interpreter
- https://bugs.webkit.org/show_bug.cgi?id=51834
- * runtime/RegExp.cpp:
- (JSC::RegExp::compile):
- (JSC::RegExp::match):
- (JSC::RegExp::printTraceData):
- * wtf/Platform.h:
- 2011-01-06 Patrick Gansterer <paroga@webkit.org>
- Reviewed by Eric Seidel.
- [WINCE] Remove JSC::g_stackBase
- https://bugs.webkit.org/show_bug.cgi?id=51779
- * wtf/StackBounds.cpp:
- 2011-01-06 Joone Hur <joone.hur@collabora.co.uk>
- Reviewed by Eric Seidel.
- WML Parser should treat line/column number in a consistent way
- https://bugs.webkit.org/show_bug.cgi?id=51601
- Add the equality operators to TextPosition class.
- * wtf/text/TextPosition.h:
- (WTF::TextPosition::operator==): Added.
- (WTF::TextPosition::operator!=): Added.
- (WTF::TextPosition::belowRangePosition): Use belowBase() instead of base().
- (WTF::ZeroBasedNumber::operator==): Added.
- (WTF::ZeroBasedNumber::operator!=): Added.
- (WTF::OneBasedNumber::operator==): Added.
- (WTF::OneBasedNumber::operator!=): Added.
- 2011-01-06 Patrick Gansterer <paroga@webkit.org>
- Reviewed by Gavin Barraclough.
- [WINCE] Determine stack extent
- https://bugs.webkit.org/show_bug.cgi?id=26276
- Scan the stack for writeable pages and use the limits.
- * wtf/StackBounds.cpp:
- (WTF::detectGrowingDownward):
- (WTF::isPageWritable):
- (WTF::getLowerStackBound):
- (WTF::getUpperStackBound):
- (WTF::StackBounds::initialize):
- 2011-01-05 Steve Falkenburg <sfalken@apple.com>
- Windows build fix.
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreCommon.vsprops: Revert change to additional library search path needed to find ICU.
- 2011-01-05 Steve Falkenburg <sfalken@apple.com>
- Reviewed by Darin Adler.
- Debug and Release builds on Windows clobber each other
- https://bugs.webkit.org/show_bug.cgi?id=49185
-
- Changes the structure of WebKitBuild build products directory so we
- completely separate each build configuration into independent directories.
-
- Although we previously had per-configuration directories for obj, this change adds
- per-configuration directories for bin, lib, obj, and include. Each configuration's
- build products are stored within a directory inside of WebKitBuild.
-
- Most use of $(WebKitOutputDir) in the build files has been replaced by $(ConfigurationBuildDir),
- defined in common.vsprops to be $(WebKitOutputDir)\$(ConfigurationName).
-
- For PGO, $(ConfigurationBuildDir) points to the same directory (Release_PGO) to allow
- for proper operation of the instrumentation/optimization scripts.
- * JavaScriptCore.vcproj/JavaScriptCore.make:
- * JavaScriptCore.vcproj/JavaScriptCore.sln:
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreCommon.vsprops:
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreGenerated.make:
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreGenerated.vcproj:
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreGeneratedCommon.vsprops:
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCorePGOOptimize.vsprops: Added.
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCorePostBuild.cmd:
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCorePreBuild.cmd:
- * JavaScriptCore.vcproj/JavaScriptCore/build-generated-files.sh:
- * JavaScriptCore.vcproj/JavaScriptCore/react-to-vsprops-changes.py:
- * JavaScriptCore.vcproj/JavaScriptCoreSubmit.sln:
- * JavaScriptCore.vcproj/WTF/WTF.vcproj:
- * JavaScriptCore.vcproj/WTF/WTFCommon.vsprops:
- * JavaScriptCore.vcproj/WTF/WTFPostBuild.cmd:
- * JavaScriptCore.vcproj/WTF/WTFPreBuild.cmd:
- * JavaScriptCore.vcproj/jsc/jsc.vcproj:
- * JavaScriptCore.vcproj/jsc/jscCommon.vsprops:
- * JavaScriptCore.vcproj/jsc/jscPostBuild.cmd:
- * JavaScriptCore.vcproj/jsc/jscPreBuild.cmd:
- * JavaScriptCore.vcproj/testapi/testapiCommon.vsprops:
- * JavaScriptCore.vcproj/testapi/testapiPostBuild.cmd:
- * JavaScriptCore.vcproj/testapi/testapiPreBuild.cmd:
- 2011-01-05 Brent Fulgham <bfulgham@webkit.org>
- Unreviewed build fix.
- * wtf/Encoder.h: Add <stdint.h> include for systems that
- do not natively know about uint8_t, etc.
- 2011-01-05 Patrick Gansterer <paroga@webkit.org>
- Reviewed by Andreas Kling.
- [CMake] Fix the usage of SOURCE_GROUP
- https://bugs.webkit.org/show_bug.cgi?id=51739
- * CMakeLists.txt:
- 2011-01-05 Andras Becsi <abecsi@webkit.org>
- Reviewed by Csaba Osztrogonác.
- [Qt][V8] Fix the build after recent changes.
- * pcre/pcre.pri: Correct the path after Source was introduced.
- 2011-01-04 Steve Falkenburg <sfalken@apple.com>
- Build fix. Update path to FindSafari after source code reorganization.
- * JavaScriptCore.vcproj/JavaScriptCore.sln:
- 2011-01-04 Daniel Bates <dbates@rim.com>
- Fix the Android build after changeset 74975 <http://trac.webkit.org/changeset/74975>
- (https://bugs.webkit.org/show_bug.cgi?id=51855).
- * wtf/ThreadingPthreads.cpp: Add include of PassOwnPtr.h.
- (WTF::runThreadWithRegistration): Use -> instead of . to dereference pointer.
- 2011-01-04 Martin Robinson <mrobinson@igalia.com>
- Try to fix the EFL build.
- * wtf/CMakeLists.txt: Remove PlatformRefPtr from the CMake source list.
- 2011-01-04 James Robinson <jamesr@chromium.org>
- Reviewed by Darin Adler.
- StackBounds initialization in WTFThreadData should be guarded by #if USE(JSC)
- https://bugs.webkit.org/show_bug.cgi?id=51881
- The StackBounds class is only used by JavaScriptCore.
- * wtf/WTFThreadData.cpp:
- (WTF::WTFThreadData::WTFThreadData):
- * wtf/WTFThreadData.h:
- (WTF::WTFThreadData::resetCurrentIdentifierTable):
- 2011-01-03 Martin Robinson <mrobinson@igalia.com>
- Reviewed by Darin Adler.
- Remove the last non-GObject usage of PlatformRefPtr and move the code to GRefPtr
- https://bugs.webkit.org/show_bug.cgi?id=51846
- * GNUmakefile.am: Remove PlatformRefPtr.h from the sources list.
- * JavaScriptCore.vcproj/WTF/WTF.vcproj: Ditto.
- * jit/ExecutableAllocator.h: Change references to PlatformRefPtr to RefPtr.
- (JSC::ExecutableAllocator::cacheFlush): Ditto.
- * wtf/PlatformRefPtr.h: Removed.
- * wtf/RandomNumber.cpp: Change references to PlatformRefPtr to RefPtr.
- (WTF::randomNumber): Ditto.
- * wtf/brew/RefPtrBrew.h: Ditto.
- (WTF::refIfNotNull): Added.
- (WTF::derefIfNotNull): Added.
- * wtf/brew/ShellBrew.h: Change references to PlatformRefPtr to RefPtr.
- (WTF::createRefPtrInstance): Modified to return a RefPtr.
- * wtf/gobject/GRefPtr.cpp:
- (WTF::refGPtr): Moved from PlatformRefPtr here.
- (WTF::derefGPtr): Ditto.
- * wtf/gobject/GRefPtr.h: Ditto.
- (WTF::GRefPtr::GRefPtr): Ditto.
- (WTF::GRefPtr::~GRefPtr): Ditto.
- (WTF::GRefPtr::clear): Ditto.
- (WTF::GRefPtr::isHashTableDeletedValue): Ditto.
- (WTF::GRefPtr::get): Ditto.
- (WTF::GRefPtr::operator*): Ditto.
- (WTF::GRefPtr::operator->): Ditto.
- (WTF::GRefPtr::operator!): Ditto.
- (WTF::GRefPtr::operator UnspecifiedBoolType): Ditto.
- (WTF::GRefPtr::hashTableDeletedValue): Ditto.
- (WTF::::operator): Ditto.
- (WTF::::swap): Ditto.
- (WTF::swap): Ditto.
- (WTF::operator==): Ditto.
- (WTF::operator!=): Ditto.
- (WTF::static_pointer_cast): Ditto.
- (WTF::const_pointer_cast): Ditto.
- (WTF::getPtr): Ditto.
- (WTF::adoptGRef): Ditto.
- (WTF::refGPtr): Ditto.
- (WTF::derefGPtr): Ditto.
- 2011-01-04 Daniel Bates <dbates@rim.com>
- Reviewed by Adam Roben.
- LEAK: Deallocate instance of ThreadFunctionInvocation if thread creation fails
- https://bugs.webkit.org/show_bug.cgi?id=51860
- * wtf/ThreadingWin.cpp:
- (WTF::createThreadInternal):
- 2011-01-04 Laszlo Gombos <laszlo.1.gombos@nokia.com>
- Reviewed by Ariya Hidayat.
- [Qt][Symbian] Make sure that WebKit headers are included before platform headers on Symbian
- https://bugs.webkit.org/show_bug.cgi?id=31273
- On Symbian PREPEND_INCLUDEPATH is the best way to make sure that WebKit headers
- are included before platform headers. On all other platforms continue to use
- INCLUDEPATH (as before). This is a continuation of r65877.
- No new tests as there is no new functionality.
- * JavaScriptCore.pri:
- 2011-01-04 Darin Adler <darin@apple.com>
- Try to fix Windows build.
- * wtf/ThreadingWin.cpp: Added include of PassOwnPtr.h. Fixed paragraphing
- of conditional includes.
- (WTF::wtfThreadEntryPoint): Use -> instead of . to dereference pointer.
- (WTF::createThreadInternal): Tweaked #if to not need separate macro.
- 2011-01-04 Daniel Bates <dbates@rim.com>
- Reviewed by Adam Roben.
- Extract ThreadFunctionInvocation into separate file and share between Apple Windows and Android
- https://bugs.webkit.org/show_bug.cgi?id=51855
- Both the Apple Windows and Android ports implement a similar adapter structure,
- called ThreadFunctionInvocation and ThreadData respectively, as part of
- their thread creation process. Instead, we should share such an adapter
- structure and remove duplicate code.
- * JavaScriptCore.gypi: Added header wtf/ThreadFunctionInvocation.h.
- * wtf/ThreadFunctionInvocation.h: Added.
- (WTF::ThreadFunctionInvocation::ThreadFunctionInvocation):
- * wtf/ThreadingPthreads.cpp: Removed Android-specific structure ThreadData; Instead, use ThreadFunctionInvocation.
- (WTF::runThreadWithRegistration):
- (WTF::createThreadInternal):
- * wtf/ThreadingWin.cpp: Moved structure ThreadFunctionInvocation to its own file so that
- it can be shared with the Android implementation of createThreadInternal().
- (WTF::wtfThreadEntryPoint): Use OwnPtr to hold passed instance of ThreadFunctionInvocation.
- 2011-01-04 Daniel Bates <dbates@rim.com>
- Reviewed by Darin Adler.
- Use __builtin_expect when compiling using RVCT in GNU mode
- https://bugs.webkit.org/show_bug.cgi?id=51866
- Derived from a patch by Dave Tapuska.
- * wtf/AlwaysInline.h:
- 2011-01-03 Darin Adler <darin@apple.com>
- Reviewed by Brady Eidson.
- * wtf/Forward.h: Added Decoder and Encoder.
- 2011-01-03 Brady Eidson <beidson@apple.com>
- Reviewed by Darin Adler.
- Add Encode/Decode machinery Darin and I plan to work with for back/forward stuff in WebKit2.
- Starting out with a pure virtual interface to be implemented in WK2, but we might change that later.
- * GNUmakefile.am:
- * JavaScriptCore.vcproj/WTF/WTF.vcproj:
- * JavaScriptCore.xcodeproj/project.pbxproj:
- * wtf/CMakeLists.txt:
- * wtf/Decoder.h: Added.
- * wtf/Encoder.h: Added.
- 2011-01-03 Laszlo Gombos <laszlo.1.gombos@nokia.com>
- Unreviewed build fix.
- [Qt] Add NullPtr.cpp introduced in r71155 to the Qt build system.
- This fix is required for builds where HAVE(NULLPTR) is false
- (e.g. some MSVC and Symbian builds).
- * wtf/wtf.pri:
- 2011-01-02 Dan Bernstein <mitz@apple.com>
- Rubber-stamped by Simon Fraser.
- <rdar://problem/8812159> Update copyright strings
- * Info.plist:
- 2011-01-02 Csaba Osztrogonác <ossy@webkit.org>
- Fix GTK+ build after r74855.
- Reviewed by Xan Lopez.
- * GNUmakefile.am: Fix include pathes.
- 2011-01-02 Adam Barth <abarth@webkit.org>
- One more .. missing in the Qt build.
- * jsc.pro:
- 2011-01-02 Xan Lopez <xlopez@igalia.com>
- Fix GTK+ build.
- * GNUmakefile.am: add -I$(srcdir)/Source to the JSC cppflags so
- that anyone can include its headers without adding the prefix
- 'Source/'.
- 2011-01-02 Carl Lobo <carllobo@gmail.com>
- Reviewed by Adam Barth.
- Fix Windows Build for non-production where VSPropsRedirectionDir is not defined.
- https://bugs.webkit.org/show_bug.cgi?id=51797
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
- * JavaScriptCore.vcproj/JavaScriptCore/build-generated-files.sh:
- * JavaScriptCore.vcproj/WTF/WTF.vcproj:
- * JavaScriptCore.vcproj/jsc/jsc.vcproj:
- * JavaScriptCore.vcproj/testapi/testapi.vcproj:
- 2011-01-01 Adam Barth <abarth@webkit.org>
- Fix relative include paths in an attempt to fix the Qt build.
- * JavaScriptCore.pri:
- * JavaScriptCore.pro:
- 2011-01-01 Adam Barth <abarth@webkit.org>
- Another speculative build fix for GTK.
- * GNUmakefile.am:
- 2011-01-01 Adam Barth <abarth@webkit.org>
- Speculative build fix for GTK. Update the paths in GNUmakefile to
- include "Source".
- * GNUmakefile.am:
- 2011-01-01 Adam Barth <abarth@webkit.org>
- Update relative paths in JavaScriptCore.gyp to account for the extra
- level of directories.
- * JavaScriptCore.gyp/JavaScriptCore.gyp:
- 2010-12-31 Patrick Gansterer <paroga@webkit.org>
- Reviewed by Darin Adler.
- Add a fast case for ASCII strings in HashAndUTF8CharactersTranslator::equal
- https://bugs.webkit.org/show_bug.cgi?id=50517
- This change shows about 2% performance win on the xml-parser benchmark.
- * wtf/text/AtomicString.cpp:
- (WTF::HashAndUTF8CharactersTranslator::equal):
- 2010-12-30 Patrick Gansterer <paroga@webkit.org>
- Reviewed by Ariya Hidayat.
- [CMake] Add WTF_HEADERS
- https://bugs.webkit.org/show_bug.cgi?id=51741
- Add the WTF headers to show them in Visual Studio.
- * wtf/CMakeLists.txt:
- * wtf/CMakeListsWinCE.txt:
- 2010-12-30 Konstantin Tokarev <annulen@yandex.ru>
- Reviewed by David Kilzer.
- [Qt] Don't build wtf/TCSystemAlloc.cpp if --system-malloc option is
- used
- https://bugs.webkit.org/show_bug.cgi?id=51672
- * wtf/wtf.pri: Replaced USE_SYSTEM_MALLOC with USE_SYSTEM_MALLOC=1
- 2010-12-30 Patrick Gansterer <paroga@webkit.org>
- Reviewed by Darin Adler.
- Use OS(WINDOWS) instead of COMPILER(MSVC) in FastMalloc.cpp
- https://bugs.webkit.org/show_bug.cgi?id=51743
- Most of the ifdefs belong to windows and not to the MSVC compiler.
- * wtf/FastMalloc.cpp:
- 2010-12-29 Gavin Barraclough <barraclough@apple.com>
- Reviewed by Sam Weinig.
- Bug 51724 - In strict mode string literals should allow \0, but disallow \8 and \9.
- * parser/Lexer.cpp:
- (JSC::Lexer::parseString):
- 2010-12-29 Helder Correia <helder@sencha.com>
- Reviewed by Eric Seidel.
- <VT> and <FF> are not valid JSON whitespace characters
- https://bugs.webkit.org/show_bug.cgi?id=51671
- Vertical Tab and Form Feed are not allowed white spaces by the JSON
- RFC 4627: http://www.ietf.org/rfc/rfc4627.txt (2. JSON Grammar).
- Tests: ietestcenter/Javascript/15.12.1.1-0-2.html
- ietestcenter/Javascript/15.12.1.1-0-3.html
- * runtime/LiteralParser.cpp:
- (JSC::isJSONWhiteSpace):
- (JSC::LiteralParser::Lexer::lex):
- 2010-12-28 Helder Correia <helder@sencha.com>
- Reviewed by Eric Seidel.
- JSON.stringify must exist as a function taking 3 parameters
- https://bugs.webkit.org/show_bug.cgi?id=51667
- The reported function length is 1 instead.
- Test: ietestcenter/Javascript/15.12.3-0-2.html
- * runtime/JSONObject.cpp:
- 2010-12-28 Helder Correia <helder@sencha.com>
- Reviewed by Sam Weinig.
- JSON.parse must exist as a function taking 2 parameters
- https://bugs.webkit.org/show_bug.cgi?id=51666
- Support for revivers was introduced in bug 26591, but the function
- length has since remained unchanged.
- Test: ietestcenter/Javascript/15.12.2-0-2.html
- * runtime/JSONObject.cpp:
- 2010-12-27 Jake Helfert <jake@jakeonthenet.com>
- Reviewed and reworked by Darin Adler.
- Building WebKit with Visual Studio 2010 fails due
- to ambiguous assignment operator errors.
- https://bugs.webkit.org/show_bug.cgi?id=51116
- * wtf/NullPtr.h: Added a HAVE(NULLPTR) definition for use with
- Platform.h HAVE macro, and included the Visual Studio 2010 compiler
- as one of the ones that has nullptr.
- * wtf/NullPtr.cpp: Updated condition to match.
-
- * wtf/PassOwnArrayPtr.h: Don't include the operator=(nullptr_t)
- overload if we are compiling in loose mode and the compiler has
- nullptr, because assignment of 0 will otherwise encounter
- ambiguitity with this overload and the overload for loose mode
- that takes a raw pointer. The conditional can be removed when we
- get rid of loose mode.
- * wtf/PassOwnPtr.h: Ditto.
- * wtf/PassRefPtr.h: Don't include the operator=(nullptr_t) overload
- if the compiler has nullptr, because assignment of 0 would be
- ambiguous with the overload that takes a raw pointer. The conditional
- can be removed if we ever decide we no longer need to support
- assigning 0, but might need a way to catch that usage on older compilers.
- * wtf/RefPtr.h: Ditto.
- * wtf/RetainPtr.h: Ditto
- * JavaScriptCore.xcodeproj/project.pbxproj: Added NullPtr.cpp,
- accidentally omitted when the file was first added.
- 2010-12-26 Xan Lopez <xlopez@igalia.com>
- Reviewed by Eric Seidel.
- [GTK] Add standalone target for JSC
- https://bugs.webkit.org/show_bug.cgi?id=51607
- * GNUmakefile.am: add convenience target to only build jsc and its
- dependencies.
- 2010-12-24 Patrick Gansterer <paroga@webkit.org>
- Reviewed by Eric Seidel.
- [WINCE] Add CPU(MIPS) detection
- https://bugs.webkit.org/show_bug.cgi?id=51342
- WinCE usually defines MIPS and _MIPS_.
- * wtf/Platform.h:
- 2010-12-23 Gavin Barraclough <barraclough@apple.com>
- Reviewed by Sam Weinig.
- Rename RegexCompiler.cpp to RegexPattern.cpp.
- Implicitly call compileRegex from RegexPattern's constructor.
- * Android.mk:
- * CMakeLists.txt:
- * GNUmakefile.am:
- * JavaScriptCore.gypi:
- * JavaScriptCore.pro:
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
- * JavaScriptCore.xcodeproj/project.pbxproj:
- * runtime/RegExp.cpp:
- (JSC::RegExp::compile):
- * yarr/RegexCompiler.cpp: Removed.
- * yarr/RegexCompiler.h: Removed.
- * yarr/RegexInterpreter.cpp:
- * yarr/RegexJIT.cpp:
- * yarr/RegexPattern.cpp: Copied from JavaScriptCore/yarr/RegexCompiler.cpp.
- (JSC::Yarr::compileRegex):
- (JSC::Yarr::RegexPattern::RegexPattern):
- * yarr/RegexPattern.h:
- 2010-12-23 Patrick Gansterer <paroga@webkit.org>
- Unreviewed build fix for WinCE after r74360.
- Move the OS(WINDOWS) section after the OS(WINCE) section
- and add missing argument to the getStackMax call.
- * wtf/StackBounds.cpp:
- (WTF::StackBounds::initialize):
- 2010-12-22 Laszlo Gombos <laszlo.1.gombos@nokia.com>
- Unreviewed build fix.
- [Symbian] Make sure OSAllocatorSymbian builds
- This patch only addresses the build problem.
- https://bugs.webkit.org/show_bug.cgi?id=51128 tracks the full
- (re)implementation of the Symbian allocator.
- * wtf/OSAllocatorSymbian.cpp:
- (WTF::OSAllocator::reserveUncommitted):
- (WTF::OSAllocator::reserveAndCommit):
- (WTF::OSAllocator::commit):
- 2010-12-22 Dan Bernstein <mitz@apple.com>
- Changed WebKitTools to Tools.
- * JavaScriptCore.vcproj/JavaScriptCore.sln:
- 2010-12-22 Dan Bernstein <mitz@apple.com>
- Rubber-stamped by Mark Rowe.
- Changed WebKitTools to Tools in script build phases.
- * JavaScriptCore.xcodeproj/project.pbxproj:
- 2010-12-22 Andrei Popescu <andreip@google.com>
- Unreviewed build fix.
- Fix Chromium Linux shared library build.
- [Chromium] r74431 broke the Chromium Linux shared library build
- https://bugs.webkit.org/show_bug.cgi?id=51462
- * JavaScriptCore.gyp/JavaScriptCore.gyp:
- * JavaScriptCore.gypi:
- 2010-12-21 Sheriff Bot <webkit.review.bot@gmail.com>
- Unreviewed, rolling out r74462.
- http://trac.webkit.org/changeset/74462
- https://bugs.webkit.org/show_bug.cgi?id=51449
- broke chromium win (Requested by tonyg-cr on #webkit).
- * JavaScriptCore.gypi:
- 2010-12-21 Tony Gentilcore <tonyg@chromium.org>
- Unreviewed build fix.
- [chromium] Build fix after r74431
- https://bugs.webkit.org/show_bug.cgi?id=51447
- * JavaScriptCore.gypi:
- 2010-12-21 Gavin Barraclough <barraclough@apple.com>
- Windows build fix.
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
- 2010-12-21 Gavin Barraclough <barraclough@apple.com>
- Windows build fix.
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
- 2010-12-21 Gavin Barraclough <barraclough@apple.com>
- Speculative build fix.
- * jit/ExecutableAllocator.cpp:
- (JSC::ExecutableAllocator::underMemoryPressure):
- 2010-12-21 Gavin Barraclough <barraclough@apple.com>
- Reviewed by Oliver Hunt.
- Bug 26276 - Need a mechanism to determine stack extent
- This patch adds accurate stack size calculation for:
- DARWIN, QNX, UNIX
- We still need to fix:
- WINDOWS, SOLARIS, OPENBSD, SYMBIAN, HAIKU, WINCE
- * wtf/StackBounds.cpp:
- (WTF::StackBounds::initialize):
- 2010-12-21 Gavin Barraclough <barraclough@apple.com>
- Reviewed by Geoff Garen.
-
- <rdar://problem/8765333> CRASH running out of executable memory, loading io9.com
- https://bugs.webkit.org/show_bug.cgi?id=51443
- The problem here is that each page uses a reasonable amount of memory, (~4Mb),
- and that when miultiple pages are open we keep all JIT code for all functions
- in all pages alive.
- Add a check to detect high memory pressure situations in the executable allocator
- (>50% of available memory allocated), and upon a top level entry into JSC (no code
- running on the stack) in this situation throw away all JIT code.
- * JavaScriptCore.exp:
- * debugger/Debugger.cpp:
- (JSC::Debugger::recompileAllJSFunctions): stop passing exec to recompile.
- * jit/ExecutableAllocator.h:
- * jit/ExecutableAllocatorFixedVMPool.cpp:
- (JSC::ExecutablePool::systemAlloc): Count allocations.
- (JSC::ExecutablePool::systemRelease): Count deallocations.
- (JSC::ExecutablePool::underMemoryPressure): Check memory pressure.
- * jit/ExecutableAllocatorPosix.cpp:
- (JSC::ExecutablePool::underMemoryPressure): Stub out; only meaningful with FixedVMPool.
- * jit/ExecutableAllocatorWin.cpp:
- (JSC::ExecutablePool::underMemoryPressure): Stub out; only meaningful with FixedVMPool.
- * runtime/Executable.cpp:
- (JSC::FunctionExecutable::recompile): Remove ExecState argument to recompile.
- * runtime/Executable.h:
- * runtime/JSGlobalData.cpp:
- (JSC::JSGlobalData::recompileAllJSFunctions): throws away all JIT code.
- * runtime/JSGlobalData.h:
- * runtime/JSGlobalObject.h:
- (JSC::DynamicGlobalObjectScope::DynamicGlobalObjectScope): add check / call to throw away.
- 2010-12-21 Gavin Barraclough <barraclough@apple.com>
- Reviewed by Geoff Garen.
- <rdar://problem/8241425> JIT executable memory excessive usage due to regex caching
- https://bugs.webkit.org/show_bug.cgi?id=51434
- Reduce the amount of memory the RegExpCache can hold on to on iOS.
- Currently the RegExpCache can hold 256 RegExp objects. If each falls into a separate
- ExecutablePool, with a common size of 16Kb, this means we end up holding onto 4Mb of
- memory. Firstly, we can reduce this by simply reducing the size of the cache to 32
- entries. Secondly, we can use a separate set of ExecutablePools for JIT code generated
- from RegExp objects. This helps in two ways (1) it increases the probability that
- RegExps in the cache share the same pool, and (2) it means that a RegExp can't end
- up holding on to a large ExecutablePool containing a translation of JS code.
- (A RegExp could end up keeping a larger RegExp alive that happened to be sharing the
- same pool, but large RegExp patterns are less common).
- * runtime/JSGlobalData.h:
- * runtime/RegExpCache.h:
- * yarr/RegexJIT.cpp:
- (JSC::Yarr::RegexGenerator::compile):
- 2010-12-21 Gavin Barraclough <barraclough@apple.com>
- Windows build fix.
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
- 2010-12-21 Gavin Barraclough <barraclough@apple.com>
- Eeeep! build fix!
- * wtf/OSAllocator.h:
- (WTF::OSAllocator::decommitAndRelease):
- 2010-12-21 Gavin Barraclough <barraclough@apple.com>
- Ooops, fixed typo in comment.
- * wtf/OSAllocator.h:
- 2010-12-21 Geoffrey Garen <ggaren@apple.com>
- Reviewed by Gavin Barraclough & Oliver Hunt.
- Added PageAllocationAligned, a cross-platform abstraction for memory allocations with arbitrary alignment requirements
- https://bugs.webkit.org/show_bug.cgi?id=51359
-
- I think this patch fixes <rdar://problem/8107952> [5.0.1] WER crash in
- Heap::allocateBlock (1902752929), and some other leaks and crashes as well.
- * Android.mk:
- * CMakeLists.txt:
- * GNUmakefile.am:
- * JavaScriptCore.gypi:
- * JavaScriptCore.vcproj/WTF/WTF.vcproj:
- * JavaScriptCore.xcodeproj/project.pbxproj: Updated build files.
- * runtime/AlignedMemoryAllocator.h: Removed. Supplanted by
- PageAllocationAligned.
- * runtime/Collector.cpp:
- (JSC::Heap::destroy):
- (JSC::Heap::allocateBlock):
- (JSC::Heap::freeBlock):
- (JSC::Heap::addWeakGCHandle):
- * runtime/Collector.h: Switched from AlignedMemoryAllocator to
- PageAllocationAligned.
- * runtime/GCHandle.cpp:
- * runtime/GCHandle.h: Ditto.
- * wtf/PageAllocation.h:
- (WTF::PageAllocation::PageAllocation): Removed aligned memory allocation
- functions. Supplanted by PageAllocationAligned.
- * wtf/PageAllocationAligned.cpp: Added.
- (WTF::PageAllocationAligned::allocate):
- (WTF::PageAllocationAligned::deallocate):
- * wtf/PageAllocationAligned.h: Added.
- (WTF::PageAllocationAligned::PageAllocationAligned): New cross-platform
- class for doing aligned memory allocation. This class properly matches
- allocation and deallocation library calls, fixing a long-standing bug
- in PageAllocation.
- * wtf/Platform.h: Removed some defunction VM platform defines.
- * wtf/wtf.pri: Updated build files.
- 2010-12-21 Oliver Hunt <oliver@apple.com>
- Reviewed by Gavin Barraclough.
- ASSERTION FAILED: base->index() == m_codeBlock->argumentsRegister() while loading taobao.com
- https://bugs.webkit.org/show_bug.cgi?id=49006
- This problem was caused by having a parameter named 'arguments'.
- The fix is to treat parameters named 'arguments' as shadowing
- the actual arguments property, and so logically turn the function
- into one that doesn't "use" arguments.
- This required a bit of fiddling in the parser to ensure we correctly
- propagate the 'feature' of shadowing is set correctly.
- * bytecompiler/BytecodeGenerator.cpp:
- (JSC::BytecodeGenerator::createArgumentsIfNecessary):
- Change assertion to an early return as we may now reference
- a property named 'arguments' without being in a function that
- has the ArgumentsFeature
- * parser/JSParser.cpp:
- (JSC::JSParser::Scope::Scope):
- (JSC::JSParser::Scope::declareParameter):
- (JSC::JSParser::Scope::shadowsArguments):
- (JSC::JSParser::parseProgram):
- (JSC::JSParser::parseFormalParameters):
- (JSC::JSParser::parseFunctionInfo):
- * parser/Nodes.h:
- (JSC::ScopeNode::usesArguments):
- 2010-12-21 Daniel Bates <dbates@rim.com>
- Reviewed by Eric Seidel and Darin Adler.
- Deallocate GregorianDateTime.timeZone (if allocated) when copying so that we don't leak memory.
- https://bugs.webkit.org/show_bug.cgi?id=51367
- Inspired by a patch by George Staikos.
- * wtf/DateMath.cpp:
- (JSC::msToGregorianDateTime): Modified to set timeZone to nullptr since timeZone is now
- of type OwnPtrArray<char>.
- * wtf/DateMath.h: Change timeZone to type OwnArrayPtr<char>; Removed destructor since it is no longer needed.
- (JSC::GregorianDateTime::GregorianDateTime): Modified to use OwnPtrArray semantics for timeZone.
- (JSC::GregorianDateTime::operator tm): Ditto.
- (JSC::GregorianDateTime::copyFrom): Ditto.
- 2010-12-21 Sheriff Bot <webkit.review.bot@gmail.com>
- Unreviewed, rolling out r74402.
- http://trac.webkit.org/changeset/74402
- https://bugs.webkit.org/show_bug.cgi?id=51402
- This patch broke the Windows 7 Release Layout Tests (Requested
- by jessieberlin on #webkit).
- * wtf/StackBounds.cpp:
- (WTF::estimateStackBound):
- (WTF::StackBounds::initialize):
- 2010-12-21 Peter Varga <pvarga@inf.u-szeged.hu>
- Reviewed by Csaba Osztrogonác.
- Unify the name of parentheses in YARR: rename parenthesis to
- parentheses.
- * yarr/RegexCompiler.cpp:
- (JSC::Yarr::RegexPatternConstructor::atomParenthesesEnd):
- 2010-12-21 Laszlo Gombos <laszlo.1.gombos@nokia.com>
- Reviewed by Andreas Kling.
- [Qt] Set BUILDING_QT__ consistently
- https://bugs.webkit.org/show_bug.cgi?id=51341
- * JavaScriptCore.pri: Remove the definition of BUILDING_QT__ as it
- is already defined in WebKit.pri.
- 2010-12-20 Gavin Barraclough <barraclough@apple.com>
- Reviewed by Oliver Hunt.
- Bug 26276 - Need a mechanism to determine stack extent
- This patch adds accurate stack size calculation for:
- DARWIN, WINDOWS, QNX, UNIX
- We still need to fix:
- SOLARIS, OPENBSD, SYMBIAN, HAIKU, WINCE
- * wtf/StackBounds.cpp:
- (WTF::StackBounds::initialize):
- 2010-12-20 Gavin Barraclough <barraclough@apple.com>
- PPC build fix; stop using std::swap on PageAllocation/PageReservation,
- this was failing on some compilers since the lack of default construction
- for the m_executable/m_writable fields meant the value being swapped may
- not have been fully initialized.
- * wtf/PageAllocation.h:
- (WTF::PageAllocation::deallocate):
- * wtf/PageBlock.h:
- * wtf/PageReservation.h:
- (WTF::PageReservation::deallocate):
- 2010-12-20 Oliver Hunt <oliver@apple.com>
- Reviewed by Geoffrey Garen.
- |delete name| in strict mode code should be an early error
- https://bugs.webkit.org/show_bug.cgi?id=50431
- Disallow the |delete IDENTIFIER| production in strict mode, and removed
- a bunch of now unnecessary code.
- * parser/JSParser.cpp:
- (JSC::JSParser::Scope::collectFreeVariables):
- (JSC::jsParse):
- (JSC::JSParser::parseProgram):
- (JSC::JSParser::parseUnaryExpression):
- * parser/JSParser.h:
- * parser/Parser.cpp:
- (JSC::Parser::parse):
- * parser/Parser.h:
- (JSC::Parser::parse):
- 2010-12-20 Gavin Barraclough <barraclough@apple.com>
- Reviewed by Olver Hunt.
- Bug 51358 - Should check stack depth rather than using recursion limits in byte compilation
- The current implementation of recursion limit checking is not safe on smaller stacks.
- Switch to using a common mechanism, shared with the parser, to check recursion limits.
- Make bytecompiler use StackBounds. Empirical testing shows emitStrcat to have the largest
- footprint on the stack, at just under 1k on x86-64. Given this, the default recursion
- check (requiring 4k of available space to recurse) seems reasonable.
- * bytecompiler/BytecodeGenerator.cpp:
- (JSC::BytecodeGenerator::BytecodeGenerator):
- * bytecompiler/BytecodeGenerator.h:
- (JSC::BytecodeGenerator::emitNode):
- (JSC::BytecodeGenerator::emitNodeInConditionContext):
- * bytecompiler/NodesCodegen.cpp:
- (JSC::BinaryOpNode::emitStrcat):
- 2010-12-20 Tony Gentilcore <tonyg@chromium.org>
- Unreviewed build fix.
- Include pthread to fix chromium mac build (broken by r74360)
- https://bugs.webkit.org/show_bug.cgi?id=51356
- * wtf/StackBounds.cpp:
- 2010-12-20 Xan Lopez <xlopez@igalia.com>
- Reviewed by Gustavo Noronha.
- * GNUmakefile.am: add missing files.
- 2010-12-18 Gavin Barraclough <barraclough@apple.com>
- Reviewed by Oliver Hunt.
- Bug 26276 - Need a mechanism to determine stack extent
- This patch adds a class 'StackBounds', to hold information about the machine stack.
- The implementation of this class broadly adheres to the current implmentation of
- stack limit checking, and as such does not solve the problem of determining stack
- extent, but gives us a common place to do so.
- Currently two mechanism are provided to determine the stack origin (the point the
- stack is growing away from). currentThreadStackBase() in Collector provides a
- more accurate determination of the stack origin, so use this to calculate
- StackBounds::m_origin; WTFThreadData::approximatedStackStart is less accurate, and
- as such can be removed. Cache the StackBounds on WTFThreadData such that they
- need only be determined once per thread, and for non-API contexts cache this
- information in JSGlobalData, to save a thread-specific access.
- For the time being retain the estimate of stack size used by JSC's parser
- (128 * sizeof(void*) * 1024), with a view to replacing this with something more
- accurate in the near future.
- * parser/JSParser.cpp:
- (JSC::JSParser::canRecurse):
- (JSC::JSParser::JSParser):
- Change to use StackBounds.
- * runtime/Collector.cpp:
- (JSC::Heap::registerThread):
- (JSC::Heap::markCurrentThreadConservativelyInternal):
- Change to use StackBounds, cached on JSGlobalData.
- * runtime/JSGlobalData.cpp:
- (JSC::JSGlobalData::JSGlobalData):
- * runtime/JSGlobalData.h:
- (JSC::JSGlobalData::stack):
- Add a cached copy of StackBounds.
- * wtf/StackBounds.cpp: Copied from JavaScriptCore/runtime/Collector.cpp.
- (WTF::estimateStackBound):
- (WTF::StackBounds::initialize):
- (WTF::getStackMax):
- Copy code from Collector.cpp to determine stack origin.
- * wtf/StackBounds.h: Added.
- (WTF::StackBounds::StackBounds):
- No argument constructor; returns a null StackBounds.
- (WTF::StackBounds::currentThreadStackBounds):
- Returns a StackBounds object representing the stack limits
- of the current thread.
- (WTF::StackBounds::origin):
- Returns to stack origin (the point the stack is growing away
- from; the highest extent of the stack on machines where the
- stack grows downwards.
- (WTF::StackBounds::recursionLimit):
- Returns a limit value that is 'a comfortable distance from
- the end of the stack'. Our concept of this is currently 1 page
- away from the end, however the default value may be tuned in
- the future, and clients may override passing a larger delta;
- should only be called on StackBounds object representing the
- stack of the thread this method is called on (checked by
- checkConsistency).
- (WTF::StackBounds::recursionCheck):
- Checks whether we are currently 'a comfortable distance from
- the end of the stack'. Our concept of this is currently 1 page
- away from the end, however the default value may be tuned in
- the future, and clients may override passing a larger delta
- to apply when checking, if they wish to do so. This method
- should only be called on StackBounds object representing the
- stack of the thread this method is called on (checked by
- checkConsistency).
- (WTF::StackBounds::current):
- Approximate current stack position. On machines where the stack
- is growing downwards this is the lowest address that might need
- conservative collection.
- (WTF::StackBounds::isGrowingDownward):
- True for all platforms other than WINCE, which has to check.
- (WTF::StackBounds::checkConsistency):
- This is called in methods that shoulds only be operating on a
- valid set of bounds; as such we expect m_origin != m_bounds
- (i.e. stack size != zero) - we're really testing that this
- object is not null (the constructor initializes both fields
- to zero). Also checks that current() is within the stack's
- bounds.
- * wtf/WTFThreadData.cpp:
- (WTF::WTFThreadData::WTFThreadData):
- * wtf/WTFThreadData.h:
- (WTF::WTFThreadData::stack):
- Add the StackBounds member variable.
- 2010-12-17 Geoffrey Garen <ggaren@apple.com>
- Reviewed by Sam Weinig.
- Factored common page set management into a new PageBlock base class
- https://bugs.webkit.org/show_bug.cgi?id=51285
- * Android.mk:
- * CMakeLists.txt:
- * GNUmakefile.am:
- * JavaScriptCore.gypi:
- * JavaScriptCore.vcproj/WTF/WTF.vcproj:
- * JavaScriptCore.xcodeproj/project.pbxproj:
- * interpreter/RegisterFile.h:
- (JSC::RegisterFile::RegisterFile):
- * jit/ExecutableAllocator.cpp:
- (JSC::ExecutableAllocator::intializePageSize):
- * wtf/PageAllocation.cpp: Removed.
- * wtf/PageAllocation.h:
- (WTF::PageAllocation::deallocate):
- (WTF::PageAllocation::PageAllocation):
- * wtf/PageReservation.h:
- (WTF::PageReservation::commit):
- (WTF::PageReservation::decommit):
- (WTF::PageReservation::deallocate):
- (WTF::PageReservation::PageReservation):
- * wtf/wtf.pri:
- 2010-12-17 Michael Saboff <msaboff@apple.com>
- Reviewed by Oliver Hunt.
- RegExp Jit'ed expression crashes clicking link on yelp.com
- https://bugs.webkit.org/show_bug.cgi?id=51284
- When transitioning between an non-repeating beginning of line
- anchored expression and the remaining refactored repeating
- expression, we should not clear any residual datalabel in
- state's m_backtrack. It will be resolved and cleared in subsequent
- code when linkAlternativeBacktracks() is called for the repeating
- alternative(s).
- * yarr/RegexJIT.cpp:
- (JSC::Yarr::RegexGenerator::BacktrackDestination::clear):
- (JSC::Yarr::RegexGenerator::TermGenerationState::clearBacktrack):
- 2010-12-17 Dan Bernstein <mitz@apple.com>
- Rubber-stamped by Mark Rowe.
- Updated for the renaming of WebKitTools to Tools
- * JavaScriptCore.vcproj/JavaScriptCore/build-generated-files.sh:
- 2010-12-17 Ariya Hidayat <ariya@sencha.com>
- Reviewed by Oliver Hunt.
- [JSC] parseAssignmentExpression should use TreeBuilder::CreatesAST
- https://bugs.webkit.org/show_bug.cgi?id=51268
- * parser/JSParser.cpp:
- (JSC::JSParser::parseAssignmentExpression):
- 2010-12-17 Geoffrey Garen <ggaren@apple.com>
- Reviewed by Oliver Hunt.
- Removed RChunk from PageAllocation/PageReservation, since it's now unused.
- https://bugs.webkit.org/show_bug.cgi?id=51276
- * wtf/PageAllocation.h:
- (WTF::PageAllocation::PageAllocation):
- * wtf/PageReservation.h:
- (WTF::PageReservation::PageReservation):
- 2010-12-17 Oliver Hunt <oliver@apple.com>
- Reviewed by Gavin Barraclough.
- Incorrect encoding of some constants in ARMv7 JIT
- https://bugs.webkit.org/show_bug.cgi?id=51273
- <rdar://problem/8650210>
- When using immediate encoding 3 we need to write the byte
- that holds a duplicated value.
- * assembler/ARMv7Assembler.h:
- (JSC::ARMThumbImmediate::makeEncodedImm):
- 2010-12-16 Evan Martin <evan@chromium.org>
- Reviewed by Darin Fisher.
- [chromium] useless warnings when building on Windows
- https://bugs.webkit.org/show_bug.cgi?id=50985
- Disable some compiler warnings that aren't indicative of real problems.
- * JavaScriptCore.gyp/JavaScriptCore.gyp:
- 2010-12-16 Pratik Solanki <psolanki@apple.com>
- Reviewed by Geoffrey Garen.
- https://bugs.webkit.org/show_bug.cgi?id=51166
- ExecutableAllocator::cacheFlush should call sys_cache_control
- * jit/ExecutableAllocator.h:
- (JSC::ExecutableAllocator::cacheFlush): Use the more correct and forward looking API -
- sys_cache_control(kCacheFunctionPrepareForExecution,...).
- 2010-12-16 Ariya Hidayat <ariya@sencha.com>
- Reviewed by Andreas Kling.
- [JSC] Const correctness in ASTBuilder and SyntaxChecker
- https://bugs.webkit.org/show_bug.cgi?id=51141
- * parser/ASTBuilder.h:
- (JSC::ASTBuilder::getName):
- (JSC::ASTBuilder::getType):
- (JSC::ASTBuilder::isResolve):
- * parser/SyntaxChecker.h:
- (JSC::SyntaxChecker::operatorStackPop):
- 2010-12-15 Kenneth Russell <kbr@google.com>
- Reviewed by James Robinson.
- Web Audio API: port FFTFrame to MKL
- https://bugs.webkit.org/show_bug.cgi?id=50986
- Fixed bug in log2 emulation function provided for Windows port of
- Web Audio API.
- * wtf/MathExtras.h:
- (log2):
- 2010-12-14 Mark Rowe <mrowe@apple.com>
- Reviewed by Sam Weinig.
- <http://webkit.org/b/51064> Reproducible crash inside WebCore::MediaPlayerPrivateQTKit::createQTMovie when loading <video>
- * wtf/text/WTFString.h: Prevent String from being implicitly convertable to bool.
- It was previously implicitly convertible to bool on Mac via operator NSString*,
- but since that always has a non-zero return value it would give unexpected results.
- 2010-12-14 Laszlo Gombos <laszlo.1.gombos@nokia.com>
- Reviewed by Eric Seidel.
- [Qt] [Symbian] Do not use pkg-config on Symbian as it is not supported
- https://bugs.webkit.org/show_bug.cgi?id=50231
- Guard CONFIG+=link_pkgconfig with !symbian.
- * jsc.pro:
- 2010-12-14 Cameron Zwarich <zwarich@apple.com>
- Not reviewed.
- Revert accidental change disabling the JIT for most platforms.
- * wtf/Platform.h:
- 2010-12-13 Cameron Zwarich <zwarich@apple.com>
- Reviewed by Eric Seidel.
- Clang fails to build the JSC interpreter
- https://bugs.webkit.org/show_bug.cgi?id=51016
- Clang does not allow indirect gotos out of scopes with cleanup. GCC 4.2 allows
- them, but it does not correctly generate the cleanup, causing a leak if the
- cleanup decrements a reference count.
- * interpreter/Interpreter.cpp:
- (JSC::Interpreter::privateExecute): Put an Identifier into its own scope.
- 2010-12-14 Carlos Garcia Campos <cgarcia@igalia.com>
- Reviewed by Martin Robinson.
- [GTK] Simplify context-menu handling code
- https://bugs.webkit.org/show_bug.cgi?id=49658
- * wtf/PlatformRefPtr.h: Add leakRef()
- 2010-12-13 Cameron Zwarich <zwarich@apple.com>
- Reviewed by Gavin Barraclough.
- JavaScriptCore should not use "asm volatile" outside of a function
- https://bugs.webkit.org/show_bug.cgi?id=50991
- * jit/JITStubs.cpp: Remove the volatile keyword from asm statements.
- 2010-12-13 Steve Falkenburg <sfalken@apple.com>
- Windows production build fix.
- Try copying ICU 4.6 in addition to 4.4 and 4.2.
- * JavaScriptCore.vcproj/jsc/jscPostBuild.cmd:
- 2010-12-13 Michael Saboff <msaboff@apple.com>
- Reviewed by Oliver Hunt.
- REGRESSION: mobileme mail viewing is broken
- https://bugs.webkit.org/show_bug.cgi?id=50884
- Fixed problem where simple parenthesis (those without capture and
- with a fixed count) where not propagating backtrack to labels for
- nested parentheses. Also added the nesting level for the parentheses
- state created in that case as well.
- * yarr/RegexJIT.cpp:
- (JSC::Yarr::RegexGenerator::BacktrackDestination::copyBacktrackToLabel):
- (JSC::Yarr::RegexGenerator::TermGenerationState::isLastTerm):
- (JSC::Yarr::RegexGenerator::ParenthesesTail::generateCode):
- (JSC::Yarr::RegexGenerator::generateParenthesesSingle):
- 2010-12-13 Peter Varga <pvarga@inf.u-szeged.hu>
- Reviewed by Gavin Barraclough.
- Reduce the size of the RegexStackSpaceForBackTrackInfoParentheses in YARR
- https://bugs.webkit.org/show_bug.cgi?id=49385
- Remove the BackTrackInfoParentheses struct prevBegin and prevEnd members.
- * yarr/RegexInterpreter.cpp:
- (JSC::Yarr::Interpreter::matchParentheses):
- (JSC::Yarr::Interpreter::backtrackParentheses):
- * yarr/RegexPattern.h:
- 2010-12-10 Michael Saboff <msaboff@apple.com>
- Reviewed by Gavin Barraclough.
- REGRESSION Hang inside Yarr::RegexCodeBlock::execute when visiting
- bugs.webkit.org
- https://bugs.webkit.org/show_bug.cgi?id=50816
- First nested parentheses of the second or greater alternative
- where backtracking to the prior parentheses. Changed the default
- handling of initial parentheses for all alternatives to go back
- to the immediate outer paren.
- * yarr/RegexJIT.cpp:
- (JSC::Yarr::RegexGenerator::GenerationState::addParenthesesTail):
- (JSC::Yarr::RegexGenerator::TermGenerationState::TermGenerationState):
- (JSC::Yarr::RegexGenerator::TermGenerationState::isLastTerm):
- (JSC::Yarr::RegexGenerator::TermGenerationState::getTermIndex):
- (JSC::Yarr::RegexGenerator::TermGenerationState::setParenthesesTail):
- (JSC::Yarr::RegexGenerator::TermGenerationState::getParenthesesTail):
- (JSC::Yarr::RegexGenerator::ParenthesesTail::ParenthesesTail):
- (JSC::Yarr::RegexGenerator::ParenthesesTail::processBacktracks):
- (JSC::Yarr::RegexGenerator::ParenthesesTail::generateCode):
- (JSC::Yarr::RegexGenerator::generateParenthesesSingle):
- 2010-12-11 Patrick Gansterer <paroga@webkit.org>
- Reviewed by Darin Adler.
- Add an overload to makeString for Vector<char>
- https://bugs.webkit.org/show_bug.cgi?id=50123
- Also cleanup StringTypeAdapter.
- * wtf/text/StringConcatenate.h:
- 2010-12-10 Siddharth Mathur <siddharth.mathur@nokia.com>
- Reviewed by Eric Seidel.
- [Qt] Build fix for Symbian: don't compile POSIX memory management implementation
- https://bugs.webkit.org/show_bug.cgi?id=50707
- * wtf/wtf.pri:
- 2010-12-10 Steve Falkenburg <sfalken@apple.com>
- Windows production build fix.
-
- Don't stop if react-to-vsprops-changes.py exits with an error,
- since this will occur in production builds.
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreGenerated.make:
- 2010-12-10 Brian Weinstein <bweinstein@apple.com>
- Reviewed by Adam Roben.
- Turn on USE(CROSS_PLATFORM_CONTEXT_MENUS) for Windows.
- * wtf/Platform.h:
- 2010-12-10 Martin Robinson <mrobinson@igalia.com>
- Unreviewed, rolling out r73703.
- http://trac.webkit.org/changeset/73703
- https://bugs.webkit.org/show_bug.cgi?id=49658
- This patch is causing crashes on the GTK+ bots.
- * wtf/PlatformRefPtr.h:
- 2010-12-10 Patrick Gansterer <paroga@webkit.org>
- Reviewed by Eric Seidel.
- Cleanup StringWx.cpp
- https://bugs.webkit.org/show_bug.cgi?id=50525
- Use StringImpl::createUninitialized to avoid memcpy and fix style issues.
- * wtf/wx/StringWx.cpp:
- (WTF::String::String):
- 2010-12-10 Carlos Garcia Campos <cgarcia@igalia.com>
- Reviewed by Martin Robinson.
- [GTK] Simplify context-menu handling code
- https://bugs.webkit.org/show_bug.cgi?id=49658
- * wtf/PlatformRefPtr.h:
- 2010-12-09 Michael Saboff <msaboff@apple.com>
- Reviewed by Gavin Barraclough.
- REGRESSION (r73065?): A regex no longer works
- https://bugs.webkit.org/show_bug.cgi?id=50570
- Changed the handling of adjacent parentheses backtracks in two ways.
- First, only outer most paren backtracks default to back tracking
- to the "next character" looping code. Second, added a jump around
- backtracks that fall through to the next backtrack where the
- second backtrack has some greedy processing before the backtracking
- from outside the parentheses code.
- Also cleaned up extraneous white spce, removing white space at the
- end of or that makes up a whole line.
- * yarr/RegexJIT.cpp:
- (JSC::Yarr::RegexGenerator::GenerationState::GenerationState):
- (JSC::Yarr::RegexGenerator::GenerationState::incrementParenNestingLevel):
- (JSC::Yarr::RegexGenerator::GenerationState::decrementParenNestingLevel):
- (JSC::Yarr::RegexGenerator::GenerationState::addParenthesesTail):
- (JSC::Yarr::RegexGenerator::GenerationState::emitParenthesesTail):
- (JSC::Yarr::RegexGenerator::ParenthesesTail::ParenthesesTail):
- (JSC::Yarr::RegexGenerator::ParenthesesTail::setNextIteration):
- (JSC::Yarr::RegexGenerator::ParenthesesTail::generateCode):
- (JSC::Yarr::RegexGenerator::generateParenthesesSingle):
- 2010-12-09 Michael Saboff <msaboff@apple.com>
- Reviewed by Geoffrey Garen.
- Addressed the "FIXME" issues in array sort for toString() methods that
- mutate the array in either size or contents. The change is to mark
- the temporary array contents so that they are not garbage collected
- and to make sure the array is large enough to hold the contents
- of the sorted temporary vector.
- https://bugs.webkit.org/show_bug.cgi?id=50718
- * runtime/Collector.cpp:
- (JSC::Heap::addTempSortVector):
- (JSC::Heap::removeTempSortVector):
- (JSC::Heap::markTempSortVectors):
- (JSC::Heap::markRoots):
- * runtime/Collector.h:
- * runtime/JSArray.cpp:
- (JSC::JSArray::sort):
- * runtime/JSValue.h:
- 2010-12-09 Michael Saboff <msaboff@apple.com>
- Reviewed by Darin Adler.
- Changed setting of backtrack labels to not overwrite a prior
- label. Where losing prior labe which then reverted back to
- next character label.
- https://bugs.webkit.org/show_bug.cgi?id=50579
- * yarr/RegexJIT.cpp:
- (JSC::Yarr::RegexGenerator::BacktrackDestination::setBacktrackToLabel):
- 2010-12-08 Gavin Barraclough <barraclough@apple.com>
- Reviewed by Sam Weinig.
- Permit Character Class Escape in CharacterRange in Character Class.
- https://bugs.webkit.org/show_bug.cgi?id=50483
- https://bugs.webkit.org/show_bug.cgi?id=50538
- https://bugs.webkit.org/show_bug.cgi?id=50654
- https://bugs.webkit.org/show_bug.cgi?id=50646
- We recently tightened up our spec conformance in generating syntax
- error in these cases, however testing in the wild has shown this
- to be problematic. This reverts the previous change in allowing
- class escapes (e.g. \d) in ranges in character classes ([]), but
- does retain some closer conformance to the spec in only allowing
- ranges that would be permitted per the grammar rules in the spec
- (e.g. in /[\d-a-z]/ "a-z" cannot be considered as a range).
- * yarr/RegexParser.h:
- (JSC::Yarr::Parser::CharacterClassParserDelegate::atomPatternCharacter):
- (JSC::Yarr::Parser::CharacterClassParserDelegate::atomBuiltInCharacterClass):
- (JSC::Yarr::Parser::parse):
- 2010-12-08 Geoffrey Garen <ggaren@apple.com>
- Reviewed by Sam Weinig.
- Try to fix crash-on-launch seen on Windows builder.
- * wtf/OSAllocatorWin.cpp:
- (WTF::OSAllocator::release): Disabled an ASSERT, because it checks for
- a bug that hasn't been fixed yet.
- 2010-12-08 Geoffrey Garen <ggaren@apple.com>
- Try to fix Windows build.
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: Updated .def file.
- 2010-12-08 Geoffrey Garen <ggaren@apple.com>
- Try to fix Windows build.
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: Updated .def
- file to remove a symbol -- the next build failure will say which symbol
- to add back.
- 2010-12-08 Geoffrey Garen <ggaren@apple.com>
- Try to fix Windows build.
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: Updated .def file.
- 2010-12-08 Geoffrey Garen <ggaren@apple.com>
- Try to fix GTK Linux build.
- * jit/ExecutableAllocator.cpp:
- (JSC::ExecutablePool::systemAlloc):
- * runtime/AlignedMemoryAllocator.h:
- (JSC::::AlignedMemoryAllocator): Updated for Usage enum moving to OSAllocator.
- 2010-12-07 Geoffrey Garen <ggaren@apple.com>
- Reviewed by Sam Weinig.
- Migrated OS-specific allocation code from PageReservation and PageAllocation to OSAllocator
- https://bugs.webkit.org/show_bug.cgi?id=50653
- * JavaScriptCore.exp: Updated for new function signature.
- * interpreter/RegisterFile.h:
- (JSC::RegisterFile::RegisterFile):
- (JSC::RegisterFile::grow):
- * jit/ExecutableAllocatorFixedVMPool.cpp:
- (JSC::FixedVMPoolAllocator::reuse):
- (JSC::FixedVMPoolAllocator::FixedVMPoolAllocator): Removed checkAllocatedOkay.
- OSAllocator is now the central location for verifying that allocation succeeds.
- This allowed me to remove some complicating cross-platform cruft.
- * runtime/AlignedMemoryAllocator.h:
- (JSC::::allocate): Updated for code motion.
- * wtf/OSAllocator.h: Added Usage, writable, and executable parameters, to
- support VM features required by clients of PageAllocation and PageReservation.
- * wtf/OSAllocatorPosix.cpp:
- (WTF::OSAllocator::reserve):
- (WTF::OSAllocator::reserveAndCommit):
- (WTF::OSAllocator::commit): Moved PageAllocation support for randomizing
- executable memory here.
- * wtf/OSAllocatorSymbian.cpp:
- (WTF::OSAllocator::reserve):
- (WTF::OSAllocator::reserveAndCommit):
- (WTF::OSAllocator::commit): Updated for new function signatures.
- * wtf/OSAllocatorWin.cpp:
- (WTF::protection):
- (WTF::OSAllocator::reserve):
- (WTF::OSAllocator::reserveAndCommit):
- (WTF::OSAllocator::commit):
- (WTF::OSAllocator::release): Updated for new function signatures. Moved
- some protection-related and WINCE-related code from PageAllocation here.
- * wtf/PageAllocation.cpp: Nixed cross-platform lastError abstraction, since
- it was only used by checkAllocatedOkay, which is now gone.
- * wtf/PageAllocation.h:
- (WTF::PageAllocation::allocate):
- (WTF::PageAllocation::allocateAligned):
- (WTF::PageAllocation::deallocate):
- (WTF::PageAllocation::isPowerOfTwo):
- (WTF::PageAllocation::systemAllocateAligned): Removed system* functions,
- and replaced calls to them with calls to OSAllocator.
- * wtf/PageReservation.h:
- (WTF::PageReservation::commit):
- (WTF::PageReservation::decommit):
- (WTF::PageReservation::reserve):
- (WTF::PageReservation::deallocate):
- (WTF::PageReservation::PageReservation): Ditto. Added m_writable and
- m_executable because these flags are now required when committing memory.
- 2010-12-08 Chris Rogers <crogers@google.com>
- Reviewed by Kenneth Russell.
- Add web audio files to mac port Xcode projects
- https://bugs.webkit.org/show_bug.cgi?id=50721
- * JavaScriptCore.xcodeproj/project.pbxproj:
- 2010-12-08 Oliver Hunt <oliver@apple.com>
- Reviewed by Gavin Barraclough.
- Marking the active global object re-enters through markConservatively
- https://bugs.webkit.org/show_bug.cgi?id=50711
- draining of the MarkStack is not allowed to be re-entrant, we got away
- with this simply due to the logic in MarkStack::drain implicitly handling
- changes that could be triggered by the re-entry.
- Just to be safe this patch removes the re-entry through markConservatively
- so we don't accidentally introduce such an issue in future. I've also
- added an assertion to catch such errors.
- * runtime/Collector.cpp:
- (JSC::Heap::markConservatively):
- (JSC::Heap::markCurrentThreadConservativelyInternal):
- (JSC::Heap::markOtherThreadConservatively):
- * runtime/JSArray.h:
- (JSC::MarkStack::drain):
- * runtime/MarkStack.h:
- (JSC::MarkStack::MarkStack):
- 2010-12-08 Chris Marrin <cmarrin@apple.com>
- Reviewed by Simon Fraser.
- Share code between Mac (CA) and Windows (CACF) GraphicsLayer implementations
- https://bugs.webkit.org/show_bug.cgi?id=49388
- Added a WTF_PLATFORM_CA flag. Set when platform is MAC or IOS or (WINDOWS AND CG)
- which was decided was the best way to identify a build with CoreAnimation
- * wtf/Platform.h:
- 2010-12-07 Anders Carlsson <andersca@apple.com>
- Build fix follow up build fix.
- * pcre/pcre_ucp_searchfuncs.cpp:
- (jsc_pcre_ucp_othercase):
- 2010-12-07 Anders Carlsson <andersca@apple.com>
- Reviewed by Darin Adler.
- Fix clang++ build
- https://bugs.webkit.org/show_bug.cgi?id=50645
- Explicitly cast offset to int.
- * pcre/pcre_ucp_searchfuncs.cpp:
- (jsc_pcre_ucp_othercase):
- 2010-12-07 Kenneth Russell <kbr@google.com>
- Reviewed by David Levin.
- Fix compilation of core web audio files on Windows
- https://bugs.webkit.org/show_bug.cgi?id=50603
- Added log2 definition to MathExtras.h on Windows platform.
- * wtf/MathExtras.h:
- (log2):
- 2010-12-07 Antti Koivisto <antti@apple.com>
- Reviewed by Gavin Barraclough.
- https://bugs.webkit.org/show_bug.cgi?id=50412
- http://www.wunderground.com/US/CA/Hayward.html causes big memory spike during page loading
-
- Creating a substring caused the original string be flattened if it was in the rope form. This could use
- significant amount of memory by reducing buffer sharing between strings.
-
- Add a rope specific substring function that constructs the substring by reusing the rope fibers
- instead of flattening the rope.
-
- No change observed in SunSpider.
- * runtime/JSString.cpp:
- (JSC::JSString::substringFromRope):
- * runtime/JSString.h:
- (JSC::jsSubstring):
- * runtime/StringPrototype.cpp:
- (JSC::stringProtoFuncSubstr):
- (JSC::stringProtoFuncSubstring):
- 2010-12-06 Geoffrey Garen <ggaren@apple.com>
- Reviewed by Gavin Barraclough.
- Simplified some ASLR-related code in PageAllocation/Reservation
- https://bugs.webkit.org/show_bug.cgi?id=50599
-
- Removed reserveAt, allocateAt, and friends, since they all existed to
- serve one feature: ASLR for executable memory on x86_64 on Mac. Moved
- ASLR code down into systemAllocate -- now, any time you allocate
- executable memory on a supporting platform, the memory's location is
- randomized.
- * jit/ExecutableAllocatorFixedVMPool.cpp:
- (JSC::FixedVMPoolAllocator::FixedVMPoolAllocator): No need for the caller
- to randomize anything.
- * wtf/PageAllocation.h:
- (WTF::PageAllocation::systemAllocate): Removed some *At() functions, and
- beefed up executable allocation with randomization.
- * wtf/PageReservation.h:
- (WTF::PageReservation::systemReserve): Removed some *At() functions.
- 2010-12-06 Geoffrey Garen <ggaren@apple.com>
- Reviewed by Maciej Stachowiak.
- reserveAndCommit doesn't commit on MADVISE_FREE_REUSE systems
- https://bugs.webkit.org/show_bug.cgi?id=50588
-
- * wtf/OSAllocatorPosix.cpp:
- (WTF::OSAllocator::reserve):
- (WTF::OSAllocator::reserveAndCommit):
- (WTF::OSAllocator::commit): Tightened up some comments. Changed
- reserveAndCommit to actually commit on MADVISE_FREE_REUSE systems.
- 2010-12-06 Patrick Gansterer <paroga@webkit.org>
- Reviewed by Andreas Kling.
- [WINCE] Add build system
- https://bugs.webkit.org/show_bug.cgi?id=50522
- * CMakeListsWinCE.txt: Added.
- * shell/CMakeListsWinCE.txt: Added.
- * wtf/CMakeListsWinCE.txt: Added.
- 2010-12-06 John Tantalo <john.tantalo@gmail.com>
- Reviewed by Geoffrey Garen.
- jsc does not ignore shebang
- https://bugs.webkit.org/show_bug.cgi?id=49576
- * jsc.cpp:
- (fillBufferWithContentsOfFile):
- - translate shebang into a valid JavaScript comment so the lexer ignores it
- 2010-12-05 Adam Roben <aroben@apple.com>
- Windows production build fix
- Put spaces after trailing backslashes when setting
- %WebKitVSPropsRedirectionDir%. According to MSDN
- <http://msdn.microsoft.com/en-us/library/2kzfk8c7(v=VS.80).aspx>:
- A backslash ( \ ) followed by a newline character is interpreted as
- a space in the command; use a backslash at the end of a line to
- continue a command onto the next line. NMAKE interprets the
- backslash literally if any other character, including a space or
- tab, follows the backslash.
- * JavaScriptCore.vcproj/JavaScriptCore.make:
- 2010-12-04 Patrick Gansterer <paroga@webkit.org>
- Unreviewed, build fix after r69132.
- * shell/CMakeLists.txt: Fix directory name (jsc -> shell).
- 2010-12-04 Xan Lopez <xlopez@igalia.com>
- Reviewed by Martin Robinson.
- [GTK] Drop GdkDrawable usage, it's deprecated in GTK+3.x and we can use GdkWindow
- https://bugs.webkit.org/show_bug.cgi?id=50451
- * wtf/gobject/GTypedefs.h: add GdkWindow defines.
- 2010-12-03 Gavin Barraclough <barraclough@apple.com>
- Rubber stamped by Oliver Hunt.
- Bug 50509 - set* methods on MacroAssembler are awfully named.
- Methods set32 and setTest32 compare 32-bit operands, and set a 32-bit results based on the comparison.
- set8 compares 32-bit operands, and sets an 8-bit result based on the comparison.
- setTest8 compares 8-bit operands, and sets a 32-bit result based on the comparison.
- Rename to clarify.
- set32 -> set32Compare32
- setTest32 -> set32Test32
- set8 -> set8Compare32
- setTest8 -> set32Test8
- * assembler/MacroAssembler.h:
- (JSC::MacroAssembler::setPtr):
- * assembler/MacroAssemblerARM.h:
- (JSC::MacroAssemblerARM::set32Compare32):
- (JSC::MacroAssemblerARM::set8Compare32):
- (JSC::MacroAssemblerARM::set32Test32):
- (JSC::MacroAssemblerARM::set32Test8):
- * assembler/MacroAssemblerARMv7.h:
- (JSC::MacroAssemblerARMv7::set32Compare32):
- (JSC::MacroAssemblerARMv7::set8Compare32):
- (JSC::MacroAssemblerARMv7::set32Test32):
- (JSC::MacroAssemblerARMv7::set32Test8):
- * assembler/MacroAssemblerMIPS.h:
- (JSC::MacroAssemblerMIPS::set8Compare32):
- (JSC::MacroAssemblerMIPS::set32Compare32):
- (JSC::MacroAssemblerMIPS::set32Test8):
- (JSC::MacroAssemblerMIPS::set32Test32):
- * assembler/MacroAssemblerX86Common.h:
- (JSC::MacroAssemblerX86Common::set8Compare32):
- (JSC::MacroAssemblerX86Common::set32Compare32):
- (JSC::MacroAssemblerX86Common::set32Test8):
- (JSC::MacroAssemblerX86Common::set32Test32):
- * jit/JITOpcodes.cpp:
- (JSC::JIT::emit_op_eq):
- (JSC::JIT::emit_op_neq):
- (JSC::JIT::compileOpStrictEq):
- (JSC::JIT::emit_op_eq_null):
- (JSC::JIT::emit_op_neq_null):
- * jit/JITOpcodes32_64.cpp:
- (JSC::JIT::emit_op_eq):
- (JSC::JIT::emit_op_neq):
- (JSC::JIT::compileOpStrictEq):
- (JSC::JIT::emit_op_eq_null):
- (JSC::JIT::emit_op_neq_null):
- 2010-12-03 Oliver Hunt <oliver@apple.com>
- Reviewed by Geoff Garen.
- Incorrect logic for returning memory at the end of linking.
- Reviewed by Geoff Garen.
- At the end of linking we return any space at the end of the
- allocated executable region that was saved due to branch
- compaction. This is currently by done by subtracting the
- different from the m_freePtr in the allocation pool. This
- can be incorrect if your allocation was made from a new
- page that was not selected for subsequent allocations.
- This patch corrects this behaviour by verifying that the
- memory being returned actually comes from the current
- allocation pool.
- * assembler/LinkBuffer.h:
- (JSC::LinkBuffer::linkCode):
- * jit/ExecutableAllocator.h:
- (JSC::ExecutablePool::tryShrink):
- 2010-12-03 Michael Saboff <msaboff@apple.com>
- Reviewed by Gavin Barraclough
- Changes to significantly reduce branches to branches in JIT'ed
- parentheses backtrack processing. The changes include the following:
- - Taking the backtracking processing out of line and adding it as
- code at the end of the JIT'ed routine.
- - Allow backtracks to be direct via an indirect branch for an address
- pushed onto the stack. If the use of an indirect branch is from a
- conditional jump, then we emit a trampoline at the end of the
- routine.
- - Propogate backtracks instead of adding trampolines. Backtracks are
- propogated to where they are used. This change also eliminated
- trampoline branch code that aren't used.
- - Added global expression state to keep track of parentheses tail
- code and indirect branches.
- Other changes made to support these changes.
- - Split invertOrCapture flag on Patterns to two separate flags. Added
- getters for these flags. Rippled these changes to both the JIT
- and interpreter code.
- - Split BacktrackDestination out off TermGenerationState struct.
- This is done to hold references to a backtrack for later code
- generation.
- https://bugs.webkit.org/show_bug.cgi?id=50295
- * assembler/ARMAssembler.h:
- (JSC::ARMAssembler::JmpDst::isSet):
- * assembler/ARMv7Assembler.h:
- (JSC::ARMv7Assembler::JmpDst::isSet):
- * assembler/AbstractMacroAssembler.h:
- (JSC::AbstractMacroAssembler::Label::isSet):
- (JSC::AbstractMacroAssembler::DataLabelPtr::isUsed):
- (JSC::AbstractMacroAssembler::DataLabelPtr::used):
- (JSC::AbstractMacroAssembler::JumpList::clear):
- * assembler/MIPSAssembler.h:
- (JSC::MIPSAssembler::JmpDst::isSet):
- * assembler/X86Assembler.h:
- (JSC::X86Assembler::JmpDst::isSet):
- * yarr/RegexCompiler.cpp:
- (JSC::Yarr::RegexPatternConstructor::atomParenthesesSubpatternBegin):
- (JSC::Yarr::RegexPatternConstructor::atomParentheticalAssertionBegin):
- (JSC::Yarr::RegexPatternConstructor::atomBackReference):
- (JSC::Yarr::RegexPatternConstructor::setupAlternativeBeginTerms):
- * yarr/RegexInterpreter.cpp:
- (JSC::Yarr::ByteCompiler::atomParenthesesOnceBegin):
- (JSC::Yarr::ByteCompiler::atomParenthesesTerminalBegin):
- (JSC::Yarr::ByteCompiler::atomParenthesesSubpatternBegin):
- (JSC::Yarr::ByteCompiler::atomParentheticalAssertionBegin):
- (JSC::Yarr::ByteCompiler::atomParentheticalAssertionEnd):
- (JSC::Yarr::ByteCompiler::atomParenthesesSubpatternEnd):
- (JSC::Yarr::ByteCompiler::atomParenthesesOnceEnd):
- (JSC::Yarr::ByteCompiler::atomParenthesesTerminalEnd):
- (JSC::Yarr::ByteCompiler::emitDisjunction):
- * yarr/RegexInterpreter.h:
- (JSC::Yarr::ByteTerm::ByteTerm):
- (JSC::Yarr::ByteTerm::BackReference):
- (JSC::Yarr::ByteTerm::invert):
- (JSC::Yarr::ByteTerm::capture):
- * yarr/RegexJIT.cpp:
- (JSC::Yarr::RegexGenerator::IndirectJumpEntry::IndirectJumpEntry):
- (JSC::Yarr::RegexGenerator::IndirectJumpEntry::addJump):
- (JSC::Yarr::RegexGenerator::GenerationState::GenerationState):
- (JSC::Yarr::RegexGenerator::GenerationState::addIndirectJumpEntry):
- (JSC::Yarr::RegexGenerator::GenerationState::emitIndirectJumpTable):
- (JSC::Yarr::RegexGenerator::GenerationState::addParenthesesTail):
- (JSC::Yarr::RegexGenerator::GenerationState::emitParenthesesTail):
- (JSC::Yarr::RegexGenerator::GenerationState::addJumpToNextInteration):
- (JSC::Yarr::RegexGenerator::GenerationState::addJumpsToNextInteration):
- (JSC::Yarr::RegexGenerator::GenerationState::addDataLabelToNextIteration):
- (JSC::Yarr::RegexGenerator::GenerationState::linkToNextIteration):
- (JSC::Yarr::RegexGenerator::BacktrackDestination::BacktrackDestination):
- (JSC::Yarr::RegexGenerator::BacktrackDestination::clear):
- (JSC::Yarr::RegexGenerator::BacktrackDestination::clearDataLabel):
- (JSC::Yarr::RegexGenerator::BacktrackDestination::haveDestination):
- (JSC::Yarr::RegexGenerator::BacktrackDestination::isStackOffset):
- (JSC::Yarr::RegexGenerator::BacktrackDestination::isLabel):
- (JSC::Yarr::RegexGenerator::BacktrackDestination::isJumpList):
- (JSC::Yarr::RegexGenerator::BacktrackDestination::haveDataLabel):
- (JSC::Yarr::RegexGenerator::BacktrackDestination::copyTarget):
- (JSC::Yarr::RegexGenerator::BacktrackDestination::copyTo):
- (JSC::Yarr::RegexGenerator::BacktrackDestination::addBacktrackJump):
- (JSC::Yarr::RegexGenerator::BacktrackDestination::setStackOffset):
- (JSC::Yarr::RegexGenerator::BacktrackDestination::setLabel):
- (JSC::Yarr::RegexGenerator::BacktrackDestination::setNextBacktrackLabel):
- (JSC::Yarr::RegexGenerator::BacktrackDestination::setBacktrackToLabel):
- (JSC::Yarr::RegexGenerator::BacktrackDestination::setBacktrackJumpList):
- (JSC::Yarr::RegexGenerator::BacktrackDestination::setBacktrackSourceLabel):
- (JSC::Yarr::RegexGenerator::BacktrackDestination::setDataLabel):
- (JSC::Yarr::RegexGenerator::BacktrackDestination::setSubDataLabelPtr):
- (JSC::Yarr::RegexGenerator::BacktrackDestination::linkToNextBacktrack):
- (JSC::Yarr::RegexGenerator::BacktrackDestination::getStackOffset):
- (JSC::Yarr::RegexGenerator::BacktrackDestination::getLabel):
- (JSC::Yarr::RegexGenerator::BacktrackDestination::getBacktrackJumps):
- (JSC::Yarr::RegexGenerator::BacktrackDestination::getDataLabel):
- (JSC::Yarr::RegexGenerator::BacktrackDestination::jumpToBacktrack):
- (JSC::Yarr::RegexGenerator::BacktrackDestination::linkDataLabelToHereIfExists):
- (JSC::Yarr::RegexGenerator::BacktrackDestination::plantJumpToBacktrackIfExists):
- (JSC::Yarr::RegexGenerator::BacktrackDestination::linkAlternativeBacktracks):
- (JSC::Yarr::RegexGenerator::BacktrackDestination::linkAlternativeBacktracksTo):
- (JSC::Yarr::RegexGenerator::TermGenerationState::TermGenerationState):
- (JSC::Yarr::RegexGenerator::TermGenerationState::resetAlternative):
- (JSC::Yarr::RegexGenerator::TermGenerationState::isLastAlternative):
- (JSC::Yarr::RegexGenerator::TermGenerationState::clearBacktrack):
- (JSC::Yarr::RegexGenerator::TermGenerationState::jumpToBacktrack):
- (JSC::Yarr::RegexGenerator::TermGenerationState::plantJumpToBacktrackIfExists):
- (JSC::Yarr::RegexGenerator::TermGenerationState::linkDataLabelToBacktrackIfExists):
- (JSC::Yarr::RegexGenerator::TermGenerationState::addBacktrackJump):
- (JSC::Yarr::RegexGenerator::TermGenerationState::setDataLabelPtr):
- (JSC::Yarr::RegexGenerator::TermGenerationState::setBackTrackStackOffset):
- (JSC::Yarr::RegexGenerator::TermGenerationState::setBacktrackLabel):
- (JSC::Yarr::RegexGenerator::TermGenerationState::linkAlternativeBacktracks):
- (JSC::Yarr::RegexGenerator::TermGenerationState::linkAlternativeBacktracksTo):
- (JSC::Yarr::RegexGenerator::TermGenerationState::setBacktrackLink):
- (JSC::Yarr::RegexGenerator::TermGenerationState::chainBacktracks):
- (JSC::Yarr::RegexGenerator::TermGenerationState::chainBacktrackJumps):
- (JSC::Yarr::RegexGenerator::TermGenerationState::getBacktrackDestination):
- (JSC::Yarr::RegexGenerator::TermGenerationState::propagateBacktrackingFrom):
- (JSC::Yarr::RegexGenerator::ParenthesesTail::ParenthesesTail):
- (JSC::Yarr::RegexGenerator::ParenthesesTail::processBacktracks):
- (JSC::Yarr::RegexGenerator::ParenthesesTail::setNextIteration):
- (JSC::Yarr::RegexGenerator::ParenthesesTail::generateCode):
- (JSC::Yarr::RegexGenerator::generateAssertionBOL):
- (JSC::Yarr::RegexGenerator::generateAssertionEOL):
- (JSC::Yarr::RegexGenerator::generateAssertionWordBoundary):
- (JSC::Yarr::RegexGenerator::generatePatternCharacterSingle):
- (JSC::Yarr::RegexGenerator::generatePatternCharacterPair):
- (JSC::Yarr::RegexGenerator::generatePatternCharacterFixed):
- (JSC::Yarr::RegexGenerator::generatePatternCharacterGreedy):
- (JSC::Yarr::RegexGenerator::generatePatternCharacterNonGreedy):
- (JSC::Yarr::RegexGenerator::generateCharacterClassSingle):
- (JSC::Yarr::RegexGenerator::generateCharacterClassFixed):
- (JSC::Yarr::RegexGenerator::generateCharacterClassGreedy):
- (JSC::Yarr::RegexGenerator::generateCharacterClassNonGreedy):
- (JSC::Yarr::RegexGenerator::generateParenthesesDisjunction):
- (JSC::Yarr::RegexGenerator::generateParenthesesSingle):
- (JSC::Yarr::RegexGenerator::generateParenthesesGreedyNoBacktrack):
- (JSC::Yarr::RegexGenerator::generateParentheticalAssertion):
- (JSC::Yarr::RegexGenerator::generateDisjunction):
- (JSC::Yarr::RegexGenerator::compile):
- * yarr/RegexPattern.h:
- (JSC::Yarr::PatternTerm::PatternTerm):
- (JSC::Yarr::PatternTerm::invert):
- (JSC::Yarr::PatternTerm::capture):
- 2010-12-03 Chris Rogers <crogers@google.com>
- Reviewed by Kenneth Russell.
- First steps to adding web audio files to build systems
- https://bugs.webkit.org/show_bug.cgi?id=49952
- * wtf/Complex.h:
- 2010-12-03 Patrick Gansterer <paroga@webkit.org>
- Reviewed by Andreas Kling.
- Move StringWx.cpp into wtf directory
- https://bugs.webkit.org/show_bug.cgi?id=50060
- * wtf/wx/StringWx.cpp: Renamed from WebCore/platform/text/wx/StringWx.cpp.
- (WTF::String::String):
- 2010-12-03 Patrick Gansterer <paroga@webkit.org>
- Reviewed by Andreas Kling.
- Move StringBrew.cpp into wtf directory
- https://bugs.webkit.org/show_bug.cgi?id=50058
- * wtf/brew/StringBrew.cpp: Renamed from WebCore/platform/text/brew/StringBrew.cpp.
- (WTF::String::String):
- 2010-12-03 Patrick Gansterer <paroga@webkit.org>
- Reviewed by Andreas Kling.
- Move StringHaiku.cpp into wtf directory
- https://bugs.webkit.org/show_bug.cgi?id=50057
- * wtf/haiku/StringHaiku.cpp: Renamed from WebCore/platform/text/haiku/StringHaiku.cpp.
- (WTF::String::String):
- (WTF::String::operator BString):
- 2010-12-02 Geoffrey Garen <ggaren@apple.com>
- Try to fix Windows build.
- * runtime/GCActivityCallback.cpp:
- (JSC::DefaultGCActivityCallback::synchronize): Added a non-CF implementation.
- 2010-12-02 Geoffrey Garen <ggaren@apple.com>
- Reviewed by Gavin Barraclough.
- Fixed <rdar://problem/8310571> CrashTracer: 60 crashes in Photo Booth at
- com.apple.JavaScriptCore: JSC::Heap::markRoots + 746
-
- * API/APIShims.h:
- (JSC::APIEntryShimWithoutLock::APIEntryShimWithoutLock): Call our new
- synchronize() function.
- * runtime/Collector.cpp:
- (JSC::Heap::activityCallback):
- * runtime/Collector.h: Added an activityCallback() accessor, for the
- call above.
- * runtime/GCActivityCallback.h:
- (JSC::GCActivityCallback::synchronize):
- * runtime/GCActivityCallbackCF.cpp:
- (JSC::DefaultGCActivityCallback::DefaultGCActivityCallback):
- (JSC::DefaultGCActivityCallback::~DefaultGCActivityCallback):
- (JSC::DefaultGCActivityCallback::operator()):
- (JSC::DefaultGCActivityCallback::synchronize): Track the run loop we're
- scheduled in. If we begin/resume execution within a new run loop, reschedule
- on it. This prevents a crash when using a lockless context group on
- multiple threads -- the crash would happen if the GC timer scheduled on
- thread A, then you continued execution on thread B, then the thread A
- timer fired.
- 2010-12-02 Darin Adler <darin@apple.com>
- * wtf/ASCIICType.h: Fix wrong type from last check-in.
- 2010-12-02 Darin Adler <darin@apple.com>
- Try to fix certain builds (Qt Windows).
- * wtf/ASCIICType.h: Added an overload for unsigned because in obsolete
- versions of ICU, UChar32 can be a typedef for unsigned. Adding this
- overload should make us compatible with these old ICUs.
- 2010-12-02 Patrick Gansterer <paroga@webkit.org>
- Reviewed by Darin Adler.
- Add AtomicString::fromUTF8
- https://bugs.webkit.org/show_bug.cgi?id=45594
- Unicode::calculateStringHashFromUTF8 creates a StringHash out of UTF8 input data and
- calculates the required length for the UTF16 conversation in one step.
- This is then used in a specialized translator for the string table of AtomicString.
- * JavaScriptCore.exp:
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
- * wtf/text/AtomicString.cpp:
- (WTF::CStringTranslator::equal):
- (WTF::HashAndUTF8CharactersTranslator::hash):
- (WTF::HashAndUTF8CharactersTranslator::equal):
- (WTF::HashAndUTF8CharactersTranslator::translate):
- (WTF::AtomicString::add):
- (WTF::AtomicString::addSlowCase):
- (WTF::AtomicString::find):
- (WTF::AtomicString::fromUTF8):
- * wtf/text/AtomicString.h:
- * wtf/text/StringImpl.h:
- * wtf/text/WTFString.h:
- * wtf/unicode/UTF8.cpp:
- (WTF::Unicode::readUTF8Sequence):
- (WTF::Unicode::convertUTF8ToUTF16):
- (WTF::Unicode::calculateStringHashFromUTF8):
- (WTF::Unicode::equalUTF16WithUTF8):
- * wtf/unicode/UTF8.h:
- 2010-12-02 Geoffrey Garen <ggaren@apple.com>
- Reviewed by Sam Weinig.
- Added a little hardening to OSAllocator.
- * wtf/OSAllocatorPosix.cpp:
- (WTF::OSAllocator::release):
- * wtf/OSAllocatorWin.cpp:
- (WTF::OSAllocator::reserve):
- (WTF::OSAllocator::reserveAndCommit):
- (WTF::OSAllocator::commit):
- (WTF::OSAllocator::decommit):
- (WTF::OSAllocator::release): CRASH() if the OS's virtual memory system
- reports an error.
- 2010-12-02 Csaba Osztrogonác <ossy@webkit.org>
- Reviewed by Geoffrey Garen.
- [Qt] Make platform managing of OSAllocator better than r73106
- https://bugs.webkit.org/show_bug.cgi?id=50385
- * wtf/OSAllocatorPosix.cpp: Remove platform specific guard.
- * wtf/OSAllocatorSymbian.cpp: Remove platform specific guard.
- * wtf/OSAllocatorWin.cpp: Remove platform specific guard.
- * wtf/wtf.pri: Add the correct platform specific source file instead of all of them.
- 2010-12-02 Patrick Gansterer <paroga@webkit.org>
- Reviewed by Andreas Kling.
- [WINCE] Use GetTickCount() for srand()
- https://bugs.webkit.org/show_bug.cgi?id=50338
- time() is not a native function on WinCE, so use GetTickCount() instead.
- * wtf/RandomNumberSeed.h:
- (WTF::initializeRandomNumberGenerator):
- 2010-12-02 Norbert Leser <norbert.leser@nokia.com>
- Reviewed by Laszlo Gombos.
- [Qt] [Symbian] Reintroduce compiler optimizations for JSC
- https://bugs.webkit.org/show_bug.cgi?id=50270
- Add compiler optimization (symbian ARM target) which was lost after split from WebCore.
- Tested via Sunspider and V8 - both of which show significant performance improvement.
- * JavaScriptCore.pro:
- 2010-12-02 Peter Varga <pvarga@inf.u-szeged.hu>
- Reviewed by Gavin Barraclough.
- Move regex parsing and fallback handling to runtime/RegExp.cpp
- https://bugs.webkit.org/show_bug.cgi?id=50015
- * runtime/RegExp.cpp:
- (JSC::RegExp::RegExp):
- (JSC::RegExp::create):
- (JSC::RegExp::compile):
- (JSC::RegExp::match):
- (JSC::RegExp::printTraceData):
- * runtime/RegExp.h:
- (JSC::RegExp::pattern):
- * yarr/RegexInterpreter.cpp:
- * yarr/RegexInterpreter.h:
- * yarr/RegexJIT.cpp:
- (JSC::Yarr::RegexGenerator::compile):
- (JSC::Yarr::jitCompileRegex):
- * yarr/RegexJIT.h:
- (JSC::Yarr::RegexCodeBlock::RegexCodeBlock):
- (JSC::Yarr::RegexCodeBlock::setFallBack):
- (JSC::Yarr::RegexCodeBlock::isFallBack):
- (JSC::Yarr::executeRegex):
- 2010-12-01 Geoffrey Garen <ggaren@apple.com>
- Try to fix the GTK build.
- * GNUmakefile.am: Use a full path to OSAllocator*.cpp.
- 2010-12-01 Geoffrey Garen <ggaren@apple.com>
- Try to fix the EFL Linux build.
- * CMakeListsEfl.txt: Added OSAllocator to the project.
- 2010-12-01 Geoffrey Garen <ggaren@apple.com>
- Try to fix the Qt build: Include all OS files for Qt's sake, and then
- use #ifdefs in the files to exclude things based on OS.
-
- This is a pretty bad way to manage platforms -- hopefully we can
- fix the Qt build system and move away from this in the future.
- * wtf/OSAllocatorPosix.cpp:
- * wtf/OSAllocatorSymbian.cpp:
- * wtf/OSAllocatorWin.cpp:
- * wtf/wtf.pri:
- 2010-12-01 Geoffrey Garen <ggaren@apple.com>
- Try to fix the Chromium build.
-
- * JavaScriptCore.gypi: This is a Windows build file, so use OSAllocatorWin.cpp.
- 2010-12-01 Geoffrey Garen <ggaren@apple.com>
- Try to fix the GTK build.
- * GNUmakefile.am: Added OSAllocator to another project.
- 2010-12-01 Geoffrey Garen <ggaren@apple.com>
- Try to fix the GTK Linux build.
- * JavaScriptCore.gypi: Added OSAllocator to the project.
- 2010-12-01 Geoffrey Garen <ggaren@apple.com>
- Try to fix the Qt Linux build.
- * wtf/OSAllocatorPosix.cpp: Use the right errno.h.
- 2010-12-01 Geoffrey Garen <ggaren@apple.com>
- Try to fix Windows build: export some more symbols.
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
- 2010-12-01 Geoffrey Garen <ggaren@apple.com>
- Try to fix the Qt Linux build.
- * wtf/wtf.pri: Use the POSIX OSAllocator for Qt Linux.
- 2010-12-01 Geoffrey Garen <ggaren@apple.com>
- Windows build fix: commit doesn't have a return value.
- * wtf/OSAllocatorWin.cpp:
- (WTF::OSAllocator::commit):
- 2010-12-01 Geoffrey Garen <ggaren@apple.com>
- Build fix: Export some symbols.
- * JavaScriptCore.exp:
- 2010-12-01 Geoffrey Garen <ggaren@apple.com>
- Build fix.
- * JavaScriptCore.xcodeproj/project.pbxproj: Export OSAllocator.h as private
- so other projects can see it.
- * wtf/OSAllocatorPosix.cpp: #include UnusedParam.h for UNUSED_PARAM.
- 2010-12-01 Geoffrey Garen <ggaren@apple.com>
- Reviewed by Sam Weinig.
- Baby step toward a cross-platform virtual memory abstraction: created
- an all-static OSAllocator class and changed MarkStack to use it.
- * JavaScriptCore.exp: These functions are inlined now.
- * JavaScriptCore.vcproj/WTF/WTF.vcproj: Added OSAllocatorWin.cpp.
- * JavaScriptCore.xcodeproj/project.pbxproj: Added OSAllocatorPosix.cpp.
- * runtime/MarkStack.h:
- (JSC::MarkStack::allocateStack):
- (JSC::MarkStack::releaseStack): Use OSAllocator instead of rolling our
- own platform-specific code.
- * runtime/MarkStackNone.cpp: Removed. Nothing used this.
- * runtime/MarkStackPosix.cpp:
- * runtime/MarkStackSymbian.cpp:
- * runtime/MarkStackWin.cpp: Removed custom platform-specific code, since
- we use the OSAllocator abstraction now.
- * wtf/OSAllocator.h: Added.
- * wtf/OSAllocatorPosix.cpp: Added.
- (WTF::OSAllocator::reserve):
- (WTF::OSAllocator::reserveAndCommit):
- (WTF::OSAllocator::commit):
- (WTF::OSAllocator::decommit):
- (WTF::OSAllocator::release):
- * wtf/OSAllocatorSymbian.cpp: Added.
- (WTF::OSAllocator::reserve):
- (WTF::OSAllocator::reserveAndCommit):
- (WTF::OSAllocator::commit):
- (WTF::OSAllocator::decommit):
- (WTF::OSAllocator::release):
- * wtf/OSAllocatorWin.cpp: Added.
- (WTF::OSAllocator::reserve):
- (WTF::OSAllocator::reserveAndCommit):
- (WTF::OSAllocator::commit):
- (WTF::OSAllocator::decommit):
- (WTF::OSAllocator::release): The new OSAllocator abstraction.
- * wtf/wtf.pri: Added OSAllocatorSymbian.cpp.
- 2010-12-01 Steve Falkenburg <sfalken@apple.com>
- Reviewed by Adam Roben.
- WinCairo build should not use link-time code generation (LTCG)
- https://bugs.webkit.org/show_bug.cgi?id=50353
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
- * JavaScriptCore.vcproj/WTF/WTF.vcproj:
- * JavaScriptCore.vcproj/jsc/jsc.vcproj:
- * JavaScriptCore.vcproj/testapi/testapi.vcproj:
- 010-12-01 Steve Falkenburg <sfalken@apple.com>
- Reviewed by Adam Roben.
- vcproj changes can't be applied cleanly by the Windows EWS bot
- https://bugs.webkit.org/show_bug.cgi?id=50328
- * JavaScriptCore.vcproj/JavaScriptCore.sln: Modified property svn:eol-style.
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj: Modified property svn:eol-style.
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreCF.vsprops: Added property svn:eol-style.
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreCFLite.vsprops: Added property svn:eol-style.
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreCommon.vsprops: Added property svn:eol-style.
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreGenerated.vcproj: Modified property svn:eol-style.
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreGeneratedCommon.vsprops: Added property svn:eol-style.
- * JavaScriptCore.vcproj/JavaScriptCoreSubmit.sln: Modified property svn:eol-style.
- * JavaScriptCore.vcproj/WTF/WTF.vcproj: Modified property svn:eol-style.
- * JavaScriptCore.vcproj/WTF/WTFCommon.vsprops: Added property svn:eol-style.
- * JavaScriptCore.vcproj/jsc/jsc.vcproj: Modified property svn:eol-style.
- * JavaScriptCore.vcproj/jsc/jscCommon.vsprops: Added property svn:eol-style.
- * JavaScriptCore.vcproj/testapi/testapi.vcproj: Modified property svn:eol-style.
- * JavaScriptCore.vcproj/testapi/testapiCommon.vsprops: Added property svn:eol-style.
- 2010-12-01 Gavin Barraclough <barraclough@apple.com>
- Reviewed by Sam Weinig.
- Bug 50298 - /()()()()()()()()()(?:(\10a|b)(X|Y))+/.exec("bXXaYYaY") ASSERTs
- For unmatched subpattens we previously used to set the subpattern end to -1,
- but now we only set the start value. E.g. consider the following:
- /a(b)?c/.exec("ac");
- Previously we would generate an internal results array of:
- [ 0, 2, -1, -1 ]
- Since fairly recently we have generated results of:
- [ 0, 2, -1, ??? ]
- (With the end index of the subpattern uninitialized).
- Update these ASSERTs to account for this.
- Also, when stripping out self-referencing backreferences, (e.g. /(\1)/) we
- were checking the wrong property on the pattern term. We should have been
- looking at term.parentheses.subpatternId, but instead were checking
- term.subpatternId. The latter is actually only the subpatternId for
- back reference terms. Rename this to backReferenceSubpatternId.
- * yarr/RegexInterpreter.cpp:
- (JSC::Yarr::Interpreter::matchBackReference):
- (JSC::Yarr::Interpreter::backtrackBackReference):
- 2010-11-30 Gavin Barraclough <barraclough@apple.com>
- Rubber stamped by Sam Weinig.
- Bug 50297 - \s in YARR should match BOMs.
- From section 15.10.2.12 CharacterClassEscape contains:
- The production CharacterClassEscape :: s evaluates by returning the set of characters containing the
- characters that are on the right-hand side of the WhiteSpace (7.2) or LineTerminator (7.3) productions.
- Table 2 in section 7.2 contains:
- \uFEFF Byte Order Mark <BOM>
- * create_regex_tables:
- Add BOM to spaces table.
- 2010-11-30 Gavin Barraclough <barraclough@apple.com>
- Reviewed by Darin Adler.
- Fixed review comments following bug #48101.
- Mostly typos, plus gave quantifyInfinite a symbolic name.
- * yarr/RegexCompiler.cpp:
- (JSC::Yarr::RegexPatternConstructor::quantifyAtom):
- (JSC::Yarr::RegexPatternConstructor::checkForTerminalParentheses):
- * yarr/RegexInterpreter.cpp:
- (JSC::Yarr::Interpreter::backtrackParenthesesOnceEnd):
- (JSC::Yarr::Interpreter::matchParenthesesTerminalBegin):
- (JSC::Yarr::Interpreter::backtrackParenthesesTerminalBegin):
- (JSC::Yarr::Interpreter::backtrackParenthesesTerminalEnd):
- * yarr/RegexJIT.cpp:
- (JSC::Yarr::RegexGenerator::generatePatternCharacterGreedy):
- (JSC::Yarr::RegexGenerator::generatePatternCharacterNonGreedy):
- (JSC::Yarr::RegexGenerator::generateCharacterClassGreedy):
- * yarr/RegexParser.h:
- (JSC::Yarr::Parser::parseTokens):
- (JSC::Yarr::parse):
- 2010-11-30 Steve Falkenburg <sfalken@apple.com>
- Reviewed by Darin Adler.
- WTF project missing build-stopping code from its pre-build event
- https://bugs.webkit.org/show_bug.cgi?id=50281
- * JavaScriptCore.vcproj/WTF/WTFPreBuild.cmd:
- 2010-11-30 Patrick Gansterer <paroga@webkit.org>
- Reviewed by Darin Adler.
- Cleanup UTF8.cpp
- https://bugs.webkit.org/show_bug.cgi?id=49581
- Use macros and functions instead of range values directly.
- * wtf/unicode/UTF8.cpp:
- (WTF::Unicode::inlineUTF8SequenceLength):
- (WTF::Unicode::UTF8SequenceLength):
- (WTF::Unicode::convertUTF16ToUTF8):
- (WTF::Unicode::readUTF8Sequence):
- (WTF::Unicode::convertUTF8ToUTF16):
- * wtf/unicode/UnicodeMacrosFromICU.h: Added U_IS_SUPPLEMENTARY macro.
- 2010-11-30 Geoffrey Garen <ggaren@apple.com>
- Reviewed by Gavin Barraclough.
- Fixed a crash seen when using a PageAllocation to store itself.
- * wtf/PageAllocation.h:
- (WTF::PageAllocation::systemDeallocate): Zero out m_base before unmapping
- it, in case unmapping m_base unmaps the PageAllocation.
- * wtf/BumpPointerAllocator.h:
- (WTF::BumpPointerPool::destroy): Now this work-around isn't needed!
- 2010-11-30 Xan Lopez <xlopez@igalia.com>
- Reviewed by Darin Adler.
- m_hasNonEnumerableProperties is never initialized in Structure
- https://bugs.webkit.org/show_bug.cgi?id=50266
- * runtime/Structure.cpp:
- (JSC::Structure::Structure): initialize member variable.
- 2010-11-29 Steve Falkenburg <sfalken@apple.com>
- Windows build fix (part 1). Use correct environment variable syntax in cmd files.
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCorePostBuild.cmd:
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCorePreBuild.cmd:
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCorePreLink.cmd:
- * JavaScriptCore.vcproj/WTF/WTFPostBuild.cmd:
- * JavaScriptCore.vcproj/jsc/jscPostBuild.cmd:
- * JavaScriptCore.vcproj/jsc/jscPreBuild.cmd:
- * JavaScriptCore.vcproj/jsc/jscPreLink.cmd:
- * JavaScriptCore.vcproj/testapi/testapiPostBuild.cmd:
- * JavaScriptCore.vcproj/testapi/testapiPreBuild.cmd:
- * JavaScriptCore.vcproj/testapi/testapiPreLink.cmd:
- 2010-11-29 Dan Bernstein <mitz@apple.com>
- Reviewed by Darin Adler.
- WTF support for <rdar://problem/8650085> adding word-prefix search options to the text search API.
- https://bugs.webkit.org/show_bug.cgi?id=50038
- * wtf/unicode/UnicodeMacrosFromICU.h: Copied additional macros from icu/unicode/utf16.h.
- 2010-11-29 Steve Falkenburg <sfalken@apple.com>
- Reviewed by Darin Adler.
- JavaScriptCore projects on Windows should use cmd files for build events
- https://bugs.webkit.org/show_bug.cgi?id=50193
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreCommon.vsprops:
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCorePostBuild.cmd: Added.
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCorePreBuild.cmd: Added.
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCorePreLink.cmd: Added.
- * JavaScriptCore.vcproj/WTF/WTFPostBuild.cmd: Added property svn:eol-style.
- * JavaScriptCore.vcproj/WTF/WTFPreBuild.cmd: Added property svn:eol-style.
- * JavaScriptCore.vcproj/jsc/jscCommon.vsprops:
- * JavaScriptCore.vcproj/jsc/jscPostBuild.cmd: Added.
- * JavaScriptCore.vcproj/jsc/jscPreBuild.cmd: Added.
- * JavaScriptCore.vcproj/jsc/jscPreLink.cmd: Added.
- * JavaScriptCore.vcproj/testapi/testapiCommon.vsprops:
- * JavaScriptCore.vcproj/testapi/testapiPostBuild.cmd: Added.
- * JavaScriptCore.vcproj/testapi/testapiPreBuild.cmd: Added.
- * JavaScriptCore.vcproj/testapi/testapiPreLink.cmd: Added.
- 2010-11-29 Dai Mikurube <dmikurube@google.com>
- Reviewed by Kent Tamura.
- when empty, clicking "down" on outer-spin-button returns "max value"
- https://bugs.webkit.org/show_bug.cgi?id=45491
- It is required to calculate UTC/DST offsets to retrieve the current local milliseconds for
- date/time type inputs. WTF::currentTimeMS() returns a UTC time, and WTF::getLocalTime()
- returns a struct tm, not milliseconds.
- Calculating milliseconds from a struct tm is not simple since timegm() cannot be used in all
- environments. This calculation is already done in calculateUTCOffset(), and complicated.
- Duplicating this complicated calculation is unreasonable because of maintainability.
- To achieve this without duplication, we must call calculate{UTC|DST}Offset in some way.
- * JavaScriptCore.exp:
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
- * wtf/DateMath.cpp: Changed calculateUTCOffset() and calculateDSTOffset() to external functions.
- (WTF::calculateUTCOffset):
- (WTF::calculateDSTOffset):
- * wtf/DateMath.h:
- 2010-11-29 Chris Rogers <crogers@google.com>
- Reviewed by Kenneth Russell.
- Switch web audio code to use FloatPoint3D instead of Vector3
- https://bugs.webkit.org/show_bug.cgi?id=50186
- * wtf/Vector3.h: Removed.
- 2010-11-29 Steve Falkenburg <sfalken@apple.com>
- Reviewed by Adam Roben.
- Add a mechanism for Windows pre-build/pre-link/post-build events to be separated into individual cmd files
- https://bugs.webkit.org/show_bug.cgi?id=49858
- We're migrating our prebuild/prelink/postbuild steps out of vcproj and vsprops files:
- - To simplify editing (editing vsprops build steps is confusing).
- - For more readable diffs.
- * JavaScriptCore.vcproj/WTF/WTFCommon.vsprops:
- * JavaScriptCore.vcproj/WTF/WTFPostBuild.cmd: Added.
- * JavaScriptCore.vcproj/WTF/WTFPreBuild.cmd: Added.
- 2010-11-29 Geoffrey Garen <ggaren@apple.com>
- Reviewed by Gavin Barraclough.
- Improved accuracy of command-line SunSpider.
- * jsc.cpp:
- (functionRun): Changed the "run" function to run a given test in
- its own global object. Previously, all tests ran in the same global
- object, which created name conflicts, and made globals from previous
- tests artificially survive into later tests.
-
- Also changed "run" to return the elapsed milliseconds when running a
- given test, for slightly more accurate numbers.
- (functionCheckSyntax): Ditto on returning elapsed milliseconds.
- 2010-11-29 Darin Adler <darin@apple.com>
- Reviewed by Andreas Kling.
- Remove a couple unneeded overflow checks
- https://bugs.webkit.org/show_bug.cgi?id=49816
- * wtf/text/CString.cpp:
- (WTF::CString::init): Use an ASSERT instead of
- an overflow check with CRASH.
- 2010-11-29 Adam Roben <aroben@apple.com>
- Robustify react-to-vsprops-changes.py against changes to its location
- or the location of the .vsprops files
- Suggested by John Sullivan.
- * JavaScriptCore.vcproj/JavaScriptCore/react-to-vsprops-changes.py:
- Removed file_modification_times.
- (main): Use glob.glob to find the .vsprops files and assert that we found some.
- 2010-11-29 Adam Roben <aroben@apple.com>
- Touch wtf/Platform.h whenever any .vsprops file changes
- This will cause all files to be recompiled, which will make changes to
- preprocessor macros (e.g., ENABLE_*) actually take effect.
- Fixes <http://webkit.org/b/50167> Windows build fails when ENABLE_*
- macros are changed (because not enough files are rebuilt)
- Reviewed by John Sullivan.
- * JavaScriptCore.vcproj/JavaScriptCore/react-to-vsprops-changes.py:
- (main): Touch wtf/Platform.h if it's older than any .vsprops file. Also
- added some comments and logging to make it clearer what the script is
- doing and why.
- 2010-11-29 Adam Roben <aroben@apple.com>
- Update react-to-vsprops-changes.py after r72555
- .vsprops files are no longer accessed relative to $WebKitLibrariesDir.
- Fixes <http://webkit.org/b/50166> REGRESSION (r72555):
- react-to-vsprops-changes.py no longer works for people with a
- non-default $WebKitLibrariesDir
- Reviewed by John Sullivan.
- * JavaScriptCore.vcproj/JavaScriptCore/react-to-vsprops-changes.py:
- (main): Always look in WebKitLibraries/win for .vsprops files, not in
- $WebKitLibrariesDir.
- 2010-11-28 Gavin Barraclough <barraclough@apple.com>
- Reviewed by Sam Weinig.
- Bug 48100 - YARR allows what seems like a bogus character-class range
- Per ECMA-262 character classes containing character ranges containing
- character classes are invalid, eg:
- /[\d-x]/
- /[x-\d]/
- /[\d-\d]/
- These should throw a syntax error.
- * yarr/RegexParser.h:
- 2010-11-27 Gavin Barraclough <barraclough@apple.com>
- Reviewed by Sam Weinig.
- Bug 48101 - Yarr gives different results for /(?:a*?){2,}/
- The test cases in the linked mozilla bug demonstrate a couple of
- problems in subpattern matching. These bugs lie in the optimized
- cases - for matching parentheses with a quantity count of 1, and
- for matching greedy quantified parentheses at the end of a regex
- (which do not backtrack).
- In both of these cases we are failing to correctly handle empty
- matches. In the case of parentheses-single matches (quantity count
- one) we are failing to test for empty matches at all. In the case
- of terminal subpattern matches we do currently check, however there
- is a subtler bug here too. In the case of an empty match we will
- presently immediately fall through to the next alternative (or
- complete the regex match), whereas upon a failed match we should
- be backtracking into the failing alternative, to give it a chance
- to match further (e.g. consider /a??b?|a/.exec("ab") - upon first
- attempting to match the first alternative this will match the empty
- string - since a?? is non-greedy, however rather than moving on to
- the second alternative we should be re-matching the first one, at
- which point the non-greedy a?? will match, and as such the result
- should be "ab", not "a").
- Terminal subpattern matching contains a second bug, too. The frame
- location values in the subpattern should be being allocated with
- the outer disjunction's frame (as we do for the parentheses-single
- optimization). Consider the following three regexes:
- /a*(?:b*)*c*/
- /a*(?:b*)c*/
- /a*(?:b*)*/
- Considering only the frame location required by the atoms a,b, and
- c, (ignoring space associated with the nested subpattern) the first
- regex (a normal subpattern match) requires a frame size of 2 for
- the outer disjunction, (to backtrack terms a & c), with each
- iteration of the subpattern requiring a frame of size 1 (in order
- to backtrack b). In the case of the second regex (where the
- parentheses-single optimization will kick in) the outer frame must
- be set up with a frame size of 3, since the outer frame will also
- be used when running the nested subpattern. We will currently only
- allocate a farme of size 1 for the outer disjuntion (to contain a),
- howver the frame size should be 2 (since the subpattern will be
- evaluated in the outer frame). In addition to failing to allocate
- frame space the frame offsets are also presently invalid - in the
- case of the last regex b's frame location will be set assuming it
- to be the first term in the frame, whereas in this case b lies
- after the term a, and should be taking a separate frame location.
- In order to correctly allocate the frame for terminal subpattern
- matches we must move this optimization back up from the JIT into
- the compiler (and thus interpreter too), since this is where the
- frame allocation takes place.
- * yarr/RegexCompiler.cpp:
- (JSC::Yarr::RegexPatternConstructor::setupAlternativeOffsets):
- (JSC::Yarr::RegexPatternConstructor::checkForTerminalParentheses):
- (JSC::Yarr::compileRegex):
- * yarr/RegexInterpreter.cpp:
- (JSC::Yarr::Interpreter::matchParenthesesOnceBegin):
- (JSC::Yarr::Interpreter::matchParenthesesOnceEnd):
- (JSC::Yarr::Interpreter::backtrackParenthesesOnceBegin):
- (JSC::Yarr::Interpreter::backtrackParenthesesOnceEnd):
- (JSC::Yarr::Interpreter::matchParenthesesTerminalBegin):
- (JSC::Yarr::Interpreter::matchParenthesesTerminalEnd):
- (JSC::Yarr::Interpreter::backtrackParenthesesTerminalBegin):
- (JSC::Yarr::Interpreter::backtrackParenthesesTerminalEnd):
- (JSC::Yarr::Interpreter::matchDisjunction):
- (JSC::Yarr::ByteCompiler::atomParenthesesOnceBegin):
- (JSC::Yarr::ByteCompiler::atomParenthesesTerminalBegin):
- (JSC::Yarr::ByteCompiler::atomParenthesesSubpatternBegin):
- (JSC::Yarr::ByteCompiler::atomParentheticalAssertionEnd):
- (JSC::Yarr::ByteCompiler::atomParenthesesSubpatternEnd):
- (JSC::Yarr::ByteCompiler::atomParenthesesOnceEnd):
- (JSC::Yarr::ByteCompiler::atomParenthesesTerminalEnd):
- (JSC::Yarr::ByteCompiler::emitDisjunction):
- * yarr/RegexInterpreter.h:
- * yarr/RegexJIT.cpp:
- (JSC::Yarr::RegexGenerator::generateParenthesesSingle):
- (JSC::Yarr::RegexGenerator::generateParenthesesGreedyNoBacktrack):
- (JSC::Yarr::RegexGenerator::generateTerm):
- * yarr/RegexPattern.h:
- (JSC::Yarr::PatternTerm::PatternTerm):
- 2010-11-24 Patrick Gansterer <paroga@webkit.org>
- Reviewed by Csaba Osztrogonác.
- Remove Bakefile build system files
- https://bugs.webkit.org/show_bug.cgi?id=49983
- r53757 only removed the content, but not the files.
- This patch removes that empty files.
- * JavaScriptCoreSources.bkl: Removed.
- * jscore.bkl: Removed.
- 2010-11-24 Gabor Loki <loki@webkit.org>
- Reviewed by Csaba Osztrogonác.
- Merge the usage of jumps and calls at ARM-JIT
- https://bugs.webkit.org/show_bug.cgi?id=50008
- Those JmpSrc objects which represent jumps (not calls) should point to
- after the jump instruction.
- * assembler/ARMAssembler.h:
- (JSC::ARMAssembler::blx):
- (JSC::ARMAssembler::loadBranchTarget):
- (JSC::ARMAssembler::getAbsoluteJumpAddress):
- (JSC::ARMAssembler::linkJump):
- (JSC::ARMAssembler::relinkJump):
- (JSC::ARMAssembler::linkCall):
- (JSC::ARMAssembler::relinkCall):
- (JSC::ARMAssembler::getRelocatedAddress):
- (JSC::ARMAssembler::getDifferenceBetweenLabels):
- (JSC::ARMAssembler::getCallReturnOffset):
- * assembler/MacroAssemblerARM.h:
- (JSC::MacroAssemblerARM::call):
- 2010-11-24 Carlos Garcia Campos <cgarcia@igalia.com>
- Reviewed by Xan Lopez.
- [GTK] Optimize foldCase, toLower and toUpper methods in glib unicode backend
- https://bugs.webkit.org/show_bug.cgi?id=48625
- GLib methods use UTF-8 strings, so we have to convert from UTF-16 to
- UTF-8 to perform the case operations and then convert back the result to
- UTF-16. GLib conversion methods return a new allocated string, so we
- have to memcpy the result into the destination buffer too. Using our
- own methods to convert between UTF-8 and UTF-16 from wtf/unicode/UTF8.h
- we don't need such memcpy, since they take an already allocated buffer
- rather than returning a new one. There's another optimization for the
- case when the destination buffer is not large enough. In that case,
- methods should return the expected destination buffer size and are
- called again with a new buffer. We can avoid the conversion to UTF-16 by
- pre-calculating the required size for the destination buffer.
- * wtf/unicode/glib/UnicodeGLib.cpp:
- (WTF::Unicode::getUTF16LengthFromUTF8):
- (WTF::Unicode::convertCase):
- (WTF::Unicode::foldCase):
- (WTF::Unicode::toLower):
- (WTF::Unicode::toUpper):
- 2010-11-23 Patrick Gansterer <paroga@webkit.org>
- Reviewed by Sam Weinig.
- Use WTF::StringHasher directly in JavaScriptCore
- https://bugs.webkit.org/show_bug.cgi?id=49893
- * profiler/CallIdentifier.h:
- (JSC::CallIdentifier::Hash::hash):
- * runtime/Identifier.cpp:
- (JSC::IdentifierCStringTranslator::hash):
- (JSC::IdentifierUCharBufferTranslator::hash):
- 2010-11-22 Patrick Gansterer <paroga@webkit.org>
- Reviewed by Sam Weinig.
- Add WTF::FixedArray::size()
- https://bugs.webkit.org/show_bug.cgi?id=49891
- Add a method to get the size of a FixedArray.
- * wtf/FixedArray.h:
- (WTF::FixedArray::size):
- 2010-11-22 Patrick Gansterer <paroga@webkit.org>
- Reviewed by Adam Roben.
- [WINCE] Set correct preprocessor definitions
- https://bugs.webkit.org/show_bug.cgi?id=49887
- * wtf/Platform.h:
- 2010-11-22 Adam Roben <aroben@apple.com>
- Use paths relative to $WebKitVSPropsRedirectionDir to access shared .vsprops files
- Apple's Windows build allows placing header files and import libraries for WebKit's
- dependencies (CoreGraphics, CFNetwork, SQLite, etc.) outside the source tree via the
- $WebKitLibrariesDir environment variable. This is both required for production builds and
- convenient for Apple-internal developer builds. Apple's production builds also require that
- WebKit's shared .vsprops files be accessed relative to $WebKitLibrariesDir. In production
- builds, the files are copied into that directory tree by the
- WebKitLibraries/win/tools/WinTools.make file. In Apple-internal developer builds, the
- copying is done by
- JavaScriptCore/JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreGenerated.make.
- This .vsprops copying is problematic in one very important case: when a developer updates
- their source tree and then tries to build. Visual Studio only reads .vsprops files when a
- project is first loaded. So, when Visual Studio is first opened after the .vsprops files are
- updated, it reads in the old files that were already residing in $WebKitLibrariesDir. When a
- build is started, JavaScriptCoreGenerated.make copies the new .vsprops files into
- $WebKitLibrariesDir, but Visual Studio will not pick up the changes. The rest of the build
- will proceed with out-of-date .vsprops files, which will likely result in a build failure.
- To fix this, we now use normal relative paths to access the .vsprops files in the source
- tree rather than in $WebKitLibrariesDir, but prefix those paths with a new environment
- variable, $WebKitVSPropsRedirectionDir. In developer builds, this environment variable is
- unset, so the normal relative paths are used to read the .vsprops files out of the source
- tree directly. In production builds, this environment variable is set to a fake directory
- that will cause the .vsprops files in $WebKitLibrariesDir to be found when the relative path
- is resolved.
-
- For example, JavaScriptCore.vcproj uses this path for FeatureDefines.vsprops:
- $(WebKitVSPropsRedirectionDir)..\..\..\WebKitLibraries\win\tools\vsprops\FeatureDefines.vsprops
- In developer builds, where $WebKitVSPropsRedirectionDir is unset, this will point to the
- files in WebKitLibraries\win\tools\vsprops in the source tree. In production builds,
- JavaScriptCore.make sets $WebKitVSPropsRedirectionDir to
- "$(SRCROOT)\AppleInternal\tools\vsprops\OpenSource\1\2\3\", so the full path for
- FeatureDefines.vsprops becomes:
- $(SRCROOT)\AppleInternal\tools\vsprops\OpenSource\1\2\3\..\..\..\WebKitLibraries\win\tools\vsprops\FeatureDefines.vsprops
- which resolves to:
- $(SRCROOT)\AppleInternal\tools\vsprops\OpenSource\WebKitLibraries\win\tools\vsprops\FeatureDefines.vsprops
- (We rely on the fact that Windows doesn't care whether the directories "1", "2", and "3"
- actually exist since they are matched by an equal number of ".." path components.)
- Note that Visual Studio still won't pick up changes made to .vsprops files while Visual
- Studio is open, but that problem hasn't seemed to cause developers many headaches so far.
- Fixes <http://webkit.org/b/49181> Windows build fails mysteriously when .vsprops files are
- updated
- Reviewed by Dave Hyatt.
- * JavaScriptCore.vcproj/JavaScriptCore.make: Set $WebKitVSPropsRedirectionDir so that
- production builds can find the .vsprops files.
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreGenerated.make: Stopy copying the
- .vsprops files. It isn't needed anymore.
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
- * JavaScriptCore.vcproj/WTF/WTF.vcproj:
- * JavaScriptCore.vcproj/jsc/jsc.vcproj:
- * JavaScriptCore.vcproj/testapi/testapi.vcproj:
- Changed to use paths relative to $WebKitVSPropsRedirectionDir to access shared .vsprops
- files.
- 2010-11-19 Peter Varga <pvarga@inf.u-szeged.hu>
- Reviewed by Gavin Barraclough.
- YARR JIT should fallback to YARR Interpreter instead of PCRE.
- https://bugs.webkit.org/show_bug.cgi?id=46719
- Remove the ENABLE_YARR macro and the option of matching regular
- expressions with PCRE from JavaScriptCore.
- * runtime/JSGlobalData.h:
- * runtime/RegExp.cpp:
- (JSC::RegExp::compile):
- (JSC::RegExp::match):
- * tests/mozilla/expected.html:
- * wtf/Platform.h:
- * yarr/RegexCompiler.cpp:
- * yarr/RegexCompiler.h:
- * yarr/RegexInterpreter.cpp:
- (JSC::Yarr::byteCompileRegex):
- * yarr/RegexInterpreter.h:
- * yarr/RegexJIT.cpp:
- (JSC::Yarr::jitCompileRegex):
- * yarr/RegexJIT.h:
- (JSC::Yarr::RegexCodeBlock::RegexCodeBlock):
- (JSC::Yarr::RegexCodeBlock::~RegexCodeBlock):
- (JSC::Yarr::RegexCodeBlock::getFallback):
- (JSC::Yarr::RegexCodeBlock::isFallback):
- (JSC::Yarr::RegexCodeBlock::setFallback):
- (JSC::Yarr::executeRegex):
- * yarr/RegexParser.h:
- * yarr/RegexPattern.h:
- 2010-11-20 Kwang Yul Seo <skyul@company100.net>
- Reviewed by David Kilzer.
- [BREWMP] Replace DBGPRINTF and DBGPRINTF_FATAL with dbg_Message
- https://bugs.webkit.org/show_bug.cgi?id=49520
- DBGPRINTF and DBGPRINTF_FATAL macros are prohibited in Mod1. Use dbg_Message instead.
- * wtf/Assertions.cpp:
- * wtf/Assertions.h:
- 2010-11-20 Gabor Loki <loki@webkit.org>
- Reviewed by Gavin Barraclough.
- Support JIT_OPTIMIZE_MOD on Thumb-2
- https://bugs.webkit.org/show_bug.cgi?id=49432
- Rewrite the soft modulo operation into macroassembler form, and move it
- to JSValue32_64 section.
- Add support for soft modulo on Thumb-2 JIT also.
- * assembler/ARMv7Assembler.h:
- (JSC::ARMv7Assembler::clz):
- * assembler/MacroAssemblerARM.h:
- (JSC::MacroAssemblerARM::countLeadingZeros32):
- (JSC::MacroAssemblerARM::relativeTableJump):
- * assembler/MacroAssemblerARMv7.h:
- (JSC::MacroAssemblerARMv7::countLeadingZeros32):
- (JSC::MacroAssemblerARMv7::relativeTableJump):
- * jit/JITArithmetic.cpp:
- (JSC::JIT::emit_op_mod):
- * jit/JITOpcodes.cpp:
- (JSC::JIT::privateCompileCTIMachineTrampolines):
- * jit/JITOpcodes32_64.cpp:
- (JSC::JIT::softModulo):
- * jit/JITStubs.cpp:
- (JSC::JITThunks::JITThunks):
- * wtf/Platform.h:
- 2010-11-20 David Kilzer <ddkilzer@apple.com>
- <http://webkit.org/b/49848> Make it possible to display the last character of a secure text field unobscured
- Reviewed by Darin Adler.
- * JavaScriptCore.exp:
- * wtf/text/StringImpl.cpp:
- (WTF::StringImpl::secure): Added argument that controls whether
- the last character is obscured or not. Implemented behavior.
- * wtf/text/StringImpl.h:
- (WTF::StringImpl::LastCharacterBehavior): Added enum.
- (WTF::StringImpl::secure): Updated method signature.
- 2010-11-19 William Chan <willchan@chromium.org>
- Reviewed by David Levin.
- Add USE(CHROMIUM_NET)
- Indicates the use of Chromium's network stack. Chromium's network
- stack performs better when it has full view of all resource requests,
- so USE(CHROMIUM_NET) can be used to bypass throttles.
- https://bugs.webkit.org/show_bug.cgi?id=49778
- * wtf/Platform.h:
- 2010-11-19 Steve Falkenburg <sfalken@apple.com>
- Reviewed by Adam Roben.
- Add Debug_Cairo_CFLite and Release_Cairo_CFLite configurations for all vcproj files
- https://bugs.webkit.org/show_bug.cgi?id=49819
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreGenerated.vcproj:
- * JavaScriptCore.vcproj/WTF/WTF.vcproj:
- * JavaScriptCore.vcproj/WTF/WTFCommon.vsprops:
- * JavaScriptCore.vcproj/jsc/jsc.vcproj:
- * JavaScriptCore.vcproj/testapi/testapi.vcproj:
- 2010-11-19 Oliver Hunt <oliver@apple.com>
- Reviewed by Geoffrey Garen.
- Don't check for constant registers when we can guarantee that the register won't be in the constant pool
- https://bugs.webkit.org/show_bug.cgi?id=49814
- Add uncheckedR(int) to CallFrame, and replace all the uses of r() with uncheckedR()
- when we can guarantee that the register is not referring to a constant.
- This makes the interpreter about 0.5% faster, and makes the CallFrame initialisation
- logic correct when we're using a faked callframe (as in the case of the globalExec).
- * bytecode/CodeBlock.cpp:
- (JSC::CodeBlock::createActivation):
- * debugger/DebuggerCallFrame.cpp:
- (JSC::DebuggerCallFrame::thisObject):
- * interpreter/CallFrame.h:
- (JSC::ExecState::uncheckedR):
- * interpreter/Interpreter.cpp:
- (JSC::Interpreter::resolve):
- (JSC::Interpreter::resolveSkip):
- (JSC::Interpreter::resolveGlobal):
- (JSC::Interpreter::resolveGlobalDynamic):
- (JSC::Interpreter::resolveBase):
- (JSC::Interpreter::resolveBaseAndProperty):
- (JSC::Interpreter::callEval):
- (JSC::Interpreter::unwindCallFrame):
- (JSC::Interpreter::throwException):
- (JSC::Interpreter::execute):
- (JSC::Interpreter::executeCall):
- (JSC::Interpreter::executeConstruct):
- (JSC::Interpreter::prepareForRepeatCall):
- (JSC::Interpreter::createExceptionScope):
- (JSC::Interpreter::privateExecute):
- * jit/JITStubs.cpp:
- (JSC::DEFINE_STUB_FUNCTION):
- * runtime/JSActivation.cpp:
- (JSC::JSActivation::argumentsGetter):
- 2010-11-19 Steve Falkenburg <sfalken@apple.com>
- Reviewed by Darin Adler.
- Normalize Cairo/CFLite project/solution configuration names
- https://bugs.webkit.org/show_bug.cgi?id=49818
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
- * JavaScriptCore.vcproj/jsc/jsc.vcproj:
- * JavaScriptCore.vcproj/testapi/testapi.vcproj:
- 2010-11-18 Steve Falkenburg <sfalken@apple.com>
- Reviewed by Adam Roben.
- Windows vcproj configuration names should be normalized across projects
- https://bugs.webkit.org/show_bug.cgi?id=49776
- * JavaScriptCore.vcproj/JavaScriptCore.sln:
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreGenerated.vcproj:
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreGeneratedCommon.vsprops: Added.
- * JavaScriptCore.vcproj/JavaScriptCoreSubmit.sln:
- 2010-11-19 Patrick Gansterer <paroga@webkit.org>
- Unreviewed, build fix after r72360.
- * bytecode/CodeBlock.h:
- (JSC::CodeBlock::bytecodeOffset):
- 2010-11-18 Gavin Barraclough <barraclough@apple.com>
- Rubber stamped by Geoff Garen.
- Bug 49577 - Function.prototype should be non-configurable
- Ooops, Function.prototype should not be enumerable!
- * runtime/JSFunction.cpp:
- (JSC::JSFunction::getOwnPropertySlot):
- 2010-11-18 Gavin Barraclough <barraclough@apple.com>
- Reviewed by Oliver Hunt.
- Bug 49708 - Stop recompiling functions to regenerate exception info.
- Instead only hold info as necessary – keep divot info is the inspector
- is enabled, line number info is debugging or profiling, and handler
- info for functions with try/catch.
- * bytecode/CodeBlock.cpp:
- (JSC::CodeBlock::dumpStatistics):
- (JSC::CodeBlock::CodeBlock):
- (JSC::CodeBlock::lineNumberForBytecodeOffset):
- (JSC::CodeBlock::expressionRangeForBytecodeOffset):
- (JSC::CodeBlock::shrinkToFit):
- * bytecode/CodeBlock.h:
- (JSC::CodeBlock::bytecodeOffset):
- (JSC::CodeBlock::addExpressionInfo):
- (JSC::CodeBlock::addLineInfo):
- (JSC::CodeBlock::hasExpressionInfo):
- (JSC::CodeBlock::hasLineInfo):
- (JSC::CodeBlock::needsCallReturnIndices):
- (JSC::CodeBlock::callReturnIndexVector):
- * bytecode/SamplingTool.cpp:
- (JSC::SamplingTool::dump):
- * bytecompiler/BytecodeGenerator.cpp:
- (JSC::BytecodeGenerator::generate):
- (JSC::BytecodeGenerator::BytecodeGenerator):
- * bytecompiler/BytecodeGenerator.h:
- (JSC::BytecodeGenerator::emitNode):
- (JSC::BytecodeGenerator::emitNodeInConditionContext):
- (JSC::BytecodeGenerator::emitExpressionInfo):
- (JSC::BytecodeGenerator::addLineInfo):
- * interpreter/Interpreter.cpp:
- (JSC::Interpreter::unwindCallFrame):
- (JSC::appendSourceToError):
- (JSC::Interpreter::throwException):
- (JSC::Interpreter::privateExecute):
- (JSC::Interpreter::retrieveLastCaller):
- * interpreter/Interpreter.h:
- * jit/JIT.cpp:
- (JSC::JIT::privateCompile):
- * jit/JITStubs.cpp:
- (JSC::jitThrow):
- (JSC::DEFINE_STUB_FUNCTION):
- * runtime/Collector.cpp:
- (JSC::Heap::markRoots):
- * runtime/Executable.cpp:
- (JSC::EvalExecutable::compileInternal):
- (JSC::ProgramExecutable::compileInternal):
- (JSC::FunctionExecutable::compileForCallInternal):
- (JSC::FunctionExecutable::compileForConstructInternal):
- * runtime/Executable.h:
- * runtime/JSGlobalData.cpp:
- (JSC::JSGlobalData::JSGlobalData):
- * runtime/JSGlobalData.h:
- (JSC::JSGlobalData::usingAPI):
- * runtime/JSGlobalObject.h:
- (JSC::JSGlobalObject::supportsRichSourceInfo):
- (JSC::JSGlobalObject::globalData):
- 2010-11-18 Adam Roben <aroben@apple.com>
- Add a script to delete manifest-related files when they are older than
- any .vsprops file
- Changes to .vsprops files can cause the manifest files to become
- invalid, and Visual Studio doesn't always figure out that it needs to
- rebuild them.
- Reviewed by Sam Weinig.
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreGenerated.make:
- Call the new script.
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreGenerated.vcproj:
- Added the new script.
- * JavaScriptCore.vcproj/JavaScriptCore/react-to-vsprops-changes.py: Added.
- (file_modification_times): Generator to return the modification time of
- each file in a directory hierarchy.
- (main): Get the modification time of the newest vsprops file, then find
- all manifest-related files in the obj directory. Delete all
- manifest-related files that are older than the newest vsprops file.
- 2010-11-18 Mark Rowe <mrowe@apple.com>
- Rubber-stamped by Adam Roben.
- <rdar://problem/8602509&8602717&8602724> Enable compaction support.
- * Configurations/JavaScriptCore.xcconfig:
- 2010-11-18 Gavin Barraclough <barraclough@apple.com>
- Reviewed by Oliver Hunt.
- Bug 49635 - Profiler implementation is fragile
- The profile presently requires the exception handling mechanism to explicitly
- remove all stack frames that are exited during the exception unwind mechanism.
- This is fragile in a number of ways:
- * We have to change bytecode register allocation when compiling code to run
- when profiling, to preserve the callee function (this is also required to
- call did_call after the call has returned).
- * In the JIT we have to maintain additional data structures
- (CodeBlock::RareData::m_functionRegisterInfos) to map back to the register
- containing the callee.
- * In the interpreter we use 'magic values' to offset into the instruction
- stream to rediscover the register containing the function.
- Instead, move profiling into the head and tail of functions.
- * This correctly accounts the cost of the call itself to the caller.
- * This allows us to access the callee function object from the callframe.
- * This means that at the point a call is made we can track the stack depth
- on the ProfileNode.
- * When unwinding we can simply report the depth at which the exception is
- being handled - all call frames above this level are freed.
- * bytecode/CodeBlock.cpp:
- (JSC::CodeBlock::shrinkToFit):
- * bytecode/CodeBlock.h:
- (JSC::CodeBlock::bytecodeOffset):
- (JSC::CodeBlock::methodCallLinkInfo):
- * bytecompiler/BytecodeGenerator.cpp:
- (JSC::BytecodeGenerator::emitCall):
- (JSC::BytecodeGenerator::emitCallVarargs):
- * interpreter/Interpreter.cpp:
- (JSC::Interpreter::unwindCallFrame):
- (JSC::Interpreter::throwException):
- (JSC::Interpreter::execute):
- (JSC::Interpreter::executeCall):
- (JSC::Interpreter::executeConstruct):
- (JSC::Interpreter::privateExecute):
- * jit/JITStubs.cpp:
- (JSC::DEFINE_STUB_FUNCTION):
- * profiler/Profile.cpp:
- (JSC::Profile::Profile):
- * profiler/ProfileGenerator.cpp:
- (JSC::ProfileGenerator::addParentForConsoleStart):
- (JSC::ProfileGenerator::willExecute):
- (JSC::ProfileGenerator::didExecute):
- (JSC::ProfileGenerator::exceptionUnwind):
- (JSC::ProfileGenerator::stopProfiling):
- * profiler/ProfileGenerator.h:
- * profiler/ProfileNode.cpp:
- (JSC::ProfileNode::ProfileNode):
- (JSC::ProfileNode::willExecute):
- * profiler/ProfileNode.h:
- (JSC::ProfileNode::create):
- (JSC::ProfileNode::callerCallFrame):
- * profiler/Profiler.cpp:
- (JSC::dispatchFunctionToProfiles):
- (JSC::Profiler::_willExecute):
- (JSC::Profiler::_didExecute):
- (JSC::Profiler::exceptionUnwind):
- * profiler/Profiler.h:
- 2010-11-18 Steve Falkenburg <sfalken@apple.com>
- Reviewed by Adam Roben.
- Remove leftover Windows Debug_Internal configurations
- https://bugs.webkit.org/show_bug.cgi?id=49758
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
- * JavaScriptCore.vcproj/WTF/WTF.vcproj:
- * JavaScriptCore.vcproj/jsc/jsc.vcproj:
- * JavaScriptCore.vcproj/testapi/testapi.vcproj:
- 2010-11-18 Chao-ying Fu <fu@mips.com>
- Reviewed by Csaba Osztrogonác.
- Avoid increasing required alignment of target type warning
- https://bugs.webkit.org/show_bug.cgi?id=43963
- * runtime/UString.h:
- (JSC::UStringHash::equal):
- * wtf/StdLibExtras.h:
- 2010-11-17 Sam Weinig <sam@webkit.org>
- Reviewed by Anders Carlsson.
- Add stubbed out ScrollAnimator for the Mac
- https://bugs.webkit.org/show_bug.cgi?id=49678
- * wtf/Platform.h: Enable SMOOTH_SCROLLING on the Mac, this has no
- change in behavior at the moment.
- 2010-11-17 David Kilzer <ddkilzer@apple.com>
- <http://webkit.org/b/49634> Make overflow guards in WTF::String::utf8 explicit
- Reviewed by Darin Adler.
- Add an explicit overflow check prior to allocating our buffer,
- rather than implicitly relying on the guard in convertUTF16ToUTF8.
- * wtf/text/WTFString.cpp:
- (WTF::String::utf8):
- 2010-11-17 Sheriff Bot <webkit.review.bot@gmail.com>
- Unreviewed, rolling out r72197.
- http://trac.webkit.org/changeset/72197
- https://bugs.webkit.org/show_bug.cgi?id=49661
- broke fast/regex/test1.html (Requested by stampho on #webkit).
- * runtime/JSGlobalData.h:
- * runtime/RegExp.cpp:
- (JSC::RegExpRepresentation::~RegExpRepresentation):
- (JSC::RegExp::compile):
- (JSC::RegExp::match):
- * tests/mozilla/expected.html:
- * wtf/Platform.h:
- * yarr/RegexCompiler.cpp:
- * yarr/RegexCompiler.h:
- * yarr/RegexInterpreter.cpp:
- * yarr/RegexInterpreter.h:
- * yarr/RegexJIT.cpp:
- (JSC::Yarr::jitCompileRegex):
- * yarr/RegexJIT.h:
- (JSC::Yarr::RegexCodeBlock::RegexCodeBlock):
- (JSC::Yarr::RegexCodeBlock::~RegexCodeBlock):
- (JSC::Yarr::RegexCodeBlock::getFallback):
- (JSC::Yarr::RegexCodeBlock::setFallback):
- (JSC::Yarr::executeRegex):
- * yarr/RegexParser.h:
- * yarr/RegexPattern.h:
- 2010-11-17 Peter Varga <pvarga@inf.u-szeged.hu>
- Reviewed by Gavin Barraclough.
- YARR JIT should fallback to YARR Interpreter instead of PCRE.
- https://bugs.webkit.org/show_bug.cgi?id=46719
- Remove the ENABLE_YARR macro and the option of matching regular
- expressions with PCRE from JavaScriptCore.
- * runtime/JSGlobalData.h:
- * runtime/RegExp.cpp:
- (JSC::RegExp::compile):
- (JSC::RegExp::match):
- * tests/mozilla/expected.html:
- * wtf/Platform.h:
- * yarr/RegexCompiler.cpp:
- * yarr/RegexCompiler.h:
- * yarr/RegexInterpreter.cpp:
- (JSC::Yarr::byteCompileRegex):
- * yarr/RegexInterpreter.h:
- * yarr/RegexJIT.cpp:
- (JSC::Yarr::jitCompileRegex):
- * yarr/RegexJIT.h:
- (JSC::Yarr::RegexCodeBlock::RegexCodeBlock):
- (JSC::Yarr::RegexCodeBlock::~RegexCodeBlock):
- (JSC::Yarr::RegexCodeBlock::getFallback):
- (JSC::Yarr::RegexCodeBlock::isFallback):
- (JSC::Yarr::RegexCodeBlock::setFallback):
- (JSC::Yarr::executeRegex):
- * yarr/RegexParser.h:
- * yarr/RegexPattern.h:
- 2010-11-17 Peter Varga <pvarga@inf.u-szeged.hu>
- Reviewed by Gavin Barraclough.
- Extend YARR Interpreter with beginning character look-up optimization
- https://bugs.webkit.org/show_bug.cgi?id=45751
- Add beginning character look-up optimization which sets the start
- index to the first possible successful pattern match.
- Extend YARR Interpreter with lookupForBeginChars function which
- implements the beginning character look-up optimization.
- * yarr/RegexInterpreter.cpp:
- (JSC::Yarr::Interpreter::InputStream::readPair):
- (JSC::Yarr::Interpreter::InputStream::isNotAvailableInput):
- (JSC::Yarr::Interpreter::lookupForBeginChars):
- (JSC::Yarr::Interpreter::matchDisjunction):
- (JSC::Yarr::Interpreter::interpret):
- * yarr/RegexInterpreter.h:
- (JSC::Yarr::BytecodePattern::BytecodePattern):
- 2010-11-17 Alexis Menard <alexis.menard@nokia.com>, Simon Hausmann <simon.hausmann@nokia.com>
- Reviewed by Kenneth Christiansen, Tor Arne Vestbø.
- [Qt] Add support for use GStreamer with the Qt build
- Enable the build/inclusion of the wtf/QObject convenience classes.
- * JavaScriptCore.pri:
- * wtf/wtf.pri:
- 2010-11-17 Peter Varga <pvarga@inf.u-szeged.hu>
- Reviewed by Gavin Barraclough.
- Collect the beginning characters in a RegExp pattern for look-up
- optimization
- https://bugs.webkit.org/show_bug.cgi?id=45748
- Extend the YARR's parser with an algorithm which collects the potential
- beginning characters from a RegExp pattern for later look-up optimization.
- * yarr/RegexCompiler.cpp:
- (JSC::Yarr::BeginCharHelper::BeginCharHelper):
- (JSC::Yarr::BeginCharHelper::addBeginChar):
- (JSC::Yarr::BeginCharHelper::merge):
- (JSC::Yarr::BeginCharHelper::addCharacter):
- (JSC::Yarr::BeginCharHelper::linkHotTerms):
- (JSC::Yarr::RegexPatternConstructor::RegexPatternConstructor):
- (JSC::Yarr::RegexPatternConstructor::addBeginTerm):
- (JSC::Yarr::RegexPatternConstructor::setupDisjunctionBeginTerms):
- (JSC::Yarr::RegexPatternConstructor::setupAlternativeBeginTerms):
- (JSC::Yarr::RegexPatternConstructor::setupBeginChars):
- (JSC::Yarr::compileRegex):
- * yarr/RegexPattern.h:
- (JSC::Yarr::TermChain::TermChain):
- (JSC::Yarr::BeginChar::BeginChar):
- (JSC::Yarr::RegexPattern::RegexPattern):
- (JSC::Yarr::RegexPattern::reset):
- 2010-11-17 Sheriff Bot <webkit.review.bot@gmail.com>
- Unreviewed, rolling out r72160.
- http://trac.webkit.org/changeset/72160
- https://bugs.webkit.org/show_bug.cgi?id=49646
- Broke lots of fast/profiler tests, among others (Requested by
- aroben on #webkit).
- * bytecode/CodeBlock.cpp:
- (JSC::CodeBlock::dump):
- (JSC::CodeBlock::functionRegisterForBytecodeOffset):
- (JSC::CodeBlock::shrinkToFit):
- * bytecode/CodeBlock.h:
- (JSC::CodeBlock::addFunctionRegisterInfo):
- * bytecode/Opcode.h:
- * bytecompiler/BytecodeGenerator.cpp:
- (JSC::BytecodeGenerator::BytecodeGenerator):
- (JSC::BytecodeGenerator::emitCall):
- (JSC::BytecodeGenerator::emitCallVarargs):
- (JSC::BytecodeGenerator::emitReturn):
- (JSC::BytecodeGenerator::emitConstruct):
- * bytecompiler/BytecodeGenerator.h:
- (JSC::CallArguments::profileHookRegister):
- * bytecompiler/NodesCodegen.cpp:
- (JSC::CallArguments::CallArguments):
- * interpreter/Interpreter.cpp:
- (JSC::Interpreter::unwindCallFrame):
- (JSC::Interpreter::throwException):
- (JSC::Interpreter::execute):
- (JSC::Interpreter::executeCall):
- (JSC::Interpreter::executeConstruct):
- (JSC::Interpreter::privateExecute):
- * jit/JIT.cpp:
- (JSC::JIT::privateCompileMainPass):
- * jit/JIT.h:
- * jit/JITOpcodes.cpp:
- (JSC::JIT::emit_op_profile_will_call):
- (JSC::JIT::emit_op_profile_did_call):
- * jit/JITOpcodes32_64.cpp:
- (JSC::JIT::emit_op_profile_will_call):
- (JSC::JIT::emit_op_profile_did_call):
- * jit/JITStubs.cpp:
- (JSC::DEFINE_STUB_FUNCTION):
- * jit/JITStubs.h:
- * profiler/Profile.cpp:
- (JSC::Profile::Profile):
- * profiler/ProfileGenerator.cpp:
- (JSC::ProfileGenerator::addParentForConsoleStart):
- (JSC::ProfileGenerator::willExecute):
- (JSC::ProfileGenerator::didExecute):
- (JSC::ProfileGenerator::stopProfiling):
- * profiler/ProfileGenerator.h:
- * profiler/ProfileNode.cpp:
- (JSC::ProfileNode::ProfileNode):
- (JSC::ProfileNode::willExecute):
- * profiler/ProfileNode.h:
- (JSC::ProfileNode::create):
- (JSC::ProfileNode::operator==):
- * profiler/Profiler.cpp:
- (JSC::dispatchFunctionToProfiles):
- (JSC::Profiler::willExecute):
- (JSC::Profiler::didExecute):
- * profiler/Profiler.h:
- 2010-11-16 Gavin Barraclough <barraclough@apple.com>
- Reviewed by Sam Weinig.
- Bug 49635 - Profiler implementation is fragile
- The profile presently requires the exception handling mechanism to explicitly
- remove all stack frames that are exited during the exception unwind mechanism.
- This is fragile in a number of ways:
- * We have to change bytecode register allocation when compiling code to run
- when profiling, to preserve the callee function (this is also required to
- call did_call after the call has returned).
- * In the JIT we have to maintain additional data structures
- (CodeBlock::RareData::m_functionRegisterInfos) to map back to the register
- containing the callee.
- * In the interpreter we use 'magic values' to offset into the instruction
- stream to rediscover the register containing the function.
- Instead, move profiling into the head and tail of functions.
- * This correctly accounts the cost of the call itself to the caller.
- * This allows us to access the callee function object from the callframe.
- * This means that at the point a call is made we can track the stack depth
- on the ProfileNode.
- * When unwinding we can simply report the depth at which the exception is
- being handled - all call frames above this level are freed.
- * JavaScriptCore.xcodeproj/project.pbxproj:
- * bytecode/CodeBlock.cpp:
- (JSC::CodeBlock::dump):
- (JSC::CodeBlock::shrinkToFit):
- * bytecode/CodeBlock.h:
- (JSC::CodeBlock::bytecodeOffset):
- (JSC::CodeBlock::methodCallLinkInfo):
- * bytecode/Opcode.h:
- * bytecompiler/BytecodeGenerator.cpp:
- (JSC::BytecodeGenerator::BytecodeGenerator):
- (JSC::BytecodeGenerator::emitCall):
- (JSC::BytecodeGenerator::emitCallVarargs):
- (JSC::BytecodeGenerator::emitReturn):
- (JSC::BytecodeGenerator::emitConstruct):
- * bytecompiler/BytecodeGenerator.h:
- (JSC::CallArguments::count):
- * bytecompiler/NodesCodegen.cpp:
- (JSC::CallArguments::CallArguments):
- * interpreter/Interpreter.cpp:
- (JSC::ProfileHostCall::ProfileHostCall):
- (JSC::ProfileHostCall::~ProfileHostCall):
- (JSC::Interpreter::unwindCallFrame):
- (JSC::Interpreter::throwException):
- (JSC::Interpreter::execute):
- (JSC::Interpreter::executeCall):
- (JSC::Interpreter::executeConstruct):
- (JSC::Interpreter::privateExecute):
- * jit/JIT.cpp:
- (JSC::JIT::privateCompileMainPass):
- * jit/JIT.h:
- * jit/JITOpcodes.cpp:
- (JSC::JIT::emit_op_profile_has_called):
- (JSC::JIT::emit_op_profile_will_return):
- * jit/JITOpcodes32_64.cpp:
- (JSC::JIT::emit_op_profile_has_called):
- (JSC::JIT::emit_op_profile_will_return):
- * jit/JITStubs.cpp:
- (JSC::DEFINE_STUB_FUNCTION):
- * jit/JITStubs.h:
- * profiler/Profile.cpp:
- (JSC::Profile::Profile):
- * profiler/ProfileGenerator.cpp:
- (JSC::ProfileGenerator::addParentForConsoleStart):
- (JSC::ProfileGenerator::willExecute):
- (JSC::ProfileGenerator::didExecute):
- (JSC::ProfileGenerator::exceptionUnwind):
- (JSC::ProfileGenerator::stopProfiling):
- * profiler/ProfileGenerator.h:
- * profiler/ProfileNode.cpp:
- (JSC::ProfileNode::ProfileNode):
- (JSC::ProfileNode::willExecute):
- * profiler/ProfileNode.h:
- (JSC::ProfileNode::create):
- (JSC::ProfileNode::operator==):
- (JSC::ProfileNode::exec):
- * profiler/Profiler.cpp:
- (JSC::dispatchFunctionToProfiles):
- (JSC::Profiler::hasCalled):
- (JSC::Profiler::willEvaluate):
- (JSC::Profiler::willReturn):
- (JSC::Profiler::didEvaluate):
- (JSC::Profiler::exceptionUnwind):
- * profiler/Profiler.h:
- 2010-11-16 Brian Weinstein <bweinstein@apple.com>
- Reviewed by Adam Roben and Steve Falkenburg.
- Touch Platform.h to force a rebuild for Windows.
- * wtf/Platform.h:
- 2010-11-16 Steve Falkenburg <sfalken@apple.com>
- Reviewed by Adam Roben.
- Disable LTCG for Windows Release builds. Add new Release_LTCG configuration.
- https://bugs.webkit.org/show_bug.cgi?id=49632
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
- * JavaScriptCore.vcproj/WTF/WTF.vcproj:
- * JavaScriptCore.vcproj/jsc/jsc.vcproj:
- * JavaScriptCore.vcproj/testapi/testapi.vcproj:
- 2010-11-16 Peter Varga <pvarga@inf.u-szeged.hu>
- Reviewed by Gavin Barraclough.
- The number of recursive match calls isn't limited in YARR Interpreter
- https://bugs.webkit.org/show_bug.cgi?id=47906
- Check the number of the matchDisjunction recursive calls to avoid unbounded
- recursion.
- Now the matchDisjunction function returns JSRegExpResult instead of bool.
- The JSRegExpResult enum contains the result of matching or the error code
- of the failure (like HitLimit) which terminates the matching.
- The error codes are based on pcre's jsRegExpExecute error codes.
- * yarr/RegexInterpreter.cpp:
- (JSC::Yarr::Interpreter::parenthesesDoBacktrack):
- (JSC::Yarr::Interpreter::matchParentheses):
- (JSC::Yarr::Interpreter::backtrackParentheses):
- (JSC::Yarr::Interpreter::matchDisjunction):
- (JSC::Yarr::Interpreter::matchNonZeroDisjunction):
- (JSC::Yarr::Interpreter::interpret):
- (JSC::Yarr::Interpreter::Interpreter):
- * yarr/RegexInterpreter.h:
- 2010-11-16 Brian Weinstein <bweinstein@apple.com>
- Rest of the Windows build fix.
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
- 2010-11-16 Gavin Barraclough <barraclough@apple.com>
- Windows build fix pt 1.
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
- 2010-11-16 Gavin Barraclough <barraclough@apple.com>
- Reviewed by Oliver Hunt.
- https://bugs.webkit.org/show_bug.cgi?id=49606
- The bug here is that we read the prototype from the RHS argument using a regular
- op_get_by_id before op_instanceof has checked that this is an object implementing
- HasInstance. This incorrect behaviour gives rise to further unnecessary complexity
- in the code base, since we have additional logic (implemented using the
- GetByIdExceptionInfo data structures on CodeBlock) to convert not an object errors
- from the get_by_id into invalid parameter errors. Having fixed this bug this code
- is all redundant, since in these cases the get_by_id will never have been reached.
- * bytecode/CodeBlock.cpp:
- (JSC::CodeBlock::dump):
- (JSC::CodeBlock::shrinkToFit):
- * bytecode/CodeBlock.h:
- (JSC::CodeBlock::addExpressionInfo):
- * bytecode/Opcode.h:
- * bytecompiler/BytecodeGenerator.cpp:
- (JSC::BytecodeGenerator::BytecodeGenerator):
- (JSC::BytecodeGenerator::emitCheckHasInstance):
- * bytecompiler/BytecodeGenerator.h:
- * bytecompiler/NodesCodegen.cpp:
- (JSC::InstanceOfNode::emitBytecode):
- * interpreter/Interpreter.cpp:
- (JSC::Interpreter::throwException):
- (JSC::Interpreter::privateExecute):
- * jit/JIT.cpp:
- (JSC::JIT::privateCompileMainPass):
- (JSC::JIT::privateCompileSlowCases):
- * jit/JIT.h:
- * jit/JITOpcodes.cpp:
- (JSC::JIT::emit_op_check_has_instance):
- (JSC::JIT::emit_op_instanceof):
- (JSC::JIT::emitSlow_op_check_has_instance):
- (JSC::JIT::emitSlow_op_instanceof):
- * jit/JITOpcodes32_64.cpp:
- (JSC::JIT::emit_op_check_has_instance):
- (JSC::JIT::emit_op_instanceof):
- (JSC::JIT::emitSlow_op_check_has_instance):
- (JSC::JIT::emitSlow_op_instanceof):
- * jit/JITStubs.cpp:
- (JSC::DEFINE_STUB_FUNCTION):
- * jit/JITStubs.h:
- * runtime/ExceptionHelpers.cpp:
- (JSC::createInterruptedExecutionException):
- (JSC::createTerminatedExecutionException):
- (JSC::createUndefinedVariableError):
- (JSC::createNotAFunctionError):
- (JSC::createNotAnObjectError):
- * runtime/ExceptionHelpers.h:
- * runtime/JSGlobalData.cpp:
- (JSC::JSGlobalData::JSGlobalData):
- * runtime/JSGlobalData.h:
- * runtime/JSNotAnObject.cpp:
- (JSC::JSNotAnObject::toPrimitive):
- (JSC::JSNotAnObject::getPrimitiveNumber):
- (JSC::JSNotAnObject::toBoolean):
- (JSC::JSNotAnObject::toNumber):
- (JSC::JSNotAnObject::toString):
- (JSC::JSNotAnObject::toObject):
- (JSC::JSNotAnObject::getOwnPropertySlot):
- (JSC::JSNotAnObject::getOwnPropertyDescriptor):
- (JSC::JSNotAnObject::put):
- (JSC::JSNotAnObject::deleteProperty):
- (JSC::JSNotAnObject::getOwnPropertyNames):
- * runtime/JSNotAnObject.h:
- (JSC::JSNotAnObject::JSNotAnObject):
- * runtime/JSObject.h:
- (JSC::JSObject::isActivationObject):
- * runtime/JSValue.cpp:
- (JSC::JSValue::toObjectSlowCase):
- (JSC::JSValue::synthesizeObject):
- (JSC::JSValue::synthesizePrototype):
- 2010-11-15 Darin Adler <darin@apple.com>
- Reviewed by Sam Weinig.
- Harden additional string functions against large lengths
- https://bugs.webkit.org/show_bug.cgi?id=49574
- * wtf/text/CString.cpp:
- (WTF::CString::init): Check for length that is too large for CString.
- (WTF::CString::newUninitialized): Ditto.
- (WTF::CString::copyBufferIfNeeded): Fix types so the length stays
- in a size_t.
- * wtf/text/WTFString.cpp:
- (WTF::String::append): Check for length that is too large.
- 2010-11-15 Gavin Barraclough <barraclough@apple.com>
- Reviewed by Sam Weinig.
- Bug 49577 - Function.prototype should be non-configurable
- JSC lazily allocates the prototype property of Function objects.
- We check the prototype exists on 'get', but not on 'put'.
- If you 'put' without having first done a 'get' you can end up with a configurable
- prototype (prototype should only ever be non-configurable).
- This is visible in a couple of ways:
- * 'delete' on the property may succeed. (the next access will result in a new,
- reset prototype object).
- * the prototype may be set to a getter.
- * runtime/JSFunction.cpp:
- (JSC::JSFunction::getOwnPropertyNames):
- Reify the prototype property before allowing an enumerate including don't enum properties.
- (JSC::JSFunction::put):
- Reify the prototype property before any put to it.
- 2010-11-15 Gavin Barraclough <barraclough@apple.com>
- Reviewed by Geoff Garen.
- Bug 49488 - Only add source specific information to exceptions in Interpreter::throwException
- Three types of source location information are added to errors.
- (1) Divot information.
- This was added with the intention of using it to provide better source highlighting in the inspector.
- We may still want to do so, but we probably should not be exposing these values in a manner visible to
- user scripts – only through an internal C++ interface. The code adding divot properties to objects has
- been removed.
- (2) Line number information.
- Line number information is presently sometimes added at the point the exception is created, and sometimes
- added at the point the exception passes through throwException. Change this so that throwException has
- the sole responsibility for adding line number and source file information.
- (3) Source snippets in the message of certain type errors (e.g. 'doc' in `Result of expression 'doc' [undefined] is not an object.`).
- These messages are currently created at the point the exceptions is raised. Instead reformat the message
- such that the source snippet is located at the end (`Result of expression 'b1' [undefined] is not an object.`
- becomes `'undefined' is not an object (evaluating 'b1.property')`), and append these to the message at
- the in throw Exception. This presents a number of advantages:
- * we no longer need to have source location information to create these TypeErrors.
- * we can chose to append source location information in other error messages, including those where
- passing source location to the point of construction would be inconvenient.
- * we can chose in future to omit to append source location information when running in a non-debug mode.
- This also cleans up some error output, e.g. removing double brackets ('[[]]') around objects in output,
- removing double periods (..) at end of lines, and adding slightly more context to some errors.
- * bytecode/CodeBlock.cpp:
- (JSC::CodeBlock::expressionRangeForBytecodeOffset):
- - Separated called to access line and range information.
- * bytecode/CodeBlock.h:
- - Separated called to access line and range information.
- * interpreter/Interpreter.cpp:
- (JSC::Interpreter::resolve):
- (JSC::Interpreter::resolveSkip):
- (JSC::Interpreter::resolveGlobal):
- (JSC::Interpreter::resolveGlobalDynamic):
- (JSC::Interpreter::resolveBaseAndProperty):
- (JSC::isInvalidParamForIn):
- (JSC::isInvalidParamForInstanceOf):
- - Update parameters passed to error constructors.
- (JSC::appendSourceToError):
- - Update message property to add location information (previously added in createErrorMessage, in ExceptionHelpers)
- (JSC::Interpreter::throwException):
- - Updated to call appendSourceToError.
- (JSC::Interpreter::privateExecute):
- - Update parameters passed to error constructors.
- * jit/JITStubs.cpp:
- (JSC::DEFINE_STUB_FUNCTION):
- - Update parameters passed to error constructors.
- * runtime/Error.cpp:
- (JSC::addErrorInfo):
- (JSC::hasErrorInfo):
- - Removed divot properties.
- * runtime/Error.h:
- - Removed divot properties.
- * runtime/ErrorInstance.cpp:
- (JSC::ErrorInstance::ErrorInstance):
- - Initialize new property.
- * runtime/ErrorInstance.h:
- (JSC::ErrorInstance::appendSourceToMessage):
- (JSC::ErrorInstance::setAppendSourceToMessage):
- (JSC::ErrorInstance::clearAppendSourceToMessage):
- - Added flag to check for errors needing location information appending.
- (JSC::ErrorInstance::isErrorInstance):
- - Added virtual method to check for ErrorInstances.
- * runtime/ExceptionHelpers.cpp:
- (JSC::createUndefinedVariableError):
- (JSC::createInvalidParamError):
- (JSC::createNotAConstructorError):
- (JSC::createNotAFunctionError):
- (JSC::createNotAnObjectError):
- - Update parameters passed to error constructors, stopped adding line number information early, changed TypeError messages.
- * runtime/ExceptionHelpers.h:
- - Updated function signatures.
- * runtime/JSFunction.cpp:
- (JSC::callHostFunctionAsConstructor):
- - Update parameters passed to error constructors.
- * runtime/JSObject.h:
- (JSC::JSObject::isErrorInstance):
- - Added virtual method to check for ErrorInstances.
- 2010-11-12 Anders Carlsson <andersca@apple.com>
- Reviewed by Adam Roben.
- CString(const char*) crashes when passed a null pointer
- https://bugs.webkit.org/show_bug.cgi?id=49450
- * wtf/text/CString.cpp:
- (WTF::CString::CString):
- Return early if str is null.
- 2010-11-11 Gavin Barraclough <barraclough@apple.com>
- Reviewed by Oliver Hunt.
- Bug 49420 - Clean up syntax/reference error throw.
- Some errors detected at compile time are thrown at runtime. We currently do so using a op_new_error/op_throw bytecode pair.
- This is not ideal. op_throw is used for explicit user throw statements, and has different requirements in terms or meta data
- attached to the exception (controlled by the explicitThrow parameter passed to Interpreter::throwException). To work around
- this, op_new_error has to add the meta data at an early stage, which is unlike other VM exceptions being raised.
- We can simplify this and bring into line with other exception behaviour by changing new_error from just allocating an
- Exception instance to also throwing it – but as a regular VM throw, correctly passing explicitThrow as false.
- * JavaScriptCore.xcodeproj/project.pbxproj:
- * bytecode/CodeBlock.cpp:
- (JSC::CodeBlock::dump):
- (JSC::CodeBlock::expressionRangeForBytecodeOffset):
- * bytecode/Opcode.h:
- * bytecompiler/BytecodeGenerator.cpp:
- (JSC::BytecodeGenerator::emitThrowReferenceError):
- (JSC::BytecodeGenerator::emitThrowSyntaxError):
- (JSC::BytecodeGenerator::emitThrowExpressionTooDeepException):
- * bytecompiler/BytecodeGenerator.h:
- (JSC::BytecodeGenerator::emitNodeInConditionContext):
- * bytecompiler/NodesCodegen.cpp:
- (JSC::ThrowableExpressionData::emitThrowReferenceError):
- (JSC::ThrowableExpressionData::emitThrowSyntaxError):
- (JSC::RegExpNode::emitBytecode):
- (JSC::PostfixErrorNode::emitBytecode):
- (JSC::PrefixErrorNode::emitBytecode):
- (JSC::AssignErrorNode::emitBytecode):
- (JSC::ForInNode::emitBytecode):
- (JSC::ContinueNode::emitBytecode):
- (JSC::BreakNode::emitBytecode):
- (JSC::ReturnNode::emitBytecode):
- (JSC::LabelNode::emitBytecode):
- * interpreter/Interpreter.cpp:
- (JSC::Interpreter::privateExecute):
- * jit/JIT.cpp:
- (JSC::JIT::privateCompileMainPass):
- * jit/JIT.h:
- * jit/JITOpcodes.cpp:
- (JSC::JIT::emit_op_throw_reference_error):
- (JSC::JIT::emit_op_throw_syntax_error):
- * jit/JITOpcodes32_64.cpp:
- (JSC::JIT::emit_op_throw_reference_error):
- (JSC::JIT::emit_op_throw_syntax_error):
- * jit/JITStubs.cpp:
- (JSC::DEFINE_STUB_FUNCTION):
- * jit/JITStubs.h:
- * parser/Nodes.h:
- 2010-11-11 Darin Adler <darin@apple.com>
- Reviewed by Sam Weinig.
- Harden some string functions against large lengths
- https://bugs.webkit.org/show_bug.cgi?id=49293
- * wtf/text/StringImpl.cpp:
- (WTF::StringImpl::create): Fix incorrect use of PassRefPtr. Check for
- strlen results that are too large for StringImpl.
- (WTF::StringImpl::lower): Check for lengths that are too large for
- int32_t.
- (WTF::StringImpl::upper): Fix incorrect use of PassRefPtr. Check for
- lengths that are too large for int32_t.
- (WTF::StringImpl::secure): Fix incorect use of PassRefPtr. Use unsigned
- rather than int and int32_t so we can handle any length.
- (WTF::StringImpl::foldCase): Fix incorrect use of PassRefPtr. Check for
- lengths that are too large for int32_t.
- (WTF::StringImpl::find): Check for strlen results that are too large for
- StringImpl.
- (WTF::StringImpl::findIgnoringCase): Ditto.
- (WTF::StringImpl::replace): Fix incorrect use of PassRefPtr.
- (WTF::StringImpl::createWithTerminatingNullCharacter): Check before
- incrementing length.
- 2010-11-11 Dan Horák <dan@danny.cz>
- Reviewed by Andreas Kling.
- Add support for the s390/s390x architectures, it's big-endian
- with s390 being 32-bit and s390x being 64-bit.
- https://bugs.webkit.org/show_bug.cgi?id=34786
- * wtf/Platform.h:
- 2010-11-10 Csaba Osztrogonác <ossy@webkit.org>
- Reviewed by David Hyatt.
- HTML5 Ruby support should be mandatory feature
- https://bugs.webkit.org/show_bug.cgi?id=49272
- Remove Ruby as optional feature.
- * Configurations/FeatureDefines.xcconfig:
- * JavaScriptCorePrefix.h:: Touch it to avoid incremental build failure on Windows.
- 2010-11-10 Peter Rybin <peter.rybin@gmail.com>
- Reviewed by Adam Barth.
- HTML parser should provide script column position within HTML document to JavaScript engine
- https://bugs.webkit.org/show_bug.cgi?id=45271
- Adds TextPosition* classes -- a structure that stores line/column/generation
- level coordinates inside text document. Adds *BasedNumber classes -- typesafe int
- wrappers that emphasize whether int number is used as zero-based or
- one-based.
- * GNUmakefile.am:
- * JavaScriptCore.gypi:
- * JavaScriptCore.xcodeproj/project.pbxproj:
- * wtf/text/TextPosition.h: Added.
- (WTF::TextPosition::TextPosition):
- (WTF::TextPosition::minimumPosition):
- (WTF::TextPosition::belowRangePosition):
- (WTF::ZeroBasedNumber::fromZeroBasedInt):
- (WTF::ZeroBasedNumber::ZeroBasedNumber):
- (WTF::ZeroBasedNumber::zeroBasedInt):
- (WTF::ZeroBasedNumber::base):
- (WTF::ZeroBasedNumber::belowBase):
- (WTF::OneBasedNumber::fromOneBasedInt):
- (WTF::OneBasedNumber::OneBasedNumber):
- (WTF::OneBasedNumber::oneBasedInt):
- (WTF::OneBasedNumber::convertAsZeroBasedInt):
- (WTF::OneBasedNumber::convertToZeroBased):
- (WTF::OneBasedNumber::base):
- (WTF::OneBasedNumber::belowBase):
- (WTF::toZeroBasedTextPosition):
- (WTF::toOneBasedTextPosition):
- (WTF::ZeroBasedNumber::convertToOneBased):
- 2010-11-09 Gabor Loki <loki@webkit.org>
- Reviewed by Gavin Barraclough.
- ARM JIT asserts when loading http://reader.google.com in debug mode
- https://bugs.webkit.org/show_bug.cgi?id=48912
- There are several cases when the uninterrupted sequence is larger than
- maximum required offset for pathing the same sequence. Eg.: if in a
- uninterrupted sequence the last macroassembler's instruction is a stub
- call, it emits store instruction(s) which should not be included in the
- calculation of length of uninterrupted sequence. So, the insnSpace and
- constSpace should be upper limit instead of hard limit.
- * jit/JIT.h:
- * jit/JITInlineMethods.h:
- (JSC::JIT::endUninterruptedSequence):
- 2010-11-09 David Kilzer <ddkilzer@apple.com>
- <http://webkit.org/b/49279> Fix include statements for local headers
- Reviewed by Gavin Barraclough.
- Use "Foo.h" instead of <Foo.h> for local headers.
- * assembler/AbstractMacroAssembler.h: Also fixed sort order.
- * assembler/CodeLocation.h:
- * yarr/RegexJIT.h:
- * yarr/RegexParser.h:
- 2010-11-08 Adam Roben <aroben@apple.com>
- Roll out r71532
- It broke the build for Cygwin 1.7 installs. Cygwin 1.7's default
- .bashrc unsets %TEMP%, which broke copy-tools.cmd.
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreGenerated.make:
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreGenerated.vcproj:
- * JavaScriptCore.vcproj/JavaScriptCore/copy-tools.cmd: Removed.
- * JavaScriptCore.vcproj/JavaScriptCore/show-alert.js: Removed.
- 2010-11-08 Martin Robinson <mrobinson@igalia.com>
- Reviewed by Xan Lopez.
- >=webkitgtk-1.2.5: parallel build fails with libtool: link: cannot find the library `libwebkit-1.0.la' or unhandled argument `libwebkit-1.0.la'
- https://bugs.webkit.org/show_bug.cgi?id=49128
- r59042 introduced a C++-style comment in Platform.h, which is often
- included in C source files. Change it to a C-style comment.
- * wtf/Platform.h: Fix the C++-style comment.
- 2010-11-08 Adam Roben <aroben@apple.com>
- Show a message and cause the build to immediately fail when any
- .vsprops files are copied
- When $WebKitLibrariesDir is set to a non-standard location, the
- .vsprops files have to be copied from WebKitLibraries/win to
- $WebKitLibrariesDir. When this happens, Visual Studio doesn't pick up
- changes to the .vsprops files until the next time it opens the solution
- file. Before this patch, the build would soldier on with the old
- .vsprops files, leading to strange build failures. Now we detect that
- the .vsprops files have been updated, display a message to the user
- telling them what to do, and make the build fail immediately.
- Fixes <http://webkit.org/b/49181> Windows build fail mysteriously when
- .vsprops files are updated
- Reviewed by Steve Falkenburg.
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreGenerated.make:
- Moved code to copy the tools directory to the new copy-tools.cmd
- script. Moved that after the command that writes the buildfailed file
- so the build will be considered a failure if copy-tools.cmd fails.
- Changed to write the project name into buildfailed like all our other
- projects do, so those other projects will know that the failure was due
- to this project.
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreGenerated.vcproj:
- Added new scripts.
- * JavaScriptCore.vcproj/JavaScriptCore/copy-tools.cmd: Added. Copies
- the tools directory to $WebKitLibrariesDir. If any files were copied,
- we display a message to the user and exit with error code 1 to cause
- the build to fail. In non-interactive builds, we just print the message
- to the build log. In interactive builds, we show the message in an
- alert.
- * JavaScriptCore.vcproj/JavaScriptCore/show-alert.js: Added. Uses
- Windows Scripting Host to display a message in an alert.
- 2010-11-07 Sam Magnuson <smagnuson@netflix.com>
- Reviewed by Andreas Kling.
- [Qt] make install does not cause JavaScriptCore to be built
- https://bugs.webkit.org/show_bug.cgi?id=49114
- * JavaScriptCore.pro:
- 2010-11-05 Oliver Hunt <oliver@apple.com>
- Reviewed by Gavin Barraclough.
- Website consistently crashing TOT in JIT::execute() on news.com.au
- https://bugs.webkit.org/show_bug.cgi?id=48954
- The problem here was the strict pass of this conversion was loading the
- this structure into one register but doing the flags check off a different
- register. This is clearly wrong. I have been unable to trigger the crash
- with a reduction, but I've added an assertion to the this conversion to
- attempt to make it more readily catchable in future.
- * jit/JITOpcodes.cpp:
- (JSC::JIT::emit_op_convert_this_strict):
- * jit/JITOpcodes32_64.cpp:
- (JSC::JIT::emit_op_convert_this_strict):
- * jit/JITStubs.cpp:
- (JSC::DEFINE_STUB_FUNCTION):
- 2010-11-04 Xan Lopez <xlopez@igalia.com>
- Reviewed by Adam Barth.
- Use leakRef instead of releaseRef
- https://bugs.webkit.org/show_bug.cgi?id=48974
- Use leakRef instead of the deprecated releaseRef. This was renamed
- some time ago because 'releaseRef' is too close to 'release',
- which does something completely different.
- 2010-11-04 Eric Seidel <eric@webkit.org>
- Reviewed by Gavin Barraclough.
- REGRESSION(49798): Crash in HTMLObjectElement::parseMappedAttribute
- https://bugs.webkit.org/show_bug.cgi?id=48789
- The contract for all String/AtomicString methods seems to be that it's
- safe to call them, even when the String is null (impl() returns 0).
- This contract was broken by r49798 (unintentionally) when optimizing
- for dromeo.
- This patch adds a null check to AtomicString::lower() fixing this
- crash and preventing future confusion.
- * wtf/text/AtomicString.cpp:
- (WTF::AtomicString::lower):
- 2010-11-04 Adam Barth <abarth@webkit.org>
- Enabled ICCJPEG on Chromium Mac
- https://bugs.webkit.org/show_bug.cgi?id=48977
- * wtf/Platform.h:
- 2010-11-03 Oliver Hunt <oliver@apple.com>
- Reviewed by Gavin Barraclough.
- Crash in Function.prototype.call.apply
- https://bugs.webkit.org/show_bug.cgi?id=48485
- The problem here was op_load_varargs failing to ensure that
- there was sufficient space for the entire callframe prior to
- op_call_varargs. This meant that when we then re-entered the
- VM it was possible to stomp over an earlier portion of the
- stack, so causing sub-optimal behaviour.
- * bytecode/Opcode.h:
- * bytecompiler/BytecodeGenerator.cpp:
- (JSC::BytecodeGenerator::emitLoadVarargs):
- * bytecompiler/BytecodeGenerator.h:
- * bytecompiler/NodesCodegen.cpp:
- (JSC::ApplyFunctionCallDotNode::emitBytecode):
- * jit/JIT.cpp:
- (JSC::JIT::privateCompile):
- * jit/JITOpcodes.cpp:
- (JSC::JIT::emit_op_load_varargs):
- 2010-11-03 Kenneth Russell <kbr@google.com>
- Reviewed by Chris Marrin.
- Redesign extension mechanism in GraphicsContext3D
- https://bugs.webkit.org/show_bug.cgi?id=46894
- * JavaScriptCore.exp:
- - Exposed String::split(const String&, Vector<String>).
- 2010-11-03 Adam Roben <aroben@apple.com>
- Bring WTF.vcproj up to date
- * JavaScriptCore.vcproj/WTF/WTF.vcproj: Added filters for the text and
- unicode directories, added new files, removed old files.
- 2010-11-03 Gabor Loki <loki@webkit.org>
- Reviewed by Andreas Kling.
- Remove unused initializeWeakRandomNumberGenerator
- https://bugs.webkit.org/show_bug.cgi?id=48899
- WeakRandom class is used instead of weakRandomNumber and its initializer.
- * wtf/RandomNumberSeed.h:
- 2010-11-03 Gabor Loki <loki@webkit.org>
- Reviewed by Geoffrey Garen.
- Unused class: JSFastMath with JSValue64
- https://bugs.webkit.org/show_bug.cgi?id=48835
- Remove unused JSFastMath class.
- * runtime/JSImmediate.h:
- 2010-11-02 Adam Roben <aroben@apple.com>
- Windows build fix after r71127
- MSVC isn't smart enough to figure out that the definition of the global
- nullptr variable isn't needed, so we provide one for it.
- Fixes <http://webkit.org/b/48862> Windows build is broken due to
- undefined symbol nullptr
- Reviewed by Anders Carlsson.
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: Export nullptr.
- * JavaScriptCore.vcproj/WTF/WTF.vcproj: Added NullPtr.cpp and let VS
- resort the files.
- * wtf/NullPtr.cpp: Added.
- 2010-11-02 Martin Robinson <mrobinson@igalia.com>
- Reviewed by Xan Lopez.
- Remove special handling of HashTableDeletedValue in PlatformRefPtr and manually manage memory that cannot be controlled by HashTraits
- https://bugs.webkit.org/show_bug.cgi?id=48841
- Remove special handling of HashTableDeletedValue in PlatformRefPtr.
- This is better handled on a case-by-case basis, when HashTraits
- cannot account for it.
- * wtf/PlatformRefPtr.h:
- (WTF::PlatformRefPtr::~PlatformRefPtr):
- (WTF::PlatformRefPtr::clear):
- (WTF::::operator):
- 2010-10-29 Oliver Hunt <oliver@apple.com>
- Reviewed by Gavin Barraclough.
- REGRESSION: r69429-r69611: Crash in JSC::Interpreter::privateExecute
- https://bugs.webkit.org/show_bug.cgi?id=47573
- I think the interpreter portion of this was introduced by
- an incorrect but silent merge when I updated prior to committing.
- The JIT change is basically just a correctness fix, but it is
- needed to prevent the testcase from asserting in debug builds.
- The basic problem is incorrectly setting the activation object
- on an arguments object. The crash was due to us setting a null
- activation in the interpreter, in the jit we were setting the
- activation of a strict mode arguments object.
- * interpreter/Interpreter.cpp:
- (JSC::Interpreter::privateExecute):
- * jit/JITStubs.cpp:
- (JSC::DEFINE_STUB_FUNCTION):
- * wtf/Platform.h:
- 2010-10-29 Csaba Osztrogonác <ossy@webkit.org>
- Reviewed by Adam Roben and David Kilzer.
- Fix and cleanup of build systems
- https://bugs.webkit.org/show_bug.cgi?id=48342
- * Configurations/FeatureDefines.xcconfig: Add missing ENABLE_FULLSCREEN_API
- 2010-10-28 Kwang Yul Seo <skyul@company100.net>
- Reviewed by Darin Adler.
- Include stddef.h unconditionally in Assertions.h
- https://bugs.webkit.org/show_bug.cgi?id=48573
- There is no reason to have stddef.h include be MSVC-only.
- * wtf/Assertions.h:
- 2010-10-28 Herczeg Zoltan <zherczeg@webkit.org>
- Rubber stamped by Csaba Osztrogonác.
- Try to fix interpreter build.
- Needed parentheses around assignment to avoid GCC warning after
- http://trac.webkit.org/changeset/70703
- * interpreter/Interpreter.cpp:
- (JSC::Interpreter::privateExecute):
- 2010-10-28 Peter Varga <pvarga@inf.u-szeged.hu>
- Reviewed by Csaba Osztrogonác.
- resetAssertionMatches() is an unused function in YARR Interpreter
- https://bugs.webkit.org/show_bug.cgi?id=48503
- The resetAssertionMatches() function is removed from YARR Interpreter
- because it's never called.
- * yarr/RegexInterpreter.cpp:
- (JSC::Yarr::Interpreter::resetMatches):
- 2010-10-28 Zoltan Herczeg <zherczeg@webkit.org>
- Reviewed by Andreas Kling.
- Wrong instruction form for BKPT
- https://bugs.webkit.org/show_bug.cgi?id=48427
- One '0' is missing from BKPT instruction.
- Thanks for Jacob Bramley for reporting this error.
- * assembler/ARMAssembler.h:
- 2010-10-28 Xan Lopez <xlopez@igalia.com>
- Try to fix Snow Leopard build.
- * jit/JITPropertyAccess.cpp:
- (JSC::JIT::testPrototype):
- 2010-10-28 Xan Lopez <xlopez@igalia.com>
- Reviewed by Oliver Hunt.
- Do not have two different asCell APIs in JSValue
- https://bugs.webkit.org/show_bug.cgi?id=47979
- Remove JSCell* asCell(JSValue) in favor of only using
- JSValue::asCell().
- * API/APICast.h:
- (toRef):
- * jit/JITPropertyAccess32_64.cpp:
- (JSC::JIT::testPrototype):
- * jit/JITStubs.cpp:
- (JSC::JITThunks::tryCachePutByID):
- (JSC::JITThunks::tryCacheGetByID):
- (JSC::DEFINE_STUB_FUNCTION):
- * runtime/GetterSetter.h:
- (JSC::asGetterSetter):
- * runtime/JSByteArray.h:
- (JSC::asByteArray):
- * runtime/JSCell.h:
- (JSC::JSCell::getCallData):
- (JSC::JSCell::getConstructData):
- * runtime/JSString.h:
- (JSC::RopeBuilder::appendValueInConstructAndIncrementLength):
- (JSC::asString):
- * runtime/JSValue.h:
- * runtime/Operations.cpp:
- (JSC::jsIsObjectType):
- * runtime/Operations.h:
- (JSC::normalizePrototypeChain):
- * runtime/Protect.h:
- (JSC::gcProtect):
- (JSC::gcUnprotect):
- 2010-10-27 Chao-ying Fu <fu@mips.com>
- Reviewed by Oliver Hunt.
- Support emit_op_mod() for MIPS on JSVALUE32_64
- https://bugs.webkit.org/show_bug.cgi?id=46511
- This patch uses MIPS div instructions for op_mod to improve performance.
- * jit/JITArithmetic32_64.cpp:
- (JSC::JIT::emit_op_mod):
- 2010-10-27 Brent Fulgham <bfulgham@webkit.org>
- Unreviewed build correction.
- * wtf/Platform.h: Make sure ACCELERATED_COMPOSITING is
- turned off in the WinCairo port. This isn't supported (yet.)
- 2010-10-27 Chris Rogers <crogers@google.com>
- Reviewed by Chris Marrin.
- Add ENABLE_WEB_AUDIO feature enable flag (initially disabled) to build-webkit
- https://bugs.webkit.org/show_bug.cgi?id=48279
- * Configurations/FeatureDefines.xcconfig:
- 2010-10-27 Brian Weinstein <bweinstein@apple.com>
- Windows build fix.
- * jit/JITStubs.cpp:
- (JSC::jitThrow):
- 2010-10-27 Gavin Barraclough <barraclough@apple.com>
- Reviewed by Oliver Hunt.
- Bug 48365 - Remove output parameters from JITStackFrame
- The JIT stub functions presently use the stackframe to provide a couple of additional return values.
- * In the case of uncaught exceptions the exception value is returned on the stackframe.exception property.
- * In the case of caught exceptions the updated value for the callFrame register is returned on the stackframe.callFrame property.
- Change exception returns such that exceptions are always returned on JSGlobalData::exception.
- Change op_catch such that the new CallFrame value is returned from op_throw / vm_throw in regT0.
- * JavaScriptCore.xcodeproj/project.pbxproj:
- * debugger/Debugger.cpp:
- (JSC::evaluateInGlobalCallFrame):
- * debugger/DebuggerCallFrame.cpp:
- (JSC::DebuggerCallFrame::evaluate):
- * interpreter/CachedCall.h:
- (JSC::CachedCall::CachedCall):
- (JSC::CachedCall::call):
- * interpreter/CallFrame.h:
- (JSC::ExecState::exception):
- * interpreter/Interpreter.cpp:
- (JSC::Interpreter::callEval):
- (JSC::Interpreter::Interpreter):
- (JSC::Interpreter::execute):
- (JSC::Interpreter::executeCall):
- (JSC::Interpreter::executeConstruct):
- (JSC::Interpreter::prepareForRepeatCall):
- (JSC::Interpreter::privateExecute):
- * interpreter/Interpreter.h:
- * jit/JITCode.h:
- (JSC::JITCode::execute):
- * jit/JITOpcodes.cpp:
- (JSC::JIT::emit_op_catch):
- * jit/JITOpcodes32_64.cpp:
- (JSC::JIT::emit_op_catch):
- * jit/JITStubs.cpp:
- (JSC::ctiTrampoline):
- (JSC::jitThrow):
- (JSC::DEFINE_STUB_FUNCTION):
- * jit/JITStubs.h:
- * runtime/ArrayPrototype.cpp:
- (JSC::arrayProtoFuncFilter):
- (JSC::arrayProtoFuncMap):
- (JSC::arrayProtoFuncEvery):
- (JSC::arrayProtoFuncForEach):
- (JSC::arrayProtoFuncSome):
- (JSC::arrayProtoFuncReduce):
- (JSC::arrayProtoFuncReduceRight):
- * runtime/CallData.cpp:
- (JSC::call):
- * runtime/Completion.cpp:
- (JSC::evaluate):
- * runtime/ConstructData.cpp:
- (JSC::construct):
- * runtime/ExceptionHelpers.cpp:
- (JSC::createErrorForInvalidGlobalAssignment):
- (JSC::throwOutOfMemoryError):
- (JSC::throwStackOverflowError):
- * runtime/ExceptionHelpers.h:
- * runtime/JSArray.cpp:
- (JSC::JSArray::sort):
- * runtime/JSGlobalObjectFunctions.cpp:
- (JSC::globalFuncEval):
- * runtime/StringPrototype.cpp:
- (JSC::stringProtoFuncReplace):
- 2010-10-27 Gabor Loki <loki@webkit.org>
- Reviewed by Oliver Hunt.
- https://bugs.webkit.org/show_bug.cgi?id=48060
- Speed up op_jeq_null and op_jneq_null.
- For both opcodes the NullTag and UndefinedTag are checked to control the
- jump. These values can be simply checked by AboveOrEqual or Below
- condition if they are the two highest unsigned integers from JSValue's
- Tag field.
- * jit/JITOpcodes32_64.cpp:
- (JSC::JIT::emit_op_jeq_null):
- (JSC::JIT::emit_op_jneq_null):
- * runtime/JSValue.h:
- 2010-10-25 Geoffrey Garen <ggaren@apple.com>
- Reviewed by Oliver Hunt.
- https://bugs.webkit.org/show_bug.cgi?id=41948
- REGRESSION(r60392): Registerfile can be unwound too far following an exception
-
- SunSpider reports no change.
- * interpreter/Interpreter.cpp:
- (JSC::Interpreter::throwException): Walk the stack to calculate the high
- water mark currently in use. It's not safe to assume that the current
- CallFrame's high water mark is the highest high water mark because
- calls do not always set up at the end of a CallFrame. A large caller
- CallFrame can encompass a small callee CallFrame.
- * jit/JITOpcodes.cpp:
- (JSC::JIT::privateCompileCTINativeCall):
- * jit/JITOpcodes32_64.cpp:
- (JSC::JIT::privateCompileCTINativeCall): Make sure to set a 0 CodeBlock
- in the CallFrame of a host call, like the Interpreter does, instead of
- leaving the CodeBlock field uninitialized. The backtracing code requires
- a valid CodeBlock field in each CallFrame.
- 2010-10-27 Gabor Loki <loki@webkit.org>
- Reviewed by Csaba Osztrogonác.
- Add cmn to branch32(reg, imm) on ARM
- https://bugs.webkit.org/show_bug.cgi?id=48062
- The conditional comparison can be done with cmn if the imm value is
- negative and can fit into the cmn instruction.
- * assembler/MacroAssemblerARM.h:
- (JSC::MacroAssemblerARM::branch32):
- 2010-10-26 Oliver Hunt <oliver@apple.com>
- Interpreter build fix.
- * interpreter/Interpreter.cpp:
- (JSC::Interpreter::privateExecute):
- 2010-10-25 Oliver Hunt <oliver@apple.com>
- Reviewed by Gavin Barraclough.
- Remove exec and globalData arguments from jsNumber
- https://bugs.webkit.org/show_bug.cgi?id=48270
- Remove the now unused exec and globalData arguments from jsNumber
- and mechanically update all users of jsNumber.
- * API/JSValueRef.cpp:
- (JSValueMakeNumber):
- * bytecompiler/BytecodeGenerator.cpp:
- (JSC::BytecodeGenerator::emitLoad):
- * bytecompiler/NodesCodegen.cpp:
- (JSC::ArrayNode::emitBytecode):
- * jit/JITArithmetic.cpp:
- (JSC::JIT::emit_op_mod):
- * jit/JITArithmetic32_64.cpp:
- (JSC::JIT::emit_op_mod):
- * jit/JITOpcodes.cpp:
- (JSC::JIT::emit_op_jfalse):
- (JSC::JIT::emit_op_jtrue):
- * jit/JITStubs.cpp:
- (JSC::DEFINE_STUB_FUNCTION):
- * jsc.cpp:
- (functionRun):
- * runtime/Arguments.cpp:
- (JSC::Arguments::getOwnPropertySlot):
- (JSC::Arguments::getOwnPropertyDescriptor):
- * runtime/ArrayConstructor.cpp:
- (JSC::ArrayConstructor::ArrayConstructor):
- * runtime/ArrayPrototype.cpp:
- (JSC::arrayProtoFuncPop):
- (JSC::arrayProtoFuncPush):
- (JSC::arrayProtoFuncShift):
- (JSC::arrayProtoFuncSplice):
- (JSC::arrayProtoFuncUnShift):
- (JSC::arrayProtoFuncFilter):
- (JSC::arrayProtoFuncMap):
- (JSC::arrayProtoFuncEvery):
- (JSC::arrayProtoFuncForEach):
- (JSC::arrayProtoFuncSome):
- (JSC::arrayProtoFuncReduce):
- (JSC::arrayProtoFuncReduceRight):
- (JSC::arrayProtoFuncIndexOf):
- (JSC::arrayProtoFuncLastIndexOf):
- * runtime/BooleanConstructor.cpp:
- (JSC::BooleanConstructor::BooleanConstructor):
- * runtime/CachedTranscendentalFunction.h:
- (JSC::CachedTranscendentalFunction::operator()):
- * runtime/DateConstructor.cpp:
- (JSC::DateConstructor::DateConstructor):
- (JSC::dateParse):
- (JSC::dateNow):
- (JSC::dateUTC):
- * runtime/DateInstance.cpp:
- (JSC::DateInstance::DateInstance):
- * runtime/DatePrototype.cpp:
- (JSC::dateProtoFuncGetFullYear):
- (JSC::dateProtoFuncGetUTCFullYear):
- (JSC::dateProtoFuncGetMonth):
- (JSC::dateProtoFuncGetUTCMonth):
- (JSC::dateProtoFuncGetDate):
- (JSC::dateProtoFuncGetUTCDate):
- (JSC::dateProtoFuncGetDay):
- (JSC::dateProtoFuncGetUTCDay):
- (JSC::dateProtoFuncGetHours):
- (JSC::dateProtoFuncGetUTCHours):
- (JSC::dateProtoFuncGetMinutes):
- (JSC::dateProtoFuncGetUTCMinutes):
- (JSC::dateProtoFuncGetSeconds):
- (JSC::dateProtoFuncGetUTCSeconds):
- (JSC::dateProtoFuncGetMilliSeconds):
- (JSC::dateProtoFuncGetUTCMilliseconds):
- (JSC::dateProtoFuncGetTimezoneOffset):
- (JSC::dateProtoFuncSetTime):
- (JSC::setNewValueFromTimeArgs):
- (JSC::setNewValueFromDateArgs):
- (JSC::dateProtoFuncSetYear):
- (JSC::dateProtoFuncGetYear):
- * runtime/Error.cpp:
- (JSC::addErrorSourceInfo):
- (JSC::addErrorDivotInfo):
- * runtime/ErrorConstructor.cpp:
- (JSC::ErrorConstructor::ErrorConstructor):
- * runtime/FunctionConstructor.cpp:
- (JSC::FunctionConstructor::FunctionConstructor):
- * runtime/FunctionPrototype.cpp:
- (JSC::FunctionPrototype::FunctionPrototype):
- * runtime/JSArray.cpp:
- (JSC::JSArray::getOwnPropertySlot):
- (JSC::JSArray::getOwnPropertyDescriptor):
- * runtime/JSByteArray.cpp:
- (JSC::JSByteArray::JSByteArray):
- * runtime/JSByteArray.h:
- (JSC::JSByteArray::getIndex):
- * runtime/JSFunction.cpp:
- (JSC::JSFunction::JSFunction):
- (JSC::JSFunction::lengthGetter):
- (JSC::JSFunction::getOwnPropertyDescriptor):
- * runtime/JSGlobalObject.cpp:
- (JSC::JSGlobalObject::reset):
- * runtime/JSGlobalObjectFunctions.cpp:
- (JSC::globalFuncParseInt):
- (JSC::globalFuncParseFloat):
- * runtime/JSNumberCell.h:
- (JSC::JSValue::JSValue):
- (JSC::jsNaN):
- (JSC::JSValue::toJSNumber):
- * runtime/JSONObject.cpp:
- (JSC::unwrapBoxedPrimitive):
- (JSC::PropertyNameForFunctionCall::value):
- (JSC::JSONStringify):
- * runtime/JSString.cpp:
- (JSC::JSString::getStringPropertyDescriptor):
- * runtime/JSString.h:
- (JSC::JSString::getStringPropertySlot):
- * runtime/JSValue.h:
- (JSC::jsDoubleNumber):
- (JSC::jsNumber):
- (JSC::jsNaN):
- (JSC::JSValue::JSValue):
- (JSC::JSValue::toJSNumber):
- * runtime/LiteralParser.cpp:
- (JSC::LiteralParser::parse):
- * runtime/MathObject.cpp:
- (JSC::MathObject::MathObject):
- (JSC::mathProtoFuncAbs):
- (JSC::mathProtoFuncACos):
- (JSC::mathProtoFuncASin):
- (JSC::mathProtoFuncATan):
- (JSC::mathProtoFuncATan2):
- (JSC::mathProtoFuncCeil):
- (JSC::mathProtoFuncCos):
- (JSC::mathProtoFuncExp):
- (JSC::mathProtoFuncFloor):
- (JSC::mathProtoFuncLog):
- (JSC::mathProtoFuncMax):
- (JSC::mathProtoFuncMin):
- (JSC::mathProtoFuncPow):
- (JSC::mathProtoFuncRandom):
- (JSC::mathProtoFuncRound):
- (JSC::mathProtoFuncSin):
- (JSC::mathProtoFuncSqrt):
- (JSC::mathProtoFuncTan):
- * runtime/NativeErrorConstructor.cpp:
- (JSC::NativeErrorConstructor::NativeErrorConstructor):
- * runtime/NumberConstructor.cpp:
- (JSC::NumberConstructor::NumberConstructor):
- (JSC::numberConstructorNaNValue):
- (JSC::numberConstructorNegInfinity):
- (JSC::numberConstructorPosInfinity):
- (JSC::numberConstructorMaxValue):
- (JSC::numberConstructorMinValue):
- (JSC::constructWithNumberConstructor):
- (JSC::callNumberConstructor):
- * runtime/NumberPrototype.cpp:
- (JSC::NumberPrototype::NumberPrototype):
- * runtime/ObjectConstructor.cpp:
- (JSC::ObjectConstructor::ObjectConstructor):
- * runtime/Operations.cpp:
- (JSC::jsAddSlowCase):
- * runtime/Operations.h:
- (JSC::jsAdd):
- * runtime/PrototypeFunction.cpp:
- (JSC::PrototypeFunction::PrototypeFunction):
- * runtime/RegExpConstructor.cpp:
- (JSC::RegExpConstructor::RegExpConstructor):
- (JSC::RegExpMatchesArray::fillArrayInstance):
- * runtime/RegExpObject.cpp:
- (JSC::regExpObjectLastIndex):
- * runtime/StringConstructor.cpp:
- (JSC::StringConstructor::StringConstructor):
- * runtime/StringPrototype.cpp:
- (JSC::StringPrototype::StringPrototype):
- (JSC::stringProtoFuncReplace):
- (JSC::stringProtoFuncCharCodeAt):
- (JSC::stringProtoFuncIndexOf):
- (JSC::stringProtoFuncLastIndexOf):
- (JSC::stringProtoFuncSearch):
- (JSC::stringProtoFuncLocaleCompare):
- 2010-10-25 David Tapuska <dtapuska@rim.com>
- Reviewed by David Kilzer.
- Enable VFP if our compiler settings indicated we had a hardware
- VFP.
- https://bugs.webkit.org/show_bug.cgi?id=46096
- * assembler/MacroAssemblerARM.cpp:
- (JSC::isVFPPresent):
- 2010-10-25 Sheriff Bot <webkit.review.bot@gmail.com>
- Unreviewed, rolling out r70451.
- http://trac.webkit.org/changeset/70451
- https://bugs.webkit.org/show_bug.cgi?id=48249
- Broke set-unloaded-frame-location.html under Qt (Requested by
- caseq on #webkit).
- * GNUmakefile.am:
- * JavaScriptCore.gypi:
- * JavaScriptCore.xcodeproj/project.pbxproj:
- * wtf/text/TextPosition.h: Removed.
- 2010-10-25 Patrick Gansterer <paroga@webkit.org>
- Reviewed by David Kilzer.
- Replace _countof with WTF_ARRAY_LENGTH
- https://bugs.webkit.org/show_bug.cgi?id=48229
- * wtf/Platform.h:
- 2010-10-25 Peter Rybin <peter.rybin@gmail.com>
- Reviewed by Adam Barth.
- HTML parser should provide script column position within HTML document to JavaScript engine
- https://bugs.webkit.org/show_bug.cgi?id=45271
- Adds TextPosition* classes -- a structure that stores line/column/generation
- level coordinates inside text document. Adds *BasedNumber classes -- typesafe int
- wrappers that emphasize whether int number is used as zero-based or
- one-based.
- * GNUmakefile.am:
- * JavaScriptCore.gypi:
- * JavaScriptCore.xcodeproj/project.pbxproj:
- * wtf/text/TextPosition.h: Added.
- (WTF::TextPosition::TextPosition):
- (WTF::TextPosition::minimumPosition):
- (WTF::TextPosition::belowRangePosition):
- (WTF::ZeroBasedNumber::fromZeroBasedInt):
- (WTF::ZeroBasedNumber::ZeroBasedNumber):
- (WTF::ZeroBasedNumber::zeroBasedInt):
- (WTF::ZeroBasedNumber::base):
- (WTF::ZeroBasedNumber::belowBase):
- (WTF::OneBasedNumber::fromOneBasedInt):
- (WTF::OneBasedNumber::OneBasedNumber):
- (WTF::OneBasedNumber::oneBasedInt):
- (WTF::OneBasedNumber::convertAsZeroBasedInt):
- (WTF::OneBasedNumber::convertToZeroBased):
- (WTF::OneBasedNumber::base):
- (WTF::OneBasedNumber::belowBase):
- (WTF::toZeroBasedTextPosition):
- (WTF::toOneBasedTextPosition):
- (WTF::ZeroBasedNumber::convertToOneBased):
- 2010-10-24 Kwang Yul Seo <skyul@company100.net>
- Reviewed by David Kilzer.
- Check endianness with __BIG_ENDIAN in RVCT.
- https://bugs.webkit.org/show_bug.cgi?id=46122
- RVCT defines __BIG_ENDIAN if compiling for a big-endian target.
- * wtf/Platform.h:
- 2010-10-24 Dan Bernstein <mitz@apple.com>
- Rubber-stamped by Dave Kilzer.
- Removed empty directories.
- * JavaScriptCore: Removed.
- * JavaScriptCore/runtime: Removed.
- 2010-10-24 Patrick Gansterer <paroga@webkit.org>
- Unreviewed, fix typo of last build fix.
- * wtf/DateMath.cpp:
- 2010-10-24 Patrick Gansterer <paroga@webkit.org>
- Unreviewed build fix for chromium.
- * wtf/DateMath.cpp: Added missing include.
- 2010-10-24 Patrick Gansterer <paroga@webkit.org>
- Reviewed by David Kilzer.
- Add WTF_ARRAY_LENGTH macro to WTF
- https://bugs.webkit.org/show_bug.cgi?id=32828
- Unify the different implementations and usages.
- * interpreter/Interpreter.cpp:
- (JSC::Interpreter::privateExecute):
- * runtime/DatePrototype.cpp:
- (JSC::formatLocaleDate):
- * runtime/JSGlobalObject.cpp:
- (JSC::JSGlobalObject::reset):
- * runtime/JSONObject.cpp:
- (JSC::Stringifier::appendQuotedString):
- (JSC::Stringifier::toJSON):
- (JSC::Stringifier::appendStringifiedValue):
- * runtime/UString.cpp:
- (JSC::UString::number):
- * wtf/DateMath.cpp:
- (WTF::parseDateFromNullTerminatedCharacters):
- * wtf/StdLibExtras.h:
- 2010-10-24 Dirk Schulze <krit@webkit.org>
- Reviewed by Nikolas Zimmermann.
- Filter example Chiseled from SVG Wow! is slow
- https://bugs.webkit.org/show_bug.cgi?id=48174
- Added 'using WTF::ByteArray;' at the end of ByteArray.h
- * wtf/ByteArray.h:
- 2010-10-24 Patrick Gansterer <paroga@webkit.org>
- Reviewed by David Kilzer.
- Inline WTF::bitwise_cast and fix style
- https://bugs.webkit.org/show_bug.cgi?id=48208
- * wtf/StdLibExtras.h:
- (WTF::bitwise_cast):
- (WTF::bitCount):
- 2010-10-23 Xan Lopez <xlopez@igalia.com>
- Reviewed by Sam Weinig.
- Unify globalData APIs
- https://bugs.webkit.org/show_bug.cgi?id=47969
- Make JSGlobalObject::globalData return a reference and adapt
- callers. This unifies the API with the existing
- CallFrame::globalData, which also returns a reference.
- * debugger/Debugger.cpp:
- (JSC::evaluateInGlobalCallFrame):
- * interpreter/CallFrame.h:
- * interpreter/Interpreter.cpp:
- (JSC::Interpreter::dumpRegisters):
- * jsc.cpp:
- (runWithScripts):
- * parser/JSParser.cpp:
- (JSC::jsParse):
- * parser/Parser.cpp:
- (JSC::Parser::parse):
- * parser/Parser.h:
- (JSC::Parser::parse):
- * runtime/Error.cpp:
- (JSC::createError):
- (JSC::createEvalError):
- (JSC::createRangeError):
- (JSC::createReferenceError):
- (JSC::createSyntaxError):
- (JSC::createTypeError):
- (JSC::createURIError):
- * runtime/FunctionConstructor.cpp:
- (JSC::constructFunction):
- * runtime/JSGlobalObject.cpp:
- (JSC::JSGlobalObject::~JSGlobalObject):
- (JSC::JSGlobalObject::markChildren):
- * runtime/JSGlobalObject.h:
- (JSC::JSGlobalObject::globalData):
- 2010-10-23 Dimitri Glazkov <dglazkov@chromium.org>
- Unreviewed, rolling out r70369.
- http://trac.webkit.org/changeset/70369
- https://bugs.webkit.org/show_bug.cgi?id=47974
- Caused weird artifacts in expected results.
- * wtf/Platform.h:
- 2010-10-23 Martin Robinson <mrobinson@igalia.com>
- Reviewed by Xan Lopez.
- Crashes randomly in cairo_scaled_font_destroy
- https://bugs.webkit.org/show_bug.cgi?id=46794
- Make PlatformRefPtr aware of hashTableDeletedValue. When PlatformRefPtr
- goes away this should probably be handled in the future via some special
- hooks in RefCounted (or its contained type).
- * wtf/PlatformRefPtr.h:
- (WTF::PlatformRefPtr::~PlatformRefPtr):
- (WTF::PlatformRefPtr::clear):
- (WTF::::operator):
- 2010-10-22 Adam Roben <aroben@apple.com>
- Remove the QuartzCorePresent.h mechanism
- This header was used to detect whether QuartzCore headers were present
- on the system. Everyone should have these headers now so we no longer
- need to detect.
- Reviewed by Sam Weinig.
- * JavaScriptCore.vcproj/JavaScriptCore/build-generated-files.sh: Remove
- code to generate QuartzCorePresent.h.
- * wtf/Platform.h: Stop including QuartzCorePresent.h on Windows and
- collapse all USE_ACCELERATED_COMPOSITING settings into one #ifdef.
- 2010-10-22 Adam Barth <abarth@webkit.org>
- Unreviewed, rolling out r70290.
- http://trac.webkit.org/changeset/70290
- https://bugs.webkit.org/show_bug.cgi?id=48111
- Undelete Android build files.
- * Android.mk: Added.
- 2010-10-22 Zoltan Herczeg <zherczeg@webkit.org>
- Reviewed by Csaba Osztrogonác.
- JSC interpreter regressions after r69940
- https://bugs.webkit.org/show_bug.cgi?id=47839
- Wrong "if": It should test whether the result exists,
- and not the opposite. It is an interpreter bug, hence
- the bots does not capture it.
- * interpreter/Interpreter.cpp:
- (JSC::Interpreter::resolveBase):
- 2010-10-21 Adam Barth <abarth@webkit.org>
- Reviewed by David Levin.
- Remove Android build system
- https://bugs.webkit.org/show_bug.cgi?id=48111
- * Android.mk: Removed.
- 2010-10-21 Kwang Yul Seo <skyul@company100.net>
- Reviewed by Kent Tamura.
- [BREWMP] Add a String constructor which takes AECHAR*
- https://bugs.webkit.org/show_bug.cgi?id=45043
- Add String(const AECHAR*) constructor for convenience.
- * wtf/text/WTFString.h:
- 2010-10-21 Carlos Garcia Campos <cgarcia@igalia.com>
- Reviewed by Martin Robinson.
- [GTK] Use GCharsetConverter instead of g_iconv in TextCodecGtk
- https://bugs.webkit.org/show_bug.cgi?id=47896
- * wtf/gobject/GTypedefs.h:
- 2010-10-21 Adam Barth <abarth@webkit.org>
- Unreviewed, rolling out r70174.
- http://trac.webkit.org/changeset/70174
- https://bugs.webkit.org/show_bug.cgi?id=41948
- This patch reverts a change that causes
- http/tests/xmlhttprequest/origin-whitelisting-removal.html to crash.
- * interpreter/Interpreter.cpp:
- (JSC::Interpreter::throwException):
- 2010-10-20 Simon Fraser <simon.fraser@apple.com>
- Fix the EFL build.
- * wtf/CMakeLists.txt:
- 2010-10-20 Simon Fraser <simon.fraser@apple.com>
- Fix Windows build: export needed symbols.
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
- 2010-10-19 Simon Fraser <simon.fraser@apple.com>
- Reviewed by Gavin Barraclough.
- https://bugs.webkit.org/show_bug.cgi?id=47851
-
- Add methods to DecimalNumber to return the buffer length
- required for decimal and exponential output.
-
- Make some of the DecimalNumber code non-inline (no
- effect on Sunspider), adding DecimalNumber.cpp to various
- build systems.
-
- Make some DecimalNumber methods 'const'.
- * Android.mk:
- * Android.v8.wtf.mk:
- * GNUmakefile.am:
- * JavaScriptCore.exp:
- * JavaScriptCore.gypi:
- * JavaScriptCore.vcproj/WTF/WTF.vcproj:
- * JavaScriptCore.xcodeproj/project.pbxproj:
- * runtime/NumberPrototype.cpp:
- (JSC::numberProtoFuncToExponential):
- (JSC::numberProtoFuncToFixed):
- (JSC::numberProtoFuncToPrecision):
- * wtf/DecimalNumber.cpp: Added.
- (WTF::DecimalNumber::bufferLengthForStringDecimal):
- (WTF::DecimalNumber::bufferLengthForStringExponential):
- (WTF::DecimalNumber::toStringDecimal):
- (WTF::DecimalNumber::toStringExponential):
- * wtf/DecimalNumber.h:
- (WTF::DecimalNumber::sign):
- (WTF::DecimalNumber::exponent):
- (WTF::DecimalNumber::significand):
- (WTF::DecimalNumber::precision):
- * wtf/dtoa.cpp:
- (WTF::dtoa):
- * wtf/dtoa.h:
- * wtf/wtf.pri:
- 2010-10-20 Sheriff Bot <webkit.review.bot@gmail.com>
- Unreviewed, rolling out r70165.
- http://trac.webkit.org/changeset/70165
- https://bugs.webkit.org/show_bug.cgi?id=48007
- It broke tests on Qt bot (Requested by Ossy on #webkit).
- * GNUmakefile.am:
- * JavaScriptCore.gypi:
- * JavaScriptCore.xcodeproj/project.pbxproj:
- * wtf/text/TextPosition.h: Removed.
- 2010-10-20 Brian Weinstein <bweinstein@apple.com>
- Reviewed by Adam Roben.
- Fix the Windows build after r70165. Move the copying of JavaScript headers from JavaScriptCore's post-build
- step to JavaScriptCoreGenerated, so the copying is done even when a cpp file in JavaScriptCore is changed.
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreCommon.vsprops:
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreGenerated.make:
- 2010-10-20 Dumitru Daniliuc <dumi@chromium.org>
- Unreviewed, fixing the Win build.
- * JavaScriptCore.vcproj/WTF/WTF.vcproj:
- 2010-10-20 Geoffrey Garen <ggaren@apple.com>
- Reviewed by Darin Adler.
-
- https://bugs.webkit.org/show_bug.cgi?id=41948
- REGRESSION(r60392): Registerfile can be unwound too far following an exception
- * interpreter/Interpreter.cpp:
- (JSC::Interpreter::throwException): Walk the stack to calculate the high
- water mark currently in use. It's not safe to assume that the current
- CallFrame's high water mark is the highest high water mark because
- calls do not always set up at the end of a CallFrame. A large caller
- CallFrame can encompass a small callee CallFrame.
- 2010-10-20 Peter Rybin <peter.rybin@gmail.com>
- Reviewed by Adam Barth.
- HTML parser should provide script column position within HTML document to JavaScript engine
- https://bugs.webkit.org/show_bug.cgi?id=45271
- Adds TextPosition* classes -- a structure that stores line/column/generation
- level coordinates inside text document. Adds *BasedNumber classes -- typesafe int
- wrappers that emphasize whether int number is used as zero-based or
- one-based.
- * GNUmakefile.am:
- * JavaScriptCore.gypi:
- * JavaScriptCore.xcodeproj/project.pbxproj:
- * wtf/text/TextPosition.h: Added.
- (WTF::TextPosition::TextPosition):
- (WTF::TextPosition::minimumPosition):
- (WTF::TextPosition::belowRangePosition):
- (WTF::ZeroBasedNumber::fromZeroBasedInt):
- (WTF::ZeroBasedNumber::ZeroBasedNumber):
- (WTF::ZeroBasedNumber::zeroBasedInt):
- (WTF::ZeroBasedNumber::base):
- (WTF::ZeroBasedNumber::belowBase):
- (WTF::OneBasedNumber::fromOneBasedInt):
- (WTF::OneBasedNumber::OneBasedNumber):
- (WTF::OneBasedNumber::oneBasedInt):
- (WTF::OneBasedNumber::convertAsZeroBasedInt):
- (WTF::OneBasedNumber::convertToZeroBased):
- (WTF::OneBasedNumber::base):
- (WTF::OneBasedNumber::belowBase):
- (WTF::toZeroBasedTextPosition):
- (WTF::toOneBasedTextPosition):
- (WTF::ZeroBasedNumber::convertToOneBased):
- 2010-10-19 Kwang Yul Seo <skyul@company100.net>
- Reviewed by David Kilzer.
- [BREWMP] Turn off JIT for simulator build
- https://bugs.webkit.org/show_bug.cgi?id=47937
- We don't need to test x86 JIT.
- * wtf/Platform.h:
- 2010-10-19 Oliver Hunt <oliver@apple.com>
- Reviewed by Geoffrey Garen.
- Remove support for JSVALUE32 from JSC
- https://bugs.webkit.org/show_bug.cgi?id=47948
- Remove all the code for supporting JSVALUE32 from JSC.
- * jit/JIT.cpp:
- (JSC::JIT::privateCompileMainPass):
- (JSC::JIT::privateCompileSlowCases):
- * jit/JIT.h:
- * jit/JITArithmetic.cpp:
- (JSC::JIT::emit_op_lshift):
- (JSC::JIT::emitSlow_op_lshift):
- (JSC::JIT::emit_op_rshift):
- (JSC::JIT::emitSlow_op_rshift):
- (JSC::JIT::emit_op_urshift):
- (JSC::JIT::emitSlow_op_urshift):
- (JSC::JIT::emit_op_jnless):
- (JSC::JIT::emitSlow_op_jnless):
- (JSC::JIT::emit_op_jless):
- (JSC::JIT::emitSlow_op_jless):
- (JSC::JIT::emit_op_jlesseq):
- (JSC::JIT::emitSlow_op_jlesseq):
- (JSC::JIT::emit_op_bitand):
- (JSC::JIT::emit_op_post_inc):
- (JSC::JIT::emit_op_post_dec):
- (JSC::JIT::emit_op_pre_inc):
- (JSC::JIT::emit_op_pre_dec):
- (JSC::JIT::emit_op_mod):
- (JSC::JIT::emitSlow_op_mod):
- * jit/JITCall.cpp:
- * jit/JITInlineMethods.h:
- (JSC::JIT::emitGetFromCallFrameHeaderPtr):
- (JSC::JIT::emitGetFromCallFrameHeader32):
- * jit/JITOpcodes.cpp:
- (JSC::JIT::emit_op_loop_if_lesseq):
- (JSC::JIT::emit_op_bitnot):
- (JSC::JIT::emit_op_next_pname):
- * jit/JITPropertyAccess.cpp:
- (JSC::JIT::emit_op_get_by_val):
- (JSC::JIT::emit_op_put_by_val):
- * jit/JITStubs.h:
- * jit/JSInterfaceJIT.h:
- * jit/SpecializedThunkJIT.h:
- (JSC::SpecializedThunkJIT::returnDouble):
- (JSC::SpecializedThunkJIT::tagReturnAsInt32):
- * jit/ThunkGenerators.cpp:
- (JSC::sqrtThunkGenerator):
- (JSC::powThunkGenerator):
- * runtime/Collector.cpp:
- (JSC::isPossibleCell):
- (JSC::typeName):
- * runtime/JSCell.h:
- * runtime/JSGlobalData.cpp:
- (JSC::JSGlobalData::JSGlobalData):
- * runtime/JSGlobalData.h:
- * runtime/JSGlobalObject.h:
- (JSC::Structure::prototypeForLookup):
- * runtime/JSImmediate.h:
- (JSC::reinterpretIntptrToDouble):
- (JSC::JSImmediate::isIntegerNumber):
- (JSC::JSImmediate::isDouble):
- (JSC::JSImmediate::areBothImmediateIntegerNumbers):
- (JSC::JSImmediate::makeDouble):
- (JSC::JSImmediate::doubleValue):
- (JSC::JSImmediate::toBoolean):
- (JSC::JSImmediate::fromNumberOutsideIntegerRange):
- (JSC::JSImmediate::from):
- (JSC::JSImmediate::toDouble):
- (JSC::JSFastMath::rightShiftImmediateNumbers):
- * runtime/JSNumberCell.cpp:
- * runtime/JSNumberCell.h:
- * runtime/JSObject.h:
- (JSC::JSObject::JSObject):
- * runtime/JSValue.h:
- * runtime/NumberObject.h:
- * wtf/Platform.h:
- 2010-10-19 Csaba Osztrogonác <ossy@webkit.org>
- Reviewed by Geoffrey Garen.
- BytecodeGenerator::m_lastOpcodePosition must be initialized in all constructors
- https://bugs.webkit.org/show_bug.cgi?id=47920
- * bytecompiler/BytecodeGenerator.cpp:
- (JSC::BytecodeGenerator::BytecodeGenerator): Add missing member initialization.
- 2010-10-19 Kwang Yul Seo <skyul@company100.net>
- Reviewed by David Kilzer.
- RVCT fails to compile DateMath.cpp due to overloaded function pow
- https://bugs.webkit.org/show_bug.cgi?id=47844
- Choose std::pow(double, double) among multiple overloaded pow functions
- to fix build for RVCT.
- * wtf/DateMath.cpp:
- (WTF::parseES5DateFromNullTerminatedCharacters):
- 2010-10-19 Patrick Gansterer <paroga@webkit.org>
- Reviewed by David Kilzer.
- Use UChar instead of wchar_t in UnicodeWinCE
- https://bugs.webkit.org/show_bug.cgi?id=47904
- Make UnicodeWinCE more portable, so we can use it for other ports too.
- * wtf/unicode/wince/UnicodeWinCE.cpp:
- (WTF::Unicode::toLower):
- (WTF::Unicode::toUpper):
- (WTF::Unicode::foldCase):
- (WTF::Unicode::isPrintableChar):
- (WTF::Unicode::isSpace):
- (WTF::Unicode::isLetter):
- (WTF::Unicode::isUpper):
- (WTF::Unicode::isLower):
- (WTF::Unicode::isDigit):
- (WTF::Unicode::isPunct):
- (WTF::Unicode::isAlphanumeric):
- (WTF::Unicode::toTitleCase):
- (WTF::Unicode::mirroredChar):
- (WTF::Unicode::digitValue):
- * wtf/unicode/wince/UnicodeWinCE.h:
- (WTF::Unicode::isSeparatorSpace):
- (WTF::Unicode::isHighSurrogate):
- (WTF::Unicode::isLowSurrogate):
- (WTF::Unicode::umemcasecmp):
- (WTF::Unicode::surrogateToUcs4):
- 2010-10-19 Patrick Gansterer <paroga@webkit.org>
- Reviewed by Andreas Kling.
- Fix style of UnicodeWinCE
- https://bugs.webkit.org/show_bug.cgi?id=47818
- * wtf/unicode/wince/UnicodeWinCE.cpp:
- (WTF::Unicode::toLower):
- (WTF::Unicode::toUpper):
- * wtf/unicode/wince/UnicodeWinCE.h:
- 2010-10-18 Xan Lopez <xlopez@igalia.com>
- Reviewed by Martin Robinson.
- * GNUmakefile.am: add missing file.
- 2010-10-18 Oliver Hunt <oliver@apple.com>
- Reviewed by Sam Weinig.
- Strict mode: Functions created with the function constructor don't implement strict mode semantics
- https://bugs.webkit.org/show_bug.cgi?id=47860
- When creating the FunctionExecutable for a new function the function constructor
- was always passing false for whether or not a function was strict, rather than
- using the information from the freshly parsed function itself.
- * runtime/Executable.cpp:
- (JSC::FunctionExecutable::fromGlobalCode):
- 2010-10-18 Oliver Hunt <oliver@apple.com>
- Reviewed by Darin Adler.
- Strict mode: |this| should be undefined if it is not explicitly provided
- https://bugs.webkit.org/show_bug.cgi?id=47833
- To make strict mode behave correctly we want to pass undefined instead of null
- as the default this value. This has no impact on behaviour outside of strict
- mode as both values are replaced with the global object if necessary.
- * bytecompiler/NodesCodegen.cpp:
- (JSC::FunctionCallValueNode::emitBytecode):
- (JSC::FunctionCallResolveNode::emitBytecode):
- (JSC::CallFunctionCallDotNode::emitBytecode):
- (JSC::ApplyFunctionCallDotNode::emitBytecode):
- 2010-10-18 Darin Adler <darin@apple.com>
- Reviewed by Anders Carlsson.
- Make a nullptr that works with OwnPtr and RefPtr
- https://bugs.webkit.org/show_bug.cgi?id=47756
- * JavaScriptCore.xcodeproj/project.pbxproj: Added NullPtr.h.
- * wtf/NullPtr.h: Added.
- * wtf/OwnArrayPtr.h: Add an overload of = taking nullptr.
- * wtf/OwnPtr.h: Ditto.
- * wtf/PassOwnArrayPtr.h: Ditto.
- * wtf/PassOwnPtr.h: Ditto.
- * wtf/PassRefPtr.h: Ditto.
- * wtf/RefPtr.h: Ditto.
- * wtf/RetainPtr.h: Ditto.
- 2010-10-18 Oliver Hunt <oliver@apple.com>
- Reviewed by Sam Weinig.
- Strict mode: JIT doesn't check for |this| being an immediate before dereferencing
- https://bugs.webkit.org/show_bug.cgi?id=47826
- There's no guarantee that |this| will be a cell in a strict mode function, so
- don't claim that it is.
- * bytecode/CodeBlock.h:
- (JSC::CodeBlock::isKnownNotImmediate):
- 2010-10-18 Zoltan Herczeg <zherczeg@webkit.org>
- Reviewed by Oliver Hunt.
- if (0) throw "x" ; else { } throws parse error after r69906
- https://bugs.webkit.org/show_bug.cgi?id=47807
- r69906 introduced a bug: the semicolon is not parsed after a throw
- expression anymore. Thus, the semicolon terminates the "if" parsing
- in the example above, and the else token results a parse error.
- * parser/JSParser.cpp:
- (JSC::JSParser::parseThrowStatement):
- 2010-10-18 Peter Varga <pvarga@inf.u-szeged.hu>
- Reviewed by Andreas Kling.
- Remove some unnecessary lines of code from Parser.cpp
- https://bugs.webkit.org/show_bug.cgi?id=47816
- * parser/Parser.cpp:
- 2010-10-18 Xan Lopez <xlopez@igalia.com>
- Reviewed by Csaba Osztrogonác.
- Build broken with JIT disabled
- https://bugs.webkit.org/show_bug.cgi?id=47801
- This is a regression caused by r69940.
- * interpreter/Interpreter.cpp:
- (JSC::Interpreter::resolveBase):
- 2010-10-18 Zoltan Horvath <zoltan@webkit.org>
- Reviewed by Darin Adler.
- Change FastAllocBase implementation into a macro
- https://bugs.webkit.org/show_bug.cgi?id=42998
- It was investigated in bug #33896 that inheriting classes from FastAllocBase
- can result in objects getting larger which leads to memory regressions.
- Using a macro instead of inheriting classes from FastAllocBase would solve the issue.
- * wtf/FastAllocBase.h: Add a WTF_MAKE_FAST_ALLOCATED macro
- 2010-10-17 Oliver Hunt <oliver@apple.com>
- Reviewed by Sam Weinig.
- Strict mode: arguments is not valid as the base expression for pre- or post-fix expressions
- https://bugs.webkit.org/show_bug.cgi?id=47791
- Simple fix, check for arguments in addition to eval.
- * parser/JSParser.cpp:
- (JSC::JSParser::parseUnaryExpression):
- 2010-10-17 Oliver Hunt <oliver@apple.com>
- Reviewed by Sam Weinig.
- Strict mode: Assignment that would create a global should be a late ReferenceError, not a syntax failure
- https://bugs.webkit.org/show_bug.cgi?id=47788
- Fixing this required a couple of changes:
- * resolve_base now has a flag to indicate whether it is being used for a put in strict mode.
- this allows us to throw an exception when we're doing a completely generic resolve for
- assignment, and that assignment would create a new global.
- * There is a new opcode 'op_ensure_property_exists' that is used to determine whether
- the property being assigned to already exists on the global object. This currently
- has no caching, but such caching could be added relatively trivially. It is only used
- in the case where we know that a property will be placed on the global object, and
- we cannot verify that the property already exists.
- In the jit we plant a call to cti_op_resolve_base_strict_put in the effected case rather
- than making op_resolve_base have an additional runtime branch.
- There's also a new helper function to create the exception for the invalid assignment.
- * bytecode/CodeBlock.cpp:
- (JSC::CodeBlock::dump):
- * bytecode/Opcode.h:
- * bytecompiler/BytecodeGenerator.cpp:
- (JSC::BytecodeGenerator::emitResolveBase):
- (JSC::BytecodeGenerator::emitResolveBaseForPut):
- * bytecompiler/BytecodeGenerator.h:
- * bytecompiler/NodesCodegen.cpp:
- (JSC::AssignResolveNode::emitBytecode):
- (JSC::ForInNode::emitBytecode):
- * interpreter/Interpreter.cpp:
- (JSC::Interpreter::resolveBase):
- (JSC::Interpreter::privateExecute):
- * jit/JIT.cpp:
- (JSC::JIT::privateCompileMainPass):
- * jit/JIT.h:
- * jit/JITOpcodes.cpp:
- (JSC::JIT::emit_op_resolve_base):
- (JSC::JIT::emit_op_ensure_property_exists):
- * jit/JITOpcodes32_64.cpp:
- (JSC::JIT::emit_op_resolve_base):
- (JSC::JIT::emit_op_ensure_property_exists):
- * jit/JITStubs.cpp:
- (JSC::DEFINE_STUB_FUNCTION):
- * jit/JITStubs.h:
- * parser/JSParser.cpp:
- (JSC::JSParser::parseProgram):
- * runtime/ExceptionHelpers.cpp:
- (JSC::createErrorForInvalidGlobalAssignment):
- * runtime/ExceptionHelpers.h:
- * runtime/Operations.h:
- (JSC::resolveBase):
- 2010-10-17 Simon Fraser <simon.fraser@apple.com>
- First part of fix for Windows build failure. Will wait for the
- next set of link errors to determine the mangled forms for dtoaRoundSF
- and dtoaRoundDP.
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
- 2010-10-17 Simon Fraser <simon.fraser@apple.com>
- Reviewed by Nikolas Zimmermann.
- Very large and small numbers fail to round-trip through CSS
- https://bugs.webkit.org/show_bug.cgi?id=20674
-
- New exports required to use DecimalNumber in WebCore.
- * JavaScriptCore.exp:
- * JavaScriptCore.xcodeproj/project.pbxproj:
- 2010-10-16 Kyusun Kim <maniagoon@company100.net>
- Reviewed by Alexey Proskuryakov.
- Add using declarations for currentTimeMS() and parseDateFromNullTerminatedCharacters()
- https://bugs.webkit.org/show_bug.cgi?id=47758
- * wtf/CurrentTime.h:
- * wtf/DateMath.h:
- 2010-10-16 Patrick Gansterer <paroga@webkit.org>
- Reviewed by Adam Barth.
- Rename StringHasherFunctions.h to StringHasher.h
- https://bugs.webkit.org/show_bug.cgi?id=47200
- Now StringHasherFunctions.h only contains the StringHasher class, so rename it to the correct name.
- * GNUmakefile.am:
- * JavaScriptCore.gypi:
- * JavaScriptCore.xcodeproj/project.pbxproj:
- * wtf/StringHashFunctions.h: Removed.
- * wtf/StringHasher.h: Copied from JavaScriptCore/wtf/StringHashFunctions.h.
- * wtf/text/StringHash.h:
- * wtf/text/StringImpl.h:
- 2010-10-15 Oliver Hunt <oliver@apple.com>
- Reviewed by Sam Weinig.
- Automatic Semicolon Insertion incorrectly inserts semicolon after break, continue, and return followed by a newline
- https://bugs.webkit.org/show_bug.cgi?id=47762
- The old YACC parser depended on the lexer for some classes of semicolon insertion.
- The new parser handles ASI entirely on its own so when the lexer inserts a semicolon
- on its own the net result is a spurious semicolon in the input stream. This can result
- in incorrect parsing in some cases:
- if (0)
- break
- ;else {}
- Would result in a parse failure as the output from the lexer is essentially
- if (0)
- break
- ;;else
- So the second semicolon is interpreted as a empty statement, which terminates the if,
- making the else an error.
- * parser/JSParser.cpp:
- (JSC::JSParser::parseThrowStatement):
- Parsing of throw statement was wrong, and only worked due to the weird behaviour
- in the lexer
- * parser/Lexer.cpp:
- (JSC::Lexer::lex):
- Remove bogus semicolon insertion from the newline handling
- 2010-10-15 Nikolas Zimmermann <nzimmermann@rim.com>
- Reviewed by Dirk Schulze.
- Replace some String::format() usages by StringConcatenate in WebKit
- https://bugs.webkit.org/show_bug.cgi?id=47714
- * wtf/text/StringConcatenate.h: Add UChar specific StringTypeAdapter, to accept single UChars in makeString().
- 2010-10-15 Ilya Tikhonovsky <loislo@chromium.org>
- Unreviewed build fix for Debug Leopard which is failng to compile after r69842.
- * yarr/RegexInterpreter.cpp:
- (JSC::Yarr::ByteCompiler::emitDisjunction):
- 2010-10-15 Peter Varga <pvarga@inf.u-szeged.hu>
- Reviewed by Gavin Barraclough.
- The parenthetical assertion checking isn't working in some cases with YARR
- Interpreter
- https://bugs.webkit.org/show_bug.cgi?id=46893
- Calculate the countToCheck value of a TypeParentheticalAssertion by
- subtracting the number of characters which follows
- a TypeParentheticalAssertion term with the number of characters which should
- be matched by terms which are contained
- in the TypeParentheticalAssertion term (minimumSize).
- * yarr/RegexInterpreter.cpp:
- (JSC::Yarr::ByteCompiler::emitDisjunction):
- 2010-10-14 Nathan Vander Wilt <nate@andyet.net>
- Reviewed by Darin Adler.
- Added parser for ECMAScript 5 standard date format, so Date.parse can handle RFC 3339 timestamps: https://bugs.webkit.org/show_bug.cgi?id=44632
- * runtime/DateConversion.cpp:
- (JSC::parseDate):
- * wtf/DateMath.cpp:
- (WTF::ymdhmsToSeconds):
- (WTF::parseES5DateFromNullTerminatedCharacters):
- * wtf/DateMath.h:
- 2010-10-14 Nikolas Zimmermann <nzimmermann@rim.com>
- Reviewed by Gavin Barraclough.
- Replace lots of String::format() usages by StringConcatenate
- https://bugs.webkit.org/show_bug.cgi?id=47664
- Add StringTypeAdapter<char> to accept single characters for makeString().
- * wtf/text/StringConcatenate.h:
- (WTF::makeString):
- 2010-10-14 David Goodwin <david_goodwin@apple.com>
- Reviewed by Darin Adler.
- need way to measure size of JITed ARM code
- https://bugs.webkit.org/show_bug.cgi?id=47121
- * assembler/LinkBuffer.h:
- (JSC::LinkBuffer::linkCode):
- (JSC::LinkBuffer::dumpLinkStats):
- (JSC::LinkBuffer::dumpCode):
- 2010-10-14 Peter Varga <pvarga@inf.u-szeged.hu>
- Reviewed by Gavin Barraclough.
- The backreference checking isn't working in some cases with YARR Interpreter
- https://bugs.webkit.org/show_bug.cgi?id=46904
- The Interpreter::matchBackReference() function returns true without matching
- when a backreference points to the same parentheses where it is.
- * yarr/RegexInterpreter.cpp:
- (JSC::Yarr::Interpreter::matchBackReference):
- 2010-10-14 No'am Rosenthal <noam.rosenthal@nokia.com>
- Reviewed by Andreas Kling.
- [Qt] Text breaking is slow: enable ICU as an opt-in
- https://bugs.webkit.org/show_bug.cgi?id=40332
- Added a config flag that enables ICU as an opt-in instead of the Qt specific code.
- Because of the inclusion of ICU headers, some explicit casting was necessary in UnicodeQt4.h
- * JavaScriptCore.pri:
- * wtf/unicode/qt4/UnicodeQt4.h:
- (WTF::Unicode::toLower):
- (WTF::Unicode::toUpper):
- (WTF::Unicode::toTitleCase):
- (WTF::Unicode::foldCase):
- (WTF::Unicode::isPrintableChar):
- (WTF::Unicode::isSeparatorSpace):
- (WTF::Unicode::isPunct):
- (WTF::Unicode::isLower):
- (WTF::Unicode::mirroredChar):
- (WTF::Unicode::combiningClass):
- (WTF::Unicode::direction):
- (WTF::Unicode::category):
- 2010-10-14 Anton Faern <anton@bladehawke.com>
- Reviewed by Csaba Osztrogonác.
- https://bugs.webkit.org/show_bug.cgi?id=47658
- NetBSD was not included in the WTF_PLATFORM_FOO to WTF_OS_FOO
- change. This means that OS(NETBSD) is also undefined.
- * wtf/Platform.h: s/_PLATFORM_/_OS_/ for NetBSD
- 2010-10-13 David Goodwin <david_goodwin@apple.com>
- Reviewed by Oliver Hunt.
- ARMv7 JIT should generated conditional branches when possible
- https://bugs.webkit.org/show_bug.cgi?id=47384
- Use different jump padding sizes for conditional and unconditional
- jumps (12 bytes and 10 bytes respectively). This allows the JIT to
- include the IT instruction as part of the conditional jump sequence
- which in turn allows it to optimize away the IT using an ARMv7
- conditional branch instruction. Use 2-byte B(T1) and 4-byte B(T3) for
- conditional branches when displacement is in range. Also use IT/B(T4)
- for conditional branch when displacement does not fit in B(T3).
- For unconditional jump, instruction selection options are:
- B(T2), B(T4), MOVW/MOVT/BX. For conditional jump, instruction selection
- options are: B(T1), B(T3), IT/B(T4), ITTT/MOVW/MOVT/BX.
- * assembler/ARMv7Assembler.cpp:
- * assembler/ARMv7Assembler.h:
- (JSC::ARMv7Assembler::JmpSrc::JmpSrc):
- (JSC::ARMv7Assembler::ifThenElse):
- (JSC::ARMv7Assembler::jumpSizeDelta):
- (JSC::ARMv7Assembler::canCompact):
- (JSC::ARMv7Assembler::computeJumpType):
- (JSC::ARMv7Assembler::link):
- (JSC::ARMv7Assembler::canBeJumpT1):
- (JSC::ARMv7Assembler::canBeJumpT3):
- (JSC::ARMv7Assembler::canBeJumpT4):
- (JSC::ARMv7Assembler::linkJumpT1):
- (JSC::ARMv7Assembler::linkJumpT3):
- (JSC::ARMv7Assembler::linkJumpT4):
- (JSC::ARMv7Assembler::linkConditionalJumpT4):
- (JSC::ARMv7Assembler::linkBX):
- (JSC::ARMv7Assembler::linkConditionalBX):
- (JSC::ARMv7Assembler::linkJumpAbsolute):
- * assembler/LinkBuffer.h:
- (JSC::LinkBuffer::linkCode):
- * assembler/MacroAssemblerARMv7.h:
- (JSC::MacroAssemblerARMv7::canCompact):
- (JSC::MacroAssemblerARMv7::computeJumpType):
- (JSC::MacroAssemblerARMv7::jumpSizeDelta):
- (JSC::MacroAssemblerARMv7::jump):
- (JSC::MacroAssemblerARMv7::nearCall):
- (JSC::MacroAssemblerARMv7::call):
- (JSC::MacroAssemblerARMv7::ret):
- (JSC::MacroAssemblerARMv7::tailRecursiveCall):
- (JSC::MacroAssemblerARMv7::makeJump):
- (JSC::MacroAssemblerARMv7::makeBranch):
- 2010-10-13 Fridrich Strba <fridrich.strba@bluewin.ch>
- Reviewed by Darin Adler.
- Don't depend on Windows on sched_yield and sched.h
- https://bugs.webkit.org/show_bug.cgi?id=45543
- sched.h is part of pthreads and sched_yield is implemented
- in pthreads-win32 as Sleep(0). This patch avoids a gratuitous
- dependency on pthreads-win32 in this file.
- * wtf/TCSpinLock.h:
- (TCMalloc_SlowLock):
- 2010-10-13 Kwang Yul Seo <skyul@company100.net>
- Reviewed by Kent Tamura.
- [BREWMP] Port unicode
- https://bugs.webkit.org/show_bug.cgi?id=45716
- Brew MP port uses only the subset of ICU library to reduce the binary size.
- Follow the WinCE's implementation.
- * wtf/Platform.h:
- * wtf/unicode/Unicode.h:
- * wtf/unicode/brew/UnicodeBrew.cpp: Added.
- (WTF::Unicode::toLower):
- (WTF::Unicode::toUpper):
- (WTF::Unicode::foldCase):
- (WTF::Unicode::isPrintableChar):
- (WTF::Unicode::isUpper):
- (WTF::Unicode::isLower):
- (WTF::Unicode::isDigit):
- (WTF::Unicode::isPunct):
- (WTF::Unicode::isAlphanumeric):
- (WTF::Unicode::toTitleCase):
- (WTF::Unicode::direction):
- (WTF::Unicode::category):
- (WTF::Unicode::decompositionType):
- (WTF::Unicode::combiningClass):
- (WTF::Unicode::mirroredChar):
- (WTF::Unicode::digitValue):
- (WTF::Unicode::isSpace):
- (WTF::Unicode::isLetter):
- * wtf/unicode/brew/UnicodeBrew.h: Added.
- (WTF::Unicode::isArabicChar):
- (WTF::Unicode::isSeparatorSpace):
- (WTF::Unicode::hasLineBreakingPropertyComplexContext):
- (WTF::Unicode::hasLineBreakingPropertyComplexContextOrIdeographic):
- (WTF::Unicode::umemcasecmp):
- 2010-10-13 Gavin Barraclough <barraclough@apple.com>
- Windows build fix.
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
- 2010-10-13 Adam Barth <abarth@webkit.org>
- Reviewed by Maciej Stachowiak.
- [WTFURL] Add URLQueryCanonicalizer
- https://bugs.webkit.org/show_bug.cgi?id=45088
- This class canonicalizes the query component of URLs. The main tricky
- bit there is the convertCharset function, which I've moved to a
- templated dependency. There'll likely be more about that in future
- patches.
- * JavaScriptCore.xcodeproj/project.pbxproj:
- * wtf/url/src/URLEscape.cpp: Added.
- * wtf/url/src/URLEscape.h: Added.
- (WTF::appendEscapedCharacter):
- * wtf/url/src/URLQueryCanonicalizer.h: Added.
- (WTF::URLQueryCanonicalizer::canonicalize):
- (WTF::URLQueryCanonicalizer::isAllASCII):
- (WTF::URLQueryCanonicalizer::appendRaw8BitQueryString):
- (WTF::URLQueryCanonicalizer::convertToQueryEncoding):
- 2010-10-13 Gavin Barraclough <barraclough@apple.com>
- Reviewed by Oliver Hunt.
- Bug 43987 - Downloading using XHR is much slower than before
- Change StringBuilder to use overcapacity in a StringImpl, rather than a Vector.
- Fundamentally this should be the same (copies current contents to expand capacity,
- rather than using a rope), but this approach allows the intermadiate state of the
- String to be inspected in the buffer without copying to resolve.
- * runtime/JSONObject.cpp:
- (JSC::Stringifier::appendQuotedString):
- (JSC::Stringifier::Holder::appendNextProperty):
- Renamed StringBuilder::size() -> length() (to match other String types).
- * runtime/UStringBuilder.h:
- (JSC::UStringBuilder::append):
- (JSC::UStringBuilder::toUString):
- Update for changes in parent class, can just 'using' the append methods.
- * wtf/text/StringBuilder.cpp: Added.
- (WTF::StringBuilder::reifyString):
- (WTF::StringBuilder::resize):
- (WTF::StringBuilder::reserveCapacity):
- (WTF::StringBuilder::allocateBuffer):
- (WTF::StringBuilder::appendUninitialized):
- (WTF::StringBuilder::append):
- (WTF::StringBuilder::shrinkToFit):
- * wtf/text/StringBuilder.h:
- (WTF::StringBuilder::StringBuilder):
- (WTF::StringBuilder::append):
- (WTF::StringBuilder::toString):
- (WTF::StringBuilder::toStringPreserveCapacity):
- (WTF::StringBuilder::length):
- (WTF::StringBuilder::isEmpty):
- (WTF::StringBuilder::operator[]):
- (WTF::StringBuilder::clear):
- Class updated to use overcapacity in a StringImpl, rather than a Vector.
- * Android.mk:
- * Android.v8.wtf.mk:
- * GNUmakefile.am:
- * JavaScriptCore.exp:
- * JavaScriptCore.gypi:
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreCommon.vsprops:
- * JavaScriptCore.vcproj/WTF/WTF.vcproj:
- * JavaScriptCore.vcproj/jsc/jsc.vcproj:
- * JavaScriptCore.xcodeproj/project.pbxproj:
- * wtf/CMakeLists.txt:
- * wtf/wtf.pri:
- 2010-10-13 Adam Roben <aroben@apple.com>
- Export tryFastRealloc for WebKit2's benefit
- Rubber-stamped by Anders Carlsson.
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: Added
- tryFastRealloc. Removed RegExpObject::info, which is now exported via
- JS_EXPORTDATA.
- 2010-10-13 Adam Barth <abarth@webkit.org>
- Reviewed by Maciej Stachowiak.
- [WTFURL] Add a mechanism for classifying types of characters
- https://bugs.webkit.org/show_bug.cgi?id=45085
- Various characters have different escaping rules depending on where
- they are in URLs. This patch adds a table containing that information.
- * JavaScriptCore.xcodeproj/project.pbxproj:
- * wtf/url/src/URLCharacterTypes.cpp: Added.
- * wtf/url/src/URLCharacterTypes.h: Added.
- (WTF::URLCharacterTypes::isQueryChar):
- (WTF::URLCharacterTypes::isIPv4Char):
- (WTF::URLCharacterTypes::isHexChar):
- (WTF::URLCharacterTypes::isCharOfType):
- 2010-10-13 Xan Lopez <xlopez@igalia.com>
- Reviewed by Csaba Osztrogonác.
- Missing parameters for bytecode dump of next_pname
- https://bugs.webkit.org/show_bug.cgi?id=47590
- * bytecode/CodeBlock.cpp:
- (JSC::CodeBlock::dump): add missing parameters to the dump.
- 2010-10-13 Nikolas Zimmermann <nzimmermann@rim.com>
- Reviewed by Dirk Schulze.
- Add wtf/text/StringConcatenate
- https://bugs.webkit.org/show_bug.cgi?id=47584
- Move runtime/StringConcatenate.h to wtf/text, make it work for Strings too.
- Add a special runtime/UStringConcatenate.h class that inherits from StringConcatenate, and extends it for use with UString.
- Exactly the same design that has been followed while refactoring StringBuilder.
- The UString variants can all be removed as soon as WTF::String & JSC::UString converge.
- * GNUmakefile.am: Add wtf/text/StringConcatenate.h and runtime/UStringConcatenate.h.
- * JavaScriptCore.gypi: Ditto.
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj: Ditto.
- * JavaScriptCore.vcproj/WTF/WTF.vcproj: Ditto.
- * JavaScriptCore.xcodeproj/project.pbxproj: Ditto.
- * bytecode/CodeBlock.cpp: s/makeString/makeUString/
- (JSC::escapeQuotes):
- (JSC::valueToSourceString):
- (JSC::constantName):
- (JSC::idName):
- (JSC::CodeBlock::registerName):
- (JSC::regexpToSourceString):
- (JSC::regexpName):
- * bytecompiler/NodesCodegen.cpp: Ditto.
- (JSC::substitute):
- * profiler/Profiler.cpp: Ditto.
- (JSC::Profiler::createCallIdentifier):
- * runtime/ExceptionHelpers.cpp: Ditto.
- (JSC::createUndefinedVariableError):
- (JSC::createErrorMessage):
- (JSC::createInvalidParamError):
- * runtime/FunctionConstructor.cpp: Ditto.
- (JSC::constructFunction):
- * runtime/FunctionPrototype.cpp: Ditto.
- (JSC::insertSemicolonIfNeeded):
- * runtime/JSONObject.cpp: Ditto.
- (JSC::Stringifier::indent):
- * runtime/JSStringBuilder.h:
- (JSC::jsMakeNontrivialString):
- * runtime/RegExpConstructor.cpp: Ditto.
- (JSC::constructRegExp):
- * runtime/RegExpObject.cpp: Ditto.
- (JSC::RegExpObject::match):
- * runtime/RegExpPrototype.cpp: Ditto.
- (JSC::regExpProtoFuncCompile):
- * runtime/StringConcatenate.h: Removed.
- * runtime/UStringConcatenate.h: Added. Only contains the StringTypeAdapter<JSC::UString> code and the makeUString variants, the rest lives in wtf/text/StringConcatenate.h
- (JSC::makeUString):
- * wtf/text/StringConcatenate.h: Copied from runtime/StringConcatenate.h.
- (WTF::makeString):
- 2010-10-12 Gavin Barraclough <barraclough@apple.com>
- Windows build fix.
- * wtf/text/StringBuilder.h:
- (WTF::StringBuilder::length):
- 2010-10-12 Nikolas Zimmermann <nzimmermann@rim.com>
- Reviewed by Gavin Barraclough.
- Unify JSC::StringBuilder & WebCore::StringBuilder
- https://bugs.webkit.org/show_bug.cgi?id=47538
- Move runtime/StringBuilder.h to wtf/text/StringBuilder.h. Rename build() to toString() and return a WTF::String().
- Move the append(const JSC::UString&) method into runtime/UStringBuilder.h.
- UStringBuilder inherits from StringBuilder.h and adds append(const JSC::UString&) and UString toUString() functionality.
- No new code, just move code around.
- * GNUmakefile.am: Add wtf/text/StringBuilder.h / runtime/UStringBuilder.h. Remove runtime/StringBuilder.h.
- * JavaScriptCore.gypi: Ditto.
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj: Ditto.
- * JavaScriptCore.vcproj/WTF/WTF.vcproj: Ditto.
- * JavaScriptCore.xcodeproj/project.pbxproj: Ditto.
- * runtime/Executable.cpp:
- (JSC::FunctionExecutable::paramString): Use UStringBuilder, instead of StringBuilder. Rename build() -> toUString().
- * runtime/FunctionConstructor.cpp:
- (JSC::constructFunction): Ditto.
- * runtime/JSGlobalObjectFunctions.cpp:
- (JSC::globalFuncUnescape): Ditto.
- * runtime/JSONObject.cpp:
- (JSC::Stringifier::stringify): Ditto.
- (JSC::Stringifier::appendQuotedString): Ditto.
- (JSC::Stringifier::appendStringifiedValue): Ditto.
- (JSC::Stringifier::startNewLine): Ditto.
- (JSC::Stringifier::Holder::appendNextProperty): Ditto.
- * runtime/LiteralParser.cpp:
- (JSC::LiteralParser::Lexer::lexString): Ditto.
- * runtime/NumberPrototype.cpp: Remove unneeded JSStringBuilder.h / StringBuilder.h include.
- * runtime/StringBuilder.h: Removed.
- * runtime/UStringBuilder.h: Added. Inherits from WTF::StringBuilder, extending it by two methods.
- (JSC::UStringBuilder::append): append(const JSC::UString&)
- (JSC::UStringBuilder::toUString):
- * wtf/text/StringBuilder.h: Copied from runtime/StringBuilder.h. Move JSC::UString parts into runtime/UStringBuilder.h
- (WTF::StringBuilder::append): Renamed m_buffer to buffer everywhere.
- (WTF::StringBuilder::isEmpty): Ditto (+ constify method).
- (WTF::StringBuilder::reserveCapacity): Ditto.
- (WTF::StringBuilder::resize): Ditto.
- (WTF::StringBuilder::size): Ditto.
- (WTF::StringBuilder::operator[]): Ditto.
- (WTF::StringBuilder::toString): Ditto (+ renamed from build()). Returns a String, not an UString. The old build() method is now named toUString() and lives in UStringBuilder.
- 2010-10-12 Michael Saboff <msaboff@apple.com>
- Reviewed by Oliver Hunt.
- Cleaned up the processing of replacements after regular expression
- processing, especially the case where there wasn't a match.
- Changed to use empty strings instead of computing a zero length sub
- string.
- https://bugs.webkit.org/show_bug.cgi?id=47506
- * runtime/StringPrototype.cpp:
- (JSC::jsSpliceSubstringsWithSeparators):
- (JSC::stringProtoFuncReplace):
- 2010-10-11 Patrick Gansterer <paroga@webkit.org>
- Unreviewed.
- Clang build fix after r69472.
- https://bugs.webkit.org/show_bug.cgi?id=46523
- * wtf/text/StringHash.h:
- 2010-10-11 Oliver Hunt <oliver@apple.com>
- Undo last minute change to 32bit build.
- * jit/JITOpcodes32_64.cpp:
- (JSC::JIT::emit_op_convert_this_strict):
- 2010-10-11 Brian Weinstein <bweinstein@apple.com>
- Build fix for Windows. Add a necessary export from r69516.
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
- 2010-10-11 Oliver Hunt <oliver@apple.com>
- Fix interpreter build -- was broken by incorrect merge.
- * interpreter/Interpreter.cpp:
- (JSC::Interpreter::privateExecute):
- 2010-10-01 Oliver Hunt <oliver@apple.com>
- Reviewed by Gavin Barraclough.
- [ES5] Implement strict mode
- https://bugs.webkit.org/show_bug.cgi?id=10701
- Initial strict mode implementation. This is the simplest
- implementation that could possibly work and adds (hopefully)
- all of the restrictions required by strict mode. There are
- a number of inefficiencies, especially in the handling of
- arguments and eval as smart implementations would make this
- patch more complicated.
- The SyntaxChecker AST builder has become somewhat more complex
- as strict mode does require more parse tree information to
- validate the syntax.
- Summary of major changes to the parser:
- * We track when we enter strict mode (this may come as a surprise)
- * Strict mode actually requires a degree of AST knowledge to validate
- so the SyntaxChecker now produces values that can be used to distinguish
- "node" types.
- * We now track variables that are written to. We do this to
- statically identify writes to global properties that don't exist
- and abort at that point. This should actually make it possible
- to optimise some other cases in the future but for now it's
- purely for validity checking. Currently writes are only tracked
- in strict mode code.
- * Labels are now tracked as it is now a syntax error to jump to a label
- that does not exist (or to use break, continue, or return in a context
- where they would be invalid).
- Runtime changes:
- * In order to get correct hanlding of the Arguments object all
- strict mode functions that reference arguments create and tearoff
- the arguments object on entry. This is not strictly necessary
- but was the least work necessary to get the correct behaviour.
- * PutPropertySlot now tracks whether it is being used for a strict
- mode write, and if so Object::put will throw when a write can't be
- completed.
- * StrictEvalActivation was added as an "activation" object for strict
- mode eval (so that strict eval does not introduce new variables into
- the containing scope).
- * CMakeLists.txt:
- * GNUmakefile.am:
- * JavaScriptCore.exp:
- * JavaScriptCore.pro:
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
- * JavaScriptCore.xcodeproj/project.pbxproj:
- * bytecode/CodeBlock.cpp:
- (JSC::CodeBlock::dump):
- (JSC::CodeBlock::CodeBlock):
- (JSC::CodeBlock::reparseForExceptionInfoIfNecessary):
- * bytecode/CodeBlock.h:
- (JSC::CodeBlock::isStrictMode):
- * bytecode/EvalCodeCache.h:
- (JSC::EvalCodeCache::get):
- * bytecode/Opcode.h:
- * bytecompiler/BytecodeGenerator.cpp:
- (JSC::BytecodeGenerator::BytecodeGenerator):
- (JSC::BytecodeGenerator::createArgumentsIfNecessary):
- (JSC::BytecodeGenerator::emitReturn):
- * bytecompiler/BytecodeGenerator.h:
- (JSC::BytecodeGenerator::isStrictMode):
- (JSC::BytecodeGenerator::makeFunction):
- * debugger/Debugger.cpp:
- (JSC::evaluateInGlobalCallFrame):
- * debugger/DebuggerCallFrame.cpp:
- (JSC::DebuggerCallFrame::evaluate):
- * interpreter/Interpreter.cpp:
- (JSC::Interpreter::callEval):
- (JSC::Interpreter::unwindCallFrame):
- (JSC::Interpreter::execute):
- (JSC::Interpreter::privateExecute):
- * jit/JIT.cpp:
- (JSC::JIT::privateCompileMainPass):
- (JSC::JIT::privateCompileSlowCases):
- * jit/JIT.h:
- * jit/JITOpcodes.cpp:
- (JSC::JIT::emit_op_get_pnames):
- (JSC::JIT::emit_op_convert_this_strict):
- (JSC::JIT::emitSlow_op_convert_this_strict):
- * jit/JITOpcodes32_64.cpp:
- (JSC::JIT::emit_op_get_pnames):
- * jit/JITStubs.cpp:
- (JSC::DEFINE_STUB_FUNCTION):
- * jit/JITStubs.h:
- * parser/ASTBuilder.h:
- (JSC::ASTBuilder::createFunctionBody):
- (JSC::ASTBuilder::isResolve):
- * parser/JSParser.cpp:
- (JSC::JSParser::next):
- (JSC::JSParser::startLoop):
- (JSC::JSParser::endLoop):
- (JSC::JSParser::startSwitch):
- (JSC::JSParser::endSwitch):
- (JSC::JSParser::setStrictMode):
- (JSC::JSParser::strictMode):
- (JSC::JSParser::isValidStrictMode):
- (JSC::JSParser::declareParameter):
- (JSC::JSParser::breakIsValid):
- (JSC::JSParser::pushLabel):
- (JSC::JSParser::popLabel):
- (JSC::JSParser::hasLabel):
- (JSC::JSParser::DepthManager::DepthManager):
- (JSC::JSParser::DepthManager::~DepthManager):
- (JSC::JSParser::Scope::Scope):
- (JSC::JSParser::Scope::startSwitch):
- (JSC::JSParser::Scope::endSwitch):
- (JSC::JSParser::Scope::startLoop):
- (JSC::JSParser::Scope::endLoop):
- (JSC::JSParser::Scope::inLoop):
- (JSC::JSParser::Scope::breakIsValid):
- (JSC::JSParser::Scope::pushLabel):
- (JSC::JSParser::Scope::popLabel):
- (JSC::JSParser::Scope::hasLabel):
- (JSC::JSParser::Scope::isFunction):
- (JSC::JSParser::Scope::declareVariable):
- (JSC::JSParser::Scope::declareWrite):
- (JSC::JSParser::Scope::deleteProperty):
- (JSC::JSParser::Scope::declareParameter):
- (JSC::JSParser::Scope::setNeedsFullActivation):
- (JSC::JSParser::Scope::collectFreeVariables):
- (JSC::JSParser::Scope::getUncapturedWrittenVariables):
- (JSC::JSParser::Scope::getDeletedVariables):
- (JSC::JSParser::Scope::setStrictMode):
- (JSC::JSParser::Scope::strictMode):
- (JSC::JSParser::Scope::isValidStrictMode):
- (JSC::JSParser::pushScope):
- (JSC::JSParser::popScope):
- (JSC::JSParser::declareVariable):
- (JSC::JSParser::declareWrite):
- (JSC::JSParser::deleteProperty):
- (JSC::jsParse):
- (JSC::JSParser::JSParser):
- (JSC::JSParser::parseProgram):
- (JSC::JSParser::parseSourceElements):
- (JSC::JSParser::parseDoWhileStatement):
- (JSC::JSParser::parseWhileStatement):
- (JSC::JSParser::parseVarDeclarationList):
- (JSC::JSParser::parseConstDeclarationList):
- (JSC::JSParser::parseForStatement):
- (JSC::JSParser::parseBreakStatement):
- (JSC::JSParser::parseContinueStatement):
- (JSC::JSParser::parseReturnStatement):
- (JSC::JSParser::parseWithStatement):
- (JSC::JSParser::parseSwitchStatement):
- (JSC::JSParser::parseSwitchClauses):
- (JSC::JSParser::parseSwitchDefaultClause):
- (JSC::JSParser::parseTryStatement):
- (JSC::JSParser::parseBlockStatement):
- (JSC::JSParser::parseStatement):
- (JSC::JSParser::parseFormalParameters):
- (JSC::JSParser::parseFunctionBody):
- (JSC::JSParser::parseFunctionInfo):
- (JSC::JSParser::parseFunctionDeclaration):
- (JSC::JSParser::parseExpressionOrLabelStatement):
- (JSC::JSParser::parseIfStatement):
- (JSC::JSParser::parseExpression):
- (JSC::JSParser::parseAssignmentExpression):
- (JSC::JSParser::parseConditionalExpression):
- (JSC::JSParser::parseBinaryExpression):
- (JSC::JSParser::parseStrictObjectLiteral):
- (JSC::JSParser::parsePrimaryExpression):
- (JSC::JSParser::parseMemberExpression):
- (JSC::JSParser::parseUnaryExpression):
- * parser/JSParser.h:
- * parser/Lexer.cpp:
- (JSC::Lexer::parseString):
- (JSC::Lexer::lex):
- * parser/Lexer.h:
- (JSC::Lexer::isReparsing):
- * parser/Nodes.cpp:
- (JSC::ScopeNode::ScopeNode):
- (JSC::FunctionBodyNode::FunctionBodyNode):
- (JSC::FunctionBodyNode::create):
- * parser/Nodes.h:
- (JSC::ScopeNode::isStrictMode):
- * parser/Parser.cpp:
- (JSC::Parser::parse):
- * parser/Parser.h:
- (JSC::Parser::parse):
- * parser/SyntaxChecker.h:
- (JSC::SyntaxChecker::SyntaxChecker):
- (JSC::SyntaxChecker::makeFunctionCallNode):
- (JSC::SyntaxChecker::appendToComma):
- (JSC::SyntaxChecker::createCommaExpr):
- (JSC::SyntaxChecker::makeAssignNode):
- (JSC::SyntaxChecker::makePrefixNode):
- (JSC::SyntaxChecker::makePostfixNode):
- (JSC::SyntaxChecker::makeTypeOfNode):
- (JSC::SyntaxChecker::makeDeleteNode):
- (JSC::SyntaxChecker::makeNegateNode):
- (JSC::SyntaxChecker::makeBitwiseNotNode):
- (JSC::SyntaxChecker::createLogicalNot):
- (JSC::SyntaxChecker::createUnaryPlus):
- (JSC::SyntaxChecker::createVoid):
- (JSC::SyntaxChecker::thisExpr):
- (JSC::SyntaxChecker::createResolve):
- (JSC::SyntaxChecker::createObjectLiteral):
- (JSC::SyntaxChecker::createArray):
- (JSC::SyntaxChecker::createNumberExpr):
- (JSC::SyntaxChecker::createString):
- (JSC::SyntaxChecker::createBoolean):
- (JSC::SyntaxChecker::createNull):
- (JSC::SyntaxChecker::createBracketAccess):
- (JSC::SyntaxChecker::createDotAccess):
- (JSC::SyntaxChecker::createRegex):
- (JSC::SyntaxChecker::createNewExpr):
- (JSC::SyntaxChecker::createConditionalExpr):
- (JSC::SyntaxChecker::createAssignResolve):
- (JSC::SyntaxChecker::createFunctionExpr):
- (JSC::SyntaxChecker::createFunctionBody):
- (JSC::SyntaxChecker::appendBinaryExpressionInfo):
- (JSC::SyntaxChecker::operatorStackPop):
- * runtime/Arguments.cpp:
- (JSC::Arguments::createStrictModeCallerIfNecessary):
- (JSC::Arguments::createStrictModeCalleeIfNecessary):
- (JSC::Arguments::getOwnPropertySlot):
- (JSC::Arguments::getOwnPropertyDescriptor):
- (JSC::Arguments::put):
- (JSC::Arguments::deleteProperty):
- * runtime/Arguments.h:
- (JSC::Arguments::Arguments):
- * runtime/CommonIdentifiers.cpp:
- (JSC::CommonIdentifiers::CommonIdentifiers):
- * runtime/CommonIdentifiers.h:
- * runtime/Error.cpp:
- (JSC::StrictModeTypeErrorFunction::StrictModeTypeErrorFunction):
- (JSC::StrictModeTypeErrorFunction::constructThrowTypeError):
- (JSC::StrictModeTypeErrorFunction::getConstructData):
- (JSC::StrictModeTypeErrorFunction::callThrowTypeError):
- (JSC::StrictModeTypeErrorFunction::getCallData):
- (JSC::createTypeErrorFunction):
- * runtime/Error.h:
- * runtime/Executable.cpp:
- (JSC::EvalExecutable::EvalExecutable):
- (JSC::ProgramExecutable::ProgramExecutable):
- (JSC::FunctionExecutable::FunctionExecutable):
- (JSC::EvalExecutable::compileInternal):
- (JSC::ProgramExecutable::checkSyntax):
- (JSC::ProgramExecutable::compileInternal):
- (JSC::FunctionExecutable::compileForCallInternal):
- (JSC::FunctionExecutable::compileForConstructInternal):
- (JSC::FunctionExecutable::reparseExceptionInfo):
- (JSC::EvalExecutable::reparseExceptionInfo):
- (JSC::FunctionExecutable::fromGlobalCode):
- (JSC::ProgramExecutable::reparseExceptionInfo):
- * runtime/Executable.h:
- (JSC::ScriptExecutable::ScriptExecutable):
- (JSC::ScriptExecutable::isStrictMode):
- (JSC::EvalExecutable::create):
- (JSC::FunctionExecutable::create):
- * runtime/JSActivation.cpp:
- (JSC::JSActivation::toStrictThisObject):
- * runtime/JSActivation.h:
- * runtime/JSFunction.cpp:
- (JSC::createDescriptorForThrowingProperty):
- (JSC::JSFunction::getOwnPropertySlot):
- (JSC::JSFunction::getOwnPropertyDescriptor):
- (JSC::JSFunction::put):
- * runtime/JSGlobalData.cpp:
- (JSC::JSGlobalData::JSGlobalData):
- * runtime/JSGlobalData.h:
- * runtime/JSGlobalObject.cpp:
- (JSC::JSGlobalObject::reset):
- * runtime/JSGlobalObject.h:
- (JSC::JSGlobalObject::internalFunctionStructure):
- * runtime/JSGlobalObjectFunctions.cpp:
- (JSC::globalFuncEval):
- * runtime/JSObject.cpp:
- (JSC::JSObject::put):
- (JSC::JSObject::toStrictThisObject):
- (JSC::throwTypeError):
- * runtime/JSObject.h:
- (JSC::JSObject::isStrictModeFunction):
- (JSC::JSObject::putDirectInternal):
- (JSC::JSObject::putDirect):
- (JSC::JSValue::putDirect):
- (JSC::JSValue::toStrictThisObject):
- * runtime/JSStaticScopeObject.cpp:
- (JSC::JSStaticScopeObject::toStrictThisObject):
- * runtime/JSStaticScopeObject.h:
- * runtime/JSValue.h:
- * runtime/JSZombie.h:
- (JSC::JSZombie::toStrictThisObject):
- * runtime/PutPropertySlot.h:
- (JSC::PutPropertySlot::PutPropertySlot):
- (JSC::PutPropertySlot::isStrictMode):
- * runtime/StrictEvalActivation.cpp: Added.
- (JSC::StrictEvalActivation::StrictEvalActivation):
- (JSC::StrictEvalActivation::deleteProperty):
- (JSC::StrictEvalActivation::toThisObject):
- (JSC::StrictEvalActivation::toStrictThisObject):
- * runtime/StrictEvalActivation.h: Added.
- 2010-10-10 Patrick Gansterer <paroga@webkit.org>
- Unreviewed.
- Windows build fix after r69472.
- * wtf/text/StringHash.h:
- (WTF::CaseFoldingHash::hash):
- 2010-10-10 Patrick Gansterer <paroga@webkit.org>
- Reviewed by Adam Barth.
- Use WTF::StringHasher in WTF::CaseFoldingHash
- https://bugs.webkit.org/show_bug.cgi?id=46523
- * wtf/text/StringHash.h:
- (WTF::CaseFoldingHash::foldCase):
- (WTF::CaseFoldingHash::hash):
- 2010-10-09 Pratik Solanki <psolanki@apple.com>
- Reviewed by Xan Lopez.
- https://bugs.webkit.org/show_bug.cgi?id=47445
- Remove unused function WTFThreadData::initializeIdentifierTable()
- * wtf/WTFThreadData.h:
- 2010-10-08 Michael Saboff <msaboff@apple.com>
- Reviewed by Darin Adler.
- Added check to start of subexpression being positive before using
- subexpression in replacement.
- https://bugs.webkit.org/show_bug.cgi?id=47324
- * runtime/StringPrototype.cpp:
- (JSC::substituteBackreferencesSlow):
- 2010-10-08 Chris Evans <cevans@google.com>
- Reviewed by David Levin.
- https://bugs.webkit.org/show_bug.cgi?id=47393
- Use unsigned consistently to check for max StringImpl length.
- Add a few integer overflow checks.
- Uses the existing paradigm of CRASH() when we can't reasonably handle a crazily large request.
- * wtf/text/WTFString.cpp:
- * wtf/text/StringImpl.h:
- * wtf/text/StringImpl.cpp:
- Better use of size_t vs. unsigned; check for integer overflows.
- 2010-10-07 David Goodwin <david_goodwin@apple.com>
- Reviewed by Oliver Hunt.
- ARM JIT generates undefined operations due to partially uninitialized ShiftTypeAndAmount
- https://bugs.webkit.org/show_bug.cgi?id=47356
- * assembler/ARMv7Assembler.h:
- 2010-10-06 Chris Evans <cevans@google.com>
- Reviewed by David Levin.
- https://bugs.webkit.org/show_bug.cgi?id=47248
- Use size_t consistently in CString, to prevent theoretical trouble
- with > 4GB strings on 64-bit platforms.
- * wtf/text/CString.h:
- * wtf/text/CString.cpp:
- Use size_t for string lengths.
- * wtf/MD5.cpp:
- (WTF::expectMD5): use suitable format string + cast for size_t.
- * JavaScriptCore.exp:
- Update symbol name.
- 2010-10-06 Anders Carlsson <andersca@apple.com>
- Reviewed by Sam Weinig.
- Start cleaning up Arguments.h
- https://bugs.webkit.org/show_bug.cgi?id=47304
- * wtf/TypeTraits.h:
- * wtf/TypeTraits.cpp:
- Add RemoveReference type trait.
- 2010-10-06 Rafael Antognolli <antognolli@profusion.mobi>
- Unreviewed build fix.
- [EFL] Build fix for glib support.
- https://bugs.webkit.org/show_bug.cgi?id=47221
- If compiling with GLib support enabled, we also need to link wtf against
- glib library.
- * wtf/CMakeListsEfl.txt:
- 2010-10-05 Kwang Yul Seo <skyul@company100.net>
- Reviewed by Gavin Barraclough.
- [BREWMP] Port ExecutableAllocator::cacheFlush to enable ARM JIT
- https://bugs.webkit.org/show_bug.cgi?id=47117
- Use IMemCache1 to flush data cache and invalidate instruction cache.
- * jit/ExecutableAllocator.h:
- (JSC::ExecutableAllocator::cacheFlush):
- 2010-10-05 Leandro Pereira <leandro@profusion.mobi>
- Unreviewed. Build fix.
- Moved "jsc" directory to "shell", so that the name does not clash with the
- JavaScriptCore shell in some build systems.
- http://webkit.org/b/47049
- * CMakeLists.txt: Changed reference from "jsc" to "shell".
- * jsc: Removed.
- * jsc/CMakeLists.txt: Removed.
- * jsc/CMakeListsEfl.txt: Removed.
- * shell: Copied from JavaScriptCore/jsc.
- 2010-10-05 Kwang Yul Seo <skyul@company100.net>
- Reviewed by Kent Tamura.
- [BREWMP] Use PlatformRefPtr in randomNumber
- https://bugs.webkit.org/show_bug.cgi?id=46989
- Use PlatformRefPtr to free memory automatically.
- * wtf/RandomNumber.cpp:
- (WTF::randomNumber):
- 2010-10-05 Oliver Hunt <oliver@apple.com>
- Reviewed by Darin Adler.
- REGRESSION(r68338): JavaScript error on PowerPC only (crashes on Interpreter built for x86_64)
- https://bugs.webkit.org/show_bug.cgi?id=46690
- Use the correct register value when initialising the arguments
- object in the interpreter. This is covered by existing tests.
- * interpreter/Interpreter.cpp:
- (JSC::Interpreter::privateExecute):
- 2010-10-04 David Goodwin <david_goodwin@apple.com>
- Reviewed by Oliver Hunt.
- ARMv7 JIT should take advantage of 2-byte branches to reduce code size
- https://bugs.webkit.org/show_bug.cgi?id=47007
- * assembler/ARMv7Assembler.cpp:
- * assembler/ARMv7Assembler.h:
- (JSC::ARMv7Assembler::computeJumpType):
- (JSC::ARMv7Assembler::link):
- (JSC::ARMv7Assembler::canBeJumpT2):
- (JSC::ARMv7Assembler::canBeJumpT4):
- (JSC::ARMv7Assembler::linkBX):
- (JSC::ARMv7Assembler::linkJumpT4):
- (JSC::ARMv7Assembler::linkJumpT2):
- (JSC::ARMv7Assembler::linkJumpAbsolute):
- 2010-10-04 Gyuyoung Kim <gyuyoung.kim@samsung.com>
- Reviewed by Antonio Gomes.
- [EFL] Use fast malloc for WebKit EFL
- https://bugs.webkit.org/show_bug.cgi?id=46691
- Use fast malloc for WebKit EFL because the fast malloc is to allocate
- memory quickly.
- * wtf/CMakeListsEfl.txt:
- 2010-10-04 Oliver Hunt <oliver@apple.com>
- Reviewed by Geoff Garen.
- Lazily create activation objects
- https://bugs.webkit.org/show_bug.cgi?id=47107
- Make it possible to lazily create the activation object
- for a function that needs one. This allows us to reduce
- the overhead of entering a function that may require
- an activation in some cases, but not always.
- This does make exception handling a little more complex as
- it's now necessary to verify that a callframes activation
- has been created, and create it if not, in all of the
- paths used in exception handling.
- We also need to add logic to check for the existence of
- the activation in the scoped_var opcodes, as well as
- op_ret, op_ret_object_or_this and op_tearoff_activation
- so that we can avoid creating an activation unnecesarily
- on function exit.
- * bytecode/CodeBlock.cpp:
- (JSC::CodeBlock::dump):
- (JSC::CodeBlock::reparseForExceptionInfoIfNecessary):
- (JSC::CodeBlock::createActivation):
- * bytecode/CodeBlock.h:
- (JSC::CodeBlock::setActivationRegister):
- (JSC::CodeBlock::activationRegister):
- * bytecode/Opcode.h:
- * bytecompiler/BytecodeGenerator.cpp:
- (JSC::BytecodeGenerator::BytecodeGenerator):
- (JSC::BytecodeGenerator::emitNewFunctionInternal):
- (JSC::BytecodeGenerator::emitNewFunctionExpression):
- (JSC::BytecodeGenerator::createActivationIfNecessary):
- * bytecompiler/BytecodeGenerator.h:
- * interpreter/Interpreter.cpp:
- (JSC::Interpreter::resolveSkip):
- (JSC::Interpreter::resolveGlobalDynamic):
- (JSC::Interpreter::resolveBase):
- (JSC::Interpreter::unwindCallFrame):
- (JSC::Interpreter::throwException):
- (JSC::Interpreter::privateExecute):
- * jit/JIT.cpp:
- (JSC::JIT::privateCompileMainPass):
- * jit/JIT.h:
- * jit/JITCall32_64.cpp:
- (JSC::JIT::emit_op_ret):
- (JSC::JIT::emit_op_ret_object_or_this):
- * jit/JITOpcodes.cpp:
- (JSC::JIT::emit_op_end):
- (JSC::JIT::emit_op_get_scoped_var):
- (JSC::JIT::emit_op_put_scoped_var):
- (JSC::JIT::emit_op_tear_off_activation):
- (JSC::JIT::emit_op_ret):
- (JSC::JIT::emit_op_ret_object_or_this):
- (JSC::JIT::emit_op_create_activation):
- (JSC::JIT::emit_op_resolve_global_dynamic):
- * jit/JITOpcodes32_64.cpp:
- (JSC::JIT::emit_op_get_scoped_var):
- (JSC::JIT::emit_op_put_scoped_var):
- (JSC::JIT::emit_op_tear_off_activation):
- (JSC::JIT::emit_op_create_activation):
- * jit/JITStubs.cpp:
- (JSC::DEFINE_STUB_FUNCTION):
- 2010-10-04 Adam Barth <abarth@webkit.org>
- Reviewed by Sam Weinig.
- Remove ENABLE_SANDBOX
- https://bugs.webkit.org/show_bug.cgi?id=47032
- * Configurations/FeatureDefines.xcconfig:
- 2010-10-01 Pratik Solanki <psolanki@apple.com>
- Reviewed by Geoffrey Garen.
- Specify ALWAYS_INLINE at function declaration not function definition
- https://bugs.webkit.org/show_bug.cgi?id=46960
- For functions defined with ALWAYS_INLINE, add the attribute to the declaration as well.
- * bytecompiler/BytecodeGenerator.h:
- * wtf/FastMalloc.cpp:
- 2010-10-01 Kwang Yul Seo <skyul@company100.net>
- Unreviewed.
- [BREWMP] Change Collector BLOCK_SIZE to 64KB
- https://bugs.webkit.org/show_bug.cgi?id=46436
- Lower BLOCK_SIZE to 64KB because Brew MP runs on low end devices.
- * runtime/Collector.h:
- 2010-10-01 Viatcheslav Ostapenko <ostapenko.viatcheslav@nokia.com>
- Reviewed by Andreas Kling.
- [Qt] Stack overflow on symbian platform.
- https://bugs.webkit.org/show_bug.cgi?id=40598
-
- Move big allocation in arrayProtoFuncToString from stack to heap.
- JSC::arrayProtoFuncToString function can be called recursivly and
- 1K allocation on stack cahse stack overflow.
- Can be useful for other platforms with limited stack size.
- * runtime/ArrayPrototype.cpp:
- (JSC::arrayProtoFuncToString):
- 2010-09-30 Kwang Yul Seo <skyul@company100.net>
- Reviewed by Kent Tamura.
- [BREWMP] Add a factory function which returns an instance wrapped in PlatformRefPtr.
- https://bugs.webkit.org/show_bug.cgi?id=46373
- A Brew MP instance has reference count 1 when it is created, so call adoptPlatformRef
- to wrap the instance in PlatformRefPtr.
- * wtf/brew/ShellBrew.h:
- (WTF::createRefPtrInstance):
- 2010-09-30 Kwang Yul Seo <skyul@company100.net>
- Reviewed by Kent Tamura.
- [BREWMP] Port PlatformRefPtr
- https://bugs.webkit.org/show_bug.cgi?id=46370
- Implement refPlatformPtr and derefPlatformPtr to use PlatformRefPtr in Brew MP.
- * wtf/brew/RefPtrBrew.h: Added.
- (WTF::refPlatformPtr):
- (WTF::derefPlatformPtr):
- 2010-09-29 Sam Weinig <sam@webkit.org>
- Reviewed by Darin Adler.
- Add additional checks to StringBuffer.
- <rdar://problem/7756381>
- * wtf/text/StringBuffer.h:
- (WTF::StringBuffer::StringBuffer):
- (WTF::StringBuffer::resize):
- 2010-09-30 Chris Marrin <cmarrin@apple.com>
- Reviewed by Simon Fraser.
- Make 2D accelerated canvas rendering build on Mac
- https://bugs.webkit.org/show_bug.cgi?id=46007
-
- Added ACCELERATED_2D_CANVAS to FeatureDefines
- * Configurations/FeatureDefines.xcconfig:
- 2010-09-30 Kevin Ollivier <kevino@theolliviers.com>
- [wx] wxMSW build fix. Make sure we copy the compiler flags and remove exception handling from
- the copy so as not to alter global settings.
- * wscript:
- 2010-09-30 Peter Varga <pvarga@inf.u-szeged.hu>
- Reviewed by Gavin Barraclough.
- The case-insensitivity backreference checking isn't working with YARR
- Interpreter
- https://bugs.webkit.org/show_bug.cgi?id=46882
- Add ignorecase checking to the Interpreter::tryConsumeBackReference() function.
- * yarr/RegexInterpreter.cpp:
- (JSC::Yarr::Interpreter::tryConsumeBackReference):
- 2010-09-30 Kwang Yul Seo <skyul@company100.net>
- Reviewed by Andreas Kling.
- [BREWMP] Leave initializeRandomNumberGenerator empty.
- https://bugs.webkit.org/show_bug.cgi?id=46851
- On Brew MP, AEECLSID_RANDOM initializes itself.
- * wtf/RandomNumberSeed.h:
- (WTF::initializeRandomNumberGenerator):
- 2010-09-30 Gabor Loki <loki@webkit.org>
- Reviewed by Csaba Osztrogonác.
- Remove unnecessary cacheFlush calls from Thumb-2
- https://bugs.webkit.org/show_bug.cgi?id=46702
- * assembler/ARMv7Assembler.h:
- (JSC::ARMv7Assembler::relinkCall):
- (JSC::ARMv7Assembler::repatchInt32):
- (JSC::ARMv7Assembler::repatchPointer):
- 2010-09-29 Patrick Gansterer <paroga@webkit.org>
- Unreviewed.
- Next try to fix cygwin build.
- * wtf/Assertions.cpp:
- 2010-09-29 Patrick Gansterer <paroga@webkit.org>
- Unreviewed.
- Build fix for cygwin #2. It's OS(WINDOWS), not OS(WIN).
- * wtf/Assertions.cpp:
- 2010-09-29 Patrick Gansterer <paroga@webkit.org>
- Unreviewed.
- Build fix for cygwin.
- * wtf/Assertions.cpp:
- 2010-09-29 Patrick Gansterer <paroga@webkit.org>
- Reviewed by Andreas Kling.
- [WINCE] Buildfix for Assertions.cpp after r68511.
- https://bugs.webkit.org/show_bug.cgi?id=46807
- Some, but not all WinCE environments have support for IsDebuggerPresent().
- Add HAVE(ISDEBUGGERPRESENT) to make this a build option.
- HAVE(ISDEBUGGERPRESENT) will be 1 for all OS(WIN) by default.
- * wtf/Assertions.cpp:
- * wtf/Platform.h:
- 2010-09-29 Peter Varga <pvarga@inf.u-szeged.hu>
- Reviewed by Csaba Osztrogonác.
- JSC compile fails on 32bit platform when Regexp Tracing is enabled
- https://bugs.webkit.org/show_bug.cgi?id=46713
- Fix the cast of pointer in regexp tracing to avoid the warning.
- * runtime/RegExp.cpp:
- (JSC::RegExp::match):
- 2010-09-28 Anders Carlsson <andersca@apple.com>
- Reviewed by Sam Weinig.
- Begin hooking up painting in the plug-in process
- https://bugs.webkit.org/show_bug.cgi?id=46766
- * JavaScriptCore.exp:
- Add tryFastRealloc, used by WebKit2.
- 2010-09-28 Philippe Normand <pnormand@igalia.com>
- Reviewed by Martin Robinson.
- Guard GRefPtr/GOwnPtr files with ENABLE(GLIB_SUPPORT)
- https://bugs.webkit.org/show_bug.cgi?id=46721
- Enable GOwnPtr/GRefPtr build only if glib support has been
- explicitly enabled using the WTF_ENABLE_GLIB_SUPPORT macro.
- * wtf/gobject/GOwnPtr.cpp:
- * wtf/gobject/GOwnPtr.h:
- * wtf/gobject/GRefPtr.cpp:
- * wtf/gobject/GRefPtr.h:
- 2010-09-28 İsmail Dönmez <ismail@namtrac.org>
- Reviewed by Andreas Kling.
- Test for WINCE instead of WINCEBASIC, compiler always defines WINCE.
- Remove reference to unexisting path JavaScriptCore/os-wince.
- * JavaScriptCore.pri:
- * wtf/Assertions.cpp:
- 2010-09-27 Michael Saboff <msaboff@apple.com>
- Reviewed by Geoffrey Garen.
- Changed the initialization of JSArray objects to have space for
- 3 elements for the constructor that takes a ArgList argument.
- This improves v8-deltablue performance by about 2.8% by reducing
- the number of realloc() calls.
- https://bugs.webkit.org/show_bug.cgi?id=46664
- * runtime/JSArray.cpp:
- (JSC::JSArray::JSArray):
- 2010-09-27 Gavin Barraclough <barraclough@apple.com>
- Reviewed by Darin Adler.
- Bug 46680 - Inlining string concatenation can regress interpreter performance
- <rdar://problem/8362752> REGRESSION: ~6.4% sunspider regression in interpreter
- Do not inline calls to string concatenation in the interpret loop.
- * interpreter/Interpreter.cpp:
- (JSC::concatenateStrings):
- (JSC::Interpreter::privateExecute):
- 2010-09-27 Anders Carlsson <andersca@apple.com>
- Fix thinko.
- * runtime/JSCell.h:
- 2010-09-27 Anders Carlsson <andersca@apple.com>
- Reviewed by Adam Roben.
- Try to fix Windows build.
- * runtime/JSCell.h:
- (JSC::MSVCBugWorkaround::MSVCBugWorkaround):
- (JSC::MSVCBugWorkaround::~MSVCBugWorkaround):
- 2010-09-27 Erik Arvidsson <arv@chromium.org>
- Reviewed by Darin Adler.
- Add operator == for AtomicString and Vector<Uchar>
- https://bugs.webkit.org/show_bug.cgi?id=46509
- * JavaScriptCore.exp:
- * wtf/text/AtomicString.cpp:
- (WTF::operator==):
- * wtf/text/AtomicString.h:
- (WTF::operator==):
- (WTF::operator!=):
- 2010-09-27 Anders Carlsson <andersca@apple.com>
- Try to fix the Windows build.
- * wtf/Noncopyable.h:
- 2010-09-26 Anders Carlsson <andersca@apple.com>
- Reviewed by Alexey Proskuryakov and Adam Barth.
- Add WTF_MAKE_NONCOPYABLE macro
- https://bugs.webkit.org/show_bug.cgi?id=46589
- Going forward, we'd like to get rid of the Noncopyable and FastAllocBase classes. The
- reason for this is that the Itanium C++ ABI states that no empty classes of the same type
- can be laid out at the same offset in the class. This can result in objects getting larger
- which leads to memory regressions. (One example of this is the String class which grew by
- sizeof(void*) when both its base class and its first member variable inherited indirectly
- from FastAllocBase).
- * wtf/Noncopyable.h:
- Add a WTF_MAKE_NONCOPYABLE macro and get rid of NoncopyableCustomAllocated.
-
- * runtime/JSCell.h:
- * wtf/RefCounted.h:
- Don't inherit from NoncopyableCustomAllocated. Instead, use WTF_MAKE_NONCOPYABLE.
- 2010-09-27 Philippe Normand <pnormand@igalia.com>
- Reviewed by Martin Robinson.
- [GTK] use ENABLE(GLIB_SUPPORT)
- https://bugs.webkit.org/show_bug.cgi?id=46630
- * wtf/Platform.h: Include GTypedefs.h only if glib support
- is explicitly enabled.
- 2010-09-25 Holger Hans Peter Freyther <holger@moiji-mobile.com>
- Reviewed by Adam Barth.
- jsc: Document the strcat opcode.
- https://bugs.webkit.org/show_bug.cgi?id=46571
- * interpreter/Interpreter.cpp:
- (JSC::Interpreter::privateExecute):
- 2010-09-21 Holger Hans Peter Freyther <holger@moiji-mobile.com>
- Reviewed by Adam Barth.
- make-bytecode-docs.pl: Add a comment to the generated HTML
- https://bugs.webkit.org/show_bug.cgi?id=46570
- Generate an HTML Comment that this file was generated from
- Interpreter.cpp with the make-bytecode-docs.pl script.
- * docs/make-bytecode-docs.pl:
- 2010-09-27 Patrick Gansterer <paroga@webkit.org>
- Reviewed by Adam Barth.
- Remove WTF::stringHash functions
- https://bugs.webkit.org/show_bug.cgi?id=46520
- Since r68289 the stringHash functions are only wrappers around StringHasher::createHash.
- So use StringHasher::createHash directly and remove stringHash.
- * wtf/StringHashFunctions.h:
- * wtf/text/StringImpl.h:
- (WTF::StringImpl::computeHash): Use WTF::StringHasher::createHash directly.
- 2010-09-26 Patrick Gansterer <paroga@webkit.org>
- Reviewed by Adam Barth.
- Add WTF::StringHasher::createBlobHash
- https://bugs.webkit.org/show_bug.cgi?id=46514
- Add this function for hashing FormElementKey and QualifiedNameComponents.
- * wtf/StringHashFunctions.h:
- (WTF::StringHasher::createBlobHash):
- 2010-09-26 Patrick Gansterer <paroga@webkit.org>
- Reviewed by Adam Barth.
- REGRESSION (r68289): Assertion failure in StringHasher::addCharacter() (ch != invalidCharacterValue)
- running websocket/tests/bad-sub-protocol-non-ascii.html
- https://bugs.webkit.org/show_bug.cgi?id=46553
- Because we use StringHasher for binary data too, so the check for invalid unicode input is wrong.
- Add an additional member variable to indicate if we have an pending character
- instead of only using an invalid character for this purpose.
- * wtf/StringHashFunctions.h:
- (WTF::StringHasher::StringHasher):
- (WTF::StringHasher::addCharacters):
- (WTF::StringHasher::addCharacter):
- (WTF::StringHasher::hash):
- 2010-09-26 Mark Hahnenberg <mhahnenb@gmail.com>
- Reviewed by Oliver Hunt.
- valueOf called in wrong order in atan2 and date constructors.
- https://bugs.webkit.org/show_bug.cgi?id=26978
- Fixed the bug where the arguments to atan2 were being evaluated
- out of order.
- * runtime/MathObject.cpp:
- (JSC::mathProtoFuncATan2):
- 2010-09-26 Mark Hahnenberg <mhahnenb@gmail.com>
- Reviewed by Oliver Hunt.
- valueOf called in wrong order in atan2 and date constructors.
- https://bugs.webkit.org/show_bug.cgi?id=26978
- Fixed the issue where the parameters to the Date constructor
- were being evaluated to numbers more than once.
- * runtime/DateConstructor.cpp:
- (JSC::constructDate):
- (JSC::dateUTC):
- 2010-09-25 Oliver Hunt <oliver@apple.com>
- Fix various builds
- Relearning the lesson that last minute changes are bad.
- * bytecode/CodeBlock.cpp:
- (JSC::CodeBlock::dump):
- * bytecompiler/BytecodeGenerator.cpp:
- (JSC::BytecodeGenerator::emitGetArgumentsLength):
- * jit/JITOpcodes.cpp:
- (JSC::JIT::emitSlow_op_get_argument_by_val):
- 2010-09-25 Oliver Hunt <oliver@apple.com>
- Reviewed by Cameron Zwarich.
- Avoid constructing arguments object when accessing length and index properties
- https://bugs.webkit.org/show_bug.cgi?id=46572
- Add opcodes to read argument length and properties, and then implement them.
- Much like other lazy opcodes these opcodes take a fast path when the arguments
- object has not been instantiated, and fall back on generic access mechanisms
- if they are acting on an instantiated object.
- 3% win on v8-earleyboyer, no change elsewhere.
- * bytecode/CodeBlock.cpp:
- (JSC::CodeBlock::dump):
- * bytecode/Opcode.h:
- * bytecompiler/BytecodeGenerator.cpp:
- (JSC::BytecodeGenerator::emitGetArgumentsLength):
- (JSC::BytecodeGenerator::emitGetArgumentByVal):
- * bytecompiler/BytecodeGenerator.h:
- * bytecompiler/NodesCodegen.cpp:
- (JSC::BracketAccessorNode::emitBytecode):
- (JSC::DotAccessorNode::emitBytecode):
- * interpreter/Interpreter.cpp:
- (JSC::Interpreter::privateExecute):
- * jit/JIT.cpp:
- (JSC::JIT::privateCompileMainPass):
- (JSC::JIT::privateCompileSlowCases):
- * jit/JIT.h:
- * jit/JITOpcodes.cpp:
- (JSC::JIT::emit_op_get_arguments_length):
- (JSC::JIT::emitSlow_op_get_arguments_length):
- (JSC::JIT::emit_op_get_argument_by_val):
- (JSC::JIT::emitSlow_op_get_argument_by_val):
- * jit/JITOpcodes32_64.cpp:
- (JSC::JIT::emit_op_get_arguments_length):
- (JSC::JIT::emitSlow_op_get_arguments_length):
- (JSC::JIT::emit_op_get_argument_by_val):
- (JSC::JIT::emitSlow_op_get_argument_by_val):
- 2010-09-25 Patrick Gansterer <paroga@webkit.org>
- Unreviewed.
- Fix typo in StringHasher class
- https://bugs.webkit.org/show_bug.cgi?id=45970
- * wtf/StringHashFunctions.h:
- (WTF::StringHasher::createHash):
- 2010-09-24 Patrick Gansterer <paroga@paroga.com>
- Reviewed by Gavin Barraclough.
- Add WTF::StringHasher
- https://bugs.webkit.org/show_bug.cgi?id=45970
- StringHasher is a class for calculation stringHash out of character string.
- This class will unify the different usages of the same algorithm.
- * wtf/StringHashFunctions.h:
- (WTF::StringHasher::StringHasher):
- (WTF::StringHasher::addCharacters):
- (WTF::StringHasher::addCharacter):
- (WTF::StringHasher::hash):
- (WTF::StringHasher::createHash):
- (WTF::StringHasher::defaultCoverter):
- (WTF::StringHasher::addCharactersToHash):
- (WTF::stringHash):
- 2010-09-24 Oliver Hunt <oliver@apple.com>
- Reviewed by Geoffrey Garen.
- Variable declarations inside a catch scope don't get propogated to the parent scope
- https://bugs.webkit.org/show_bug.cgi?id=46501
- Add logic to make variable declaration look for a scope for the
- new variable. This allows us to create a scope (eg. for catch)
- and then seal it, so that additional variable declarations
- contained are propogated to the correct target. Strangely this
- comes out as a performance win, but I think it's mostly cache
- effects.
- * parser/JSParser.cpp:
- (JSC::JSParser::Scope::Scope):
- (JSC::JSParser::Scope::preventNewDecls):
- (JSC::JSParser::Scope::allowsNewDecls):
- (JSC::JSParser::declareVariable):
- (JSC::JSParser::parseVarDeclarationList):
- (JSC::JSParser::parseConstDeclarationList):
- (JSC::JSParser::parseTryStatement):
- (JSC::JSParser::parseFormalParameters):
- (JSC::JSParser::parseFunctionDeclaration):
- 2010-09-24 İsmail Dönmez <ismail@namtrac.org>
- Reviewed by Csaba Osztrogonác.
- Add a Windows compatible inttypes.h header to fix WinCE build.
- https://bugs.webkit.org/show_bug.cgi?id=46463
- * os-win32/inttypes.h: Added.
- 2010-09-24 Oliver Hunt <oliver@apple.com>
- Reviewed by Gavin Barraclough.
- REGRESSION(r68223): It broke 2-3 tests on bots (Requested by Ossy on #webkit).
- https://bugs.webkit.org/show_bug.cgi?id=46448
- Roll this back in, with additional logic to prevent us from delaying construction
- of functions named "arguments"
- * bytecode/CodeBlock.cpp:
- (JSC::CodeBlock::dump):
- * bytecode/Opcode.h:
- * bytecompiler/BytecodeGenerator.cpp:
- (JSC::BytecodeGenerator::BytecodeGenerator):
- (JSC::BytecodeGenerator::emitInitLazyRegister):
- (JSC::BytecodeGenerator::registerFor):
- (JSC::BytecodeGenerator::createLazyRegisterIfNecessary):
- (JSC::BytecodeGenerator::constRegisterFor):
- (JSC::BytecodeGenerator::emitNewFunction):
- (JSC::BytecodeGenerator::emitLazyNewFunction):
- (JSC::BytecodeGenerator::emitNewFunctionInternal):
- * bytecompiler/BytecodeGenerator.h:
- * interpreter/Interpreter.cpp:
- (JSC::Interpreter::privateExecute):
- * jit/JIT.cpp:
- (JSC::JIT::privateCompileMainPass):
- * jit/JIT.h:
- * jit/JITOpcodes.cpp:
- (JSC::JIT::emit_op_init_lazy_reg):
- (JSC::JIT::emit_op_new_func):
- * jit/JITOpcodes32_64.cpp:
- (JSC::JIT::emit_op_init_lazy_reg):
- * parser/Nodes.h:
- (JSC::ScopeNode::needsActivationForMoreThanVariables):
- 2010-09-23 Sheriff Bot <webkit.review.bot@gmail.com>
- Unreviewed, rolling out r68223.
- http://trac.webkit.org/changeset/68223
- https://bugs.webkit.org/show_bug.cgi?id=46448
- It broke 2-3 tests on bots (Requested by Ossy on #webkit).
- * bytecode/CodeBlock.cpp:
- (JSC::CodeBlock::dump):
- * bytecode/Opcode.h:
- * bytecompiler/BytecodeGenerator.cpp:
- (JSC::BytecodeGenerator::BytecodeGenerator):
- (JSC::BytecodeGenerator::registerFor):
- (JSC::BytecodeGenerator::constRegisterFor):
- (JSC::BytecodeGenerator::emitNewFunction):
- * bytecompiler/BytecodeGenerator.h:
- * interpreter/Interpreter.cpp:
- (JSC::Interpreter::privateExecute):
- * jit/JIT.cpp:
- (JSC::JIT::privateCompileMainPass):
- * jit/JIT.h:
- * jit/JITOpcodes.cpp:
- (JSC::JIT::emit_op_new_func):
- (JSC::JIT::emit_op_init_arguments):
- * jit/JITOpcodes32_64.cpp:
- (JSC::JIT::emit_op_new_func):
- (JSC::JIT::emit_op_init_arguments):
- * parser/Nodes.h:
- 2010-09-23 Oliver Hunt <oliver@apple.com>
- Reviewed by Geoffrey Garen.
- Delay construction of functions that aren't captured
- https://bugs.webkit.org/show_bug.cgi?id=46433
- If a function isn't captured by an activation there's no
- way it can be accessed indirectly, so we can delay the
- construction until it's used (similar to what we do with
- arguments). We rename the existing op_init_arguments to
- op_init_lazy_reg and removed its implicit handling of
- the anonymous argument register, and make op_new_function
- take a parameter to indicate whether it should null check
- the target slot before creating the function object.
- * bytecode/CodeBlock.cpp:
- (JSC::CodeBlock::dump):
- * bytecode/Opcode.h:
- * bytecompiler/BytecodeGenerator.cpp:
- (JSC::BytecodeGenerator::BytecodeGenerator):
- (JSC::BytecodeGenerator::emitInitLazyRegister):
- (JSC::BytecodeGenerator::registerFor):
- (JSC::BytecodeGenerator::createLazyRegisterIfNecessary):
- (JSC::BytecodeGenerator::constRegisterFor):
- (JSC::BytecodeGenerator::emitNewFunction):
- (JSC::BytecodeGenerator::emitLazyNewFunction):
- (JSC::BytecodeGenerator::emitNewFunctionInternal):
- * bytecompiler/BytecodeGenerator.h:
- * interpreter/Interpreter.cpp:
- (JSC::Interpreter::privateExecute):
- * jit/JIT.cpp:
- (JSC::JIT::privateCompileMainPass):
- * jit/JIT.h:
- * jit/JITOpcodes.cpp:
- (JSC::JIT::emit_op_init_lazy_reg):
- (JSC::JIT::emit_op_new_func):
- * jit/JITOpcodes32_64.cpp:
- (JSC::JIT::emit_op_init_lazy_reg):
- * parser/Nodes.h:
- (JSC::ScopeNode::needsActivationForMoreThanVariables):
- 2010-09-23 David Kilzer <ddkilzer@apple.com>
- <rdar://problem/8460731> ~9.9% speedup when compiling interpreter with llvm-gcc-4.2
- https://bugs.webkit.org/show_bug.cgi?id=46423
- Reviewed by Oliver Hunt.
- * interpreter/Interpreter.cpp:
- (JSC::Interpreter::privateExecute): Disable the gcc computed
- goto hacks added in r55564 when compiling with llvm-gcc-4.2.
- 2010-09-23 Lucas De Marchi <lucas.demarchi@profusion.mobi>
- Reviewed by Darin Adler.
- Fix usage of enum as if it was a define
- https://bugs.webkit.org/show_bug.cgi?id=46355
- pthread.h defines PTHREAD_MUTEX_DEFAULT and PTHREAD_MUTEX_NORMAL as an
- enum. Hence, it cannot be used by the preprocessor which always
- evaluates that condition as true. This was giving a warning when
- compiling with gcc and "-Wundef" flag.
- The second path, when PTHREAD_MUTEX_DEFAULT is not the same of
- PTHREAD_MUTEX_NORMAL, is not slow. So, let's eliminate the first path
- and get rid of that #if.
- * wtf/ThreadingPthreads.cpp: Always call pthread_mutexattr_init() to
- set mutex type to PTHREAD_MUTEX_NORMAL.
- (WTF::Mutex::Mutex):
- 2010-09-23 Michael Saboff <msaboff@apple.com>
- Reviewed by Geoffrey Garen.
- Removed extraneous truncation of ovector on entry and error exit.
- Changed the initialization to -1 of vector to only initialize
- the start indecies, which is sufficient for the pattern/subpatterns.
- Changed the JIT code to not clear the end index for subpatterns
- as it isn't needed. These changes are worth ~2.7% on v8-regexp.
- https://bugs.webkit.org/show_bug.cgi?id=46404
- * runtime/RegExp.cpp:
- (JSC::RegExp::match):
- * yarr/RegexJIT.cpp:
- (JSC::Yarr::RegexGenerator::generateParenthesesSingle):
- 2010-09-22 Oliver Hunt <oliver@apple.com>
- Reviewed by Geoff Garen.
- Only copy captured variables into activation
- https://bugs.webkit.org/show_bug.cgi?id=46330
- We now track free variable information which means that
- we no longer need to copy every variable defined in a
- function. With this patch activations only retain those
- variables needed for correctness. In order to interact
- safely with the inspector this means that JSActivation
- now provides its own lookup functions so it can avoid
- trying to read or write to variables that have been
- optimised out.
- * bytecode/CodeBlock.h:
- * bytecompiler/BytecodeGenerator.cpp:
- (JSC::BytecodeGenerator::BytecodeGenerator):
- * parser/Nodes.h:
- (JSC::ScopeNode::capturedVariableCount):
- (JSC::ScopeNode::captures):
- * runtime/Arguments.h:
- (JSC::JSActivation::copyRegisters):
- * runtime/Executable.cpp:
- (JSC::FunctionExecutable::FunctionExecutable):
- (JSC::FunctionExecutable::compileForCallInternal):
- (JSC::FunctionExecutable::compileForConstructInternal):
- * runtime/Executable.h:
- (JSC::FunctionExecutable::capturedVariableCount):
- * runtime/JSActivation.cpp:
- (JSC::JSActivation::markChildren):
- (JSC::JSActivation::symbolTableGet):
- (JSC::JSActivation::symbolTablePut):
- (JSC::JSActivation::getOwnPropertyNames):
- (JSC::JSActivation::symbolTablePutWithAttributes):
- * runtime/JSActivation.h:
- 2010-09-23 Ismail Donmez <ismail@namtrac.org>
- Reviewed by Andreas Kling.
- Fix jsc.exe build for Windows CE
- * jsc.pro: Add mmtimer.lib for Windows CE.
- 2010-09-23 Ismail Donmez <ismail@namtrac.org>
- Unreviewed.
- JIT should be disabled on Windows CE. Broken in r64176.
- * wtf/Platform.h:
- 2010-09-23 Peter Varga <pvarga@inf.u-szeged.hu>
- Reviewed by Gavin Barraclough.
- Reduce the number of BOL checks in YARR Interpreter
- https://bugs.webkit.org/show_bug.cgi?id=46260
- Extend the YARR Interpreter with an optimization which reduces the number of
- BOL assertion checks. If a "TypeBodyAlternative" byteTerm is followed by a
- "TypeAssertionBOL" byteTerm it will be checked just one time.
- * yarr/RegexInterpreter.cpp:
- (JSC::Yarr::Interpreter::matchDisjunction):
- (JSC::Yarr::ByteCompiler::compile):
- (JSC::Yarr::ByteCompiler::regexBegin):
- (JSC::Yarr::ByteCompiler::alternativeBodyDisjunction):
- (JSC::Yarr::ByteCompiler::emitDisjunction):
- * yarr/RegexInterpreter.h:
- (JSC::Yarr::ByteTerm::BodyAlternativeBegin):
- (JSC::Yarr::ByteTerm::BodyAlternativeDisjunction):
- (JSC::Yarr::ByteTerm::BodyAlternativeEnd):
- (JSC::Yarr::ByteTerm::AlternativeBegin):
- (JSC::Yarr::ByteTerm::AlternativeDisjunction):
- (JSC::Yarr::ByteTerm::AlternativeEnd):
- 2010-09-22 Michael Saboff <msaboff@apple.com>
- Reviewed by Gavin Barraclough.
- Fixed the cross over from alternatives executed once and
- those that loop. This fixed the problem where the index
- was getting messed up for looping alternatives causing an
- infinite loop.
- https://bugs.webkit.org/show_bug.cgi?id=46189
- * yarr/RegexJIT.cpp:
- (JSC::Yarr::RegexGenerator::generateDisjunction):
- 2010-09-22 Steve Falkenburg <sfalken@apple.com>
- Rubber stamped by Jon Honeycutt.
- Allow jsc.exe to be run against unversioned ICU.
- * JavaScriptCore.vcproj/jsc/jscCommon.vsprops:
- 2010-09-22 Kwang Yul Seo <skyul@company100.net>
- Reviewed by Laszlo Gombos.
- Use "typedef wchar_t JSChar" when compiled with RVCT
- https://bugs.webkit.org/show_bug.cgi?id=40651
- Use wchar_t for JSChar and UChar when compiled with RVCT.
- Linux is the exception for this rule.
- * API/JSStringRef.h:
- * wtf/unicode/qt4/UnicodeQt4.h:
- 2010-09-22 Oliver Hunt <oliver@apple.com>
- Reviewed by Gavin Barraclough.
- [INTERPRETER] Two tests fail with SputnikError: #1.1: if argArray is neither an array nor an arguments object (see 10.1.8), a TypeError exception is thrown
- https://bugs.webkit.org/show_bug.cgi?id=44245
- Remove incorrect code from op_load_varargs in the interpreter.
- * interpreter/Interpreter.cpp:
- (JSC::Interpreter::privateExecute):
- 2010-09-22 Oliver Hunt <oliver@apple.com>
- Reviewed by Gavin Barraclough.
- [JIT] fast/js/sputnik/Conformance/15_Native_Objects/15.3_Function/15.3.5/S15.3.5.3_A2_T6.html fails
- https://bugs.webkit.org/show_bug.cgi?id=44246
- JIT code generated for instanceof was not checking to ensure that the prototype property was
- an object, this patch ensures that it does.
- * jit/JITOpcodes.cpp:
- (JSC::JIT::emit_op_instanceof):
- (JSC::JIT::emitSlow_op_instanceof):
- * jit/JITOpcodes32_64.cpp:
- (JSC::JIT::emit_op_instanceof):
- (JSC::JIT::emitSlow_op_instanceof):
- 2010-09-22 Patrick Gansterer <paroga@webkit.org>
- Reviewed by Darin Adler.
- Inline UTF8SequenceLength
- https://bugs.webkit.org/show_bug.cgi?id=45589
- * wtf/unicode/UTF8.cpp:
- (WTF::Unicode::convertUTF8ToUTF16): Use inline version of UTF8SequenceLength to improve performance.
- 2010-09-21 Oliver Hunt <oliver@apple.com>
- RS=Gavin Barraclough.
- Fix codeblock dumping
- * bytecode/CodeBlock.cpp:
- (JSC::CodeBlock::dump):
- * runtime/Executable.h:
- (JSC::ScriptExecutable::ScriptExecutable):
- 2010-09-21 Oliver Hunt <oliver@apple.com>
- Reviewed by Geoffrey Garen.
- Speed up function.apply(..., arguments)
- https://bugs.webkit.org/show_bug.cgi?id=46207
- Add code to do argument copying inline in the case
- where we're using Function.apply to forward our arguments
- directly.
- * jit/JIT.cpp:
- (JSC::JIT::privateCompileSlowCases):
- Splitted op_load_varargs into fast and slow paths, so add the call
- to the slow path generator.
- * jit/JIT.h:
- * jit/JITCall32_64.cpp:
- Remove 32bit specific emit_op_load_varargs as the logic is the
- same for all value representations
- * jit/JITOpcodes.cpp:
- (JSC::JIT::emit_op_load_varargs):
- Copy arguments inline
- (JSC::JIT::emitSlow_op_load_varargs):
- 2010-09-21 Geoffrey Garen <ggaren@apple.com>
- Reviewed by Oliver Hunt.
- <rdar://problem/8363003> REGRESSION: ~1.4% sunspider regression in
- interpreter due to 54724 and 54596
-
- Fixed a typo (using "UNLIKELY" instead of "LIKELY").
-
- * wtf/PassRefPtr.h:
- (WTF::refIfNotNull):
- (WTF::derefIfNotNull): It is likely that m_ptr != 0 because most RefPtrs
- hold real data. Also, in cases where they do not hold real data, the
- compiler usually sees a call to release() right before the call to the
- destructor, so it can probably optimize out the test completely.
- 2010-09-21 Fridrich Strba <fridrich.strba@bluewin.ch>
- Reviewed by Martin Robinson.
- Build issues with Windows versions of the GTK+ port
- https://bugs.webkit.org/show_bug.cgi?id=45844
- Link with winmm.dll when necessary and specify the executable extension
- explicitely so that the Programs/jsc-@WEBKITGTK_API_MAJOR_VERSION@
- rule actually works.
- Don't try to build the ThreadSpecificWin.cpp since GTK+ port uses
- a section in ThreadSpecific.cpp
- * GNUmakefile.am:
- 2010-09-21 Martin Robinson <mrobinson@igalia.com>
- Reviewed by Xan Lopez.
- [GTK] 'make dist' should be fixed in preparation for the next release
- https://bugs.webkit.org/show_bug.cgi?id=46129
- * GNUmakefile.am: Update the sources list to include missing headers.
- 2010-09-21 Dave Tapuska <dtapuska@rim.com>
- Reviewed by Csaba Osztrogonác.
- https://bugs.webkit.org/show_bug.cgi?id=45673
- r65596 caused ENABLE_PROFILER_REFERENCE_OFFSET to not be
- 8 byte aligned. A non 8 byte divisible value for this will
- cause the sp to become non 8 byte aligned.
- Verify and correct offset values that r65596 effected that
- weren't updated.
- * jit/JITStubs.cpp:
- * jit/JITStubs.h:
- 2010-09-21 Xan Lopez <xlopez@igalia.com>
- Reviewed by Martin Robinson.
- Fix Opcode stats compilation
- https://bugs.webkit.org/show_bug.cgi?id=46079
- The FixedArray API had changed, and <stdio.h> was not included for
- printf.
- * bytecode/Opcode.cpp:
- (JSC::OpcodeStats::~OpcodeStats):
- 2010-09-20 Michael Saboff <msaboff@apple.com>
- Reviewed by Gavin Barraclough.
- Fixed detection of alternative smaller than the first alternative
- to only check looping alternatives.
- https://bugs.webkit.org/show_bug.cgi?id=46049
- * yarr/RegexJIT.cpp:
- (JSC::Yarr::RegexGenerator::generateDisjunction):
- 2010-09-20 Peter Varga <pvarga@inf.u-szeged.hu>
- Reviewed by Geoffrey Garen.
- REGRESSION(67790): jsc tests are failed with YARR interpreter
- https://bugs.webkit.org/show_bug.cgi?id=46083
- Fix the initializing of the lastSubpatternId member of
- parentheses.
- * yarr/RegexCompiler.cpp:
- (JSC::Yarr::RegexPatternConstructor::atomParenthesesEnd):
- 2010-09-20 Gavin Barraclough <barraclough@apple.com>
- Reviewed by Oliver Hunt.
- Bug 46077 - ASSERT failure in YARR JIT
- We will currently attempt to loop if there are multiple alternatives, they are all
- BOL predicated, and the last alternative is longer then the first - however if all
- alternatives are BOL predicated the head of loop label will not have been set, and
- we'll try to link a jump to an undefined label. Stop doing so.
- * yarr/RegexJIT.cpp:
- (JSC::Yarr::RegexGenerator::generateDisjunction):
- 2010-09-20 Adam Roben <aroben@apple.com>
- Export RegExpObject::info from JavaScriptCore
- This allows obj->inherits(&RegExpObject::info) to work correctly from
- outside JavaScriptCore.dll on Windows.
- Fixes <http://webkit.org/b/46098>
- fast/loader/stateobjects/pushstate-object-types.html fails on Windows
- Reviewed by John Sullivan.
- * runtime/RegExpObject.h: Added JS_EXPORTDATA to the info member, as
- we already have for some other classes whose info members have to be
- used from outside the DLL.
- 2010-09-19 Gavin Barraclough <barraclough@apple.com>
- Windows build fix pt 2.
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
- 2010-09-19 Gavin Barraclough <barraclough@apple.com>
- Windows build fix pt 1.
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
- 2010-09-19 Gavin Barraclough <barraclough@apple.com>
- Build fix - implicit double-to-int conversion invalid on 32-bit.
- * runtime/DatePrototype.cpp:
- (JSC::fillStructuresUsingDateArgs):
- (JSC::dateProtoFuncSetYear):
- 2010-09-19 Gavin Barraclough <barraclough@apple.com>
- Reviewed by Oliver Hunt.
- Bug 46065 - Unify implementation of ToInt32 and ToUInt32, don't use fmod.
- These methods implement the same conversion (see discussion in the notes
- of sections of 9.5 and 9.6 of the spec), only differing in how the result
- is interpretted.
- Date prototype is incorrectly using toInt32, and this is causing us to
- provide an output value indicating whether the input to ToInt32 was finite
- (the corresponding methods on Date are actually spec'ed to use ToInteger,
- not ToInt32). This patch partially fixes this in order to remove this
- bogus output value, hoewever more work will be require to bring Date
- fully up to spec compliance (the constructor is still performing ToInt32
- conversions).
- * JavaScriptCore.exp:
- * runtime/DatePrototype.cpp:
- (JSC::fillStructuresUsingTimeArgs):
- (JSC::fillStructuresUsingDateArgs):
- (JSC::dateProtoFuncSetYear):
- * runtime/JSValue.cpp:
- (JSC::toInt32):
- * runtime/JSValue.h:
- (JSC::toUInt32):
- (JSC::JSValue::toInt32):
- (JSC::JSValue::toUInt32):
- 2010-09-18 Darin Adler <darin@apple.com>
- First step in fixing Windows build.
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
- Removed incorrect symbol. The build will probably still fail,
- but the failure will tell us what symbol to add.
- 2010-09-18 Michael Saboff <msaboff@apple.com>
- Reviewed by Gavin Barraclough.
- Added code to unroll regular expressions containing ^.
- Alternatives that begin with ^ are tagged during parsing
- and rolled up in containing sub expression structs.
- After parsing, a regular expression flagged as containing
- a ^ (a.k.a. BOL) is processed further in optimizeBOL().
- A copy of the disjunction is made excluding alternatives that
- are rooted with BOL. The original alternatives are flagged
- to only be executed once. The copy of the other alternatives are
- added to the original expression.
- In the case that all original alternatives are flagged, there
- won't be any looping alternatives.
- The JIT generator will emit code accordingly, executing the
- original alternatives once and then looping over the
- alternatives that aren't anchored with a BOL (if any).
- https://bugs.webkit.org/show_bug.cgi?id=45787
- * yarr/RegexCompiler.cpp:
- (JSC::Yarr::RegexPatternConstructor::assertionBOL):
- (JSC::Yarr::RegexPatternConstructor::atomParenthesesEnd):
- (JSC::Yarr::RegexPatternConstructor::copyDisjunction):
- (JSC::Yarr::RegexPatternConstructor::copyTerm):
- (JSC::Yarr::RegexPatternConstructor::optimizeBOL):
- (JSC::Yarr::compileRegex):
- * yarr/RegexJIT.cpp:
- (JSC::Yarr::RegexGenerator::generateDisjunction):
- * yarr/RegexPattern.h:
- (JSC::Yarr::PatternAlternative::PatternAlternative):
- (JSC::Yarr::PatternAlternative::setOnceThrough):
- (JSC::Yarr::PatternAlternative::onceThrough):
- (JSC::Yarr::PatternDisjunction::PatternDisjunction):
- (JSC::Yarr::RegexPattern::RegexPattern):
- (JSC::Yarr::RegexPattern::reset):
- 2010-09-18 Patrick Gansterer <paroga@paroga.com>
- Reviewed by Darin Adler.
- Rename Wince files to WinCE
- https://bugs.webkit.org/show_bug.cgi?id=37287
- * wtf/unicode/Unicode.h:
- * wtf/unicode/wince/UnicodeWinCE.cpp: Copied from JavaScriptCore/wtf/unicode/wince/UnicodeWince.cpp.
- * wtf/unicode/wince/UnicodeWinCE.h: Copied from JavaScriptCore/wtf/unicode/wince/UnicodeWince.h.
- * wtf/unicode/wince/UnicodeWince.cpp: Removed.
- * wtf/unicode/wince/UnicodeWince.h: Removed.
- * wtf/wince/FastMallocWinCE.h: Copied from JavaScriptCore/wtf/wince/FastMallocWince.h.
- * wtf/wince/FastMallocWince.h: Removed.
- 2010-09-18 Ademar de Souza Reis Jr <ademar.reis@openbossa.org>
- Reviewed by Kenneth Rohde Christiansen.
- Enable Platform Strategies on Qt
- [Qt] Turn on PLATFORM_STRATEGIES
- https://bugs.webkit.org/show_bug.cgi?id=45831
- * wtf/Platform.h: Enable Platform Strategies when building QtWebkit
- 2010-09-17 Oliver Hunt <oliver@apple.com>
- Reviewed by Gavin Barraclough.
- Imprecise tracking of variable capture leads to overly pessimistic creation of activations
- https://bugs.webkit.org/show_bug.cgi?id=46020
- The old logic for track free and captured variables would cause us
- to decide we needed an activation in every function along the scope
- chain between a variable capture and its declaration. We now track
- captured variables precisely which requires a bit of additional work
- The most substantial change is that the parsing routine needs to
- be passed the list of function parameters when reparsing a function
- as when reparsing we don't parse the function declaration itself only
- its body.
- * JavaScriptCore.exp:
- * parser/JSParser.cpp:
- (JSC::JSParser::Scope::Scope):
- (JSC::JSParser::Scope::needsFullActivation):
- We need to distinguish between use of a feature that requires
- an activation and eval so we now get this additional flag.
- (JSC::JSParser::Scope::collectFreeVariables):
- (JSC::JSParser::Scope::getCapturedVariables):
- We can't simply return the list of "capturedVariables" now as
- is insufficiently precise, so we compute them instead.
- (JSC::JSParser::popScope):
- (JSC::jsParse):
- (JSC::JSParser::JSParser):
- (JSC::JSParser::parseProgram):
- (JSC::JSParser::parseWithStatement):
- (JSC::JSParser::parseTryStatement):
- (JSC::JSParser::parseFunctionInfo):
- (JSC::JSParser::parseFunctionDeclaration):
- (JSC::JSParser::parseProperty):
- (JSC::JSParser::parseMemberExpression):
- * parser/JSParser.h:
- * parser/Parser.cpp:
- (JSC::Parser::parse):
- * parser/Parser.h:
- (JSC::Parser::parse):
- * runtime/Executable.cpp:
- (JSC::EvalExecutable::compileInternal):
- (JSC::ProgramExecutable::checkSyntax):
- (JSC::ProgramExecutable::compileInternal):
- (JSC::FunctionExecutable::compileForCallInternal):
- (JSC::FunctionExecutable::compileForConstructInternal):
- (JSC::FunctionExecutable::reparseExceptionInfo):
- (JSC::EvalExecutable::reparseExceptionInfo):
- (JSC::FunctionExecutable::fromGlobalCode):
- Pass function parameters (if available) to the parser.
- 2010-09-17 Anders Carlsson <andersca@apple.com>
- Reviewed by Sam Weinig.
- Add IsFloatingPoint and IsArithmetic type traits
- https://bugs.webkit.org/show_bug.cgi?id=46018
- * wtf/TypeTraits.h:
- * wtf/TypeTraits.cpp:
- 2010-09-17 Martin Robinson <mrobinson@igalia.com>
- Reviewed by Oliver Hunt.
- [GTK] FontPlatformDataFreeType should use smart pointers to hold its members
- https://bugs.webkit.org/show_bug.cgi?id=45917
- Added support to PlatformRefPtr for handling HashTableDeletedValue.
- * wtf/PlatformRefPtr.h:
- (WTF::PlatformRefPtr::PlatformRefPtr): Added a constructor that takes HashTableDeletedValue.
- (WTF::PlatformRefPtr::isHashTableDeletedValue): Added.
- 2010-09-16 Oliver Hunt <oliver@apple.com>
- Reviewed by Geoffrey Garen.
- Crash due to timer triggered GC on one heap while another heap is active
- https://bugs.webkit.org/show_bug.cgi?id=45932
- <rdar://problem/8318446>
- The GC timer may trigger for one heap while another heap is active. This
- is safe, but requires us to ensure that we have temporarily associated the
- thread's identifierTable with the heap we're collecting on. Otherwise we
- may end up with the identifier tables in an inconsistent state leading to
- an eventual crash.
- * runtime/Collector.cpp:
- (JSC::Heap::allocate):
- (JSC::Heap::reset):
- (JSC::Heap::collectAllGarbage):
- Add assertions to ensure we have the correct identifierTable active
- while collecting.
- * runtime/GCActivityCallbackCF.cpp:
- (JSC::DefaultGCActivityCallbackPlatformData::trigger):
- Temporarily make the expected IdentifierTable active
- * wtf/WTFThreadData.h:
- (JSC::IdentifierTable::remove):
- Make it possible to see when IdentifierTable::remove has succeeded
- * wtf/text/StringImpl.cpp:
- (WTF::StringImpl::~StringImpl):
- CRASH if an StringImpl is an Identifier but isn't present in the
- active IdentifierTable. If we get to this state something has
- gone wrong and we should just crash immediately.
- 2010-09-16 Martin Robinson <mrobinson@igalia.com>
- Reviewed by Xan Lopez.
- [GTK] Implement dissolveDragImageToFraction
- https://bugs.webkit.org/show_bug.cgi?id=45826
- * wtf/gobject/GTypedefs.h: Added forward declarations for GtkWindow and GdkEventExpose.
- 2010-09-16 Eric Uhrhane <ericu@chromium.org>
- Reviewed by Jian Li.
- Unify FILE_SYSTEM and FILE_WRITER enables under the name FILE_SYSTEM.
- https://bugs.webkit.org/show_bug.cgi?id=45798
- * Configurations/FeatureDefines.xcconfig:
- 2010-09-15 Oliver Hunt <oliver@apple.com>
- Reviewed by Geoffrey Garen.
- Use free variable analysis to improve activation performance
- https://bugs.webkit.org/show_bug.cgi?id=45837
- Adds free and captured variable tracking to the JS parser. This
- allows us to avoid construction of an activation object in some
- cases. Future patches will make more use of this information to
- improve those cases where activations are still needed.
- * parser/ASTBuilder.h:
- * parser/JSParser.cpp:
- (JSC::JSParser::Scope::Scope):
- (JSC::JSParser::Scope::declareVariable):
- (JSC::JSParser::Scope::useVariable):
- (JSC::JSParser::Scope::collectFreeVariables):
- (JSC::JSParser::Scope::capturedVariables):
- (JSC::JSParser::ScopeRef::ScopeRef):
- (JSC::JSParser::ScopeRef::operator->):
- (JSC::JSParser::ScopeRef::index):
- (JSC::JSParser::currentScope):
- (JSC::JSParser::pushScope):
- (JSC::JSParser::popScope):
- (JSC::JSParser::parseProgram):
- (JSC::JSParser::parseVarDeclarationList):
- (JSC::JSParser::parseConstDeclarationList):
- (JSC::JSParser::parseTryStatement):
- (JSC::JSParser::parseFormalParameters):
- (JSC::JSParser::parseFunctionInfo):
- (JSC::JSParser::parseFunctionDeclaration):
- (JSC::JSParser::parsePrimaryExpression):
- * parser/Nodes.cpp:
- (JSC::ScopeNodeData::ScopeNodeData):
- (JSC::ScopeNode::ScopeNode):
- (JSC::ProgramNode::ProgramNode):
- (JSC::ProgramNode::create):
- (JSC::EvalNode::EvalNode):
- (JSC::EvalNode::create):
- (JSC::FunctionBodyNode::FunctionBodyNode):
- (JSC::FunctionBodyNode::create):
- * parser/Nodes.h:
- (JSC::ScopeNode::needsActivation):
- (JSC::ScopeNode::hasCapturedVariables):
- * parser/Parser.cpp:
- (JSC::Parser::didFinishParsing):
- * parser/Parser.h:
- (JSC::Parser::parse):
- * parser/SyntaxChecker.h:
- * runtime/Executable.cpp:
- (JSC::EvalExecutable::compileInternal):
- (JSC::ProgramExecutable::compileInternal):
- (JSC::FunctionExecutable::compileForCallInternal):
- (JSC::FunctionExecutable::compileForConstructInternal):
- * runtime/Executable.h:
- (JSC::ScriptExecutable::needsActivation):
- (JSC::ScriptExecutable::recordParse):
- 2010-09-14 Hyung Song <beergun@company100.net>
- Reviewed by Kent Tamura.
- [BREWMP] Add IMemGroup and IMemSpace to OwnPtr type.
- https://bugs.webkit.org/show_bug.cgi?id=44764
- * wtf/OwnPtrCommon.h:
- * wtf/brew/OwnPtrBrew.cpp:
- (WTF::deleteOwnedPtr):
- 2010-09-14 Darin Adler <darin@apple.com>
- Reviewed by Geoffrey Garen.
- Sort with non-numeric custom sort function fails on array with length but no values
- https://bugs.webkit.org/show_bug.cgi?id=45781
- * runtime/JSArray.cpp:
- (JSC::JSArray::sort): Replaced early exit for an array of length zero to instead
- exit for any array without values, even if it has a non-0 length.
- 2010-09-14 Steve Falkenburg <sfalken@apple.com>
- Windows production build fix.
- Roll out r65143.
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreGenerated.make:
- 2010-09-14 Kwang Yul Seo <skyul@company100.net>
- Reviewed by Darin Adler.
- Share UnicodeMacrosFromICU.h
- https://bugs.webkit.org/show_bug.cgi?id=45710
- glib, qt4 and wince use the same macros from ICU.
- Remove the code duplication and use the same header file.
- * wtf/unicode/UnicodeMacrosFromICU.h: Copied from JavaScriptCore/wtf/unicode/glib/UnicodeMacrosFromICU.h.
- * wtf/unicode/glib/UnicodeMacrosFromICU.h: Removed.
- * wtf/unicode/qt4/UnicodeQt4.h:
- * wtf/unicode/wince/UnicodeWince.h:
- 2010-09-13 Darin Adler <darin@apple.com>
- Reviewed by Adam Barth.
- Preparation for eliminating deprecatedParseURL
- https://bugs.webkit.org/show_bug.cgi?id=45695
- * wtf/text/WTFString.h: Added isAllSpecialCharacters, moved here from
- the HTML tree builder.
- 2010-09-13 Darin Fisher <darin@chromium.org>
- Reviewed by David Levin.
- Add option to conditionally compile smooth scrolling support.
- https://bugs.webkit.org/show_bug.cgi?id=45689
- ENABLE(SMOOTH_SCROLLING) is disabled by default for all platforms.
- * wtf/Platform.h:
- 2010-09-13 Adam Roben <aroben@apple.com>
- Copy JavaScriptCore's generated sources to the right directory
- * JavaScriptCore.vcproj/JavaScriptCore.make: Fixed typo.
- 2010-09-13 Kwang Yul Seo <skyul@company100.net>
- Reviewed by Kent Tamura.
- [BREWMP] Don't call _msize
- https://bugs.webkit.org/show_bug.cgi?id=45556
- Because Brew MP uses its own memory allocator, it is not correct to use
- _msize in fastMallocSize. Add !PLATFORM(BREWMP) guard.
- * wtf/FastMalloc.cpp:
- (WTF::fastMallocSize):
- 2010-09-11 Simon Hausmann <simon.hausmann@nokia.com>
- Reviewed by Andreas Kling.
- [Qt] V8 port: webcore project files changes
- https://bugs.webkit.org/show_bug.cgi?id=45141
- * JavaScriptCore.pro: Moved wtf specific files to wtf.pri,
- so that they can also be used from WebCore.pro for v8 builds.
- * wtf/wtf.pri: Added.
- 2010-09-10 Fridrich Strba <fridrich.strba@bluewin.ch>
- Reviewed by Andreas Kling.
- Add a define missing when building with glib unicode backend
- https://bugs.webkit.org/show_bug.cgi?id=45544
- * wtf/unicode/glib/UnicodeMacrosFromICU.h:
- 2010-09-10 Stephanie Lewis <slewis@apple.com>
- Reviewed by Alexey Proskuryakov.
-
- Refactor JavaScriptCore memory statistics so that WebKit doesn't need to know
- about the JIT and other implementation details of JavaScriptCore. Necessary
- to fix PPC build.
-
- https://bugs.webkit.org/show_bug.cgi?id=45528
- * JavaScriptCore.exp:
- * JavaScriptCore.xcodeproj/project.pbxproj:
- * runtime/MemoryStatistics.cpp: Added.
- (JSC::memoryStatistics):
- * runtime/MemoryStatistics.h: Added.
- 2010-09-09 Michael Saboff <msaboff@apple.com>
- Reviewed by Gavin Barraclough.
- Added a regular expression tracing facility. This tracing is connected
- to jsc. Every compiled regular expression object is added to a list.
- When the process exits, each regular expression dumps its pattern,
- JIT address, number of times it was executed and the number of matches.
- This tracing is controlled by the macro ENABLE_REGEXP_TRACING in
- wtf/Platform.h.
- https://bugs.webkit.org/show_bug.cgi?id=45401
- * JavaScriptCore.exp:
- * jsc.cpp:
- (runWithScripts):
- * runtime/JSGlobalData.cpp:
- (JSC::JSGlobalData::JSGlobalData):
- (JSC::JSGlobalData::~JSGlobalData):
- (JSC::JSGlobalData::addRegExpToTrace):
- (JSC::JSGlobalData::dumpRegExpTrace):
- * runtime/JSGlobalData.h:
- * runtime/RegExp.cpp:
- (JSC::RegExp::RegExp):
- (JSC::RegExp::create):
- (JSC::RegExp::match):
- * runtime/RegExp.h:
- * wtf/Platform.h:
- * yarr/RegexJIT.h:
- (JSC::Yarr::RegexCodeBlock::getAddr):
- 2010-09-09 John Therrell <jtherrell@apple.com>
- 32-bit build fix.
- * jit/ExecutableAllocator.cpp:
- (JSC::ExecutableAllocator::committedByteCount):
- 2010-09-09 John Therrell <jtherrell@apple.com>
- Reviewed by Alexey Proskuryakov.
- Added statistics sampling and reporting for JavaScriptCore's RegisterFile and ExecutableAllocator classes
- https://bugs.webkit.org/show_bug.cgi?id=45134
- Added thread-safe committed byte counting and reporting functionality to RegisterFile and
- ExecutableAllocator.
- * JavaScriptCore.exp:
- Exported new symbols to allow for WebKit to get statistics from JavaScriptCore classes.
-
- * interpreter/RegisterFile.cpp:
- (JSC::registerFileStatisticsMutex):
- Added function which returns a static Mutex used for locking during read/write access to
- static committed byte count variable.
- (JSC::RegisterFile::~RegisterFile):
- Added call to addToStatistics since memory is decommitted here.
- (JSC::RegisterFile::releaseExcessCapacity):
- Added call to addToStatistics since memory is decommitted here.
- (JSC::RegisterFile::initializeThreading):
- Added function which calls registerFileStatisticsMutex().
- (JSC::RegisterFile::committedByteCount):
- Added function which returns the current committed byte count for RegisterFile.
- (JSC::RegisterFile::addToCommittedByteCount):
- Added function which updates committed byte count.
-
- * interpreter/RegisterFile.h:
- (JSC::RegisterFile::RegisterFile):
- Added call to addToStatistics since memory is committed here.
- (JSC::RegisterFile::grow):
- Added call to addToStatistics since memory is committed here.
-
- * jit/ExecutableAllocator.h:
- Added function prototype for public static function committedByteCount().
-
- * jit/ExecutableAllocatorFixedVMPool.cpp:
- (JSC::FixedVMPoolAllocator::release):
- Added call to addToStatistics since memory is decommitted here.
- (JSC::FixedVMPoolAllocator::reuse):
- Added call to addToStatistics since memory is committed here.
- (JSC::FixedVMPoolAllocator::addToCommittedByteCount):
- Added function which updates committed byte count.
- (JSC::ExecutableAllocator::committedByteCount):
- Added function which returns the current committed byte count for ExecutableAllocator.
-
- * runtime/InitializeThreading.cpp:
- (JSC::initializeThreadingOnce):
- Added call to RegisterFile::initializeThreading.
- 2010-09-09 Mark Rowe <mrowe@apple.com>
- Reviewed by Oliver Hunt.
- <http://webkit.org/b/45502> JSObjectSetPrivateProperty does not handle NULL values as it claims
- * API/JSObjectRef.cpp:
- (JSObjectSetPrivateProperty): Don't call toJS if we have a NULL value as that will cause an assertion
- failure. Instead map NULL directly to the null JSValue.
- * API/tests/testapi.c:
- (main): Add test coverage for the NULL value case.
- 2010-09-09 Csaba Osztrogonác <ossy@webkit.org>
- Reviewed by Gavin Barraclough.
- [Qt] JSVALUE32_64 not works on Windows platform with MinGW compiler
- https://bugs.webkit.org/show_bug.cgi?id=29268
- * wtf/Platform.h: Enable JSVALUE32_64 for Qt/Windows/MinGW, because it works now.
- 2010-09-08 Zoltan Herczeg <zherczeg@webkit.org>
- Reviewed by Darin Adler.
- Removing doneSemicolon label in the lexer
- https://bugs.webkit.org/show_bug.cgi?id=45289
- As a side effect of moving the multiline comment parsing
- to a separate function, an opportunity raised to simplify
- the single line comment parsing, and removing doneSemicolon
- label. Slight performance increase on --parse-only
- tests (from 32.8ms to 31.5ms)
- * parser/Lexer.cpp:
- (JSC::Lexer::lex):
- 2010-09-08 Xan Lopez <xlopez@igalia.com>
- Reviewed by Alexey Proskuryakov.
- Remove accessor for private member variable in JSParser
- https://bugs.webkit.org/show_bug.cgi?id=45378
- m_token is private to JSParser, so it does not seem to be useful
- to have an accessor for it. On top of that, the file was both
- using the accessor and directly accessing the member variable,
- only one style should be used.
- 2010-09-08 Csaba Osztrogonác <ossy@webkit.org>
- Reviewed by Oliver Hunt.
- [Qt] REGRESSION(63348): jsc is broken
- https://bugs.webkit.org/show_bug.cgi?id=42818
- Need fastcall conventions on Qt/Win/MinGW.
- Based on patches of Gavin Barraclough: r63947 and r63948.
- * jit/JITStubs.cpp:
- * jit/JITStubs.h:
- 2010-09-08 Robert Hogan <robert@webkit.org>
- Reviewed by Antonio Gomes.
- Remove some unnecessary duplicate calls to string functions
- https://bugs.webkit.org/show_bug.cgi?id=45314
- * wtf/text/WTFString.cpp:
- (WTF::String::format):
- 2010-09-08 Jocelyn Turcotte <jocelyn.turcotte@nokia.com>
- Reviewed by Andreas Kling.
- Re-Disable JIT for MSVC 64bit to fix the build on this compiler.
- https://bugs.webkit.org/show_bug.cgi?id=45382
- It was enabled in the cleanup made in r64176, though it is still
- not implemented.
- * wtf/Platform.h:
- 2010-09-08 Martin Robinson <mrobinson@igalia.com>
- Reviewed by Xan Lopez.
- [GTK] Need a WebSocket implementation
- https://bugs.webkit.org/show_bug.cgi?id=45197
- Add a GIO-based WebSocket implementation.
- * wtf/gobject/GRefPtr.cpp: Added PlatformRefPtr support for GSource.
- (WTF::refPlatformPtr):
- (WTF::derefPlatformPtr):
- * wtf/gobject/GRefPtr.h: Added new template specialization declarations.
- * wtf/gobject/GTypedefs.h: Add some more GLib/GIO forward declarations.
- 2010-08-30 Maciej Stachowiak <mjs@apple.com>
- Reviewed by Darin Adler.
- Handle MediaQueryExp memory management exclusively with smart pointers
- https://bugs.webkit.org/show_bug.cgi?id=44874
-
- Implemented a non-copying sort function to make it possible to sort a Vector
- of OwnPtrs (which cannot be copied). This is required for the above.
- * wtf/NonCopyingSort.h: Added.
- (WTF::nonCopyingSort): It's secretly heapsort.
- (WTF::heapSort): heapsort implementation.
- (WTF::siftDown): Helper function for heapsort.
- (WTF::heapify): ditto
- Adjust build systems.
-
- * GNUmakefile.am:
- * JavaScriptCore.gypi:
- * JavaScriptCore.vcproj/WTF/WTF.vcproj:
- * JavaScriptCore.xcodeproj/project.pbxproj:
- 2010-09-08 Zoltan Herczeg <zherczeg@webkit.org>
- Reviewed by Darin Adler.
- Refactoring multiline comments in the lexer
- https://bugs.webkit.org/show_bug.cgi?id=45289
- MultiLine comment parsing is moved to a separate function.
- Slight performance increase on --parse-only tests (from 33.6ms to 32.8ms)
- SunSpider reports no change (from 523.1ms to 521.2ms).
- * parser/Lexer.cpp:
- (JSC::Lexer::parseMultilineComment):
- (JSC::Lexer::lex):
- * parser/Lexer.h:
- 2010-09-07 James Robinson <jamesr@chromium.org>
- Compile fix attempt for windows.
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
- 2010-09-07 Mihai Parparita <mihaip@chromium.org>
- Reviewed by James Robinson.
- Fix Windows build after r66936
- https://bugs.webkit.org/show_bug.cgi?id=45348
- Add symbol names that were missing from r66936.
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
- 2010-09-07 Mihai Parparita <mihaip@chromium.org>
- Reviewed by Oliver Hunt.
- pushState and replaceState do not clone RegExp objects correctly
- https://bugs.webkit.org/show_bug.cgi?id=44718
-
- Move internal representation of JSC::RegExp (which depends on wether
- YARR and YARR_JIT is enabled) into RegExpRepresentation which can live
- in the implementation only. This makes it feasible to use RegExp in
- WebCore without bringing in all of YARR.
- * JavaScriptCore.exp: Export RegExp and RegExpObject functions that are
- needed inside WebCore's JSC bindings.
- * runtime/RegExp.cpp:
- (JSC::RegExpRepresentation::~RegExpRepresentation):
- (JSC::RegExp::RegExp):
- (JSC::RegExp::~RegExp):
- (JSC::RegExp::compile):
- (JSC::RegExp::match):
- * runtime/RegExp.h:
- 2010-09-07 Anders Carlsson <andersca@apple.com>
- Reviewed by Darin Adler.
- <rdar://problem/8381749> -Wcast-align warning emitted when building with clang
- Remove the -Wcast-align-warning since it isn't really useful, and clang is more aggressive about warning than gcc.
- * Configurations/Base.xcconfig:
- 2010-09-07 Zoltan Horvath <zoltan@webkit.org>
- Reviewed by Darin Adler.
- REGRESSION(66741): Undefined pthread macros
- https://bugs.webkit.org/show_bug.cgi?id=45246
- PTHREAD_MUTEX_NORMAL and PTHREAD_MUTEX_DEFAULT (introduced in r60487) are not defined on Linux,
- but used in a statement. Add an additional check to test this.
- * wtf/FastMalloc.cpp:
- (WTF::TCMalloc_PageHeap::initializeScavenger):
- 2010-09-06 Oliver Hunt <oliver@apple.com>
- Windows build fix
- 2010-09-05 Oliver Hunt <oliver@apple.com>
- Reviewed by Sam Weinig.
- SerializedScriptValue needs to use a flat storage mechanism
- https://bugs.webkit.org/show_bug.cgi?id=45244
- Export JSArray::put
- * JavaScriptCore.exp:
- 2010-09-06 Chao-ying Fu <fu@mips.com>
- Reviewed by Oliver Hunt.
- Support JSVALUE32_64 on MIPS
- https://bugs.webkit.org/show_bug.cgi?id=43999
- Add missing functions to support JSVALUE32_64 on MIPS.
- Remove JSVALUE32 as the default for MIPS.
- * assembler/MIPSAssembler.h:
- (JSC::MIPSAssembler::divd):
- (JSC::MIPSAssembler::mthc1):
- (JSC::MIPSAssembler::cvtwd):
- * assembler/MacroAssemblerMIPS.h:
- (JSC::MacroAssemblerMIPS::neg32):
- (JSC::MacroAssemblerMIPS::branchOr32):
- (JSC::MacroAssemblerMIPS::set8):
- (JSC::MacroAssemblerMIPS::loadDouble):
- (JSC::MacroAssemblerMIPS::divDouble):
- (JSC::MacroAssemblerMIPS::convertInt32ToDouble):
- (JSC::MacroAssemblerMIPS::branchDouble):
- (JSC::MacroAssemblerMIPS::branchConvertDoubleToInt32):
- (JSC::MacroAssemblerMIPS::zeroDouble):
- * jit/JIT.h:
- * jit/JITOpcodes32_64.cpp:
- (JSC::JIT::privateCompileCTINativeCall):
- * jit/JITPropertyAccess32_64.cpp:
- (JSC::JIT::privateCompilePutByIdTransition):
- * jit/JITStubs.cpp:
- (JSC::JITThunks::JITThunks):
- * jit/JITStubs.h:
- * wtf/Platform.h:
- 2010-09-06 Robert Hogan <robert@webkit.org>
- Unreviewed, compile fix.
- Fix compile failure in r66843
- Revert to original patch in bugzilla. Leave bug open for
- discussion on potential removal of double utf8 conversion.
- https://bugs.webkit.org/show_bug.cgi?id=45240
- * wtf/text/WTFString.cpp:
- (WTF::String::format):
- 2010-09-06 Robert Hogan <robert@webkit.org>
- Reviewed by Andreas Kling.
- [Qt] utf8 encoding of console() messages
- Unskip:
- http/tests/security/xssAuditor/embed-tag-null-char.html
- http/tests/security/xssAuditor/object-embed-tag-null-char.html
- Both tests failed because Qt's implementation of String::format()
- is casting a utf8 result to String, which assumes latin1 in
- its constructor. So instead of casting a QString to a String, use
- StringImpl::create() instead. Unfortunately, this involves a lot
- of extra casts but the end result is correct.
- https://bugs.webkit.org/show_bug.cgi?id=45240
- * wtf/text/WTFString.cpp:
- (WTF::String::format):
- 2010-09-03 Alexey Proskuryakov <ap@apple.com>
- Reviewed by Darin Adler.
- https://bugs.webkit.org/show_bug.cgi?id=45135
- <rdar://problem/7823714> TCMalloc_PageHeap doesn't hold a mutex while manipulating shared data
- * wtf/FastMalloc.cpp:
- (WTF::TCMalloc_PageHeap::initializeScavenger): Make sure to create a non-recursive mutex
- regardless of platform default, so that we can assert that it's held (this is for platforms
- that don't have libdispatch).
- (WTF::TCMalloc_PageHeap::signalScavenger): Assert that the mutex is held, so we can look
- at m_scavengeThreadActive. For platforms that have libdispatch, assert that pageheap_lock
- is held.
- (WTF::TCMalloc_PageHeap::periodicScavenge): Make sure that pageheap_lock is held before
- manipulating m_scavengeThreadActive. Otherwise, there is an obvious race condition, and we
- can make unbalanced calls to dispatch_resume().
- 2010-09-03 Lucas De Marchi <lucas.demarchi@profusion.mobi>
- Reviewed by Martin Robinson.
- [EFL] Regression (66531) Build break with Glib Support
- https://bugs.webkit.org/show_bug.cgi?id=45011
- Move GtkTypedefs.h to GTypedefs.h and let it inside gobject directory
- since when glib is enabled, EFL port needs it, too.
- * CMakeListsEfl.txt: Include gobject directory to find new header
- file.
- * GNUmakefile.am: Ditto.
- * wtf/CMakeListsEfl.txt: Ditto.
- * wtf/Platform.h: Include header if port is EFL and glib support is
- enabled.
- * wtf/gtk/GtkTypedefs.h: Removed.
- * wtf/gobject/GTypedefs.h: Added. Sections specific to GTK are now
- guarded by PLATFORM(GTK).
- 2010-09-03 Csaba Osztrogonác <ossy@webkit.org>
- Reviewed by Simon Hausmann.
- Fix warning in wtf/ByteArray.h
- https://bugs.webkit.org/show_bug.cgi?id=44672
- * wtf/ByteArray.h: Use maximal sized array for MSVC and unsized array for other compilers.
- 2010-09-02 Adam Barth <abarth@webkit.org>
- Reviewed by Eric Seidel.
- Actually parse a URL from ParsedURL
- https://bugs.webkit.org/show_bug.cgi?id=45080
- This patch only handles standard URLs. At some point we'll need to
- distinguish between standard URLs and other kinds of URLs.
- * wtf/url/api/ParsedURL.cpp:
- (WTF::ParsedURL::ParsedURL):
- 2010-09-02 Adam Barth <abarth@webkit.org>
- Reviewed by Eric Seidel.
- Add ParsedURL and URLString to WTFURL API
- https://bugs.webkit.org/show_bug.cgi?id=45078
- Currently there's no actual URL parsing going on, but this patch is a
- start to sketching out the API.
- * JavaScriptCore.xcodeproj/project.pbxproj:
- * wtf/url/api/ParsedURL.cpp: Added.
- (WTF::ParsedURL::ParsedURL):
- (WTF::ParsedURL::scheme):
- (WTF::ParsedURL::username):
- (WTF::ParsedURL::password):
- (WTF::ParsedURL::host):
- (WTF::ParsedURL::port):
- (WTF::ParsedURL::path):
- (WTF::ParsedURL::query):
- (WTF::ParsedURL::fragment):
- (WTF::ParsedURL::segment):
- * wtf/url/api/ParsedURL.h: Added.
- (WTF::ParsedURL::spec):
- * wtf/url/api/URLString.h: Added.
- (WTF::URLString::URLString):
- (WTF::URLString::string):
- 2010-09-02 Adam Barth <abarth@webkit.org>
- Reviewed by Eric Seidel.
- Add WTFURL to the JavaScriptCore build on Mac
- https://bugs.webkit.org/show_bug.cgi?id=45075
- Building code is good.
- * JavaScriptCore.xcodeproj/project.pbxproj:
- 2010-09-02 Alexey Proskuryakov <ap@apple.com>
- Reviewed by Oliver Hunt.
- https://bugs.webkit.org/show_bug.cgi?id=43230
- <rdar://problem/8254215> REGRESSION: Memory leak within JSParser::JSParser
- One can't delete a ThreadSpecific object that has data in it. It's not even possible to
- enumerate data objects in all threads, much less destroy them from a thread that's destroying
- the ThreadSpecific.
- * parser/JSParser.cpp:
- (JSC::JSParser::JSParser):
- * runtime/JSGlobalData.h:
- * wtf/WTFThreadData.cpp:
- (WTF::WTFThreadData::WTFThreadData):
- * wtf/WTFThreadData.h:
- (WTF::WTFThreadData::approximatedStackStart):
- Moved stack guard tracking from JSGlobalData to WTFThreadData.
- * wtf/ThreadSpecific.h: Made destructor unimplemented. It's dangerous, and we probably won't
- ever face a situation where we'd want to delete a ThreadSpecific object.
- 2010-09-01 Gavin Barraclough <barraclough@apple.com>
- Rubber stamped by Oliver Hunt.
- Ecma-262 15.11.1.1 states that if the argument is undefined then an
- Error object's message property should be set to the empty string.
- * runtime/ErrorInstance.cpp:
- (JSC::ErrorInstance::ErrorInstance):
- (JSC::ErrorInstance::create):
- * runtime/ErrorInstance.h:
- * runtime/ErrorPrototype.cpp:
- (JSC::ErrorPrototype::ErrorPrototype):
- 2010-08-31 Darin Adler <darin@apple.com>
- Reviewed by Anders Carlsson.
- * wtf/FastMalloc.cpp:
- (WTF::TCMalloc_PageHeap::scavenge): Replaced somewhat-quirky code that
- mixed types with code that uses size_t.
- * wtf/TCPageMap.h: Removed names of unused arguments to avoid warning.
- 2010-08-31 Martin Robinson <mrobinson@igalia.com>
- Reviewed by Gustavo Noronha Silva.
- [GTK] Isolate all GTK+ typedefs into one file
- https://bugs.webkit.org/show_bug.cgi?id=44900
- * GNUmakefile.am: Add GtkTypedefs.h to the source lists.
- * wtf/Platform.h: #include GtkTypedefs.h for the GTK+ build.
- * wtf/ThreadingPrimitives.h: Remove GTK+ typedefs.
- * wtf/gobject/GOwnPtr.h: Ditto.
- * wtf/gobject/GRefPtr.h: Ditto.
- * wtf/gtk/GtkTypedefs.h: Added.
- 2010-08-31 Martin Robinson <mrobinson@igalia.com>
- Reviewed by Gustavo Noronha Silva.
- [GTK] Fix 'make dist' in preparation of the 1.3.3 release
- https://bugs.webkit.org/show_bug.cgi?id=44978
- * GNUmakefile.am: Adding missing headers to the sources list.
- 2010-08-31 Chao-ying Fu <fu@mips.com>
- Reviewed by Oliver Hunt.
- Support emit_op_mod() for MIPS
- https://bugs.webkit.org/show_bug.cgi?id=42855
- This patch uses MIPS div instructions for op_mod to improve performance.
- * assembler/MIPSAssembler.h:
- (JSC::MIPSAssembler::div):
- * jit/JITArithmetic.cpp:
- (JSC::JIT::emit_op_mod):
- (JSC::JIT::emitSlow_op_mod):
- 2010-08-31 Csaba Osztrogonác <ossy@webkit.org>
- Reviewed by Darin Adler.
- Modify ASSERT_UNUSED and UNUSED_PARAM similar to Qt's Q_UNUSED.
- https://bugs.webkit.org/show_bug.cgi?id=44870
- * wtf/Assertions.h:
- * wtf/UnusedParam.h:
- 2010-08-31 Benjamin Poulain <benjamin.poulain@nokia.com>
- Reviewed by Kenneth Rohde Christiansen.
- JSC TimeoutChecker::didTimeOut overflows on ARM
- https://bugs.webkit.org/show_bug.cgi?id=38538
- Make getCPUTime() return values relative to the first call.
- The previous implementation relied on simply on currentTime(), which
- return a time since epoch and not a time since the thread started. This
- made the return value of getCPUTime() overflow on 32 bits.
- * runtime/TimeoutChecker.cpp:
- (JSC::getCPUTime):
- 2010-08-30 Mihai Parparita <mihaip@chromium.org>
- Reviewed by Adam Barth.
- HISTORY_ALWAYS_ASYNC should be removed (history should always be async)
- https://bugs.webkit.org/show_bug.cgi?id=44315
- Remove ENABLE_HISTORY_ALWAYS_ASYNC #define.
- * wtf/Platform.h:
- 2010-08-30 Chris Rogers <crogers@google.com>
- Reviewed by Kenneth Russell.
- Fix namespace for wtf/Complex.h and wtf/Vector3.h
- https://bugs.webkit.org/show_bug.cgi?id=44892
- * wtf/Complex.h:
- * wtf/Vector3.h:
- 2010-08-30 Andy Estes <aestes@apple.com>
- Reviewed by Eric Carlson.
- Strings returned by asciiDebug() should be NULL-terminated.
- https://bugs.webkit.org/show_bug.cgi?id=44866
- * wtf/text/WTFString.cpp:
- (asciiDebug):
- 2010-08-30 Zoltan Herczeg <zherczeg@webkit.org>
- Reviewed by Darin Adler.
- Refactor number parsing in the lexer
- https://bugs.webkit.org/show_bug.cgi?id=44104
- Number parsing was full of gotos, and needed a complete
- redesign to remove them (Only one remained). Furthermore
- integer arithmetic is empolyed for fast cases (= small
- integer numbers).
- * parser/Lexer.cpp:
- (JSC::Lexer::parseHex):
- (JSC::Lexer::parseOctal):
- (JSC::Lexer::parseDecimal):
- (JSC::Lexer::parseNumberAfterDecimalPoint):
- (JSC::Lexer::parseNumberAfterExponentIndicator):
- (JSC::Lexer::lex):
- * parser/Lexer.h:
- 2010-08-29 Darin Adler <darin@apple.com>
- Fix Qt build.
- * wtf/unicode/glib/UnicodeMacrosFromICU.h: Added U_IS_BMP.
- * wtf/unicode/qt4/UnicodeQt4.h: Ditto.
- * wtf/unicode/wince/UnicodeWince.h: Ditto.
- 2010-08-29 Kwang Yul Seo <skyul@company100.net>
- Reviewed by Kent Tamura.
- [BREWMP] Port vprintf_stderr_common
- https://bugs.webkit.org/show_bug.cgi?id=33568
- Use BREW's DBGPRINTF to output debug messages.
- * wtf/Assertions.cpp:
- 2010-08-28 Gavin Barraclough <barraclough@apple.com>
- Reviewed by Oliver Hunt.
- Bug 44830 - In Array's prototype functyions we're incorrectly handing large index values
- We are in places casting doubles to unsigneds, and unsigneds to ints, without always check
- that the result is within bounds. This is problematic in the case of double-to-unsigned
- conversion because we should be saturating to array length.
- Also, the error return value from Array.splice should be [], not undefined.
- I don't see any security concerns here. These methods are spec'ed in such a way that they
- can be applied to non Array objects, so in all cases the (potentially bogus) indices are
- being passed to functions that will safely check accesses are within bounds.
- * runtime/ArrayPrototype.cpp:
- (JSC::argumentClampedIndexFromStartOrEnd):
- (JSC::arrayProtoFuncJoin):
- (JSC::arrayProtoFuncConcat):
- (JSC::arrayProtoFuncReverse):
- (JSC::arrayProtoFuncShift):
- (JSC::arrayProtoFuncSlice):
- (JSC::arrayProtoFuncSort):
- (JSC::arrayProtoFuncSplice):
- (JSC::arrayProtoFuncUnShift):
- (JSC::arrayProtoFuncFilter):
- (JSC::arrayProtoFuncMap):
- (JSC::arrayProtoFuncEvery):
- (JSC::arrayProtoFuncForEach):
- (JSC::arrayProtoFuncSome):
- (JSC::arrayProtoFuncReduce):
- (JSC::arrayProtoFuncReduceRight):
- (JSC::arrayProtoFuncIndexOf):
- (JSC::arrayProtoFuncLastIndexOf):
- * runtime/JSValue.h:
- (JSC::JSValue::toUInt32):
- 2010-08-28 Pratik Solanki <psolanki@apple.com>
- Reviewed by Dan Bernstein.
- Add an ENABLE define for purgeable memory support
- https://bugs.webkit.org/show_bug.cgi?id=44777
- * wtf/Platform.h:
- 2010-08-27 Kimmo Kinnunen <kimmo.t.kinnunen@nokia.com>
- Reviewed by Kenneth Rohde Christiansen.
- [Qt] NPAPI Plugin metadata should be cached, and loading a plugin should not require loading every plugin
- https://bugs.webkit.org/show_bug.cgi?id=43179
- Add ENABLE_NETSCAPE_PLUGIN_METADATA_CACHE flag to enable persistent
- NPAPI Plugin Cache. The flag is enabled by default.
- * wtf/Platform.h: Add ENABLE_NETSCAPE_PLUGIN_METADATA_CACHE
- 2010-07-27 Jer Noble <jer.noble@apple.com>
- Reviewed by Eric Carlson.
- Add JavaScript API to allow a page to go fullscreen.
- rdar://problem/6867795
- https://bugs.webkit.org/show_bug.cgi?id=43099
- * wtf/Platform.h: Enable FULLSCREEN_API mode for the Mac (except iOS).
- 2010-08-27 Gavin Barraclough <barraclough@apple.com>
- Windows build fix pt 2.
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
- 2010-08-27 Gavin Barraclough <barraclough@apple.com>
- Windows build fix pt 1.
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
- 2010-08-27 Gavin Barraclough <barraclough@apple.com>
- Reviewed by Oliver Hunt.
- Bug 44745 - Number.toFixed/toExponential/toPrecision are inaccurate.
- These methods should be using a version of dtoa that can generate results accurate
- to the requested precision, whereas our version of dtoa is only currently able to
- support producing results sufficiently accurate to distinguish the value from any
- other IEEE-754 double precision number.
- This change has no impact on benchmarks we track.
- On microbenchmarks for these functions, this is a slight regression where a high
- precision is requested (dtoa now need to iterate further to generate a a greater
- number of digits), but with smaller precision values (hopefully more common) this
- improves performance, since it reduced the accurate of result dtoa is required,
- to produce, and removes the need to pre-round values before calling dtoa.
- * JavaScriptCore.exp:
- doubleToStringInJavaScriptFormat renamed to numberToString
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
- doubleToStringInJavaScriptFormat renamed to numberToString
- * runtime/UString.cpp:
- (JSC::UString::number):
- doubleToStringInJavaScriptFormat renamed to numberToString
- * wtf/DecimalNumber.h:
- (WTF::DecimalNumber::DecimalNumber):
- (WTF::DecimalNumber::toStringDecimal):
- (WTF::DecimalNumber::toStringExponential):
- Remove all pre-rounding of values, instead call dtoa correctly.
- * wtf/dtoa.cpp:
- (WTF::dtoa):
- * wtf/dtoa.h:
- Reenable support for rounding to specific-figures/decimal-places in dtoa.
- Modify to remove unbiased rounding, provide ECMA required away-from-zero.
- Rewrite doubleToStringInJavaScriptFormat to use DecimalNumber, rename to
- numberToString.
- 2010-08-27 Chao-ying Fu <fu@mips.com>
- Reviewed by Oliver Hunt.
- Byte alignment issue on MIPS
- https://bugs.webkit.org/show_bug.cgi?id=29415
- MIPS accesses one byte at a time for now to avoid the help from the
- kernel to fix unaligned accesses.
- * wtf/text/AtomicString.cpp:
- (WebCore::equal):
- * wtf/text/StringHash.h:
- (WebCore::StringHash::equal):
- 2010-08-27 Xan Lopez <xlopez@igalia.com>
- Reviewed by Tor Arne Vestbø.
- Fix a couple of typos in comment.
- * bytecode/CodeBlock.h:
- 2010-08-26 Gavin Barraclough <barraclough@apple.com>
- Windows build fix.
- * wtf/dtoa.cpp:
- 2010-08-26 Gavin Barraclough <baraclough@apple.com>
- Reviewed by Sam Weinig.
- Bug 44735 - Clean up dtoa.cpp
- Remove unused & unmaintained code paths, reformat code to match
- coding standard & use platform #defines from Platform.h directly.
- * wtf/dtoa.cpp:
- (WTF::storeInc):
- (WTF::multadd):
- (WTF::s2b):
- (WTF::lo0bits):
- (WTF::mult):
- (WTF::pow5mult):
- (WTF::lshift):
- (WTF::diff):
- (WTF::ulp):
- (WTF::b2d):
- (WTF::d2b):
- (WTF::ratio):
- (WTF::):
- (WTF::strtod):
- (WTF::quorem):
- (WTF::dtoa):
- 2010-08-26 Gavin Barraclough <barraclough@apple.com>
- Rubber Stamped by Oliver Hunt.
- Partially revert r65959. The toString changes regressed the v8 tests,
- but keep the toFixed/toExponential/toPrecision changes.
- * JavaScriptCore.exp:
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
- * runtime/NumberPrototype.cpp:
- * runtime/UString.cpp:
- (JSC::UString::number):
- * wtf/DecimalNumber.h:
- * wtf/dtoa.cpp:
- (WTF::append):
- (WTF::doubleToStringInJavaScriptFormat):
- * wtf/dtoa.h:
- * wtf/text/WTFString.cpp:
- * wtf/text/WTFString.h:
- 2010-08-26 James Robinson <jamesr@chromium.org>
- Reviewed by Darin Fisher.
- [chromium] Remove the USE(GLES2_RENDERING) define and associated code
- https://bugs.webkit.org/show_bug.cgi?id=43761
- Remove WTF_USE_GLES2_RENDERING from the list of defines in chromium, it's unused.
- * wtf/Platform.h:
- 2010-08-26 Gavin Barraclough <barraclough@apple.com>
- Rolling out r64608, this regressed performance.
- * JavaScriptCore.xcodeproj/project.pbxproj:
- * assembler/ARMAssembler.cpp:
- (JSC::ARMAssembler::executableCopy):
- * assembler/LinkBuffer.h:
- (JSC::LinkBuffer::LinkBuffer):
- (JSC::LinkBuffer::~LinkBuffer):
- (JSC::LinkBuffer::performFinalization):
- * assembler/MIPSAssembler.h:
- (JSC::MIPSAssembler::executableCopy):
- * assembler/X86Assembler.h:
- (JSC::X86Assembler::executableCopy):
- * bytecode/StructureStubInfo.h:
- (JSC::StructureStubInfo::initGetByIdProto):
- (JSC::StructureStubInfo::initGetByIdChain):
- (JSC::StructureStubInfo::initGetByIdSelfList):
- (JSC::StructureStubInfo::initGetByIdProtoList):
- (JSC::StructureStubInfo::initPutByIdTransition):
- * jit/ExecutableAllocator.cpp:
- (JSC::ExecutablePool::systemAlloc):
- * jit/ExecutableAllocator.h:
- (JSC::ExecutablePool::create):
- (JSC::ExecutableAllocator::ExecutableAllocator):
- (JSC::ExecutableAllocator::poolForSize):
- (JSC::ExecutablePool::ExecutablePool):
- (JSC::ExecutablePool::poolAllocate):
- * jit/ExecutableAllocatorFixedVMPool.cpp:
- (JSC::FixedVMPoolAllocator::allocInternal):
- * jit/JIT.cpp:
- (JSC::JIT::privateCompile):
- * jit/JIT.h:
- (JSC::JIT::compileGetByIdProto):
- (JSC::JIT::compileGetByIdSelfList):
- (JSC::JIT::compileGetByIdProtoList):
- (JSC::JIT::compileGetByIdChainList):
- (JSC::JIT::compileGetByIdChain):
- (JSC::JIT::compilePutByIdTransition):
- (JSC::JIT::compilePatchGetArrayLength):
- * jit/JITOpcodes.cpp:
- (JSC::JIT::privateCompileCTIMachineTrampolines):
- * jit/JITOpcodes32_64.cpp:
- (JSC::JIT::privateCompileCTIMachineTrampolines):
- (JSC::JIT::privateCompileCTINativeCall):
- * jit/JITPropertyAccess.cpp:
- (JSC::JIT::stringGetByValStubGenerator):
- (JSC::JIT::privateCompilePutByIdTransition):
- (JSC::JIT::privateCompilePatchGetArrayLength):
- (JSC::JIT::privateCompileGetByIdProto):
- (JSC::JIT::privateCompileGetByIdSelfList):
- (JSC::JIT::privateCompileGetByIdProtoList):
- (JSC::JIT::privateCompileGetByIdChainList):
- (JSC::JIT::privateCompileGetByIdChain):
- * jit/JITPropertyAccess32_64.cpp:
- (JSC::JIT::stringGetByValStubGenerator):
- (JSC::JIT::privateCompilePutByIdTransition):
- (JSC::JIT::privateCompilePatchGetArrayLength):
- (JSC::JIT::privateCompileGetByIdProto):
- (JSC::JIT::privateCompileGetByIdSelfList):
- (JSC::JIT::privateCompileGetByIdProtoList):
- (JSC::JIT::privateCompileGetByIdChainList):
- (JSC::JIT::privateCompileGetByIdChain):
- * jit/JITStubs.cpp:
- (JSC::JITThunks::tryCachePutByID):
- (JSC::JITThunks::tryCacheGetByID):
- (JSC::DEFINE_STUB_FUNCTION):
- (JSC::getPolymorphicAccessStructureListSlot):
- * jit/JITStubs.h:
- * jit/SpecializedThunkJIT.h:
- (JSC::SpecializedThunkJIT::finalize):
- * runtime/ExceptionHelpers.cpp:
- * runtime/ExceptionHelpers.h:
- * runtime/Executable.cpp:
- (JSC::EvalExecutable::compileInternal):
- (JSC::ProgramExecutable::compileInternal):
- (JSC::FunctionExecutable::compileForCallInternal):
- (JSC::FunctionExecutable::compileForConstructInternal):
- (JSC::FunctionExecutable::reparseExceptionInfo):
- (JSC::EvalExecutable::reparseExceptionInfo):
- * yarr/RegexJIT.cpp:
- (JSC::Yarr::RegexGenerator::compile):
- 2010-08-26 Gavin Barraclough <barraclough@apple.com>
- Reviewed by Brady Eidson.
- Bug 44655 - Add debug only convenience methods to obtain a Vector<char> from a String/StringImpl.
- * wtf/text/WTFString.cpp:
- (asciiDebug):
- Return a Vector<char> containing the contents of a string as ASCII.
- 2010-08-26 Sam Weinig <sam@webkit.org>
- Reviewed by Darin Adler.
- Add PassOwnArrayPtr
- https://bugs.webkit.org/show_bug.cgi?id=44627
- * GNUmakefile.am:
- * JavaScriptCore.vcproj/WTF/WTF.vcproj:
- * JavaScriptCore.xcodeproj/project.pbxproj:
- Add the new files.
- * wtf/Forward.h:
- Forward declare PassOwnArrayPtr.
-
- * wtf/OwnArrayPtr.h:
- Mimic the OwnPtr interface.
- * wtf/OwnArrayPtrCommon.h: Added.
- (WTF::deleteOwnedArrayPtr):
- Move delete function here so it can be shared by OwnArrayPtr and
- PassOwnArrayPtr.
- * wtf/PassOwnArrayPtr.h: Added.
- Mimic the PassOwnPtr interface.
- 2010-08-26 Oliver Hunt <oliver@apple.com>
- Reviewed by Gavin Barraclough.
- [JSC] JavaScript parsing error when loading Equifax web page
- https://bugs.webkit.org/show_bug.cgi?id=42900
- '-->' is ostensibly only meant to occur when there is only
- whitespace preceeding it on the line. However firefox treats
- multiline comments as a space character, so they are allowed.
- One side effect of the firefox model is that any line terminators
- inside the multiline comment are ignored, so
- foo/*
- */-->
- is treated as
- foo -->
- and so '-->' will not be a comment in this case. Happily this simply
- means that to fix this issue all we need to do is stop updating
- m_atLineStart when handling multiline comments.
- * parser/Lexer.cpp:
- (JSC::Lexer::lex):
- 2010-08-25 Oliver Hunt <oliver@apple.com>
- Reviewed by Geoffrey Garen.
- Improve overflow handling in StringImpl::Replace
- https://bugs.webkit.org/show_bug.cgi?id=42502
- <rdar://problem/8203794>
- Harden StringImpl::replace against overflow -- I can't see how this
- could be abused, but it's better to be safe than sorry.
- * wtf/text/StringImpl.cpp:
- (WTF::StringImpl::replace):
- 2010-08-26 Martin Robinson <mrobinson@igalia.com>
- Reviewed by Xan Lopez.
- [GTK] The GNUmakefile.am files contain a myriad of confusing preprocessor and compiler flag definitions
- https://bugs.webkit.org/show_bug.cgi?id=44624
- Clean up GNUmakefile.am.
- * GNUmakefile.am: Alphabetize the include order in javascriptcore_cppflags. Move
- a couple include lines from the top-level GNUmakefile.am.
- 2010-08-25 Xan Lopez <xlopez@igalia.com>
- Reviewed by Kent Tamura.
- Local variables 'k' and 'y' in s2b() in dtoa.cpp are computed but not used
- https://bugs.webkit.org/show_bug.cgi?id=29259
- Remove unused code in dtoa.cpp, spotted by Wan-Teh Chang.
- * wtf/dtoa.cpp:
- (WTF::s2b):
- 2010-08-25 Kwang Yul Seo <skyul@company100.net>
- Reviewed by Kevin Ollivier.
- [BREWMP] Add build system
- https://bugs.webkit.org/show_bug.cgi?id=44645
- Make waf script portable so that we can add more ports.
- * wscript:
- 2010-08-25 Michael Saboff <msaboff@apple.com>
- Reviewed by Sam Weinig.
- Remove the single entry regular expression cache introduced as part of
- the fix for https://bugs.webkit.org/show_bug.cgi?id=41238.
- The performance problem in Dromaeo that initiated that bug is no
- longer present. Dromaeo has been modified so that the regular
- expression tests are somewhat random and don't benefit from a
- single entry cache.
- * runtime/RegExp.cpp:
- (JSC::RegExp::RegExp):
- (JSC::RegExp::match):
- * runtime/RegExp.h:
- 2010-08-25 Martin Robinson <mrobinson@igalia.com>
- Reviewed by Gustavo Noronha Silva.
- Cairo and EFL port shouldn't depend on glib.
- https://bugs.webkit.org/show_bug.cgi?id=44354
- Replace GRefPtr with PlatformRefPtr. Keep GLib specific bits in
- GRefPtr.h.
- * GNUmakefile.am: Add PlatformRefPtr.h to the source list.
- * wtf/PlatformRefPtr.h: Migrated from GRefPtr.h.
- (WTF::PlatformRefPtr::PlatformRefPtr): Ditto.
- (WTF::PlatformRefPtr::~PlatformRefPtr): Ditto.
- (WTF::PlatformRefPtr::clear): Ditto.
- (WTF::PlatformRefPtr::get): Ditto.
- (WTF::PlatformRefPtr::operator*): Ditto.
- (WTF::PlatformRefPtr::operator->): Ditto.
- (WTF::PlatformRefPtr::operator!): Ditto.
- (WTF::PlatformRefPtr::operator UnspecifiedBoolType): Ditto.
- (WTF::PlatformRefPtr::hashTableDeletedValue): Ditto.
- (WTF::::operator): Ditto.
- (WTF::::swap): Ditto.
- (WTF::swap): Ditto.
- (WTF::operator==): Ditto.
- (WTF::operator!=): Ditto.
- (WTF::static_pointer_cast): Ditto.
- (WTF::const_pointer_cast): Ditto.
- (WTF::getPtr): Ditto.
- (WTF::adoptPlatformRef): Ditto.
- * wtf/gobject/GRefPtr.cpp: Changes to reflect new names.
- (WTF::refPlatformPtr):
- (WTF::derefPlatformPtr):
- * wtf/gobject/GRefPtr.h: Ditto.
- (WTF::refPlatformPtr):
- (WTF::derefPlatformPtr):
- 2010-08-25 Xan Lopez <xlopez@igalia.com>
- Reviewed by Alexey Proskuryakov.
- Remove dead code in JSGlobalObject
- https://bugs.webkit.org/show_bug.cgi?id=44615
- The recursion data member in the JSGlobalObject and its getter
- plus inc/dec methods seems to be unused, remove them.
- * runtime/JSGlobalObject.cpp:
- (JSC::JSGlobalObject::init):
- * runtime/JSGlobalObject.h:
- 2010-08-25 Michael Saboff <msaboff@apple.com>
- Reviewed by Geoffrey Garen.
- Changed the initial and subsequent allocation of vector storage to
- Array()s. The changes are to limit sparse arrays to 100000 entries
- and fixed the sparse map to vector storage conversion to use the
- minimum amount of memory needed to store the current number of entries.
- These changes address https://bugs.webkit.org/show_bug.cgi?id=43707
- * runtime/JSArray.cpp:
- (JSC::JSArray::putSlowCase):
- (JSC::JSArray::getNewVectorLength):
- 2010-08-16 Gabor Loki <loki@webkit.org>
- Reviewed by Gavin Barraclough.
- Avoid increasing required alignment of target type warning
- https://bugs.webkit.org/show_bug.cgi?id=43963
- Fix platform independent alignment warnings.
- * wtf/ListHashSet.h:
- (WTF::ListHashSetNodeAllocator::pool):
- 2010-08-19 Gabor Loki <loki@webkit.org>
- Reviewed by Gavin Barraclough.
- Enable truncated floating point feature on ARM
- https://bugs.webkit.org/show_bug.cgi?id=44233
- Enable truncated floating point feature with the help of VCVTR.S32.F64
- instruction. If VCVTR.S32.F64 can't fit the result into a 32-bit
- integer/register, it saturates at INT_MAX or INT_MIN. Testing this
- looks quicker than testing FPSCR for exception.
- Inspired by Jacob Bramley's patch from JaegerMonkey
- * assembler/ARMAssembler.h:
- (JSC::ARMAssembler::):
- (JSC::ARMAssembler::cmn_r):
- (JSC::ARMAssembler::vcvtr_s32_f64_r):
- * assembler/MacroAssemblerARM.h:
- (JSC::MacroAssemblerARM::supportsFloatingPointTruncate):
- (JSC::MacroAssemblerARM::branchTruncateDoubleToInt32):
- 2010-08-24 Gavin Barraclough <barraclough@apple.com>
- Windows build fix.
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
- 2010-08-24 Gavin Barraclough <barraclough@apple.com>
- Windows build fix.
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
- * wtf/DecimalNumber.h:
- (WTF::DecimalNumber::intPow10):
- * wtf/dtoa.cpp:
- * wtf/dtoa.h:
- 2010-08-23 Gavin Barraclough <barraclough@apple.com>
- Reviewed by Oliver Hunt.
- https://bugs.webkit.org/show_bug.cgi?id=44487
- Number.toExponential/toFixed/toPrecision all contain a spaghetti of duplicated
- code & unnecessary complexity. Add a new DecimalNumber class to encapsulate
- double to string conversion, share the implementations of rounding &
- decimal-fraction/exponential formatting.
- * JavaScriptCore.exp:
- Update exports.
- * runtime/NumberPrototype.cpp:
- (JSC::toThisNumber):
- (JSC::getIntegerArgumentInRange):
- Helper methods used in implementing toExponential/toFixed/toString.
- (JSC::numberProtoFuncToExponential):
- (JSC::numberProtoFuncToFixed):
- (JSC::numberProtoFuncToPrecision):
- Reimplemented using new DecimalNumber class.
-
- * runtime/UString.cpp:
- (JSC::UString::number):
- Updated to call numberToString.
- * wtf/DecimalNumber.h: Added.
- (WTF::):
- (WTF::DecimalNumber::DecimalNumber):
- (WTF::DecimalNumber::toStringDecimal):
- (WTF::DecimalNumber::toStringExponential):
- (WTF::DecimalNumber::sign):
- (WTF::DecimalNumber::exponent):
- (WTF::DecimalNumber::significand):
- (WTF::DecimalNumber::precision):
- (WTF::DecimalNumber::init):
- (WTF::DecimalNumber::isZero):
- (WTF::DecimalNumber::roundToPrecision):
- New class to perform double to string conversion.
- Has three constructors, which allow conversion with no rounding,
- rounding to significant-figures, or rounding to decimal-places,
- and two methods for formatting strings, either using decimal
- fraction or exponential encoding. Internal implementation uses
- pre-rounding of the values before calling dtoa rather than
- relying on dtoa to correctly round, which does not produce
- fully accurate results. Hopefully we can address this in the
- near future.
- * wtf/dtoa.cpp:
- (WTF::intPow10):
- * wtf/dtoa.h:
- intPow10 is used internally by DecimalNumber.
-
- * wtf/text/WTFString.cpp:
- (WTF::copyToString):
- (WTF::nanOrInfToString):
- Used internally in numberToString for NaN/Infinity handling.
- (WTF::numberToString):
- Added new method to convert doubles to strings.
- * wtf/text/WTFString.h:
- Added declaration for numberToString. This is here because
- we should switch over to using this for all double to string
- conversion in WebCore (see section 2.4.4.3 of the HTML5 spec).
- 2010-08-24 Oliver Hunt <oliver@apple.com>
- Reviewed by Geoff Garen.
- Don't seed the JS random number generator from time()
- https://bugs.webkit.org/show_bug.cgi?id=41868
- <rdar://problem/8171025>
- Switch to using the secure random number generator to
- seed the fast random generator, and make the generator
- be per global object.
- * runtime/JSGlobalData.cpp:
- (JSC::JSGlobalData::JSGlobalData):
- * runtime/JSGlobalData.h:
- * runtime/JSGlobalObject.h:
- (JSC::JSGlobalObject::JSGlobalObjectData::JSGlobalObjectData):
- (JSC::JSGlobalObject::weakRandomNumber):
- * runtime/MathObject.cpp:
- (JSC::mathProtoFuncRandom):
- 2010-08-24 Oliver Hunt <oliver@apple.com>
- Reviewed by Beth Dakin.
- Make overflow guards in UString::utf8 explicit
- https://bugs.webkit.org/show_bug.cgi?id=44540
- Add an explicit overflow check prior to allocating our buffer,
- rather than implicitly relying on the guard in convertUTF16ToUTF8.
- * runtime/UString.cpp:
- (JSC::UString::utf8):
- 2010-08-24 Yael Aharon <yael.aharon@nokia.com>
- Reviewed by Simon Hausmann.
- [Symbian] Fix commit/decommit of system memory using RChunk
- Swap accidentially reversed start and m_base values for determining the
- offset within the RChunk.
- * wtf/PageReservation.h:
- (WTF::PageReservation::systemCommit):
- (WTF::PageReservation::systemDecommit):
- 2010-08-23 Patrick Gansterer <paroga@paroga.com>
- Rubber-stamped by Gabor Loki.
- [WINCE] Buildfix for GeneratedJITStubs after r64818
- https://bugs.webkit.org/show_bug.cgi?id=44469
- Use " THUNK_RETURN_ADDRESS_OFFSET" instead of "#offset#".
- * jit/JITStubs.cpp:
- 2010-08-23 Oliver Hunt <oliver@apple.com>
- Reviewed by Darin Adler.
- [REGRESSION] Interpreter incorrectly excludes prototype chain when validating put_by_id_transition
- https://bugs.webkit.org/show_bug.cgi?id=44240
- <rdar://problem/8328995>
- Fix an error I introduced when cleaning up the interpreter side of the logic
- to prevent setters being called in object initialisers.
- * interpreter/Interpreter.cpp:
- (JSC::Interpreter::privateExecute):
- 2010-08-23 Michael Saboff <msaboff@apple.com>
- Reviewed by Oliver Hunt.
- Fixed case where a single character search string in a string.replace()
- did not properly handle back reference replacement. The fix is to
- check for a '$' as part of the check to see if we can execute the
- single character replace optimization.
- https://bugs.webkit.org/show_bug.cgi?id=44067
- * runtime/StringPrototype.cpp:
- (JSC::stringProtoFuncReplace):
- 2010-08-23 Oliver Hunt <oliver@apple.com>
- Reviewed by Gavin Barraclough.
- JSON.stringify is much slower than Firefox on particular pathological input
- https://bugs.webkit.org/show_bug.cgi?id=44456
- Make StringBuilder::reserveCapacity reserve additional space so we don't end up
- repeatedly copying the entire result string.
- * runtime/StringBuilder.h:
- (JSC::StringBuilder::append):
- (JSC::StringBuilder::reserveCapacity):
- 2010-08-23 Jian Li <jianli@chromium.org>
- Reviewed by Darin Fisher.
- Handle blob resource.
- https://bugs.webkit.org/show_bug.cgi?id=43941
- * JavaScriptCore.exp: Add an export that is neede by BlobResourceHandle.
- 2010-08-19 Andreas Kling <andreas.kling@nokia.com>
- Reviewed by Geoffrey Garen.
- JSC: Move the static_cast into to(U)Int32 fast case
- https://bugs.webkit.org/show_bug.cgi?id=44037
- Do the static_cast<(u)int32_t> inline to avoid the function call overhead
- for easily converted values (within (u)int32_t range.)
- * runtime/JSValue.cpp:
- (JSC::toInt32SlowCase):
- (JSC::toUInt32SlowCase):
- * runtime/JSValue.h:
- (JSC::JSValue::toInt32):
- (JSC::JSValue::toUInt32):
- 2010-08-18 Andreas Kling <andreas.kling@nokia.com>
- Reviewed by Geoffrey Garen.
- REGRESSION(r58469): Math.pow() always returns double-backed JSValue which is extremely slow as array subscript
- https://bugs.webkit.org/show_bug.cgi?id=43742
- Add codegen for pow() to return Int32 values when possible.
- * jit/ThunkGenerators.cpp:
- (JSC::powThunkGenerator):
- 2010-08-18 Gabor Loki <loki@webkit.org>
- Reviewed by Gavin Barraclough.
- The JITStackFrame is wrong using Thumb-2 JIT with JSVALUE32_64
- https://bugs.webkit.org/show_bug.cgi?id=43897
- A 64 bits wide member in a structure is aligned to 8 bytes on ARM by
- default, but this is not taken into account in the offset defines of
- JITStackFrame.
- * jit/JITStubs.cpp:
- * jit/JITStubs.h:
- 2010-08-18 Gavin Barraclough <barraclough@apple.com>
- Rubber stamped by Sam Weinig.
- Rename UString::substr to substringSharingImpl, add to WTF::String.
- Now WTF::String can do everything that JSC::UString can do!
- * JavaScriptCore.exp:
- * bytecode/CodeBlock.cpp:
- (JSC::escapeQuotes):
- * bytecompiler/NodesCodegen.cpp:
- (JSC::substitute):
- * parser/SourceProvider.h:
- (JSC::UStringSourceProvider::getRange):
- * runtime/FunctionPrototype.cpp:
- (JSC::insertSemicolonIfNeeded):
- * runtime/JSGlobalObjectFunctions.cpp:
- (JSC::parseInt):
- * runtime/JSONObject.cpp:
- (JSC::gap):
- (JSC::Stringifier::indent):
- (JSC::Stringifier::unindent):
- * runtime/JSString.cpp:
- (JSC::JSString::replaceCharacter):
- * runtime/NumberPrototype.cpp:
- (JSC::numberProtoFuncToFixed):
- (JSC::numberProtoFuncToPrecision):
- * runtime/StringPrototype.cpp:
- (JSC::stringProtoFuncReplace):
- (JSC::trimString):
- * runtime/UString.cpp:
- (JSC::UString::substringSharingImpl):
- * runtime/UString.h:
- * wtf/text/WTFString.cpp:
- (WTF::String::substringSharingImpl):
- * wtf/text/WTFString.h:
- 2010-08-18 Gavin Barraclough <barraclough@apple.com>
- Windows build fix.
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
- * JavaScriptCore.xcodeproj/project.pbxproj:
- 2010-08-18 Gavin Barraclough <barraclough@apple.com>
- Windows build fix.
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
- * JavaScriptCore.xcodeproj/project.pbxproj:
- 2010-08-17 Gavin Barraclough <barraclough@apple.com>
- Reviewed by Sam Weinig.
- Bug 44146 - Remove toDouble/toUInt32 methods from UString.
- These methods all implement JavaScript language specific behaviour, and as such
- are not suited to being on a generic string object. They are also inefficient
- and incorrectly used, refactor & cleanup. Uses of these methods really divide
- out into two cases.
- ToNumber:
- Uses of toDouble from JSString and from parseFloat are implementing ecma's
- ToNumber conversion from strings (see ecma-262 9.3.1), so UString::toDouble
- should largely just be moved out to a global jsToNumber function. ToNumber is
- capable of recognizing either decimal or hexadecimal numbers, but parseFloat
- should only recognize decimal values. This is currently handled by testing for
- hexadecimal before calling toDouble, which should unnecessary - instead we can
- just split out the two parts to the grammar into separate functions. Also,
- strtod recognizes a set of literals (nan, inf, and infinity - all with any
- capitalization) - which are not defined by any of the specs we are implementing.
- To handle this we need to perform additional work in toDouble to convert the
- unsupported cases of infinities back to NaNs. Instead we should simply remove
- support for this literals from strtod. This should provide a more desirable
- behaviour for all clients of strtod.
- Indexed properties:
- Uses of the toStrictUInt32 methods are were all converting property names to
- indices, and all uses of toUInt32 were incorrect; in all cases we should have
- been calling toUInt32. This error results in some incorrect behaviour in the
- DOM (accessing property "0 " of a NodeList should fail; it currently does not).
- Move this method onto Identifier (our canonical property name), and make it
- always perform a strict conversion. Add a layout test to check NodeList does
- convert indexed property names correctly.
- * JavaScriptCore.exp:
- * runtime/Arguments.cpp:
- (JSC::Arguments::getOwnPropertySlot):
- (JSC::Arguments::getOwnPropertyDescriptor):
- (JSC::Arguments::put):
- (JSC::Arguments::deleteProperty):
- * runtime/Identifier.cpp:
- (JSC::Identifier::toUInt32):
- * runtime/Identifier.h:
- (JSC::Identifier::toUInt32):
- * runtime/JSArray.cpp:
- (JSC::JSArray::getOwnPropertySlot):
- (JSC::JSArray::getOwnPropertyDescriptor):
- (JSC::JSArray::put):
- (JSC::JSArray::deleteProperty):
- * runtime/JSArray.h:
- (JSC::Identifier::toArrayIndex):
- * runtime/JSByteArray.cpp:
- (JSC::JSByteArray::getOwnPropertySlot):
- (JSC::JSByteArray::getOwnPropertyDescriptor):
- (JSC::JSByteArray::put):
- * runtime/JSGlobalObjectFunctions.cpp:
- (JSC::isInfinity):
- (JSC::jsHexIntegerLiteral):
- (JSC::jsStrDecimalLiteral):
- (JSC::jsToNumber):
- (JSC::parseFloat):
- * runtime/JSGlobalObjectFunctions.h:
- * runtime/JSString.cpp:
- (JSC::JSString::getPrimitiveNumber):
- (JSC::JSString::toNumber):
- (JSC::JSString::getStringPropertyDescriptor):
- * runtime/JSString.h:
- (JSC::JSString::getStringPropertySlot):
- * runtime/ObjectPrototype.cpp:
- (JSC::ObjectPrototype::put):
- * runtime/StringObject.cpp:
- (JSC::StringObject::deleteProperty):
- * runtime/UString.cpp:
- * runtime/UString.h:
- * wtf/dtoa.cpp:
- (WTF::strtod):
- 2010-08-17 Gavin Barraclough <barraclough@apple.com>
- Reviewed by Sam Weinig.
- Bug 44099 - REGRESSION(r65468): Crashes in StringImpl::find
- Bug 44080 introuduced a couple of cases in which array bounds could be overrun.
- One of these was fixed in r65493, this patch fixes the other and address the
- concerns voiced in comment #6 by restructuring the loops to remove the code
- dupliction without introducing an additional if check.
- * wtf/text/StringImpl.cpp:
- (WTF::StringImpl::find):
- (WTF::StringImpl::findIgnoringCase):
- (WTF::StringImpl::reverseFind):
- (WTF::StringImpl::reverseFindIgnoringCase):
- 2010-08-17 No'am Rosenthal <noam.rosenthal@nokia.com>
- Reviewed by Ariya Hidayat.
- [Qt] Move the accelerated compositing build flag to the right place
- https://bugs.webkit.org/show_bug.cgi?id=43882
- * wtf/Platform.h:
- 2010-08-17 Yuta Kitamura <yutak@chromium.org>
- Reviewed by Shinichiro Hamaji.
- Avoid uninitialized memory read in StringImpl::find().
- REGRESSION(r65468): Crashes in StringImpl::find
- https://bugs.webkit.org/show_bug.cgi?id=44099
- * wtf/text/StringImpl.cpp:
- (WTF::StringImpl::find):
- 2010-08-16 Gavin Barraclough <barraclough@apple.com>
- Rubber stamped by Sam Weinig
- Add VectorTraits to String & DefaultHash traits to UString to unify behaviour.
- * runtime/UString.h:
- (JSC::UStringHash::hash):
- (JSC::UStringHash::equal):
- (WTF::):
- * wtf/text/WTFString.h:
- (WTF::):
- 2010-08-16 Gavin Barraclough <barraclough@apple.com>
- Rubber stamped by Sam Weinig
- Remove unnecessary includes from UString.h, add new includes as necessary.
- * profiler/CallIdentifier.h:
- * profiler/ProfileNode.h:
- * runtime/DateConversion.cpp:
- * runtime/Identifier.h:
- (JSC::IdentifierRepHash::hash):
- * runtime/RegExpCache.h:
- * runtime/RegExpKey.h:
- * runtime/UString.cpp:
- (JSC::UString::substr):
- * runtime/UString.h:
- * wtf/text/WTFString.h:
- 2010-08-16 Gavin Barraclough <barraclough@apple.com>
- Reviewed by Sam Weinig
- Bug 44080 - String find/reverseFind methods need tidying up
- These methods have a couple of problems with their interface, and implementation.
- These methods take and int index, and return an int - however this is problematic
- since on 64-bit string indices may have a full 32-bit range. This spills out into
- surrounding code, which unsafely casts string indices from unsigned to int. Code
- checking the result of these methods check for a mix of "== -1", "< 0", and
- "== notFound". Clean this up by changing these methods to take an unsigned
- starting index, and return a size_t. with a failed match indicated by notFound.
- reverseFind also has a special meaning for the starting index argument, in that a
- negative index is interpreted as an offset back from the end of the string. Remove
- this functionality, in the (1!) case where it is used we should just calculate the
- offset by subtracting from the string's length.
- The implementation has a few problems too. The code is not in webkit style, in
- using assorted abbreviations in variable names, and implementations of similar
- find methods with differing argument types were unnecessarily inconsistent. When
- find is passed const char* data the string would be handled as latin1 (zero
- extended to UTF-16) for all characters but the first; this is sign extended.
- Case-insensitive find is broken for unicode strings; the hashing optimization is
- not unicode safe, and could result in false negatives.
- Unify UString find methods to match String.
- * JavaScriptCore.exp:
- * bytecode/CodeBlock.cpp:
- (JSC::escapeQuotes):
- * bytecompiler/NodesCodegen.cpp:
- (JSC::substitute):
- * runtime/JSString.cpp:
- (JSC::JSString::replaceCharacter):
- * runtime/RegExp.cpp:
- (JSC::RegExp::RegExp):
- * runtime/RegExpKey.h:
- (JSC::RegExpKey::getFlagsValue):
- * runtime/StringPrototype.cpp:
- (JSC::substituteBackreferencesSlow):
- (JSC::substituteBackreferences):
- (JSC::stringProtoFuncReplace):
- (JSC::stringProtoFuncIndexOf):
- (JSC::stringProtoFuncLastIndexOf):
- (JSC::stringProtoFuncSplit):
- * runtime/UString.cpp:
- * runtime/UString.h:
- (JSC::UString::find):
- (JSC::UString::reverseFind):
- * wtf/text/AtomicString.h:
- (WTF::AtomicString::find):
- * wtf/text/StringImpl.cpp:
- (WTF::StringImpl::find):
- (WTF::StringImpl::findCaseInsensitive):
- (WTF::StringImpl::reverseFind):
- (WTF::StringImpl::reverseFindCaseInsensitive):
- (WTF::StringImpl::endsWith):
- (WTF::StringImpl::replace):
- * wtf/text/StringImpl.h:
- (WTF::StringImpl::startsWith):
- * wtf/text/WTFString.cpp:
- (WTF::String::split):
- * wtf/text/WTFString.h:
- (WTF::String::find):
- (WTF::String::reverseFind):
- (WTF::String::findCaseInsensitive):
- (WTF::String::reverseFindCaseInsensitive):
- (WTF::String::contains):
- (WTF::find):
- (WTF::reverseFind):
- 2010-08-16 Kevin Ollivier <kevino@theolliviers.com>
- [wx] Build fix, do not build WebCore as a convenience library as this leads to
- errors in the Win build w/export symbols and causes problems with DOM bindings
- debugging in gdb.
- * wscript:
- 2010-08-16 Leandro Pereira <leandro@profusion.mobi>
- [EFL] Build fix after r65366.
- * CMakeLists.txt: Use if (VAR) instead of if (${VAR}) to check if
- they're empty.
- * jsc/CMakeLists.txt: Ditto.
- * wtf/CMakeLists.txt: Ditto.
- 2010-08-15 Kevin Ollivier <kevino@theolliviers.com>
- [wx] Build fix, don't build intermediate source in DerivedSources dir.
- * wscript:
- 2010-08-14 Patrick Gansterer <paroga@paroga.com>
- Reviewed by Kenneth Rohde Christiansen.
- [CMake] Add preprocessor detection for generator scripts
- https://bugs.webkit.org/show_bug.cgi?id=43984
- * CMakeLists.txt:
- 2010-08-14 Patrick Gansterer <paroga@paroga.com>
- Reviewed by Kenneth Rohde Christiansen.
- [CMake] Set target properties only if available
- https://bugs.webkit.org/show_bug.cgi?id=43978
- * CMakeLists.txt:
- * jsc/CMakeLists.txt:
- * wtf/CMakeLists.txt:
- 2010-08-13 Kevin Ollivier <kevino@theolliviers.com>
- [wx] Build fix, add CString to the list of forwards.
- * wtf/Forward.h:
- 2010-08-13 Gavin Barraclough <barraclough@apple.com>
- Windows build fix
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
- 2010-08-13 Gavin Barraclough <barraclough@apple.com>
- Windows build fix
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
- 2010-08-13 Gavin Barraclough <barraclough@apple.com>
- Windows build fix
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
- 2010-08-13 Gavin Barraclough <barraclough@apple.com>
- Rubber stamped by Sam Weinig.
- Switch String::/UString::ascii() to return a CString.
- * JavaScriptCore.exp:
- * JavaScriptCore.xcodeproj/project.pbxproj:
- * bytecode/CodeBlock.cpp:
- (JSC::CodeBlock::dump):
- * bytecode/SamplingTool.cpp:
- (JSC::SamplingTool::dump):
- * interpreter/CallFrame.cpp:
- (JSC::CallFrame::dumpCaller):
- * jsc.cpp:
- (runWithScripts):
- (runInteractive):
- * runtime/Identifier.h:
- (JSC::Identifier::ascii):
- * runtime/ScopeChain.cpp:
- (JSC::ScopeChainNode::print):
- * runtime/UString.cpp:
- (JSC::UString::ascii):
- (JSC::UString::latin1):
- * runtime/UString.h:
- * wtf/text/StringImpl.cpp:
- (WTF::StringImpl::asciiOLD):
- * wtf/text/StringImpl.h:
- * wtf/text/WTFString.cpp:
- (WTF::String::ascii):
- (WTF::String::latin1):
- * wtf/text/WTFString.h:
- 2010-08-13 Gabor Loki <loki@webkit.org>
- Reviewed by Gavin Barraclough.
- Avoid increasing required alignment of target type warning on ARM
- https://bugs.webkit.org/show_bug.cgi?id=38045
- The reinterpret_cast<Type1*>([pointer to Type2]) expressions - where
- sizeof(Type1) > sizeof(Type2) - cause the following warning on ARM:
- increases required alignment of target type warnings.
- Casting the type of [pointer to Type2] object to void* bypasses the
- warning.
- * assembler/ARMAssembler.cpp:
- (JSC::ARMAssembler::executableCopy):
- * assembler/AssemblerBuffer.h:
- (JSC::AssemblerBuffer::putShortUnchecked):
- (JSC::AssemblerBuffer::putIntUnchecked):
- (JSC::AssemblerBuffer::putInt64Unchecked):
- * interpreter/RegisterFile.h:
- (JSC::RegisterFile::RegisterFile):
- (JSC::RegisterFile::grow):
- * jit/JITStubs.cpp:
- * pcre/pcre_compile.cpp:
- (jsRegExpCompile):
- * runtime/JSArray.cpp:
- (JSC::JSArray::putSlowCase):
- (JSC::JSArray::increaseVectorLength):
- (JSC::JSArray::increaseVectorPrefixLength):
- (JSC::JSArray::shiftCount):
- (JSC::JSArray::unshiftCount):
- * wtf/FastMalloc.cpp:
- (WTF::PageHeapAllocator::New):
- (WTF::TCMalloc_Central_FreeList::Populate):
- * wtf/MD5.cpp:
- (WTF::reverseBytes):
- (WTF::MD5::addBytes):
- (WTF::MD5::checksum):
- * wtf/StdLibExtras.h:
- (isPointerTypeAlignmentOkay):
- (reinterpret_cast_ptr):
- * wtf/Vector.h:
- (WTF::VectorBuffer::inlineBuffer):
- * wtf/qt/StringQt.cpp:
- (WTF::String::String):
- 2010-08-13 Gavin Barraclough <barraclough@apple.com>
- Reviewed by Sam Weinig
- Unify UString::UTF8String() & String::utf8() methods,
- remove UString::cost() & make atArrayIndex a free function.
- * JavaScriptCore.exp:
- * bytecode/CodeBlock.cpp:
- (JSC::constantName):
- (JSC::idName):
- (JSC::CodeBlock::registerName):
- (JSC::regexpName):
- (JSC::printGlobalResolveInfo):
- (JSC::printStructureStubInfo):
- (JSC::CodeBlock::printStructure):
- (JSC::CodeBlock::printStructures):
- * jsc.cpp:
- (functionPrint):
- (functionDebug):
- (runInteractive):
- (fillBufferWithContentsOfFile):
- * pcre/pcre_exec.cpp:
- (Histogram::~Histogram):
- * profiler/CallIdentifier.h:
- (JSC::CallIdentifier::c_str):
- * profiler/Profile.cpp:
- (JSC::Profile::debugPrintDataSampleStyle):
- * profiler/ProfileGenerator.cpp:
- (JSC::ProfileGenerator::willExecute):
- (JSC::ProfileGenerator::didExecute):
- * profiler/ProfileNode.cpp:
- (JSC::ProfileNode::debugPrintData):
- (JSC::ProfileNode::debugPrintDataSampleStyle):
- * runtime/Arguments.cpp:
- (JSC::Arguments::getOwnPropertySlot):
- (JSC::Arguments::getOwnPropertyDescriptor):
- (JSC::Arguments::put):
- (JSC::Arguments::deleteProperty):
- * runtime/DateConversion.cpp:
- (JSC::parseDate):
- * runtime/Identifier.h:
- (JSC::Identifier::toStrictUInt32):
- * runtime/JSArray.cpp:
- (JSC::JSArray::getOwnPropertySlot):
- (JSC::JSArray::getOwnPropertyDescriptor):
- (JSC::JSArray::put):
- (JSC::JSArray::deleteProperty):
- * runtime/JSArray.h:
- (JSC::toArrayIndex):
- * runtime/JSGlobalObjectFunctions.cpp:
- (JSC::encode):
- (JSC::parseInt):
- (JSC::globalFuncJSCPrint):
- * runtime/JSString.h:
- (JSC::RopeBuilder::JSString):
- * runtime/UString.cpp:
- (JSC::UString::toDouble):
- (JSC::putUTF8Triple):
- (JSC::UString::utf8):
- * runtime/UString.h:
- (JSC::UString::~UString):
- (JSC::UString::isNull):
- (JSC::UString::isEmpty):
- (JSC::UString::impl):
- * wtf/text/WTFString.cpp:
- (WTF::String::utf8):
- * wtf/text/WTFString.h:
- (WTF::String::~String):
- (WTF::String::swap):
- (WTF::String::isNull):
- (WTF::String::isEmpty):
- (WTF::String::impl):
- (WTF::String::length):
- (WTF::String::String):
- (WTF::String::isHashTableDeletedValue):
- 2010-08-12 Zoltan Herczeg <zherczeg@webkit.org>
- Reviewed by Gavin Barraclough.
- Refactoring the fpu code generator for the ARM port
- https://bugs.webkit.org/show_bug.cgi?id=43842
- Support up to 32 double precision registers, and the
- recent VFP instruction formats. This patch is mainly
- a style change which keeps the current functionality.
- * assembler/ARMAssembler.h:
- (JSC::ARMRegisters::):
- (JSC::ARMAssembler::):
- (JSC::ARMAssembler::emitInst):
- (JSC::ARMAssembler::emitDoublePrecisionInst):
- (JSC::ARMAssembler::emitSinglePrecisionInst):
- (JSC::ARMAssembler::vadd_f64_r):
- (JSC::ARMAssembler::vdiv_f64_r):
- (JSC::ARMAssembler::vsub_f64_r):
- (JSC::ARMAssembler::vmul_f64_r):
- (JSC::ARMAssembler::vcmp_f64_r):
- (JSC::ARMAssembler::vsqrt_f64_r):
- (JSC::ARMAssembler::vmov_vfp_r):
- (JSC::ARMAssembler::vmov_arm_r):
- (JSC::ARMAssembler::vcvt_f64_s32_r):
- (JSC::ARMAssembler::vcvt_s32_f64_r):
- (JSC::ARMAssembler::vmrs_apsr):
- * assembler/MacroAssemblerARM.h:
- (JSC::MacroAssemblerARM::addDouble):
- (JSC::MacroAssemblerARM::divDouble):
- (JSC::MacroAssemblerARM::subDouble):
- (JSC::MacroAssemblerARM::mulDouble):
- (JSC::MacroAssemblerARM::sqrtDouble):
- (JSC::MacroAssemblerARM::convertInt32ToDouble):
- (JSC::MacroAssemblerARM::branchDouble):
- (JSC::MacroAssemblerARM::branchConvertDoubleToInt32):
- 2010-08-12 Sheriff Bot <webkit.review.bot@gmail.com>
- Unreviewed, rolling out r65295.
- http://trac.webkit.org/changeset/65295
- https://bugs.webkit.org/show_bug.cgi?id=43950
- It broke 4 sputnik tests (Requested by Ossy on #webkit).
- * JavaScriptCore.exp:
- * bytecode/CodeBlock.cpp:
- (JSC::constantName):
- (JSC::idName):
- (JSC::CodeBlock::registerName):
- (JSC::regexpName):
- (JSC::printGlobalResolveInfo):
- (JSC::printStructureStubInfo):
- (JSC::CodeBlock::printStructure):
- (JSC::CodeBlock::printStructures):
- * jsc.cpp:
- (functionPrint):
- (functionDebug):
- (runInteractive):
- (fillBufferWithContentsOfFile):
- * pcre/pcre_exec.cpp:
- (Histogram::~Histogram):
- * profiler/CallIdentifier.h:
- (JSC::CallIdentifier::c_str):
- * profiler/Profile.cpp:
- (JSC::Profile::debugPrintDataSampleStyle):
- * profiler/ProfileGenerator.cpp:
- (JSC::ProfileGenerator::willExecute):
- (JSC::ProfileGenerator::didExecute):
- * profiler/ProfileNode.cpp:
- (JSC::ProfileNode::debugPrintData):
- (JSC::ProfileNode::debugPrintDataSampleStyle):
- * runtime/Arguments.cpp:
- (JSC::Arguments::getOwnPropertySlot):
- (JSC::Arguments::getOwnPropertyDescriptor):
- (JSC::Arguments::put):
- (JSC::Arguments::deleteProperty):
- * runtime/DateConversion.cpp:
- (JSC::parseDate):
- * runtime/Identifier.h:
- (JSC::Identifier::Identifier):
- (JSC::Identifier::toArrayIndex):
- * runtime/JSArray.cpp:
- (JSC::JSArray::getOwnPropertySlot):
- (JSC::JSArray::getOwnPropertyDescriptor):
- (JSC::JSArray::put):
- (JSC::JSArray::deleteProperty):
- * runtime/JSArray.h:
- * runtime/JSGlobalObjectFunctions.cpp:
- (JSC::encode):
- (JSC::parseInt):
- (JSC::globalFuncJSCPrint):
- * runtime/JSString.h:
- (JSC::RopeBuilder::JSString):
- * runtime/UString.cpp:
- (JSC::UString::toDouble):
- (JSC::UString::UTF8String):
- * runtime/UString.h:
- (JSC::UString::isNull):
- (JSC::UString::isEmpty):
- (JSC::UString::impl):
- (JSC::UString::cost):
- (JSC::UString::~UString):
- (JSC::UString::toArrayIndex):
- * wtf/text/WTFString.cpp:
- (WTF::String::utf8):
- * wtf/text/WTFString.h:
- (WTF::String::String):
- (WTF::String::isHashTableDeletedValue):
- (WTF::String::length):
- (WTF::String::operator[]):
- (WTF::String::isNull):
- (WTF::String::isEmpty):
- (WTF::String::impl):
- 2010-08-12 Gavin Barraclough <barraclough@apple.com>
- Windows build fix.
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
- 2010-08-12 Gavin Barraclough <barraclough@apple.com>
- Reviewed by Sam Weinig
- Unify UString::UTF8String() & String::utf8() methods,
- remove UString::cost() & make atArrayIndex a free function.
- * JavaScriptCore.exp:
- * bytecode/CodeBlock.cpp:
- (JSC::constantName):
- (JSC::idName):
- (JSC::CodeBlock::registerName):
- (JSC::regexpName):
- (JSC::printGlobalResolveInfo):
- (JSC::printStructureStubInfo):
- (JSC::CodeBlock::printStructure):
- (JSC::CodeBlock::printStructures):
- * jsc.cpp:
- (functionPrint):
- (functionDebug):
- (runInteractive):
- (fillBufferWithContentsOfFile):
- * pcre/pcre_exec.cpp:
- (Histogram::~Histogram):
- * profiler/CallIdentifier.h:
- (JSC::CallIdentifier::c_str):
- * profiler/Profile.cpp:
- (JSC::Profile::debugPrintDataSampleStyle):
- * profiler/ProfileGenerator.cpp:
- (JSC::ProfileGenerator::willExecute):
- (JSC::ProfileGenerator::didExecute):
- * profiler/ProfileNode.cpp:
- (JSC::ProfileNode::debugPrintData):
- (JSC::ProfileNode::debugPrintDataSampleStyle):
- * runtime/Arguments.cpp:
- (JSC::Arguments::getOwnPropertySlot):
- (JSC::Arguments::getOwnPropertyDescriptor):
- (JSC::Arguments::put):
- (JSC::Arguments::deleteProperty):
- * runtime/DateConversion.cpp:
- (JSC::parseDate):
- * runtime/Identifier.h:
- (JSC::Identifier::toStrictUInt32):
- * runtime/JSArray.cpp:
- (JSC::JSArray::getOwnPropertySlot):
- (JSC::JSArray::getOwnPropertyDescriptor):
- (JSC::JSArray::put):
- (JSC::JSArray::deleteProperty):
- * runtime/JSArray.h:
- (JSC::toArrayIndex):
- * runtime/JSGlobalObjectFunctions.cpp:
- (JSC::encode):
- (JSC::parseInt):
- (JSC::globalFuncJSCPrint):
- * runtime/JSString.h:
- (JSC::RopeBuilder::JSString):
- * runtime/UString.cpp:
- (JSC::UString::toDouble):
- (JSC::putUTF8Triple):
- (JSC::UString::utf8):
- * runtime/UString.h:
- (JSC::UString::~UString):
- (JSC::UString::isNull):
- (JSC::UString::isEmpty):
- (JSC::UString::impl):
- * wtf/text/WTFString.cpp:
- (WTF::String::utf8):
- * wtf/text/WTFString.h:
- (WTF::String::~String):
- (WTF::String::swap):
- (WTF::String::isNull):
- (WTF::String::isEmpty):
- (WTF::String::impl):
- (WTF::String::length):
- (WTF::String::String):
- (WTF::String::isHashTableDeletedValue):
- 2010-08-12 Gavin Barraclough <barraclough@apple.com>
- Eeerk! - revert accidentally committed changes in UString!
- * JavaScriptCore.exp:
- * runtime/UString.cpp:
- (JSC::UString::UString):
- * runtime/UString.h:
- 2010-08-12 Gavin Barraclough <barraclough@apple.com>
- Reviewed by Sam Weinig
- Change UString constructors to match those in WTF::String.
- This changes behaviour of UString((char*)0) to create null
- strings, akin to UString() rather than UString::empty().
- (This matches String). Remove unused constructors from
- UString, and add null-terminated UTF-16 constructor, to
- match String. Move String's constructor into the .cpp to
- match UString.
- * JavaScriptCore.exp:
- * debugger/DebuggerCallFrame.cpp:
- (JSC::DebuggerCallFrame::calculatedFunctionName):
- * runtime/RegExpKey.h:
- (JSC::RegExpKey::RegExpKey):
- * runtime/SmallStrings.cpp:
- (JSC::SmallStrings::createSingleCharacterString):
- * runtime/UString.cpp:
- (JSC::UString::UString):
- * runtime/UString.h:
- (JSC::UString::UString):
- (JSC::UString::swap):
- (JSC::UString::adopt):
- (JSC::UString::operator[]):
- * wtf/text/WTFString.h:
- (WTF::String::String):
- (WTF::String::adopt):
- (WTF::String::operator[]):
- 2010-08-12 David Levin <levin@chromium.org>
- Reviewed by NOBODY (build fix).
- * runtime/UString.h: Removed unneccessary #include.
- 2010-08-12 Gavin Barraclough <barraclough@apple.com>
- Reviewed by Sam Weinig
- Revert changes to ALWAYS_INLINEness of a couple of functions in UString.
- This appears to have degraded performance.
- * runtime/UString.cpp:
- (JSC::UString::ascii):
- * runtime/UString.h:
- (JSC::UString::length):
- (JSC::UString::isEmpty):
- (JSC::UString::~UString):
- 2010-08-12 Csaba Osztrogonác <ossy@webkit.org>
- Reviewed by Antonio Gomes.
- [Qt] Fix warnings: unknown conversion type character 'l' in format
- https://bugs.webkit.org/show_bug.cgi?id=43359
- Qt port doesn't call any printf in String::format(...), consequently
- using __attribute__((format(printf,m,n))) is incorrect and causes
- false positive warnings on Windows if you build with MinGW.
- Qt port calls QString::vsprintf(...) , which is platform
- independent, and handles %lli, %llu and %llx on all platforms.
- (http://trac.webkit.org/changeset/35712)
- * wtf/text/WTFString.h:
- 2010-08-12 Gabor Loki <loki@webkit.org>
- Reviewed by Geoffrey Garen.
- Fix the array subscript is above array bounds warning in ByteArray on ARM.
- https://bugs.webkit.org/show_bug.cgi?id=43358
- The warning is very similar to this one: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37861
- * wtf/ByteArray.cpp:
- (WTF::ByteArray::create):
- 2010-08-12 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk>
- Reviewed by Martin Robinson.
- [GTK] Use GSettings to save/restore Web Inspector settings
- https://bugs.webkit.org/show_bug.cgi?id=43512
- * wtf/gobject/GRefPtr.cpp: Added support for GVariant, used by our
- GSettings support.
- (WTF::refGPtr):
- (WTF::derefGPtr):
- * wtf/gobject/GRefPtr.h:
- 2010-08-12 Gabor Loki <loki@webkit.org>
- Reviewed by Simon Hausmann.
- The scratch register should be saved in YARR with ARM JIT
- https://bugs.webkit.org/show_bug.cgi?id=43910
- Reported by Jocelyn Turcotte.
- * yarr/RegexJIT.cpp:
- (JSC::Yarr::RegexGenerator::generateEnter):
- (JSC::Yarr::RegexGenerator::generateReturn):
- 2010-08-11 Gavin Barraclough <barraclough@apple.com>
- Windows build fix.
- * JavaScriptCore.xcodeproj/project.pbxproj:
- * wtf/Forward.h:
- 2010-08-11 Leo Yang <leo.yang@torchmobile.com.cn>
- Reviewed by Geoffrey Garen.
- Date("") should be an invalid date. For IE, Firefox and Chrome, Date("") is invalid date,
- which means isNaN(new Date("")) should return true.
- https://bugs.webkit.org/show_bug.cgi?id=43793
- Tests: fast/js/date-constructor.html
- * runtime/JSGlobalData.cpp:
- (JSC::JSGlobalData::resetDateCache):
- 2010-08-11 Gavin Barraclough <barraclough@apple.com>
- Windows & !JIT build fix.
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
- * JavaScriptCore.xcodeproj/project.pbxproj:
- * runtime/RegExp.cpp:
- (JSC::RegExp::match):
- 2010-08-11 Gavin Barraclough <barraclough@apple.com>
- Rubber stamp by sam weinig
- Touch a file to stop the bot rolling a bit change out!
- * runtime/UString.cpp:
- (JSC::UString::ascii):
- 2010-08-11 Kevin Ollivier <kevino@theolliviers.com>
- [wx] Build fix for wx and WebDOM bindings, add CString classes to the list of forwards.
- * wtf/Forward.h:
- 2010-08-11 Gavin Barraclough <barraclough@apple.com>
- Rubber stamps by Darin Adler & Sam Weinig.
- Bug 43867 - Some UString cleanup
- Change JSC::UString data(), size(), and from(), to characters(), length(), and number() to match WTF::String.
- Move string concatenation methods to a new header to simplify down UString.h. Remove is8Bit().
- * API/JSClassRef.cpp:
- (OpaqueJSClass::~OpaqueJSClass):
- (OpaqueJSClass::className):
- * API/OpaqueJSString.cpp:
- (OpaqueJSString::create):
- * JavaScriptCore.exp:
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
- * JavaScriptCore.xcodeproj/project.pbxproj:
- * bytecode/CodeBlock.cpp:
- (JSC::constantName):
- (JSC::idName):
- (JSC::CodeBlock::registerName):
- (JSC::regexpName):
- * bytecode/EvalCodeCache.h:
- (JSC::EvalCodeCache::get):
- * bytecompiler/NodesCodegen.cpp:
- (JSC::ResolveNode::emitBytecode):
- (JSC::FunctionCallResolveNode::emitBytecode):
- (JSC::ReadModifyResolveNode::emitBytecode):
- (JSC::processClauseList):
- * parser/ASTBuilder.h:
- (JSC::ASTBuilder::createRegex):
- * parser/ParserArena.h:
- (JSC::IdentifierArena::makeNumericIdentifier):
- * parser/SourceProvider.h:
- (JSC::UStringSourceProvider::data):
- (JSC::UStringSourceProvider::length):
- * profiler/Profiler.cpp:
- * runtime/Arguments.cpp:
- (JSC::Arguments::getOwnPropertySlot):
- (JSC::Arguments::getOwnPropertyNames):
- (JSC::Arguments::put):
- (JSC::Arguments::deleteProperty):
- * runtime/ArrayPrototype.cpp:
- (JSC::arrayProtoFuncToString):
- * runtime/DatePrototype.cpp:
- (JSC::formatLocaleDate):
- * runtime/ExceptionHelpers.cpp:
- * runtime/FunctionConstructor.cpp:
- * runtime/FunctionPrototype.cpp:
- (JSC::insertSemicolonIfNeeded):
- * runtime/Identifier.h:
- (JSC::Identifier::characters):
- (JSC::Identifier::length):
- * runtime/JSGlobalObjectFunctions.cpp:
- (JSC::decode):
- (JSC::parseInt):
- (JSC::parseFloat):
- (JSC::globalFuncEscape):
- (JSC::globalFuncUnescape):
- * runtime/JSNumberCell.cpp:
- (JSC::JSNumberCell::toString):
- * runtime/JSONObject.cpp:
- (JSC::gap):
- (JSC::Stringifier::appendQuotedString):
- (JSC::Stringifier::appendStringifiedValue):
- (JSC::Stringifier::indent):
- (JSC::Stringifier::unindent):
- (JSC::Walker::walk):
- * runtime/JSString.cpp:
- (JSC::JSString::replaceCharacter):
- (JSC::JSString::getIndexSlowCase):
- * runtime/JSString.h:
- (JSC::RopeBuilder::JSString):
- (JSC::RopeBuilder::appendValueInConstructAndIncrementLength):
- (JSC::RopeBuilder::fiberCount):
- (JSC::jsSingleCharacterSubstring):
- (JSC::jsNontrivialString):
- (JSC::JSString::getIndex):
- (JSC::jsString):
- (JSC::jsStringWithFinalizer):
- (JSC::jsSubstring):
- (JSC::jsOwnedString):
- * runtime/JSStringBuilder.h:
- (JSC::JSStringBuilder::append):
- * runtime/LiteralParser.h:
- (JSC::LiteralParser::Lexer::Lexer):
- * runtime/NumberPrototype.cpp:
- (JSC::numberProtoFuncToString):
- (JSC::numberProtoFuncToFixed):
- (JSC::numberProtoFuncToExponential):
- (JSC::numberProtoFuncToPrecision):
- * runtime/NumericStrings.h:
- (JSC::NumericStrings::add):
- (JSC::NumericStrings::lookupSmallString):
- * runtime/Operations.h:
- (JSC::jsString):
- * runtime/RegExp.cpp:
- (JSC::RegExp::match):
- * runtime/RegExpCache.cpp:
- (JSC::RegExpCache::lookupOrCreate):
- (JSC::RegExpCache::create):
- * runtime/RegExpConstructor.cpp:
- (JSC::RegExpConstructor::getRightContext):
- * runtime/RegExpObject.cpp:
- (JSC::RegExpObject::match):
- * runtime/RegExpPrototype.cpp:
- (JSC::regExpProtoFuncToString):
- * runtime/StringBuilder.h:
- (JSC::StringBuilder::append):
- * runtime/StringConcatenate.h: Copied from JavaScriptCore/runtime/UString.h.
- (JSC::):
- (JSC::sumWithOverflow):
- (JSC::tryMakeString):
- (JSC::makeString):
- * runtime/StringObject.cpp:
- (JSC::StringObject::getOwnPropertyNames):
- * runtime/StringPrototype.cpp:
- (JSC::substituteBackreferencesSlow):
- (JSC::localeCompare):
- (JSC::jsSpliceSubstringsWithSeparators):
- (JSC::stringProtoFuncReplace):
- (JSC::stringProtoFuncCharAt):
- (JSC::stringProtoFuncCharCodeAt):
- (JSC::stringProtoFuncIndexOf):
- (JSC::stringProtoFuncLastIndexOf):
- (JSC::stringProtoFuncSlice):
- (JSC::stringProtoFuncSplit):
- (JSC::stringProtoFuncSubstr):
- (JSC::stringProtoFuncSubstring):
- (JSC::stringProtoFuncToLowerCase):
- (JSC::stringProtoFuncToUpperCase):
- (JSC::stringProtoFuncFontsize):
- (JSC::stringProtoFuncLink):
- (JSC::trimString):
- * runtime/UString.cpp:
- (JSC::UString::number):
- (JSC::UString::ascii):
- (JSC::UString::operator[]):
- (JSC::UString::toDouble):
- (JSC::UString::find):
- (JSC::UString::rfind):
- (JSC::UString::substr):
- (JSC::operator==):
- (JSC::operator<):
- (JSC::operator>):
- (JSC::UString::UTF8String):
- * runtime/UString.h:
- (JSC::UString::UString):
- (JSC::UString::adopt):
- (JSC::UString::length):
- (JSC::UString::characters):
- (JSC::UString::isNull):
- (JSC::UString::isEmpty):
- (JSC::UString::impl):
- (JSC::UString::cost):
- (JSC::operator==):
- (JSC::operator!=):
- (JSC::codePointCompare):
- (JSC::UString::toArrayIndex):
- (JSC::IdentifierRepHash::hash):
- (WTF::):
- * yarr/RegexJIT.cpp:
- (JSC::Yarr::jitCompileRegex):
- * yarr/RegexParser.h:
- (JSC::Yarr::Parser::Parser):
- 2010-08-11 Gabor Loki <loki@webkit.org>
- Qt build fix (ARMv7).
- Fix invalid conversion from int to Condition.
- Add ARMv7Assembler.cpp to JavaScriptCore.pro.
- * JavaScriptCore.pro:
- * assembler/ARMv7Assembler.h:
- (JSC::ARMv7Assembler::):
- (JSC::ARMv7Assembler::JmpSrc::JmpSrc):
- 2010-08-11 Nathan Lawrence <nlawrence@apple.com>
- Reviewed by Geoffrey Garen.
- At collection time, we frequently want to mark a cell, while checking
- whether it was originally checked. Previously, this was a get
- operation follwed by a set operation. Fusing the two saves
- computation and gives a 0.5% sunspider speedup.
- * runtime/Collector.h:
- (JSC::CollectorBitmap::getset):
- (JSC::Heap::checkMarkCell):
- * runtime/JSArray.h:
- (JSC::MarkStack::drain):
- * runtime/JSCell.h:
- (JSC::MarkStack::append):
- 2010-08-11 Steve Falkenburg <sfalken@apple.com>
- Reviewed by Adam Roben.
- Improve vsprops copying for Windows build
- https://bugs.webkit.org/show_bug.cgi?id=41982
- When we detect a new SDK, always copy a new set of vsprops files.
- Previously, if someone updated their SDK after updating their sources,
- they could end up with out-of-date vsprops files.
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreGenerated.make:
- 2010-08-10 Darin Adler <darin@apple.com>
- Reviewed by Sam Weinig.
- Add leakRef and clear to all RefPtr variants
- https://bugs.webkit.org/show_bug.cgi?id=42389
- * API/JSRetainPtr.h: Changed all uses of "template <...>" to instead do
- "template<...>". We should probably put this in the style guide and do it
- consitently. Fixed other minor style issues. Defined many of the inlined
- functions outside the class definition, to avoid style checker warnings
- about multiple statements on a single line and for slightly better clarity
- of the class definition itself. Renamed releaseRef to leakRef. Added a
- releaseRef that calls leakRef so we don't have to rename all callers oat
- once. Added a clear function.
- * wtf/PassRefPtr.h: Changed all uses of releaseRef to leakRef.
- n
- * wtf/RefPtr.h: Changed all uses of "template <...>" to instead do
- "template<...>". Tidied up declarations and comments a bit.
- Changed all uses of releaseRef to leakRef.
- * wtf/RetainPtr.h: Changed all uses of "template <...>" to instead do
- "template<...>". Defined many of the inlined functions outside the class
- definition, to avoid style checker warnings about multiple statements on
- a single line and for slightly better clarity of the class definition itself.
- Renamed releaseRef to leakRef. Added a releaseRef that calls leakRef so we
- don't have to rename all callers at once. Added a clear function.
- 2010-08-10 Dumitru Daniliuc <dumi@chromium.org>
- Unreviewed, reverting an unintentional change to a file submitted in r65108.
- * bytecode/CodeBlock.h:
- (JSC::binaryChop):
- 2010-08-10 Gavin Barraclough <barraclough@apple.com>
- Rubber stamped by Sam Weinig
- Bug 43817 - Remove UString::Rep
- UString::Rep has for a long time been replaced by UStringImpl (Rep
- remaining as a typedef). UStringImpl has since been removed too
- (unified with StringImpl). Remove Rep, rename rep() to impl() and
- m_rep to m_impl. Also add impl() method to Identifier, and rename
- its UString member from _ustring to m_string.
- * API/JSCallbackObject.h:
- (JSC::JSCallbackObjectData::JSPrivatePropertyMap::getPrivateProperty):
- (JSC::JSCallbackObjectData::JSPrivatePropertyMap::setPrivateProperty):
- (JSC::JSCallbackObjectData::JSPrivatePropertyMap::deletePrivateProperty):
- * API/JSCallbackObjectFunctions.h:
- (JSC::::getOwnPropertySlot):
- (JSC::::put):
- (JSC::::deleteProperty):
- (JSC::::getOwnPropertyNames):
- (JSC::::staticValueGetter):
- (JSC::::staticFunctionGetter):
- * API/JSClassRef.cpp:
- (tryCreateStringFromUTF8):
- (OpaqueJSClass::OpaqueJSClass):
- (OpaqueJSClass::~OpaqueJSClass):
- (OpaqueJSClassContextData::OpaqueJSClassContextData):
- * API/JSClassRef.h:
- * API/OpaqueJSString.cpp:
- (OpaqueJSString::ustring):
- * bytecode/EvalCodeCache.h:
- (JSC::EvalCodeCache::get):
- * bytecode/JumpTable.h:
- (JSC::StringJumpTable::offsetForValue):
- (JSC::StringJumpTable::ctiForValue):
- * bytecompiler/BytecodeGenerator.cpp:
- (JSC::BytecodeGenerator::addVar):
- (JSC::BytecodeGenerator::addGlobalVar):
- (JSC::BytecodeGenerator::BytecodeGenerator):
- (JSC::BytecodeGenerator::addParameter):
- (JSC::BytecodeGenerator::registerFor):
- (JSC::BytecodeGenerator::willResolveToArguments):
- (JSC::BytecodeGenerator::uncheckedRegisterForArguments):
- (JSC::BytecodeGenerator::constRegisterFor):
- (JSC::BytecodeGenerator::isLocal):
- (JSC::BytecodeGenerator::isLocalConstant):
- (JSC::BytecodeGenerator::addConstant):
- (JSC::BytecodeGenerator::emitLoad):
- (JSC::BytecodeGenerator::findScopedProperty):
- (JSC::keyForCharacterSwitch):
- (JSC::prepareJumpTableForStringSwitch):
- * bytecompiler/BytecodeGenerator.h:
- * bytecompiler/NodesCodegen.cpp:
- (JSC::processClauseList):
- * interpreter/Interpreter.cpp:
- (JSC::Interpreter::privateExecute):
- * jit/JITStubs.cpp:
- (JSC::DEFINE_STUB_FUNCTION):
- * parser/JSParser.cpp:
- (JSC::JSParser::parseStrictObjectLiteral):
- * pcre/pcre_exec.cpp:
- (Histogram::add):
- * profiler/CallIdentifier.h:
- (JSC::CallIdentifier::Hash::hash):
- * profiler/Profile.cpp:
- * profiler/ProfileNode.cpp:
- (JSC::ProfileNode::debugPrintDataSampleStyle):
- * profiler/ProfileNode.h:
- * runtime/ArrayPrototype.cpp:
- (JSC::arrayProtoFuncToString):
- * runtime/Identifier.cpp:
- (JSC::Identifier::equal):
- (JSC::IdentifierCStringTranslator::hash):
- (JSC::IdentifierCStringTranslator::equal):
- (JSC::IdentifierCStringTranslator::translate):
- (JSC::Identifier::add):
- (JSC::IdentifierUCharBufferTranslator::hash):
- (JSC::IdentifierUCharBufferTranslator::equal):
- (JSC::IdentifierUCharBufferTranslator::translate):
- (JSC::Identifier::addSlowCase):
- * runtime/Identifier.h:
- (JSC::Identifier::Identifier):
- (JSC::Identifier::ustring):
- (JSC::Identifier::impl):
- (JSC::Identifier::data):
- (JSC::Identifier::size):
- (JSC::Identifier::ascii):
- (JSC::Identifier::isNull):
- (JSC::Identifier::isEmpty):
- (JSC::Identifier::toUInt32):
- (JSC::Identifier::toStrictUInt32):
- (JSC::Identifier::toArrayIndex):
- (JSC::Identifier::toDouble):
- (JSC::Identifier::equal):
- (JSC::Identifier::add):
- * runtime/InitializeThreading.cpp:
- (JSC::initializeThreadingOnce):
- * runtime/InternalFunction.cpp:
- (JSC::InternalFunction::displayName):
- * runtime/JSFunction.cpp:
- (JSC::JSFunction::displayName):
- * runtime/JSGlobalObject.h:
- (JSC::JSGlobalObject::addStaticGlobals):
- * runtime/JSStaticScopeObject.h:
- (JSC::JSStaticScopeObject::JSStaticScopeObject):
- * runtime/JSString.h:
- (JSC::):
- (JSC::RopeBuilder::appendStringInConstruct):
- (JSC::RopeBuilder::appendValueInConstructAndIncrementLength):
- (JSC::jsSingleCharacterSubstring):
- (JSC::jsSubstring):
- * runtime/JSVariableObject.cpp:
- (JSC::JSVariableObject::deleteProperty):
- (JSC::JSVariableObject::symbolTableGet):
- * runtime/JSVariableObject.h:
- (JSC::JSVariableObject::symbolTableGet):
- (JSC::JSVariableObject::symbolTablePut):
- (JSC::JSVariableObject::symbolTablePutWithAttributes):
- * runtime/Lookup.cpp:
- (JSC::HashTable::createTable):
- (JSC::HashTable::deleteTable):
- * runtime/Lookup.h:
- (JSC::HashEntry::initialize):
- (JSC::HashEntry::setKey):
- (JSC::HashEntry::key):
- (JSC::HashTable::entry):
- * runtime/PropertyMapHashTable.h:
- (JSC::PropertyMapEntry::PropertyMapEntry):
- * runtime/PropertyNameArray.cpp:
- (JSC::PropertyNameArray::add):
- * runtime/PropertyNameArray.h:
- (JSC::PropertyNameArray::add):
- (JSC::PropertyNameArray::addKnownUnique):
- * runtime/RegExp.cpp:
- (JSC::RegExp::match):
- * runtime/RegExpCache.cpp:
- (JSC::RegExpCache::create):
- * runtime/RegExpKey.h:
- (JSC::RegExpKey::RegExpKey):
- * runtime/SmallStrings.cpp:
- (JSC::SmallStringsStorage::rep):
- (JSC::SmallStrings::singleCharacterStringRep):
- * runtime/SmallStrings.h:
- * runtime/StringPrototype.cpp:
- (JSC::jsSpliceSubstringsWithSeparators):
- (JSC::stringProtoFuncMatch):
- (JSC::stringProtoFuncSearch):
- * runtime/Structure.cpp:
- (JSC::Structure::~Structure):
- (JSC::Structure::despecifyDictionaryFunction):
- (JSC::Structure::addPropertyTransitionToExistingStructure):
- (JSC::Structure::addPropertyTransition):
- (JSC::Structure::copyPropertyTable):
- (JSC::Structure::get):
- (JSC::Structure::despecifyFunction):
- (JSC::Structure::put):
- (JSC::Structure::hasTransition):
- (JSC::Structure::remove):
- (JSC::Structure::checkConsistency):
- * runtime/Structure.h:
- (JSC::Structure::get):
- (JSC::Structure::hasTransition):
- * runtime/StructureTransitionTable.h:
- * runtime/SymbolTable.h:
- * runtime/UString.cpp:
- (JSC::UString::UString):
- (JSC::UString::toStrictUInt32):
- (JSC::UString::substr):
- * runtime/UString.h:
- (JSC::UString::UString):
- (JSC::UString::adopt):
- (JSC::UString::data):
- (JSC::UString::size):
- (JSC::UString::isNull):
- (JSC::UString::isEmpty):
- (JSC::UString::impl):
- (JSC::UString::cost):
- (JSC::operator==):
- (JSC::codePointCompare):
- (JSC::IdentifierRepHash::hash):
- (WTF::):
- 2010-08-10 Gavin Barraclough <barraclough@apple.com>
- Bug 43816 - Remove UStringImpl
- The class was actually removed a long time ago, replaced by StringImpl.
- UStringImpl is just a typedef onto StringImpl. Remove this.
- * API/JSClassRef.cpp:
- (OpaqueJSClass::OpaqueJSClass):
- * JavaScriptCore.xcodeproj/project.pbxproj:
- * runtime/JSString.cpp:
- (JSC::JSString::resolveRope):
- (JSC::JSString::replaceCharacter):
- * runtime/JSString.h:
- (JSC::RopeBuilder::RopeIterator::operator*):
- (JSC::RopeBuilder::JSString):
- (JSC::RopeBuilder::appendStringInConstruct):
- (JSC::RopeBuilder::appendValueInConstructAndIncrementLength):
- (JSC::jsSingleCharacterSubstring):
- (JSC::jsSubstring):
- * runtime/JSStringBuilder.h:
- (JSC::jsMakeNontrivialString):
- * runtime/RopeImpl.cpp:
- (JSC::RopeImpl::derefFibersNonRecursive):
- * runtime/RopeImpl.h:
- (JSC::RopeImpl::deref):
- * runtime/SmallStrings.cpp:
- (JSC::SmallStringsStorage::SmallStringsStorage):
- * runtime/StringConstructor.cpp:
- (JSC::stringFromCharCodeSlowCase):
- * runtime/StringPrototype.cpp:
- (JSC::jsSpliceSubstringsWithSeparators):
- (JSC::stringProtoFuncFontsize):
- (JSC::stringProtoFuncLink):
- * runtime/UString.cpp:
- (JSC::initializeUString):
- * runtime/UString.h:
- (JSC::UString::adopt):
- (JSC::tryMakeString):
- (JSC::makeString):
- * runtime/UStringImpl.h: Removed.
- 2010-08-10 Patrick Gansterer <paroga@paroga.com>
- Reviewed by Eric Seidel.
- Make FastMalloc more portable.
- https://bugs.webkit.org/show_bug.cgi?id=41790
- * wtf/FastMalloc.cpp:
- (WTF::TCMalloc_Central_FreeList::Populate):
- (WTF::TCMalloc_ThreadCache::CreateCacheIfNecessary):
- 2010-08-10 Patrick Gansterer <paroga@paroga.com>
- Reviewed by David Levin.
- [WINCE] Buildfix for CE 6.0
- https://bugs.webkit.org/show_bug.cgi?id=43027
- CE 6.0 doesn't define localtime in the system include files.
- * wtf/Platform.h: Include ce_time.h on all OS(WINCE).
- 2010-08-10 Gavin Barraclough <barraclough@apple.com>
- Rubber stamped by Sam Weinig.
- Bug 43786 - Move AtomicStringHash from WebCore to WTF
- Also remove deprecated string headers from WebCore/platform/text.
- * GNUmakefile.am:
- * JavaScriptCore.gypi:
- * JavaScriptCore.vcproj/WTF/WTF.vcproj:
- * JavaScriptCore.xcodeproj/project.pbxproj:
- * wtf/text/AtomicString.h:
- * wtf/text/AtomicStringHash.h: Copied from WebCore/platform/text/AtomicStringHash.h.
- 2010-08-09 Oliver Hunt <oliver@apple.com>
- Fix Qt/ARM again, this time including the other changed file.
- * jit/JIT.h:
- 2010-08-09 Oliver Hunt <oliver@apple.com>
- Fix Qt/ARM
- C++ overload resolution I stab at thee
- * jit/JITInlineMethods.h:
- (JSC::JIT::beginUninterruptedSequence):
- (JSC::JIT::endUninterruptedSequence):
- 2010-08-09 Oliver Hunt <oliver@apple.com>
- Reviewed by Gavin Barraclough.
- Allow an assembler/macroassembler to compact branches to more concise forms when linking
- https://bugs.webkit.org/show_bug.cgi?id=43745
- This patch makes it possible for an assembler to convert jumps into a different
- (presumably more efficient) form at link time. Currently implemented in the
- ARMv7 JIT as that already had logic to delay linking of jumps until the end of
- compilation already. The ARMv7 JIT chooses between either a 4 byte short jump
- or a full 32-bit offset (and rewrites ITTT instructions as appropriate), so does
- not yet produce the most compact form possible. The general design of the linker
- should make it relatively simple to introduce new branch types with little effort,
- as the linker has no knowledge of the exact form of any of the branches.
- * JavaScriptCore.xcodeproj/project.pbxproj:
- * assembler/ARMv7Assembler.cpp: Added.
- (JSC::):
- Record jump sizes
- * assembler/ARMv7Assembler.h:
- (JSC::ARMv7Assembler::LinkRecord::LinkRecord):
- (JSC::ARMv7Assembler::LinkRecord::from):
- (JSC::ARMv7Assembler::LinkRecord::setFrom):
- (JSC::ARMv7Assembler::LinkRecord::to):
- (JSC::ARMv7Assembler::LinkRecord::type):
- (JSC::ARMv7Assembler::LinkRecord::linkType):
- (JSC::ARMv7Assembler::LinkRecord::setLinkType):
- Encapsulate LinkRecord fields so we can compress the values somewhat
- (JSC::ARMv7Assembler::JmpSrc::JmpSrc):
- Need to record the jump type now
- (JSC::ARMv7Assembler::b):
- (JSC::ARMv7Assembler::blx):
- (JSC::ARMv7Assembler::bx):
- Need to pass the jump types
- (JSC::ARMv7Assembler::executableOffsetFor):
- (JSC::ARMv7Assembler::jumpSizeDelta):
- (JSC::ARMv7Assembler::linkRecordSourceComparator):
- (JSC::ARMv7Assembler::computeJumpType):
- (JSC::ARMv7Assembler::convertJumpTo):
- (JSC::ARMv7Assembler::recordLinkOffsets):
- (JSC::ARMv7Assembler::jumpsToLink):
- (JSC::ARMv7Assembler::link):
- (JSC::ARMv7Assembler::unlinkedCode):
- Helper functions for the linker
- (JSC::ARMv7Assembler::linkJump):
- (JSC::ARMv7Assembler::canBeShortJump):
- (JSC::ARMv7Assembler::linkLongJump):
- (JSC::ARMv7Assembler::linkShortJump):
- (JSC::ARMv7Assembler::linkJumpAbsolute):
- Moving code around for the various jump linking functions
- * assembler/AbstractMacroAssembler.h:
- (JSC::AbstractMacroAssembler::beginUninterruptedSequence):
- (JSC::AbstractMacroAssembler::endUninterruptedSequence):
- We have to track uninterrupted sequences in any assembler that compacts
- branches as that's not something we're allowed to do in such sequences.
- AbstractMacroAssembler has a nop version of these functions as it makes the
- code elsewhere nicer.
- * assembler/LinkBuffer.h:
- (JSC::LinkBuffer::LinkBuffer):
- (JSC::LinkBuffer::link):
- (JSC::LinkBuffer::patch):
- (JSC::LinkBuffer::locationOf):
- (JSC::LinkBuffer::locationOfNearCall):
- (JSC::LinkBuffer::returnAddressOffset):
- (JSC::LinkBuffer::trampolineAt):
- Updated these functions to adjust for any changed offsets in the linked code
- (JSC::LinkBuffer::applyOffset):
- A helper function to deal with the now potentially moved labels
- (JSC::LinkBuffer::linkCode):
- The new and mighty linker function
- * assembler/MacroAssemblerARMv7.h:
- (JSC::MacroAssemblerARMv7::MacroAssemblerARMv7):
- (JSC::MacroAssemblerARMv7::beginUninterruptedSequence):
- (JSC::MacroAssemblerARMv7::endUninterruptedSequence):
- (JSC::MacroAssemblerARMv7::jumpsToLink):
- (JSC::MacroAssemblerARMv7::unlinkedCode):
- (JSC::MacroAssemblerARMv7::computeJumpType):
- (JSC::MacroAssemblerARMv7::convertJumpTo):
- (JSC::MacroAssemblerARMv7::recordLinkOffsets):
- (JSC::MacroAssemblerARMv7::jumpSizeDelta):
- (JSC::MacroAssemblerARMv7::link):
- (JSC::MacroAssemblerARMv7::jump):
- (JSC::MacroAssemblerARMv7::branchMul32):
- (JSC::MacroAssemblerARMv7::breakpoint):
- (JSC::MacroAssemblerARMv7::nearCall):
- (JSC::MacroAssemblerARMv7::call):
- (JSC::MacroAssemblerARMv7::ret):
- (JSC::MacroAssemblerARMv7::tailRecursiveCall):
- (JSC::MacroAssemblerARMv7::executableOffsetFor):
- (JSC::MacroAssemblerARMv7::inUninterruptedSequence):
- (JSC::MacroAssemblerARMv7::makeJump):
- (JSC::MacroAssemblerARMv7::makeBranch):
- All branches need to pass on their type now
- * jit/ExecutableAllocator.h:
- (JSC::ExecutablePool::returnLastBytes):
- We can't know ahead of time how much space will be necessary to
- hold the linked code if we're compacting branches, this new
- function allows us to return the unused bytes at the end of linking
- * jit/JIT.cpp:
- (JSC::JIT::JIT):
- (JSC::JIT::privateCompile):
- * jit/JIT.h:
- (JSC::JIT::compile):
- The JIT class now needs to take a linker offset so that recompilation
- can generate the same jumps when using branch compaction.
- * jit/JITArithmetic32_64.cpp:
- (JSC::JIT::emitSlow_op_mod):
- * jit/JITOpcodes.cpp:
- (JSC::JIT::privateCompileCTIMachineTrampolines):
- * jit/JITOpcodes32_64.cpp:
- (JSC::JIT::privateCompileCTIMachineTrampolines):
- (JSC::JIT::privateCompileCTINativeCall):
- Update for new trampolineAt changes
- * wtf/FastMalloc.cpp:
- (WTF::TCMallocStats::):
- * wtf/Platform.h:
- 2010-08-09 Gavin Barraclough <barraclough@apple.com>
- Qt build fix III.
- * wtf/text/WTFString.h:
- 2010-08-09 Gavin Barraclough <barraclough@apple.com>
- Qt build fix.
- * wtf/qt/StringQt.cpp:
- 2010-08-06 Gavin Barraclough <barraclough@apple.com>
- Rubber stamped by Sam Weinig
- Bug 43594 - Add string forwards to Forward.h
- This allows us to remove forward declarations for these classes from
- WebCore/WebKit (a step in moving these class from WebCore:: to WTF::).
- * JavaScriptCore.xcodeproj/project.pbxproj:
- * wtf/Forward.h:
- 2010-08-07 Sheriff Bot <webkit.review.bot@gmail.com>
- Unreviewed, rolling out r64938.
- http://trac.webkit.org/changeset/64938
- https://bugs.webkit.org/show_bug.cgi?id=43685
- Did not compile on several ports (Requested by abarth on
- #webkit).
- * Android.mk:
- * CMakeLists.txt:
- * GNUmakefile.am:
- * JavaScriptCore.gypi:
- * JavaScriptCore.pro:
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
- * JavaScriptCore.xcodeproj/project.pbxproj:
- * assembler/AbstractMacroAssembler.h:
- * assembler/MacroAssembler.h:
- * assembler/MacroAssemblerX86.h:
- (JSC::MacroAssemblerX86::load32):
- (JSC::MacroAssemblerX86::store32):
- * assembler/X86Assembler.h:
- (JSC::X86Assembler::movl_rm):
- (JSC::X86Assembler::movl_mr):
- * bytecode/CodeBlock.cpp:
- (JSC::CodeBlock::markAggregate):
- * bytecode/Instruction.h:
- (JSC::PolymorphicAccessStructureList::PolymorphicStubInfo::):
- (JSC::PolymorphicAccessStructureList::PolymorphicStubInfo::set):
- (JSC::PolymorphicAccessStructureList::PolymorphicAccessStructureList):
- * bytecode/StructureStubInfo.cpp:
- (JSC::StructureStubInfo::deref):
- * bytecode/StructureStubInfo.h:
- (JSC::StructureStubInfo::initGetByIdProto):
- (JSC::StructureStubInfo::initGetByIdChain):
- (JSC::StructureStubInfo::):
- * jit/JIT.h:
- * jit/JITMarkObjects.cpp: Removed.
- * jit/JITPropertyAccess.cpp:
- (JSC::JIT::compileGetDirectOffset):
- (JSC::JIT::testPrototype):
- (JSC::JIT::privateCompilePutByIdTransition):
- (JSC::JIT::privateCompileGetByIdProto):
- (JSC::JIT::privateCompileGetByIdProtoList):
- (JSC::JIT::privateCompileGetByIdChainList):
- (JSC::JIT::privateCompileGetByIdChain):
- * jit/JITPropertyAccess32_64.cpp:
- (JSC::JIT::compileGetDirectOffset):
- (JSC::JIT::testPrototype):
- (JSC::JIT::privateCompilePutByIdTransition):
- (JSC::JIT::privateCompileGetByIdProto):
- (JSC::JIT::privateCompileGetByIdProtoList):
- (JSC::JIT::privateCompileGetByIdChainList):
- (JSC::JIT::privateCompileGetByIdChain):
- * jit/JITStubs.cpp:
- (JSC::setupPolymorphicProtoList):
- * wtf/Platform.h:
- 2010-08-07 Nathan Lawrence <nlawrence@apple.com>
- Reviewed by Geoffrey Garen.
- The JIT code contains a number of direct references to GC'd objects.
- When we have movable objects, these references will need to be
- updated.
- * Android.mk:
- * CMakeLists.txt:
- * GNUmakefile.am:
- * JavaScriptCore.gypi:
- * JavaScriptCore.pro:
- * JavaScriptCore.xcodeproj/project.pbxproj:
- * assembler/AbstractMacroAssembler.h:
- (JSC::AbstractMacroAssembler::int32AtLocation):
- (JSC::AbstractMacroAssembler::pointerAtLocation):
- (JSC::AbstractMacroAssembler::jumpTarget):
- * assembler/MacroAssembler.h:
- (JSC::MacroAssembler::loadPtrWithPatch):
- Normally, loadPtr will optimize when the register is eax. Since
- the slightly smaller instruction changes the offsets, it messes up
- our ability to repatch the code. We added this new instruction
- that garuntees a constant size.
- * assembler/MacroAssemblerX86.h:
- (JSC::MacroAssemblerX86::load32WithPatch):
- Changed load32 in the same way described above.
- (JSC::MacroAssemblerX86::load32):
- Moved the logic to optimize laod32 from movl_mr to load32
- (JSC::MacroAssemblerX86::store32):
- Moved the logic to optimize store32 from movl_rm to store32
- * assembler/X86Assembler.h:
- (JSC::X86Assembler::movl_rm):
- (JSC::X86Assembler::movl_mr):
- (JSC::X86Assembler::int32AtLocation):
- (JSC::X86Assembler::pointerAtLocation):
- (JSC::X86Assembler::jumpTarget):
- * bytecode/CodeBlock.cpp:
- (JSC::CodeBlock::markAggregate):
- * bytecode/Instruction.h:
- As described in StructureStubInfo.h, we needed to add additional
- fields to both StructureStubInfo and
- PolymorphicAccessStructureList so that we can determine the
- structure of the JITed code at patch time.
- (JSC::PolymorphicAccessStructureList::PolymorphicStubInfo::set):
- (JSC::PolymorphicAccessStructureList::PolymorphicAccessStructureList):
- * bytecode/StructureStubInfo.cpp:
- (JSC::StructureStubInfo::markAggregate):
- Added this function to mark the JITed code that correosponds to
- this structure stub info.
- * bytecode/StructureStubInfo.h:
- (JSC::StructureStubInfo::initGetByIdProto):
- (JSC::StructureStubInfo::initGetByIdChain):
- (JSC::StructureStubInfo::):
- * jit/JIT.h:
- * jit/JITMarkObjects.cpp: Added.
- (JSC::JIT::patchPrototypeStructureAddress):
- (JSC::JIT::patchGetDirectOffset):
- (JSC::JIT::markGetByIdProto):
- (JSC::JIT::markGetByIdChain):
- (JSC::JIT::markGetByIdProtoList):
- (JSC::JIT::markPutByIdTransition):
- (JSC::JIT::markGlobalObjectReference):
- * jit/JITPropertyAccess.cpp:
- Added asserts for the patch offsets.
- (JSC::JIT::compileGetDirectOffset):
- (JSC::JIT::testPrototype):
- (JSC::JIT::privateCompilePutByIdTransition):
- (JSC::JIT::privateCompileGetByIdProto):
- (JSC::JIT::privateCompileGetByIdProtoList):
- (JSC::JIT::privateCompileGetByIdChainList):
- (JSC::JIT::privateCompileGetByIdChain):
- * jit/JITPropertyAccess32_64.cpp:
- (JSC::JIT::compileGetDirectOffset):
- (JSC::JIT::testPrototype):
- (JSC::JIT::privateCompilePutByIdTransition):
- (JSC::JIT::privateCompileGetByIdProto):
- (JSC::JIT::privateCompileGetByIdProtoList):
- (JSC::JIT::privateCompileGetByIdChainList):
- (JSC::JIT::privateCompileGetByIdChain):
- * jit/JITStubs.cpp:
- (JSC::setupPolymorphicProtoList):
- * wtf/Platform.h:
- Added ENABLE_MOVABLE_GC_OBJECTS flag
- 2010-08-07 Michael Saboff <msaboff@apple.com>
- Reviewed by Geoffrey Garen.
- Revert JSArray to point to the beginning of the contained ArrayStorage
- struct. This is described in
- https://bugs.webkit.org/show_bug.cgi?id=43526.
- * jit/JITPropertyAccess.cpp:
- (JSC::JIT::emit_op_get_by_val):
- (JSC::JIT::emit_op_put_by_val):
- (JSC::JIT::privateCompilePatchGetArrayLength):
- * jit/JITPropertyAccess32_64.cpp:
- (JSC::JIT::emit_op_get_by_val):
- (JSC::JIT::emit_op_put_by_val):
- (JSC::JIT::privateCompilePatchGetArrayLength):
- * runtime/JSArray.cpp:
- (JSC::JSArray::JSArray):
- (JSC::JSArray::~JSArray):
- (JSC::JSArray::getOwnPropertySlot):
- (JSC::JSArray::getOwnPropertyDescriptor):
- (JSC::JSArray::put):
- (JSC::JSArray::putSlowCase):
- (JSC::JSArray::deleteProperty):
- (JSC::JSArray::getOwnPropertyNames):
- (JSC::JSArray::getNewVectorLength):
- (JSC::JSArray::increaseVectorLength):
- (JSC::JSArray::increaseVectorPrefixLength):
- (JSC::JSArray::setLength):
- (JSC::JSArray::pop):
- (JSC::JSArray::push):
- (JSC::JSArray::shiftCount):
- (JSC::JSArray::unshiftCount):
- (JSC::JSArray::sortNumeric):
- (JSC::JSArray::sort):
- (JSC::JSArray::fillArgList):
- (JSC::JSArray::copyToRegisters):
- (JSC::JSArray::compactForSorting):
- (JSC::JSArray::subclassData):
- (JSC::JSArray::setSubclassData):
- (JSC::JSArray::checkConsistency):
- * runtime/JSArray.h:
- (JSC::JSArray::length):
- (JSC::JSArray::canGetIndex):
- (JSC::JSArray::getIndex):
- (JSC::JSArray::setIndex):
- (JSC::JSArray::uncheckedSetIndex):
- (JSC::JSArray::markChildrenDirect):
- 2010-08-07 Kwang Yul Seo <skyul@company100.net>
- Reviewed by Eric Seidel.
- Add ENABLE(YARR) guard around JSGlobalData::m_regexAllocator
- https://bugs.webkit.org/show_bug.cgi?id=43399
- m_regexAllocator is used only by RegExp::compile which is guarded with ENABLE(YARR).
- * runtime/JSGlobalData.h:
- 2010-08-07 Patrick Roland Gansterer <paroga@paroga.com>
- Reviewed by Eric Seidel.
- [Qt] Enable JIT on WinCE
- https://bugs.webkit.org/show_bug.cgi?id=43303
- Add ExtraCompiler for generating GeneratedJITStubs_MSVC.asm.
- * DerivedSources.pro:
- 2010-08-07 Dan Bernstein <mitz@apple.com>
- Reviewed by Anders Carlsson.
- Created a separate SimpleFontData constructor exclusively for SVG fonts and moved the CTFontRef
- from SimpleFontData to FontPlatformData.
- https://bugs.webkit.org/show_bug.cgi?id=43674
- * wtf/Platform.h: Moved definitions of WTF_USE_CORE_TEXT and WTF_USE_ATSUI here from WebCore/config.h.
- 2010-08-07 Zoltan Herczeg <zherczeg@webkit.org>
- Reviewed by Eric Seidel.
- Bitmap.h has no default constructor
- https://bugs.webkit.org/show_bug.cgi?id=43619
- Without a constructor, the initial bits of the Bitmap class
- are undefinied. If only a few, or zero bits are 0, the memory
- area provided by AlignedMemoryAllocator can be easly exhausted.
- Csaba Osztrogonác helped to find this bug.
- * wtf/Bitmap.h:
- (WTF::::Bitmap):
- 2010-08-06 Rafael Antognolli <antognolli@profusion.mobi>
- [EFL] Build fix.
- * CMakeLists.txt: add runtime/CGHandle.cpp.
- 2010-08-06 Jessie Berlin <jberlin@apple.com>
- Roll out http://trac.webkit.org/changeset/64801, which broke the Safari Windows Build.
- Unreviewed.
- * JavaScriptCore.xcodeproj/project.pbxproj:
- * wtf/Forward.h:
- 2010-08-06 Jessie Berlin <jberlin@apple.com>
- Windows Build Fix (continued). Unreviewed.
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
- 2010-08-06 Jessie Berlin <jberlin@apple.com>
- Windows Build Fix. Unreviewed.
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
- Add GCHandle.h and GCHandle.cpp.
- 2010-08-06 Nathan Lawrence <nlawrence@apple.com>
- Reviewed by Geoffrey Garen.
- https://bugs.webkit.org/show_bug.cgi?id=43207
- WeakGCPtr's should instead of directly pointing to the GC'd object
- should be directed to an array of pointers that can be updated for
- movable objects.
- * Android.mk:
- * GNUmakefile.am:
- * JavaScriptCore.exp:
- * JavaScriptCore.gypi:
- * JavaScriptCore.pro:
- * JavaScriptCore.xcodeproj/project.pbxproj:
- * runtime/Collector.cpp:
- (JSC::Heap::destroy):
- (JSC::Heap::allocateBlock):
- (JSC::Heap::freeBlock):
- (JSC::Heap::updateWeakGCHandles):
- (JSC::WeakGCHandlePool::update):
- (JSC::Heap::addWeakGCHandle):
- (JSC::Heap::markRoots):
- * runtime/Collector.h:
- (JSC::Heap::weakGCHandlePool):
- * runtime/GCHandle.cpp: Added.
- (JSC::WeakGCHandle::pool):
- (JSC::WeakGCHandlePool::WeakGCHandlePool):
- (JSC::WeakGCHandlePool::allocate):
- (JSC::WeakGCHandlePool::free):
- (JSC::WeakGCHandlePool::operator new):
- * runtime/GCHandle.h: Added.
- (JSC::WeakGCHandle::isValidPtr):
- (JSC::WeakGCHandle::isPtr):
- (JSC::WeakGCHandle::isNext):
- (JSC::WeakGCHandle::invalidate):
- (JSC::WeakGCHandle::get):
- (JSC::WeakGCHandle::set):
- (JSC::WeakGCHandle::getNextInFreeList):
- (JSC::WeakGCHandle::setNextInFreeList):
- (JSC::WeakGCHandlePool::isFull):
- * runtime/WeakGCPtr.h:
- (JSC::WeakGCPtr::WeakGCPtr):
- (JSC::WeakGCPtr::~WeakGCPtr):
- (JSC::WeakGCPtr::get):
- (JSC::WeakGCPtr::clear):
- (JSC::WeakGCPtr::assign):
- (JSC::get):
- 2010-08-06 Tor Arne Vestbø <tor.arne.vestbo@nokia.com>
- Reviewed by Antonio Gomes.
- [Qt] Fix warnings about difference in symbol visiblity on Mac OS X
- * jsc.pro:
- 2010-08-06 Zoltan Herczeg <zherczeg@webkit.org>
- Reviewed by Darin Adler.
- Refactor identifier parsing in lexer
- https://bugs.webkit.org/show_bug.cgi?id=41845
- The code is refactored to avoid gotos. The new code
- has the same performance as the old one.
- SunSpider --parse-only: no change (from 34.0ms to 33.6ms)
- SunSpider: no change (from 523.2ms to 523.5ms)
- * parser/Lexer.cpp:
- (JSC::Lexer::parseIdent):
- (JSC::Lexer::lex):
- * parser/Lexer.h:
- 2010-08-06 Gabor Loki <loki@webkit.org>
- Reviewed by Gavin Barraclough.
- The ARM JIT does not support JSValue32_64 with RVCT
- https://bugs.webkit.org/show_bug.cgi?id=43411
- JSValue32_64 is enabled for RVCT by default.
- * create_jit_stubs:
- * jit/JITStubs.cpp:
- (JSC::ctiTrampoline):
- (JSC::ctiVMThrowTrampoline):
- (JSC::ctiOpThrowNotCaught):
- * wtf/Platform.h:
- 2010-08-05 Chao-ying Fu <fu@mips.com>
- Reviewed by Darin Adler.
- Define WTF_USE_ARENA_ALLOC_ALIGNMENT_INTEGER for MIPS
- https://bugs.webkit.org/show_bug.cgi?id=43514
- MIPS needs to define WTF_USE_ARENA_ALLOC_ALIGNMENT_INTEGER, so that
- RenderArena::allocate() can return 8-byte aligned memory to avoid
- exceptions on sdc1/ldc1.
- * wtf/Platform.h:
- 2010-08-05 Gavin Barraclough <barraclough@apple.com>
- Rubber stamped by Sam Weinig
- Bug 43594 - Add string forwards to Forward.h
- This allows us to remove forward declarations for these classes from
- WebCore/WebKit (a step in moving these class from WebCore:: to WTF::).
- * JavaScriptCore.xcodeproj/project.pbxproj:
- * wtf/Forward.h:
- 2010-08-05 Geoffrey Garen <ggaren@apple.com>
- Reviewed by Mark Rowe.
- Fixed leak seen on buildbot.
- * runtime/GCActivityCallbackCF.cpp:
- (JSC::DefaultGCActivityCallback::DefaultGCActivityCallback):
- (JSC::DefaultGCActivityCallback::~DefaultGCActivityCallback):
- (JSC::DefaultGCActivityCallback::operator()): Make out timer a RetainPtr,
- since anything less would be uncivilized.
- 2010-08-05 Andy Estes <aestes@apple.com>
- Reviewed by David Kilzer.
- Rename iOS-related OS and PLATFORM macros.
- https://bugs.webkit.org/show_bug.cgi?id=43493
-
- Rename WTF_OS_IPHONE_OS to WTF_OS_IOS, WTF_PLATFORM_IPHONE to
- WTF_PLATFORM_IOS, and WTF_PLATFORM_IPHONE_SIMULATOR to
- WTF_PLATFORM_IOS_SIMULATOR.
- * jit/ExecutableAllocator.h:
- * jit/JITStubs.cpp:
- * profiler/ProfilerServer.mm:
- (-[ProfilerServer init]):
- * wtf/FastMalloc.cpp:
- (WTF::TCMallocStats::):
- * wtf/Platform.h:
- * wtf/unicode/icu/CollatorICU.cpp:
- (WTF::Collator::userDefault):
- 2010-08-05 Nathan Lawrence <nlawrence@apple.com>
- Reviewed by Darin Adler.
- https://bugs.webkit.org/show_bug.cgi?id=43464
- Currently, the global object is being embedded in the JavaScriptCore
- bytecode, however since the global object is the same for all opcodes
- in a code block, we can have the global object just be a member of the
- associated code block.
- Additionally, I added an assert inside of emitOpcode that verifies
- that the last generated opcode was of the correct length.
- * bytecode/CodeBlock.cpp:
- (JSC::CodeBlock::CodeBlock):
- (JSC::CodeBlock::derefStructures):
- (JSC::CodeBlock::markAggregate):
- * bytecode/CodeBlock.h:
- (JSC::CodeBlock::globalObject):
- (JSC::GlobalCodeBlock::GlobalCodeBlock):
- (JSC::ProgramCodeBlock::ProgramCodeBlock):
- (JSC::EvalCodeBlock::EvalCodeBlock):
- (JSC::FunctionCodeBlock::FunctionCodeBlock):
- * bytecode/Opcode.h:
- (JSC::opcodeLength):
- * bytecompiler/BytecodeGenerator.cpp:
- (JSC::BytecodeGenerator::BytecodeGenerator):
- (JSC::BytecodeGenerator::emitOpcode):
- Added an assert to check that the last generated opcode is the
- correct length.
- (JSC::BytecodeGenerator::rewindBinaryOp):
- Changed the last opcode to op_end since the length will no longer
- be correct.
- (JSC::BytecodeGenerator::rewindUnaryOp):
- Changed the last opcode to op_end since the length will no longer
- be correct.
- (JSC::BytecodeGenerator::emitResolve):
- (JSC::BytecodeGenerator::emitGetScopedVar):
- (JSC::BytecodeGenerator::emitPutScopedVar):
- (JSC::BytecodeGenerator::emitResolveWithBase):
- * bytecompiler/BytecodeGenerator.h:
- * interpreter/Interpreter.cpp:
- (JSC::Interpreter::resolveGlobal):
- (JSC::Interpreter::resolveGlobalDynamic):
- (JSC::Interpreter::privateExecute):
- * jit/JITOpcodes.cpp:
- (JSC::JIT::emit_op_get_global_var):
- (JSC::JIT::emit_op_put_global_var):
- (JSC::JIT::emit_op_resolve_global):
- (JSC::JIT::emitSlow_op_resolve_global):
- (JSC::JIT::emit_op_resolve_global_dynamic):
- (JSC::JIT::emitSlow_op_resolve_global_dynamic):
- * jit/JITOpcodes32_64.cpp:
- (JSC::JIT::emit_op_get_global_var):
- (JSC::JIT::emit_op_put_global_var):
- (JSC::JIT::emit_op_resolve_global):
- (JSC::JIT::emitSlow_op_resolve_global):
- * jit/JITStubs.cpp:
- (JSC::cti_op_resolve_global):
- * runtime/Executable.cpp:
- (JSC::FunctionExecutable::compileForCallInternal):
- (JSC::FunctionExecutable::compileForConstructInternal):
- (JSC::FunctionExecutable::reparseExceptionInfo):
- 2010-08-05 Gavin Barraclough <barraclough@apple.com>
- Reviewed by Sam Weinig.
- Bug 43185 - Switch RegisterFile over to use PageAllocation
- Remove platform-specific memory allocation code.
- * interpreter/RegisterFile.cpp:
- (JSC::RegisterFile::~RegisterFile):
- (JSC::RegisterFile::releaseExcessCapacity):
- * interpreter/RegisterFile.h:
- (JSC::RegisterFile::RegisterFile):
- (JSC::RegisterFile::grow):
- (JSC::RegisterFile::checkAllocatedOkay):
- * wtf/PageAllocation.cpp:
- (WTF::PageAllocation::lastError):
- * wtf/PageAllocation.h:
- (WTF::PageAllocation::allocate):
- (WTF::PageAllocation::allocateAt):
- (WTF::PageAllocation::allocateAligned):
- (WTF::PageAllocation::pageSize):
- (WTF::PageAllocation::isPageAligned):
- (WTF::PageAllocation::isPowerOfTwo):
- * wtf/PageReservation.h:
- (WTF::PageReservation::commit):
- (WTF::PageReservation::decommit):
- (WTF::PageReservation::reserve):
- (WTF::PageReservation::reserveAt):
- 2010-08-05 Michael Saboff <msaboff@apple.com>
- Reviewed by Darin Adler.
- Fixed https://bugs.webkit.org/show_bug.cgi?id=43401 where array
- content aren't properly initialized as part of unshift.
- * runtime/JSArray.cpp:
- (JSC::JSArray::unshiftCount):
- 2010-08-05 Jian Li <jianli@chromium.org>
- Reviewed by David Levin.
- Unify blob related feature defines to ENABLE(BLOB).
- https://bugs.webkit.org/show_bug.cgi?id=43081
- * Configurations/FeatureDefines.xcconfig:
- 2010-08-05 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk>
- Rubber-stamped by Xan Lopez.
- Remove GHashTable left-overs. GHashTable is ref-counted, and is
- correctly supported by GRefPtr.
- * wtf/gobject/GOwnPtr.h:
- 2010-08-05 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk>
- Unreviewed.
- Typo fix that makes distcheck happy.
- * GNUmakefile.am:
- 2010-08-03 Geoffrey Garen <ggaren@apple.com>
- Reviewed by Oliver Hunt and Beth Dakin.
- https://bugs.webkit.org/show_bug.cgi?id=43461
- Invalid NaN parsing
-
- * wtf/dtoa.cpp: Turn off the dtoa feature that allows you to specify a
- non-standard NaN representation, since our NaN encoding assumes that all
- true NaNs have the standard bit pattern.
- * API/JSValueRef.cpp:
- (JSValueMakeNumber): Don't allow an API client to accidentally specify
- a non-standard NaN either.
- 2010-08-04 Gavin Barraclough <barraclough@apple.com>
- Windows build fix part II.
- * wtf/PageReservation.h:
- (WTF::PageReservation::systemReserve):
- 2010-08-04 Gavin Barraclough <barraclough@apple.com>
- Windows build fix.
- * wtf/PageReservation.h:
- (WTF::PageReservation::systemReserve):
- 2010-08-04 Gavin Barraclough <barraclough@apple.com>
- Build fix - add new header to !Mac projects.
- * GNUmakefile.am:
- * JavaScriptCore.gypi:
- * JavaScriptCore.vcproj/WTF/WTF.vcproj:
- 2010-08-04 Gavin Barraclough <barraclough@apple.com>
- Reviewed by Sam Weinig.
- Bug 43515 - Fix small design issues with PageAllocation, split out PageReservation.
- The PageAllocation class has a number of issues:
- * Changes in bug #43269 accidentally switched SYMBIAN over to use malloc/free to allocate
- blocks of memory for the GC heap, instead of allocating RChunks. Revert this change in
- behaviour.
- * In order for PageAllocation to work correctly on WinCE we should be decommitting memory
- before deallocating. In order to simplify understanding the expected state at deallocate,
- split behaviour out into PageAllocation and PageReservation classes. Require that all
- memory be decommitted before calling deallocate on a PageReservation, add asserts to
- enforce this.
- * add many missing asserts.
- * inline more functions.
- * remove ability to create sub-PageAllocations from an existing PageAllocations object -
- this presented an interface that would allow sub regions to be deallocated, which would
- not have provided expected behaviour.
- * remove writable/executable arguments to commit, this value can be cached at the point
- the memory is reserved.
- * remove writable/executable arguments to allocateAligned, protection other than RW is not
- supported.
- * add missing checks for overflow & failed allocation to mmap path through allocateAligned.
- * JavaScriptCore.xcodeproj/project.pbxproj:
- * jit/ExecutableAllocator.cpp:
- (JSC::ExecutableAllocator::intializePageSize):
- * jit/ExecutableAllocator.h:
- (JSC::ExecutablePool::Allocation::Allocation):
- (JSC::ExecutablePool::Allocation::base):
- (JSC::ExecutablePool::Allocation::size):
- (JSC::ExecutablePool::Allocation::operator!):
- * jit/ExecutableAllocatorFixedVMPool.cpp:
- (JSC::FixedVMPoolAllocator::reuse):
- (JSC::FixedVMPoolAllocator::coalesceFreeSpace):
- (JSC::FixedVMPoolAllocator::FixedVMPoolAllocator):
- (JSC::FixedVMPoolAllocator::alloc):
- (JSC::FixedVMPoolAllocator::free):
- (JSC::FixedVMPoolAllocator::allocInternal):
- * runtime/AlignedMemoryAllocator.h:
- (JSC::::allocate):
- (JSC::::AlignedMemoryAllocator):
- * runtime/Collector.cpp:
- (JSC::Heap::allocateBlock):
- * runtime/Collector.h:
- * wtf/PageAllocation.cpp:
- * wtf/PageAllocation.h:
- (WTF::PageAllocation::operator!):
- (WTF::PageAllocation::allocate):
- (WTF::PageAllocation::allocateAt):
- (WTF::PageAllocation::allocateAligned):
- (WTF::PageAllocation::deallocate):
- (WTF::PageAllocation::pageSize):
- (WTF::PageAllocation::systemAllocate):
- (WTF::PageAllocation::systemAllocateAt):
- (WTF::PageAllocation::systemAllocateAligned):
- (WTF::PageAllocation::systemDeallocate):
- (WTF::PageAllocation::systemPageSize):
- * wtf/PageReservation.h: Copied from JavaScriptCore/wtf/PageAllocation.h.
- (WTF::PageReservation::PageReservation):
- (WTF::PageReservation::commit):
- (WTF::PageReservation::decommit):
- (WTF::PageReservation::reserve):
- (WTF::PageReservation::reserveAt):
- (WTF::PageReservation::deallocate):
- (WTF::PageReservation::systemCommit):
- (WTF::PageReservation::systemDecommit):
- (WTF::PageReservation::systemReserve):
- (WTF::PageReservation::systemReserveAt):
- * wtf/Platform.h:
- 2010-08-04 Sheriff Bot <webkit.review.bot@gmail.com>
- Unreviewed, rolling out r64655.
- http://trac.webkit.org/changeset/64655
- https://bugs.webkit.org/show_bug.cgi?id=43496
- JavaScriptCore references patch seems to have caused
- regressions in QT and GTK builds (Requested by nlawrence on
- #webkit).
- * bytecode/CodeBlock.cpp:
- (JSC::CodeBlock::markAggregate):
- * runtime/Collector.cpp:
- (JSC::Heap::markConservatively):
- * runtime/JSCell.h:
- (JSC::JSValue::asCell):
- (JSC::MarkStack::append):
- * runtime/JSGlobalObject.cpp:
- (JSC::markIfNeeded):
- * runtime/JSONObject.cpp:
- (JSC::Stringifier::Holder::object):
- * runtime/JSObject.h:
- (JSC::JSObject::prototype):
- * runtime/JSStaticScopeObject.cpp:
- (JSC::JSStaticScopeObject::markChildren):
- * runtime/JSValue.h:
- (JSC::JSValue::):
- (JSC::JSValue::JSValue):
- (JSC::JSValue::asCell):
- * runtime/MarkStack.h:
- * runtime/NativeErrorConstructor.cpp:
- * runtime/NativeErrorConstructor.h:
- * runtime/Structure.h:
- (JSC::Structure::storedPrototype):
- 2010-08-04 Gavin Barraclough <barraclough@apple.com>
- Rubber stamped by Sam Weinig.
- Enable JSVALUE64 for CPU(PPC64).
- Basic browsing seems to work.
- * wtf/Platform.h:
- 2010-08-04 Nathan Lawrence <nlawrence@apple.com>
- Reviewed by Darin Adler.
- Refactoring MarkStack::append to take a reference. This is in
- preparation for movable objects when we will need to update pointers.
- http://bugs.webkit.org/show_bug.cgi?id=41177
- Unless otherwise noted, all changes are to either return by reference
- or pass a reference to MarkStack::append.
- * bytecode/CodeBlock.cpp:
- (JSC::CodeBlock::markAggregate):
- * runtime/Collector.cpp:
- (JSC::Heap::markConservatively):
- Added a temporary variable to prevent marking from changing an
- unknown value on the stack
- * runtime/JSCell.h:
- (JSC::JSValue::asCell):
- (JSC::MarkStack::append):
- (JSC::MarkStack::appendInternal):
- * runtime/JSGlobalObject.cpp:
- (JSC::markIfNeeded):
- * runtime/JSONObject.cpp:
- (JSC::Stringifier::Holder::object):
- * runtime/JSObject.h:
- (JSC::JSObject::prototype):
- * runtime/JSStaticScopeObject.cpp:
- (JSC::JSStaticScopeObject::markChildren):
- * runtime/JSValue.h:
- (JSC::JSValue::JSValue):
- (JSC::JSValue::asCell):
- * runtime/MarkStack.h:
- * runtime/NativeErrorConstructor.cpp:
- (JSC::NativeErrorConstructor::createStructure):
- Changed the structure flags to include a custom markChildren.
- (JSC::NativeErrorConstructor::markChildren):
- Update the prototype of the stored structure.
- * runtime/NativeErrorConstructor.h:
- Added structure flags.
- * runtime/Structure.h:
- (JSC::Structure::storedPrototype):
- 2010-08-03 Nathan Lawrence <nlawrence@apple.com>
- Reviewed by Oliver Hunt.
- Tightened up some get_by_id_chain* code generation
- https://bugs.webkit.org/show_bug.cgi?id=40935
- This is in the style of
- https://bugs.webkit.org/show_bug.cgi?id=30539, and changed code to
- call accessor functions when it was not necessary to directly access
- the private variables.
- * jit/JIT.h:
- * jit/JITPropertyAccess.cpp:
- (JSC::JIT::compileGetDirectOffset):
- (JSC::JIT::testPrototype):
- (JSC::JIT::privateCompilePutByIdTransition):
- (JSC::JIT::privateCompileGetByIdChainList):
- (JSC::JIT::privateCompileGetByIdChain):
- * jit/JITPropertyAccess32_64.cpp:
- (JSC::JIT::testPrototype):
- (JSC::JIT::privateCompilePutByIdTransition):
- (JSC::JIT::privateCompileGetByIdChainList):
- (JSC::JIT::privateCompileGetByIdChain):
- 2010-08-03 Adam Roben <aroben@apple.com>
- Turn on PLATFORM_STRATEGIES on Windows
- Fixes <http://webkit.org/b/43431>.
- Reviewed by Anders Carlsson.
- * wtf/Platform.h:
- 2010-08-04 Gabor Loki <loki@webkit.org>
- Reviewed by Geoffrey Garen.
- Enable JSValue32_64 for GCC on ARM by default
- https://bugs.webkit.org/show_bug.cgi?id=43410
- * wtf/Platform.h:
- 2010-08-03 Gavin Barraclough <barraclough@apple.com>
- Speculative windows build fix.
- * wtf/Bitmap.h:
- 2010-08-03 Gavin Barraclough <barraclough@apple.com>
- Build fix following r64624.
- * JavaScriptCore.xcodeproj/project.pbxproj:
- * wtf/PageAllocation.h:
- 2010-08-03 Nathan Lawrence <nlawrence@apple.com>
- Reviewed by Gavin Barraclough.
- https://bugs.webkit.org/show_bug.cgi?id=43269
- Added new allocateAligned methods to PageAllocation. In order to
- prevent a regress in performance, the function needs to be inlined.
- Additionally, I ported the symbian block allocator to use
- PageAllocation and added a new WTF::Bitmap class to support this.
- * GNUmakefile.am:
- * JavaScriptCore.gypi:
- * JavaScriptCore.xcodeproj/project.pbxproj:
- * runtime/AlignedMemoryAllocator.h: Added.
- (JSC::AlignedMemory::deallocate):
- (JSC::AlignedMemory::base):
- (JSC::AlignedMemory::AlignedMemory):
- (JSC::AlignedMemoryAllocator::destroy):
- (JSC::AlignedMemoryAllocator::allocate):
- (JSC::AlignedMemoryAllocator::AlignedMemoryAllocator):
- (JSC::AlignedMemoryAllocator::~AlignedMemoryAllocator):
- (JSC::AlignedMemoryAllocator::free):
- * runtime/Collector.cpp:
- (JSC::Heap::Heap):
- (JSC::Heap::destroy):
- (JSC::Heap::allocateBlock):
- (JSC::Heap::freeBlock):
- (JSC::Heap::freeBlocks):
- (JSC::Heap::allocate):
- (JSC::Heap::shrinkBlocks):
- (JSC::Heap::markConservatively):
- (JSC::Heap::clearMarkBits):
- (JSC::Heap::markedCells):
- * runtime/Collector.h:
- (JSC::CollectorHeap::collectorBlock):
- * runtime/CollectorHeapIterator.h:
- (JSC::CollectorHeapIterator::operator*):
- (JSC::LiveObjectIterator::operator++):
- (JSC::DeadObjectIterator::operator++):
- * wtf/Bitmap.h: Added.
- (WTF::Bitmap::get):
- (WTF::Bitmap::set):
- (WTF::Bitmap::clear):
- (WTF::Bitmap::clearAll):
- (WTF::Bitmap::advanceToNextFreeBit):
- (WTF::Bitmap::count):
- (WTF::Bitmap::isEmpty):
- (WTF::Bitmap::isFull):
- * wtf/PageAllocation.h:
- (WTF::PageAllocation::operator UnspecifiedBoolType):
- (WTF::PageAllocation::allocateAligned):
- (WTF::PageAllocation::reserveAligned):
- * wtf/Platform.h:
- * wtf/symbian: Removed.
- * wtf/symbian/BlockAllocatorSymbian.cpp: Removed.
- * wtf/symbian/BlockAllocatorSymbian.h: Removed.
- 2010-08-03 Michael Saboff <msaboff@apple.com>
- Reviewed by Gavin Barraclough.
- Fix for https://bugs.webkit.org/show_bug.cgi?id=43314. The prior code
- was using the wrong "length" value to move array contents when adding
- space to the beginning of an array for an unshift() or similar
- operation. Instead of using m_vectorLength, the length of the
- allocated JSValue array, the code was using m_length, the declared
- length of the array. These two values do not need to match.
- * JavaScriptCore.xcodeproj/project.pbxproj:
- * runtime/JSArray.cpp:
- (JSC::JSArray::increaseVectorPrefixLength):
- 2010-08-03 Chao-ying Fu <fu@mips.com>
- Reviewed by Gavin Barraclough.
- Fix following https://bugs.webkit.org/show_bug.cgi?id=43089
- (accidentally inverted a compiler version check).
- * jit/ExecutableAllocator.h:
- (JSC::ExecutableAllocator::cacheFlush):
- 2010-08-03 Patrick Gansterer <paroga@paroga.com>
- Reviewed by Gavin Barraclough.
- Implement DEFINE_STUB_FUNCTION for WinCE.
- https://bugs.webkit.org/show_bug.cgi?id=34953
- * jit/JITStubs.cpp:
- (JSC::):
- (JSC::DEFINE_STUB_FUNCTION):
- 2010-08-02 Gavin Barraclough <barraclough@apple.com>
- Reviewed by Oliver Hunt.
- Bug 43390 - Do not CRASH if we run out of room for jit code.
- Change the ExecutableAllocator implementations not to crash, and to return 0 if memory cannot be allocated.
- The assemblers should pass this through without trying to use it in executableCopy.
- Change the LinkBuffer to handle this, and to provide an allocationSuccessful() method to test for this.
- Change the JIT to throw an exception if allocation fails.
- Make JIT optimizations fail gracefully if memory cannot be allocated (use non-optimized path).
- Change YARR JIT to fallback to PCRE
- * assembler/ARMAssembler.cpp:
- (JSC::ARMAssembler::executableCopy):
- * assembler/ARMv7Assembler.h:
- (JSC::ARMv7Assembler::executableCopy):
- * assembler/LinkBuffer.h:
- (JSC::LinkBuffer::allocationSuccessful):
- * assembler/MIPSAssembler.h:
- (JSC::MIPSAssembler::executableCopy):
- * assembler/X86Assembler.h:
- (JSC::X86Assembler::executableCopy):
- * bytecode/StructureStubInfo.h:
- (JSC::StructureStubInfo::initGetByIdProto):
- (JSC::StructureStubInfo::initGetByIdChain):
- (JSC::StructureStubInfo::initGetByIdSelfList):
- (JSC::StructureStubInfo::initGetByIdProtoList):
- (JSC::StructureStubInfo::initPutByIdTransition):
- * jit/ExecutableAllocator.cpp:
- (JSC::ExecutablePool::systemAlloc):
- * jit/ExecutableAllocatorFixedVMPool.cpp:
- (JSC::FixedVMPoolAllocator::allocInternal):
- * jit/JIT.cpp:
- (JSC::JIT::privateCompile):
- * jit/JIT.h:
- (JSC::JIT::compileGetByIdProto):
- (JSC::JIT::compileGetByIdSelfList):
- (JSC::JIT::compileGetByIdProtoList):
- (JSC::JIT::compileGetByIdChainList):
- (JSC::JIT::compileGetByIdChain):
- (JSC::JIT::compilePutByIdTransition):
- (JSC::JIT::compilePatchGetArrayLength):
- * jit/JITOpcodes.cpp:
- (JSC::JIT::privateCompileCTIMachineTrampolines):
- * jit/JITOpcodes32_64.cpp:
- (JSC::JIT::privateCompileCTIMachineTrampolines):
- (JSC::JIT::privateCompileCTINativeCall):
- * jit/JITPropertyAccess.cpp:
- (JSC::JIT::stringGetByValStubGenerator):
- (JSC::JIT::privateCompilePutByIdTransition):
- (JSC::JIT::privateCompilePatchGetArrayLength):
- (JSC::JIT::privateCompileGetByIdProto):
- (JSC::JIT::privateCompileGetByIdSelfList):
- (JSC::JIT::privateCompileGetByIdProtoList):
- (JSC::JIT::privateCompileGetByIdChainList):
- (JSC::JIT::privateCompileGetByIdChain):
- * jit/JITPropertyAccess32_64.cpp:
- (JSC::JIT::stringGetByValStubGenerator):
- (JSC::JIT::privateCompilePutByIdTransition):
- (JSC::JIT::privateCompilePatchGetArrayLength):
- (JSC::JIT::privateCompileGetByIdProto):
- (JSC::JIT::privateCompileGetByIdSelfList):
- (JSC::JIT::privateCompileGetByIdProtoList):
- (JSC::JIT::privateCompileGetByIdChainList):
- (JSC::JIT::privateCompileGetByIdChain):
- * jit/JITStubs.cpp:
- (JSC::JITThunks::tryCachePutByID):
- (JSC::JITThunks::tryCacheGetByID):
- (JSC::DEFINE_STUB_FUNCTION):
- (JSC::setupPolymorphicProtoList):
- * jit/JITStubs.h:
- * jit/SpecializedThunkJIT.h:
- (JSC::SpecializedThunkJIT::finalize):
- * runtime/ExceptionHelpers.cpp:
- (JSC::createOutOfMemoryError):
- * runtime/ExceptionHelpers.h:
- * runtime/Executable.cpp:
- (JSC::EvalExecutable::compileInternal):
- (JSC::ProgramExecutable::compileInternal):
- (JSC::FunctionExecutable::compileForCallInternal):
- (JSC::FunctionExecutable::compileForConstructInternal):
- (JSC::FunctionExecutable::reparseExceptionInfo):
- (JSC::EvalExecutable::reparseExceptionInfo):
- * yarr/RegexJIT.cpp:
- (JSC::Yarr::RegexGenerator::compile):
- 2010-08-03 Geoffrey Garen <ggaren@apple.com>
- Reviewed by Oliver Hunt.
- Fixed a crash seen on the GTK 64bit buildbot.
-
- When JSArray is allocated for the vptr stealing hack, it's not allocated
- in the heap, so the JSArray constructor can't safely call Heap::heap().
-
- Since this was subtle enough to confuse smart people, I've changed JSArray
- to have an explicit vptr stealing constructor.
- * JavaScriptCore.xcodeproj/project.pbxproj:
- * runtime/JSArray.cpp:
- (JSC::JSArray::JSArray):
- * runtime/JSArray.h:
- (JSC::JSArray::):
- * runtime/JSGlobalData.cpp:
- (JSC::JSGlobalData::storeVPtrs):
- 2010-08-03 Alex Milowski <alex@milowski.com>
- Reviewed by Beth Dakin.
- Changed the ENABLE_MATHML value to enable MathML by default.
- * Configurations/FeatureDefines.xcconfig:
- 2010-08-03 Michael Saboff <msaboff@apple.com>
- Reviewed by Gavin Barraclough.
- Change to keep returned pointer from malloc family functions to
- quiet memory leak detect. The pointer is saved in the new m_allocBase
- member of the ArrayStorage structure. This fixes the issue found in
- https://bugs.webkit.org/show_bug.cgi?id=43229.
- As part of this change, we use m_allocBase when reallocating and
- freeing the memory associated with ArrayStorage.
- * runtime/JSArray.cpp:
- (JSC::JSArray::JSArray):
- (JSC::JSArray::~JSArray):
- (JSC::JSArray::putSlowCase):
- (JSC::JSArray::increaseVectorLength):
- (JSC::JSArray::increaseVectorPrefixLength):
- * runtime/JSArray.h:
- 2010-08-03 Geoffrey Garen <ggaren@apple.com>
- Reviewed by Mark Rowe.
- https://bugs.webkit.org/show_bug.cgi?id=43444
- PLATFORM(CF) is false on Windows in JavaScriptCore
- Moved some PLATFORM(WIN) #defines down into JavaScriptCore.
- * wtf/Platform.h: Added WTF_PLATFORM_CF 1 and WTF_USE_PTHREADS 0, inherited
- from WebCore/config.h. Removed WTF_USE_WININET 1 since WebCore/config.h
- just #undefined that later.
- 2010-08-03 Geoffrey Garen <ggaren@apple.com>
- Try to fix Windows build: Don't use GCActivityCallbackCF on Windows, since
- PLATFORM(CF) is not defined on Windows.
-
- We'll need to enable the GC activity callback some other way, but this
- change should get the build back to normal.
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
- * runtime/GCActivityCallbackCF.cpp: Make it easier to detect this error
- in the future with an explicit error message.
- 2010-08-03 Geoffrey Garen <ggaren@apple.com>
- Try to fix Windows build: update .def file.
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
- 2010-08-03 Nathan Lawrence <nlawrence@apple.com>
- Reviewed by Oliver Hunt.
- https://bugs.webkit.org/show_bug.cgi?id=41318
- GC should reclaim garbage even when new objects are not being allocated rapidly
- Added a callback in JavaScriptCore that gets triggered after an
- allocation causes the heap to reset. This is useful for adding a
- timer that will trigger garbage collection after the "last" allocation.
- Also needed was to add lock and unlock methods to JSLock that needed
- only a JSGlobalData object versus an ExecState object.
- * CMakeLists.txt:
- * GNUmakefile.am:
- * JavaScriptCore.exp:
- * JavaScriptCore.gypi:
- * JavaScriptCore.pro:
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
- * JavaScriptCore.xcodeproj/project.pbxproj:
- * jit/JITPropertyAccess.cpp:
- (JSC::JIT::emit_op_put_by_val):
- * runtime/Collector.cpp:
- (JSC::Heap::Heap):
- (JSC::Heap::reset):
- (JSC::Heap::setActivityCallback):
- * runtime/Collector.h:
- * runtime/GCActivityCallback.cpp: Added.
- (JSC::DefaultGCActivityCallback::DefaultGCActivityCallback):
- (JSC::DefaultGCActivityCallback::~DefaultGCActivityCallback):
- (JSC::DefaultGCActivityCallback::operator()):
- * runtime/GCActivityCallback.h: Added.
- (JSC::GCActivityCallback::~GCActivityCallback):
- (JSC::GCActivityCallback::operator()):
- (JSC::GCActivityCallback::GCActivityCallback):
- (JSC::DefaultGCActivityCallback::create):
- * runtime/GCActivityCallbackCF.cpp: Added.
- (JSC::DefaultGCActivityCallbackPlatformData::trigger):
- (JSC::DefaultGCActivityCallback::DefaultGCActivityCallback):
- (JSC::DefaultGCActivityCallback::~DefaultGCActivityCallback):
- (JSC::DefaultGCActivityCallback::operator()):
- * runtime/JSLock.cpp:
- (JSC::JSLock::JSLock):
- * runtime/JSLock.h:
- 2010-08-02 Kevin Ollivier <kevino@theolliviers.com>
- [wx] Build fix after removal of need to compile ExecutableAllocatorPosix.cpp
- * wscript:
- 2010-08-02 Mahesh Kulkarni <mahesh.kulkarni@nokia.com>
- Reviewed by Simon Hausmann.
- [QT] build fix for symbian
- https://bugs.webkit.org/show_bug.cgi?id=43234
- 1) wrong order of passing param's
- 2) static_cast complains on symbian so using reinterpret_cast
- No new tests added. Just a build fix for qt symbian
- * wtf/PageAllocation.cpp:
- (WTF::PageAllocation::commit):
- (WTF::PageAllocation::decommit):
- (WTF::PageAllocation::reserve):
- 2010-07-30 Luiz Agostini <luiz.agostini@openbossa.org>
- Reviewed by Simon Fraser.
- Enabling view modes to all platforms
- https://bugs.webkit.org/show_bug.cgi?id=37505
- Removing ENABLE_WIDGETS_10_SUPPORT flag.
- As view mode media feature is not part of widget 1.0 specification
- any more the ENABLE_WIDGETS_10_SUPPORT flag may be removed. The only use
- of this flag was related to view mode media feature implementation in Qt.
- * wtf/Platform.h:
- 2010-07-30 Andy Estes <aestes@apple.com>
- Reviewed by David Kilzer.
- Add Xcode support for compiling WebKit against iOS SDKs.
- https://bugs.webkit.org/show_bug.cgi?id=42796
- * Configurations/Base.xcconfig:
- * Configurations/DebugRelease.xcconfig:
- * Configurations/FeatureDefines.xcconfig:
- 2010-07-30 Dumitru Daniliuc <dumi@chromium.org>
- Reviewed by Davin Levin.
- Added a yield() function.
- https://bugs.webkit.org/show_bug.cgi?id=42843
- * JavaScriptCore.exp:
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
- * wtf/Threading.h:
- * wtf/ThreadingPthreads.cpp:
- (WTF::yield):
- * wtf/ThreadingWin.cpp:
- (WTF::yield):
- * wtf/gtk/ThreadingGtk.cpp:
- (WTF::yield):
- * wtf/qt/ThreadingQt.cpp:
- (WTF::yield):
- 2010-07-30 Rafael Antognolli <antognolli@profusion.mobi>
- Reviewed by Antonio Gomes.
- [EFL] Add library version and soname to EFL generated libraries and binary.
- https://bugs.webkit.org/show_bug.cgi?id=43212
- Add version and soname to libjavascriptcore.so and libwtf.so in case of
- linking as shared libraries, and version to jsc executable.
- * CMakeLists.txt:
- * jsc/CMakeLists.txt:
- * wtf/CMakeLists.txt:
- 2010-07-30 Mahesh Kulkarni <mahesh.kulkarni@nokia.com>
- Reviewed by Simon Hausmann.
- [QT] build fix for symbian
- https://bugs.webkit.org/show_bug.cgi?id=43234
- * wtf/PageAllocation.h:
- (WTF::PageAllocation::PageAllocation):
- 2010-07-29 Sheriff Bot <webkit.review.bot@gmail.com>
- Unreviewed, rolling out r64313.
- http://trac.webkit.org/changeset/64313
- https://bugs.webkit.org/show_bug.cgi?id=43233
- Some Chromium bots are not happy with it for some unknown
- reason. (Requested by dumi on #webkit).
- * JavaScriptCore.exp:
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
- * wtf/Threading.h:
- * wtf/ThreadingPthreads.cpp:
- * wtf/ThreadingWin.cpp:
- * wtf/gtk/ThreadingGtk.cpp:
- * wtf/qt/ThreadingQt.cpp:
- 2010-07-29 Sheriff Bot <webkit.review.bot@gmail.com>
- Unreviewed, rolling out r64302.
- http://trac.webkit.org/changeset/64302
- https://bugs.webkit.org/show_bug.cgi?id=43223
- Assertion is bogus (Requested by olliej on #webkit).
- * assembler/ARMAssembler.cpp:
- (JSC::ARMAssembler::executableCopy):
- * assembler/AssemblerBuffer.h:
- (JSC::AssemblerBuffer::putShortUnchecked):
- (JSC::AssemblerBuffer::putIntUnchecked):
- (JSC::AssemblerBuffer::putInt64Unchecked):
- * jit/JITStubs.cpp:
- * pcre/pcre_compile.cpp:
- (jsRegExpCompile):
- * wtf/FastMalloc.cpp:
- (WTF::PageHeapAllocator::New):
- (WTF::TCMalloc_Central_FreeList::Populate):
- * wtf/MD5.cpp:
- (WTF::reverseBytes):
- (WTF::MD5::addBytes):
- (WTF::MD5::checksum):
- * wtf/StdLibExtras.h:
- * wtf/Vector.h:
- (WTF::VectorBuffer::inlineBuffer):
- * wtf/qt/StringQt.cpp:
- (WebCore::String::String):
- 2010-07-29 Michael Saboff <msaboff@apple.com>
- Reviewed by Gavin Barraclough.
- Changed the handling for removing and adding elements at the front
- of an array. The code now keeps a bias that indicates the amount of
- JSValue sized holes are prior to the ArrayStorage block. This means
- that shift operations are now memmove's of the header part of
- the ArrayStorage and unshift operations are similar, but may require a
- realloc first to create the space. Similar operations are performed
- for special cases of splice and slice.
- Also optimized the new Array(size) case so that we don't allocate and
- initialize array elements until the JS code starts using elements.
- The array growth code is slightly more aggressive for initial growth
- based on size growth of any previous array.
- * Configurations/JavaScriptCore.xcconfig:
- * jit/JITPropertyAccess.cpp:
- (JSC::JIT::emit_op_get_by_val):
- (JSC::JIT::emit_op_put_by_val):
- (JSC::JIT::privateCompilePatchGetArrayLength):
- * jit/JITPropertyAccess32_64.cpp:
- (JSC::JIT::emit_op_get_by_val):
- (JSC::JIT::emit_op_put_by_val):
- (JSC::JIT::privateCompilePatchGetArrayLength):
- * runtime/ArrayPrototype.cpp:
- (JSC::arrayProtoFuncShift):
- (JSC::arrayProtoFuncSplice):
- (JSC::arrayProtoFuncUnShift):
- * runtime/JSArray.cpp:
- (JSC::JSArray::JSArray):
- (JSC::JSArray::~JSArray):
- (JSC::JSArray::getOwnPropertySlot):
- (JSC::JSArray::getOwnPropertyDescriptor):
- (JSC::JSArray::put):
- (JSC::JSArray::putSlowCase):
- (JSC::JSArray::deleteProperty):
- (JSC::JSArray::getOwnPropertyNames):
- (JSC::JSArray::getNewVectorLength):
- (JSC::JSArray::increaseVectorLength):
- (JSC::JSArray::increaseVectorPrefixLength):
- (JSC::JSArray::setLength):
- (JSC::JSArray::pop):
- (JSC::JSArray::push):
- (JSC::JSArray::shiftCount):
- (JSC::JSArray::unshiftCount):
- (JSC::JSArray::sortNumeric):
- (JSC::JSArray::sort):
- (JSC::JSArray::fillArgList):
- (JSC::JSArray::copyToRegisters):
- (JSC::JSArray::compactForSorting):
- (JSC::JSArray::subclassData):
- (JSC::JSArray::setSubclassData):
- (JSC::JSArray::checkConsistency):
- * runtime/JSArray.h:
- (JSC::JSArray::length):
- (JSC::JSArray::canGetIndex):
- (JSC::JSArray::getIndex):
- (JSC::JSArray::setIndex):
- (JSC::JSArray::uncheckedSetIndex):
- (JSC::JSArray::arrayStorage):
- (JSC::JSArray::setArrayStorage):
- (JSC::JSArray::markChildrenDirect):
- 2010-07-29 Michael Saboff <msaboff@apple.com>
- Reviewed by Darin Adler.
- Changed MINIMUM_CELL_SIZE to be fixed at 64 bytes.
- * runtime/Collector.h:
- 2010-07-28 Dumitru Daniliuc <dumi@chromium.org>
- Reviewed by David Levin.
- Added a yield() function.
- https://bugs.webkit.org/show_bug.cgi?id=42843
- * JavaScriptCore.exp:
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
- * wtf/Threading.h:
- * wtf/ThreadingPthreads.cpp:
- (WTF::yield):
- * wtf/ThreadingWin.cpp:
- (WTF::yield):
- * wtf/gtk/ThreadingGtk.cpp:
- (WTF::yield):
- * wtf/qt/ThreadingQt.cpp:
- (WTF::yield):
- 2010-07-29 Michael Saboff <msaboff@apple.com>
- Reviewed by Oliver Hunt.
- Fixed issue where RegExp greedy jit code loops when no input is
- consumed. Changed the code to only loop if some input was consumed,
- but fall through if we successfully match an alternative that
- doesn't consume any input.
- https://bugs.webkit.org/show_bug.cgi?id=42664
- * yarr/RegexJIT.cpp:
- (JSC::Yarr::RegexGenerator::generateParenthesesGreedyNoBacktrack):
- 2010-07-29 Gabor Loki <loki@webkit.org>
- Reviewed by Gavin Barraclough.
- Avoid increasing required alignment of target type warning on ARM
- https://bugs.webkit.org/show_bug.cgi?id=38045
- The reinterpret_cast<Type1*>([pointer to Type2]) expressions - where
- sizeof(Type1) > sizeof(Type2) - cause the following warning on ARM:
- increases required alignment of target type warnings.
- Casting the type of [pointer to Type2] object to void* bypasses the
- warning.
- * assembler/ARMAssembler.cpp:
- (JSC::ARMAssembler::executableCopy):
- * assembler/AssemblerBuffer.h:
- (JSC::AssemblerBuffer::putShortUnchecked):
- (JSC::AssemblerBuffer::putIntUnchecked):
- (JSC::AssemblerBuffer::putInt64Unchecked):
- * jit/JITStubs.cpp:
- * pcre/pcre_compile.cpp:
- (jsRegExpCompile):
- * wtf/FastMalloc.cpp:
- (WTF::PageHeapAllocator::New):
- (WTF::TCMalloc_Central_FreeList::Populate):
- * wtf/MD5.cpp:
- (WTF::reverseBytes):
- (WTF::MD5::addBytes):
- (WTF::MD5::checksum):
- * wtf/StdLibExtras.h:
- (reinterpret_cast_ptr):
- * wtf/Vector.h:
- (WTF::VectorBuffer::inlineBuffer):
- * wtf/qt/StringQt.cpp:
- (WebCore::String::String):
- 2010-07-29 Martin Robinson <mrobinson@igalia.com>
- Unreviewed build fix.
- Include a missing header in the source list to fix 'make dist.'
- * GNUmakefile.am: Include missing header.
- 2010-07-28 Gavin Barraclough <barraclough@apple.com>
- Reviewed by Darin Adler.
- Bug 43162 - Add support for MADV_FREE to PageAllocation.
- * wtf/PageAllocation.cpp:
- (WTF::PageAllocation::commit):
- (WTF::PageAllocation::decommit):
- 2010-07-27 Kinuko Yasuda <kinuko@chromium.org>
- Reviewed by Ojan Vafai.
- Add FILE_SYSTEM build flag for FileSystem API
- https://bugs.webkit.org/show_bug.cgi?id=42915
- * Configurations/FeatureDefines.xcconfig:
- 2010-07-27 Gavin Barraclough <barraclough@apple.com>
- Temporarily rolling out http://trac.webkit.org/changeset/64177,
- this seems to give QT ARM/Win a headache (specifically, looks
- like structure layour differs, objects get too large -
- "..\..\..\JavaScriptCore\runtime\ArrayPrototype.cpp:41:"
- "error: size of array 'dummyclass_fits_in_cell' is negative").
- * jit/JITPropertyAccess.cpp:
- (JSC::JIT::emit_op_get_by_val):
- (JSC::JIT::emit_op_put_by_val):
- (JSC::JIT::privateCompilePatchGetArrayLength):
- * jit/JITPropertyAccess32_64.cpp:
- (JSC::JIT::emit_op_get_by_val):
- (JSC::JIT::emit_op_put_by_val):
- (JSC::JIT::privateCompilePatchGetArrayLength):
- * runtime/ArrayPrototype.cpp:
- (JSC::arrayProtoFuncShift):
- (JSC::arrayProtoFuncSplice):
- (JSC::arrayProtoFuncUnShift):
- * runtime/JSArray.cpp:
- (JSC::increasedVectorLength):
- (JSC::JSArray::JSArray):
- (JSC::JSArray::~JSArray):
- (JSC::JSArray::getOwnPropertySlot):
- (JSC::JSArray::getOwnPropertyDescriptor):
- (JSC::JSArray::put):
- (JSC::JSArray::putSlowCase):
- (JSC::JSArray::deleteProperty):
- (JSC::JSArray::getOwnPropertyNames):
- (JSC::JSArray::increaseVectorLength):
- (JSC::JSArray::setLength):
- (JSC::JSArray::pop):
- (JSC::JSArray::push):
- (JSC::JSArray::sortNumeric):
- (JSC::JSArray::sort):
- (JSC::JSArray::fillArgList):
- (JSC::JSArray::copyToRegisters):
- (JSC::JSArray::compactForSorting):
- (JSC::JSArray::subclassData):
- (JSC::JSArray::setSubclassData):
- (JSC::JSArray::checkConsistency):
- * runtime/JSArray.h:
- (JSC::JSArray::length):
- (JSC::JSArray::canGetIndex):
- (JSC::JSArray::getIndex):
- (JSC::JSArray::setIndex):
- (JSC::JSArray::uncheckedSetIndex):
- (JSC::JSArray::markChildrenDirect):
- 2010-07-27 Gavin Barraclough <barraclough@apple.com>
- Speculative build fix for Chromium/Win
- * wtf/Platform.h:
- 2010-07-27 Gavin Barraclough <barraclough@apple.com>
- Oh! that makes more sense! Maybe C++-style comments are bringing teh bad mojo.
- * wtf/Platform.h:
- 2010-07-27 Gavin Barraclough <barraclough@apple.com>
- Speculative build fix for GTK/64 ... seems to be barfing on a comment o_O
- * wtf/Platform.h:
- 2010-07-27 Michael Saboff <msaboff@apple.com>
- Reviewed by Gavin Barraclough.
- Changed the handling for removing and adding elements at the front
- of an array. The code now keeps a bias that indicates the amount of
- JSValue sized holes are prior to the ArrayStorage block. This means
- that shift operations are now memmove's of the header part of
- the ArrayStorage and unshift operations are similar, but may require a
- realloc first to create the space. Similar operations are performed
- for special cases of splice and slice.
- Also optimized the new Array(size) case so that we don't allocate and
- initialize array elements until the JS code starts using elements.
- The array growth code is slightly more aggressive for initial growth
- based on size growth of any previous array.
- * Configurations/JavaScriptCore.xcconfig:
- * jit/JITPropertyAccess.cpp:
- (JSC::JIT::emit_op_get_by_val):
- (JSC::JIT::emit_op_put_by_val):
- (JSC::JIT::privateCompilePatchGetArrayLength):
- * jit/JITPropertyAccess32_64.cpp:
- (JSC::JIT::emit_op_get_by_val):
- (JSC::JIT::emit_op_put_by_val):
- (JSC::JIT::privateCompilePatchGetArrayLength):
- * runtime/ArrayPrototype.cpp:
- (JSC::arrayProtoFuncShift):
- (JSC::arrayProtoFuncSplice):
- (JSC::arrayProtoFuncUnShift):
- * runtime/JSArray.cpp:
- (JSC::JSArray::JSArray):
- (JSC::JSArray::~JSArray):
- (JSC::JSArray::getOwnPropertySlot):
- (JSC::JSArray::getOwnPropertyDescriptor):
- (JSC::JSArray::put):
- (JSC::JSArray::putSlowCase):
- (JSC::JSArray::deleteProperty):
- (JSC::JSArray::getOwnPropertyNames):
- (JSC::JSArray::getNewVectorLength):
- (JSC::JSArray::increaseVectorLength):
- (JSC::JSArray::increaseVectorPrefixLength):
- (JSC::JSArray::setLength):
- (JSC::JSArray::pop):
- (JSC::JSArray::push):
- (JSC::JSArray::shiftCount):
- (JSC::JSArray::unshiftCount):
- (JSC::JSArray::sortNumeric):
- (JSC::JSArray::sort):
- (JSC::JSArray::fillArgList):
- (JSC::JSArray::copyToRegisters):
- (JSC::JSArray::compactForSorting):
- (JSC::JSArray::subclassData):
- (JSC::JSArray::setSubclassData):
- (JSC::JSArray::checkConsistency):
- * runtime/JSArray.h:
- (JSC::JSArray::length):
- (JSC::JSArray::canGetIndex):
- (JSC::JSArray::getIndex):
- (JSC::JSArray::setIndex):
- (JSC::JSArray::uncheckedSetIndex):
- (JSC::JSArray::arrayStorage):
- (JSC::JSArray::setArrayStorage):
- (JSC::JSArray::markChildrenDirect):
- 2010-07-27 Gavin Barraclough <barraclough@apple.com>
- Reviewed by Oliver Hunt.
- Bug 43089 - Cleanup JIT related switched in Platform.h
- The code the enable to JIT checks every permutation of platform & OS individually, but
- now the JIT is enabled on the majority much all x86/x86-64/ARM/MIPS systems. It should
- be cleaner to just enable by default on these platforms, and explicitly disable on configs
- that don't aren't supported.
- Also, rename ENABLE_JIT_OPTIMIZE_MOD to ENABLE_JIT_USE_SOFT_MODULO. I always find this
- confusing since enabling this "optimization" would be possible, but would be a regression
- on x86/x86-64 systems! I think it's clearer to reserve "JIT_OPTIMIZE" for compiler
- technologies applicable to all platforms, and make a more optional behaviour like this a
- "USE".
- * jit/ExecutableAllocator.h:
- (JSC::ExecutableAllocator::cacheFlush):
- * jit/JIT.h:
- * jit/JITArithmetic.cpp:
- (JSC::JIT::emit_op_mod):
- (JSC::JIT::emitSlow_op_mod):
- * jit/JITArithmetic32_64.cpp:
- (JSC::JIT::emit_op_mod):
- (JSC::JIT::emitSlow_op_mod):
- * jit/JITOpcodes.cpp:
- (JSC::JIT::privateCompileCTIMachineTrampolines):
- * jit/JITOpcodes32_64.cpp:
- (JSC::JIT::privateCompileCTIMachineTrampolines):
- * wtf/Platform.h:
- 2010-07-27 James Robinson <jamesr@chromium.org>
- Reviewed by Darin Fisher.
- [chromium] Make PLATFORM(CHROMIUM) and not OS(MAC) turn USE(GLES2_RENDERING) on
- https://bugs.webkit.org/show_bug.cgi?id=43084
- This turns USE(GLES2_RENDERING) on for chromium on windows/linux. This causes no
- change in behavior, that's all controlled by ENABLE() macros that are currently off.
- * wtf/Platform.h:
- 2010-07-23 Helder Correia <heldercorreia@codeaurora.org>
- Reviewed by Darin Adler.
- Canvas tests 2d.imageData.object.round and 2d.imageData.object.wrap are
- failing. For canvas image data manipulation, the values passed should
- be truncated and wrapped. Also fix the canvas-ImageData-behaviour test
- to expect wrapping rather than clamping, and add some new checkings.
- https://bugs.webkit.org/show_bug.cgi?id=40272
- * runtime/JSByteArray.h:
- (JSC::JSByteArray::setIndex):
- (JSC::JSByteArray::JSByteArray):
- 2010-07-27 Gavin Barraclough <barraclough@apple.com>
- Reviewed by Oliver Hunt.
- Bug 42621 - Add a bump allocator for the YARR interpreter
- The regex engine requires lifo allocation, however currently uses the general purpose
- malloc/free memory allocation. A simple bump pointer allocator should provide a lower
- overhead allocation solution.
- When using YARR interpreter, 15% progression on v8-regex.
- * JavaScriptCore.xcodeproj/project.pbxproj:
- * runtime/JSGlobalData.h:
- * runtime/RegExp.cpp:
- (JSC::RegExp::compile):
- * wtf/BumpPointerAllocator.h: Added.
- (WTF::BumpPointerPool::ensureCapacity):
- (WTF::BumpPointerPool::alloc):
- (WTF::BumpPointerPool::dealloc):
- (WTF::BumpPointerPool::operator new):
- (WTF::BumpPointerPool::BumpPointerPool):
- (WTF::BumpPointerPool::create):
- (WTF::BumpPointerPool::shrink):
- (WTF::BumpPointerPool::destroy):
- (WTF::BumpPointerPool::ensureCapacityCrossPool):
- (WTF::BumpPointerPool::deallocCrossPool):
- (WTF::BumpPointerAllocator::BumpPointerAllocator):
- (WTF::BumpPointerAllocator::~BumpPointerAllocator):
- (WTF::BumpPointerAllocator::startAllocator):
- (WTF::BumpPointerAllocator::stopAllocator):
- * yarr/RegexInterpreter.cpp:
- (JSC::Yarr::Interpreter::allocDisjunctionContext):
- (JSC::Yarr::Interpreter::freeDisjunctionContext):
- (JSC::Yarr::Interpreter::allocParenthesesDisjunctionContext):
- (JSC::Yarr::Interpreter::freeParenthesesDisjunctionContext):
- (JSC::Yarr::Interpreter::interpret):
- (JSC::Yarr::Interpreter::Interpreter):
- (JSC::Yarr::ByteCompiler::compile):
- (JSC::Yarr::byteCompileRegex):
- * yarr/RegexInterpreter.h:
- (JSC::Yarr::BytecodePattern::BytecodePattern):
- 2010-07-26 Gavin Barraclough <barraclough@apple.com>
- Windows build fix from Chromium/GTK build fix!
- * wtf/PageAllocation.cpp:
- 2010-07-26 Gavin Barraclough <barraclough@apple.com>
- Chromium/GTK build fix
- * wtf/PageAllocation.cpp:
- 2010-07-26 Gavin Barraclough <barraclough@apple.com>
- Build fix for !Mac platforms.
- * Android.mk:
- * CMakeLists.txt:
- * GNUmakefile.am:
- * JavaScriptCore.gypi:
- * JavaScriptCore.pro:
- * JavaScriptCore.vcproj/WTF/WTF.vcproj:
- 2010-07-26 Gavin Barraclough <barraclough@apple.com>
- Reviewed by Oliver Hunt.
- Bug 43009 - Abstract out page allocation from executable allocators
- It would be great to have a single platform abstraction for block allocation, rather than copy/paste code.
- In this initial implementation I've made Symbian fall back to use malloc/free for non-executable memory.
- I think this will match current behaviour for the next client we will want to port across (RegisterFile &
- Collector).
- * CMakeListsEfl.txt:
- * GNUmakefile.am:
- * JavaScriptCore.gypi:
- * JavaScriptCore.pro:
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
- * JavaScriptCore.xcodeproj/project.pbxproj:
- * jit/ExecutableAllocator.cpp:
- (JSC::ExecutableAllocator::intializePageSize):
- (JSC::ExecutablePool::systemAlloc):
- (JSC::ExecutablePool::systemRelease):
- (JSC::ExecutableAllocator::isValid):
- * jit/ExecutableAllocator.h:
- (JSC::ExecutablePool::ExecutablePool):
- (JSC::ExecutablePool::poolAllocate):
- * jit/ExecutableAllocatorFixedVMPool.cpp:
- (JSC::FixedVMPoolAllocator::release):
- (JSC::FixedVMPoolAllocator::reuse):
- (JSC::FixedVMPoolAllocator::FixedVMPoolAllocator):
- (JSC::FixedVMPoolAllocator::alloc):
- (JSC::FixedVMPoolAllocator::free):
- (JSC::FixedVMPoolAllocator::isValid):
- (JSC::FixedVMPoolAllocator::isWithinVMPool):
- (JSC::ExecutablePool::systemAlloc):
- (JSC::ExecutablePool::systemRelease):
- * jit/ExecutableAllocatorPosix.cpp: Removed.
- * jit/ExecutableAllocatorSymbian.cpp: Removed.
- * jit/ExecutableAllocatorWin.cpp: Removed.
- * wscript:
- * wtf/PageAllocator.cpp: Added.
- (WTF::protection):
- (WTF::PageAllocation::commit):
- (WTF::PageAllocation::decommit):
- (WTF::PageAllocator::allocate):
- (WTF::PageAllocator::reserve):
- (WTF::PageAllocator::deallocate):
- (WTF::PageAllocator::pagesize):
- * wtf/PageAllocator.h: Added.
- (WTF::PageAllocation::PageAllocation):
- (WTF::PageAllocation::base):
- (WTF::PageAllocation::size):
- (WTF::PageAllocation::chunk):
- (WTF::PageAllocation::operator!):
- (WTF::PageAllocator::):
- 2010-07-26 Gavin Barraclough <barraclough@apple.com>
- Rolling out r64097:64100, oops, more b0rked than I relized by my last changes, sorry!
- * CMakeListsEfl.txt:
- * GNUmakefile.am:
- * JavaScriptCore.gypi:
- * JavaScriptCore.pro:
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
- * JavaScriptCore.xcodeproj/project.pbxproj:
- * jit/ExecutableAllocator.cpp:
- (JSC::ExecutableAllocator::reprotectRegion):
- (JSC::ExecutableAllocator::cacheFlush):
- * jit/ExecutableAllocator.h:
- (JSC::ExecutablePool::ExecutablePool):
- (JSC::ExecutablePool::poolAllocate):
- * jit/ExecutableAllocatorFixedVMPool.cpp:
- (JSC::FixedVMPoolAllocator::release):
- (JSC::FixedVMPoolAllocator::reuse):
- (JSC::FixedVMPoolAllocator::FixedVMPoolAllocator):
- (JSC::FixedVMPoolAllocator::alloc):
- (JSC::FixedVMPoolAllocator::free):
- (JSC::FixedVMPoolAllocator::isValid):
- (JSC::FixedVMPoolAllocator::isWithinVMPool):
- (JSC::ExecutablePool::systemAlloc):
- (JSC::ExecutablePool::systemRelease):
- * jit/ExecutableAllocatorPosix.cpp: Added.
- (JSC::ExecutableAllocator::intializePageSize):
- (JSC::ExecutablePool::systemAlloc):
- (JSC::ExecutablePool::systemRelease):
- (JSC::ExecutableAllocator::isValid):
- * jit/ExecutableAllocatorSymbian.cpp: Added.
- (JSC::ExecutableAllocator::intializePageSize):
- (JSC::ExecutablePool::systemAlloc):
- (JSC::ExecutablePool::systemRelease):
- (JSC::ExecutableAllocator::isValid):
- * jit/ExecutableAllocatorWin.cpp: Added.
- (JSC::ExecutableAllocator::intializePageSize):
- (JSC::ExecutablePool::systemAlloc):
- (JSC::ExecutablePool::systemRelease):
- (JSC::ExecutableAllocator::isValid):
- * wscript:
- * wtf/PageAllocation.cpp: Removed.
- * wtf/PageAllocation.h: Removed.
- 2010-07-26 Gavin Barraclough <barraclough@apple.com>
- Speculative !debug build fix II.
- * wtf/PageAllocation.h:
- (WTF::PageAllocation::PageAllocation):
- 2010-07-26 Gavin Barraclough <barraclough@apple.com>
- Speculative !debug build fix.
- * wtf/PageAllocation.h:
- (WTF::PageAllocation::PageAllocation):
- 2010-07-26 Gavin Barraclough <barraclough@apple.com>
- Reviewed by Oliver Hunt.
- Bug 43009 - Abstract out page allocation from executable allocators
- It would be great to have a single platform abstraction for block allocation, rather than copy/paste code.
- In this initial implementation I've made Symbian fall back to use malloc/free for non-executable memory.
- I think this will match current behaviour for the next client we will want to port across (RegisterFile &
- Collector).
- * CMakeListsEfl.txt:
- * GNUmakefile.am:
- * JavaScriptCore.gypi:
- * JavaScriptCore.pro:
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
- * JavaScriptCore.xcodeproj/project.pbxproj:
- * jit/ExecutableAllocator.cpp:
- (JSC::ExecutableAllocator::intializePageSize):
- (JSC::ExecutablePool::systemAlloc):
- (JSC::ExecutablePool::systemRelease):
- (JSC::ExecutableAllocator::isValid):
- * jit/ExecutableAllocator.h:
- (JSC::ExecutablePool::ExecutablePool):
- (JSC::ExecutablePool::poolAllocate):
- * jit/ExecutableAllocatorFixedVMPool.cpp:
- (JSC::FixedVMPoolAllocator::release):
- (JSC::FixedVMPoolAllocator::reuse):
- (JSC::FixedVMPoolAllocator::FixedVMPoolAllocator):
- (JSC::FixedVMPoolAllocator::alloc):
- (JSC::FixedVMPoolAllocator::free):
- (JSC::FixedVMPoolAllocator::isValid):
- (JSC::FixedVMPoolAllocator::isWithinVMPool):
- (JSC::ExecutablePool::systemAlloc):
- (JSC::ExecutablePool::systemRelease):
- * jit/ExecutableAllocatorPosix.cpp: Removed.
- * jit/ExecutableAllocatorSymbian.cpp: Removed.
- * jit/ExecutableAllocatorWin.cpp: Removed.
- * wscript:
- * wtf/PageAllocator.cpp: Added.
- (WTF::protection):
- (WTF::PageAllocation::commit):
- (WTF::PageAllocation::decommit):
- (WTF::PageAllocator::allocate):
- (WTF::PageAllocator::reserve):
- (WTF::PageAllocator::deallocate):
- (WTF::PageAllocator::pagesize):
- * wtf/PageAllocator.h: Added.
- (WTF::PageAllocation::PageAllocation):
- (WTF::PageAllocation::base):
- (WTF::PageAllocation::size):
- (WTF::PageAllocation::chunk):
- (WTF::PageAllocation::operator!):
- (WTF::PageAllocator::):
- 2009-10-30 Tor Arne Vestbø <tor.arne.vestbo@nokia.com>
- Reviewed by Kenneth Rohde Christiansen.
- [Qt] Use the default timeout interval for JS as the HTML tokenizer delay for setHtml()
- This ensures that long-running JavaScript (for example due to a modal alert() dialog),
- will not trigger a deferred load after only 500ms (the default tokenizer delay) while
- still giving a reasonable timeout (10 seconds) to prevent deadlock.
- https://bugs.webkit.org/show_bug.cgi?id=29381
- * runtime/TimeoutChecker.h: Add getter for the timeout interval
- 2010-07-25 Patrick Gansterer <paroga@paroga.com>
- Reviewed by Kent Tamura.
- [WINCE] Buildfix for JSC in release mode
- https://bugs.webkit.org/show_bug.cgi?id=42934
- * jsc.cpp: Don't use __try on WinCE.
- 2010-07-24 Patrick Gansterer <paroga@paroga.com>
- Reviewed by Darin Adler.
- [MSVC] Ensure 4 byte alignment on ARM
- https://bugs.webkit.org/show_bug.cgi?id=42935
- * jit/JITStubs.h: Added #pragma pack(4) around JITStackFrame.
- 2010-07-24 Patrick Gansterer <paroga@paroga.com>
- Reviewed by Darin Adler.
- [WINCE] Cleanup defines in Platform.h
- https://bugs.webkit.org/show_bug.cgi?id=42933
- * wtf/Platform.h:
- 2010-07-23 Rafael Antognolli <antognolli@profusion.mobi>
- Reviewed by Antonio Gomes.
- [EFL] Cleanup glib support (make it optional)
- https://bugs.webkit.org/show_bug.cgi?id=42480
- Remove gobject/GRefPtr.cpp if not using soup/glib.
- * wtf/CMakeListsEfl.txt:
- 2010-07-23 Patrick Gansterer <paroga@paroga.com>
- Reviewed by Adam Roben.
- [WINCE] Implement TCSpinLock.
- https://bugs.webkit.org/show_bug.cgi?id=41792
- Implement the SpinLock with InterlockedExchange from the Windows API.
- * wtf/TCSpinLock.h:
- (TCMalloc_SpinLock::Lock):
- (TCMalloc_SpinLock::Unlock):
- (TCMalloc_SpinLock::IsHeld):
- (TCMalloc_SpinLock::Init):
- (TCMalloc_SlowLock):
- 2010-07-22 Csaba Osztrogonác <ossy@webkit.org>
- Unreviewed rolling out r63947 and r63948, because they broke Qt Windows build.
- * jit/JITStubs.cpp:
- * jit/JITStubs.h:
- 2010-07-22 Gavin Barraclough <barraclough@apple.com>
- Eeeep! r63947 hosed all non-x86 builds!
- * jit/JITStubs.h:
- 2010-07-22 Gavin Barraclough <barraclough@apple.com>
- Reviewed by Oliver Hunt.
- Bug 42818 - [Qt] REGRESSION(63348): jsc is broken
- Speculative fix, need fastcall conventions on Qt/Win.
- * jit/JITStubs.cpp:
- * jit/JITStubs.h:
- 2010-07-22 Oliver Hunt <oliver@apple.com>
- Reviewed by Gavin Barraclough.
- Do more constant folding
- https://bugs.webkit.org/show_bug.cgi?id=42867
- Constant fold a few more operations. SunSpider says this is
- a win but I suspect that's just code motion at play.
- * parser/ASTBuilder.h:
- (JSC::ASTBuilder::makeModNode):
- (JSC::ASTBuilder::makeURightShiftNode):
- (JSC::ASTBuilder::makeBitOrNode):
- (JSC::ASTBuilder::makeBitAndNode):
- (JSC::ASTBuilder::makeBitXOrNode):
- (JSC::ASTBuilder::makeBinaryNode):
- 2010-07-22 Kent Hansen <kent.hansen@nokia.com>
- Reviewed by Kent Tamura.
- Error properties of the Global Object are missing the DontEnum attribute
- https://bugs.webkit.org/show_bug.cgi?id=28771
- Add the attributes to become spec compliant.
- * runtime/JSGlobalObject.cpp:
- (JSC::JSGlobalObject::reset):
- 2010-07-20 Steve Falkenburg <sfalken@apple.com>
- Reviewed by Adam Roben.
- WebKit on Windows should build optionally with an unversioned ICU DLL
- https://bugs.webkit.org/show_bug.cgi?id=42722
- <rdar://problem/8211743> JavaScriptCore needs to link against unversioned ICU
-
- Dynamically create a new header, ICUVersion.h, as part of build-generated-files.sh.
- Header contains a preprocessor define (U_DISABLE_RENAMING) indicating to ICU whether the ICU API
- should be namespaced with the current ICU version number. Proper value is determined
- by checking for the presence of libicuuc.lib, the unversioned copy of ICU.
-
- To get the proper value for U_DISABLE_RENAMING into all source files, we force
- the include of ICUVersion.h (our generated header) via the compiler options.
-
- Since the versioned and unversioned ICU have different filenames (libicuuc.lib vs icuuc.lib)
- we copy the ICU lib to an intermediate location under obj with a common name. This
- allows us to link properly with either without adding a new build configuration.
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreCommon.vsprops:
- Copy ICU libs into a common location with a common name.
- Add additional library search path to pick up icu lib.
- Change ICU library filename specified to linker.
- Add forced include of ICUVersion.h.
- * JavaScriptCore.vcproj/JavaScriptCore/build-generated-files.sh: Generate ICUVersion.h
- * JavaScriptCore.vcproj/WTF/WTFCommon.vsprops: Add forced include of ICUVersion.h.
- * JavaScriptCore.vcproj/jsc/jscCommon.vsprops:
- Copy ICU libs into a common location with a common name.
- Add additional library search path to pick up icu lib.
- Change ICU library filename specified to linker.
- Add forced include of ICUVersion.h.
- * JavaScriptCore.vcproj/testapi/testapiCommon.vsprops:
- Copy ICU libs into a common location with a common name.
- Add additional library search path to pick up icu lib.
- Change ICU library filename specified to linker.
- Add forced include of ICUVersion.h.
- 2010-07-20 Steve Falkenburg <sfalken@apple.com>
- Re-save vsprops files after no-op edits in Visual Studio
- to fix manual edit issues.
- 2010-07-20 Mahesh Kulkarni <mahesh.kulkarni@nokia.com>
- Reviewed by Steve Block.
- Need to be able to configure Geolocation policy regarding user permissions
- https://bugs.webkit.org/show_bug.cgi?id=42068
- If CLIENT_BASED_GEOLOCATION is enabled, enable preemtive permission policy
- by default
- * wtf/Platform.h:
-
- 2010-07-20 Sheriff Bot <webkit.review.bot@gmail.com>
- Unreviewed, rolling out r63742.
- http://trac.webkit.org/changeset/63742
- https://bugs.webkit.org/show_bug.cgi?id=42641
- Broke Leopard Intel build. (Requested by bbandix on #webkit).
- * wtf/Platform.h:
- 2010-07-20 Mahesh Kulkarni <mahesh.kulkarni@nokia.com>
- Reviewed by Steve Block.
- Need to be able to configure Geolocation policy regarding user permissions
- https://bugs.webkit.org/show_bug.cgi?id=42068
- If CLIENT_BASED_GEOLOCATION is enabled, enable preemtive permission policy
- by default
- * wtf/Platform.h:
-
- 2010-07-19 Dirk Schulze <krit@webkit.org>
- Reviewed by Nikolas Zimmermann.
- SVG CleanUp of SVGPathData parsing
- https://bugs.webkit.org/show_bug.cgi?id=41410
- Added piOverTwo to MathExtras.
- * wtf/MathExtras.h:
- 2010-07-19 Mike Moretti <mike.moretti@nokia.com>
- Reviewed by Laszlo Gombos.
- [Symbian] Build fix after r63404.
- Implement isValid() function for the Symbian executable allocator.
- * jit/ExecutableAllocatorSymbian.cpp:
- (JSC::ExecutableAllocator::isValid):
- 2010-07-19 Chris Marrin <cmarrin@apple.com>
- Reviewed by Darin Adler.
- https://bugs.webkit.org/show_bug.cgi?id=42118
- Disable WebGL on Leopard for now.
- LayoutTests fail on some graphics hardware on Leopard because one of the features we use,
- GL_ARB_framebuffer_object, is not universally available in Leopard like it is in
- SnowLeopard. This will allow LayoutTests to pass on Leopard until we add logic to use a
- software OpenGL driver on machines without this support.
- * Configurations/FeatureDefines.xcconfig:
- 2010-07-16 Darin Adler <darin@apple.com>
- Reviewed by Sam Weinig.
- Use OwnPtr for CodeBlock objects
- https://bugs.webkit.org/show_bug.cgi?id=42490
- * runtime/Executable.cpp:
- (JSC::EvalExecutable::EvalExecutable): Moved this here and made it non-inline.
- Eliminated the code that used to initialize the raw pointer since it's now
- an OwnPtr.
- (JSC::EvalExecutable::~EvalExecutable): Removed the explicit delete here.
- (JSC::ProgramExecutable::ProgramExecutable): Ditto.
- (JSC::ProgramExecutable::~ProgramExecutable): Ditto.
- (JSC::FunctionExecutable::FunctionExecutable): Ditto.
- (JSC::FunctionExecutable::~FunctionExecutable): Ditto.
- (JSC::EvalExecutable::compileInternal): Added use of adoptPtr and get.
- (JSC::ProgramExecutable::compileInternal): Ditto.
- (JSC::FunctionExecutable::compileForCallInternal): Ditto.
- (JSC::FunctionExecutable::compileForConstructInternal): Ditto.
- (JSC::FunctionExecutable::recompile): Use clear instead of delete followed
- by assignment of 0.
- * runtime/Executable.h: Moved constructors to the cpp file and changed
- raw pointers to OwnPtr.
- 2010-07-19 Lucas De Marchi <lucas.demarchi@profusion.mobi>
- Reviewed by Kenneth Rohde Christiansen.
- [EFL] Fix build on 64-bit systems. According to
- JavaScriptCore/wtf/Platform.h, x86_64 uses fixed allocator, which
- needs jit/ExecutableAllocatorFixedVMPool.cpp to be included in build
- system.
- https://bugs.webkit.org/show_bug.cgi?id=42559
- * CMakeListsEfl.txt: add missing file for x86_64.
- 2010-07-16 Leandro Pereira <leandro@profusion.mobi>
- [EFL] Unreviewed build system cleanup.
- Move ExecutableAllocator{FixedVMPool,Posix,Symbian,Win}.cpp from
- root CMakeLists.txt to the platform CMakeLists.txt.
- * CMakeLists.txt:
- * CMakeListsEfl.txt: Add ExecutableAllocatorPosix.cpp.
- 2010-07-16 Oliver Hunt <oliver@apple.com>
- Reviewed by Geoffrey Garen.
- ES5 allows use of reserved words as IdentifierName
- https://bugs.webkit.org/show_bug.cgi?id=42471
- Modify the lexer to allow us to avoid identifying reserved
- words in those contexts where they are valid identifiers, and
- we know it's safe. Additionally tag the reserved word tokens
- so we can easily identify them in those cases where we can't
- guarantee that we've skipped reserved word identification.
- * parser/JSParser.cpp:
- (JSC::JSParser::next):
- (JSC::JSParser::parseProperty):
- (JSC::JSParser::parseMemberExpression):
- * parser/JSParser.h:
- (JSC::):
- * parser/Lexer.cpp:
- (JSC::Lexer::lex):
- * parser/Lexer.h:
- (JSC::Lexer::):
- 2010-07-16 Anders Carlsson <andersca@apple.com>
- Reviewed by Sam Weinig.
- clang++ build fixes for JavaScriptCore and WebCore
- https://bugs.webkit.org/show_bug.cgi?id=42478
- * runtime/RegExpKey.h:
- (JSC::operator==):
- Move the RegExpKey equals operator into the JSC namespace so it can be found by ADL.
- 2010-07-16 Anders Carlsson <andersca@apple.com>
- Reviewed by David Levin.
- Really add WARN_UNUSED_RESULT to leakRef
- https://bugs.webkit.org/show_bug.cgi?id=42464
- * wtf/PassRefPtr.h:
- (WTF::PassRefPtr::):
- (WTF::NonNullPassRefPtr::):
- Put the WARN_UNUSED_RESULT attribute at the right place.
- * wtf/RetainPtr.h:
- (WTF::RetainPtr::releaseRef):
- Remove WARN_UNUSED_RESULT here for now, it leads to two warnings that need
- to be fixed first.
- 2010-07-15 Victor Wang <victorw@chromium.org>
- Reviewed by David Levin.
- [Chromium] Disable c4291 for chromium windows multi dll build.
- https://bugs.webkit.org/show_bug.cgi?id=42177
- * JavaScriptCore.gyp/JavaScriptCore.gyp:
- 2010-07-15 Geoffrey Garen <ggaren@apple.com>
- Reviewed by Maciej Stachowiak.
- Crash entering mail.yahoo.com
- https://bugs.webkit.org/show_bug.cgi?id=42394
-
- * bytecompiler/BytecodeGenerator.cpp:
- (JSC::BytecodeGenerator::argumentNumberFor): Added a NULL check. If the
- identifier we're resolving is not a local variable, registerFor returns
- NULL.
- * bytecompiler/NodesCodegen.cpp:
- (JSC::FunctionBodyNode::emitBytecode): Unrelated to the crash, but I
- noticed this while working on it: No need to NULL-check returnNode,
- since an early return has already done so.
- 2010-07-15 Martin Robinson <mrobinson@igalia.com>
- Reviewed by Oliver Hunt.
- [GTK] Simplify the distribution step
- https://bugs.webkit.org/show_bug.cgi?id=42414
- * GNUmakefile.am: Add extra dist files directly to EXTRA_DIST instead
- of adding them by proxy via javascriptcore_dist. Sort the EXTRA_DIST list.
- Refer to create_hash_table and create_regexp_tables directly, as is the
- behavior with other code generation scripts.
- 2010-07-15 Oliver Hunt <oliver@apple.com>
- Reviewed by Geoff Garen.
- Fix dumping of op_put_by_id.
- * bytecode/CodeBlock.cpp:
- (JSC::CodeBlock::printPutByIdOp):
- 2010-07-15 Zoltan Herczeg <zherczeg@webkit.org>
- Reviewed by Darin Adler.
- Refactoring some parts of the lexer
- https://bugs.webkit.org/show_bug.cgi?id=41845
- This patch is a precursor of refactoring the identifier
- parsing, which currently slows down the lexer, and not
- ready for landing. This patch contains those sources,
- which does not slow down the lexer (mainly style changes).
- SunSpider: no change (529.4ms to 528.7ms)
- --parse-only: no change (31.0ms to 31.2ms)
- * parser/Lexer.cpp:
- (JSC::isIdentStart): using typesOfASCIICharacters to determine
- whether the current character is in identifier start
- (JSC::isIdentPart): using typesOfASCIICharacters to determine
- whether the current character is in identifier part
- (JSC::Lexer::parseString): style fix
- (JSC::Lexer::lex): removing the else after the main which
- which reduces code duplication
- 2010-07-15 Mark Rowe <mrowe@apple.com>
- Update the sorting in the Xcode project files.
- * JavaScriptCore.xcodeproj/project.pbxproj:
- 2010-07-14 Oliver Hunt <oliver@apple.com>
- Reviewed by Gavin Barraclough.
- Make sure that mixed interpreter/jit builds don't try to use the jit if the allocator fails
- https://bugs.webkit.org/show_bug.cgi?id=42310
- Add some null checks to deal with the Fixed VM allocator failing
- to get the requested executable region, delay the creation of the
- JITStubs in JSGlobalData until after we know whether we're using
- the JIT.
- * jit/ExecutableAllocator.h:
- (JSC::ExecutableAllocator::ExecutableAllocator):
- (JSC::ExecutableAllocator::poolForSize):
- * jit/ExecutableAllocatorFixedVMPool.cpp:
- (JSC::FixedVMPoolAllocator::FixedVMPoolAllocator):
- (JSC::FixedVMPoolAllocator::alloc):
- (JSC::FixedVMPoolAllocator::free):
- (JSC::FixedVMPoolAllocator::isValid):
- (JSC::ExecutableAllocator::isValid):
- (JSC::ExecutablePool::systemAlloc):
- (JSC::ExecutablePool::systemRelease):
- * jit/ExecutableAllocatorPosix.cpp:
- (JSC::ExecutableAllocator::isValid):
- * jit/ExecutableAllocatorWin.cpp:
- (JSC::ExecutableAllocator::isValid):
- * jit/JIT.cpp:
- (JSC::JIT::linkCall):
- (JSC::JIT::linkConstruct):
- * jit/JIT.h:
- (JSC::JIT::compileCTIMachineTrampolines):
- (JSC::JIT::compileCTINativeCall):
- * jit/JITArithmetic.cpp:
- (JSC::JIT::emit_op_mod):
- * jit/JITArithmetic32_64.cpp:
- (JSC::JIT::emit_op_mod):
- * jit/JITCall.cpp:
- (JSC::JIT::compileOpCallVarargs):
- (JSC::JIT::compileOpCall):
- (JSC::JIT::compileOpCallSlowCase):
- * jit/JITCall32_64.cpp:
- (JSC::JIT::compileOpCallVarargs):
- (JSC::JIT::compileOpCall):
- (JSC::JIT::compileOpCallSlowCase):
- * jit/JITOpcodes.cpp:
- (JSC::JIT::privateCompileCTINativeCall):
- * jit/JITStubs.cpp:
- (JSC::JITThunks::JITThunks):
- (JSC::JITThunks::tryCacheGetByID):
- (JSC::JITThunks::hostFunctionStub):
- * jit/ThunkGenerators.cpp:
- (JSC::charCodeAtThunkGenerator):
- (JSC::charAtThunkGenerator):
- (JSC::fromCharCodeThunkGenerator):
- (JSC::sqrtThunkGenerator):
- (JSC::powThunkGenerator):
- * runtime/Executable.h:
- (JSC::NativeExecutable::create):
- * runtime/JSGlobalData.cpp:
- (JSC::JSGlobalData::JSGlobalData):
- (JSC::JSGlobalData::getHostFunction):
- * runtime/JSGlobalData.h:
- (JSC::JSGlobalData::getCTIStub):
- * yarr/RegexJIT.cpp:
- (JSC::Yarr::jitCompileRegex):
- 2010-07-14 Gavin Barraclough <barraclough@apple.com>
- Speculative Qt/Windows build fix.
- * jit/JITStubs.h:
- 2010-07-14 Gavin Barraclough <barraclough@apple.com>
- Reviewed by Oliver Hunt.
- https://bugs.webkit.org/show_bug.cgi?id=42280
- JIT_STUB_ARGUMENT_VA_LIST is only slowing us down! Remove it!
- * jit/JIT.h:
- * jit/JITInlineMethods.h:
- (JSC::JIT::restoreArgumentReferenceForTrampoline):
- * jit/JITStubs.cpp:
- * jit/JITStubs.h:
- * wtf/Platform.h:
- 2010-07-14 Oliver Hunt <oliver@apple.com>
- RS=Geoff Garen.
- Guard the CF path of interpreter vs. jit selection with PLATFORM(CF)
- This allows the code to work on windows as well. Also unifies the
- environment variable with the preference name.
- * runtime/JSGlobalData.cpp:
- (JSC::JSGlobalData::JSGlobalData):
- 2010-07-14 Oliver Hunt <oliver@apple.com>
- Reviewed by Don Melton.
- Crash when trying to enable JIT and Interpreter in a single build.
- CFPreferences code added at the last minute failed to account for
- the preference not being present and then attempted to CFRelease
- a null value.
- * runtime/JSGlobalData.cpp:
- (JSC::JSGlobalData::JSGlobalData):
- 2010-07-14 Zoltan Herczeg <zherczeg@webkit.org>
- Reviewed by Darin Adler.
- Change indentations in the lexer
- https://bugs.webkit.org/show_bug.cgi?id=41845
- This patch fixes an old, indentation error comes from kjs,
- as webkit has a different style rule for switches, and change
- the indentation of the main switch, which is a temporary
- style error. This change makes easier to see the behavioural
- changes in the follow-up patch.
- No behavioural changes.
- * parser/Lexer.cpp:
- (JSC::singleEscape):
- (JSC::Lexer::lex):
- 2010-07-13 Sheriff Bot <webkit.review.bot@gmail.com>
- Unreviewed, rolling out r63262.
- http://trac.webkit.org/changeset/63262
- https://bugs.webkit.org/show_bug.cgi?id=42229
- broke Windows compile (Requested by bweinstein on #webkit).
- * API/tests/testapi.c:
- (assertEqualsAsCharactersPtr):
- (main):
- * testapi.pro: Removed.
- 2010-07-13 Oliver Hunt <oliver@apple.com>
- Reviewed by Gavin Barraclough.
- ES5 requires BOMs to be treated as whitespace
- https://bugs.webkit.org/show_bug.cgi?id=42218
- Add BOM character to the Lexer's definition of whitespace,
- and remove the logic that dealt with stripping BOMs and
- caching the cleaned string.
- * parser/Lexer.h:
- (JSC::Lexer::isWhiteSpace):
- * parser/SourceProvider.h:
- (JSC::UStringSourceProvider::create):
- (JSC::UStringSourceProvider::UStringSourceProvider):
- * wtf/text/StringImpl.h:
- 2010-07-13 Andreas Kling <andreas.kling@nokia.com>
- Reviewed by Darin Adler.
- Avoid slow-path for put() in Array.splice()
- https://bugs.webkit.org/show_bug.cgi?id=41920
- Defer creation of the returned array until its final size is known
- to avoid growing it while adding elements.
- * runtime/JSArray.cpp:
- (JSC::JSArray::JSArray): Add two modes of creation, CreateInitialized (old)
- and CreateCompact (which should only be used when constructing arrays whose
- size and contents are known at the time of creation.)
- (JSC::JSArray::setLength): Skip first consistency check if in CreateCompact
- initialization mode. (Only applies to non-empty arrays.)
- (JSC::JSArray::checkConsistency): Build fix (JSValue::type() is gone)
- * runtime/JSArray.h:
- (JSC::JSArray::uncheckedSetIndex): Added for fast initialization of compact
- arrays. Does no bounds or other sanity checking.
- * runtime/ArrayPrototype.cpp:
- (JSC::arrayProtoFuncSplice): Optimized creation of the returned JSArray.
- * runtime/ArrayConstructor.cpp:
- (JSC::constructArrayWithSizeQuirk): Pass CreateInitialized to ctor.
- * runtime/JSGlobalObject.h:
- (JSC::constructEmptyArray): Pass CreateInitialized to ctor.
- * runtime/RegExpConstructor.cpp:
- (JSC::RegExpMatchesArray::RegExpMatchesArray): Pass CreateInitialized to ctor.
- 2010-07-13 Gavin Barraclough <barraclough@apple.com>
- Reviewed by Oliver Hunt.
- Bug 42207 - Clean up interface to compile executables, always check for exceptions
- Presently interface to compile executable is inconsistent between eval/program and
- function code, and is error prone in allowing a caller to byte compile without JIT
- compiling an executable (we rely on all executables with codeblocks having JIT code).
- Unify on an interface where all compilation is performed by a single compile (with
- ForCall|ForConstruct variants) method, and make all clients check for errors.
- * interpreter/Interpreter.cpp:
- (JSC::Interpreter::unwindCallFrame):
- (JSC::Interpreter::execute):
- (JSC::Interpreter::executeCall):
- (JSC::Interpreter::executeConstruct):
- (JSC::Interpreter::prepareForRepeatCall):
- (JSC::Interpreter::privateExecute):
- * jit/JITStubs.cpp:
- (JSC::DEFINE_STUB_FUNCTION):
- * parser/Parser.h:
- (JSC::Parser::isFunctionBodyNode):
- (JSC::Parser::parse):
- * runtime/ArrayPrototype.cpp:
- (JSC::isNumericCompareFunction):
- * runtime/ExceptionHelpers.cpp:
- (JSC::createStackOverflowError):
- * runtime/ExceptionHelpers.h:
- * runtime/Executable.cpp:
- (JSC::EvalExecutable::compileInternal):
- (JSC::ProgramExecutable::checkSyntax):
- (JSC::ProgramExecutable::compileInternal):
- (JSC::FunctionExecutable::compileForCallInternal):
- (JSC::FunctionExecutable::compileForConstructInternal):
- (JSC::FunctionExecutable::reparseExceptionInfo):
- (JSC::EvalExecutable::reparseExceptionInfo):
- (JSC::FunctionExecutable::fromGlobalCode):
- * runtime/Executable.h:
- (JSC::EvalExecutable::compile):
- (JSC::EvalExecutable::generatedBytecode):
- (JSC::EvalExecutable::generatedJITCode):
- (JSC::ProgramExecutable::compile):
- (JSC::ProgramExecutable::generatedBytecode):
- (JSC::ProgramExecutable::generatedJITCode):
- (JSC::FunctionExecutable::generatedBytecode):
- (JSC::FunctionExecutable::compileForCall):
- (JSC::FunctionExecutable::compileForConstruct):
- (JSC::FunctionExecutable::generatedJITCodeForConstructWithArityCheck):
- * runtime/FunctionConstructor.cpp:
- (JSC::constructFunction):
- * runtime/JSActivation.cpp:
- (JSC::JSActivation::argumentsGetter):
- * runtime/JSGlobalData.h:
- (JSC::JSGlobalData::canUseJIT):
- 2010-07-13 Caio Marcelo de Oliveira Filho <caio.oliveira@openbossa.org>
- Reviewed by Oliver Hunt.
- testapi.c depends on the Core Foundation.
- https://bugs.webkit.org/show_bug.cgi?id=40058
- Separate CoreFoundation specific tests in JSC's testapi.c. Enabling it
- to compile in Qt environments.
- All tests should work except for the JSStringCreateWithCharacters() function,
- because its tests depend on Core Foundation specific functions.
- * API/tests/testapi.c:
- (testJSStringRefCF): moved CoreFoundation specific tests to this function.
- (main): The moves plus some minor tweaks.
- * testapi.pro: Added.
- 2010-07-13 Gavin Barraclough <barraclough@apple.com>
- Reviewed by Oliver Hunt.
- Bug 42182 - Change how numeric compare functions are detected
- There are three problems with the current mechanism:
- * It requires that a function executable be bytecode compiled without
- being JIT generated (in order to copy the bytecode from the numeric
- compare function). This is a problem since we have an invariant when
- running with the JIT that functions are never bytecode compiled without
- also being JIT generated (after checking the codeblock we assume the
- function has JIT code). To help maintain this invariant
- * This implementation will prevent us from experimenting with alternate
- compilation paths which do not compile via bytecode.
- * It doesn't work. Functions passing more than two arguments will match
- if they are comparing their last two arguments, not the first two.
- Generally the mapping back from bytecode to semantics may be more
- complex then initially expected.
- * bytecompiler/BytecodeGenerator.cpp:
- (JSC::BytecodeGenerator::generate):
- (JSC::BytecodeGenerator::setIsNumericCompareFunction):
- (JSC::BytecodeGenerator::argumentNumberFor):
- * bytecompiler/BytecodeGenerator.h:
- * bytecompiler/NodesCodegen.cpp:
- (JSC::BlockNode::singleStatement):
- (JSC::FunctionBodyNode::emitBytecode):
- * parser/Nodes.h:
- (JSC::ExpressionNode::isSubtract):
- (JSC::BinaryOpNode::lhs):
- (JSC::BinaryOpNode::rhs):
- (JSC::SubNode::isSubtract):
- (JSC::ReturnNode::value):
- * runtime/JSGlobalData.cpp:
- (JSC::JSGlobalData::JSGlobalData):
- * runtime/JSGlobalData.h:
- 2010-07-12 Oliver Hunt <oliver@apple.com>
- Reviewed by Gavin Barraclough.
- REGRESSION: Crash at JSC::JIT::privateCompile(JSC::MacroAssemblerCodePtr*)
- https://bugs.webkit.org/show_bug.cgi?id=41763
- There are two parts to this patch, the first is to fix the actual
- problem. When calling copyStringWithoutBOMs on a string we know
- to contain BOMs we return a value indicating that there are no
- BOMs.
- The second part of this fix is simply to harden the path that
- led to a crash when parsing failed.
- * jit/JITOpcodes.cpp:
- (JSC::JIT::privateCompileCTIMachineTrampolines):
- * jit/JITOpcodes32_64.cpp:
- (JSC::JIT::privateCompileCTIMachineTrampolines):
- * jit/JITStubs.cpp:
- (JSC::DEFINE_STUB_FUNCTION):
- Harden compilation stubs against parser failure.
- * parser/Lexer.cpp:
- (JSC::Lexer::sourceCode):
- Add assertions to ensure that subranges into a source provider
- are always actually braces. Hopefully this should catch similar
- failures in future. These assertions fire on existing tests
- without this fix.
- * runtime/Executable.h:
- (JSC::FunctionExecutable::tryJitCodeForCall):
- (JSC::FunctionExecutable::tryJitCodeForConstruct):
- * wtf/text/StringImpl.h:
- (WebCore::StringImpl::copyStringWithoutBOMs):
- Make copyStringWithBOMs do the right thing.
- 2010-07-13 Gabor Loki <loki@webkit.org>
- Reviewed by Gavin Barraclough.
- Fix the constant encoding in data transfer instructions on ARM
- https://bugs.webkit.org/show_bug.cgi?id=42166
- The getImm function is designed to produce modified immediate constant
- for data processing instructions. It should not be used to encode
- any constant for data transfer. In the current situation there is no
- way to use any immediate constant for data transfer. So, the moveImm
- function is the desired method to pass the offset value to the data
- transfer instructions.
- Reported by Jacob Bramley.
- * assembler/ARMAssembler.cpp:
- (JSC::ARMAssembler::dataTransfer32):
- * assembler/MacroAssemblerARM.h:
- (JSC::MacroAssemblerARM::call32):
- 2010-07-09 Darin Adler <darin@apple.com>
- Reviewed by Geoffrey Garen.
- String to number coercion is not spec compliant
- https://bugs.webkit.org/show_bug.cgi?id=31349
- ToNumber should ignore NBSP (\u00a0)
- https://bugs.webkit.org/show_bug.cgi?id=25490
- * runtime/JSGlobalObjectFunctions.cpp:
- (JSC::parseIntOverflow): Added a version that works on UChar.
- * runtime/JSGlobalObjectFunctions.h: Ditto.
- * runtime/UString.cpp:
- (JSC::isInfinity): Added helper functions.
- (JSC::UString::toDouble): Use isStrWhiteSpace instead of
- isSASCIISpace to define what we should skip. Got rid of the
- code that used CString and UTF8String, instead processing the
- UChar of the string directly, except for when we call strtod.
- For strtod, use our own home-grown conversion function that
- does not try to do any UTF-16 processing. Tidied up the logic
- a bit as well.
- 2010-07-12 Martin Robinson <mrobinson@igalia.com>
- Reviewed by Xan Lopez.
- [GTK] make dist is broken because of missing headers and other miscellaneous reasons
- https://bugs.webkit.org/show_bug.cgi?id=42107
- * GNUmakefile.am: Add missing header to the sources list.
- 2010-07-12 Adam Roben <aroben@apple.com>
- Stop generating stripped symbols for Release builds
- It turns out we can strip the symbols after-the-fact using PDBCopy.
- Fixes <http://webkit.org/b/42085>.
- Reviewed by Steve Falkenburg.
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreCommon.vsprops:
- Removed the pre-link event, which just created the public\sym
- directory.
- 2010-07-12 Anders Carlsson <andersca@apple.com>
- Reviewed by Dan Bernstein.
- Add WARN_UNUSED_RETURN to the smart pointer "leak" member functions
- https://bugs.webkit.org/show_bug.cgi?id=42086
- * wtf/OwnPtr.h:
- * wtf/PassOwnPtr.h:
- * wtf/PassRefPtr.h:
- (WTF::PassRefPtr::releaseRef):
- (WTF::NonNullPassRefPtr::leakRef):
- (WTF::NonNullPassRefPtr::releaseRef):
- * wtf/RetainPtr.h:
- (WTF::RetainPtr::releaseRef):
- 2010-07-10 Oliver Hunt <oliver@apple.com>
- Reviewed by Maciej Stachowiak.
- HAVE_COMPUTED_GOTO is dependent on the interpreter being enabled
- https://bugs.webkit.org/show_bug.cgi?id=42039
- Separate the existence of computed goto support in the compiler
- from whether or not we are using the interpreter. All the current
- HAVE(COMPUTED_GOTO) guards are for the interpreter, but I'd like
- the option of using it elsewhere. The interpreter now uses
- ENABLE(COMPUTED_GOTO_INTERPRETER)
- * bytecode/Instruction.h:
- (JSC::Instruction::Instruction):
- * bytecode/Opcode.h:
- * interpreter/Interpreter.cpp:
- (JSC::Interpreter::Interpreter):
- (JSC::Interpreter::isOpcode):
- (JSC::Interpreter::privateExecute):
- * interpreter/Interpreter.h:
- (JSC::Interpreter::getOpcode):
- (JSC::Interpreter::getOpcodeID):
- * wtf/Platform.h:
- 2010-07-10 Oliver Hunt <oliver@apple.com>
- Reviewed by Gavin Barraclough.
- Remove switches from inner expression loops in the parser
- https://bugs.webkit.org/show_bug.cgi?id=42035
- Use bitmasks and flags on the token types to identify unary and
- binary operators, rather than switching on the token type to
- identify them.
- * parser/JSParser.cpp:
- (JSC::isUnaryOp):
- (JSC::JSParser::isBinaryOperator):
- * parser/JSParser.h:
- (JSC::):
- 2010-07-09 Leon Clarke <leonclarke@google.com>
- Reviewed by Adam Barth.
- add support for link prefetching
- https://bugs.webkit.org/show_bug.cgi?id=3652
- * Configurations/FeatureDefines.xcconfig:
- 2010-07-09 Oliver Hunt <oliver@apple.com>
- Reviewed by Darin Adler.
- Tidy up lexer token ids
- https://bugs.webkit.org/show_bug.cgi?id=42014
- Stop using character literals to identify single character tokens
- and instead use symbolic names for all tokens.
- * parser/ASTBuilder.h:
- (JSC::ASTBuilder::makeBinaryNode):
- * parser/JSParser.cpp:
- (JSC::JSParser::consume):
- (JSC::JSParser::match):
- (JSC::JSParser::autoSemiColon):
- (JSC::JSParser::JSParser):
- (JSC::JSParser::parseProgram):
- (JSC::JSParser::allowAutomaticSemicolon):
- (JSC::JSParser::parseDoWhileStatement):
- (JSC::JSParser::parseWhileStatement):
- (JSC::JSParser::parseVarDeclarationList):
- (JSC::JSParser::parseConstDeclarationList):
- (JSC::JSParser::parseForStatement):
- (JSC::JSParser::parseReturnStatement):
- (JSC::JSParser::parseWithStatement):
- (JSC::JSParser::parseSwitchStatement):
- (JSC::JSParser::parseSwitchClauses):
- (JSC::JSParser::parseSwitchDefaultClause):
- (JSC::JSParser::parseTryStatement):
- (JSC::JSParser::parseDebuggerStatement):
- (JSC::JSParser::parseStatement):
- (JSC::JSParser::parseFormalParameters):
- (JSC::JSParser::parseFunctionInfo):
- (JSC::JSParser::parseExpressionOrLabelStatement):
- (JSC::JSParser::parseIfStatement):
- (JSC::JSParser::parseExpression):
- (JSC::JSParser::parseAssignmentExpression):
- (JSC::JSParser::parseConditionalExpression):
- (JSC::isUnaryOp):
- (JSC::JSParser::isBinaryOperator):
- (JSC::JSParser::parseBinaryExpression):
- (JSC::JSParser::parseProperty):
- (JSC::JSParser::parseObjectLiteral):
- (JSC::JSParser::parseStrictObjectLiteral):
- (JSC::JSParser::parseArrayLiteral):
- (JSC::JSParser::parsePrimaryExpression):
- (JSC::JSParser::parseArguments):
- (JSC::JSParser::parseMemberExpression):
- (JSC::JSParser::parseUnaryExpression):
- * parser/JSParser.h:
- (JSC::):
- * parser/Lexer.cpp:
- (JSC::):
- (JSC::Lexer::lex):
- * parser/Lexer.h:
- 2010-07-09 Gavin Barraclough <barraclough@apple.com>
- Reviewed by Oliver Hunt.
- Bug 42015 - Enable JSValue32_64 on ARMv7
- * Configurations/JavaScriptCore.xcconfig:
- * jit/JIT.h:
- * jit/JITStubs.cpp:
- * wtf/Platform.h:
- 2010-07-09 Kenneth Russell <kbr@google.com>
- Reviewed by Dimitri Glazkov.
- Assertion failure in String::utf8() for certain invalid UTF16 inputs
- https://bugs.webkit.org/show_bug.cgi?id=41983
- * wtf/text/WTFString.cpp:
- (WebCore::String::utf8):
- - Fixed assertion when sourceExhausted is returned from convertUTF16ToUTF8.
- 2010-07-09 Oliver Hunt <oliver@apple.com>
- Reviewed by Geoffrey Garen.
- Remove a couple of excess writes from the lexer
- https://bugs.webkit.org/show_bug.cgi?id=41981
- Remove a couple of fields from JSTokenInfo, and rename the remaining ones
- to something more accurate
- * parser/JSParser.cpp:
- (JSC::JSParser::next):
- (JSC::JSParser::tokenStart):
- (JSC::JSParser::tokenLine):
- (JSC::JSParser::tokenEnd):
- * parser/JSParser.h:
- (JSC::JSTokenInfo::JSTokenInfo):
- * parser/Lexer.cpp:
- (JSC::Lexer::lex):
- 2010-07-08 Oliver Hunt <oliver@apple.com>
- Reviewed by Sam Weinig.
- Property declarations in an object literal should not consider the prototype chain when being added to the new object
- https://bugs.webkit.org/show_bug.cgi?id=41929
- To fix this all we need to do is ensure that all new properties are
- added with putDirect rather than a fully generic call to put. This
- is safe as an object literal is by definition going to produce a
- completely normal object.
- Rather than duplicating all the put_by_id logic we add an additional
- flag to op_put_by_id to indicate it should be using putDirect. In
- the interpreter this adds a runtime branch, but in the jit this is
- essentially free as the branch is taken at compile time. This does
- actually improve object literal creation time even in the interpreter
- as we no longer need to walk the prototype chain to verify that the
- cached put is safe.
- We still emit normal put_by_id code when emitting __proto__ as we want
- to get the correct handling for changing the prototype.
- Sunspider claims this is a 0.7% speedup which is conceivably real due
- to the performance improvement in object literals, but I suspect its
- really just the result of code motion.
- * bytecode/Opcode.h:
- * bytecompiler/BytecodeGenerator.cpp:
- (JSC::BytecodeGenerator::emitPutById):
- (JSC::BytecodeGenerator::emitDirectPutById):
- * bytecompiler/BytecodeGenerator.h:
- * bytecompiler/NodesCodegen.cpp:
- (JSC::PropertyListNode::emitBytecode):
- * interpreter/Interpreter.cpp:
- (JSC::Interpreter::privateExecute):
- * jit/JIT.h:
- (JSC::JIT::compilePutByIdTransition):
- * jit/JITPropertyAccess.cpp:
- (JSC::JIT::emit_op_put_by_id):
- (JSC::JIT::emitSlow_op_put_by_id):
- (JSC::JIT::privateCompilePutByIdTransition):
- (JSC::JIT::patchPutByIdReplace):
- * jit/JITPropertyAccess32_64.cpp:
- (JSC::JIT::emitSlow_op_put_by_id):
- (JSC::JIT::privateCompilePutByIdTransition):
- (JSC::JIT::patchPutByIdReplace):
- * jit/JITStubs.cpp:
- (JSC::JITThunks::tryCachePutByID):
- (JSC::DEFINE_STUB_FUNCTION):
- * jit/JITStubs.h:
- (JSC::):
- * runtime/JSGlobalData.cpp:
- (JSC::JSGlobalData::JSGlobalData):
- * runtime/JSObject.h:
- (JSC::JSObject::putDirect):
- (JSC::JSValue::putDirect):
- * runtime/JSValue.h:
- 2010-07-08 Gavin Barraclough <barraclough@apple.com>
- Reviewed by Sam Weinig.
- String.prototype methods should CheckObjectCoercible (test this is not null or undefined).
- * runtime/StringPrototype.cpp:
- (JSC::stringProtoFuncCharAt):
- (JSC::stringProtoFuncCharCodeAt):
- (JSC::stringProtoFuncConcat):
- (JSC::stringProtoFuncIndexOf):
- (JSC::stringProtoFuncLastIndexOf):
- (JSC::stringProtoFuncMatch):
- (JSC::stringProtoFuncSearch):
- (JSC::stringProtoFuncSlice):
- (JSC::stringProtoFuncSplit):
- (JSC::stringProtoFuncSubstr):
- (JSC::stringProtoFuncSubstring):
- (JSC::stringProtoFuncToLowerCase):
- (JSC::stringProtoFuncToUpperCase):
- (JSC::stringProtoFuncLocaleCompare):
- (JSC::trimString):
- 2010-07-08 Gavin Barraclough <barraclough@apple.com>
- Reviewed by Sam Weinig.
- Date.prototype.toJSON takes one argument, report this correctly.
- * runtime/DatePrototype.cpp:
- 2010-07-08 Gavin Barraclough <barraclough@apple.com>
- Reviewed by Sam Weinig.
- RegExp's prototype should be an object of type RegExp.
- * runtime/RegExpPrototype.cpp:
- (JSC::RegExpPrototype::RegExpPrototype):
- * runtime/RegExpPrototype.h:
- 2010-07-08 Oliver Hunt <oliver@apple.com>
- Reviewed by Gavin Barraclough.
- JavaScript parser violates ECMA automatic semicolon insertion rule
- https://bugs.webkit.org/show_bug.cgi?id=41844
- Remove (very) old and bogus logic that automatically inserted a semicolon
- at the end of a script's source.
- * parser/Lexer.cpp:
- (JSC::Lexer::lex):
- 2010-07-08 Oliver Hunt <oliver@apple.com>
- Reviewed by Anders Carlson.
- Tidy up the lexer
- Remove some of the old yacc/lex-isms still present in the lexer
- * parser/JSParser.h:
- (JSC::):
- * parser/Lexer.cpp:
- (JSC::Lexer::parseString):
- (JSC::Lexer::lex):
- * parser/Lexer.h:
- 2010-07-08 Oliver Hunt <oliver@apple.com>
- Reviewed by Gavin Barraclough.
- Make object-literal parsing conformant with the spec.
- https://bugs.webkit.org/show_bug.cgi?id=41892
- Bring our parsing of object literals into conformance with the ES5 spec.
- Basically disallow conflicting accessor vs. normal property definitions
- The bulk of this patch is just fiddling to maintain performance.
- * parser/ASTBuilder.h:
- (JSC::ASTBuilder::createGetterOrSetterProperty):
- (JSC::ASTBuilder::createProperty):
- (JSC::ASTBuilder::getName):
- (JSC::ASTBuilder::getType):
- * parser/JSParser.cpp:
- (JSC::jsParse):
- (JSC::JSParser::JSParser):
- (JSC::JSParser::parseProperty):
- (JSC::JSParser::parseObjectLiteral):
- (JSC::JSParser::parseStrictObjectLiteral):
- * parser/JSParser.h:
- * parser/Lexer.cpp:
- (JSC::Lexer::clear):
- * parser/Lexer.h:
- (JSC::Lexer::currentOffset):
- (JSC::Lexer::setOffset):
- Add logic to allow us to roll the lexer back in the input stream.
- * parser/Nodes.h:
- (JSC::PropertyNode::):
- (JSC::PropertyNode::type):
- * parser/Parser.cpp:
- (JSC::Parser::parse):
- * parser/SourceProvider.h:
- (JSC::SourceProvider::SourceProvider):
- (JSC::SourceProvider::isValid):
- (JSC::SourceProvider::setValid):
- SourceProvider now records whether the input text
- has already been validated.
- * parser/SyntaxChecker.h:
- (JSC::SyntaxChecker::SyntaxChecker):
- (JSC::SyntaxChecker::Property::Property):
- (JSC::SyntaxChecker::Property::operator!):
- (JSC::SyntaxChecker::createProperty):
- (JSC::SyntaxChecker::createPropertyList):
- (JSC::SyntaxChecker::createGetterOrSetterProperty):
- The SyntaxChecker mode now needs to maintain a bit more information
- to ensure that we can validate object literals correctly.
- 2010-07-08 Darin Adler <darin@apple.com>
- * runtime/JSGlobalData.cpp:
- (JSC::JSGlobalData::sharedInstance): Fix typo.
- 2010-07-08 Darin Adler <darin@apple.com>
- Reviewed by Oliver Hunt.
- Fix assertion seen on the Leopard buildbot.
- The single shared instance of JSGlobalData was not being
- adopted after creation.
- * runtime/JSGlobalData.cpp:
- (JSC::JSGlobalData::sharedInstance): Do adoptRef and then leakRef.
- 2010-07-08 Gavin Barraclough <barraclough@apple.com>
- Reviewed by Sam Weinig.
- BOMs are whitespace.
- * runtime/JSGlobalObjectFunctions.cpp:
- (JSC::isStrWhiteSpace):
- 2010-07-08 Martin Robinson <mrobinson@igalia.com>
- Unreviewed.
- Try fix the GTK+ build by touching this file.
- * jit/ExecutableAllocatorFixedVMPool.cpp:
- 2010-07-08 Gavin Barraclough <barraclough@apple.com>
- GTK build fix take two.
- * GNUmakefile.am:
- 2010-07-08 Gavin Barraclough <barraclough@apple.com>
- GTK build fix.
- * GNUmakefile.am:
- 2010-07-08 Gavin Barraclough <barraclough@apple.com>
- Reviewed by Sam Weinig.
- https://bugs.webkit.org/show_bug.cgi?id=41641
- Update compile flags to allow use of ExecutableAllocatorFixedVMPool on platforms
- other than x86-64 (this may be useful on 32-bit platforms, too).
- Simplify ifdefs by dividing into thwo broad allocation strategies
- (ENABLE_EXECUTABLE_ALLOCATOR_FIXED & ENABLE_EXECUTABLE_ALLOCATOR_DEMAND).
- Rename constant used in the code to have names descriptive of their purpose,
- rather than their specific value on a given platform.
- * jit/ExecutableAllocator.cpp:
- (JSC::ExecutableAllocator::reprotectRegion):
- (JSC::ExecutableAllocator::cacheFlush):
- * jit/ExecutableAllocatorFixedVMPool.cpp:
- (JSC::FixedVMPoolAllocator::FixedVMPoolAllocator):
- (JSC::FixedVMPoolAllocator::free):
- (JSC::ExecutablePool::systemAlloc):
- * jit/ExecutableAllocatorPosix.cpp:
- * jit/ExecutableAllocatorSymbian.cpp:
- * jit/ExecutableAllocatorWin.cpp:
- * wtf/Platform.h:
- 2010-07-08 Xan Lopez <xlopez@igalia.com>
- Reviewed by Gustavo Noronha.
- Silence a few noisy build rules.
- * GNUmakefile.am:
- 2010-07-08 Sheriff Bot <webkit.review.bot@gmail.com>
- Unreviewed, rolling out r62765.
- http://trac.webkit.org/changeset/62765
- https://bugs.webkit.org/show_bug.cgi?id=41840
- All jscore and layout tests crash on Qt bot (Requested by Ossy
- on #webkit).
- * wtf/FastMalloc.cpp:
- (WTF::TCMalloc_PageHeap::initializeScavenger):
- (WTF::TCMalloc_PageHeap::signalScavenger):
- (WTF::TCMalloc_PageHeap::scavengerThread):
- 2010-07-08 Andreas Kling <andreas.kling@nokia.com>
- Reviewed by Oliver Hunt.
- Interpreter: Crash in op_load_varargs on 64-bit
- https://bugs.webkit.org/show_bug.cgi?id=41795
- Added missing cast of argCount to int32_t in op_load_varargs.
- * interpreter/Interpreter.cpp:
- (JSC::Interpreter::privateExecute):
- 2010-07-08 Patrick Gansterer <paroga@paroga.com>
- Reviewed by Geoffrey Garen.
- Make FastMalloc more portable.
- https://bugs.webkit.org/show_bug.cgi?id=41790
- Use WTF::Mutex instead of pthread_mutex_t and
- replace pthread_cond_t with WTF::ThreadCondition.
- * wtf/FastMalloc.cpp:
- (WTF::TCMalloc_PageHeap::initializeScavenger):
- (WTF::TCMalloc_PageHeap::signalScavenger):
- (WTF::TCMalloc_PageHeap::scavengerThread):
- 2010-07-08 Patrick Gansterer <paroga@paroga.com>
- Reviewed by Darin Adler.
- Remove needless #include <fcntl.h> from TCSystemAlloc.cpp.
- https://bugs.webkit.org/show_bug.cgi?id=41777
- * wtf/TCSystemAlloc.cpp:
- 2010-07-07 Darin Adler <darin@apple.com>
- Fixed build in configurations like PowerPC.
- * runtime/RegExpConstructor.cpp: Added include of PassOwnPtr.h.
- * runtime/RegExpObject.cpp: Ditto.
- * wtf/SizeLimits.cpp: Changed compile time assertion to work
- even on platforms where two bool members do not end up taking
- the same size as one int member!
- 2010-07-07 Oliver Hunt <oliver@apple.com>
- Reviewed by Geoffrey Garen.
- Lazy mode of parser allows invalid syntax in object literals.
- https://bugs.webkit.org/show_bug.cgi?id=41809
- Make the parser itself validate getter and setter syntax rather
- than offloading it to the AST builder.
- * parser/ASTBuilder.h:
- (JSC::ASTBuilder::createGetterOrSetterProperty):
- * parser/JSParser.cpp:
- (JSC::JSParser::parseProperty):
- 2010-07-07 Dumitru Daniliuc <dumi@chromium.org>
- Reviewed by Adam Roben.
- Revert r62689.
- https://bugs.webkit.org/show_bug.cgi?id=41804
- * runtime/Collector.cpp:
- (JSC::Heap::freeBlocks):
- 2010-07-07 Adam Barth <abarth@webkit.org>
- Reviewed by Sam Weinig.
- Add reverseFind to Vector and deploy in HTML5 parser
- https://bugs.webkit.org/show_bug.cgi?id=41778
- This method seems generally useful. I'm slightly surprised we don't
- have it already.
- * wtf/Vector.h:
- (WTF::::reverseFind):
- 2010-07-07 Darin Adler <darin@apple.com>
- Reviewed by Adam Barth.
- Turn on adoptRef assertion for RefCounted
- https://bugs.webkit.org/show_bug.cgi?id=41547
- * wtf/CrossThreadRefCounted.h: Fixed include style. Includes of other
- WTF headers should use "" includes; consistent in most WTF headers.
- Added a call to relaxAdoptionRequirement.
- * wtf/RefCounted.h: Fixed include style. Removed LOOSE_REF_COUNTED.
- Added relaxAdoptionRequirement.
- 2010-07-07 Anders Carlsson <andersca@apple.com>
- Try to fix the Windows build.
- * runtime/Collector.cpp:
- (JSC::Heap::freeBlocks):
- 2010-07-07 Darin Adler <darin@apple.com>
- Reviewed by Adam Barth.
- More OwnPtr work
- https://bugs.webkit.org/show_bug.cgi?id=41727
- * API/JSCallbackObject.h:
- (JSC::JSCallbackObjectData::setPrivateProperty): Use adoptPtr.
- * API/JSCallbackObjectFunctions.h:
- (JSC::JSCallbackObject::JSCallbackObject): Ditto.
- * bytecode/CodeBlock.cpp:
- (JSC::CodeBlock::CodeBlock): Ditto.
- * bytecode/CodeBlock.h:
- (JSC::CodeBlock::createRareDataIfNecessary): Ditto.
- * parser/Nodes.cpp:
- (JSC::ScopeNode::ScopeNode): Ditto.
- * parser/ParserArena.cpp:
- (JSC::ParserArena::ParserArena): Ditto.
- * runtime/Arguments.h:
- (JSC::Arguments::Arguments): Ditto.
- * runtime/Executable.cpp:
- (JSC::EvalExecutable::compile): Ditto.
- (JSC::ProgramExecutable::compile): Ditto.
- (JSC::FunctionExecutable::compileForCall): Ditto.
- (JSC::FunctionExecutable::compileForConstruct): Ditto.
- (JSC::FunctionExecutable::reparseExceptionInfo): Ditto.
- (JSC::EvalExecutable::reparseExceptionInfo): Ditto.
- * runtime/JSArray.cpp:
- (JSC::JSArray::sort): Ditto.
- * runtime/RegExpConstructor.cpp:
- (JSC::RegExpConstructor::RegExpConstructor): Ditto.
- * runtime/RegExpObject.cpp:
- (JSC::RegExpObject::RegExpObject): Ditto.
- * runtime/SmallStrings.cpp:
- (JSC::SmallStrings::createSingleCharacterString): Ditto.
- (JSC::SmallStrings::singleCharacterStringRep): Ditto.
- * wtf/unicode/icu/CollatorICU.cpp:
- (WTF::Collator::userDefault): Use adoptPtr.
- * yarr/RegexInterpreter.cpp:
- (JSC::Yarr::ByteCompiler::ByteCompiler): Ditto.
- (JSC::Yarr::ByteCompiler::compile): Ditto.
- (JSC::Yarr::ByteCompiler::regexBegin): Ditto.
- (JSC::Yarr::byteCompileRegex): Ditto.
- * yarr/RegexInterpreter.h:
- (JSC::Yarr::BytecodePattern::BytecodePattern): Ditto.
- 2010-07-07 Darin Adler <darin@apple.com>
- Reviewed by Adam Barth.
- Make clear set the pointer to 0 before deletion
- https://bugs.webkit.org/show_bug.cgi?id=41727
- * wtf/OwnArrayPtr.h: Changed code so we always set the pointer to its new
- value before deleting the old one, including in the set function and the
- clear function. This required changing safeDelete.
- * wtf/OwnPtr.h: Ditto. Also removed some extra null checks.
- * wtf/PassOwnPtr.h: Ditto.
- * wtf/PassRefPtr.h: Changed code so we always set the pointer to its new
- value before deref'ing the old one in the clear function. Also added a
- leakRef function for NonNullPassRefPtr.
- * wtf/RefPtr.h: Ditto.
- * wtf/gobject/GOwnPtr.h: More of the same.
- * wtf/gobject/GRefPtr.h: Ditto.
- 2010-07-07 Zoltan Herczeg <zherczeg@webkit.org>
- Reviewed by Oliver Hunt.
- Refactored string parsing inside the lexer
- https://bugs.webkit.org/show_bug.cgi?id=41606
- Does not use goto. Although the last sunspider
- parse-only tests yields 1.044x speedup, I think the
- patch can have a slight improvement at most.
- * parser/Lexer.cpp:
- (JSC::singleEscape):
- (JSC::Lexer::parseString):
- (JSC::Lexer::lex):
- * parser/Lexer.h:
- 2010-07-06 Oliver Hunt <oliver@apple.com>
- Reviewed by Maciej Stachowiak.
- Make it possible to have both the JIT and Interpreter available in a single build
- https://bugs.webkit.org/show_bug.cgi?id=41722
- Separate the concept of !ENABLE(JIT) and ENABLE(INTERPRETER) and make it possible
- to have both JIT and INTERPRETER enabled at the same time. This doesn't add
- support for mix mode execution, but it does allow a single build to contain all
- the code needed to use either the interpreter or the jit.
- If both ENABLE(INTERPRETER) and ENABLE(JIT) are true then setting the environment
- variable JSC_FORCE_INTERPRETER will force JSC to use the interpreter.
- This patch basically consists of replacing !ENABLE(JIT) with ENABLE(INTERPRETER),
- or converting #if ENABLE(JIT) ... #else ... into #if ENABLE(JIT) ... #endif
- #if ENABLE(INTERPRETER), etc. There are also a few functions that need to be
- renamed to resolve return type ambiguity.
- * bytecode/CodeBlock.cpp:
- (JSC::CodeBlock::~CodeBlock):
- (JSC::CodeBlock::shrinkToFit):
- * bytecode/CodeBlock.h:
- * interpreter/CallFrame.h:
- (JSC::ExecState::returnVPC):
- * interpreter/Interpreter.cpp:
- (JSC::Interpreter::unwindCallFrame):
- (JSC::Interpreter::throwException):
- (JSC::Interpreter::execute):
- (JSC::Interpreter::executeCall):
- (JSC::Interpreter::executeConstruct):
- (JSC::Interpreter::prepareForRepeatCall):
- (JSC::Interpreter::privateExecute):
- (JSC::Interpreter::retrieveLastCaller):
- * interpreter/Interpreter.h:
- * runtime/ArrayPrototype.cpp:
- (JSC::isNumericCompareFunction):
- * runtime/Executable.cpp:
- (JSC::EvalExecutable::generateJITCode):
- (JSC::ProgramExecutable::generateJITCode):
- (JSC::FunctionExecutable::generateJITCodeForCall):
- (JSC::FunctionExecutable::generateJITCodeForConstruct):
- (JSC::FunctionExecutable::reparseExceptionInfo):
- (JSC::EvalExecutable::reparseExceptionInfo):
- * runtime/JSFunction.cpp:
- * runtime/JSGlobalData.cpp:
- (JSC::JSGlobalData::JSGlobalData):
- * runtime/JSGlobalData.h:
- (JSC::JSGlobalData::canUseJIT):
- * wtf/Platform.h:
- 2010-07-06 Darin Adler <darin@apple.com>
- Reviewed by Adam Barth.
- Add adoptPtr and leakPtr functions for OwnPtr and PassOwnPtr
- https://bugs.webkit.org/show_bug.cgi?id=41320
- * bytecode/CodeBlock.cpp:
- (JSC::CodeBlock::reparseForExceptionInfoIfNecessary): Use assignment
- instead of set since the result of reparseExceptionInfo is now a
- PassOwnPtr.
- * bytecode/CodeBlock.h: Change extractExceptionInfo to return a
- PassOwnPtr instead of a raw pointer.
- * runtime/Executable.cpp:
- (JSC::FunctionExecutable::reparseExceptionInfo): Return a PassOwnPtr.
- (JSC::EvalExecutable::reparseExceptionInfo): Ditto.
- (JSC::ProgramExecutable::reparseExceptionInfo): Added. This was
- in the header before, but it's better to not have it there to reduce
- header dependencies. Return a PassOwnPtr.
- * runtime/Executable.h: Made reparseExceptionInfo return a PassOwnPtr,
- and put it in the private sections of classes other than the base class.
- * wtf/MessageQueue.h:
- (WTF::MessageQueue::append): Use leakPtr instead of release.
- (WTF::MessageQueue::appendAndCheckEmpty): Ditto.
- (WTF::MessageQueue::prepend): Ditto.
- * wtf/OwnPtr.h: Tweaked formatting. Changed the release function to return
- a PassOwnPtr rather than a raw pointer. Added a leakPtr function that
- returns a raw pointer. Put the constructor that takes a raw pointer and
- the set function into a section guarded by LOOSE_OWN_PTR. Adapted to the
- new adoptPtr function from PassOwnPtr.h.
- * wtf/PassOwnPtr.h: Tweaked formatting. Renamed the release function
- to leakPtr. Added an adoptPtr function that creates a new PassOwnPtr.
- Put the constructor and assignment operators that take a raw pointer
- into a section guarded by LOOSE_PASS_OWN_PTR.
- 2010-07-06 Sam Weinig <sam@webkit.org>
- Reviewed by Darin Adler
- Update comment in StringExtras.h to be more accurate.
- * wtf/StringExtras.h:
- 2010-07-06 Sheriff Bot <webkit.review.bot@gmail.com>
- Unreviewed, rolling out r62511.
- http://trac.webkit.org/changeset/62511
- https://bugs.webkit.org/show_bug.cgi?id=41686
- Breaks Linux/64bit compilation (Requested by xan_ on #webkit).
- * jit/ExecutableAllocator.cpp:
- * jit/ExecutableAllocatorFixedVMPool.cpp:
- (JSC::FixedVMPoolAllocator::FixedVMPoolAllocator):
- (JSC::FixedVMPoolAllocator::free):
- (JSC::ExecutablePool::systemAlloc):
- * jit/ExecutableAllocatorPosix.cpp:
- (JSC::ExecutableAllocator::reprotectRegion):
- (JSC::ExecutableAllocator::cacheFlush):
- * jit/ExecutableAllocatorSymbian.cpp:
- * jit/ExecutableAllocatorWin.cpp:
- * wtf/Platform.h:
- 2010-07-05 Gavin Barraclough <barraclough@apple.com>
- Reviewed by Sam Weinig.
- https://bugs.webkit.org/show_bug.cgi?id=41641
- Update compile flags to allow use of ExecutableAllocatorFixedVMPool on platforms
- other than x86-64 (this may be useful on 32-bit platforms, too).
- Simplify ifdefs by dividing into thwo broad allocation strategies
- (ENABLE_EXECUTABLE_ALLOCATOR_FIXED & ENABLE_EXECUTABLE_ALLOCATOR_DEMAND).
- Rename constant used in the code to have names descriptive of their purpose,
- rather than their specific value on a given platform.
- * jit/ExecutableAllocator.cpp:
- (JSC::ExecutableAllocator::reprotectRegion):
- (JSC::ExecutableAllocator::cacheFlush):
- * jit/ExecutableAllocatorFixedVMPool.cpp:
- (JSC::FixedVMPoolAllocator::FixedVMPoolAllocator):
- (JSC::FixedVMPoolAllocator::free):
- (JSC::ExecutablePool::systemAlloc):
- * jit/ExecutableAllocatorPosix.cpp:
- * jit/ExecutableAllocatorSymbian.cpp:
- * jit/ExecutableAllocatorWin.cpp:
- * wtf/Platform.h:
- 2010-07-05 Steve Block <steveblock@google.com>
- Reviewed by Darin Adler.
- ThreadingPthreads.cpp should use JNIUtility.h on Android, not outdated jni_utility.h
- https://bugs.webkit.org/show_bug.cgi?id=41594
- * wtf/ThreadingPthreads.cpp:
- 2010-07-04 Mark Rowe <mrowe@apple.com>
- Build fix after r62456.
- * interpreter/Interpreter.cpp:
- (JSC::Interpreter::privateExecute): Be slightly more consistent in using uint32_t to prevent
- warnings about comparisons between signed and unsigned types, and attempts to call an overload
- of std::min that doesn't exist.
- 2010-07-02 Sam Weinig <sam@webkit.org>
- Reviewed by Darin Adler.
- Patch for https://bugs.webkit.org/show_bug.cgi?id=41553
- Make StringExtras.h versions of snprintf and vsnprintf match the unix versions.
- - MSVC does not ensure the buffers are null terminated as the unix versions do.
- * runtime/JSGlobalObjectFunctions.cpp: Cleanup includes.
- * runtime/UString.cpp: Clean up includes.
- (JSC::UString::from): Don't pass sizeof(buf) - 1, that is wrong.
- * wtf/StringExtras.h:
- (snprintf): Ensure null termination of buffer.
- (vsnprintf): Ditto.
- 2010-07-03 Yong Li <yoli@rim.com>
- Reviewed by Darin Adler.
- Make Arguments::MaxArguments clamping work for numbers >= 0x80000000 in
- the interpreter as well as the JIT.
- https://bugs.webkit.org/show_bug.cgi?id=41351
- rdar://problem/8142141
- * interpreter/Interpreter.cpp:
- (JSC::Interpreter::privateExecute): Fix signed integer overflow problem
- in op_load_varargs handling. 0xFFFFFFFF was read as -1.
- 2010-06-26 Jeremy Orlow <jorlow@chromium.org>
- Reviewed by Dumitru Daniliuc.
- Support for keys and in-memory storage for IndexedDB
- https://bugs.webkit.org/show_bug.cgi?id=41252
- Set the role to Private.
- * JavaScriptCore.xcodeproj/project.pbxproj:
- 2010-07-02 Oliver Hunt <oliver@apple.com>
- Reviewed by Geoffrey Garen.
- Move BOM handling out of the lexer and parser
- https://bugs.webkit.org/show_bug.cgi?id=41539
- Doing the BOM stripping in the lexer meant that we could
- end up having to strip the BOMs from a source multiple times.
- To deal with this we now require all strings provided by
- a SourceProvider to already have had the BOMs stripped.
- This also simplifies some of the lexer logic.
- * parser/Lexer.cpp:
- (JSC::Lexer::setCode):
- (JSC::Lexer::sourceCode):
- * parser/SourceProvider.h:
- (JSC::SourceProvider::SourceProvider):
- (JSC::UStringSourceProvider::create):
- (JSC::UStringSourceProvider::getRange):
- (JSC::UStringSourceProvider::UStringSourceProvider):
- * wtf/text/StringImpl.h:
- (WebCore::StringImpl::copyStringWithoutBOMs):
- 2010-07-03 Patrick Gansterer <paroga@paroga.com>
- Reviewed by Kent Tamura.
- [WINCE] Implement Unicode::isAlphanumeric and Unicode::isArabicChar.
- https://bugs.webkit.org/show_bug.cgi?id=41411
- * wtf/unicode/wince/UnicodeWince.cpp:
- (WTF::Unicode::isAlphanumeric):
- * wtf/unicode/wince/UnicodeWince.h:
- (WTF::Unicode::isArabicChar):
- 2010-07-03 Kwang Yul Seo <skyul@company100.net>
- Reviewed by Kent Tamura.
- [BREWMP] Change the CRASH() macro to print "WebKit CRASH" log.
- https://bugs.webkit.org/show_bug.cgi?id=41524
- Print "WebKit CRASH" before crashing.
- * wtf/Assertions.h:
- 2010-07-02 Gavin Barraclough <barraclough@apple.com>
- Reviewed by Oliver Hunt.
- Bug 41565 - Repatching in ARMv7Assembler::repatchLoadPtrToLEA is broken
- This method tried to repatch a LDR (T2) into an ADD (T3) - but it only
- repatches the first instruction word. The layout of the fields in the
- second word is different, and also needs repatching.
- * assembler/ARMv7Assembler.h:
- (JSC::ARMv7Assembler::repatchLoadPtrToLEA):
- 2010-07-02 Oliver Hunt <oliver@apple.com>
- Reviewed by Gavin Barraclough.
- Clamp the number of arguments supported by function.apply
- https://bugs.webkit.org/show_bug.cgi?id=41351
- <rdar://problem/8142141>
- Add clamping logic to function.apply similar to that
- enforced by firefox. We have a smaller clamp than
- firefox as our calling convention means that stack
- usage is proportional to argument count -- the firefox
- limit is larger than you could actually call.
- * interpreter/Interpreter.cpp:
- (JSC::Interpreter::privateExecute):
- * jit/JITStubs.cpp:
- (JSC::DEFINE_STUB_FUNCTION):
- * runtime/Arguments.h:
- (JSC::Arguments::):
- 2010-07-02 Chao-ying Fu <fu@mips.com>
- Reviewed by Oliver Hunt.
- Re-enable JIT_OPTIMIZE_NATIVE_CALL on MIPS
- https://bugs.webkit.org/show_bug.cgi?id=40179
- Add the MIPS part to re-enable JIT_OPTIMIZE_NATIVE_CALL.
- * jit/JITOpcodes.cpp:
- (JSC::JIT::privateCompileCTINativeCall):
- * wtf/Platform.h:
- 2010-07-02 Gavin Barraclough <barraclough@apple.com>
- Reviewed by Oliver Hunt.
- Bug 41552 - Clean up ARMv7 vfp code generation
- Emit separate opcode individually, remove magic numbers.
- Also remove invalid assert from JSImmediate (number cells are not CELL_MASK aligned).
- * assembler/ARMv7Assembler.h:
- (JSC::ARMv7Assembler::):
- (JSC::ARMv7Assembler::vadd_F64):
- (JSC::ARMv7Assembler::vcmp_F64):
- (JSC::ARMv7Assembler::vcvt_F64_S32):
- (JSC::ARMv7Assembler::vcvtr_S32_F64):
- (JSC::ARMv7Assembler::vdiv_F64):
- (JSC::ARMv7Assembler::vldr):
- (JSC::ARMv7Assembler::vmov_F64_0):
- (JSC::ARMv7Assembler::vmov):
- (JSC::ARMv7Assembler::vmrs):
- (JSC::ARMv7Assembler::vmul_F64):
- (JSC::ARMv7Assembler::vstr):
- (JSC::ARMv7Assembler::vsub_F64):
- (JSC::ARMv7Assembler::VFPOperand::VFPOperand):
- (JSC::ARMv7Assembler::VFPOperand::bits1):
- (JSC::ARMv7Assembler::VFPOperand::bits4):
- (JSC::ARMv7Assembler::vcvtOp):
- (JSC::ARMv7Assembler::ARMInstructionFormatter::vfpOp):
- (JSC::ARMv7Assembler::ARMInstructionFormatter::vfpMemOp):
- * assembler/MacroAssemblerARMv7.h:
- (JSC::MacroAssemblerARMv7::branchDouble):
- * runtime/JSImmediate.h:
- (JSC::JSValue::isCell):
- 2010-07-02 Sheriff Bot <webkit.review.bot@gmail.com>
- Unreviewed, rolling out r62410.
- http://trac.webkit.org/changeset/62410
- https://bugs.webkit.org/show_bug.cgi?id=41549
- accursed last minute changes (Requested by olliej on #webkit).
- * parser/Lexer.cpp:
- (JSC::Lexer::setCode):
- (JSC::Lexer::copyCodeWithoutBOMs):
- (JSC::Lexer::sourceCode):
- * parser/SourceProvider.h:
- (JSC::):
- (JSC::SourceProvider::SourceProvider):
- (JSC::SourceProvider::hasBOMs):
- (JSC::UStringSourceProvider::create):
- (JSC::UStringSourceProvider::getRange):
- (JSC::UStringSourceProvider::UStringSourceProvider):
- * wtf/text/StringImpl.h:
- 2010-07-02 Sam Weinig <sam@webkit.org>
- Reviewed by Geoffrey Garen.
- Patch for https://bugs.webkit.org/show_bug.cgi?id=41548
- Use snprintf instead of sprintf everywhere in JavaScriptCore
- * runtime/JSGlobalObjectFunctions.cpp:
- (JSC::encode):
- (JSC::globalFuncEscape):
- * runtime/UString.cpp:
- (JSC::UString::from):
- 2010-07-02 Oliver Hunt <oliver@apple.com>
- Reviewed by Geoffrey Garen.
- Move BOM handling out of the lexer and parser
- https://bugs.webkit.org/show_bug.cgi?id=41539
- Doing the BOM stripping in the lexer meant that we could
- end up having to strip the BOMs from a source multiple times.
- To deal with this we now require all strings provided by
- a SourceProvider to already have had the BOMs stripped.
- This also simplifies some of the lexer logic.
- * parser/Lexer.cpp:
- (JSC::Lexer::setCode):
- (JSC::Lexer::sourceCode):
- * parser/SourceProvider.h:
- (JSC::SourceProvider::SourceProvider):
- (JSC::UStringSourceProvider::create):
- (JSC::UStringSourceProvider::getRange):
- (JSC::UStringSourceProvider::UStringSourceProvider):
- * wtf/text/StringImpl.h:
- (WebCore::StringImpl::copyStringWithoutBOMs):
- 2010-07-02 Renata Hodovan <reni@inf.u-szeged.hu>
- Reviewed by Oliver Hunt.
-
- [ Updated after rollout. ]
- Merged RegExp constructor and RegExp::create methods.
- Both functions are called with three parameters and check whether
- flags (the third param) is given or not.
- Avoid extra hash lookups in RegExpCache::create by passing a pre-computed
- iterator parameter.
- https://bugs.webkit.org/show_bug.cgi?id=41055
- * runtime/RegExp.cpp:
- (JSC::RegExp::RegExp):
- * runtime/RegExp.h:
- * runtime/RegExpCache.cpp:
- (JSC::RegExpCache::lookupOrCreate):
- (JSC::RegExpCache::create):
- * runtime/RegExpCache.h:
- 2010-07-02 Martin Robinson <mrobinson@igalia.com>
- Unreviewed. Build fix for GTK+.
- Build Lexer.lut.h with the rest of the .lut.h files. Later these should
- all probably be moved to DerivedSources.
- * GNUmakefile.am:
- 2010-06-23 Martin Robinson <mrobinson@igalia.com>
- Reviewed by Gustavo Noronha Silva.
- [GTK] Separate DerivedSources per-project
- https://bugs.webkit.org/show_bug.cgi?id=41109
- Generate JavaScriptCore derived sources in <builddir>/DerivedSources/JavaScriptCore.
- * GNUmakefile.am:
- 2010-07-02 Peter Varga <pvarga@inf.u-szeged.hu>
- Reviewed by Oliver Hunt.
- The alternativeFrameLocation value is wrong in the emitDisjunction function in
- case of PatternTerm::TypeParentheticalAssertion. This value needs to be
- computed from term.frameLocation instead of term.inputPosition. This mistake caused glibc
- memory corruption in some cases.
- Layout test added for checking of TypeParentheticalAssertion case.
- https://bugs.webkit.org/show_bug.cgi?id=41458
- * yarr/RegexInterpreter.cpp:
- (JSC::Yarr::ByteCompiler::emitDisjunction):
- 2010-07-01 Oliver Hunt <oliver@apple.com>
- Reviewed by Maciej Stachowiak.
- Add a FixedArray template to encapsulate fixed length arrays
- https://bugs.webkit.org/show_bug.cgi?id=41506
- This new type is used in place of fixed length C arrays so
- that debug builds can guard against attempts to go beyond
- the end of the array.
- * JavaScriptCore.xcodeproj/project.pbxproj:
- * bytecode/Opcode.cpp:
- (JSC::OpcodeStats::~OpcodeStats):
- * pcre/pcre_compile.cpp:
- (calculateCompiledPatternLength):
- * runtime/Collector.cpp:
- (JSC::Heap::allocateBlock):
- (JSC::Heap::allocate):
- * runtime/Collector.h:
- (JSC::CollectorBitmap::clearAll):
- * runtime/CollectorHeapIterator.h:
- (JSC::CollectorHeapIterator::operator*):
- * runtime/DateInstanceCache.h:
- * runtime/JSString.cpp:
- (JSC::JSString::replaceCharacter):
- * runtime/JSString.h:
- (JSC::RopeBuilder::JSStringFinalizerStruct::):
- * runtime/NumericStrings.h:
- * runtime/RegExpCache.h:
- * runtime/SmallStrings.h:
- (JSC::SmallStrings::singleCharacterStrings):
- * wtf/AVLTree.h:
- * wtf/FixedArray.h: Added.
- (WTF::FixedArray::operator[]):
- (WTF::FixedArray::data):
- 2010-07-01 Zoltan Herczeg <zherczeg@webkit.org>
- Reviewed by Oliver Hunt.
- Improve the main lexer switch by mapping input characters to their type
- https://bugs.webkit.org/show_bug.cgi?id=41459
- Sunsipder: no change (from 532.9ms to 531.5ms)
- SunSpider --parse-only: 1.025x as fast (from 33.1ms to 32.3ms)
- * parser/Lexer.cpp:
- (JSC::):
- (JSC::Lexer::lex):
- 2010-07-01 Sam Weinig <sam@webkit.org>
- Rubber-stamped by Ander Carlsson.
- Define HAVE_HOSTED_CORE_ANIMATION on Snow Leopard.
- * wtf/Platform.h:
- 2010-07-01 Gavin Barraclough <barraclough@apple.com>
- Reviewed by Oliver Hunt.
- Bug 41490 - Add missing operations to MacroAssemblerARMv7
- Also, make single, double, quad register numbers in ARMv7Assembler distinct & strongly typed.
- * assembler/ARMv7Assembler.h:
- (JSC::ARMRegisters::):
- (JSC::ARMRegisters::asSingle):
- (JSC::ARMRegisters::asDouble):
- (JSC::VFPImmediate::VFPImmediate):
- (JSC::VFPImmediate::isValid):
- (JSC::VFPImmediate::value):
- (JSC::ARMv7Assembler::singleRegisterMask):
- (JSC::ARMv7Assembler::doubleRegisterMask):
- (JSC::ARMv7Assembler::):
- (JSC::ARMv7Assembler::add_S):
- (JSC::ARMv7Assembler::neg):
- (JSC::ARMv7Assembler::orr_S):
- (JSC::ARMv7Assembler::sub):
- (JSC::ARMv7Assembler::sub_S):
- (JSC::ARMv7Assembler::vadd_F64):
- (JSC::ARMv7Assembler::vcmp_F64):
- (JSC::ARMv7Assembler::vcvt_F64_S32):
- (JSC::ARMv7Assembler::vcvtr_S32_F64):
- (JSC::ARMv7Assembler::vdiv_F64):
- (JSC::ARMv7Assembler::vldr):
- (JSC::ARMv7Assembler::vmov_F64_0):
- (JSC::ARMv7Assembler::vmov):
- (JSC::ARMv7Assembler::vmul_F64):
- (JSC::ARMv7Assembler::vstr):
- (JSC::ARMv7Assembler::vsub_F64):
- (JSC::ARMv7Assembler::vcvt):
- (JSC::ARMv7Assembler::vmem):
- * assembler/AbstractMacroAssembler.h:
- * assembler/MacroAssemblerARM.h:
- * assembler/MacroAssemblerARMv7.h:
- (JSC::MacroAssemblerARMv7::fpTempRegisterAsSingle):
- (JSC::MacroAssemblerARMv7::neg32):
- (JSC::MacroAssemblerARMv7::loadDouble):
- (JSC::MacroAssemblerARMv7::divDouble):
- (JSC::MacroAssemblerARMv7::convertInt32ToDouble):
- (JSC::MacroAssemblerARMv7::branchConvertDoubleToInt32):
- (JSC::MacroAssemblerARMv7::zeroDouble):
- (JSC::MacroAssemblerARMv7::branchOr32):
- (JSC::MacroAssemblerARMv7::set32):
- (JSC::MacroAssemblerARMv7::set8):
- * assembler/MacroAssemblerMIPS.h:
- * assembler/MacroAssemblerX86Common.h:
- 2010-07-01 Oliver Hunt <oliver@apple.com>
- Reviewed by Geoff Garen.
- Improve reentrancy logic in polymorphic cache stubs
- <https://bugs.webkit.org/show_bug.cgi?id=41482>
- <rdar://problem/8094380>
- Make the polymorphic cache stubs handle reentrancy
- better.
- * jit/JITStubs.cpp:
- (JSC::DEFINE_STUB_FUNCTION):
- (JSC::getPolymorphicAccessStructureListSlot):
- 2010-07-01 Antti Koivisto <koivisto@iki.fi>
- Revert accidental commit.
- * runtime/Collector.cpp:
- (JSC::Heap::allocateBlock):
- 2010-06-30 Darin Adler <darin@apple.com>
- Reviewed by Adam Barth.
- Add assertion, off by default, for when you forget to do adoptRef
- https://bugs.webkit.org/show_bug.cgi?id=41422
- * wtf/PassRefPtr.h: Tweaked formatting. Added a new adopted
- function, called on the pointer by adoptRef, with an empty inline
- default version, meant to be overloaded. Unified the inlining
- with a macro named REF_DEREF_INLINE to make it clearer what's
- going on in the refIfNotNull/derefIfNotNull functions. Renamed
- releaseRef to leakRef, but left the old name in for compatibility
- for now.
- * wtf/RefCounted.h: Added code to require adoption and assert if
- you don't call adoptRef. For now, it is turned off because of the
- LOOSE_REF_COUNTED define in this header. Later we can turn it on
- once we get everything working without asserting.
- 2010-06-29 Michael Saboff <msaboff@apple.com>
- Reviewed by Darin Adler.
- Bug 41238 - RegExp performance slow on Dromaeo benchmark
- Other javascript engines appear to cache prior results of regular
- expression operations.
- Suggest adding some sort of caching mechanism to regular expression
- processing.
- Added a single entry cache of match() results to RegExp class.
- Also added performance improvements to UString == operator.
- First check the impls for equality. Then get the length of
- each of the non-null impls. Next check the sizes for equality.
- Then check the data for the case of different impls that point
- to the same data (most likely due to substrings from the beginning of
- another string). Lastly we check the underlying data for equality.
- * runtime/RegExp.cpp:
- (JSC::RegExp::RegExp):
- (JSC::RegExp::match):
- * runtime/RegExp.h:
- * runtime/UString.h:
- (JSC::operator==):
- 2010-06-29 Nathan Lawrence <nlawrence@apple.com>
- Reviewed by Geoffrey Garen.
- WTF::HashSet iterators are quasi-mutable. Changing the value through
- dereferencing an iterator will not change the behavior of methods like
- contains or find, but will change the behavior of iterating.
- * wtf/HashSet.h:
- (WTF::::begin):
- (WTF::::end):
- (WTF::::find):
- (WTF::::remove):
- * wtf/HashTable.h:
- 2010-06-29 Martin Robinson <mrobinson@igalia.com>
- Reviewed by Xan Lopez.
- [GTK] Clean up the source lists in the GNUMakefile.am files
- https://bugs.webkit.org/show_bug.cgi?id=41229
- Clean up the GNUMakefile.am a little bit. Alphabetize and conglomerate
- the source lists.
- * GNUmakefile.am:
- 2010-06-29 Caio Marcelo de Oliveira Filho <caio.oliveira@openbossa.org>
- Reviewed by Kenneth Rohde Christiansen.
- [Qt] Fix QtScript build after QScriptValuePrivate ctor changes
- https://bugs.webkit.org/show_bug.cgi?id=41307
- * qt/api/qscriptvalue_p.h:
- (QScriptValuePrivate::prototype):
- * qt/benchmarks/qscriptengine/qscriptengine.pro:
- 2010-06-28 Caio Marcelo de Oliveira Filho <caio.oliveira@openbossa.org>
- Reviewed by Kenneth Rohde Christiansen.
- [Qt] QScriptEngine API should contain a newArray function
- https://bugs.webkit.org/show_bug.cgi?id=39115
- * qt/api/qscriptengine.cpp:
- (QScriptEngine::newArray):
- * qt/api/qscriptengine.h:
- * qt/api/qscriptengine_p.cpp:
- (QScriptEnginePrivate::newArray):
- * qt/api/qscriptengine_p.h:
- * qt/tests/qscriptengine/tst_qscriptengine.cpp:
- (tst_QScriptEngine::newArray):
- 2010-06-28 Xan Lopez <xlopez@igalia.com>
- Reviewed by Gustavo Noronha.
- Install jsc as jsc-X where X is the major API version to allow
- parallel installation of both GTK+ 2.x and 3.x versions.
- * GNUmakefile.am:
- 2010-06-28 John Gregg <johnnyg@google.com>
- Reviewed by Kent Tamura.
- add ENABLE_DIRECTORY_UPLOAD build support
- https://bugs.webkit.org/show_bug.cgi?id=41100
- * Configurations/FeatureDefines.xcconfig:
- 2010-06-28 Xan Lopez <xlopez@igalia.com>
- Revert to build jsc, since the tests expect this.
- * GNUmakefile.am:
- 2010-06-28 Zoltan Herczeg <zherczeg@webkit.org>
- Reviewed by Oliver Hunt.
- Only one character lookahead should be enough for the lexer
- https://bugs.webkit.org/show_bug.cgi?id=41213
- The lexer had 4 character lookahead before, which required
- a complex shifting mechanism. This can be improved by using
- only one character lookahead for most decisions, and a
- peek() function as a fallback when it is absolutely necessary.
- * parser/Lexer.cpp:
- (JSC::Lexer::currentCharacter):
- (JSC::Lexer::currentOffset):
- (JSC::Lexer::setCode):
- (JSC::Lexer::shift):
- (JSC::Lexer::peek):
- (JSC::Lexer::getUnicodeCharacter):
- (JSC::Lexer::shiftLineTerminator):
- (JSC::Lexer::lastTokenWasRestrKeyword):
- (JSC::Lexer::lex):
- (JSC::Lexer::scanRegExp):
- (JSC::Lexer::skipRegExp):
- * parser/Lexer.h:
- 2010-06-28 Lucas De Marchi <lucas.demarchi@profusion.mobi>
- Unreviewed build fix.
- [EFL] Build fix for latest version of Ecore library.
- Ecore recently changed return type of callbacks from int to Eina_Bool.
- * wtf/efl/MainThreadEfl.cpp:
- (WTF::timeoutFired): Return Eina_Bool instead of int.
- 2010-06-28 Caio Marcelo de Oliveira Filho <caio.oliveira@openbossa.org>
- Reviewed by Kenneth Rohde Christiansen.
- [Qt] QScriptValue should have API for accessing object properties
- https://bugs.webkit.org/show_bug.cgi?id=40903
- Make possible to access properties inside QScriptValues. While this
- still doesn't support the ResolveLocal parameter, it is already useful
- for testing the API.
- The tests from upstream QtScript weren't imported since most of them
- depend on the setProperty() function as well. A simple test was created.
- * qt/api/qscriptvalue.cpp:
- (QScriptValue::property):
- * qt/api/qscriptvalue.h:
- (QScriptValue::):
- * qt/api/qscriptvalue_p.h:
- (QScriptValuePrivate::property):
- * qt/tests/qscriptvalue/tst_qscriptvalue.cpp:
- (tst_QScriptValue::propertySimple):
- * qt/tests/qscriptvalue/tst_qscriptvalue.h:
- 2010-06-28 Xan Lopez <xlopez@igalia.com>
- Reviewed by Gustavo Noronha.
- [GTK] Add support for GTK+3
- https://bugs.webkit.org/show_bug.cgi?id=41253
- Suffix jsc with the API version of the library, so that
- libwebkitgtk 1.x and 3.x can install jsc.
- * GNUmakefile.am:
- 2010-06-27 Kwang Yul Seo <skyul@company100.net>
- Reviewed by Kent Tamura.
- [BREWMP] Turn ENABLE(SINGLE_THREADED) on.
- https://bugs.webkit.org/show_bug.cgi?id=41135
- Brew MP does not support preemptive multi-threading.
- Disable threading for Brew MP.
- * wtf/Platform.h:
- 2010-06-26 Tony Gentilcore <tonyg@chromium.org>
- Reviewed by Dimitri Glazkov.
- Add an ENABLE_WEB_TIMING option for enabling Web Timing support.
- https://bugs.webkit.org/show_bug.cgi?id=38924
- * Configurations/FeatureDefines.xcconfig:
- 2010-06-25 Nathan Lawrence <nlawrence@apple.com>
- Reviewed by Geoffrey Garen.
- We assume in testapi.c that the value aHeapRef refers to will not be
- moved. When we have movable objects, this will not be the case.
- * API/tests/testapi.c:
- (main):
- 2010-06-25 Sheriff Bot <webkit.review.bot@gmail.com>
- Unreviewed, rolling out r61924.
- http://trac.webkit.org/changeset/61924
- https://bugs.webkit.org/show_bug.cgi?id=41240
- It was rolled out, but cq+ wasn't removed (Requested by Ossy_
- on #webkit).
- * runtime/RegExp.cpp:
- (JSC::RegExp::RegExp):
- (JSC::RegExp::create):
- * runtime/RegExp.h:
- * runtime/RegExpCache.cpp:
- (JSC::RegExpCache::lookupOrCreate):
- (JSC::RegExpCache::create):
- * runtime/RegExpCache.h:
- 2010-06-25 Renata Hodovan <reni@inf.u-szeged.hu>
- Reviewed by Geoffrey Garen.
- Merge RegExp constructor and RegExp::create methods into one.
- Both of function are called with tree parameters and check whether
- flags (the third param) is given or not.
- Simplify hash lookups in RegExpCache::create with giving them an extra
- iterator parameter.
- https://bugs.webkit.org/show_bug.cgi?id=41055
- * runtime/RegExp.cpp:
- (JSC::RegExp::RegExp):
- * runtime/RegExp.h:
- * runtime/RegExpCache.cpp:
- (JSC::RegExpCache::lookupOrCreate):
- (JSC::RegExpCache::create):
- * runtime/RegExpCache.h:
- 2010-06-25 Jedrzej Nowacki <jedrzej.nowacki@nokia.com>
- Reviewed by Simon Hausmann.
- Introduce QtScript benchmarks.
- The QtScript performance should be tested regularly. The patch introduces
- micro benchmarks for existing API.
- [Qt] Performance of the QtScript API is not tested.
- https://bugs.webkit.org/show_bug.cgi?id=40911
- * qt/benchmarks/benchmarks.pri: Copied from JavaScriptCore/qt/tests/tests.pri.
- * qt/benchmarks/benchmarks.pro: Added.
- * qt/benchmarks/qscriptengine/qscriptengine.pro: Added.
- * qt/benchmarks/qscriptengine/tst_qscriptengine.cpp: Added.
- (tst_QScriptEngine::checkSyntax_data):
- (tst_QScriptEngine::checkSyntax):
- (tst_QScriptEngine::constructor):
- (tst_QScriptEngine::evaluateString_data):
- (tst_QScriptEngine::evaluateString):
- (tst_QScriptEngine::evaluateProgram_data):
- (tst_QScriptEngine::evaluateProgram):
- (tst_QScriptEngine::newObject):
- (tst_QScriptEngine::nullValue):
- (tst_QScriptEngine::undefinedValue):
- (tst_QScriptEngine::globalObject):
- (tst_QScriptEngine::toStringHandle):
- * qt/benchmarks/qscriptvalue/qscriptvalue.pro: Added.
- * qt/benchmarks/qscriptvalue/tst_qscriptvalue.cpp: Added.
- (tst_QScriptValue::tst_QScriptValue):
- (tst_QScriptValue::~tst_QScriptValue):
- (tst_QScriptValue::values_data):
- (tst_QScriptValue::ctorBool):
- (tst_QScriptValue::ctorReal):
- (tst_QScriptValue::ctorNumber):
- (tst_QScriptValue::ctorQString):
- (tst_QScriptValue::ctorCString):
- (tst_QScriptValue::ctorSpecial):
- (tst_QScriptValue::ctorQScriptValue):
- (tst_QScriptValue::isValid_data):
- (tst_QScriptValue::isValid):
- (tst_QScriptValue::isBool_data):
- (tst_QScriptValue::isBool):
- (tst_QScriptValue::isNumber_data):
- (tst_QScriptValue::isNumber):
- (tst_QScriptValue::isFunction_data):
- (tst_QScriptValue::isFunction):
- (tst_QScriptValue::isNull_data):
- (tst_QScriptValue::isNull):
- (tst_QScriptValue::isString_data):
- (tst_QScriptValue::isString):
- (tst_QScriptValue::isUndefined_data):
- (tst_QScriptValue::isUndefined):
- (tst_QScriptValue::isObject_data):
- (tst_QScriptValue::isObject):
- (tst_QScriptValue::isError_data):
- (tst_QScriptValue::isError):
- (tst_QScriptValue::toString_data):
- (tst_QScriptValue::toString):
- (tst_QScriptValue::toNumber_data):
- (tst_QScriptValue::toNumber):
- (tst_QScriptValue::toBool_data):
- (tst_QScriptValue::toBool):
- (tst_QScriptValue::toInteger_data):
- (tst_QScriptValue::toInteger):
- (tst_QScriptValue::toInt32_data):
- (tst_QScriptValue::toInt32):
- (tst_QScriptValue::toUInt32_data):
- (tst_QScriptValue::toUInt32):
- (tst_QScriptValue::toUInt16_data):
- (tst_QScriptValue::toUInt16):
- (tst_QScriptValue::toObject_data):
- (tst_QScriptValue::toObject):
- (tst_QScriptValue::equals_data):
- (tst_QScriptValue::equals):
- (tst_QScriptValue::strictlyEquals_data):
- (tst_QScriptValue::strictlyEquals):
- (tst_QScriptValue::instanceOf_data):
- (tst_QScriptValue::instanceOf):
- 2010-06-25 Oliver Hunt <oliver@apple.com>
- Reviewed by Geoffrey Garen.
- Remove old js parser
- https://bugs.webkit.org/show_bug.cgi?id=41222
- Remove the old yacc parser, this also solves the tiger problem. Which
- was a conflict between yacc generated token values and those in the
- custom parser
- * Android.mk:
- * CMakeLists.txt:
- * DerivedSources.make:
- * DerivedSources.pro:
- * GNUmakefile.am:
- * JavaScriptCore.pro:
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
- * JavaScriptCore.xcodeproj/project.pbxproj:
- * parser/Grammar.y: Removed.
- * parser/JSParser.cpp:
- * parser/JSParser.h:
- * parser/Lexer.cpp:
- * parser/NodeConstructors.h:
- (JSC::Node::Node):
- * parser/Parser.cpp:
- (JSC::Parser::parse):
- * wtf/Platform.h:
- 2010-06-25 Jedrzej Nowacki <jedrzej.nowacki@nokia.com>
- Reviewed by Simon Hausmann.
- New QtScript API; setPrototype() and prototype().
- This patch implements QScriptValue's prototype accessors.
- [Qt] QScriptValue should have accessors to a prototype.
- https://bugs.webkit.org/show_bug.cgi?id=39356
- * qt/api/qscriptvalue.cpp:
- (QScriptValue::prototype):
- (QScriptValue::setPrototype):
- * qt/api/qscriptvalue.h:
- * qt/api/qscriptvalue_p.h:
- (QScriptValuePrivate::prototype):
- (QScriptValuePrivate::setPrototype):
- * qt/tests/qscriptvalue/tst_qscriptvalue.cpp:
- (tst_QScriptValue::getSetPrototype):
- * qt/tests/qscriptvalue/tst_qscriptvalue.h:
- 2010-06-25 Lucas De Marchi <lucas.demarchi@profusion.mobi>
- Reviewed by Kenneth Rohde Christiansen.
- [CMake] Add option to enable JIT.
- JIT is disabled by default, but now it's possible to enable it through
- an option to CMake: -DENABLE_JIT will enable it.
- https://bugs.webkit.org/show_bug.cgi?id=40936
- * CMakeLists.txt: Add missing files and re-sort.
- 2010-06-25 Lucas De Marchi <lucas.demarchi@profusion.mobi>
- Reviewed by Gustavo Noronha Silva.
- [CMake] Remove unused variable in EFL build system. It was previously
- being used to set the flags of each port but it was superseded by
- other flags.
- https://bugs.webkit.org/show_bug.cgi?id=40931
- * jsc/CMakeLists.txt:
- 2010-06-25 Nathan Lawrence <nlawrence@apple.com>
- Reviewed by Geoffrey Garen.
- Aligning AssemblerBuffer to 128 bytes gives a 0.4% speedup on
- sunspider.
- * assembler/AssemblerBuffer.h:
- (JSC::AssemblerBuffer::AssemblerBuffer):
- 2010-06-25 Sheriff Bot <webkit.review.bot@gmail.com>
- Unreviewed, rolling out r61842.
- http://trac.webkit.org/changeset/61842
- https://bugs.webkit.org/show_bug.cgi?id=41208
- It broke Windows build (Requested by Ossy_ on #webkit).
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreCommon.vsprops:
- * JavaScriptCore.vcproj/WTF/WTF.vcproj:
- * wtf/OwnPtrCommon.h:
- * wtf/brew/OwnPtrBrew.h: Removed.
- * wtf/win/OwnPtrWin.h: Removed.
- 2010-06-25 Sheriff Bot <webkit.review.bot@gmail.com>
- Unreviewed, rolling out r61833.
- http://trac.webkit.org/changeset/61833
- https://bugs.webkit.org/show_bug.cgi?id=41205
- It broke Leopard and GTK (Requested by Ossy_ on #webkit).
- * runtime/RegExp.cpp:
- (JSC::RegExp::RegExp):
- (JSC::RegExp::create):
- * runtime/RegExp.h:
- * runtime/RegExpCache.cpp:
- (JSC::RegExpCache::lookupOrCreate):
- (JSC::RegExpCache::create):
- * runtime/RegExpCache.h:
- 2010-06-25 Kwang Yul Seo <skyul@company100.net>
- Reviewed by Adam Barth.
- Change OwnPtrCommon to include platform-specific headers
- https://bugs.webkit.org/show_bug.cgi?id=40279
- Adding new type to OwnPtrCommon needlessly causes all ports to do full rebuilds.
- Change OwnPtrCommon to include platform-specific headers to avoid all ports rebuilds.
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreCommon.vsprops:
- * JavaScriptCore.vcproj/WTF/WTF.vcproj:
- * wtf/OwnPtrCommon.h:
- * wtf/brew/OwnPtrBrew.h: Added.
- * wtf/win/OwnPtrWin.h: Added.
- 2010-06-25 Patrick Gansterer <paroga@paroga.com>
- Reviewed by Darin Adler.
- Add the possibility for a head and footer section to create_jit_stubs.
- https://bugs.webkit.org/show_bug.cgi?id=36050
- * create_jit_stubs:
- 2010-06-24 Renata Hodovan <reni@inf.u-szeged.hu>
- Reviewed by Geoffrey Garen.
- Merge RegExp constructor and RegExp::create methods into one.
- Both of function are called with tree parameters and check whether
- flags (the third param) is given or not.
- Simplify hash lookups in RegExpCache::create with giving them an extra
- iterator parameter.
- https://bugs.webkit.org/show_bug.cgi?id=41055
- * runtime/RegExp.cpp:
- (JSC::RegExp::RegExp):
- * runtime/RegExp.h:
- * runtime/RegExpCache.cpp:
- (JSC::RegExpCache::lookupOrCreate):
- (JSC::RegExpCache::create):
- * runtime/RegExpCache.h:
- 2010-06-24 Oliver Hunt <oliver@apple.com>
- Reviewed by Maciej Stachowiak.
- Incorrect use of '+ 4' and 0 instead of tag and payload offsets in JSValue32_64
- https://bugs.webkit.org/show_bug.cgi?id=41193
- I noticed a use of '+ 4' in some of the 32_64 code paths and realised there
- were a few places where endianness was being hardcoded. This patch fixes
- the errors i could find through code inspection.
- * jit/JITOpcodes32_64.cpp:
- (JSC::JIT::emit_op_resolve_global):
- * jit/JITPropertyAccess32_64.cpp:
- (JSC::JIT::emit_op_get_by_val):
- (JSC::JIT::emit_op_put_by_val):
- (JSC::JIT::compileGetDirectOffset):
- (JSC::JIT::privateCompilePutByIdTransition):
- (JSC::JIT::patchGetByIdSelf):
- (JSC::JIT::patchPutByIdReplace):
- 2010-06-24 Oliver Hunt <oliver@apple.com>
- Build fix
- Temporarily get the tiger bot working again by disabling the
- new JS parser. GCC on tiger is miscompiling the parser and
- I don't have access to a tiger machine right now.
- * wtf/Platform.h:
- 2010-06-21 Nathan Lawrence <nlawrence@apple.com>
- Reviewed by Geoff Garen.
- https://bugs.webkit.org/show_bug.cgi?id=40128
- Fixed broken debug functionality.
- * interpreter/Interpreter.cpp:
- (JSC::Interpreter::dumpRegisters):
- Fixed to work with updated call frame.
- * runtime/JSImmediate.h:
- (JSC::JSValue::isCell):
- Added assert for aligned cell.
- * runtime/JSValue.cpp:
- (JSC::JSValue::description):
- Fixed to work with current JSValue implementation.
- * runtime/JSZombie.cpp:
- (JSC::JSZombie::leakedZombieStructure):
- JSombies compile again.
- 2010-06-24 Leandro Pereira <leandro@profusion.mobi>
- Unreviewed build fix.
- * CMakeLists.txt: Add JSParser.cpp.
- 2010-06-24 Oliver Hunt <oliver@apple.com>
- Reviewed by Maciej Stachowiak.
- Single character string replacement may replace too many characters
- https://bugs.webkit.org/show_bug.cgi?id=41138
- <rdar://problem/8097496>
- Simple fix to stop the rope path of single character replacement
- once the first replacement occurs.
- * runtime/JSString.cpp:
- (JSC::JSString::replaceCharacter):
- 2010-06-24 Gabor Loki <loki@webkit.org>
- Reviewed by Gavin Barraclough.
- Fix the length of instruction stream controlled by constant pool
- https://bugs.webkit.org/show_bug.cgi?id=40293
- The initial/maximum length of instruction stream (m_maxDistance) should
- be set when the first constant arrives to the constant pool. Otherwise
- the constant pool could be placed into an uninterrupted sequence.
- * assembler/AssemblerBufferWithConstantPool.h:
- (JSC::):
- 2010-06-24 Oliver Hunt <oliver@apple.com>
- Reviewed by Gavin Barraclough.
- We assume bytecodeOffset will always return a value > 1,
- so we adjust the failure case to return 1 instead of 0.
- * bytecode/CodeBlock.h:
- (JSC::CodeBlock::bytecodeOffset):
- 2010-06-23 Oliver Hunt <oliver@apple.com>
- Reviewed by Gavin Barraclough.
- Custom-written JavaScript parser
- https://bugs.webkit.org/show_bug.cgi?id=34019
- Implement a recursive descent parser similar to that used by V8 and
- SpiderMonkey. Greater than 2x improvement in SunSpider parsing tests.
- The parser consists of a JSParser class that uses a TreeBuilder to actually
- build the AST. There are currently two builders -- the ASTBuilder and
- SyntaxChecker which separate the job of building an AST for code generation
- and simply checking syntactic correctness.
- There's still some less than ideal code remaining in the parser to allow
- us to retain the existing lexing code with minimal changes. We'll tidy
- this up at a later date.
- * GNUmakefile.am:
- * JavaScriptCore.gypi:
- * JavaScriptCore.pro:
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
- * JavaScriptCore.xcodeproj/project.pbxproj:
- * parser/ASTBuilder.h: Added.
- (JSC::ASTBuilder::BinaryOpInfo::BinaryOpInfo):
- (JSC::ASTBuilder::AssignmentInfo::AssignmentInfo):
- (JSC::ASTBuilder::ASTBuilder):
- (JSC::ASTBuilder::createSourceElements):
- (JSC::ASTBuilder::varDeclarations):
- (JSC::ASTBuilder::funcDeclarations):
- (JSC::ASTBuilder::features):
- (JSC::ASTBuilder::numConstants):
- (JSC::ASTBuilder::appendToComma):
- (JSC::ASTBuilder::createCommaExpr):
- (JSC::ASTBuilder::createLogicalNot):
- (JSC::ASTBuilder::createUnaryPlus):
- (JSC::ASTBuilder::createVoid):
- (JSC::ASTBuilder::thisExpr):
- (JSC::ASTBuilder::createResolve):
- (JSC::ASTBuilder::createObjectLiteral):
- (JSC::ASTBuilder::createArray):
- (JSC::ASTBuilder::createNumberExpr):
- (JSC::ASTBuilder::createString):
- (JSC::ASTBuilder::createBoolean):
- (JSC::ASTBuilder::createNull):
- (JSC::ASTBuilder::createBracketAccess):
- (JSC::ASTBuilder::createDotAccess):
- (JSC::ASTBuilder::createRegex):
- (JSC::ASTBuilder::createNewExpr):
- (JSC::ASTBuilder::createConditionalExpr):
- (JSC::ASTBuilder::createAssignResolve):
- (JSC::ASTBuilder::createFunctionExpr):
- (JSC::ASTBuilder::createFunctionBody):
- (JSC::ASTBuilder::createGetterOrSetterProperty):
- (JSC::ASTBuilder::createArguments):
- (JSC::ASTBuilder::createArgumentsList):
- (JSC::ASTBuilder::createProperty):
- (JSC::ASTBuilder::createPropertyList):
- (JSC::ASTBuilder::createElementList):
- (JSC::ASTBuilder::createFormalParameterList):
- (JSC::ASTBuilder::createClause):
- (JSC::ASTBuilder::createClauseList):
- (JSC::ASTBuilder::setUsesArguments):
- (JSC::ASTBuilder::createFuncDeclStatement):
- (JSC::ASTBuilder::createBlockStatement):
- (JSC::ASTBuilder::createExprStatement):
- (JSC::ASTBuilder::createIfStatement):
- (JSC::ASTBuilder::createForLoop):
- (JSC::ASTBuilder::createForInLoop):
- (JSC::ASTBuilder::createEmptyStatement):
- (JSC::ASTBuilder::createVarStatement):
- (JSC::ASTBuilder::createReturnStatement):
- (JSC::ASTBuilder::createBreakStatement):
- (JSC::ASTBuilder::createContinueStatement):
- (JSC::ASTBuilder::createTryStatement):
- (JSC::ASTBuilder::createSwitchStatement):
- (JSC::ASTBuilder::createWhileStatement):
- (JSC::ASTBuilder::createDoWhileStatement):
- (JSC::ASTBuilder::createLabelStatement):
- (JSC::ASTBuilder::createWithStatement):
- (JSC::ASTBuilder::createThrowStatement):
- (JSC::ASTBuilder::createDebugger):
- (JSC::ASTBuilder::createConstStatement):
- (JSC::ASTBuilder::appendConstDecl):
- (JSC::ASTBuilder::appendStatement):
- (JSC::ASTBuilder::addVar):
- (JSC::ASTBuilder::combineCommaNodes):
- (JSC::ASTBuilder::evalCount):
- (JSC::ASTBuilder::appendBinaryExpressionInfo):
- (JSC::ASTBuilder::operatorStackPop):
- (JSC::ASTBuilder::operatorStackHasHigherPrecedence):
- (JSC::ASTBuilder::getFromOperandStack):
- (JSC::ASTBuilder::shrinkOperandStackBy):
- (JSC::ASTBuilder::appendBinaryOperation):
- (JSC::ASTBuilder::operatorStackAppend):
- (JSC::ASTBuilder::popOperandStack):
- (JSC::ASTBuilder::appendUnaryToken):
- (JSC::ASTBuilder::unaryTokenStackLastType):
- (JSC::ASTBuilder::unaryTokenStackLastStart):
- (JSC::ASTBuilder::unaryTokenStackRemoveLast):
- (JSC::ASTBuilder::assignmentStackAppend):
- (JSC::ASTBuilder::createAssignment):
- (JSC::ASTBuilder::Scope::Scope):
- (JSC::ASTBuilder::setExceptionLocation):
- (JSC::ASTBuilder::incConstants):
- (JSC::ASTBuilder::usesThis):
- (JSC::ASTBuilder::usesCatch):
- (JSC::ASTBuilder::usesClosures):
- (JSC::ASTBuilder::usesArguments):
- (JSC::ASTBuilder::usesAssignment):
- (JSC::ASTBuilder::usesWith):
- (JSC::ASTBuilder::usesEval):
- (JSC::ASTBuilder::createNumber):
- (JSC::ASTBuilder::makeTypeOfNode):
- (JSC::ASTBuilder::makeDeleteNode):
- (JSC::ASTBuilder::makeNegateNode):
- (JSC::ASTBuilder::makeBitwiseNotNode):
- (JSC::ASTBuilder::makeMultNode):
- (JSC::ASTBuilder::makeDivNode):
- (JSC::ASTBuilder::makeAddNode):
- (JSC::ASTBuilder::makeSubNode):
- (JSC::ASTBuilder::makeLeftShiftNode):
- (JSC::ASTBuilder::makeRightShiftNode):
- (JSC::ASTBuilder::makeFunctionCallNode):
- (JSC::ASTBuilder::makeBinaryNode):
- (JSC::ASTBuilder::makeAssignNode):
- (JSC::ASTBuilder::makePrefixNode):
- (JSC::ASTBuilder::makePostfixNode):
- * parser/JSParser.cpp: Added.
- (JSC::JSParser::AllowInOverride::AllowInOverride):
- (JSC::JSParser::AllowInOverride::~AllowInOverride):
- (JSC::JSParser::token):
- (JSC::JSParser::next):
- (JSC::JSParser::consume):
- (JSC::JSParser::match):
- (JSC::JSParser::tokenStart):
- (JSC::JSParser::tokenLine):
- (JSC::JSParser::tokenEnd):
- (JSC::JSParser::):
- (JSC::JSParser::autoSemiColon):
- (JSC::JSParser::canRecurse):
- (JSC::JSParser::lastTokenEnd):
- (JSC::jsParse):
- (JSC::JSParser::JSParser):
- (JSC::JSParser::parseProgram):
- (JSC::JSParser::allowAutomaticSemicolon):
- (JSC::JSParser::parseSourceElements):
- (JSC::JSParser::parseVarDeclaration):
- (JSC::JSParser::parseConstDeclaration):
- (JSC::JSParser::parseDoWhileStatement):
- (JSC::JSParser::parseWhileStatement):
- (JSC::JSParser::parseVarDeclarationList):
- (JSC::JSParser::parseConstDeclarationList):
- (JSC::JSParser::parseForStatement):
- (JSC::JSParser::parseBreakStatement):
- (JSC::JSParser::parseContinueStatement):
- (JSC::JSParser::parseReturnStatement):
- (JSC::JSParser::parseThrowStatement):
- (JSC::JSParser::parseWithStatement):
- (JSC::JSParser::parseSwitchStatement):
- (JSC::JSParser::parseSwitchClauses):
- (JSC::JSParser::parseSwitchDefaultClause):
- (JSC::JSParser::parseTryStatement):
- (JSC::JSParser::parseDebuggerStatement):
- (JSC::JSParser::parseBlockStatement):
- (JSC::JSParser::parseStatement):
- (JSC::JSParser::parseFormalParameters):
- (JSC::JSParser::parseFunctionBody):
- (JSC::JSParser::parseFunctionInfo):
- (JSC::JSParser::parseFunctionDeclaration):
- (JSC::JSParser::parseExpressionOrLabelStatement):
- (JSC::JSParser::parseExpressionStatement):
- (JSC::JSParser::parseIfStatement):
- (JSC::JSParser::parseExpression):
- (JSC::JSParser::parseAssignmentExpression):
- (JSC::JSParser::parseConditionalExpression):
- (JSC::isUnaryOp):
- (JSC::JSParser::isBinaryOperator):
- (JSC::JSParser::parseBinaryExpression):
- (JSC::JSParser::parseProperty):
- (JSC::JSParser::parseObjectLiteral):
- (JSC::JSParser::parseArrayLiteral):
- (JSC::JSParser::parsePrimaryExpression):
- (JSC::JSParser::parseArguments):
- (JSC::JSParser::parseMemberExpression):
- (JSC::JSParser::parseUnaryExpression):
- * parser/JSParser.h: Added.
- (JSC::):
- (JSC::JSTokenInfo::JSTokenInfo):
- * parser/Lexer.cpp:
- (JSC::Lexer::lex):
- * parser/Lexer.h:
- (JSC::Lexer::setLastLineNumber):
- (JSC::Lexer::lastLineNumber):
- * parser/NodeConstructors.h:
- (JSC::Node::Node):
- * parser/Parser.cpp:
- (JSC::Parser::parse):
- * parser/SyntaxChecker.h: Added.
- (JSC::SyntaxChecker::SyntaxChecker):
- (JSC::SyntaxChecker::createSourceElements):
- (JSC::SyntaxChecker::makeFunctionCallNode):
- (JSC::SyntaxChecker::appendToComma):
- (JSC::SyntaxChecker::createCommaExpr):
- (JSC::SyntaxChecker::makeAssignNode):
- (JSC::SyntaxChecker::makePrefixNode):
- (JSC::SyntaxChecker::makePostfixNode):
- (JSC::SyntaxChecker::makeTypeOfNode):
- (JSC::SyntaxChecker::makeDeleteNode):
- (JSC::SyntaxChecker::makeNegateNode):
- (JSC::SyntaxChecker::makeBitwiseNotNode):
- (JSC::SyntaxChecker::createLogicalNot):
- (JSC::SyntaxChecker::createUnaryPlus):
- (JSC::SyntaxChecker::createVoid):
- (JSC::SyntaxChecker::thisExpr):
- (JSC::SyntaxChecker::createResolve):
- (JSC::SyntaxChecker::createObjectLiteral):
- (JSC::SyntaxChecker::createArray):
- (JSC::SyntaxChecker::createNumberExpr):
- (JSC::SyntaxChecker::createString):
- (JSC::SyntaxChecker::createBoolean):
- (JSC::SyntaxChecker::createNull):
- (JSC::SyntaxChecker::createBracketAccess):
- (JSC::SyntaxChecker::createDotAccess):
- (JSC::SyntaxChecker::createRegex):
- (JSC::SyntaxChecker::createNewExpr):
- (JSC::SyntaxChecker::createConditionalExpr):
- (JSC::SyntaxChecker::createAssignResolve):
- (JSC::SyntaxChecker::createFunctionExpr):
- (JSC::SyntaxChecker::createFunctionBody):
- (JSC::SyntaxChecker::createArguments):
- (JSC::SyntaxChecker::createArgumentsList):
- (JSC::SyntaxChecker::createProperty):
- (JSC::SyntaxChecker::createPropertyList):
- (JSC::SyntaxChecker::createElementList):
- (JSC::SyntaxChecker::createFormalParameterList):
- (JSC::SyntaxChecker::createClause):
- (JSC::SyntaxChecker::createClauseList):
- (JSC::SyntaxChecker::setUsesArguments):
- (JSC::SyntaxChecker::createFuncDeclStatement):
- (JSC::SyntaxChecker::createBlockStatement):
- (JSC::SyntaxChecker::createExprStatement):
- (JSC::SyntaxChecker::createIfStatement):
- (JSC::SyntaxChecker::createForLoop):
- (JSC::SyntaxChecker::createForInLoop):
- (JSC::SyntaxChecker::createEmptyStatement):
- (JSC::SyntaxChecker::createVarStatement):
- (JSC::SyntaxChecker::createReturnStatement):
- (JSC::SyntaxChecker::createBreakStatement):
- (JSC::SyntaxChecker::createContinueStatement):
- (JSC::SyntaxChecker::createTryStatement):
- (JSC::SyntaxChecker::createSwitchStatement):
- (JSC::SyntaxChecker::createWhileStatement):
- (JSC::SyntaxChecker::createWithStatement):
- (JSC::SyntaxChecker::createDoWhileStatement):
- (JSC::SyntaxChecker::createLabelStatement):
- (JSC::SyntaxChecker::createThrowStatement):
- (JSC::SyntaxChecker::createDebugger):
- (JSC::SyntaxChecker::createConstStatement):
- (JSC::SyntaxChecker::appendConstDecl):
- (JSC::SyntaxChecker::createGetterOrSetterProperty):
- (JSC::SyntaxChecker::appendStatement):
- (JSC::SyntaxChecker::addVar):
- (JSC::SyntaxChecker::combineCommaNodes):
- (JSC::SyntaxChecker::evalCount):
- (JSC::SyntaxChecker::appendBinaryExpressionInfo):
- (JSC::SyntaxChecker::operatorStackPop):
- * runtime/JSGlobalData.h:
- * wtf/Platform.h:
- * wtf/ThreadSpecific.h:
- (WTF::T):
- 2010-06-23 Jedrzej Nowacki <jedrzej.nowacki@nokia.com>
- Reviewed by Simon Hausmann.
- Optimization of the QScriptValuePrivate.
- Patch change only internals of the QScriptValuePrivate.
- Most of the QScriptValuePrivate's attributes were moved
- into an union.
- [Qt] Optimization of the QScriptVAluePrivate.
- https://bugs.webkit.org/show_bug.cgi?id=40415
- * qt/api/qscriptengine_p.cpp:
- (QScriptEnginePrivate::globalObject):
- * qt/api/qscriptvalue_p.h:
- (QScriptValuePrivate::):
- (QScriptValuePrivate::~QScriptValuePrivate):
- (QScriptValuePrivate::QScriptValuePrivate):
- (QScriptValuePrivate::toString):
- (QScriptValuePrivate::toNumber):
- (QScriptValuePrivate::toBool):
- (QScriptValuePrivate::toObject):
- (QScriptValuePrivate::equals):
- (QScriptValuePrivate::strictlyEquals):
- (QScriptValuePrivate::assignEngine):
- (QScriptValuePrivate::operator JSValueRef):
- (QScriptValuePrivate::operator JSObjectRef):
- (QScriptValuePrivate::refinedJSValue):
- 2010-06-23 Kwang Yul Seo <skyul@company100.net>
- Reviewed by Oliver Hunt.
- [GTK] Implement ThreadSpecific with glib
- https://bugs.webkit.org/show_bug.cgi?id=39829
- Implement ThreadSpecific with glib's GStaticPrivate.
- This patch makes it possible to build GTK port without pthread.
- * wtf/ThreadSpecific.h:
- (WTF::::ThreadSpecific):
- (WTF::::~ThreadSpecific):
- (WTF::::get):
- (WTF::::set):
- (WTF::::destroy):
- 2010-06-23 Leandro Pereira <leandro@profusion.mobi>
- Unreviewed build fix.
- * CMakeLists.txt: Add runtime/RegExpCache.cpp.
- 2010-06-22 Renata Hodovan <hodovan@inf.u-szeged.hu>
- Reviewed by Geoffrey Garen.
- Adding regular expression caching to JavaScriptCore
- https://bugs.webkit.org/show_bug.cgi?id=38142
- The cache is based on Round Robin eviction policy, and
- can cache at most 256 character long regular expressions,
- and at most 256 of them. These values can be changed at compile time.
- * GNUmakefile.am:
- * JavaScriptCore.gypi:
- * JavaScriptCore.pro:
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
- * JavaScriptCore.xcodeproj/project.pbxproj:
- * bytecompiler/NodesCodegen.cpp:
- (JSC::RegExpNode::emitBytecode):
- * runtime/JSGlobalData.cpp:
- (JSC::JSGlobalData::JSGlobalData):
- (JSC::JSGlobalData::~JSGlobalData):
- * runtime/JSGlobalData.h:
- (JSC::JSGlobalData::regExpCache):
- * runtime/RegExpCache.cpp: Added.
- (JSC::RegExpCache::lookupOrCreate):
- (JSC::RegExpCache::create):
- (JSC::RegExpCache::RegExpCache):
- * runtime/RegExpCache.h: Added.
- * runtime/RegExpConstructor.cpp:
- (JSC::constructRegExp):
- * runtime/RegExpKey.h: Added.
- (JSC::RegExpKey::RegExpKey):
- (JSC::RegExpKey::getFlagsValue):
- (WTF::operator==):
- (WTF::):
- * runtime/RegExpPrototype.cpp:
- (JSC::regExpProtoFuncCompile):
- * runtime/StringPrototype.cpp:
- (JSC::stringProtoFuncMatch):
- (JSC::stringProtoFuncSearch):
- 2010-06-22 Gabor Loki <loki@webkit.org>
- Reviewed by Geoffrey Garen.
- Add native call support for ARM and Thumb-2 JIT.
- https://bugs.webkit.org/show_bug.cgi?id=40231
- * jit/JITOpcodes.cpp:
- (JSC::JIT::privateCompileCTINativeCall):
- * jit/JITOpcodes32_64.cpp:
- (JSC::JIT::privateCompileCTINativeCall):
- * wtf/Platform.h:
- 2010-06-21 Oliver Hunt <oliver@apple.com>
- Reviewed by Geoffrey Garen.
- Make JSC more resilient in the face of parse failures
- https://bugs.webkit.org/show_bug.cgi?id=40951
- A number of recent bugs have occurred due to issues like miscounting
- BOMs, etc which lead to interesting crashes later on. Adding this
- logic hardens JSC in the face of these errors, and has no impact on
- performance (32bit jit actually gets 0.7% faster but I put that down
- to cache effects).
- * bytecode/CodeBlock.cpp:
- (JSC::CodeBlock::reparseForExceptionInfoIfNecessary):
- (JSC::CodeBlock::lineNumberForBytecodeOffset):
- (JSC::CodeBlock::expressionRangeForBytecodeOffset):
- (JSC::CodeBlock::getByIdExceptionInfoForBytecodeOffset):
- * bytecode/CodeBlock.h:
- (JSC::CodeBlock::bytecodeOffset):
- * interpreter/Interpreter.cpp:
- (JSC::Interpreter::execute):
- (JSC::Interpreter::executeCall):
- (JSC::Interpreter::executeConstruct):
- (JSC::Interpreter::prepareForRepeatCall):
- (JSC::Interpreter::privateExecute):
- * jit/JITOpcodes.cpp:
- (JSC::JIT::privateCompileCTIMachineTrampolines):
- * jit/JITOpcodes32_64.cpp:
- (JSC::JIT::privateCompileCTIMachineTrampolines):
- * jit/JITStubs.cpp:
- (JSC::DEFINE_STUB_FUNCTION):
- * runtime/ArrayPrototype.cpp:
- (JSC::isNumericCompareFunction):
- * runtime/Executable.cpp:
- (JSC::FunctionExecutable::compileForCall):
- (JSC::FunctionExecutable::compileForConstruct):
- (JSC::FunctionExecutable::generateJITCodeForCall):
- (JSC::FunctionExecutable::generateJITCodeForConstruct):
- (JSC::FunctionExecutable::reparseExceptionInfo):
- (JSC::EvalExecutable::reparseExceptionInfo):
- * runtime/Executable.h:
- (JSC::FunctionExecutable::bytecodeForCall):
- (JSC::FunctionExecutable::bytecodeForConstruct):
- * runtime/JSGlobalData.cpp:
- (JSC::JSGlobalData::numericCompareFunction):
- 2010-06-21 John Sullivan <sullivan@apple.com>
- Reviewed by Adam Roben.
- RetainPtr can't be used in HashMaps or HashSets
- <https://bugs.webkit.org/show_bug.cgi?id=40938>
-
- Added hashing knowledge similar to that in COMPtr.h.
- * wtf/RetainPtr.h:
- (WTF::RetainPtr::RetainPtr):
- New function, copied from COMPtr.h but for the type change.
- (WTF::RetainPtr::isHashTableDeletedValue):
- Ditto.
- (WTF::RetainPtr::hashTableDeletedValue):
- Ditto.
- Added template code for HashTraits and PtrHash copied from COMPtr.h but for the type change.
- The only difference is that constructDeletedValue() matches the RefPtr implementation (in HashTraits.h)
- rather than the COMPtr implementation.
- 2010-06-19 Oliver Hunt <oliver@apple.com>
- Reviewed by Geoffrey Garen.
- Need to ensure that we grow the RegisterFile when creating a callframe for host code
- https://bugs.webkit.org/show_bug.cgi?id=40858
- <rdar://problem/8108986>
- In the past the use of the callframe in hostcode was much more
- limited. Now that we expect the callframe to always be valid
- we need to grow the RegisterFile so that this is actually the
- case. In this particular case the problem was failing to grow
- the registerfile could lead to a callframe that extended beyond
- RegisterFiler::end(), so vm re-entry would clobber the callframe
- other scenarios could also lead to badness.
- I was unable to construct a simple testcase to trigger badness,
- and any such testcase would be so dependent on exact vm stack
- layout that it would be unlikely to work as a testcase following
- any callframe or register allocation changes anyway.
- Thankfully the new assertion I added should help to catch these
- failures in future, and triggers on a couple of tests currently.
- * interpreter/CallFrame.cpp:
- (JSC::CallFrame::registerFile):
- * interpreter/CallFrame.h:
- (JSC::ExecState::init):
- * interpreter/Interpreter.cpp:
- (JSC::Interpreter::privateExecute):
- * jit/JITStubs.cpp:
- (JSC::DEFINE_STUB_FUNCTION):
- 2010-06-21 Satish Sampath <satish@chromium.org>
- Reviewed by Steve Block.
- Speech Input Patch 0: Added compilation argument to conditionally compile pending patches.
- https://bugs.webkit.org/show_bug.cgi?id=40878
- * Configurations/FeatureDefines.xcconfig:
- 2010-06-21 Kwang Yul Seo <skyul@company100.net>
- Reviewed by Kent Tamura.
- [BREWMP] Use global new/delete operator overloading with USE_SYSTEM_MALLOC=1
- https://bugs.webkit.org/show_bug.cgi?id=40653
- Currently, other ports do not use global new/delete operator overloading
- when USE_SYSTEM_MALLOC=1. Brew MP uses system malloc, but it needs to enable
- "global fastMalloc new" because the default new/delete causes crash on device.
- We need to replace them with Brew MP's MALLOC/FREE.
- * wtf/FastMalloc.h:
- 2010-06-18 Jocelyn Turcotte <jocelyn.turcotte@nokia.com>
- Reviewed by Simon Hausmann.
- [Qt] Work around a build problem with libjscore on Symbian.
- https://bugs.webkit.org/show_bug.cgi?id=40840
- Sbsv2 sometimes have problems with debug/release configuration
- determination causing QtWebKit in release to try linking with the debug
- JavaScriptCore static library. This patch limit the jscore/jscored
- r58306 fix necessary for mac builds only to the mac platform to prevent the
- different name problem.
- The real fix would be to fix qmake or the toolchain, this patch might
- help meanwhile.
- * JavaScriptCore.pri:
- 2010-06-21 Patrick Gansterer <paroga@paroga.com>
- Reviewed by Kent Tamura.
- Buildfix after r61338.
- https://bugs.webkit.org/show_bug.cgi?id=40888
- roundUpAllocationSize is needed in RegisterFile.h.
- * jit/ExecutableAllocator.h:
- 2010-06-19 Kwang Yul Seo <skyul@company100.net>
- Reviewed by Darin Adler.
- Include <string.h> in StringExtras.h
- https://bugs.webkit.org/show_bug.cgi?id=40808
- Without string.h, RVCT 2.2 can't compile StringExtras.h.
- It can't find strlen and strncmp.
- * wtf/StringExtras.h:
- 2010-06-19 Thiago Macieira <thiago.macieira@nokia.com>
- Reviewed by Kenneth Rohde Christiansen.
- Don't use __attribute__((may_alias)) with the Intel compiler,
- as it doesn't understand it.
- * wtf/Vector.h:
- 2010-06-19 Thiago Macieira <thiago.macieira@nokia.com>
- Reviewed by Kenneth Rohde Christiansen.
- Fix compilation with the Intel C++ compiler (11.1.072).
- Like RVCT, label pointers must be void*, not const void*.
- * bytecode/Opcode.h:
- 2010-06-19 Thiago Macieira <thiago.macieira@nokia.com>
- Reviewed by Kenneth Rohde Christiansen.
- Add the WTF_COMPILER_INTEL for when the Intel compiler is used
- for building. Usually, the Intel compiler masquerades as
- another compiler in the system and gets away with it, but some
- times specific fixes are required (such as when using language
- extensions).
- * wtf/Platform.h:
- 2010-06-18 Oliver Hunt <oliver@apple.com>
- Reviewed by Geoffrey Garen.
- Incorrect handling of multiple BOMs scattered through a file.
- https://bugs.webkit.org/show_bug.cgi?id=40865
- When determining the offset of open and close braces in a source
- with BOMs we were finishing our count early as we failed to account
- for BOMs prior to the open/close brace positions effecting those
- positions.
- * parser/Lexer.cpp:
- (JSC::Lexer::sourceCode):
- 2010-06-17 Oliver Hunt <oliver@apple.com>
- Reviewed by Sam Weinig.
- Don't throw away exception information for functions that use exceptions
- https://bugs.webkit.org/show_bug.cgi?id=40786
- Simple patch to stop JSC from throwing away the exception information
- of a function that uses "exceptiony" features like try and throw. This
- is a speed up for catching expressions but it's difficult to quantify as
- the old cost of reparsing is amortised over all exceptions caught in the
- effected function.
- * bytecode/CodeBlock.cpp:
- (JSC::CodeBlock::reparseForExceptionInfoIfNecessary):
- * bytecompiler/BytecodeGenerator.cpp:
- (JSC::BytecodeGenerator::generate):
- (JSC::BytecodeGenerator::emitCatch):
- * bytecompiler/BytecodeGenerator.h:
- (JSC::BytecodeGenerator::emitThrow):
- 2010-06-18 Anders Carlsson <andersca@apple.com>
- Reviewed by Sam Weinig.
- Add PlatformStrategies and PluginStrategy classes.
- https://bugs.webkit.org/show_bug.cgi?id=40850
- * wtf/Platform.h:
- 2010-06-18 Leandro Pereira <leandro@profusion.mobi>
- [EFL] Unreviewed build fix.
- * wtf/CMakeLists.txt: Add MD5.cpp.
- 2010-06-17 Shu Chang <chang.shu@nokia.com>
- Reviewed by Kenneth Rohde Christiansen.
- [Qt] Fix the link error on symbian with ENABLE_JIT=0.
- 1. Add "#if ENABLE(JIT)" in the header file;
- 2. Put feature enable/disable logic to a common.pri so
- that both JavaScriptCore.pri and WebCore.pri can share.
- https://bugs.webkit.org/show_bug.cgi?id=40780
- * JavaScriptCore.pri:
- * jit/ExecutableAllocator.h:
- 2010-06-17 Darin Adler <darin@apple.com>
- Reviewed by Sam Weinig.
- Use adoptRef and create functions in more code paths
- https://bugs.webkit.org/show_bug.cgi?id=40760
- * API/JSClassRef.h: Removed unneeded include of RefCounted.h.
- * API/JSWeakObjectMapRefPrivate.cpp: Ditto.
- * bytecode/CodeBlock.h:
- (JSC::FunctionCodeBlock::FunctionCodeBlock): Use the
- SharedSymbolTable::create function instead of calling new directly.
- * runtime/SymbolTable.h: Added a create function to the SharedSymbolTable
- class and made the constructor private.
- 2010-06-17 Mark Brand <mabrand@mabrand.nl>
- Reviewed by Simon Hausmann.
- [Qt] use "win32-g++*" scope to match all MinGW makespecs
- The scope "win32-g++" comes from the name of the makespec. However, it
- is frequently used to check for MinGW. This works fine as long as
- win32-g++ is the only makespec for MinGW. Now we need the wildcard
- to cover "win32-g++-cross" as well.
- * JavaScriptCore.pro:
- 2010-06-16 Darin Adler <darin@apple.com>
- Reviewed by David Levin.
- Deploy adoptRef in more places, including all HTML and MathML elements
- https://bugs.webkit.org/show_bug.cgi?id=39941
- * wtf/ThreadSafeShared.h: Made the constructor protected and removed the
- unneeded support for initial reference counts other than 1.
- 2010-06-16 Peter Varga <pvarga@inf.u-szeged.hu>
- Reviewed by Geoffrey Garen.
- Store matchBegin directly in the array of output instead of the stack.
- https://bugs.webkit.org/show_bug.cgi?id=38988
- * yarr/RegexJIT.cpp:
- (JSC::Yarr::RegexGenerator::generateDisjunction):
- (JSC::Yarr::RegexGenerator::generate):
- 2010-06-15 Anders Carlsson <andersca@apple.com>
- Reviewed by Sam Weinig.
- Make JavaScriptCore build with clang++.
- * jit/JITInlineMethods.h:
- (JSC::JIT::emitPutVirtualRegister):
- Explicitly cast to an int.
- * yarr/RegexCompiler.cpp:
- (JSC::Yarr::compileRegex):
- Return 0 instead of false.
- 2010-06-15 Adam Roben <aroben@apple.com>
- Make WebCore's and JavaScriptCore's DerivedSources available for debugging in production builds
- Fixes <http://webkit.org/b/40626> <rdar://problem/8094205>.
- Reviewed by Sam Weinig.
- * JavaScriptCore.vcproj/JavaScriptCore.make: Copy the contents of
- JavaScriptCore's DerivedSources directory to
- AppleInternal/Sources/JavaScriptCore.
- 2010-06-15 Gabor Loki <loki@webkit.org>
- Rubber-stamped by Eric Seidel.
- Fix invalid access to non-static data member warning in JITPropertyAccess32_64 on ARM
- https://bugs.webkit.org/show_bug.cgi?id=40423
- Using OBJECT_OFFSETOF macro instead of objectof to bypass access to
- non-static data member warning.
- * jit/JITPropertyAccess32_64.cpp:
- (JSC::JIT::privateCompilePutByIdTransition):
- 2010-06-11 Eric Seidel <eric@webkit.org>
- Reviewed by Adam Barth.
- Rename the rest of the *Tokenizer classes to *DocumentParser
- https://bugs.webkit.org/show_bug.cgi?id=40507
- * wtf/Platform.h:
- - fixed a comment to match new names.
- 2010-06-11 Jedrzej Nowacki <jedrzej.nowacki@nokia.com>
- Reviewed by Simon Hausmann.
- [Qt] Explicit conversions from QtScript types to JSC opaque types were removed.
- https://bugs.webkit.org/show_bug.cgi?id=40412
- Conversion between a JSC C types and a QtScript private types, takes
- main part of the source code. In most cases a mapping between the types
- is one to one. New cast operators were added to simplify the code.
- The QScriptValuePrivate could be casted to the JSValueRef and the JSObjectRef.
- The QScriptEnginePrivate could be casted to the JSGlobalContext.
- The QScriptProgramPrivate could be casted to the JSStringRef.
- * qt/api/qscriptengine_p.cpp:
- (QScriptEnginePrivate::evaluate):
- (QScriptEnginePrivate::newObject):
- (QScriptEnginePrivate::globalObject):
- * qt/api/qscriptengine_p.h:
- (QScriptEnginePrivate::operator JSGlobalContextRef):
- * qt/api/qscriptprogram_p.h:
- (QScriptProgramPrivate::operator JSStringRef):
- * qt/api/qscriptsyntaxcheckresult.cpp:
- (QScriptSyntaxCheckResultPrivate::~QScriptSyntaxCheckResultPrivate):
- (QScriptSyntaxCheckResultPrivate::errorMessage):
- (QScriptSyntaxCheckResultPrivate::errorLineNumber):
- * qt/api/qscriptvalue_p.h:
- (QScriptValuePrivate::~QScriptValuePrivate):
- (QScriptValuePrivate::QScriptValuePrivate):
- (QScriptValuePrivate::isBool):
- (QScriptValuePrivate::isNumber):
- (QScriptValuePrivate::isNull):
- (QScriptValuePrivate::isString):
- (QScriptValuePrivate::isUndefined):
- (QScriptValuePrivate::isFunction):
- (QScriptValuePrivate::toString):
- (QScriptValuePrivate::toNumber):
- (QScriptValuePrivate::toBool):
- (QScriptValuePrivate::toObject):
- (QScriptValuePrivate::equals):
- (QScriptValuePrivate::strictlyEquals):
- (QScriptValuePrivate::instanceOf):
- (QScriptValuePrivate::call):
- (QScriptValuePrivate::operator JSValueRef):
- (QScriptValuePrivate::operator JSObjectRef):
- (QScriptValuePrivate::setValue):
- (QScriptValuePrivate::inherits):
- (QScriptValuePrivate::refinedJSValue):
- 2010-05-31 Jocelyn Turcotte <jocelyn.turcotte@nokia.com>
- Reviewed by Simon Hausmann.
- [Qt] Implement the simple text code path.
- https://bugs.webkit.org/show_bug.cgi?id=40077
- Remove the FONT_FAST_PATH macro and use the Qt's
- fast text implementation instead of the one of WebKit.
- The Qt::TextBypassShaping flag is used to tell Qt to
- only use the glyph advances.
- Qt 4.7 is needed to get this flag thus the complex path is always
- used if QtWebKit is compiled against an earlier version.
- Contrary to the WebKit's implementation, the complex code path
- is taken if the text is RightToLeft, justified or is formatted
- with non-zero letter or word spacing.
- * wtf/Platform.h:
- 2010-06-11 Luiz Agostini <luiz.agostini@openbossa.org>
- Reviewed by Kenneth Rohde Christiansen.
- add codePointCompare to JavaScriptCore.exp
- https://bugs.webkit.org/show_bug.cgi?id=40426
- * JavaScriptCore.exp:
- 2010-06-10 Oliver Hunt <oliver@apple.com>
- Reviewed by Maciej Stachowiak.
- Math Javascript Bug on Safari 5 (webkit 533.16) under "32bit" mode
- https://bugs.webkit.org/show_bug.cgi?id=40367
- If we're in the slow case of right shift we must write the type tag as
- the only reason we hit this code path is because we know we're working
- with a double. eg. we are guaranteed that the tag cannot be reused.
- * jit/JITArithmetic32_64.cpp:
- (JSC::JIT::emitRightShiftSlowCase):
- 2010-06-10 Kwang Yul Seo <skyul@company100.net>
- Reviewed by Eric Seidel.
- Remove weakRandomNumber
- https://bugs.webkit.org/show_bug.cgi?id=40291
- weakRandomNumber is used nowhere. Currently, WeakRandom is used instead.
- * wtf/RandomNumber.cpp:
- * wtf/RandomNumber.h:
- 2010-06-09 Alexey Proskuryakov <ap@apple.com>
- Reviewed by Brady Eidson.
- Export StringImpl::ascii(). It might be not very useful, but it's a public function.
- * JavaScriptCore.exp:
- 2010-06-09 Leandro Pereira <leandro@profusion.mobi>
- Reviewed by Adam Treat.
- [EFL] Allow building core libraries as shared objects to speed up
- linking time on machines with small amounts of memory.
- http://webkit.org/b/39899
- * CMakeLists.txt: If building with shared core, install the lib.
- * jsc/CMakeListsEfl.txt: Needs Glib and Ecore to link dynamically.
- * wtf/CMakeLists.txt: If building with shared core, install the lib.
- 2010-06-09 Gabor Loki <loki@webkit.org>
- Reviewed by David Levin.
- Remove some unused variable warnings from JITOpcodes
- https://bugs.webkit.org/show_bug.cgi?id=40298
- * jit/JITOpcodes.cpp:
- (JSC::JIT::privateCompileCTINativeCall):
- * jit/JITOpcodes32_64.cpp:
- (JSC::JIT::privateCompileCTINativeCall):
- 2010-05-18 Yuzo Fujishima <yuzo@google.com>
- Reviewed by Shinichiro Hamaji.
- Fix for Bug 34529 - [CSSOM] issues with cssText and selectorText
- Add U16_LENGTH that is needed to implement CSS character serialization.
- https://bugs.webkit.org/show_bug.cgi?id=34529
- * wtf/unicode/qt4/UnicodeQt4.h:
- * wtf/unicode/wince/UnicodeWince.h:
- 2010-06-08 Sheriff Bot <webkit.review.bot@gmail.com>
- Unreviewed, rolling out r60830.
- http://trac.webkit.org/changeset/60830
- https://bugs.webkit.org/show_bug.cgi?id=40305
- Broke the Windows build (Requested by abarth on #webkit).
- * JavaScriptCore.vcproj/WTF/WTF.vcproj:
- * wtf/OwnPtrCommon.h:
- * wtf/brew/OwnPtrBrew.h: Removed.
- * wtf/win/OwnPtrWin.h: Removed.
- 2010-06-08 MORITA Hajime <morrita@google.com>
- Unreviewed. An attempt to fix test break.
- * Configurations/FeatureDefines.xcconfig:
- 2010-06-08 Kwang Yul Seo <skyul@company100.net>
- Reviewed by Adam Barth.
- Change OwnPtrCommon to include platform-specific headers
- https://bugs.webkit.org/show_bug.cgi?id=40279
- Adding new type to OwnPtrCommon needlessly causes all ports to do full rebuilds.
- Change OwnPtrCommon to include platform-specific headers to avoid all ports rebuilds.
- * JavaScriptCore.vcproj/WTF/WTF.vcproj:
- * wtf/OwnPtrCommon.h:
- * wtf/brew/OwnPtrBrew.h: Added.
- * wtf/win/OwnPtrWin.h: Added.
- 2010-06-07 MORITA Hajime <morrita@google.com>
-
- Reviewed by Kent Tamura.
- https://bugs.webkit.org/show_bug.cgi?id=40219
- [Mac] ENABLE_METER_TAG should be enabled
-
- Added ENABLE_METER_TAG.
- * Configurations/FeatureDefines.xcconfig:
- 2010-06-07 Kwang Yul Seo <skyul@company100.net>
- Reviewed by Eric Seidel.
- [BREWMP] Add more types to OwnPtr
- https://bugs.webkit.org/show_bug.cgi?id=39667
- Add ISSL and ISocket to the list of OwnPtr-ed type.
- * wtf/OwnPtrCommon.h:
- * wtf/brew/OwnPtrBrew.cpp:
- (WTF::deleteOwnedPtr):
- 2010-06-07 Benjamin Poulain <benjamin.poulain@nokia.com>
- Reviewed by Simon Hausmann.
- [Qt] Crash when compiling on Snow Leopard and running on Leopard
- https://bugs.webkit.org/show_bug.cgi?id=31403
- Disable the use of pthread_setname_np and other symbols
- when targetting Leopard.
- Use the defines TARGETING_XX instead of BUILDING_ON_XX
- for features that cannot be used before Snow Leopard.
- * wtf/Platform.h:
- 2010-06-07 Gabor Loki <loki@webkit.org>
- Reviewed by NOBODY (JSVALUE32_64 build fix).
- * jit/JITOpcodes32_64.cpp:
- (JSC::JIT::privateCompileCTINativeCall):
- 2010-06-06 Gavin Barraclough <barraclough@apple.com>
- Reviewed by NOBODY (windows build fix pt 2).
- * JavaScriptCore.exp:
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
- 2010-06-06 Gavin Barraclough <barraclough@apple.com>
- Reviewed by NOBODY (windows build fix pt 1).
- * JavaScriptCore.exp:
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
- 2010-06-06 Gavin Barraclough <barraclough@apple.com>
- Reviewed by Sam Weinig.
- Bug 40214 - Clean up error construction / throwing in JSC.
-
- The one egregious insanity here is that creating an error requires
- a VM-entry-esqe-host call (the string argument is wrapped as a JS
- object & pushed on the RegisterFile, then unwrapped back to a
- UString). Changing this also means you only require a global
- object, not an ExecState, to create an error.
- The methods to create error objects are also parameterized
- requiring a switch on the type, which can be made cleaner and
- faster by moving to a separate method per error type. Code to add
- divot information to error had been duplicated, and is coalesced
- back into a single function.
- Convenience methods added to create & throw type & syntax error
- with a default error message, since this is a common case.
- Also, errors are currently thrown either using
- "throwError(exec, error)" or "exec->setException(error)" - unify
- on the former, since this is more commonly used. Add
- "throwVMError(exec, error)" equivalents, as a convenience for
- cases where the result was being wrapped in "JSValue::encode(...)".
- * API/JSCallbackConstructor.cpp:
- (JSC::constructJSCallback):
- * API/JSCallbackFunction.cpp:
- (JSC::JSCallbackFunction::call):
- * API/JSCallbackObjectFunctions.h:
- (JSC::::getOwnPropertySlot):
- (JSC::::put):
- (JSC::::deleteProperty):
- (JSC::::construct):
- (JSC::::hasInstance):
- (JSC::::call):
- (JSC::::toNumber):
- (JSC::::toString):
- (JSC::::staticValueGetter):
- (JSC::::staticFunctionGetter):
- (JSC::::callbackGetter):
- * API/JSObjectRef.cpp:
- (JSObjectMakeError):
- * JavaScriptCore.exp:
- * bytecompiler/BytecodeGenerator.cpp:
- (JSC::BytecodeGenerator::emitNewError):
- (JSC::BytecodeGenerator::emitThrowExpressionTooDeepException):
- * bytecompiler/BytecodeGenerator.h:
- * bytecompiler/NodesCodegen.cpp:
- (JSC::ThrowableExpressionData::emitThrowError):
- (JSC::RegExpNode::emitBytecode):
- (JSC::PostfixErrorNode::emitBytecode):
- (JSC::PrefixErrorNode::emitBytecode):
- (JSC::AssignErrorNode::emitBytecode):
- (JSC::ForInNode::emitBytecode):
- (JSC::ContinueNode::emitBytecode):
- (JSC::BreakNode::emitBytecode):
- (JSC::ReturnNode::emitBytecode):
- (JSC::LabelNode::emitBytecode):
- * interpreter/CallFrame.h:
- * interpreter/Interpreter.cpp:
- (JSC::Interpreter::throwException):
- (JSC::Interpreter::privateExecute):
- * jit/JITStubs.cpp:
- (JSC::DEFINE_STUB_FUNCTION):
- * jsc.cpp:
- (functionRun):
- (functionLoad):
- (functionCheckSyntax):
- * parser/Nodes.h:
- * runtime/ArrayConstructor.cpp:
- (JSC::constructArrayWithSizeQuirk):
- * runtime/ArrayPrototype.cpp:
- (JSC::arrayProtoFuncToString):
- (JSC::arrayProtoFuncToLocaleString):
- (JSC::arrayProtoFuncJoin):
- (JSC::arrayProtoFuncFilter):
- (JSC::arrayProtoFuncMap):
- (JSC::arrayProtoFuncEvery):
- (JSC::arrayProtoFuncForEach):
- (JSC::arrayProtoFuncSome):
- (JSC::arrayProtoFuncReduce):
- (JSC::arrayProtoFuncReduceRight):
- * runtime/BooleanPrototype.cpp:
- (JSC::booleanProtoFuncToString):
- (JSC::booleanProtoFuncValueOf):
- * runtime/DatePrototype.cpp:
- (JSC::dateProtoFuncToString):
- (JSC::dateProtoFuncToUTCString):
- (JSC::dateProtoFuncToISOString):
- (JSC::dateProtoFuncToDateString):
- (JSC::dateProtoFuncToTimeString):
- (JSC::dateProtoFuncToLocaleString):
- (JSC::dateProtoFuncToLocaleDateString):
- (JSC::dateProtoFuncToLocaleTimeString):
- (JSC::dateProtoFuncGetTime):
- (JSC::dateProtoFuncGetFullYear):
- (JSC::dateProtoFuncGetUTCFullYear):
- (JSC::dateProtoFuncToGMTString):
- (JSC::dateProtoFuncGetMonth):
- (JSC::dateProtoFuncGetUTCMonth):
- (JSC::dateProtoFuncGetDate):
- (JSC::dateProtoFuncGetUTCDate):
- (JSC::dateProtoFuncGetDay):
- (JSC::dateProtoFuncGetUTCDay):
- (JSC::dateProtoFuncGetHours):
- (JSC::dateProtoFuncGetUTCHours):
- (JSC::dateProtoFuncGetMinutes):
- (JSC::dateProtoFuncGetUTCMinutes):
- (JSC::dateProtoFuncGetSeconds):
- (JSC::dateProtoFuncGetUTCSeconds):
- (JSC::dateProtoFuncGetMilliSeconds):
- (JSC::dateProtoFuncGetUTCMilliseconds):
- (JSC::dateProtoFuncGetTimezoneOffset):
- (JSC::dateProtoFuncSetTime):
- (JSC::setNewValueFromTimeArgs):
- (JSC::setNewValueFromDateArgs):
- (JSC::dateProtoFuncSetMilliSeconds):
- (JSC::dateProtoFuncSetUTCMilliseconds):
- (JSC::dateProtoFuncSetSeconds):
- (JSC::dateProtoFuncSetUTCSeconds):
- (JSC::dateProtoFuncSetMinutes):
- (JSC::dateProtoFuncSetUTCMinutes):
- (JSC::dateProtoFuncSetHours):
- (JSC::dateProtoFuncSetUTCHours):
- (JSC::dateProtoFuncSetDate):
- (JSC::dateProtoFuncSetUTCDate):
- (JSC::dateProtoFuncSetMonth):
- (JSC::dateProtoFuncSetUTCMonth):
- (JSC::dateProtoFuncSetFullYear):
- (JSC::dateProtoFuncSetUTCFullYear):
- (JSC::dateProtoFuncSetYear):
- (JSC::dateProtoFuncGetYear):
- (JSC::dateProtoFuncToJSON):
- * runtime/Error.cpp:
- (JSC::createError):
- (JSC::createEvalError):
- (JSC::createRangeError):
- (JSC::createReferenceError):
- (JSC::createSyntaxError):
- (JSC::createTypeError):
- (JSC::createURIError):
- (JSC::addErrorSourceInfo):
- (JSC::addErrorDivotInfo):
- (JSC::addErrorInfo):
- (JSC::hasErrorInfo):
- (JSC::throwError):
- (JSC::throwTypeError):
- (JSC::throwSyntaxError):
- * runtime/Error.h:
- (JSC::throwVMError):
- (JSC::throwVMTypeError):
- * runtime/ErrorConstructor.cpp:
- (JSC::constructWithErrorConstructor):
- (JSC::callErrorConstructor):
- * runtime/ErrorConstructor.h:
- * runtime/ErrorInstance.cpp:
- (JSC::ErrorInstance::ErrorInstance):
- (JSC::ErrorInstance::create):
- * runtime/ErrorInstance.h:
- * runtime/ErrorPrototype.cpp:
- (JSC::ErrorPrototype::ErrorPrototype):
- * runtime/ExceptionHelpers.cpp:
- (JSC::createStackOverflowError):
- (JSC::createUndefinedVariableError):
- (JSC::createInvalidParamError):
- (JSC::createNotAConstructorError):
- (JSC::createNotAFunctionError):
- (JSC::createNotAnObjectError):
- (JSC::throwOutOfMemoryError):
- * runtime/ExceptionHelpers.h:
- * runtime/Executable.cpp:
- (JSC::EvalExecutable::compile):
- (JSC::ProgramExecutable::checkSyntax):
- (JSC::ProgramExecutable::compile):
- * runtime/FunctionConstructor.cpp:
- (JSC::constructFunction):
- * runtime/FunctionPrototype.cpp:
- (JSC::functionProtoFuncToString):
- (JSC::functionProtoFuncApply):
- (JSC::functionProtoFuncCall):
- * runtime/Identifier.cpp:
- (JSC::Identifier::from):
- * runtime/Identifier.h:
- * runtime/JSArray.cpp:
- (JSC::JSArray::put):
- * runtime/JSFunction.cpp:
- (JSC::callHostFunctionAsConstructor):
- * runtime/JSGlobalObjectFunctions.cpp:
- (JSC::encode):
- (JSC::decode):
- (JSC::globalFuncEval):
- * runtime/JSONObject.cpp:
- (JSC::Stringifier::appendStringifiedValue):
- (JSC::Walker::walk):
- (JSC::JSONProtoFuncParse):
- (JSC::JSONProtoFuncStringify):
- * runtime/JSObject.cpp:
- (JSC::throwSetterError):
- (JSC::JSObject::put):
- (JSC::JSObject::putWithAttributes):
- (JSC::JSObject::defaultValue):
- (JSC::JSObject::hasInstance):
- (JSC::JSObject::defineOwnProperty):
- * runtime/JSObject.h:
- * runtime/JSValue.cpp:
- (JSC::JSValue::toObjectSlowCase):
- (JSC::JSValue::synthesizeObject):
- (JSC::JSValue::synthesizePrototype):
- * runtime/NativeErrorConstructor.cpp:
- (JSC::constructWithNativeErrorConstructor):
- (JSC::callNativeErrorConstructor):
- * runtime/NativeErrorConstructor.h:
- * runtime/NumberPrototype.cpp:
- (JSC::numberProtoFuncToString):
- (JSC::numberProtoFuncToLocaleString):
- (JSC::numberProtoFuncValueOf):
- (JSC::numberProtoFuncToFixed):
- (JSC::numberProtoFuncToExponential):
- (JSC::numberProtoFuncToPrecision):
- * runtime/ObjectConstructor.cpp:
- (JSC::objectConstructorGetPrototypeOf):
- (JSC::objectConstructorGetOwnPropertyDescriptor):
- (JSC::objectConstructorGetOwnPropertyNames):
- (JSC::objectConstructorKeys):
- (JSC::toPropertyDescriptor):
- (JSC::objectConstructorDefineProperty):
- (JSC::objectConstructorDefineProperties):
- (JSC::objectConstructorCreate):
- * runtime/ObjectPrototype.cpp:
- (JSC::objectProtoFuncDefineGetter):
- (JSC::objectProtoFuncDefineSetter):
- * runtime/RegExpConstructor.cpp:
- (JSC::constructRegExp):
- * runtime/RegExpObject.cpp:
- (JSC::RegExpObject::match):
- * runtime/RegExpPrototype.cpp:
- (JSC::regExpProtoFuncTest):
- (JSC::regExpProtoFuncExec):
- (JSC::regExpProtoFuncCompile):
- (JSC::regExpProtoFuncToString):
- * runtime/StringPrototype.cpp:
- (JSC::stringProtoFuncToString):
- 2010-06-05 Kwang Yul Seo <skyul@company100.net>
- Reviewed by Eric Seidel.
- [BREWMP] Add PLATFORM(BREWMP) guard for using std::xxx
- https://bugs.webkit.org/show_bug.cgi?id=39710
- Build fix for BREW MP.
- * wtf/MathExtras.h:
- 2010-06-04 Adam Barth <abarth@webkit.org>
- Reviewed by Darin Adler.
- HTML5 parser should be within 1% of old parser performance
- https://bugs.webkit.org/show_bug.cgi?id=40172
- Fix cast in this operator= to allow for assignment between vectors with
- different inline capacities (as clearly intended by its author).
- * wtf/Vector.h:
- (WTF::::operator):
- 2010-06-04 Jedrzej Nowacki <jedrzej.nowacki@nokia.com>
- Reviewed by Kenneth Rohde Christiansen.
- New QtScript API; QScriptValue::instanceOf.
- New function create an easy way to check value's prototype hierarchy.
- [Qt] QScriptValue should have an instanceOf method
- https://bugs.webkit.org/show_bug.cgi?id=40120
- * qt/api/qscriptvalue.cpp:
- (QScriptValue::instanceOf):
- * qt/api/qscriptvalue.h:
- * qt/api/qscriptvalue_p.h:
- (QScriptValuePrivate::instanceOf):
- * qt/tests/qscriptvalue/tst_qscriptvalue.h:
- * qt/tests/qscriptvalue/tst_qscriptvalue_generated_comparison.cpp:
- (tst_QScriptValue::instanceOf_initData):
- (tst_QScriptValue::instanceOf_makeData):
- (tst_QScriptValue::instanceOf_test):
- 2010-06-04 Gavin Barraclough <barraclough@apple.com>
- Reviewed by NOBODY (interpreter build fix).
- * interpreter/Interpreter.cpp:
- (JSC::Interpreter::privateExecute):
- 2010-06-04 Mark Rowe <mrowe@apple.com>
- Silence some warnings seen on the build bot.
- * JavaScriptCore.JSVALUE32_64only.exp: Add a trailing newline.
- * JavaScriptCore.JSVALUE32only.exp: Ditto.
- * JavaScriptCore.JSVALUE64only.exp: Ditto.
- * JavaScriptCore.xcodeproj/project.pbxproj: Remove the .exp files from all targets so that Xcode doesn't
- complain about not knowing how to compile them.
- 2010-06-04 Gavin Barraclough <barraclough@apple.com>
- Reviewed by Oliver Hunt.
- Bug 40187 - Change function signature of NativeConstructor to match NativeFunction
- Mostly for consistency, but constructor & args arguments are redundant,
- and this will help if we wish to be able to JIT calls to more constructors.
- * API/JSCallbackConstructor.cpp:
- (JSC::constructJSCallback):
- * API/JSCallbackObject.h:
- * API/JSCallbackObjectFunctions.h:
- (JSC::::construct):
- * interpreter/Interpreter.cpp:
- (JSC::Interpreter::executeConstruct):
- * interpreter/Interpreter.h:
- * jit/JITStubs.cpp:
- (JSC::DEFINE_STUB_FUNCTION):
- * runtime/ArrayConstructor.cpp:
- (JSC::constructWithArrayConstructor):
- * runtime/BooleanConstructor.cpp:
- (JSC::constructWithBooleanConstructor):
- * runtime/ConstructData.cpp:
- (JSC::construct):
- * runtime/ConstructData.h:
- * runtime/DateConstructor.cpp:
- (JSC::constructWithDateConstructor):
- * runtime/Error.cpp:
- (JSC::constructNativeError):
- (JSC::Error::create):
- * runtime/ErrorConstructor.cpp:
- (JSC::constructWithErrorConstructor):
- * runtime/FunctionConstructor.cpp:
- (JSC::constructWithFunctionConstructor):
- * runtime/NativeErrorConstructor.cpp:
- (JSC::constructWithNativeErrorConstructor):
- * runtime/NativeErrorConstructor.h:
- (JSC::NativeErrorConstructor::errorStructure):
- * runtime/NumberConstructor.cpp:
- (JSC::constructWithNumberConstructor):
- * runtime/ObjectConstructor.cpp:
- (JSC::constructWithObjectConstructor):
- * runtime/RegExpConstructor.cpp:
- (JSC::constructWithRegExpConstructor):
- * runtime/StringConstructor.cpp:
- (JSC::constructWithStringConstructor):
- 2010-06-04 Tony Gentilcore <tonyg@chromium.org>
- Reviewed by Adam Barth.
- Add a takeFirst() method to Deque and use it where appropriate.
- https://bugs.webkit.org/show_bug.cgi?id=40089
- * wtf/Deque.h:
- (WTF::::takeFirst):
- * wtf/MainThread.cpp:
- (WTF::dispatchFunctionsFromMainThread):
- * wtf/MessageQueue.h:
- (WTF::::tryGetMessage):
- 2010-06-04 Jedrzej Nowacki <jedrzej.nowacki@nokia.com>
- Reviewed by Kenneth Rohde Christiansen.
- Remove a QEXPECT_FAIL flag from an autotest.
- Test tst_QScriptEngine::globalObject pass after 36600 bug
- fix have been applied.
- [Qt] Expected fail in the tst_QScriptEngine::globalObject should be removed.
- https://bugs.webkit.org/show_bug.cgi?id=40114
- * qt/tests/qscriptengine/tst_qscriptengine.cpp:
- (tst_QScriptEngine::globalObject):
- 2010-06-04 Jedrzej Nowacki <jedrzej.nowacki@nokia.com>
- Reviewed by Kenneth Rohde Christiansen.
- Fix QScriptValue::equals.
- Handling for a few edge cases were added. Now comparison between
- NaN, an invalid objects should works as supposed.
- [Qt] QScriptValue::equals problems
- https://bugs.webkit.org/show_bug.cgi?id=40110
- * qt/api/qscriptvalue.cpp:
- (QScriptValue::equals):
- * qt/api/qscriptvalue_p.h:
- (QScriptValuePrivate::equals):
- * qt/tests/qscriptvalue/tst_qscriptvalue.h:
- * qt/tests/qscriptvalue/tst_qscriptvalue_generated_comparison.cpp:
- (tst_QScriptValue::equals_initData):
- (tst_QScriptValue::equals_makeData):
- (tst_QScriptValue::equals_test):
- 2010-06-03 Jedrzej Nowacki <jedrzej.nowacki@nokia.com>
- Reviewed by Kenneth Rohde Christiansen.
- New states in QScriptValuePrivate.
- The CSpecial state was divided into CNull and CUndefined. It simplify
- the QScriptValue code by avoiding a few "cast" and "if".
- Moreover the MSVS compiler didn't like casting between a double and an
- enum which is avoided now.
- [Qt] The QScriptValuePrivate::CSpecial is too generic.
- https://bugs.webkit.org/show_bug.cgi?id=40067
- * qt/api/qscriptvalue_p.h:
- (QScriptValuePrivate::):
- (QScriptValuePrivate::QScriptValuePrivate):
- (QScriptValuePrivate::isNull):
- (QScriptValuePrivate::isUndefined):
- (QScriptValuePrivate::toString):
- (QScriptValuePrivate::toNumber):
- (QScriptValuePrivate::toBool):
- (QScriptValuePrivate::toObject):
- (QScriptValuePrivate::assignEngine):
- (QScriptValuePrivate::isNumberBased):
- 2010-06-03 Gavin Barraclough <barraclough@apple.com>
- Reviewed by NOBODY (Qt build fix).
- * wtf/Platform.h:
- 2010-06-03 Gavin Barraclough <barraclough@apple.com>
- Reviewed by Mark Rowe.
- Bug 40150 - ENABLE_JIT_OPTIMIZE_NATIVE_CALL on all x86/x86_64 platforms
- This was fixed in bug #40094.
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
- * wtf/Platform.h:
- 2010-06-03 Gavin Barraclough <barraclough@apple.com>
- Reviewed by NOBODY (Interpreter build fix).
- * JavaScriptCore.JSVALUE32_64only.exp:
- * JavaScriptCore.JSVALUE32only.exp:
- * JavaScriptCore.JSVALUE64only.exp:
- * interpreter/Interpreter.cpp:
- (JSC::Interpreter::privateExecute):
- 2010-06-03 Gavin Barraclough <barraclough@apple.com>
- Reviewed by NOBODY (windows build fix II).
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
- 2010-06-03 Gavin Barraclough <barraclough@apple.com>
- Reviewed by NOBODY (windows build fix).
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
- 2010-06-02 Gavin Barraclough <barraclough@apple.com>
- Reviewed by Oliver Hunt.
- Bug 40094 - The return type of NativeFunction should be EncodedJSValue
- On Windows & Linux, using JSVALUE32_64, EncodedJSValue is returned in registers, but JSValue is not.
- * API/JSCallbackFunction.cpp:
- (JSC::JSCallbackFunction::call):
- * API/JSCallbackFunction.h:
- * API/JSCallbackObject.h:
- * API/JSCallbackObjectFunctions.h:
- (JSC::::call):
- * JavaScriptCore.exp:
- * interpreter/Interpreter.cpp:
- (JSC::Interpreter::executeCall):
- * jit/JITStubs.cpp:
- (JSC::DEFINE_STUB_FUNCTION):
- * jit/JITStubs.h:
- * jsc.cpp:
- (functionPrint):
- (functionDebug):
- (functionGC):
- (functionVersion):
- (functionRun):
- (functionLoad):
- (functionCheckSyntax):
- (functionSetSamplingFlags):
- (functionClearSamplingFlags):
- (functionReadline):
- (functionQuit):
- * runtime/ArrayConstructor.cpp:
- (JSC::callArrayConstructor):
- (JSC::arrayConstructorIsArray):
- * runtime/ArrayPrototype.cpp:
- (JSC::arrayProtoFuncToString):
- (JSC::arrayProtoFuncToLocaleString):
- (JSC::arrayProtoFuncJoin):
- (JSC::arrayProtoFuncConcat):
- (JSC::arrayProtoFuncPop):
- (JSC::arrayProtoFuncPush):
- (JSC::arrayProtoFuncReverse):
- (JSC::arrayProtoFuncShift):
- (JSC::arrayProtoFuncSlice):
- (JSC::arrayProtoFuncSort):
- (JSC::arrayProtoFuncSplice):
- (JSC::arrayProtoFuncUnShift):
- (JSC::arrayProtoFuncFilter):
- (JSC::arrayProtoFuncMap):
- (JSC::arrayProtoFuncEvery):
- (JSC::arrayProtoFuncForEach):
- (JSC::arrayProtoFuncSome):
- (JSC::arrayProtoFuncReduce):
- (JSC::arrayProtoFuncReduceRight):
- (JSC::arrayProtoFuncIndexOf):
- (JSC::arrayProtoFuncLastIndexOf):
- * runtime/BooleanConstructor.cpp:
- (JSC::callBooleanConstructor):
- * runtime/BooleanPrototype.cpp:
- (JSC::booleanProtoFuncToString):
- (JSC::booleanProtoFuncValueOf):
- * runtime/CallData.h:
- * runtime/DateConstructor.cpp:
- (JSC::callDate):
- (JSC::dateParse):
- (JSC::dateNow):
- (JSC::dateUTC):
- * runtime/DatePrototype.cpp:
- (JSC::dateProtoFuncToString):
- (JSC::dateProtoFuncToUTCString):
- (JSC::dateProtoFuncToISOString):
- (JSC::dateProtoFuncToDateString):
- (JSC::dateProtoFuncToTimeString):
- (JSC::dateProtoFuncToLocaleString):
- (JSC::dateProtoFuncToLocaleDateString):
- (JSC::dateProtoFuncToLocaleTimeString):
- (JSC::dateProtoFuncGetTime):
- (JSC::dateProtoFuncGetFullYear):
- (JSC::dateProtoFuncGetUTCFullYear):
- (JSC::dateProtoFuncToGMTString):
- (JSC::dateProtoFuncGetMonth):
- (JSC::dateProtoFuncGetUTCMonth):
- (JSC::dateProtoFuncGetDate):
- (JSC::dateProtoFuncGetUTCDate):
- (JSC::dateProtoFuncGetDay):
- (JSC::dateProtoFuncGetUTCDay):
- (JSC::dateProtoFuncGetHours):
- (JSC::dateProtoFuncGetUTCHours):
- (JSC::dateProtoFuncGetMinutes):
- (JSC::dateProtoFuncGetUTCMinutes):
- (JSC::dateProtoFuncGetSeconds):
- (JSC::dateProtoFuncGetUTCSeconds):
- (JSC::dateProtoFuncGetMilliSeconds):
- (JSC::dateProtoFuncGetUTCMilliseconds):
- (JSC::dateProtoFuncGetTimezoneOffset):
- (JSC::dateProtoFuncSetTime):
- (JSC::dateProtoFuncSetMilliSeconds):
- (JSC::dateProtoFuncSetUTCMilliseconds):
- (JSC::dateProtoFuncSetSeconds):
- (JSC::dateProtoFuncSetUTCSeconds):
- (JSC::dateProtoFuncSetMinutes):
- (JSC::dateProtoFuncSetUTCMinutes):
- (JSC::dateProtoFuncSetHours):
- (JSC::dateProtoFuncSetUTCHours):
- (JSC::dateProtoFuncSetDate):
- (JSC::dateProtoFuncSetUTCDate):
- (JSC::dateProtoFuncSetMonth):
- (JSC::dateProtoFuncSetUTCMonth):
- (JSC::dateProtoFuncSetFullYear):
- (JSC::dateProtoFuncSetUTCFullYear):
- (JSC::dateProtoFuncSetYear):
- (JSC::dateProtoFuncGetYear):
- (JSC::dateProtoFuncToJSON):
- * runtime/ErrorConstructor.cpp:
- (JSC::callErrorConstructor):
- * runtime/ErrorPrototype.cpp:
- (JSC::errorProtoFuncToString):
- * runtime/FunctionConstructor.cpp:
- (JSC::callFunctionConstructor):
- * runtime/FunctionPrototype.cpp:
- (JSC::callFunctionPrototype):
- (JSC::functionProtoFuncToString):
- (JSC::functionProtoFuncApply):
- (JSC::functionProtoFuncCall):
- * runtime/JSCell.h:
- (JSC::getCallData):
- (JSC::getConstructData):
- * runtime/JSFunction.cpp:
- (JSC::callHostFunctionAsConstructor):
- * runtime/JSFunction.h:
- * runtime/JSGlobalObjectFunctions.cpp:
- (JSC::globalFuncEval):
- (JSC::globalFuncParseInt):
- (JSC::globalFuncParseFloat):
- (JSC::globalFuncIsNaN):
- (JSC::globalFuncIsFinite):
- (JSC::globalFuncDecodeURI):
- (JSC::globalFuncDecodeURIComponent):
- (JSC::globalFuncEncodeURI):
- (JSC::globalFuncEncodeURIComponent):
- (JSC::globalFuncEscape):
- (JSC::globalFuncUnescape):
- (JSC::globalFuncJSCPrint):
- * runtime/JSGlobalObjectFunctions.h:
- * runtime/JSONObject.cpp:
- (JSC::JSONProtoFuncParse):
- (JSC::JSONProtoFuncStringify):
- * runtime/JSObject.cpp:
- (JSC::callDefaultValueFunction):
- * runtime/JSValue.h:
- * runtime/MathObject.cpp:
- (JSC::mathProtoFuncAbs):
- (JSC::mathProtoFuncACos):
- (JSC::mathProtoFuncASin):
- (JSC::mathProtoFuncATan):
- (JSC::mathProtoFuncATan2):
- (JSC::mathProtoFuncCeil):
- (JSC::mathProtoFuncCos):
- (JSC::mathProtoFuncExp):
- (JSC::mathProtoFuncFloor):
- (JSC::mathProtoFuncLog):
- (JSC::mathProtoFuncMax):
- (JSC::mathProtoFuncMin):
- (JSC::mathProtoFuncPow):
- (JSC::mathProtoFuncRandom):
- (JSC::mathProtoFuncRound):
- (JSC::mathProtoFuncSin):
- (JSC::mathProtoFuncSqrt):
- (JSC::mathProtoFuncTan):
- * runtime/NativeErrorConstructor.cpp:
- (JSC::callNativeErrorConstructor):
- * runtime/NumberConstructor.cpp:
- (JSC::callNumberConstructor):
- * runtime/NumberPrototype.cpp:
- (JSC::numberProtoFuncToString):
- (JSC::numberProtoFuncToLocaleString):
- (JSC::numberProtoFuncValueOf):
- (JSC::numberProtoFuncToFixed):
- (JSC::numberProtoFuncToExponential):
- (JSC::numberProtoFuncToPrecision):
- * runtime/ObjectConstructor.cpp:
- (JSC::callObjectConstructor):
- (JSC::objectConstructorGetPrototypeOf):
- (JSC::objectConstructorGetOwnPropertyDescriptor):
- (JSC::objectConstructorGetOwnPropertyNames):
- (JSC::objectConstructorKeys):
- (JSC::toPropertyDescriptor):
- (JSC::objectConstructorDefineProperty):
- (JSC::objectConstructorDefineProperties):
- (JSC::objectConstructorCreate):
- * runtime/ObjectPrototype.cpp:
- (JSC::objectProtoFuncValueOf):
- (JSC::objectProtoFuncHasOwnProperty):
- (JSC::objectProtoFuncIsPrototypeOf):
- (JSC::objectProtoFuncDefineGetter):
- (JSC::objectProtoFuncDefineSetter):
- (JSC::objectProtoFuncLookupGetter):
- (JSC::objectProtoFuncLookupSetter):
- (JSC::objectProtoFuncPropertyIsEnumerable):
- (JSC::objectProtoFuncToLocaleString):
- (JSC::objectProtoFuncToString):
- * runtime/ObjectPrototype.h:
- * runtime/RegExpConstructor.cpp:
- (JSC::callRegExpConstructor):
- * runtime/RegExpObject.cpp:
- (JSC::callRegExpObject):
- * runtime/RegExpPrototype.cpp:
- (JSC::regExpProtoFuncTest):
- (JSC::regExpProtoFuncExec):
- (JSC::regExpProtoFuncCompile):
- (JSC::regExpProtoFuncToString):
- * runtime/StringConstructor.cpp:
- (JSC::stringFromCharCode):
- (JSC::callStringConstructor):
- * runtime/StringPrototype.cpp:
- (JSC::stringProtoFuncReplace):
- (JSC::stringProtoFuncToString):
- (JSC::stringProtoFuncCharAt):
- (JSC::stringProtoFuncCharCodeAt):
- (JSC::stringProtoFuncConcat):
- (JSC::stringProtoFuncIndexOf):
- (JSC::stringProtoFuncLastIndexOf):
- (JSC::stringProtoFuncMatch):
- (JSC::stringProtoFuncSearch):
- (JSC::stringProtoFuncSlice):
- (JSC::stringProtoFuncSplit):
- (JSC::stringProtoFuncSubstr):
- (JSC::stringProtoFuncSubstring):
- (JSC::stringProtoFuncToLowerCase):
- (JSC::stringProtoFuncToUpperCase):
- (JSC::stringProtoFuncLocaleCompare):
- (JSC::stringProtoFuncBig):
- (JSC::stringProtoFuncSmall):
- (JSC::stringProtoFuncBlink):
- (JSC::stringProtoFuncBold):
- (JSC::stringProtoFuncFixed):
- (JSC::stringProtoFuncItalics):
- (JSC::stringProtoFuncStrike):
- (JSC::stringProtoFuncSub):
- (JSC::stringProtoFuncSup):
- (JSC::stringProtoFuncFontcolor):
- (JSC::stringProtoFuncFontsize):
- (JSC::stringProtoFuncAnchor):
- (JSC::stringProtoFuncLink):
- (JSC::stringProtoFuncTrim):
- (JSC::stringProtoFuncTrimLeft):
- (JSC::stringProtoFuncTrimRight):
- 2010-06-02 Mark Rowe <mrowe@apple.com>
- Reviewed by Gavin Barraclough.
- Add value-representation specific sections to the mac export file.
- * Configurations/JavaScriptCore.xcconfig:
- * DerivedSources.make:
- * JavaScriptCore.JSVALUE32_64only.exp: Added.
- * JavaScriptCore.JSVALUE32only.exp: Added.
- * JavaScriptCore.JSVALUE64only.exp: Added.
- * JavaScriptCore.xcodeproj/project.pbxproj:
- 2010-06-02 Mark Rowe <mrowe@apple.com>
- Reviewed by Gavin Barraclough.
- <rdar://problem/8054988> Work around an LLVM GCC code generation bug that results in crashes inside PCRE.
- * pcre/pcre_exec.cpp:
- (repeatInformationFromInstructionOffset): Change the type of instructionOffset to int. There's no good
- reason for it to be a short, and using int prevents this code from triggering the LLVM GCC bug.
- 2010-06-02 Jedrzej Nowacki <jedrzej.nowacki@nokia.com>
- Reviewed by Kenneth Rohde Christiansen.
- Fix the QScriptValue::strictlyEquals function.
- Handling for a few edge cases was added.
- New autotest that covers the QScriptValue::strictlyEquals function.
- [Qt] QScriptValue::strictlyEquals is broken
- https://bugs.webkit.org/show_bug.cgi?id=36600
- * qt/api/qscriptvalue.cpp:
- (QScriptValue::strictlyEquals):
- * qt/api/qscriptvalue_p.h:
- (QScriptValuePrivate::strictlyEquals):
- * qt/tests/qscriptvalue/qscriptvalue.pro:
- * qt/tests/qscriptvalue/tst_qscriptvalue.h:
- * qt/tests/qscriptvalue/tst_qscriptvalue_generated_comparison.cpp: Added.
- (tst_QScriptValue::strictlyEquals_initData):
- (tst_QScriptValue::strictlyEquals_makeData):
- (tst_QScriptValue::strictlyEquals_test):
- 2010-06-02 Jedrzej Nowacki <jedrzej.nowacki@nokia.com>
- Reviewed by Kenneth Rohde Christiansen.
- New function QScriptEngine::newObject.
- The function creates a object of class Object and returns it
- as a QScriptValue.
- [Qt] QScriptEngine API should contain a newObject function
- https://bugs.webkit.org/show_bug.cgi?id=39114
- * qt/api/qscriptengine.cpp:
- (QScriptEngine::newObject):
- * qt/api/qscriptengine.h:
- * qt/api/qscriptengine_p.cpp:
- (QScriptEnginePrivate::newObject):
- * qt/api/qscriptengine_p.h:
- * qt/tests/qscriptengine/tst_qscriptengine.cpp:
- (tst_QScriptEngine::newObject):
- 2010-06-02 Gabor Loki <loki@webkit.org>
- Reviewed by Gavin Barraclough.
- https://bugs.webkit.org/show_bug.cgi?id=40011
- Thumb-2 build fix: The offset parameter of ldrh should be encoded as an
- imm12 immediate constant in load16. If it is not fit in the instruction
- a temporary register has to be used.
- * assembler/MacroAssemblerARMv7.h:
- (JSC::MacroAssemblerARMv7::load16):
- 2010-06-02 Sterling Swigart <sswigart@google.com>
- Reviewed by David Levin.
- Image Resizer Patch 0: Added compilation argument to conditionally compile pending patches.
- https://bugs.webkit.org/show_bug.cgi?id=39906
- * Configurations/FeatureDefines.xcconfig:
- 2010-06-01 Gavin Barraclough <barraclough@apple.com>
- Reviewed by Sam Weinig.
- Bug 40021 - Refactor bytecode generation for calls so that register for this & args are allocated together
- This is a useful stepping stone towards reversing argument order.
- * bytecompiler/BytecodeGenerator.cpp:
- (JSC::BytecodeGenerator::BytecodeGenerator):
- (JSC::BytecodeGenerator::addParameter):
- (JSC::BytecodeGenerator::emitCall):
- (JSC::BytecodeGenerator::emitCallEval):
- (JSC::BytecodeGenerator::emitConstruct):
- * bytecompiler/BytecodeGenerator.h:
- (JSC::CallArguments::thisRegister):
- (JSC::CallArguments::argumentRegister):
- (JSC::CallArguments::callFrame):
- (JSC::CallArguments::count):
- (JSC::BytecodeGenerator::shouldEmitProfileHooks):
- * bytecompiler/NodesCodegen.cpp:
- (JSC::NewExprNode::emitBytecode):
- (JSC::CallArguments::CallArguments):
- (JSC::EvalFunctionCallNode::emitBytecode):
- (JSC::FunctionCallValueNode::emitBytecode):
- (JSC::FunctionCallResolveNode::emitBytecode):
- (JSC::FunctionCallBracketNode::emitBytecode):
- (JSC::FunctionCallDotNode::emitBytecode):
- (JSC::CallFunctionCallDotNode::emitBytecode):
- (JSC::ApplyFunctionCallDotNode::emitBytecode):
- 2010-06-01 Yong Li <yoli@rim.com>
- Reviewed by Darin Adler.
- Explicitly use PTHREAD_MUTEX_NORMAL to create pthread mutex.
- https://bugs.webkit.org/show_bug.cgi?id=39893
- * wtf/ThreadingPthreads.cpp:
- (WTF::Mutex::Mutex):
- 2010-06-01 Kwang Yul Seo <skyul@company100.net>
- Reviewed by Xan Lopez.
- [GTK] Use DEFINE_STATIC_LOCAL for threadMapMutex and threadMap
- https://bugs.webkit.org/show_bug.cgi?id=39831
- Use DEFINE_STATIC_LOCAL for static local variables.
- * wtf/gtk/ThreadingGtk.cpp:
- (WTF::threadMapMutex):
- (WTF::threadMap):
- (WTF::identifierByGthreadHandle):
- 2010-06-01 Kent Tamura <tkent@chromium.org>
- Reviewed by Shinichiro Hamaji.
- Fix style errors of dtoa
- https://bugs.webkit.org/show_bug.cgi?id=39972
- Fix all errors reported by check-webkit-style.
- * wtf/dtoa.cpp:
- * wtf/dtoa.h:
- 2010-05-30 Darin Adler <darin@apple.com>
- Reviewed by Sam Weinig.
- * wtf/OwnArrayPtr.h:
- (WTF::OwnArrayPtr::set): Fix the assertion in here to match the one in OwnPtr.
- At some point someone fixed the "asserts when assigning to 0 and the pointer is
- already 0" issue in OwnPtr but forgot to do it here.
- 2010-05-29 Geoffrey Garen <ggaren@apple.com>
- Windows build fix: Updated exported symbols.
-
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
- 2010-05-29 Geoffrey Garen <ggaren@apple.com>
- Disabled ENABLE_JIT_OPTIMIZE_NATIVE_CALL on Windows for now, until I
- can figure out why it's crashing.
- * wtf/Platform.h:
- 2010-05-29 Geoffrey Garen <ggaren@apple.com>
- Fixed Windows crash seen on buildbot.
- * jit/JITOpcodes32_64.cpp:
- (JSC::JIT::privateCompileCTINativeCall): __fastcall puts the first
- argument in ecx.
- 2010-05-28 Geoffrey Garen <ggaren@apple.com>
- Windows build fix: Updated exported symbols.
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
- 2010-05-28 Geoffrey Garen <ggaren@apple.com>
- Qt build fix: disable a little more stuff when JIT_OPTIMIZE_NATIVE_CALL
- is disabled.
- * runtime/Lookup.cpp:
- (JSC::setUpStaticFunctionSlot):
- * runtime/Lookup.h:
- * wtf/Platform.h:
- 2010-05-28 Geoffrey Garen <ggaren@apple.com>
- Windows build fix: Updated exported symbols.
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
- 2010-05-28 Geoffrey Garen <ggaren@apple.com>
- Reviewed by Sam Weinig, Gavin Barraclough, Oliver Hunt.
- Simplified the host calling convention.
-
- 22.5% speedup on 32-bit host function calls. 9.5% speedup on 64-bit host
- function calls.
-
- No change on SunSpider.
-
- All JS calls (but not constructs, yet) now go through the normal JS
- calling convention via the RegisterFile. As a result, the host calling
- convention, which used to be this
- JSValue (JSC_HOST_CALL *NativeFunction)(ExecState*, JSObject*, JSValue thisValue, const ArgList&)
-
- is now this
- JSValue (JSC_HOST_CALL *NativeFunction)(ExecState*)
-
- Callee, 'this', and argument access all hapen relative to the ExecState*,
- which is a pointer into the RegisterFile.
-
- This patch comes in two parts.
-
- PART ONE: Functional code changes.
-
- * wtf/Platform.h: Disabled optimized calls on platforms I didn't test.
- We can re-enable once we verify that host calls on these platforms are
- correct.
- * debugger/DebuggerCallFrame.cpp:
- (JSC::DebuggerCallFrame::functionName):
- (JSC::DebuggerCallFrame::calculatedFunctionName): Updated for change to
- ExecState::callee().
- (JSC::DebuggerCallFrame::thisObject): Updated for removal of ExecState::thisValue().
- * interpreter/CallFrame.cpp:
- * interpreter/CallFrame.h:
- (JSC::ExecState::callee):
- (JSC::ExecState::scopeChain):
- (JSC::ExecState::init): Changed callee() to be JSObject* instead of
- JSFunction* -- now, it might be some other callable host object.
- (JSC::ExecState::hostThisRegister):
- (JSC::ExecState::hostThisValue):
- (JSC::ExecState::argumentCount):
- (JSC::ExecState::argumentCountIncludingThis):
- (JSC::ExecState::argument):
- (JSC::ExecState::setArgumentCountIncludingThis):
- (JSC::ExecState::setCallee): Added convenient accessors for arguments
- from within a host function. Removed thisValue() because it was too
- tempting to use incorrectly, and it only had one or two clients, anyway.
- * interpreter/Interpreter.cpp:
- (JSC::Interpreter::callEval): Updated for removal of ExecState::thisValue().
- (JSC::Interpreter::throwException): Be sure to shrink the register file
- before invoking the exception handler, to reduce the chances that the
- handler will re-throw in the case of stack overflow. (Re-throwing is now
- more likely than it used to be, since standardizing the calling convention
- implicitly added stack overflow checks to some places where they used to be missing.)
- (JSC::Interpreter::execute): Clarified the scope of DynamicGlobalObjectScope.
- Updated for CallFrame::init API change.
- (JSC::Interpreter::executeCall): Clarified scope of DynamicGlobalObjectScope.
- Updated for CallFrame::init API change. Added support for calling a host
- function.
- (JSC::Interpreter::executeConstruct): Clarified scope of DynamicGlobalObjectScope.
- Updated for CallFrame::init API change.
- (JSC::Interpreter::prepareForRepeatCall): Updated for CallFrame::init API change.
- (JSC::Interpreter::privateExecute): Updated for CallFrame::init API change.
- Added some explicit JSValue(JSObject*) initialization, since relaxing
- the JSFunction* restriction on callee has made register types more ambiguous.
- Removed toThisObject() conversion, since all callees do it themselves now.
- Updated host function call for new host function signature. Updated for
- change to ExecState::argumentCount() API.
- * interpreter/Register.h:
- (JSC::Register::):
- (JSC::Register::operator=):
- (JSC::Register::function): Changed callee() to be JSObject* instead of
- JSFunction* -- now, it might be some other callable host object.
- * jit/JITOpcodes.cpp:
- (JSC::JIT::privateCompileCTINativeCall):
- * jit/JITOpcodes32_64.cpp:
- (JSC::JIT::privateCompileCTINativeCall): Deleted a bunch of code that
- set up the arguments to host functions -- all but one of the arguments
- are gone now. This is the actual optimization.
- * jit/JITStubs.cpp:
- (JSC::DEFINE_STUB_FUNCTION): Updated for ExecState and Register API
- changes noted above. Removed toThisObject() conversion, since all callees
- do it themselves now.
-
- * runtime/ArgList.h:
- (JSC::ArgList::ArgList): ArgList is getting close to unused. Added a
- temporary shim for converting from ExecState* to ArgList where it's still
- necessary.
- * runtime/Arguments.h:
- (JSC::Arguments::getArgumentsData):
- (JSC::Arguments::Arguments): Updated for ExecState and Register API
- changes noted above.
- * runtime/CallData.cpp:
- (JSC::call): Changed call always to call Interpreter::executeCall, even
- for host functions. This ensures that the normal calling convention is
- set up in the RegsiterFile when calling from C++ to host function.
- * runtime/CallData.h: Changed host function signature as described above.
- * runtime/ConstructData.cpp:
- (JSC::construct): Moved JSFunction::construct code here so I could nix
- JSFunction::call and JSFunction::call. We want a JSFunction-agnostic
- way to call and construct, so that everything works naturally for non-
- JSFunction objects.
- * runtime/JSFunction.cpp:
- (JSC::callHostFunctionAsConstructor):
- * runtime/JSFunction.h: Updated for ExecState and Register API changes
- noted above. Nixed JSFunction::call and JSFunction::construct, noted above.
-
- * runtime/JSGlobalObject.cpp:
- (JSC::JSGlobalObject::init): Ditto.
- PART TWO: Global search and replace.
-
- In the areas below, I used global search-and-replace to change
- (ExecState*, JSObject*, JSValue, const ArgList&) => (ExecState*)
- args.size() => exec->argumentCount()
- args.at(i) => exec->argument(i)
- * API/JSCallbackFunction.cpp:
- (JSC::JSCallbackFunction::call):
- * API/JSCallbackFunction.h:
- * API/JSCallbackObject.h:
- * API/JSCallbackObjectFunctions.h:
- (JSC::::call):
- * JavaScriptCore.exp:
- * jsc.cpp:
- (functionPrint):
- (functionDebug):
- (functionGC):
- (functionVersion):
- (functionRun):
- (functionLoad):
- (functionCheckSyntax):
- (functionSetSamplingFlags):
- (functionClearSamplingFlags):
- (functionReadline):
- (functionQuit):
- * runtime/ArrayConstructor.cpp:
- (JSC::callArrayConstructor):
- (JSC::arrayConstructorIsArray):
- * runtime/ArrayPrototype.cpp:
- (JSC::arrayProtoFuncToString):
- (JSC::arrayProtoFuncToLocaleString):
- (JSC::arrayProtoFuncJoin):
- (JSC::arrayProtoFuncConcat):
- (JSC::arrayProtoFuncPop):
- (JSC::arrayProtoFuncPush):
- (JSC::arrayProtoFuncReverse):
- (JSC::arrayProtoFuncShift):
- (JSC::arrayProtoFuncSlice):
- (JSC::arrayProtoFuncSort):
- (JSC::arrayProtoFuncSplice):
- (JSC::arrayProtoFuncUnShift):
- (JSC::arrayProtoFuncFilter):
- (JSC::arrayProtoFuncMap):
- (JSC::arrayProtoFuncEvery):
- (JSC::arrayProtoFuncForEach):
- (JSC::arrayProtoFuncSome):
- (JSC::arrayProtoFuncReduce):
- (JSC::arrayProtoFuncReduceRight):
- (JSC::arrayProtoFuncIndexOf):
- (JSC::arrayProtoFuncLastIndexOf):
- * runtime/BooleanConstructor.cpp:
- (JSC::callBooleanConstructor):
- * runtime/BooleanPrototype.cpp:
- (JSC::booleanProtoFuncToString):
- (JSC::booleanProtoFuncValueOf):
- * runtime/DateConstructor.cpp:
- (JSC::callDate):
- (JSC::dateParse):
- (JSC::dateNow):
- (JSC::dateUTC):
- * runtime/DatePrototype.cpp:
- (JSC::formatLocaleDate):
- (JSC::fillStructuresUsingTimeArgs):
- (JSC::fillStructuresUsingDateArgs):
- (JSC::dateProtoFuncToString):
- (JSC::dateProtoFuncToUTCString):
- (JSC::dateProtoFuncToISOString):
- (JSC::dateProtoFuncToDateString):
- (JSC::dateProtoFuncToTimeString):
- (JSC::dateProtoFuncToLocaleString):
- (JSC::dateProtoFuncToLocaleDateString):
- (JSC::dateProtoFuncToLocaleTimeString):
- (JSC::dateProtoFuncGetTime):
- (JSC::dateProtoFuncGetFullYear):
- (JSC::dateProtoFuncGetUTCFullYear):
- (JSC::dateProtoFuncToGMTString):
- (JSC::dateProtoFuncGetMonth):
- (JSC::dateProtoFuncGetUTCMonth):
- (JSC::dateProtoFuncGetDate):
- (JSC::dateProtoFuncGetUTCDate):
- (JSC::dateProtoFuncGetDay):
- (JSC::dateProtoFuncGetUTCDay):
- (JSC::dateProtoFuncGetHours):
- (JSC::dateProtoFuncGetUTCHours):
- (JSC::dateProtoFuncGetMinutes):
- (JSC::dateProtoFuncGetUTCMinutes):
- (JSC::dateProtoFuncGetSeconds):
- (JSC::dateProtoFuncGetUTCSeconds):
- (JSC::dateProtoFuncGetMilliSeconds):
- (JSC::dateProtoFuncGetUTCMilliseconds):
- (JSC::dateProtoFuncGetTimezoneOffset):
- (JSC::dateProtoFuncSetTime):
- (JSC::setNewValueFromTimeArgs):
- (JSC::setNewValueFromDateArgs):
- (JSC::dateProtoFuncSetMilliSeconds):
- (JSC::dateProtoFuncSetUTCMilliseconds):
- (JSC::dateProtoFuncSetSeconds):
- (JSC::dateProtoFuncSetUTCSeconds):
- (JSC::dateProtoFuncSetMinutes):
- (JSC::dateProtoFuncSetUTCMinutes):
- (JSC::dateProtoFuncSetHours):
- (JSC::dateProtoFuncSetUTCHours):
- (JSC::dateProtoFuncSetDate):
- (JSC::dateProtoFuncSetUTCDate):
- (JSC::dateProtoFuncSetMonth):
- (JSC::dateProtoFuncSetUTCMonth):
- (JSC::dateProtoFuncSetFullYear):
- (JSC::dateProtoFuncSetUTCFullYear):
- (JSC::dateProtoFuncSetYear):
- (JSC::dateProtoFuncGetYear):
- (JSC::dateProtoFuncToJSON):
- * runtime/ErrorConstructor.cpp:
- (JSC::callErrorConstructor):
- * runtime/ErrorPrototype.cpp:
- (JSC::errorProtoFuncToString):
- * runtime/FunctionConstructor.cpp:
- (JSC::callFunctionConstructor):
- * runtime/FunctionPrototype.cpp:
- (JSC::callFunctionPrototype):
- (JSC::functionProtoFuncToString):
- (JSC::functionProtoFuncApply):
- (JSC::functionProtoFuncCall):
- * runtime/JSGlobalObjectFunctions.cpp:
- (JSC::encode):
- (JSC::decode):
- (JSC::globalFuncEval):
- (JSC::globalFuncParseInt):
- (JSC::globalFuncParseFloat):
- (JSC::globalFuncIsNaN):
- (JSC::globalFuncIsFinite):
- (JSC::globalFuncDecodeURI):
- (JSC::globalFuncDecodeURIComponent):
- (JSC::globalFuncEncodeURI):
- (JSC::globalFuncEncodeURIComponent):
- (JSC::globalFuncEscape):
- (JSC::globalFuncUnescape):
- (JSC::globalFuncJSCPrint):
- * runtime/JSGlobalObjectFunctions.h:
- * runtime/JSONObject.cpp:
- (JSC::JSONProtoFuncParse):
- (JSC::JSONProtoFuncStringify):
- * runtime/JSString.h:
- * runtime/MathObject.cpp:
- (JSC::mathProtoFuncAbs):
- (JSC::mathProtoFuncACos):
- (JSC::mathProtoFuncASin):
- (JSC::mathProtoFuncATan):
- (JSC::mathProtoFuncATan2):
- (JSC::mathProtoFuncCeil):
- (JSC::mathProtoFuncCos):
- (JSC::mathProtoFuncExp):
- (JSC::mathProtoFuncFloor):
- (JSC::mathProtoFuncLog):
- (JSC::mathProtoFuncMax):
- (JSC::mathProtoFuncMin):
- (JSC::mathProtoFuncPow):
- (JSC::mathProtoFuncRandom):
- (JSC::mathProtoFuncRound):
- (JSC::mathProtoFuncSin):
- (JSC::mathProtoFuncSqrt):
- (JSC::mathProtoFuncTan):
- * runtime/NativeErrorConstructor.cpp:
- (JSC::callNativeErrorConstructor):
- * runtime/NumberConstructor.cpp:
- (JSC::callNumberConstructor):
- * runtime/NumberPrototype.cpp:
- (JSC::numberProtoFuncToString):
- (JSC::numberProtoFuncToLocaleString):
- (JSC::numberProtoFuncValueOf):
- (JSC::numberProtoFuncToFixed):
- (JSC::numberProtoFuncToExponential):
- (JSC::numberProtoFuncToPrecision):
- * runtime/ObjectConstructor.cpp:
- (JSC::callObjectConstructor):
- (JSC::objectConstructorGetPrototypeOf):
- (JSC::objectConstructorGetOwnPropertyDescriptor):
- (JSC::objectConstructorGetOwnPropertyNames):
- (JSC::objectConstructorKeys):
- (JSC::objectConstructorDefineProperty):
- (JSC::objectConstructorDefineProperties):
- (JSC::objectConstructorCreate):
- * runtime/ObjectPrototype.cpp:
- (JSC::objectProtoFuncValueOf):
- (JSC::objectProtoFuncHasOwnProperty):
- (JSC::objectProtoFuncIsPrototypeOf):
- (JSC::objectProtoFuncDefineGetter):
- (JSC::objectProtoFuncDefineSetter):
- (JSC::objectProtoFuncLookupGetter):
- (JSC::objectProtoFuncLookupSetter):
- (JSC::objectProtoFuncPropertyIsEnumerable):
- (JSC::objectProtoFuncToLocaleString):
- (JSC::objectProtoFuncToString):
- * runtime/ObjectPrototype.h:
- * runtime/Operations.h:
- (JSC::jsString):
- * runtime/RegExpConstructor.cpp:
- (JSC::callRegExpConstructor):
- * runtime/RegExpObject.cpp:
- (JSC::RegExpObject::test):
- (JSC::RegExpObject::exec):
- (JSC::callRegExpObject):
- (JSC::RegExpObject::match):
- * runtime/RegExpObject.h:
- * runtime/RegExpPrototype.cpp:
- (JSC::regExpProtoFuncTest):
- (JSC::regExpProtoFuncExec):
- (JSC::regExpProtoFuncCompile):
- (JSC::regExpProtoFuncToString):
- * runtime/StringConstructor.cpp:
- (JSC::stringFromCharCodeSlowCase):
- (JSC::stringFromCharCode):
- (JSC::callStringConstructor):
- * runtime/StringPrototype.cpp:
- (JSC::stringProtoFuncReplace):
- (JSC::stringProtoFuncToString):
- (JSC::stringProtoFuncCharAt):
- (JSC::stringProtoFuncCharCodeAt):
- (JSC::stringProtoFuncConcat):
- (JSC::stringProtoFuncIndexOf):
- (JSC::stringProtoFuncLastIndexOf):
- (JSC::stringProtoFuncMatch):
- (JSC::stringProtoFuncSearch):
- (JSC::stringProtoFuncSlice):
- (JSC::stringProtoFuncSplit):
- (JSC::stringProtoFuncSubstr):
- (JSC::stringProtoFuncSubstring):
- (JSC::stringProtoFuncToLowerCase):
- (JSC::stringProtoFuncToUpperCase):
- (JSC::stringProtoFuncLocaleCompare):
- (JSC::stringProtoFuncBig):
- (JSC::stringProtoFuncSmall):
- (JSC::stringProtoFuncBlink):
- (JSC::stringProtoFuncBold):
- (JSC::stringProtoFuncFixed):
- (JSC::stringProtoFuncItalics):
- (JSC::stringProtoFuncStrike):
- (JSC::stringProtoFuncSub):
- (JSC::stringProtoFuncSup):
- (JSC::stringProtoFuncFontcolor):
- (JSC::stringProtoFuncFontsize):
- (JSC::stringProtoFuncAnchor):
- (JSC::stringProtoFuncLink):
- (JSC::stringProtoFuncTrim):
- (JSC::stringProtoFuncTrimLeft):
- (JSC::stringProtoFuncTrimRight):
- 2010-05-28 Jedrzej Nowacki <jedrzej.nowacki@nokia.com>
- Reviewed by Geoffrey Garen.
- Fix the JSObjectSetPrototype function.
- A cycle in a prototype chain can cause an application hang or
- even crash.
- A check for a prototype chain cycles was added to
- the JSObjectSetPrototype.
- JSObjectSetPrototype doesn't check for cycle in prototype chain.
- https://bugs.webkit.org/show_bug.cgi?id=39360
- * API/JSObjectRef.cpp:
- (JSObjectSetPrototype):
- * API/tests/testapi.c:
- (assertTrue):
- (checkForCycleInPrototypeChain):
- (main):
- * runtime/JSObject.cpp:
- (JSC::JSObject::put):
- * runtime/JSObject.h:
- (JSC::JSObject::setPrototypeWithCycleCheck):
- 2010-05-28 Chao-ying Fu <fu@mips.com>
- Reviewed by Eric Seidel.
- Fix MIPS JIT DoubleGreaterThanOrEqual Operands
- https://bugs.webkit.org/show_bug.cgi?id=39504
- Swapped two operands of left and right for DoubleGreaterThanOrEqual.
- This patch fixed two layout tests as follows.
- fast/js/comparison-operators-greater.html
- fast/js/comparison-operators-less.html
- * assembler/MacroAssemblerMIPS.h:
- (JSC::MacroAssemblerMIPS::branchDouble):
- 2010-05-28 Gavin Barraclough <barraclough@apple.com>
- Reviewed by Geoff Garen.
- Move jit compilation from linking thunks into cti_vm_lazyLink methods.
- * jit/JITOpcodes.cpp:
- (JSC::JIT::privateCompileCTIMachineTrampolines):
- * jit/JITOpcodes32_64.cpp:
- (JSC::JIT::privateCompileCTIMachineTrampolines):
- * jit/JITStubs.cpp:
- (JSC::DEFINE_STUB_FUNCTION):
- 2010-05-28 Gavin Barraclough <barraclough@apple.com>
- Reviewed by Sam Weinig.
- Bug 39898 - Move arity check into callee.
-
- We can reduce the size of the virtual call trampolines by moving the arity check
- into the callee functions. As a following step we will be able to remove the
- check for native function / codeblocks by performing translation in a lazy stub.
-
- * interpreter/CallFrame.h:
- (JSC::ExecState::init):
- (JSC::ExecState::setReturnPC):
- * jit/JIT.cpp:
- (JSC::JIT::privateCompile):
- (JSC::JIT::linkCall):
- (JSC::JIT::linkConstruct):
- * jit/JIT.h:
- (JSC::JIT::compile):
- * jit/JITOpcodes.cpp:
- (JSC::JIT::privateCompileCTIMachineTrampolines):
- * jit/JITOpcodes32_64.cpp:
- (JSC::JIT::privateCompileCTIMachineTrampolines):
- * jit/JITStubs.cpp:
- (JSC::DEFINE_STUB_FUNCTION):
- * runtime/Executable.cpp:
- (JSC::FunctionExecutable::generateJITCodeForCall):
- (JSC::FunctionExecutable::generateJITCodeForConstruct):
- (JSC::FunctionExecutable::reparseExceptionInfo):
- * runtime/Executable.h:
- (JSC::NativeExecutable::NativeExecutable):
- (JSC::FunctionExecutable::generatedJITCodeForCallWithArityCheck):
- (JSC::FunctionExecutable::generatedJITCodeForConstructWithArityCheck):
- 2010-05-27 Luiz Agostini <luiz.agostini@openbossa.org>
- Reviewed by Darin Adler.
- UTF-16 code points compare() for String objects
- https://bugs.webkit.org/show_bug.cgi?id=39701
- Moving compare() implementation from UString to StringImpl for it to be shared
- with String. Adding overloaded free functions codePointCompare() in StringImpl
- and WTFString. Renaming function compare in UString to codePointCompare to be
- consistent.
- * runtime/JSArray.cpp:
- (JSC::compareByStringPairForQSort):
- * runtime/UString.cpp:
- * runtime/UString.h:
- (JSC::codePointCompare):
- * wtf/text/StringImpl.cpp:
- (WebCore::codePointCompare):
- * wtf/text/StringImpl.h:
- * wtf/text/WTFString.cpp:
- (WebCore::codePointCompare):
- * wtf/text/WTFString.h:
- 2010-05-26 Darin Adler <darin@apple.com>
- Reviewed by Kent Tamura.
- Null characters handled incorrectly in ToNumber conversion
- https://bugs.webkit.org/show_bug.cgi?id=38088
- * runtime/JSGlobalObjectFunctions.cpp:
- (JSC::parseInt): Changed code to use UTF8String().data() instead of
- ascii() to fix the thread safety issue. Code path is covered by existing
- tests in run-javascriptcore-tests.
- (JSC::parseFloat): Moved comment to UString::toDouble since the issue
- affects all clients, not just parseFloat. Specifically, this also affects
- standard JavaScript numeric conversion, ToNumber.
- * runtime/UString.cpp:
- (JSC::UString::toDouble): Added a comment about incorrect space skipping.
- Changed trailing junk check to use the length of the CString instead of
- checking for a null character. Also got rid of a little unneeded logic
- in the case where we tolerate trailing junk.
- 2010-05-27 Nathan Lawrence <nlawrence@apple.com>
- Reviewed by Geoffrey Garen.
- Search for the new allocation one word at a time. Improves
- performance on SunSpider by approximately 1%.
- http://bugs.webkit.org/show_bug.cgi?id=39758
- * runtime/Collector.cpp:
- (JSC::Heap::allocate):
- * runtime/Collector.h:
- (JSC::CollectorBitmap::advanceToNextPossibleFreeCell):
- 2010-05-27 Kevin Ollivier <kevino@theolliviers.com>
- [wx] Build fixes for Windows after recent changes.
- * wscript:
- 2010-05-27 Gustavo Noronha Silva <gns@gnome.org>
- More build fixage for make dist.
- * GNUmakefile.am:
- 2010-05-27 Kwang Yul Seo <skyul@company100.net>
- Reviewed by Darin Adler.
- RVCT does not have strnstr.
- https://bugs.webkit.org/show_bug.cgi?id=39719
- Add COMPILER(RVCT) guard to strnstr in StringExtras.h as RVCT does not provide strnstr.
- * wtf/StringExtras.h:
- 2010-05-26 Gavin Barraclough <barraclough@apple.com>
- Reviewed by Oliver Hunt.
- Bug 39795 - Add support for YARR JIT generation of greedy quantified parens at the end of the main disjunction.
- (relanding r60267)
- If the last item in a main disjunction is a quantified set of parentheses,
- this is easier to code generate for than the general case for quantified
- parentheses. This is because we never need to backtrack into the parentheses
- - the first match will be the final and accepted match.
- This patch also somewhat reverts a recent change to when fallback to PCRE
- occurs. At the minute the compiler is tracking on patterns which will
- require JIT fallback. This is handy from a performance perspective (it saves
- the failed attempt at JIT compilation), but it means introducing knowledge
- of the JITs capabilities into the other layers of the regex compilers. For
- the specific feature of back-references, add a flag tracking their presence
- on the pattern, and make these expressions fallback without attempting to
- JIT. For parentheses, return to detecting which cases are have or have not
- been handled during JIT compilation.
- 18% progression on tagcloud, ~1.5% overall on sunspidey.
- * yarr/RegexCompiler.cpp:
- (JSC::Yarr::RegexPatternConstructor::atomBackReference):
- (JSC::Yarr::RegexPatternConstructor::quantifyAtom):
- * yarr/RegexJIT.cpp:
- (JSC::Yarr::RegexGenerator::TermGenerationState::isLastTerm):
- (JSC::Yarr::RegexGenerator::TermGenerationState::isMainDisjunction):
- (JSC::Yarr::RegexGenerator::generateParenthesesGreedyNoBacktrack):
- (JSC::Yarr::RegexGenerator::generateTerm):
- (JSC::Yarr::RegexGenerator::RegexGenerator):
- (JSC::Yarr::RegexGenerator::shouldFallBack):
- (JSC::Yarr::jitCompileRegex):
- * yarr/RegexPattern.h:
- (JSC::Yarr::RegexPattern::RegexPattern):
- (JSC::Yarr::RegexPattern::reset):
- 2010-05-26 Gavin Barraclough <barraclough@apple.com>
- Reviewed by NOBODY (revert).
- Temporarily rolling out r60267, I appear to have hoesed perf at the last minute. :-/ Fixing.
- * yarr/RegexCompiler.cpp:
- (JSC::Yarr::RegexPatternConstructor::atomBackReference):
- (JSC::Yarr::RegexPatternConstructor::quantifyAtom):
- * yarr/RegexJIT.cpp:
- (JSC::Yarr::RegexGenerator::TermGenerationState::term):
- (JSC::Yarr::RegexGenerator::generateParenthesesSingle):
- (JSC::Yarr::RegexGenerator::generateTerm):
- (JSC::Yarr::RegexGenerator::RegexGenerator):
- (JSC::Yarr::jitCompileRegex):
- * yarr/RegexPattern.h:
- (JSC::Yarr::RegexPattern::RegexPattern):
- (JSC::Yarr::RegexPattern::reset):
- 2010-05-26 Gustavo Noronha Silva <gns@gnome.org>
- Build fixes for make distcheck.
- * GNUmakefile.am:
- 2010-05-26 Gavin Barraclough <barraclough@apple.com>
- Reviewed by Oliver Hunt.
- Bug 39795 - Add support for YARR JIT generation of greedy quantified parens at the end of the main disjunction.
- If the last item in a main disjunction is a quantified set of parentheses,
- this is easier to code generate for than the general case for quantified
- parentheses. This is because we never need to backtrack into the parentheses
- - the first match will be the final and accepted match.
- This patch also somewhat reverts a recent change to when fallback to PCRE
- occurs. At the minute the compiler is tracking on patterns which will
- require JIT fallback. This is handy from a performance perspective (it saves
- the failed attempt at JIT compilation), but it means introducing knowledge
- of the JITs capabilities into the other layers of the regex compilers. For
- the specific feature of back-references, add a flag tracking their presence
- on the pattern, and make these expressions fallback without attempting to
- JIT. For parentheses, return to detecting which cases are have or have not
- been handled during JIT compilation.
- 18% progression on tagcloud, ~1.5% overall on sunspidey.
- * yarr/RegexCompiler.cpp:
- (JSC::Yarr::RegexPatternConstructor::atomBackReference):
- (JSC::Yarr::RegexPatternConstructor::quantifyAtom):
- * yarr/RegexJIT.cpp:
- (JSC::Yarr::RegexGenerator::TermGenerationState::isLastTerm):
- (JSC::Yarr::RegexGenerator::TermGenerationState::isMainDisjunction):
- (JSC::Yarr::RegexGenerator::generateParenthesesGreedyNoBacktrack):
- (JSC::Yarr::RegexGenerator::generateTerm):
- (JSC::Yarr::RegexGenerator::RegexGenerator):
- (JSC::Yarr::RegexGenerator::shouldFallBack):
- (JSC::Yarr::jitCompileRegex):
- * yarr/RegexPattern.h:
- (JSC::Yarr::RegexPattern::RegexPattern):
- (JSC::Yarr::RegexPattern::reset):
- 2010-05-26 Geoffrey Garen <ggaren@apple.com>
- Reviewed by Sam Weinig.
- Fixed a crash seen on the Leopard bot, caused by merge.
- * jit/JITStubs.cpp:
- (JSC::DEFINE_STUB_FUNCTION): Get the return address from the callframe,
- since it's no longer passed to us as an argument.
- 2010-05-25 Geoffrey Garen <ggaren@apple.com>
- Fixed build failure caused by merge.
- * jit/JITStubs.cpp:
- (JSC::DEFINE_STUB_FUNCTION): On error, return a single value, since this
- function no longer returns a pair.
- 2010-05-25 Geoffrey Garen <ggaren@apple.com>
- Reviewed by Oliver Hunt.
- <rdar://problem/8020221>
-
- Fixed a crash seen on Windows when calling a function with too many
- arguments.
-
- SunSpider reports no change.
-
- No test because the ASSERT I added fires in existing tests.
- * jit/JITStubs.cpp:
- (JSC::DEFINE_STUB_FUNCTION): Make sure to grow the registerFile when too
- many arguments have been provided, since the caller only allocated enough
- registerFile space for the arguments it provided, not enough for the extra
- copy of arguments we're going to need.
- 2010-05-25 Kwang Yul Seo <skyul@company100.net>
- Reviewed by Darin Adler.
- Build fix for JSFunction
- https://bugs.webkit.org/show_bug.cgi?id=39658
- MSVC can't compile one of JSFunction constructors when JIT is disabled.
- "PassRefPtr<NativeExecutable>" causes the compile error as NativeExecutable is not defined.
- Add ENABLE(JIT) guard to the constructor.
- * runtime/JSFunction.cpp:
- (JSC::JSFunction::JSFunction):
- * runtime/JSFunction.h:
- 2010-05-24 Gavin Barraclough <barraclough@apple.com>
- Reviewed by Sam Weinig.
- Bug 39643 - Clean up code generation in the JIT of stub function calls for op_call.
- Presently, as soon as op-call strays off the hot path we set up a set of values on
- the stack to be passed as arguments to cti functions, in case any should be called.
- Instead, hoist the setup of the callframe to happen slightly sooner, and make the
- cti functions to compile & check arity read these values from the callframe. This
- allows up to remove the deprecated methods to manually set up cti arguments, rather
- than using JITStubCall.h.
- * interpreter/CallFrame.h:
- * jit/JIT.h:
- * jit/JITCall.cpp:
- (JSC::JIT::compileOpCallInitializeCallFrame):
- (JSC::JIT::compileOpCallVarargs):
- (JSC::JIT::compileOpCallVarargsSlowCase):
- (JSC::JIT::compileOpCall):
- (JSC::JIT::compileOpCallSlowCase):
- * jit/JITCall32_64.cpp:
- (JSC::JIT::compileOpCallInitializeCallFrame):
- (JSC::JIT::compileOpCallVarargs):
- (JSC::JIT::compileOpCallVarargsSlowCase):
- (JSC::JIT::compileOpCall):
- (JSC::JIT::compileOpCallSlowCase):
- * jit/JITInlineMethods.h:
- * jit/JITOpcodes.cpp:
- (JSC::JIT::privateCompileCTIMachineTrampolines):
- * jit/JITOpcodes32_64.cpp:
- (JSC::JIT::privateCompileCTIMachineTrampolines):
- * jit/JITStubs.cpp:
- (JSC::DEFINE_STUB_FUNCTION):
- * jit/JITStubs.h:
- (JSC::):
- 2010-05-24 Gavin Barraclough <barraclough@apple.com>
- Reviewed by Sam Weinig.
- Relanding r60075.
- * bytecode/CodeBlock.cpp:
- (JSC::CodeBlock::dump):
- (JSC::CodeBlock::getByIdExceptionInfoForBytecodeOffset):
- * bytecode/CodeBlock.h:
- * bytecode/Opcode.h:
- * bytecompiler/BytecodeGenerator.cpp:
- (JSC::BytecodeGenerator::BytecodeGenerator):
- (JSC::BytecodeGenerator::emitConstruct):
- * bytecompiler/BytecodeGenerator.h:
- (JSC::BytecodeGenerator::emitGetByIdExceptionInfo):
- * interpreter/Interpreter.cpp:
- (JSC::Interpreter::privateExecute):
- * jit/JIT.cpp:
- (JSC::JIT::privateCompileMainPass):
- * jit/JIT.h:
- * jit/JITCall.cpp:
- (JSC::JIT::compileOpCall):
- (JSC::JIT::compileOpCallSlowCase):
- * jit/JITCall32_64.cpp:
- (JSC::JIT::compileOpCall):
- (JSC::JIT::compileOpCallSlowCase):
- * jit/JITOpcodes.cpp:
- (JSC::JIT::privateCompileCTIMachineTrampolines):
- (JSC::JIT::privateCompileCTINativeCall):
- (JSC::JIT::emit_op_neq_null):
- (JSC::JIT::emit_op_convert_this):
- (JSC::JIT::emit_op_get_callee):
- (JSC::JIT::emit_op_create_this):
- * jit/JITOpcodes32_64.cpp:
- (JSC::JIT::privateCompileCTIMachineTrampolines):
- (JSC::JIT::privateCompileCTINativeCall):
- (JSC::JIT::emit_op_get_callee):
- (JSC::JIT::emit_op_create_this):
- * jit/JITStubs.cpp:
- (JSC::DEFINE_STUB_FUNCTION):
- (JSC::JITThunks::hostFunctionStub):
- * jit/JITStubs.h:
- (JSC::JITThunks::ctiNativeConstruct):
- (JSC::):
- * runtime/ExceptionHelpers.cpp:
- (JSC::createNotAnObjectError):
- * runtime/Executable.h:
- (JSC::NativeExecutable::create):
- (JSC::NativeExecutable::NativeExecutable):
- * runtime/JSFunction.cpp:
- (JSC::callHostFunctionAsConstructor):
- * runtime/JSFunction.h:
- * wtf/Platform.h:
- == Rolled over to ChangeLog-2010-05-24 ==
|