D'athraigh Mozilla go dtí inneall slonn coitianta coitianta a úsáid le Cróimiam

Inneall JavaScript SpiderMonkey a úsáidtear i Firefox aistrithe feidhm nuashonraithe de nathanna rialta bunaithe ar an gcód reatha a úsáid Irregexp ón inneall V8 JavaScript a úsáidtear i mbrabhsálaithe bunaithe ar an tionscadal Cróimiam. Tairgfear cur i bhfeidhm nua RegExp i Firefox 78, sceidealta le haghaidh 30 Meitheamh, agus tabharfaidh sé na heilimintí ECMAScript go léir a bhaineann le habairtí rialta chuig an mbrabhsálaí.

Tugtar faoi deara go bhfuil an t-inneall RegExp i SpiderMonkey deartha mar chomhpháirt ar leith, rud a fhágann go bhfuil sé sách neamhspleách agus oiriúnach le haghaidh athsholáthair gan gá le hathruithe suntasacha a dhéanamh ar an mbonn cód. Mar gheall ar mhodúlacht bhí sé indéanta in 2014 forc den inneall Irregexp ó V8 a chur in ionad inneall YARR RegExp a úsáideadh ar dtús i Firefox. Tá Irregexp ceangailte leis an V8 API, ceangailte leis an mbailitheoir truflais, agus úsáideann sé ionadaíocht sreang-shonrach V8 agus múnla réad. Agus oiriúnú á dhéanamh ar API inmheánach SpiderMonkey in 2014, rinneadh an t-inneall Irregexp a athscríobh go páirteach, agus athruithe ag teacht chun cinn, amhail an bhratach '\u', nuair is féidir aistrithe isteach i bhforc arna chothabháil ag Mozilla.

Ar an drochuair, tá sé deacair agus dian ar acmhainní a choimeád ar bun forc sioncronaithe. Le teacht na ngnéithe nua a bhaineann le habairtí rialta i gcaighdeán ECMAScript 2018, smaoinigh forbróirí Mozilla ar conas é a dhéanamh níos éasca athruithe a aistriú ó Irregexp. Mar bhealach amach, moladh coincheap fillte, a cheadaíonn úsáid a bhaint as an inneall Irregexp beagnach gan athrú i SpiderMonkey (ní laghdaítear na hathruithe ach go dtí athsholáthar uathoibríoch bloic “#include”).

D'athraigh Mozilla go dtí inneall slonn coitianta coitianta a úsáid le Cróimiam

Soláthraíonn an creat na cumais V8-shonracha is gá do Irregexp, lena n-áirítear feidhmeanna bainistíochta cuimhne agus giniúna cód, chomh maith le struchtúir sonraí dúchasacha a chuirtear i bhfeidhm ag baint úsáide as innill bhainistíochta cuimhne, gineadóirí cód, agus struchtúir SpiderMonkey.

Má dhéantar an t-inneall RegExp a nuashonrú, beidh Firefox in ann tacú le gnéithe ar nós gabhálacha ainmnithe, aicme carachtar Unicode ag éalú, an bhratach dotAll, agus mód Lookbehind:

  • Grúpaí ainmnithe ligfidh tú duit codanna de theaghrán a mheaitseáil le slonn rialta a cheangal le hainmneacha ar leith in ionad sraithuimhreacha meaitseanna (mar shampla, in ionad "/(\d{4})-(\d{2})-(\d{ 2})/” is féidir leat a shonrú “/( ? \d{4})-(? \d{2})-(? \d{2})/" agus rochtain a fháil ar an mbliain ní trí thoradh[1], ach trí result.groups.year).
  • Ranganna éalú Cuireann carachtair Unicode tógálacha \p{...} agus \P{...} leis, mar shampla, sainmhíníonn \p{Uimhir} gach carachtar féideartha a léiríonn uimhreacha (lena n-áirítear carachtair mar ①), \p{ Aibítir} - litreacha (lena n-áirítear hieroglyphs ), \p{ Math} — siombailí matamaitice, etc.
  • Bratach poncAll is cúis leis an "." masc le tine. lena n-áirítear carachtair fothaí líne.
  • Mód Féach ar chúl ligeann duit a chinneadh i slonn rialta go dtagann patrún amháin roimh patrún eile (mar shampla, méid dollar a mheaitseáil gan an comhartha dollar a ghabháil).

Rinneadh an tionscadal le rannpháirtíocht fhorbróirí V8, a d’oibrigh, as a gcuid féin, chun spleáchas Irregexp ar V8 a laghdú, agus a d’aistrigh roinnt gnéithe nach féidir a chur i bhfeidhm ag baint úsáide as SpiderMonkey isteach i mbloic “#ifdef” a dhíchumasú. Tháinig an comhar chun tairbhe don dá thaobh. Ar a son féin, chuir forbróirí Mozilla athruithe isteach ar Irregexp a chuir deireadh le cuid acu neamhréireachtaí le riachtanais an chaighdeáin JavaScript agus ag feabhsú caighdeán cód. Chomh maith leis sin, le linn tástála doiléir ar Firefox, aithníodh agus cuireadh deireadh le hearráidí nár tugadh faoi deara roimhe seo sa chód Irregexp as ar tharla tuairteanna.

Foinse: oscailtenet.ru

Add a comment