Fix the StringScanner tests under dart2js.

R=kevmoo@google.com

Review URL: https://codereview.chromium.org//222613006

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart/pkg/string_scanner@34677 260f80e4-7a28-3924-810f-c04153c831b5
diff --git a/lib/string_scanner.dart b/lib/string_scanner.dart
index 31ccd62..3e3913b 100644
--- a/lib/string_scanner.dart
+++ b/lib/string_scanner.dart
@@ -7,6 +7,11 @@
 
 import 'dart:math' as math;
 
+/// When compiled to JS, forward slashes are always escaped in [RegExp.pattern].
+///
+/// See issue 17998.
+final _slashAutoEscape = new RegExp("/").pattern == "\\/";
+
 // TODO(nweiz): Add some integration between this and source maps.
 /// A class that scans through a string using [Pattern]s.
 class StringScanner {
@@ -65,7 +70,9 @@
 
     if (name == null) {
       if (pattern is RegExp) {
-        name = "/${pattern.pattern.replaceAll("/", "\\/")}/";
+        var source = pattern.pattern;
+        if (!_slashAutoEscape) source = source.replaceAll("/", "\\/");
+        name = "/$source/";
       } else {
         name = pattern.toString()
             .replaceAll("\\", "\\\\").replaceAll('"', '\\"');