From 7f7765546fc2bd131f90cfec01cde93beda6d655 Mon Sep 17 00:00:00 2001 From: Joshua Peek Date: Thu, 26 Feb 2015 12:37:27 -0600 Subject: [PATCH] Escape literal `[` in regexp Improves compatibility with strict ES5 regexp syntax --- lib/coffee-script/lexer.js | 2 +- src/lexer.coffee | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/coffee-script/lexer.js b/lib/coffee-script/lexer.js index 9d08d678..1d02d9cf 100644 --- a/lib/coffee-script/lexer.js +++ b/lib/coffee-script/lexer.js @@ -946,7 +946,7 @@ HEREDOC_INDENT = /\n+([^\n\S]*)(?=\S)/g; - REGEX = /^\/(?!\/)((?:[^[\/\n\\]|\\[^\n]|\[(?:\\[^\n]|[^\]\n\\])*])*)(\/)?/; + REGEX = /^\/(?!\/)((?:[^\[\/\n\\]|\\[^\n]|\[(?:\\[^\n]|[^\]\n\\])*\])*)(\/)?/; REGEX_FLAGS = /^\w*/; diff --git a/src/lexer.coffee b/src/lexer.coffee index d4957137..2c46e649 100644 --- a/src/lexer.coffee +++ b/src/lexer.coffee @@ -837,11 +837,11 @@ HEREDOC_INDENT = /\n+([^\n\S]*)(?=\S)/g # Regex-matching-regexes. REGEX = /// ^ / (?!/) (( - ?: [^ [ / \n \\ ] # every other thing + ?: [^ \[ / \n \\ ] # every other thing | \\[^\n] # anything but newlines escaped | \[ # character class (?: \\[^\n] | [^ \] \n \\ ] )* - ] + \] )*) (/)? ///