Ghluais Mozilla gu bhith a’ cleachdadh einnsean abairt àbhaisteach cumanta le Chromium

Einnsean JavaScript SpiderMonkey air a chleachdadh ann am Firefox air a ghluasad gus buileachadh ùraichte de abairtean cunbhalach a chleachdadh stèidhichte air a’ chòd làithreach Irregexp bhon einnsean V8 JavaScript a thathar a’ cleachdadh ann am brobhsairean stèidhichte air a’ phròiseact Chromium. Thèid buileachadh ùr RegExp a thabhann ann am Firefox 78, clàraichte airson 30 Ògmhios, agus bheir e na h-eileamaidean ECMAScript a tha a dhìth co-cheangailte ri abairtean cunbhalach chun bhrobhsair.

Thathas a’ toirt fa-near gu bheil an einnsean RegExp ann an SpiderMonkey air a dhealbhadh mar phàirt air leth, a tha ga dhèanamh an ìre mhath neo-eisimeileach agus freagarrach airson a chuir na àite gun fheum air atharrachaidhean mòra a dhèanamh air bunait còd. Rinn modularity e comasach ann an 2014 an einnsean YARR RegExp a chaidh a chleachdadh an toiseach ann am Firefox a chuir an àite forc den einnsean Irregexp bho V8. Tha Irregexp ceangailte ris an V8 API, ceangailte ris an neach-cruinneachaidh sgudail, agus a’ cleachdadh riochdachadh sreang sònraichte V8 agus modail nì. Ann am pròiseas atharrachadh gu API a-staigh SpiderMonkey ann an 2014, chaidh an einnsean Irregexp ath-sgrìobhadh gu ìre, agus atharrachaidhean a’ tighinn am bàrr, leithid a’ bhratach ‘\u’, far an robh sin comasach. air a ghluasad ann am forc air a chumail suas le Mozilla.

Gu mì-fhortanach, tha e duilich agus dian air goireasan cumail suas forc sioncronaich. Le teachd feartan ùra co-cheangailte ri abairtean cunbhalach ann an inbhe ECMAScript 2018, smaoinich luchd-leasachaidh Mozilla air mar a dhèanadh e nas fhasa atharrachaidhean a ghluasad bho Irregexp. Mar dhòigh a-mach, chaidh bun-bheachd fillte a mholadh, a leigeas le bhith a’ cleachdadh an einnsean Irregexp cha mhòr gun atharrachadh ann an SpiderMonkey (tha na h-atharrachaidhean air an lughdachadh a-mhàin gu bhith ag ath-nuadhachadh bhlocaichean “#include”) gu fèin-ghluasadach.

Ghluais Mozilla gu bhith a’ cleachdadh einnsean abairt àbhaisteach cumanta le Chromium

Tha am frèam a’ toirt na comasan V8-sònraichte riatanach do Irregexp, a’ toirt a-steach riaghladh cuimhne agus gnìomhan gineadh còd, a bharrachd air structaran dàta dùthchasach a tha air an cur an gnìomh a’ cleachdadh einnseanan riaghlaidh cuimhne, gineadairean còd, agus structaran SpiderMonkey.

Leigidh ùrachadh an einnsean RegExp le Firefox taic a thoirt do fheartan leithid glacaidhean ainmichte, clas caractar Unicode a’ teicheadh, a’ bhratach dotAll, agus modh Lookbehind:

  • Buidhnean ainmichte leigeil leat pàirtean de shreang a cheangal ri abairt àbhaisteach le ainmean sònraichte an àite àireamhan sreathach de gheamannan (mar eisimpleir, an àite “/(\d{4})-(\d{2})-(\d{ 2})/” faodaidh tu a shònrachadh “/( ? \d{4})-(? \d{2})-(? \d{2})/" agus faigh cothrom air a' bhliadhna chan ann tro thoradh[1], ach tro result.groups.year).
  • Clasaichean teicheadh Cuiridh caractaran Unicode togail \p{...} agus \P{...}, mar eisimpleir, tha \p{Number} a’ mìneachadh a h-uile caractar a dh’ fhaodadh a bhith a’ sealltainn àireamhan (a’ gabhail a-steach caractaran mar ①), \p{Aibidil} - litrichean (a’ gabhail a-steach hieroglyphs ), \p{Math} - samhlaidhean matamataigeach, msaa.
  • Didòmhnaich dotAll ag adhbhrachadh am masg “.” losgadh. gabhail a-steach caractaran biadh loidhne.
  • Modh Seall air cùlaibh a’ leigeil leat faighinn a-mach ann an abairt àbhaisteach gu bheil aon phàtran air thoiseach air fear eile (mar eisimpleir, a’ maidseadh suim dolar gun a bhith a’ glacadh soidhne an dolar).

Chaidh am pròiseact a dhèanamh le com-pàirt luchd-leasachaidh V8, a bha, airson an cuid, ag obair gus eisimeileachd Irregexp air V8 a lughdachadh, agus ghluais iad cuid de fheartan nach gabh a chuir an gnìomh le bhith a’ cleachdadh SpiderMonkey gu blocaichean “#ifdef” a dhì-cheadachadh. Thionndaidh an co-obrachadh a-mach gu bhith buannachdail dha chèile. Airson an cuid, chuir luchd-leasachaidh Mozilla a-steach atharrachaidhean gu Irregexp a chuir às do chuid neo-chunbhalachd le riatanasan inbhe JavaScript agus a' leasachadh càileachd còd. Cuideachd, aig àm deuchainn fuzzing air Firefox, chaidh mearachdan nach deach mothachadh roimhe seo ann an còd Irregexp a lean gu tubaistean a chomharrachadh agus a chuir às.

Source: fosgailtenet.ru

Cuir beachd ann