I huri a Mozilla ki te whakamahi i te miihini korero noa me Chromium

Ko te miihini JavaScript SpiderMonkey a Firefox i whakamaoritia ki te whakamahi i te whakatinanatanga whakahou o nga korero auau i runga i te waehere o naianei Irregexp mai i te miihini V8 JavaScript e whakamahia ana i roto i nga kaitirotiro i runga i te kaupapa Chromium. Ka tukuna he whakatinanatanga hou o RegExp i te Pipiri 78 o te tukunga o Firefox 30, a ka taea e te kaitirotiro te whakauru i nga waahanga ECMAScript katoa e ngaro ana e pa ana ki nga korero auau.

Kei te tohuhia ko te miihini RegExp i roto i te SpiderMonkey i hangaia hei waahanga motuhake, na te mea he mea motuhake, he pai hoki mo te whakakapi me te kore e hiahia ki te whakarereke i te turanga waehere. I whakaaetia te modularity i te tau 2014 ki te whakakapi i te miihini YARR RegExp i whakamahia tuatahi i Firefox me te marau o te miihini Irregexp mai i V8. Kua herea a Irregexp ki te V8 API, kua herea ki te kaikohi paru, e whakamahi ana i te tohu aho motuhake V8 me te tauira ahanoa. I te tukanga o te urutau ki te API o roto o SpiderMonkey i te tau 2014, i tuhia ano te miihini Irregexp, me nga huringa ka puta, penei i te haki '\u', ina taea i whakamanawanui ki te marau e tiakina ana e Mozilla.

Heoi, he uaua te pupuri i te marau tukutahi me te nui o nga rauemi hei pupuri. Na te whakaurunga o nga ahuatanga hou e pa ana ki nga korero auau i roto i te paerewa ECMAScript 2018, ka timata nga kaiwhakawhanake Mozilla ki te whakaaro me pehea e taea ai e ratou te kawe i nga huringa mai i a Irregexp. Hei huarahi ki waho, i whakaarohia te kaupapa here, e taea ai te whakamahi i te miihini Irregexp tata tonu i roto i te SpiderMonkey (ka heke iho nga huringa ki te whakakapi aunoa o nga poraka "#include").

I huri a Mozilla ki te whakamahi i te miihini korero noa me Chromium

Ko te herenga e whakarato ana ki a Irregexp nga ahuatanga motuhake V8 e tika ana, tae atu ki te whakahaere mahara me nga mahi hanga waehere, me nga hanganga raraunga tuatahi e whakatinanahia ana i runga i nga tikanga whakahaere mahara, nga kaihanga waehere, me nga hanganga SpiderMonkey.

Ma te whakahou ki te miihini RegExp ka taea e Firefox te tautoko i nga ahuatanga penei i nga hopunga ingoa, te mawhiti i nga karaehe tohu Unicode, te haki dotAll, me te aratau Titiro:

  • Nga roopu ingoa ka taea e koe te hono atu i nga wahanga o te aho kua tauritehia e te kii auau me nga ingoa motuhake hei utu mo nga tau rangatū o nga taurite (hei tauira, hei utu mo te "/(\d{4})-(\d{2})-(\d{ 2})/" ka taea e koe te tohu "/( ? \d{4})-(? \d{2})-(? \d{2})/" ka uru ki te tau kaua ma te hua[1], engari ma te hua.groups.year).
  • Karaehe mawhiti Ka tāpirihia e ngā pūāhua Unicode te \p{…} me te \P{…}, hei tauira, ko te \p{Number} ka tautuhi i ngā pūāhua katoa e taea ana me te ahua o ngā tau (tae atu ki ngā pūāhua pēnei i te ①), \p{Alphabetic} - reta (tae atu ki hieroglyphs ), \p{Math} — tohu pāngarau, etc.
  • Kara dotKatoa ka meinga te kopare "." tae atu ki nga tohu raina hou.
  • Aratau Titiro ki muri ka taea e koe te whakatau i roto i te kii auau ko tetahi tauira kei mua i tetahi atu (hei tauira, whakaritea ki te moni taara me te kore e hopu i te tohu taara).

I whakatinanahia te kaupapa me te whai waahi o nga kaiwhakawhanake V8, nana nei i mahi ki te whakaiti i te whakawhirinaki o Irregexp ki V8, me te neke i etahi ahuatanga kaore e taea te whakatinana i runga i te SpiderMonkey ki nga poraka "#ifdef" hauā. I kitea te painga o te mahi tahi. Mo ta raatau waahanga, kua tukuna e nga kaihanga Mozilla nga huringa ki a Irregexp e whakakore ana i etahi koretake me nga whakaritenga o te paerewa JavaScript me whakapai ake kounga waehere. I tua atu, i te wa o te whakamatautau a Firefox, ko nga hapa o mua kaore i kitea i roto i te waehere Irregexp, e arai ana i nga tukinga, i tautuhia me te whakatika.

Source: opennet.ru

Tāpiri i te kōrero