I-Mozilla ishintshele ekusebenziseni injini evamile yokubonisa ene-Chromium

Injini ye-SpiderMonkey JavaScript esetshenziswa kuFirefox dlulisiwe ukusebenzisa ukuqaliswa okubuyekeziwe kwezinkulumo ezivamile ngokusekelwe kukhodi yamanje Iregexp kusukela kunjini ye-V8 JavaScript esetshenziswa kuziphequluli ezisuselwe kuphrojekthi ye-Chromium. Ukuqaliswa okusha kwe-RegExp kuzonikezwa kuFirefox 78, okuhlelelwe uJuni 30, futhi kuzoletha zonke izici ezingekho ze-ECMAScript ezihlobene nezinkulumo ezivamile esipheqululini.

Kuyaphawulwa ukuthi injini ye-RegExp ku-SpiderMonkey yakhelwe njengengxenye ehlukile, okwenza izimele futhi ifanele ukushintshwa ngaphandle kwesidingo sokwenza izinguquko eziphawulekayo kusisekelo sekhodi. I-Modularity yenza kwaba nokwenzeka ngo-2014 ukushintsha injini ye-YARR RegExp ekuqaleni eyayisetshenziswa kuFirefox ngemfoloko yenjini ye-Irregexp evela ku-V8. I-Irregexp iboshelwe ku-V8 API, iboshelwe kumqoqi kadoti, futhi isebenzisa ukumelwa kweyunithi yezinhlamvu ethi V8 kanye nemodeli yento. Enqubweni yokujwayela i-API yangaphakathi ye-SpiderMonkey ngo-2014, injini ye-Irregexp yabhalwa kabusha kancane, kanye nezinguquko ezivelayo, njengefulegi elithi '\u', lapho kungenzeka khona. dlulisiwe kwimfoloko enakekelwa yi-Mozilla.

Ngeshwa, ukugcina imfoloko evumelanisiwe kunzima futhi kusebenzisa izinsiza. Ngokufika kwezici ezintsha ezihlobene nezinkulumo ezivamile ezingeni le-ECMAScript 2018, abathuthukisi be-Mozilla bacabange ukuthi bangakwenza kanjani kube lula ukuthutha izinguquko ukusuka ku-Irregexp. Njengendlela yokuphuma, kwahlongozwa umqondo wokugoqa, ovumela ukusebenzisa injini ye-Irregexp ecishe ingashintshiwe ku-SpiderMonkey (ushintsho luncishiswa kuphela ekushintsheni okuzenzakalelayo kwamabhulokhi "#include").

I-Mozilla ishintshele ekusebenziseni injini evamile yokubonisa ene-Chromium

Uhlaka luhlinzeka i-Irregexp ngamakhono adingekayo aqondene ne-V8, okuhlanganisa ukuphathwa kwenkumbulo nemisebenzi yokukhiqiza ikhodi, kanye nezakhiwo zedatha zomdabu ezisetshenziswa kusetshenziswa izinjini zokulawula inkumbulo, abakhiqizi bekhodi, nezakhiwo ze-SpiderMonkey.

Ukubuyekeza injini ye-RegExp kuzovumela iFirefox ukuthi isekele izici ezifana nokuthwebula amagama, ukuphunyuka kwesigaba sezinhlamvu ze-Unicode, ifulegi le-dotAll, kanye nemodi ye-Lookbehind:

  • Amaqembu aqanjiwe ikuvumela ukuthi uhlobanise izingxenye zeyunithi yezinhlamvu ezimataniswa yisisho esivamile esinamagama athile esikhundleni sezinombolo zochungechunge zokufanisa (isibonelo, esikhundleni sokuthi β€œ/(\d{4})-(\d{2})-(\d{ 2})/” ungacacisa β€œ/( ?\d{4})-(?\d{2})-(?\d{2})/" futhi ufinyelele unyaka hhayi ngomphumela[1], kodwa ngomphumela.amaqembu.unyaka).
  • Amakilasi okuphunyuka Izinhlamvu ze-Unicode zengeza izakhiwo \p{...} kanye no-\P{...}, isibonelo, \p{Number} ichaza zonke izinhlamvu ezingaba khona ezibonisa izinombolo (kuhlanganise nezimpawu ezifana no-β‘ ), \p{Alfabhethi} - izinhlamvu (kuhlanganise ama-hieroglyphs ), \p{Math} β€” izimpawu zezibalo, njll.
  • Maka umkhosi dotAll kubangela ukuthi "." imaski ivutha. kuhlanganise nezinhlamvu zokuphakelayo komugqa.
  • Imodi Bheka ngemuva ikuvumela ukuthi unqume ngenkulumo evamile ukuthi iphethini eyodwa yandulela enye (isibonelo, ukufanisa inani ledola ngaphandle kokubamba uphawu lwedola).

Le phrojekthi yenziwe ngokubamba iqhaza kwabathuthukisi be-V8, abathi, bona, basebenze ukunciphisa ukuncika kwe-Irregexp ku-V8, futhi bahambisa izici ezithile ezingeke zisetshenziswe kusetshenziswa i-SpiderMonkey ekukhubazeni amabhulokhi "#ifdef". Ukubambisana kwabonakala kuzuzisa bobabili. Ngakolunye uhlangothi, abathuthukisi be-Mozilla bathumele izinguquko ku-Irregexp ezisusa ezinye ukungahambisani nezimfuneko zezinga le-JavaScript kanye ngcono ikhwalithi yekhodi. Futhi, ngesikhathi sokuhlolwa okungaqondakali kweFirefox, amaphutha abengabonwa ngaphambili kukhodi ye-Irregexp aholele ekuphahlazekeni ahlonziwe futhi asuswa.

Source: opennet.ru

Engeza amazwana