Mozilla switched ad usus communis regularis expressionis machinam cum Chromium

SpiderMonkey JavaScript engine in Firefox transfertur ut an updated exsecutionem expressionum regularium secundum hodiernam codicem Irregexp from the V8 JavaScript engine used in browsers based on the Chromium project. Nova exsecutio RegExp offeretur in Firefox 78, mense Iunio horarium 30, et omnia elementa ECMAscripti absentis ad regulas expressiones regularibus pertinentibus afferet.

Notatur machinam RegExp in SpiderMonkey designatum esse ut componentes separatum, quod eum relative independens et idoneum ad reponendam facit sine necessitate ad significantes mutationes in codice basis. Modularitas hoc anno 2014 fieri potuit ut machinam YARR RegExp in Firefox in Firefox adhibitam cum furca machinae Irregexp ex V8. Irregemp cum V8 API ligatur, palam palam ligatur, et V8-specialis chorda repraesentatione et obiecto exemplari utitur. In processu accommodationis ad internum API SpiderMonkey in 2014, machina Irregexp partim rescripta erat, et mutationes emergentes, sicut vexillum "\u", ubi fieri potest. transfertur in furca defenditur Mozilla.

Infeliciter, furca synchronisata servans difficile est et intensivum ingeniose. Adventu novis notis ad expressiones regulares in ECMAscript 2018 vexillum relatas, Mozilla tincidunt cogitabat quomodo facilius migraret mutationes ab Irregexp. Ut exitum, conceptio involutio proposita est, quae utens machinam paene immutatam Irregexp in SpiderMonkey (novationes tantum reducuntur ad schedulas "#includere".

Mozilla switched ad usus communis regularis expressionis machinam cum Chromium

In compage Irregexp praebet necessarias facultates speciales V8, inclusas functiones generationis et memoriam administrationis et codicem generationis, necnon structuras datas indigenas, quae ad effectum deducendi sunt machinas, codicem generantium et SpiderMonkey structuras utentes.

Adaequationis machinam RegExp permittet Firefox ut lineamenta quae nominatae captivorum sustineat, indoles Unicode fugit genus, vexillum dotall, et modum Lookbehind:

  • Sodalitates nomine permittere te ut partes chordae regulari expressionis regulari compositus cum nominibus specificis pro numerorum par (exempli gratia, pro "/(\d{4})-(\d{2})-(\d{ 2})/" specificare potes "/( ? \d{4})-(? \d{2})-(? \d{2})/" et accessum ad annum non per exitum[1], sed per eventum.groups.year).
  • elapsus classes Unicode characteres additae constructiones \p{...} et \P{...}, e.g., \p{Number} omnes characteres possibilis definit numeri depingentes (characteres quasi β‘ ), \p{Alphabetic} - epistolas (including hieroglypha ) \p{Math} β€” symbola mathematica, etc.
  • vexillum dotAll facit". " larva igni. including line feed characters.
  • regimen immutata Lookbehind sino ut in regulari dictione unum exemplar alterum praecedat (exempli gratia, congruens pupa amount sine signo pupa capientis).

Propositum factum est cum participatione tincidunt V8, qui, ex parte sua, dependentiam Irregexp in V8 reducere laboravit, et nonnullas notas movit, quae SpiderMonkey in inactivandi "#ifdef" caudices utendo perfici non possunt. Cooperatio evenit ut in mutuam rem prosit. Ex parte sua Mozilla tincidunt mutationes submisit Irregemp qui aliquas eliminat repugnantia cum requisitis JavaScript vexillum and improving codicem qualitatis. Etiam, per insanas probationes Firefox, errores antea ignoti in codice Irregexp, qui fragores adduxit, notati sunt et eliminati.

Source: opennet.ru