Na sui Mozilla i le fa'aaogaina o se masini fa'aaliga masani masani ma Chromium

SpiderMonkey JavaScript afi faʻaaogaina i Firefox siitia e fa'aoga se fa'afouga fa'atinoina o fa'amatalaga masani e fa'atatau i le tulafono o lo'o iai nei Irregexp mai le masini V8 JavaScript o loʻo faʻaogaina i suʻesuʻega e faʻavae i luga o le poloketi Chromium. O le faʻatinoga fou o le RegExp o le a ofoina atu i le Firefox 78, faʻatulagaina mo Iuni 30, ma o le a aumaia uma elemene ECMAScript o loʻo misi e fesoʻotaʻi ma faʻamatalaga masani i le browser.

O loʻo maitauina o le RegExp engine i SpiderMonkey ua mamanuina e avea o se vaega tutoʻatasi, lea e tutoʻatasi ai ma talafeagai mo le sui e aunoa ma le manaʻomia o le faia o suiga tetele i le code base. Modularity na mafai ai i le 2014 ona sui le afi YARR RegExp na faʻaaogaina muamua i Firefox ma se tui o le afi Irregexp mai V8. Irregexp o loʻo nonoa i le V8 API, nonoa i le lapisi lapisi, ma faʻaaogaina se faʻatusa V8 faʻapitoa ma faʻataʻitaʻiga mea. I le faagasologa o le fetuutuunai i le API i totonu SpiderMonkey i le 2014, na toe tusia ai se vaega o le afi Irregexp, ma suiga fou, e pei o le '\u' fu'a, pe a mafai. siitia i totonu o se tui e tausia e Mozilla.

O le mea e leaga ai, o le fa'atumauina o se tui fa'atasi e faigata ma tele alagaoa. Faatasi ai ma le oʻo mai o foliga fou e fesoʻotaʻi ma faʻamatalaga masani i le ECMAScript 2018 faʻataʻitaʻiga, na mafaufau le au atinaʻe Mozilla pe faʻafefea ona faʻafaigofie ona faimalaga suiga mai Irregexp. I le avea ai o se auala i fafo, na tuʻuina atu ai se manatu afifi, lea e faʻatagaina ai le faʻaaogaina o le afi Irregexp toetoe lava a le suia i SpiderMonkey (o suiga e faʻaitiitia naʻo le suia otometi o poloka "#include").

Na sui Mozilla i le fa'aaogaina o se masini fa'aaliga masani masani ma Chromium

O loʻo tuʻuina atu e le faʻavae ia Irregexp le manaʻomia V8-faʻapitoa, e aofia ai le faʻaogaina o mafaufauga ma galuega faʻasologa o tulafono, faʻapea foʻi ma faʻamaumauga faʻamaumauga faʻapitoa o loʻo faʻaaogaina e faʻaogaina ai masini e faʻaogaina ai le mafaufau, generators code, ma SpiderMonkey structures.

O le faʻafouina o le RegExp engine o le a faʻatagaina ai Firefox e lagolagoina foliga e pei o le faʻaigoaina o puʻeina, Unicode amio vasega sola, le fuʻa dotAll, ma le Lookbehind mode:

  • Fa'aigoa vaega fa'ataga oe e fa'afeso'ota'i vaega o se manoa e fetaui ma se fa'amatalaga masani ma igoa fa'apitoa nai lo numera fa'asologa o afitusi (mo se fa'ata'ita'iga, nai lo le "/(\d{4})-(\d{2})-(\d{ 2})/" e mafai ona e faʻamaonia "/( ? \d{4})-(? \d{2})-(? \d{2})/" ma fa'aoga le tausaga e le ala i taunu'uga[1], ae ala mai i le result.groups.year).
  • Sosoina vasega Unicode mataitusi faaopoopo fau \p{...} ma \P{...}, mo se fa'ata'ita'iga, \p{Numera} o lo'o fa'amatalaina ai mataitusi uma e mafai ona fa'aalia ai numera (e aofia ai fa'ailoga pei o ①), \p{Alphabetic} - mataitusi (e aofia ai hieroglyphs ), \p{Math} — fa'ailoga o le matematika, ma isi.
  • Flag dotAll mafua ai ona mu le ufimata "." e aofia ai mataitusi fafaga laina.
  • Auala Va'ai tua e fa'atagaina oe e fa'ailoa i se fa'amatalaga masani o le tasi mamanu e muamua atu i le isi (fa'ata'ita'iga, fa'afetaui se aofa'iga tālā e aunoa ma le pu'eina o le fa'ailoga tala).

O le poloketi na faʻatinoina ma le auai o le au atinaʻe V8, oe, mo la latou vaega, na galulue e faʻaitiitia le faʻalagolago o Irregexp i luga o le V8, ma faʻanofoina nisi o vaega e le mafai ona faʻatinoina e faʻavae i luga ole SpiderMonkey i le faʻaogaina o poloka "#ifdef". O le felagolagoma'i na i'u ina manuia soo se tasi. Mo la latou vaega, na tuʻuina atu e le au atinaʻe Mozilla suiga i Irregexp e faʻaumatia ai nisi fa'aletonu fa'atasi ai ma mana'oga o le fa'atonuga JavaScript ma faaleleia tulaga lelei. E le gata i lea, i le taimi o suʻega faʻafefe o Firefox, o mea sese e leʻi iloa muamua i le Irregexp code na mafua ai faʻalavelave na iloa ma faʻaumatia.

puna: opennet.ru

Faaopoopo i ai se faamatalaga