summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Userland/Libraries/LibJS/Runtime/RegExpObject.cpp22
1 files changed, 19 insertions, 3 deletions
diff --git a/Userland/Libraries/LibJS/Runtime/RegExpObject.cpp b/Userland/Libraries/LibJS/Runtime/RegExpObject.cpp
index 40c7a6638f..955e18e879 100644
--- a/Userland/Libraries/LibJS/Runtime/RegExpObject.cpp
+++ b/Userland/Libraries/LibJS/Runtime/RegExpObject.cpp
@@ -266,10 +266,26 @@ DeprecatedString RegExpObject::escape_regexp_pattern() const
continue;
}
- if (code_point == '\r' || code_point == LINE_SEPARATOR || code_point == PARAGRAPH_SEPARATOR || code_point == '/') {
- builder.append_code_point('\\');
+ switch (code_point) {
+ case '/':
+ builder.append("\\/"sv);
+ break;
+ case '\n':
+ builder.append("\\n"sv);
+ break;
+ case '\r':
+ builder.append("\\r"sv);
+ break;
+ case LINE_SEPARATOR:
+ builder.append("\\u2028"sv);
+ break;
+ case PARAGRAPH_SEPARATOR:
+ builder.append("\\u2029"sv);
+ break;
+ default:
+ builder.append_code_point(code_point);
+ break;
}
- builder.append_code_point(code_point);
}
return builder.to_deprecated_string();