ሞዚላ ከChromium ጋር የተለመደ የመደበኛ መግለጫ ሞተርን ወደ መጠቀም ቀይሯል።

SpiderMonkey ጃቫስክሪፕት ሞተር በፋየርፎክስ ውስጥ ጥቅም ላይ ውሏል ተላልፏል አሁን ባለው ኮድ መሰረት የተሻሻለ የመደበኛ አገላለጾችን ትግበራ ለመጠቀም ኢሬግክስፕ በChromium ፕሮጀክት ላይ በመመስረት በአሳሾች ውስጥ ጥቅም ላይ ከሚውለው V8 JavaScript ሞተር። አዲሱ የ RegExp አተገባበር በፋየርፎክስ 78 ለጁን 30 በታቀደለት ጊዜ ይቀርባል እና ከመደበኛ አገላለጾች ጋር ​​የተያያዙ ሁሉንም የጎደሉትን ECMAScript ክፍሎች ወደ አሳሹ ያመጣል።

በ SpiderMonkey ውስጥ ያለው የ RegExp ሞተር እንደ የተለየ አካል የተነደፈ ሲሆን ይህም በአንጻራዊነት ገለልተኛ እና በኮዱ መሠረት ላይ ጉልህ ለውጦችን ማድረግ ሳያስፈልገው ለመተካት ተስማሚ ያደርገዋል። ሞዱላሪቲ እ.ኤ.አ. በ 2014 በፋየርፎክስ ውስጥ በመጀመሪያ ጥቅም ላይ የዋለውን YARR RegExp ሞተርን በኢሬግ ኤክስፕፕ ኢንጂን ከቪ8 ለመተካት አስችሏል። Irregexp ከV8 ኤፒአይ ጋር የተሳሰረ፣ ከቆሻሻ ሰብሳቢው ጋር የተሳሰረ እና V8-ተኮር የሕብረቁምፊ ውክልና እና የነገር ሞዴል ይጠቀማል። እ.ኤ.አ. በ 2014 ከ SpiderMonkey ውስጣዊ ኤፒአይ ጋር በመላመድ ሂደት ውስጥ የኢሬግክስክስ ሞተር በከፊል እንደገና ተፃፈ እና በተቻለ መጠን እንደ '\u' ባንዲራ ያሉ አዳዲስ ለውጦች ተላልፏል በሞዚላ ወደተጠበቀው ሹካ ውስጥ።

እንደ አለመታደል ሆኖ፣ የተመሳሰለውን ሹካ ማቆየት ከባድ እና ብዙ ሀብትን የሚጠይቅ ነው። በECMAScript 2018 መስፈርት ውስጥ ከመደበኛ አገላለጾች ጋር ​​የተያያዙ አዳዲስ ባህሪያት በመምጣታቸው፣የሞዚላ ገንቢዎች ከኢሬግ ኤክስፕስ ለውጦችን እንዴት በቀላሉ ማዛወር እንደሚችሉ አስበው ነበር። እንደ መውጫ ፣ የመጠቅለያ ጽንሰ-ሀሳብ ቀርቧል ፣ ይህም በ SpiderMonkey ውስጥ ከሞላ ጎደል ያልተለወጠውን የኢሬግክስክስ ሞተር ለመጠቀም ያስችላል (ለውጦቹ የሚቀነሱት የ“#ጨምሮ” ብሎኮችን በራስ ሰር መተካት ብቻ ነው)።

ሞዚላ ከChromium ጋር የተለመደ የመደበኛ መግለጫ ሞተርን ወደ መጠቀም ቀይሯል።

ማዕቀፉ የማህደረ ትውስታ አስተዳደር እና ኮድ የማመንጨት ተግባራትን እንዲሁም የማህደረ ትውስታ አስተዳደር ሞተሮችን፣ የኮድ ጀነሬተሮችን እና የ SpiderMonkey አወቃቀሮችን በመጠቀም የሚተገበሩ ቤተኛ ዳታ አወቃቀሮችን ጨምሮ Irregexp በአስፈላጊ V8-ተኮር ችሎታዎች ያቀርባል።

የ RegExp ኤንጂን ማዘመን ፋየርፎክስ እንደ የተሰየሙ ቀረጻዎች፣ የዩኒኮድ ቁምፊ ክፍል ማምለጥ፣ የነጥብAll ባንዲራ እና Lookbehind ሁነታን ለመደገፍ ያስችለዋል።

  • የተሰየሙ ቡድኖች በመደበኛ አገላለጽ የተዛመዱ የሕብረቁምፊ ክፍሎችን ከተከታታይ ግጥሚያዎች ይልቅ የተወሰኑ ስሞችን (ለምሳሌ ከ “/(\d{4}))-(\d{2})-(\d{2})-(\d{4}) ፈንታ (\d{ 2})/""/(? \መ{2})-(? \መ{1})-(? \d{XNUMX})/" እና ዓመቱን በውጤት[XNUMX] ሳይሆን በውጤት.groups.year) መድረስ።
  • ክፍሎችን ማምለጥ የዩኒኮድ ቁምፊዎች ግንባታዎችን \p{...} እና \P{...} ይጨምራሉ፣ ለምሳሌ \p{ቁጥር} ቁጥሮችን የሚያሳዩ ሁሉንም ሊሆኑ የሚችሉ ቁምፊዎችን ይገልጻል (እንደ ① ያሉ ቁምፊዎችን ጨምሮ)፣ \p{ፊደል} - ፊደሎችን (ጨምሮ ጨምሮ)። ሂሮግሊፍስ)፣ \p{ሒሳብ} — የሂሳብ ምልክቶች፣ ወዘተ.
  • ሰንደቅ ነጥብ ሁሉም የ "" ጭንብል እንዲቃጠል ያደርገዋል. የመስመር ምግብ ቁምፊዎችን ጨምሮ.
  • ሁናቴ ከኋላ ተመልከት በመደበኛ አገላለጽ አንድ ስርዓተ-ጥለት ከሌላው እንደሚቀድም እንዲወስኑ ይፈቅድልዎታል (ለምሳሌ የዶላር ምልክት ሳይይዙ የዶላር መጠንን ማዛመድ)።

ኘሮጀክቱ የተካሄደው የV8 ገንቢዎች በተገኙበት ሲሆን በበኩሉ የኢሬግ ኤክስፕፕን በ V8 ላይ ያለውን ጥገኝነት ለመቀነስ ሲሰሩ እና SpiderMonkey በመጠቀም ሊተገበሩ የማይችሉ አንዳንድ ባህሪያትን በማንቀሳቀስ "#ifdef" ብሎኮችን አሰናክሏል። ትብብሩ የጋራ ተጠቃሚ ሆነ። የሞዚላ ገንቢዎች በበኩላቸው የተወሰኑትን የሚያስወግዱ ለውጦችን ለኢሬግ ኤክስፕ አስገብተዋል። አለመጣጣም ከጃቫስክሪፕት መስፈርት መስፈርቶች ጋር እና ማሻሻል የኮድ ጥራት. እንዲሁም፣ በፋየርፎክስ ላይ ግራ የሚያጋባ ሙከራ በሚደረግበት ወቅት፣ ከዚህ ቀደም በ Irregexp ኮድ ውስጥ ወደ ብልሽት የሚመሩ ያልተስተዋሉ ስህተቶች ተለይተው ተወግደዋል።

ምንጭ: opennet.ru

አስተያየት ያክሉ