diff --git a/lib/coderay/scanners/java_script.rb b/lib/coderay/scanners/java_script.rb index 8c13d4ff..03913c0a 100644 --- a/lib/coderay/scanners/java_script.rb +++ b/lib/coderay/scanners/java_script.rb @@ -42,11 +42,11 @@ class JavaScript < Scanner ESCAPE = / [bfnrtv\n\\'"] | x[a-fA-F0-9]{1,2} | [0-7]{1,3} /x # :nodoc: UNICODE_ESCAPE = / u[a-fA-F0-9]{4} | U[a-fA-F0-9]{8} /x # :nodoc: REGEXP_ESCAPE = / [bBdDsSwW] /x # :nodoc: - STRING_CONTENT_PATTERN = { + STRING_CONTENT_PATTERN = { "'" => /[^\\']+/, '"' => /[^\\"]+/, - '/' => /[^\\\/]+/, - } # :nodoc: + '/' => %r{ (?: [^\\/\[]+ | \[ ([^\]\\]+ | \\.)* \]? )+ }mx, + }.freeze # :nodoc: KEY_CHECK_PATTERN = { "'" => / (?> [^\\']* (?: \\. [^\\']* )* ) ' \s* : /mx, '"' => / (?> [^\\"]* (?: \\. [^\\"]* )* ) " \s* : /mx, @@ -219,8 +219,6 @@ def scan_tokens encoder, options encoder end - protected - def reset_instance super @xml_scanner.reset if defined? @xml_scanner