Index: dart/sdk/lib/_internal/lib/string_helper.dart |
diff --git a/dart/sdk/lib/_internal/lib/string_helper.dart b/dart/sdk/lib/_internal/lib/string_helper.dart |
index 1c430c8574332582ce843571bddc029872736bc5..ba03364e705547ea51c1b5a9b68cfebc8ea7e850 100644 |
--- a/dart/sdk/lib/_internal/lib/string_helper.dart |
+++ b/dart/sdk/lib/_internal/lib/string_helper.dart |
@@ -77,6 +77,8 @@ stringReplaceJS(receiver, replacer, to) { |
return JS('String', r'#.replace(#, #)', receiver, replacer, to); |
} |
+const String ESCAPE_REGEXP = r'[[\]{}()*+?.\\^$|]'; |
+ |
stringReplaceAllUnchecked(receiver, from, to) { |
checkString(to); |
if (from is String) { |
@@ -94,7 +96,7 @@ stringReplaceAllUnchecked(receiver, from, to) { |
return result.toString(); |
} |
} else { |
- var quoter = JS('', "new RegExp(#, 'g')", r'[[\]{}()*+?.\\^$|]'); |
+ var quoter = JS('', "new RegExp(#, 'g')", ESCAPE_REGEXP); |
var quoted = JS('String', r'#.replace(#, "\\$&")', from, quoter); |
var replacer = JS('', "new RegExp(#, 'g')", quoted); |
return stringReplaceJS(receiver, replacer, to); |