lib/ronin/formatting/extensions/html/string.rb in ronin-support-0.3.0 vs lib/ronin/formatting/extensions/html/string.rb in ronin-support-0.4.0.rc1

- old
+ new

@@ -150,19 +150,18 @@ # @api public # def js_unescape unescaped = '' - scan(/([\\%]u[0-9a-fA-F]{4}|[\\%][0-9a-fA-F]{2}|\\[btnfr"\\]|.)/).each do |match| + scan(/([\\%]u[0-9a-fA-F]{1,4}|[\\%][0-9a-fA-F]{1,2}|\\[btnfr"\\]|.)/).each do |match| c = match[0] - unescaped << case c.length - when 6 - c[2,4].to_i(16) - when 3 - c[1,2].to_i(16) - when 2 + unescaped << if JS_BACKSLASHED_CHARS.has_key?(c) JS_BACKSLASHED_CHARS[c] + elsif (c.start_with?("\\u") || c.start_with?("%u")) + c[2..-1].to_i(16) + elsif (c.start_with?("\\") || c.start_with?("%")) + c[1..-1].to_i(16) else c end end