ಮೊಜಿಲ್ಲಾ Chromium ನೊಂದಿಗೆ ಸಾಮಾನ್ಯ ನಿಯಮಿತ ಎಕ್ಸ್‌ಪ್ರೆಶನ್ ಎಂಜಿನ್ ಅನ್ನು ಬಳಸಲು ಬದಲಾಯಿಸಿತು

ಸ್ಪೈಡರ್ ಮಂಕಿ ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್ ಎಂಜಿನ್ ಅನ್ನು ಫೈರ್‌ಫಾಕ್ಸ್‌ನಲ್ಲಿ ಬಳಸಲಾಗಿದೆ ವರ್ಗಾಯಿಸಲಾಗಿದೆ ಪ್ರಸ್ತುತ ಕೋಡ್ ಅನ್ನು ಆಧರಿಸಿ ನಿಯಮಿತ ಅಭಿವ್ಯಕ್ತಿಗಳ ನವೀಕರಿಸಿದ ಅನುಷ್ಠಾನವನ್ನು ಬಳಸಲು Irregexp Chromium ಯೋಜನೆಯ ಆಧಾರದ ಮೇಲೆ ಬ್ರೌಸರ್‌ಗಳಲ್ಲಿ ಬಳಸಲಾಗುವ V8 JavaScript ಎಂಜಿನ್‌ನಿಂದ. RegExp ನ ಹೊಸ ಅಳವಡಿಕೆಯನ್ನು ಜೂನ್ 78 ರಂದು ಫೈರ್‌ಫಾಕ್ಸ್ 30 ನಲ್ಲಿ ನೀಡಲಾಗುವುದು ಮತ್ತು ಸಾಮಾನ್ಯ ಅಭಿವ್ಯಕ್ತಿಗಳಿಗೆ ಸಂಬಂಧಿಸಿದ ಎಲ್ಲಾ ಕಾಣೆಯಾದ ECMAScript ಅಂಶಗಳನ್ನು ಬ್ರೌಸರ್‌ಗೆ ತರುತ್ತದೆ.

SpiderMonkey ನಲ್ಲಿನ RegExp ಎಂಜಿನ್ ಅನ್ನು ಪ್ರತ್ಯೇಕ ಘಟಕವಾಗಿ ವಿನ್ಯಾಸಗೊಳಿಸಲಾಗಿದೆ ಎಂದು ಗಮನಿಸಲಾಗಿದೆ, ಇದು ಕೋಡ್ ಬೇಸ್ಗೆ ಗಮನಾರ್ಹ ಬದಲಾವಣೆಗಳನ್ನು ಮಾಡುವ ಅಗತ್ಯವಿಲ್ಲದೇ ತುಲನಾತ್ಮಕವಾಗಿ ಸ್ವತಂತ್ರ ಮತ್ತು ಬದಲಿಗಾಗಿ ಸೂಕ್ತವಾಗಿದೆ. ಫೈರ್‌ಫಾಕ್ಸ್‌ನಲ್ಲಿ ಮೂಲತಃ ಬಳಸಿದ YARR RegExp ಎಂಜಿನ್ ಅನ್ನು V2014 ನಿಂದ Iregexp ಎಂಜಿನ್‌ನ ಫೋರ್ಕ್‌ನೊಂದಿಗೆ ಬದಲಾಯಿಸಲು ಮಾಡ್ಯುಲಾರಿಟಿ 8 ರಲ್ಲಿ ಸಾಧ್ಯವಾಗಿಸಿತು. Irregexp ಅನ್ನು V8 API ಗೆ ಜೋಡಿಸಲಾಗಿದೆ, ಕಸ ಸಂಗ್ರಾಹಕಕ್ಕೆ ಬಂಧಿಸಲಾಗಿದೆ ಮತ್ತು V8-ನಿರ್ದಿಷ್ಟ ಸ್ಟ್ರಿಂಗ್ ಪ್ರಾತಿನಿಧ್ಯ ಮತ್ತು ವಸ್ತು ಮಾದರಿಯನ್ನು ಬಳಸುತ್ತದೆ. 2014 ರಲ್ಲಿ SpiderMonkey ನ ಆಂತರಿಕ API ಗೆ ಹೊಂದಿಕೊಳ್ಳುವ ಪ್ರಕ್ರಿಯೆಯಲ್ಲಿ, Irregexp ಎಂಜಿನ್ ಅನ್ನು ಭಾಗಶಃ ಪುನಃ ಬರೆಯಲಾಯಿತು ಮತ್ತು ಸಾಧ್ಯವಿರುವಲ್ಲಿ '\u' ಫ್ಲ್ಯಾಗ್‌ನಂತಹ ಉದಯೋನ್ಮುಖ ಬದಲಾವಣೆಗಳು ವರ್ಗಾಯಿಸಲಾಗಿದೆ ಮೊಜಿಲ್ಲಾ ನಿರ್ವಹಿಸುವ ಫೋರ್ಕ್ ಆಗಿ.

ದುರದೃಷ್ಟವಶಾತ್, ಸಿಂಕ್ರೊನೈಸ್ ಮಾಡಿದ ಫೋರ್ಕ್ ಅನ್ನು ನಿರ್ವಹಿಸುವುದು ಕಷ್ಟ ಮತ್ತು ಸಂಪನ್ಮೂಲ ತೀವ್ರವಾಗಿದೆ. ECMAScript 2018 ಸ್ಟ್ಯಾಂಡರ್ಡ್‌ನಲ್ಲಿ ನಿಯಮಿತ ಅಭಿವ್ಯಕ್ತಿಗಳಿಗೆ ಸಂಬಂಧಿಸಿದ ಹೊಸ ವೈಶಿಷ್ಟ್ಯಗಳ ಆಗಮನದೊಂದಿಗೆ, Mozilla ಡೆವಲಪರ್‌ಗಳು Iregexp ನಿಂದ ಬದಲಾವಣೆಗಳನ್ನು ಸುಲಭವಾಗಿ ಸ್ಥಳಾಂತರಿಸುವುದು ಹೇಗೆ ಎಂದು ಯೋಚಿಸಿದ್ದಾರೆ. ಒಂದು ಮಾರ್ಗವಾಗಿ, ಸುತ್ತುವ ಪರಿಕಲ್ಪನೆಯನ್ನು ಪ್ರಸ್ತಾಪಿಸಲಾಯಿತು, ಇದು SpiderMonkey ನಲ್ಲಿ ಬಹುತೇಕ ಬದಲಾಗದ Irregexp ಎಂಜಿನ್ ಅನ್ನು ಬಳಸಲು ಅನುಮತಿಸುತ್ತದೆ (ಬದಲಾವಣೆಗಳನ್ನು "#include" ಬ್ಲಾಕ್‌ಗಳ ಸ್ವಯಂಚಾಲಿತ ಬದಲಿಯಾಗಿ ಮಾತ್ರ ಕಡಿಮೆ ಮಾಡಲಾಗಿದೆ).

ಮೊಜಿಲ್ಲಾ Chromium ನೊಂದಿಗೆ ಸಾಮಾನ್ಯ ನಿಯಮಿತ ಎಕ್ಸ್‌ಪ್ರೆಶನ್ ಎಂಜಿನ್ ಅನ್ನು ಬಳಸಲು ಬದಲಾಯಿಸಿತು

ಫ್ರೇಮ್‌ವರ್ಕ್ ಅಗತ್ಯ V8-ನಿರ್ದಿಷ್ಟ ಸಾಮರ್ಥ್ಯಗಳೊಂದಿಗೆ Iregexp ಅನ್ನು ಒದಗಿಸುತ್ತದೆ, ಮೆಮೊರಿ ನಿರ್ವಹಣೆ ಮತ್ತು ಕೋಡ್ ಉತ್ಪಾದನೆಯ ಕಾರ್ಯಗಳು, ಹಾಗೆಯೇ ಮೆಮೊರಿ ಮ್ಯಾನೇಜ್‌ಮೆಂಟ್ ಎಂಜಿನ್‌ಗಳು, ಕೋಡ್ ಜನರೇಟರ್‌ಗಳು ಮತ್ತು SpiderMonkey ರಚನೆಗಳನ್ನು ಬಳಸಿಕೊಂಡು ಕಾರ್ಯಗತಗೊಳಿಸಲಾದ ಸ್ಥಳೀಯ ಡೇಟಾ ರಚನೆಗಳು.

RegExp ಎಂಜಿನ್ ಅನ್ನು ಅಪ್‌ಡೇಟ್ ಮಾಡುವುದರಿಂದ ಹೆಸರಿಸಲಾದ ಕ್ಯಾಪ್ಚರ್‌ಗಳು, ಯುನಿಕೋಡ್ ಕ್ಯಾರೆಕ್ಟರ್ ಕ್ಲಾಸ್ ಎಸ್ಕೇಪಿಂಗ್, ಡಾಟ್‌ಆಲ್ ಫ್ಲ್ಯಾಗ್ ಮತ್ತು ಲುಕ್‌ಬಿಹೈಂಡ್ ಮೋಡ್‌ನಂತಹ ವೈಶಿಷ್ಟ್ಯಗಳನ್ನು ಬೆಂಬಲಿಸಲು ಫೈರ್‌ಫಾಕ್ಸ್ ಅನುಮತಿಸುತ್ತದೆ:

  • ಹೆಸರಿಸಿದ ಗುಂಪುಗಳು ಪಂದ್ಯಗಳ ಸರಣಿ ಸಂಖ್ಯೆಗಳ ಬದಲಿಗೆ ನಿರ್ದಿಷ್ಟ ಹೆಸರುಗಳೊಂದಿಗೆ ನಿಯಮಿತ ಅಭಿವ್ಯಕ್ತಿಯಿಂದ ಹೊಂದಿಕೆಯಾಗುವ ಸ್ಟ್ರಿಂಗ್‌ನ ಭಾಗಗಳನ್ನು ಸಂಯೋಜಿಸಲು ನಿಮಗೆ ಅನುಮತಿಸುತ್ತದೆ (ಉದಾಹರಣೆಗೆ, ಬದಲಿಗೆ “/(\d{4})-(\d{2})-(\d{ 2})/” ನೀವು ಸೂಚಿಸಬಹುದು “/( ? \d{4})-(? \d{2})-(? \d{2})/" ಮತ್ತು ವರ್ಷವನ್ನು ಫಲಿತಾಂಶದ ಮೂಲಕ ಪ್ರವೇಶಿಸುವುದಿಲ್ಲ[1], ಆದರೆ result.groups.year ಮೂಲಕ).
  • ತರಗತಿಗಳಿಂದ ತಪ್ಪಿಸಿಕೊಳ್ಳುವುದು ಯುನಿಕೋಡ್ ಅಕ್ಷರಗಳು \p{...} ಮತ್ತು \P{...} ರಚನೆಗಳನ್ನು ಸೇರಿಸುತ್ತವೆ, ಉದಾಹರಣೆಗೆ, \p{Number} ಸಂಖ್ಯೆಗಳನ್ನು (① ನಂತಹ ಅಕ್ಷರಗಳನ್ನು ಒಳಗೊಂಡಂತೆ), \p{ಆಲ್ಫಾಬೆಟಿಕ್} - ಅಕ್ಷರಗಳನ್ನು (ಸೇರಿದಂತೆ) ಚಿತ್ರಿಸುವ ಎಲ್ಲಾ ಸಂಭಾವ್ಯ ಅಕ್ಷರಗಳನ್ನು ವ್ಯಾಖ್ಯಾನಿಸುತ್ತದೆ ಚಿತ್ರಲಿಪಿಗಳು ), \p{Math} — ಗಣಿತದ ಚಿಹ್ನೆಗಳು, ಇತ್ಯಾದಿ.
  • ಧ್ವಜ ಡಾಟ್ ಎಲ್ಲಾ "" ಮುಖವಾಡವು ಬೆಂಕಿಗೆ ಕಾರಣವಾಗುತ್ತದೆ. ಲೈನ್ ಫೀಡ್ ಅಕ್ಷರಗಳು ಸೇರಿದಂತೆ.
  • ಮೋಡ್ ಹಿಂದೆ ನೋಡಿ ಒಂದು ಮಾದರಿಯು ಇನ್ನೊಂದಕ್ಕೆ ಮುಂಚಿತವಾಗಿರುವುದನ್ನು ನಿಯಮಿತ ಅಭಿವ್ಯಕ್ತಿಯಲ್ಲಿ ನಿರ್ಧರಿಸಲು ನಿಮಗೆ ಅನುಮತಿಸುತ್ತದೆ (ಉದಾಹರಣೆಗೆ, ಡಾಲರ್ ಚಿಹ್ನೆಯನ್ನು ಸೆರೆಹಿಡಿಯದೆ ಡಾಲರ್ ಮೊತ್ತವನ್ನು ಹೊಂದಿಸುವುದು).

V8 ಡೆವಲಪರ್‌ಗಳ ಭಾಗವಹಿಸುವಿಕೆಯೊಂದಿಗೆ ಯೋಜನೆಯನ್ನು ಕೈಗೊಳ್ಳಲಾಯಿತು, ಅವರು V8 ನಲ್ಲಿ Irregexp ಅವಲಂಬನೆಯನ್ನು ಕಡಿಮೆ ಮಾಡಲು ಕೆಲಸ ಮಾಡಿದರು ಮತ್ತು SpiderMonkey ಅನ್ನು ಬಳಸಿಕೊಂಡು ಕಾರ್ಯಗತಗೊಳಿಸಲಾಗದ ಕೆಲವು ವೈಶಿಷ್ಟ್ಯಗಳನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಿ "#ifdef" ಬ್ಲಾಕ್‌ಗಳಿಗೆ ವರ್ಗಾಯಿಸಿದರು. ಸಹಕಾರವು ಪರಸ್ಪರ ಪ್ರಯೋಜನಕಾರಿಯಾಗಿದೆ. ಅವರ ಪಾಲಿಗೆ, Mozilla ಡೆವಲಪರ್‌ಗಳು Irregexp ಗೆ ಬದಲಾವಣೆಗಳನ್ನು ಸಲ್ಲಿಸಿದರು ಅದು ಕೆಲವನ್ನು ತೆಗೆದುಹಾಕುತ್ತದೆ ಅಸಂಗತತೆಗಳು ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್ ಮಾನದಂಡದ ಅವಶ್ಯಕತೆಗಳೊಂದಿಗೆ ಮತ್ತು ಸುಧಾರಿಸುತ್ತಿದೆ ಕೋಡ್ ಗುಣಮಟ್ಟ. ಅಲ್ಲದೆ, ಫೈರ್‌ಫಾಕ್ಸ್‌ನ ಅಸ್ಪಷ್ಟ ಪರೀಕ್ಷೆಯ ಸಮಯದಲ್ಲಿ, ಕ್ರ್ಯಾಶ್‌ಗಳಿಗೆ ಕಾರಣವಾದ Irregexp ಕೋಡ್‌ನಲ್ಲಿ ಹಿಂದೆ ಗಮನಿಸದ ದೋಷಗಳನ್ನು ಗುರುತಿಸಲಾಗಿದೆ ಮತ್ತು ತೆಗೆದುಹಾಕಲಾಗಿದೆ.

ಮೂಲ: opennet.ru

ಕಾಮೆಂಟ್ ಅನ್ನು ಸೇರಿಸಿ