I-Mozilla itshintshele ekusebenziseni i-injini eqhelekileyo yokubonisa eqhelekileyo eneChromium

SpiderMonkey JavaScript injini esetyenziswa kwiFirefox idluliselwe ukusebenzisa uzalisekiso oluhlaziyiweyo lweentetho eziqhelekileyo ezisekelwe kwikhowudi yangoku Iregexp ukusuka kwinjini ye-V8 JavaScript esetyenziswa kwizikhangeli ezisekwe kwiprojekthi yeChromium. Ukuphunyezwa okutsha kwe-RegExp kuya kunikezelwa kwiFirefox 78, ecwangciselwe uJuni 30, kwaye iza kuzisa zonke izinto ezingekhoyo zeECMAScript ezinxulumene nentetho eqhelekileyo kwisikhangeli.

Kuphawulwe ukuba injini ye-RegExp kwi-SpiderMonkey yenzelwe njengecandelo elihlukeneyo, elenza ukuba lizimele kwaye lilungele ukutshintshwa ngaphandle kwesidingo sokwenza utshintsho olubalulekileyo kwisiseko sekhowudi. Ukumodareyitha kwenze ukuba kwenzeke ngo-2014 ukubuyisela injini ye-YARR RegExp eyayisetyenziswa ekuqaleni kwiFirefox ngefolokhwe yenjini ye-Irregexp esuka kwi-V8. I-Irregexp ibotshelelwe kwi-V8 API, ibotshelelwe kumqokeleli wenkunkuma, kwaye isebenzisa i-V8-specific string representation kunye nemodeli yento. Kwinkqubo yokuziqhelanisa neSpiderMonkey API ngo-2014, injini ye-Irregexp yabhalwa ngokuyinxenye, kunye notshintsho oluvelayo, olufana ne '\u' iflegi, apho kunokwenzeka. idluliselwe kwifolokhwe egcinwe yiMozilla.

Ngelishwa, ukugcina ifolokhwe elungelelanisiweyo kunzima kwaye kunzima kakhulu. Ngokufika kweempawu ezintsha ezinxulumene nokubonakaliswa rhoqo kumgangatho we-ECMAScript 2018, abaphuhlisi beMozilla bacinga malunga nendlela yokwenza kube lula ukufuduka utshintsho kwi-Irregexp. Njengendlela yokuphuma, ingcamango yokusonga yayicetywayo, evumela ukuba kusetyenziswe injini ye-Irregexp engatshintshiyo kwi-SpiderMonkey (utshintsho luncitshiswe kuphela kukutshintshwa okuzenzekelayo kweebhloko "#include").

I-Mozilla itshintshele ekusebenziseni i-injini eqhelekileyo yokubonisa eqhelekileyo eneChromium

Isakhelo sibonelela nge-Irregexp ngezakhono ezifunekayo ze-V8, kubandakanywa nolawulo lwememori kunye nemisebenzi yokuvelisa ikhowudi, kunye nezakhiwo zedatha zemveli eziphunyezwayo ngokusebenzisa iinjini zokulawula imemori, i-code generators, kunye nezakhiwo ze-SpiderMonkey.

Ukuhlaziya injini yeRegExp kuya kuvumela iFirefox ukuba ixhase izinto ezinje ngokubamba amagama, ukubaleka kodidi lwabalinganiswa be-Unicode, iflegi yedotAll, kunye nemowudi yokujonga ngasemva:

  • Amaqela anikwe amagama ikuvumela ukuba unxulumanise iindawo zomtya ezidityaniswe nentetho eqhelekileyo enamagama athile endaweni yamanani othotho lweematshisi (umzekelo, endaweni ye “/(\d{4})-(\d{2})-(\d{ 2})/” ungachaza “/( ? \d{4})-(? \d{2})-(? \d{2})/" kwaye ufikelele unyaka hayi ngesiphumo[1], kodwa nge result.groups.year).
  • Iiklasi zokubaleka Oonobumba be-Unicode bongeza ulwakhiwo \p{...} kunye \P{...}, umzekelo, \p{Number} ichaza bonke abanokubakho abasebenzi ababonisa amanani (kubandakanywa noonobumba abanje ①), \p{Alfabhethi} - oonobumba (kuquka hieroglyphs ), \p{Math} — iisimboli zemathematika, njl.
  • Iflegi dotAll ibangela ukuba "." imaski ivuthe umlilo. kuquka abalinganiswa feed line.
  • Indlela Jonga ngasemva ikuvumela ukuba uqikelele kwintetho eqhelekileyo ukuba ipateni enye yandulela enye (umzekelo, ukuthelekisa isixa sedola ngaphandle kokubamba uphawu lwedola).

Le projekthi iqhutywe ngokuthatha inxaxheba kwabaphuhlisi be-V8, abathi, ngenxa yabo, basebenze ukunciphisa ukuxhomekeka kwe-Irregexp kwi-V8, kwaye bahambisa ezinye iimpawu ezingenakuphunyezwa ngokusebenzisa i-SpiderMonkey ukukhubaza "#ifdef" iibhloko. Intsebenziswano yanceda macala omabini. Kwicala labo, abaphuhlisi beMozilla bangenise utshintsho kwi-Irregexp esusa ezinye ukungangqinelani kunye neemfuno zomgangatho weJavaScript kunye ukuphucula umgangatho wekhowudi. Kwakhona, ngexesha lokuvavanywa kweFirefox, iimpazamo ebezingaqatshelwa ngaphambili kwikhowudi ye-Irregexp ekhokelele kwingozi zachongwa kwaye zapheliswa.

umthombo: opennet.ru

Yongeza izimvo