SpiderMonkey JavaScript āĻāĻā§āĻāĻŋāύ āĻĢāĻžāϝāĻŧāĻžāϰāĻĢāĻā§āϏ⧠āĻŦā§āϝāĻŦāĻšā§āϤ āĻšāϝāĻŧ āĻŦāϰā§āϤāĻŽāĻžāύ āĻā§āĻĄā§āϰ āĻāĻĒāϰ āĻāĻŋāϤā§āϤāĻŋ āĻāϰ⧠āύāĻŋāϝāĻŧāĻŽāĻŋāϤ āĻāĻā§āϏāĻĒā§āϰā§āĻļāύā§āϰ āĻāĻāĻāĻŋ āĻāĻĒāĻĄā§āĻ āĻŦāĻžāϏā§āϤāĻŦāĻžāϝāĻŧāύ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāϤ⧠āĻā§āϰā§āĻŽāĻŋāϝāĻŧāĻžāĻŽ āĻĒā§āϰāĻāϞā§āĻĒā§āϰ āĻāĻĒāϰ āĻāĻŋāϤā§āϤāĻŋ āĻāϰ⧠āĻŦā§āϰāĻžāĻāĻāĻžāϰ⧠āĻŦā§āϝāĻŦāĻšā§āϤ V8 āĻāĻžāĻāĻžāϏā§āĻā§āϰāĻŋāĻĒā§āĻ āĻāĻā§āĻāĻŋāύ āĻĨā§āĻā§āĨ¤ RegExp-āĻāϰ āύāϤā§āύ āĻŦāĻžāϏā§āϤāĻŦāĻžāϝāĻŧāύ Firefox 78-āĻ āĻ āĻĢāĻžāϰ āĻāϰāĻž āĻšāĻŦā§, 30 āĻā§āύā§āϰ āĻāύā§āϝ āύāĻŋāϰā§āϧāĻžāϰāĻŋāϤ, āĻāĻŦāĻ āĻŦā§āϰāĻžāĻāĻāĻžāϰ⧠āϰā§āĻā§āϞāĻžāϰ āĻāĻā§āϏāĻĒā§āϰā§āĻļāύ āϏāĻŽā§āĻĒāϰā§āĻāĻŋāϤ āϏāĻŽāϏā§āϤ āĻ āύā§āĻĒāϏā§āĻĨāĻŋāϤ ECMAScript āĻāĻĒāĻžāĻĻāĻžāύ āύāĻŋāϝāĻŧā§ āĻāϏāĻŦā§āĨ¤
āĻāĻāĻŋ āĻāϞā§āϞā§āĻā§āϝ āϝ⧠SpiderMonkey-āĻ RegExp āĻāĻā§āĻāĻŋāύāĻāĻŋ āĻāĻāĻāĻŋ āĻĒā§āĻĨāĻ āĻāĻĒāĻžāĻĻāĻžāύ āĻšāĻŋāϏāĻžāĻŦā§ āĻĄāĻŋāĻāĻžāĻāύ āĻāϰāĻž āĻšāϝāĻŧā§āĻā§, āϝāĻž āĻā§āĻĄ āĻŦā§āϏ⧠āĻāϞā§āϞā§āĻāϝā§āĻā§āϝ āĻĒāϰāĻŋāĻŦāϰā§āϤāύ āύāĻž āĻāϰ⧠āĻāĻāĻŋāĻā§ āϤā§āϞāύāĻžāĻŽā§āϞāĻāĻāĻžāĻŦā§ āϏā§āĻŦāĻžāϧā§āύ āĻāĻŦāĻ āĻĒā§āϰāϤāĻŋāϏā§āĻĨāĻžāĻĒāύā§āϰ āĻāύā§āϝ āĻāĻĒāϝā§āĻā§āϤ āĻāϰ⧠āϤā§āϞā§āĨ¤ āĻŽāĻĄā§āϞāĻžāϰāĻŋāĻāĻŋ 2014 āϏāĻžāϞ⧠āĻĢāĻžāϝāĻŧāĻžāϰāĻĢāĻā§āϏ⧠āĻŦā§āϝāĻŦāĻšā§āϤ YARR RegExp āĻāĻā§āĻāĻŋāύāĻāĻŋāĻā§ V8 āĻĨā§āĻā§ Irregexp āĻāĻā§āĻāĻŋāύā§āϰ āĻāĻžāĻāĻāĻž āĻĻāĻŋāϝāĻŧā§ āĻĒā§āϰāϤāĻŋāϏā§āĻĨāĻžāĻĒāύ āĻāϰāĻž āϏāĻŽā§āĻāĻŦ āĻāϰā§āĻāĻŋāϞāĨ¤ Irregexp V8 API āĻāϰ āϏāĻžāĻĨā§ āĻāĻŦāĻĻā§āϧ, āĻāĻŦāϰā§āĻāύāĻž āϏāĻāĻā§āϰāĻšāĻāĻžāϰā§āϰ āϏāĻžāĻĨā§ āĻāĻŦāĻĻā§āϧ āĻāĻŦāĻ āĻāĻāĻāĻŋ V8-āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āϏā§āĻā§āϰāĻŋāĻ āĻāĻĒāϏā§āĻĨāĻžāĻĒāύāĻž āĻāĻŦāĻ āĻ āĻŦāĻā§āĻā§āĻ āĻŽāĻĄā§āϞ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§āĨ¤ 2014 āϏāĻžāϞ⧠SpiderMonkey-āĻāϰ āĻ āĻā§āϝāύā§āϤāϰā§āĻŖ API-āĻāϰ āϏāĻžāĻĨā§ āĻāĻžāĻĒ āĻāĻžāĻāϝāĻŧā§ āύā§āĻāϝāĻŧāĻžāϰ āĻĒā§āϰāĻā§āϰāĻŋāϝāĻŧāĻžāϝāĻŧ, Irregexp āĻāĻā§āĻāĻŋāύāĻā§ āĻāĻāĻļāĻŋāĻāĻāĻžāĻŦā§ āĻĒā§āύāϰā§āϞāĻŋāĻāύ āĻāϰāĻž āĻšāϝāĻŧā§āĻāĻŋāϞ āĻāĻŦāĻ āϝā§āĻāĻžāύ⧠āϏāĻŽā§āĻāĻŦ '\u' āĻĒāϤāĻžāĻāĻžāϰ āĻŽāϤ⧠āĻāĻĻā§āϝāĻŧāĻŽāĻžāύ āĻĒāϰāĻŋāĻŦāϰā§āϤāύāĻā§āϞāĻŋ āĻāϰāĻž āĻšāϝāĻŧā§āĻāĻŋāϞ Mozilla āĻĻā§āĻŦāĻžāϰāĻž āϰāĻā§āώāĻŖāĻžāĻŦā§āĻā§āώāĻŖ āĻāϰāĻž āĻāĻāĻāĻŋ āĻāĻžāĻāĻāĻžāϰ āĻŽāϧā§āϝā§āĨ¤
āĻĻā§āϰā§āĻāĻžāĻā§āϝāĻŦāĻļāϤ, āĻāĻāĻāĻŋ āϏāĻŋāĻā§āĻā§āϰā§āύāĻžāĻāĻāĻĄ āĻĢāϰā§āĻ āĻŦāĻāĻžāϝāĻŧ āϰāĻžāĻāĻž āĻāĻ āĻŋāύ āĻāĻŦāĻ āϏāĻŽā§āĻĒāĻĻ āύāĻŋāĻŦāĻŋāĻĄāĻŧāĨ¤ ECMAScript 2018 āϏā§āĻā§āϝāĻžāύā§āĻĄāĻžāϰā§āĻĄā§ āϰā§āĻā§āϞāĻžāϰ āĻāĻā§āϏāĻĒā§āϰā§āĻļāύ āϏāĻŽā§āĻĒāϰā§āĻāĻŋāϤ āύāϤā§āύ āĻŦā§āĻļāĻŋāώā§āĻā§āϝā§āϰ āĻāĻŦāĻŋāϰā§āĻāĻžāĻŦā§āϰ āϏāĻžāĻĨā§, Mozilla āĻĄā§āĻā§āϞāĻĒāĻžāϰāϰāĻž Irregexp āĻĨā§āĻā§ āĻĒāϰāĻŋāĻŦāϰā§āϤāύāĻā§āϞāĻŋ āϏā§āĻĨāĻžāύāĻžāύā§āϤāϰāĻŋāϤ āĻāϰāĻž āϏāĻšāĻ āĻāϰāĻžāϰ āĻŦāĻŋāώāϝāĻŧā§ āĻāĻŋāύā§āϤāĻž āĻāϰā§āĻā§āĨ¤ āĻāĻĒāĻžāϝāĻŧ āĻšāĻŋāϏāĻžāĻŦā§, āĻāĻāĻāĻŋ āĻŽā§āĻĄāĻŧāĻžāύ⧠āϧāĻžāϰāĻŖāĻž āĻĒā§āϰāϏā§āϤāĻžāĻŦ āĻāϰāĻž āĻšāϝāĻŧā§āĻāĻŋāϞ, āϝāĻž āϏā§āĻĒāĻžāĻāĻĄāĻžāϰāĻŽāĻā§āĻāĻŋāϤ⧠āĻĒā§āϰāĻžāϝāĻŧ āĻ
āĻĒāϰāĻŋāĻŦāϰā§āϤāĻŋāϤ Irregexp āĻāĻā§āĻāĻŋāύ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻžāϰ āĻ
āύā§āĻŽāϤāĻŋ āĻĻā§āϝāĻŧ (āĻĒāϰāĻŋāĻŦāϰā§āϤāύāĻā§āϞāĻŋ āĻļā§āϧā§āĻŽāĻžāϤā§āϰ "# āĻ
āύā§āϤāϰā§āĻā§āĻā§āϤ" āĻŦā§āϞāĻāĻā§āϞāĻŋāϰ āϏā§āĻŦāϝāĻŧāĻāĻā§āϰāĻŋāϝāĻŧ āĻĒā§āϰāϤāĻŋāϏā§āĻĨāĻžāĻĒāύ⧠āĻšā§āϰāĻžāϏ āĻāϰāĻž āĻšāϝāĻŧ)āĨ¤
āĻĢā§āϰā§āĻŽāĻāϝāĻŧāĻžāϰā§āĻ Irregexp-āĻā§ āĻĒā§āϰāϝāĻŧā§āĻāύā§āϝāĻŧ V8-āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āĻā§āώāĻŽāϤāĻž āĻĒā§āϰāĻĻāĻžāύ āĻāϰā§, āϝāĻžāϰ āĻŽāϧā§āϝ⧠āϰāϝāĻŧā§āĻā§ āĻŽā§āĻŽāϰāĻŋ āĻŽā§āϝāĻžāύā§āĻāĻŽā§āύā§āĻ āĻāĻŦāĻ āĻā§āĻĄ āĻā§āύāĻžāϰā§āĻļāύ āĻĢāĻžāĻāĻļāύ, āϏā§āĻāϏāĻžāĻĨā§ āύā§āĻāĻŋāĻ āĻĄā§āĻāĻž āϏā§āĻā§āϰāĻžāĻāĻāĻžāϰ āϝāĻž āĻŽā§āĻŽāϰāĻŋ āĻŽā§āϝāĻžāύā§āĻāĻŽā§āύā§āĻ āĻāĻā§āĻāĻŋāύ, āĻā§āĻĄ āĻā§āύāĻžāϰā§āĻāϰ āĻāĻŦāĻ SpiderMonkey āϏā§āĻā§āϰāĻžāĻāĻāĻžāϰ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰ⧠āĻĒā§āϰāϝāĻŧā§āĻ āĻāϰāĻž āĻšāϝāĻŧāĨ¤
RegExp āĻāĻā§āĻāĻŋāύ āĻāĻĒāĻĄā§āĻ āĻāϰāϞ⧠Firefox-āĻā§ āύāĻžāĻŽāϧāĻžāϰ⧠āĻā§āϝāĻžāĻĒāĻāĻžāϰ, āĻāĻāύāĻŋāĻā§āĻĄ āĻā§āϝāĻžāϰā§āĻā§āĻāĻžāϰ āĻā§āϞāĻžāϏ āĻāϏā§āĻā§āĻĒāĻŋāĻ, āĻĄāĻāĻ āϞ āĻĢā§āϞā§āϝāĻžāĻ āĻāĻŦāĻ āϞā§āĻāĻŦāĻŋāĻšāĻžāĻāύā§āĻĄ āĻŽā§āĻĄā§āϰ āĻŽāϤ⧠āĻŦā§āĻļāĻŋāώā§āĻā§āϝāĻā§āϞāĻŋāĻā§ āϏāĻŽāϰā§āĻĨāύ āĻāϰāĻžāϰ āĻ āύā§āĻŽāϤāĻŋ āĻĻā§āĻŦā§:
- āĻāĻĒāύāĻžāĻā§ āĻŽāĻŋāϞā§āϰ āĻā§āϰāĻŽāĻŋāĻ āϏāĻāĻā§āϝāĻžāϰ āĻĒāϰāĻŋāĻŦāϰā§āϤ⧠āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āύāĻžāĻŽā§āϰ āϏāĻžāĻĨā§ āύāĻŋāϝāĻŧāĻŽāĻŋāϤ āĻāĻā§āϏāĻĒā§āϰā§āĻļāύā§āϰ āϏāĻžāĻĨā§ āĻŽāĻŋāϞ⧠āϝāĻžāĻāϝāĻŧāĻž āĻāĻāĻāĻŋ āϏā§āĻā§āϰāĻŋāĻāϝāĻŧā§āϰ āĻ āĻāĻļāĻā§āϞāĻŋāĻā§ āϏāĻāϝā§āĻā§āϤ āĻāϰāĻžāϰ āĻ āύā§āĻŽāϤāĻŋ āĻĻā§āϝāĻŧ (āĻāĻĻāĻžāĻšāϰāĻŖāϏā§āĻŦāϰā§āĻĒ, â/(\d{4})-(\d{2})-(\d{ 2})/" āĻāĻĒāύāĻŋ āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āĻāϰāϤ⧠āĻĒāĻžāϰā§āύ "/(? \d{4})-(? \d{2})-(? \d{2})/" āĻāĻŦāĻ āĻĢāϞāĻžāĻĢāϞā§āϰ āĻŽāĻžāϧā§āϝāĻŽā§ āύāϝāĻŧ [1], āĻāĻŋāύā§āϤ⧠result.groups.year-āĻāϰ āĻŽāĻžāϧā§āϝāĻŽā§ āĻŦāĻāϰ āĻ ā§āϝāĻžāĻā§āϏā§āϏ āĻāϰā§āύ)āĨ¤
- āĻāĻāύāĻŋāĻā§āĻĄ āĻ āĻā§āώāϰāĻā§āϞāĻŋ āĻāĻ āύāĻā§āϞāĻŋ āϝā§āĻ āĻāϰ⧠\p{...} āĻāĻŦāĻ \P{...}, āĻāĻĻāĻžāĻšāϰāĻŖāϏā§āĻŦāϰā§āĻĒ, \p{Number} āϏāĻāĻā§āϝāĻžāĻā§āϞāĻŋāĻā§ (â āĻāϰ āĻŽāϤ⧠āĻ āĻā§āώāϰ āϏāĻš), \p{āĻŦāϰā§āĻŖāĻžāύā§āĻā§āϰāĻŽāĻŋāĻ} - āĻ āĻā§āώāϰ (āϏāĻš āĻšāĻžāϝāĻŧāĻžāϰā§āĻā§āϞāĻŋāĻĢāϏ ), \p{āĻāĻŖāĻŋāϤ} â āĻāĻžāĻŖāĻŋāϤāĻŋāĻ āĻāĻŋāĻšā§āύ, āĻāϤā§āϝāĻžāĻĻāĻŋāĨ¤
- āĻĒāϤāĻžāĻāĻž "." āĻŽā§āĻā§āĻļāĻā§ āĻāĻā§āύ āĻĻā§āϝāĻŧāĨ¤ āϞāĻžāĻāύ āĻĢāĻŋāĻĄ āĻ āĻā§āώāϰ āϏāĻšāĨ¤
- āĻļāĻžāϏāύ āĻāĻĒāύāĻžāĻā§ āĻāĻāĻāĻŋ āϰā§āĻā§āϞāĻžāϰ āĻāĻā§āϏāĻĒā§āϰā§āĻļāύ⧠āύāĻŋāϰā§āϧāĻžāϰāĻŖ āĻāϰāϤ⧠āĻĻā§āϝāĻŧ āϝ⧠āĻāĻāĻāĻŋ āĻĒā§āϝāĻžāĻāĻžāϰā§āύ āĻ āύā§āϝāĻāĻŋāϰ āĻāĻā§ āĻĨāĻžāĻā§ (āĻāĻĻāĻžāĻšāϰāĻŖāϏā§āĻŦāϰā§āĻĒ, āĻĄāϞāĻžāϰ āĻāĻŋāĻšā§āύ āĻā§āϝāĻžāĻĒāĻāĻžāϰ āύāĻž āĻāϰ⧠āĻāĻāĻāĻŋ āĻĄāϞāĻžāϰā§āϰ āĻĒāϰāĻŋāĻŽāĻžāĻŖā§āϰ āϏāĻžāĻĨā§ āĻŽāĻŋāϞ āĻāϰāĻž)āĨ¤
āĻĒā§āϰāĻāϞā§āĻĒāĻāĻŋ V8 āĻŦāĻŋāĻāĻžāĻļāĻāĻžāϰā§āĻĻā§āϰ āĻ āĻāĻļāĻā§āϰāĻšāĻŖā§āϰ āϏāĻžāĻĨā§ āϏāĻŽā§āĻĒāĻžāĻĻāĻŋāϤ āĻšāϝāĻŧā§āĻāĻŋāϞ, āϝāĻžāϰāĻž āϤāĻžāĻĻā§āϰ āĻ āĻāĻļā§āϰ āĻāύā§āϝ, V8-āĻāϰ āĻāĻĒāϰ Irregexp-āĻāϰ āύāĻŋāϰā§āĻāϰāϤāĻž āĻāĻŽāĻžāϤ⧠āĻāĻžāĻ āĻāϰā§āĻā§ āĻāĻŦāĻ āĻāĻŋāĻā§ āĻŦā§āĻļāĻŋāώā§āĻā§āϝ āϏā§āĻĨāĻžāύāĻžāύā§āϤāϰ āĻāϰā§āĻā§ āϝāĻž SpiderMonkey āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰ⧠āĻ āĻā§āώāĻŽ "#ifdef" āĻŦā§āϞāĻā§ āĻĒā§āϰāϝāĻŧā§āĻ āĻāϰāĻž āϝāĻžāϝāĻŧ āύāĻžā§ˇ āϏāĻšāϝā§āĻāĻŋāϤāĻž āĻĒāĻžāϰāϏā§āĻĒāϰāĻŋāĻ āĻāĻĒāĻāĻžāϰ⧠āĻšāϤ⧠āĻĒāϰāĻŋāĻŖāϤ. āϤāĻžāĻĻā§āϰ āĻ āĻāĻļā§āϰ āĻāύā§āϝ, Mozilla āĻĄā§āĻā§āϞāĻĒāĻžāϰāϰāĻž Irregexp-āĻ āĻāĻŋāĻā§ āĻĒāϰāĻŋāĻŦāϰā§āϤāύ āĻāĻŽāĻž āĻĻā§āϝāĻŧ āϝāĻž āĻāĻŋāĻā§ āĻŦāĻžāĻĻ āĻĻā§āϝāĻŧ āĻāĻžāĻāĻžāϏā§āĻā§āϰāĻŋāĻĒā§āĻ āϏā§āĻā§āϝāĻžāύā§āĻĄāĻžāϰā§āĻĄā§āϰ āĻĒā§āϰāϝāĻŧā§āĻāύā§āϝāĻŧāϤāĻžāϰ āϏāĻžāĻĨā§ āĻāĻŦāĻ āĻā§āĻĄ āĻā§āĻŖāĻŽāĻžāύāĨ¤ āĻāĻāĻžāĻĄāĻŧāĻžāĻ, āĻĢāĻžāϝāĻŧāĻžāϰāĻĢāĻā§āϏā§āϰ āĻ āϏā§āĻĒāώā§āĻ āĻĒāϰā§āĻā§āώāĻžāϰ āϏāĻŽāϝāĻŧ, Irregexp āĻā§āĻĄā§ āĻĒā§āϰā§āĻŦā§ āĻ āϞāĻā§āώāĻŋāϤ āϤā§āϰā§āĻāĻŋāĻā§āϞāĻŋ āϝāĻž āĻā§āϰā§āϝāĻžāĻļā§āϰ āĻĻāĻŋāĻā§ āĻĒāϰāĻŋāĻāĻžāϞāĻŋāϤ āĻāϰā§āĻāĻŋāϞ āϤāĻž āĻāĻŋāĻšā§āύāĻŋāϤ āĻāϰ⧠āĻŦāĻžāĻĻ āĻĻā§āĻāϝāĻŧāĻž āĻšāϝāĻŧā§āĻāĻŋāϞāĨ¤
āĻāϤā§āϏ: opennet.ru
