SpiderMonkey ጃቫስክሪፕት ሞተር በፋየርፎክስ ውስጥ ጥቅም ላይ ውሏል
በ SpiderMonkey ውስጥ ያለው የ RegExp ሞተር እንደ የተለየ አካል የተነደፈ ሲሆን ይህም በአንጻራዊነት ገለልተኛ እና በኮዱ መሠረት ላይ ጉልህ ለውጦችን ማድረግ ሳያስፈልገው ለመተካት ተስማሚ ያደርገዋል። ሞዱላሪቲ እ.ኤ.አ. በ 2014 በፋየርፎክስ ውስጥ በመጀመሪያ ጥቅም ላይ የዋለውን YARR RegExp ሞተርን በኢሬግ ኤክስፕፕ ኢንጂን ከቪ8 ለመተካት አስችሏል። Irregexp ከV8 ኤፒአይ ጋር የተሳሰረ፣ ከቆሻሻ ሰብሳቢው ጋር የተሳሰረ እና V8-ተኮር የሕብረቁምፊ ውክልና እና የነገር ሞዴል ይጠቀማል። እ.ኤ.አ. በ 2014 ከ SpiderMonkey ውስጣዊ ኤፒአይ ጋር በመላመድ ሂደት ውስጥ የኢሬግክስክስ ሞተር በከፊል እንደገና ተፃፈ እና በተቻለ መጠን እንደ '\u' ባንዲራ ያሉ አዳዲስ ለውጦች
እንደ አለመታደል ሆኖ፣ የተመሳሰለውን ሹካ ማቆየት ከባድ እና ብዙ ሀብትን የሚጠይቅ ነው። በECMAScript 2018 መስፈርት ውስጥ ከመደበኛ አገላለጾች ጋር የተያያዙ አዳዲስ ባህሪያት በመምጣታቸው፣የሞዚላ ገንቢዎች ከኢሬግ ኤክስፕስ ለውጦችን እንዴት በቀላሉ ማዛወር እንደሚችሉ አስበው ነበር። እንደ መውጫ ፣ የመጠቅለያ ጽንሰ-ሀሳብ ቀርቧል ፣ ይህም በ SpiderMonkey ውስጥ ከሞላ ጎደል ያልተለወጠውን የኢሬግክስክስ ሞተር ለመጠቀም ያስችላል (ለውጦቹ የሚቀነሱት የ“#ጨምሮ” ብሎኮችን በራስ ሰር መተካት ብቻ ነው)።
ማዕቀፉ የማህደረ ትውስታ አስተዳደር እና ኮድ የማመንጨት ተግባራትን እንዲሁም የማህደረ ትውስታ አስተዳደር ሞተሮችን፣ የኮድ ጀነሬተሮችን እና የ 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" ብሎኮችን አሰናክሏል። ትብብሩ የጋራ ተጠቃሚ ሆነ። የሞዚላ ገንቢዎች በበኩላቸው የተወሰኑትን የሚያስወግዱ ለውጦችን ለኢሬግ ኤክስፕ አስገብተዋል።
ምንጭ: opennet.ru