Index: django/template/defaultfilters.py
===================================================================
--- django/template/defaultfilters.py	(revision 7519)
+++ django/template/defaultfilters.py	(working copy)
@@ -63,19 +63,50 @@
 capfirst = stringfilter(capfirst)
 
 _js_escapes = (
-    ('\\', '\\\\'),
-    ('"', '\\"'),
-    ("'", "\\'"),
-    ('\n', '\\n'),
-    ('\r', '\\r'),
-    ('\b', '\\b'),
-    ('\f', '\\f'),
-    ('\t', '\\t'),
-    ('\v', '\\v'),
-    ('</', '<\\/'),
+    ('\'', r'\x27'),
+    ('"', r'\x22'),
+    ('\\', r'\x5C'),
+    ('>', r'\x3E'), 
+    ('<', r'\x3C'),
+    ('&', r'\x26'),
+    ('=', r'\x3D'), 
+    ('-', r'\x2D'),
+    (';', r'\x3B'),
+    ('\x00', r'\x00'),
+    ('\x01', r'\x01'),
+    ('\x02', r'\x02'),
+    ('\x03', r'\x03'),
+    ('\x04', r'\x04'),
+    ('\x05', r'\x05'),
+    ('\x06', r'\x06'),
+    ('\x07', r'\x07'),
+    ('\x08', r'\x08'),
+    ('\x09', r'\x09'),
+    ('\x0A', r'\x0A'),
+    ('\x0B', r'\x0B'),
+    ('\x0C', r'\x0C'),
+    ('\x0D', r'\x0D'),
+    ('\x0E', r'\x0E'),
+    ('\x0F', r'\x0F'),
+    ('\x10', r'\x10'),
+    ('\x11', r'\x11'),
+    ('\x12', r'\x12'),
+    ('\x13', r'\x13'),
+    ('\x14', r'\x14'),
+    ('\x15', r'\x15'),
+    ('\x16', r'\x16'),
+    ('\x17', r'\x17'),
+    ('\x18', r'\x18'),
+    ('\x19', r'\x19'),
+    ('\x1A', r'\x1A'),
+    ('\x1B', r'\x1B'),
+    ('\x1C', r'\x1C'),
+    ('\x1D', r'\x1D'),
+    ('\x1E', r'\x1E'),
+    ('\x1F', r'\x1F'),
 )
 def escapejs(value):
-    """Backslash-escapes characters for use in JavaScript strings."""
+    """Hex encodes characters for use in JavaScript strings."""
     for bad, good in _js_escapes:
         value = value.replace(bad, good)
     return value
