Mozilla e fetohetse ho sebelisa enjine e tloaelehileng ea mantsoe e nang le Chromium

SpiderMonkey JavaScript enjene e sebelisitsoeng ho Firefox fetoletsoe ho sebelisa ts'ebetsong e ntlafalitsoeng ea lipolelo tse tloaelehileng ho latela khoutu ea hona joale Irregexp ho tsoa ho enjine ea V8 JavaScript e sebelisoang ho libatli tse ipapisitseng le projeke ea Chromium. Ts'ebetsong e ncha ea RegExp e tla fanoa ho Firefox 78, e reriloeng ka la 30 Phuptjane, 'me e tla tlisa lintlha tsohle tse sieo tsa ECMAScript tse amanang le mantsoe a tloaelehileng ho sebatli.

Hoa hlokomeloa hore enjene ea RegExp ho SpiderMonkey e entsoe e le karolo e arohaneng, e etsang hore e be e batlang e ikemetse ebile e loketse ho nkeloa sebaka ntle le tlhokahalo ea ho etsa liphetoho tse kholo ho motheo oa khoutu. Modularity e entse hore ho khonehe ka 2014 ho nka sebaka sa enjene ea YARR RegExp e neng e sebelisoa qalong ho Firefox ka fereko ea enjene ea Irregexp e tsoang V8. Irregexp e tlameletsoe ho V8 API, e tlameletsoe ho mo bokellang lithōle, 'me e sebelisa setšoantšo sa likhoele tse khethehileng tsa V8 le mohlala oa ntho. Ts'ebetsong ea ho ikamahanya le API ea ka hare ea SpiderMonkey ka 2014, enjene ea Irregexp e ile ea ngoloa bocha, le liphetoho tse hlahang, joalo ka folakha ea '\u', moo ho khonehang. fetisetsoa ho kena ferekong e hlokometsoeng ke Mozilla.

Ka bomalimabe, ho boloka fereko e kopantsoeng ho thata ebile ho na le lisebelisoa tse ngata. Ka ho fihla ha likarolo tse ncha tse amanang le lipolelo tse tloaelehileng ho ECMAScript 2018 standard, baetsi ba Mozilla ba ile ba nahana ka mokhoa oa ho etsa hore ho be bonolo ho falla liphetoho ho tloha ho Irregexp. E le mokhoa oa ho tsoa, ​​ho ile ha etsoa tlhahiso ea khopolo ea ho phuthela, e lumellang ho sebelisa enjene ea Irregexp e batlang e sa fetohe ho SpiderMonkey (liphetoho li fokotsehile feela ho fetola ka mokhoa o itekanetseng oa "#include" blocks).

Mozilla e fetohetse ho sebelisa enjine e tloaelehileng ea mantsoe e nang le Chromium

Moralo ona o fana ka Irregexp ka bokhoni bo khethehileng ba V8, ho kenyelletsa taolo ea mohopolo le mesebetsi ea tlhahiso ea khoutu, hammoho le meaho ea data ea matsoalloa e kengoang ts'ebetsong ho sebelisoa lienjineri tsa taolo ea memori, lijenereithara tsa khoutu, le meaho ea SpiderMonkey.

Ho nchafatsa enjine ea RegExp ho tla lumella Firefox ho ts'ehetsa likarolo tse joalo ka ho hapa mabitso, ho phonyoha ha sehlopha sa litlhaku tsa Unicode, folakha ea dotAll, le mokhoa oa Lookbehind:

  • Lihlopha tse reheletsoeng e u lumella ho amahanya likarolo tsa khoele e tsamaellanang le polelo e tloaelehileng e nang le mabitso a itseng ho fapana le linomoro tsa serial tse tšoanang (mohlala, sebakeng sa “/(\d{4})-(\d{2})-(\d{ 2})/” o ka hlakisa “/( ? \d{4})-(? \d{2})-(? \d{2})/" 'me u fihlele selemo eseng ka sephetho[1], empa ka sephetho.groups.year).
  • Litlelase tsa ho baleha Litlhaku tsa Unicode li eketsa meaho \p{...} le \P{...}, mohlala, \p{Number} e hlalosa litlhaku tse ka bang teng tse bontšang linomoro (ho kenyeletsoa litlhaku tse kang ①), \p{Alphabetic} - litlhaku (ho kenyeletsoa hieroglyphs ), \p{Math} - matšoao a lipalo, joalo-joalo.
  • Senya dotAll e baka hore "." mask a chese. ho kenyelletsa le litlhaku tsa phepelo ea mohala.
  • Mokhoa Sheba ka morao e u fa monyetla oa ho tseba ka polelo e tloaelehileng hore mohlala o le mong o tla pele ho o mong (mohlala, ho bapisa chelete ea dollar ntle le ho hapa letšoao la dollar).

Morero o ile oa etsoa ka ho kenya letsoho ha baetsi ba V8, bao, ka karolo ea bona, ba ileng ba sebetsa ho fokotsa ho itšetleha ha Irregexp ho V8, 'me ba tsamaisa likarolo tse ling tse ke keng tsa kenngoa ts'ebetsong ka SpiderMonkey ho thibela "#ifdef" li-blocks. Tšebelisano-'moho e ile ea thusa bohle. Bakeng sa bona, bahlahisi ba Mozilla ba kentse liphetoho ho Irregexp tse felisang tse ling ho se lumellane ka litlhoko tsa maemo a JavaScript le ntlafatsa boleng ba khoutu. Hape, nakong ea tlhahlobo e makatsang ea Firefox, liphoso tse neng li sa hlokomeloe pele ho khoutu ea Irregexp tse lebisitseng likotsing li ile tsa tsejoa le ho felisoa.

Source: opennet.ru

Eketsa ka tlhaloso