SpiderMonkey JavaScript āĻāĻā§āĻāĻŋāĻ¨ āĻĢāĻžāĻ¯āĻŧāĻžāĻ°āĻĢāĻā§āĻ¸ā§ āĻŦā§āĻ¯āĻŦāĻšā§āĻ¤ āĻšāĻ¯āĻŧ
āĻāĻāĻŋ āĻāĻ˛ā§āĻ˛ā§āĻā§āĻ¯ āĻ¯ā§ SpiderMonkey-āĻ RegExp āĻāĻā§āĻāĻŋāĻ¨āĻāĻŋ āĻāĻāĻāĻŋ āĻĒā§āĻĨāĻ āĻāĻĒāĻžāĻĻāĻžāĻ¨ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻĄāĻŋāĻāĻžāĻāĻ¨ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§, āĻ¯āĻž āĻā§āĻĄ āĻŦā§āĻ¸ā§ āĻāĻ˛ā§āĻ˛ā§āĻāĻ¯ā§āĻā§āĻ¯ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻ¨āĻž āĻāĻ°ā§ āĻāĻāĻŋāĻā§ āĻ¤ā§āĻ˛āĻ¨āĻžāĻŽā§āĻ˛āĻāĻāĻžāĻŦā§ āĻ¸ā§āĻŦāĻžāĻ§ā§āĻ¨ āĻāĻŦāĻ āĻĒā§āĻ°āĻ¤āĻŋāĻ¸ā§āĻĨāĻžāĻĒāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻĒāĻ¯ā§āĻā§āĻ¤ āĻāĻ°ā§ āĻ¤ā§āĻ˛ā§āĨ¤ āĻŽāĻĄā§āĻ˛āĻžāĻ°āĻŋāĻāĻŋ 2014 āĻ¸āĻžāĻ˛ā§ āĻĢāĻžāĻ¯āĻŧāĻžāĻ°āĻĢāĻā§āĻ¸ā§ āĻŦā§āĻ¯āĻŦāĻšā§āĻ¤ YARR RegExp āĻāĻā§āĻāĻŋāĻ¨āĻāĻŋāĻā§ V8 āĻĨā§āĻā§ Irregexp āĻāĻā§āĻāĻŋāĻ¨ā§āĻ° āĻāĻžāĻāĻāĻž āĻĻāĻŋāĻ¯āĻŧā§ āĻĒā§āĻ°āĻ¤āĻŋāĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻāĻ°āĻž āĻ¸āĻŽā§āĻāĻŦ āĻāĻ°ā§āĻāĻŋāĻ˛āĨ¤ Irregexp V8 API āĻāĻ° āĻ¸āĻžāĻĨā§ āĻāĻŦāĻĻā§āĻ§, āĻāĻŦāĻ°ā§āĻāĻ¨āĻž āĻ¸āĻāĻā§āĻ°āĻšāĻāĻžāĻ°ā§āĻ° āĻ¸āĻžāĻĨā§ āĻāĻŦāĻĻā§āĻ§ āĻāĻŦāĻ āĻāĻāĻāĻŋ V8-āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻ¸ā§āĻā§āĻ°āĻŋāĻ āĻāĻĒāĻ¸ā§āĻĨāĻžāĻĒāĻ¨āĻž āĻāĻŦāĻ āĻ
āĻŦāĻā§āĻā§āĻ āĻŽāĻĄā§āĻ˛ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§āĨ¤ 2014 āĻ¸āĻžāĻ˛ā§ SpiderMonkey-āĻāĻ° āĻ
āĻā§āĻ¯āĻ¨ā§āĻ¤āĻ°ā§āĻŖ API-āĻāĻ° āĻ¸āĻžāĻĨā§ āĻāĻžāĻĒ āĻāĻžāĻāĻ¯āĻŧā§ āĻ¨ā§āĻāĻ¯āĻŧāĻžāĻ° āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻ¯āĻŧ, Irregexp āĻāĻā§āĻāĻŋāĻ¨āĻā§ āĻāĻāĻļāĻŋāĻāĻāĻžāĻŦā§ āĻĒā§āĻ¨āĻ°ā§āĻ˛āĻŋāĻāĻ¨ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻāĻŋāĻ˛ āĻāĻŦāĻ āĻ¯ā§āĻāĻžāĻ¨ā§ āĻ¸āĻŽā§āĻāĻŦ '\u' āĻĒāĻ¤āĻžāĻāĻžāĻ° āĻŽāĻ¤ā§ āĻāĻĻā§āĻ¯āĻŧāĻŽāĻžāĻ¨ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨āĻā§āĻ˛āĻŋ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻāĻŋāĻ˛
āĻĻā§āĻ°ā§āĻāĻžāĻā§āĻ¯āĻŦāĻļāĻ¤, āĻāĻāĻāĻŋ āĻ¸āĻŋāĻā§āĻā§āĻ°ā§āĻ¨āĻžāĻāĻāĻĄ āĻĢāĻ°ā§āĻ āĻŦāĻāĻžāĻ¯āĻŧ āĻ°āĻžāĻāĻž āĻāĻ āĻŋāĻ¨ āĻāĻŦāĻ āĻ¸āĻŽā§āĻĒāĻĻ āĻ¨āĻŋāĻŦāĻŋāĻĄāĻŧāĨ¤ 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-āĻ āĻāĻŋāĻā§ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻŽāĻž āĻĻā§āĻ¯āĻŧ āĻ¯āĻž āĻāĻŋāĻā§ āĻŦāĻžāĻĻ āĻĻā§āĻ¯āĻŧ
āĻāĻ¤ā§āĻ¸: opennet.ru