Modified: trunk/Source/WTF/wtf/text/StringOperators.h (239281 => 239282)
--- trunk/Source/WTF/wtf/text/StringOperators.h 2018-12-17 20:21:08 UTC (rev 239281)
+++ trunk/Source/WTF/wtf/text/StringOperators.h 2018-12-17 20:36:31 UTC (rev 239282)
@@ -112,6 +112,12 @@
return StringAppend<const char*, AtomicString>(string1, string2);
}
+template<typename T, typename = std::enable_if_t<std::is_same<std::decay_t<T>, StringView>::value>>
+inline StringAppend<const char*, StringView> operator+(const char* string1, T string2)
+{
+ return StringAppend<const char*, StringView>(string1, string2);
+}
+
template<typename U, typename V>
inline StringAppend<const char*, StringAppend<U, V>> operator+(const char* string1, const StringAppend<U, V>& string2)
{
@@ -128,6 +134,12 @@
return StringAppend<const UChar*, AtomicString>(string1, string2);
}
+template<typename T, typename = std::enable_if_t<std::is_same<std::decay_t<T>, StringView>::value>>
+inline StringAppend<const UChar*, StringView> operator+(const UChar* string1, T string2)
+{
+ return StringAppend<const UChar*, StringView>(string1, string2);
+}
+
template<typename U, typename V>
inline StringAppend<const UChar*, StringAppend<U, V>> operator+(const UChar* string1, const StringAppend<U, V>& string2)
{
@@ -144,6 +156,12 @@
return StringAppend<ASCIILiteral, AtomicString>(string1, string2);
}
+template<typename T, typename = std::enable_if_t<std::is_same<std::decay_t<T>, StringView>::value>>
+inline StringAppend<ASCIILiteral, StringView> operator+(const ASCIILiteral& string1, T string2)
+{
+ return StringAppend<ASCIILiteral, StringView>(string1, string2);
+}
+
template<typename U, typename V>
inline StringAppend<ASCIILiteral, StringAppend<U, V>> operator+(const ASCIILiteral& string1, const StringAppend<U, V>& string2)
{
@@ -156,6 +174,12 @@
return StringAppend<String, T>(string1, string2);
}
+template<typename T, typename U, typename = std::enable_if_t<std::is_same<std::decay_t<T>, StringView>::value>>
+StringAppend<StringView, U> operator+(T string1, U string2)
+{
+ return StringAppend<StringView, U>(string1, string2);
+}
+
template<typename U, typename V, typename W>
StringAppend<StringAppend<U, V>, W> operator+(const StringAppend<U, V>& string1, W string2)
{
Modified: trunk/Tools/TestWebKitAPI/Tests/WTF/StringOperators.cpp (239281 => 239282)
--- trunk/Tools/TestWebKitAPI/Tests/WTF/StringOperators.cpp 2018-12-17 20:21:08 UTC (rev 239281)
+++ trunk/Tools/TestWebKitAPI/Tests/WTF/StringOperators.cpp 2018-12-17 20:36:31 UTC (rev 239282)
@@ -29,6 +29,7 @@
static int wtfStringCopyCount;
+#include <wtf/text/StringView.h>
#include <wtf/text/WTFString.h>
namespace TestWebKitAPI {
@@ -47,6 +48,9 @@
AtomicString atomicString("AtomicString");
ASCIILiteral literal { "ASCIILiteral"_s };
+ String stringViewBacking { "StringView" };
+ StringView stringView { stringViewBacking };
+
EXPECT_EQ(0, wtfStringCopyCount);
EXPECT_N_WTF_STRING_COPIES(2, string + string);
@@ -53,16 +57,24 @@
EXPECT_N_WTF_STRING_COPIES(2, string + atomicString);
EXPECT_N_WTF_STRING_COPIES(2, atomicString + string);
EXPECT_N_WTF_STRING_COPIES(2, atomicString + atomicString);
+ EXPECT_N_WTF_STRING_COPIES(1, stringView + string);
+ EXPECT_N_WTF_STRING_COPIES(1, string + stringView);
+ EXPECT_N_WTF_STRING_COPIES(1, stringView + atomicString);
+ EXPECT_N_WTF_STRING_COPIES(1, atomicString + stringView);
EXPECT_N_WTF_STRING_COPIES(1, "C string" + string);
EXPECT_N_WTF_STRING_COPIES(1, string + "C string");
EXPECT_N_WTF_STRING_COPIES(1, "C string" + atomicString);
EXPECT_N_WTF_STRING_COPIES(1, atomicString + "C string");
+ EXPECT_N_WTF_STRING_COPIES(0, "C string" + stringView);
+ EXPECT_N_WTF_STRING_COPIES(0, stringView + "C string");
EXPECT_N_WTF_STRING_COPIES(1, literal + string);
EXPECT_N_WTF_STRING_COPIES(1, string + literal);
EXPECT_N_WTF_STRING_COPIES(1, literal + atomicString);
EXPECT_N_WTF_STRING_COPIES(1, atomicString + literal);
+ EXPECT_N_WTF_STRING_COPIES(0, literal + stringView);
+ EXPECT_N_WTF_STRING_COPIES(0, stringView + literal);
EXPECT_N_WTF_STRING_COPIES(2, "C string" + string + "C string" + string);
EXPECT_N_WTF_STRING_COPIES(2, "C string" + (string + "C string" + string));
@@ -92,20 +104,55 @@
EXPECT_N_WTF_STRING_COPIES(2, "C string" + (atomicString + literal + atomicString));
EXPECT_N_WTF_STRING_COPIES(2, ("C string" + atomicString) + (literal + atomicString));
- EXPECT_N_WTF_STRING_COPIES(2, literal + atomicString + "C string" + string);
- EXPECT_N_WTF_STRING_COPIES(2, literal + (atomicString + "C string" + string));
- EXPECT_N_WTF_STRING_COPIES(2, (literal + atomicString) + ("C string" + string));
- EXPECT_N_WTF_STRING_COPIES(2, "C string" + atomicString + literal + string);
- EXPECT_N_WTF_STRING_COPIES(2, "C string" + (atomicString + literal + string));
- EXPECT_N_WTF_STRING_COPIES(2, ("C string" + atomicString) + (literal + string));
+ EXPECT_N_WTF_STRING_COPIES(0, literal + stringView + "C string" + stringView);
+ EXPECT_N_WTF_STRING_COPIES(0, literal + (stringView + "C string" + stringView));
+ EXPECT_N_WTF_STRING_COPIES(0, (literal + stringView) + ("C string" + stringView));
+ EXPECT_N_WTF_STRING_COPIES(0, "C string" + stringView + literal + stringView);
+ EXPECT_N_WTF_STRING_COPIES(0, "C string" + (stringView + literal + stringView));
+ EXPECT_N_WTF_STRING_COPIES(0, ("C string" + stringView) + (literal + stringView));
- EXPECT_N_WTF_STRING_COPIES(2, literal + string + "C string" + atomicString);
- EXPECT_N_WTF_STRING_COPIES(2, literal + (string + "C string" + atomicString));
- EXPECT_N_WTF_STRING_COPIES(2, (literal + string) + ("C string" + atomicString));
- EXPECT_N_WTF_STRING_COPIES(2, "C string" + string + literal + atomicString);
- EXPECT_N_WTF_STRING_COPIES(2, "C string" + (string + literal + atomicString));
- EXPECT_N_WTF_STRING_COPIES(2, ("C string" + string) + (literal + atomicString));
+ EXPECT_N_WTF_STRING_COPIES(2, literal + atomicString + "C string" + string + literal + stringView);
+ EXPECT_N_WTF_STRING_COPIES(2, literal + (atomicString + "C string" + string + literal + stringView));
+ EXPECT_N_WTF_STRING_COPIES(2, (literal + atomicString) + ("C string" + string) + (literal + stringView));
+ EXPECT_N_WTF_STRING_COPIES(2, "C string" + atomicString + literal + string + literal + stringView);
+ EXPECT_N_WTF_STRING_COPIES(2, "C string" + (atomicString + literal + string + literal + stringView));
+ EXPECT_N_WTF_STRING_COPIES(2, ("C string" + atomicString) + (literal + string) + (literal + stringView));
+ EXPECT_N_WTF_STRING_COPIES(2, literal + atomicString + "C string" + stringView + literal + string);
+ EXPECT_N_WTF_STRING_COPIES(2, literal + (atomicString + "C string" + stringView + literal + string));
+ EXPECT_N_WTF_STRING_COPIES(2, (literal + atomicString) + ("C string" + stringView) + (literal + string));
+ EXPECT_N_WTF_STRING_COPIES(2, "C string" + atomicString + literal + stringView + literal + string);
+ EXPECT_N_WTF_STRING_COPIES(2, "C string" + (atomicString + literal + stringView + literal + string));
+ EXPECT_N_WTF_STRING_COPIES(2, ("C string" + atomicString) + (literal + stringView) + (literal + string));
+
+ EXPECT_N_WTF_STRING_COPIES(2, literal + string + "C string" + atomicString + literal + stringView);
+ EXPECT_N_WTF_STRING_COPIES(2, literal + (string + "C string" + atomicString + literal + stringView));
+ EXPECT_N_WTF_STRING_COPIES(2, (literal + string) + ("C string" + atomicString) + (literal + stringView));
+ EXPECT_N_WTF_STRING_COPIES(2, "C string" + string + literal + atomicString + literal + stringView);
+ EXPECT_N_WTF_STRING_COPIES(2, "C string" + (string + literal + atomicString + literal + stringView));
+ EXPECT_N_WTF_STRING_COPIES(2, ("C string" + string) + (literal + atomicString) + (literal + stringView));
+
+ EXPECT_N_WTF_STRING_COPIES(2, literal + string + "C string" + stringView + literal + atomicString);
+ EXPECT_N_WTF_STRING_COPIES(2, literal + (string + "C string" + stringView + literal + atomicString));
+ EXPECT_N_WTF_STRING_COPIES(2, (literal + string) + ("C string" + stringView) + (literal + atomicString));
+ EXPECT_N_WTF_STRING_COPIES(2, "C string" + string + literal + stringView + literal + atomicString);
+ EXPECT_N_WTF_STRING_COPIES(2, "C string" + (string + literal + stringView + literal + atomicString));
+ EXPECT_N_WTF_STRING_COPIES(2, ("C string" + string) + (literal + stringView) + (literal + atomicString));
+
+ EXPECT_N_WTF_STRING_COPIES(2, literal + stringView + "C string" + atomicString + literal + string);
+ EXPECT_N_WTF_STRING_COPIES(2, literal + (stringView + "C string" + atomicString + literal + string));
+ EXPECT_N_WTF_STRING_COPIES(2, (literal + stringView) + ("C string" + atomicString) + (literal + string));
+ EXPECT_N_WTF_STRING_COPIES(2, "C string" + stringView + literal + atomicString + literal + string);
+ EXPECT_N_WTF_STRING_COPIES(2, "C string" + (stringView + literal + atomicString + literal + string));
+ EXPECT_N_WTF_STRING_COPIES(2, ("C string" + stringView) + (literal + atomicString) + (literal + string));
+
+ EXPECT_N_WTF_STRING_COPIES(2, literal + stringView + "C string" + string + literal + atomicString);
+ EXPECT_N_WTF_STRING_COPIES(2, literal + (stringView + "C string" + string + literal + atomicString));
+ EXPECT_N_WTF_STRING_COPIES(2, (literal + stringView) + ("C string" + string) + (literal + atomicString));
+ EXPECT_N_WTF_STRING_COPIES(2, "C string" + stringView + literal + string + literal + atomicString);
+ EXPECT_N_WTF_STRING_COPIES(2, "C string" + (stringView + literal + string + literal + atomicString));
+ EXPECT_N_WTF_STRING_COPIES(2, ("C string" + stringView) + (literal + string) + (literal + atomicString));
+
EXPECT_N_WTF_STRING_COPIES(2, "C string" + atomicString + "C string" + atomicString);
EXPECT_N_WTF_STRING_COPIES(2, "C string" + (atomicString + "C string" + atomicString));
EXPECT_N_WTF_STRING_COPIES(2, ("C string" + atomicString) + ("C string" + atomicString));
@@ -120,39 +167,97 @@
EXPECT_N_WTF_STRING_COPIES(2, atomicString + (literal + atomicString + literal));
EXPECT_N_WTF_STRING_COPIES(2, (atomicString + literal) + (atomicString + literal));
- EXPECT_N_WTF_STRING_COPIES(2, "C string" + string + "C string" + atomicString);
- EXPECT_N_WTF_STRING_COPIES(2, "C string" + (string + "C string" + atomicString));
- EXPECT_N_WTF_STRING_COPIES(2, ("C string" + string) + ("C string" + atomicString));
- EXPECT_N_WTF_STRING_COPIES(2, string + "C string" + atomicString + "C string");
- EXPECT_N_WTF_STRING_COPIES(2, string + ("C string" + atomicString + "C string"));
- EXPECT_N_WTF_STRING_COPIES(2, (string + "C string") + (atomicString + "C string"));
+ EXPECT_N_WTF_STRING_COPIES(2, "C string" + string + "C string" + atomicString + "C string" + stringView);
+ EXPECT_N_WTF_STRING_COPIES(2, "C string" + (string + "C string" + atomicString + "C string" + stringView));
+ EXPECT_N_WTF_STRING_COPIES(2, ("C string" + string) + ("C string" + atomicString) + ("C string" + stringView));
+ EXPECT_N_WTF_STRING_COPIES(2, string + "C string" + atomicString + "C string" + stringView + "C string");
+ EXPECT_N_WTF_STRING_COPIES(2, string + ("C string" + atomicString + "C string" + stringView + "C string"));
+ EXPECT_N_WTF_STRING_COPIES(2, (string + "C string") + (atomicString + "C string") + (stringView + "C string"));
- EXPECT_N_WTF_STRING_COPIES(2, literal + string + literal + atomicString);
- EXPECT_N_WTF_STRING_COPIES(2, literal + (string + literal + atomicString));
- EXPECT_N_WTF_STRING_COPIES(2, (literal + string) + (literal + atomicString));
- EXPECT_N_WTF_STRING_COPIES(2, string + literal + atomicString + literal);
- EXPECT_N_WTF_STRING_COPIES(2, string + (literal + atomicString + literal));
- EXPECT_N_WTF_STRING_COPIES(2, (string + literal) + (atomicString + literal));
+ EXPECT_N_WTF_STRING_COPIES(2, literal + string + literal + atomicString + literal + stringView);
+ EXPECT_N_WTF_STRING_COPIES(2, literal + (string + literal + atomicString + literal + stringView));
+ EXPECT_N_WTF_STRING_COPIES(2, (literal + string) + (literal + atomicString) + (literal + stringView));
+ EXPECT_N_WTF_STRING_COPIES(2, string + literal + atomicString + literal + stringView + literal);
+ EXPECT_N_WTF_STRING_COPIES(2, string + (literal + atomicString + literal + stringView + literal));
+ EXPECT_N_WTF_STRING_COPIES(2, (string + literal) + (atomicString + literal) + (stringView + literal));
- EXPECT_N_WTF_STRING_COPIES(2, "C string" + atomicString + "C string" + string);
- EXPECT_N_WTF_STRING_COPIES(2, "C string" + (atomicString + "C string" + string));
- EXPECT_N_WTF_STRING_COPIES(2, ("C string" + atomicString) + ("C string" + string));
- EXPECT_N_WTF_STRING_COPIES(2, atomicString + "C string" + string + "C string");
- EXPECT_N_WTF_STRING_COPIES(2, atomicString + ("C string" + string + "C string"));
- EXPECT_N_WTF_STRING_COPIES(2, (atomicString + "C string") + (string + "C string"));
+ EXPECT_N_WTF_STRING_COPIES(2, "C string" + string + "C string" + stringView + "C string" + atomicString);
+ EXPECT_N_WTF_STRING_COPIES(2, "C string" + (string + "C string" + stringView + "C string" + atomicString));
+ EXPECT_N_WTF_STRING_COPIES(2, ("C string" + string) + ("C string" + stringView) + ("C string" + atomicString));
+ EXPECT_N_WTF_STRING_COPIES(2, string + "C string" + stringView + "C string" + atomicString + "C string");
+ EXPECT_N_WTF_STRING_COPIES(2, string + ("C string" + stringView + "C string" + atomicString + "C string"));
+ EXPECT_N_WTF_STRING_COPIES(2, (string + "C string") + (stringView + "C string") + (atomicString + "C string"));
- EXPECT_N_WTF_STRING_COPIES(2, literal + atomicString + literal + string);
- EXPECT_N_WTF_STRING_COPIES(2, literal + (atomicString + literal + string));
- EXPECT_N_WTF_STRING_COPIES(2, (literal + atomicString) + (literal + string));
- EXPECT_N_WTF_STRING_COPIES(2, atomicString + literal + string + literal);
- EXPECT_N_WTF_STRING_COPIES(2, atomicString + (literal + string + literal));
- EXPECT_N_WTF_STRING_COPIES(2, (atomicString + literal) + (string + literal));
+ EXPECT_N_WTF_STRING_COPIES(2, literal + string + literal + stringView + literal + atomicString);
+ EXPECT_N_WTF_STRING_COPIES(2, literal + (string + literal + stringView + literal + atomicString));
+ EXPECT_N_WTF_STRING_COPIES(2, (literal + string) + (literal + stringView) + (literal + atomicString));
+ EXPECT_N_WTF_STRING_COPIES(2, string + literal + stringView + literal + atomicString + literal);
+ EXPECT_N_WTF_STRING_COPIES(2, string + (literal + stringView + literal + atomicString + literal));
+ EXPECT_N_WTF_STRING_COPIES(2, (string + literal) + (stringView + literal) + (atomicString + literal));
+ EXPECT_N_WTF_STRING_COPIES(2, "C string" + atomicString + "C string" + string + "C string" + stringView);
+ EXPECT_N_WTF_STRING_COPIES(2, "C string" + (atomicString + "C string" + string + "C string" + stringView));
+ EXPECT_N_WTF_STRING_COPIES(2, ("C string" + atomicString) + ("C string" + string) + ("C string" + stringView));
+ EXPECT_N_WTF_STRING_COPIES(2, atomicString + "C string" + string + "C string" + stringView + "C string");
+ EXPECT_N_WTF_STRING_COPIES(2, atomicString + ("C string" + string + "C string" + stringView + "C string"));
+ EXPECT_N_WTF_STRING_COPIES(2, (atomicString + "C string") + (string + "C string") + (stringView + "C string"));
+
+ EXPECT_N_WTF_STRING_COPIES(2, literal + atomicString + literal + string + literal + stringView);
+ EXPECT_N_WTF_STRING_COPIES(2, literal + (atomicString + literal + string + literal + stringView));
+ EXPECT_N_WTF_STRING_COPIES(2, (literal + atomicString) + (literal + string) + (literal + stringView));
+ EXPECT_N_WTF_STRING_COPIES(2, atomicString + literal + string + literal + stringView + literal);
+ EXPECT_N_WTF_STRING_COPIES(2, atomicString + (literal + string + literal + stringView + literal));
+ EXPECT_N_WTF_STRING_COPIES(2, (atomicString + literal) + (string + literal) + (stringView + literal));
+
+ EXPECT_N_WTF_STRING_COPIES(2, "C string" + atomicString + "C string" + stringView + "C string" + string);
+ EXPECT_N_WTF_STRING_COPIES(2, "C string" + (atomicString + "C string" + stringView + "C string" + string));
+ EXPECT_N_WTF_STRING_COPIES(2, ("C string" + atomicString) + ("C string" + stringView) + ("C string" + string));
+ EXPECT_N_WTF_STRING_COPIES(2, atomicString + "C string" + stringView + "C string" + string + "C string");
+ EXPECT_N_WTF_STRING_COPIES(2, atomicString + ("C string" + stringView + "C string" + string + "C string"));
+ EXPECT_N_WTF_STRING_COPIES(2, (atomicString + "C string") + (stringView + "C string") + (string + "C string"));
+
+ EXPECT_N_WTF_STRING_COPIES(2, literal + atomicString + literal + stringView + literal + string);
+ EXPECT_N_WTF_STRING_COPIES(2, literal + (atomicString + literal + stringView + literal + string));
+ EXPECT_N_WTF_STRING_COPIES(2, (literal + atomicString) + (literal + stringView) + (literal + string));
+ EXPECT_N_WTF_STRING_COPIES(2, atomicString + literal + stringView + literal + string + literal);
+ EXPECT_N_WTF_STRING_COPIES(2, atomicString + (literal + stringView + literal + string + literal));
+ EXPECT_N_WTF_STRING_COPIES(2, (atomicString + literal) + (stringView + literal) + (string + literal));
+
+ EXPECT_N_WTF_STRING_COPIES(2, "C string" + stringView + "C string" + atomicString + "C string" + string);
+ EXPECT_N_WTF_STRING_COPIES(2, "C string" + (stringView + "C string" + atomicString + "C string" + string));
+ EXPECT_N_WTF_STRING_COPIES(2, ("C string" + stringView) + ("C string" + atomicString) + ("C string" + string));
+ EXPECT_N_WTF_STRING_COPIES(2, stringView + "C string" + atomicString + "C string" + string + "C string");
+ EXPECT_N_WTF_STRING_COPIES(2, stringView + ("C string" + atomicString + "C string" + string + "C string"));
+ EXPECT_N_WTF_STRING_COPIES(2, (stringView + "C string") + (atomicString + "C string") + (string + "C string"));
+
+ EXPECT_N_WTF_STRING_COPIES(2, literal + stringView + literal + atomicString + literal + string);
+ EXPECT_N_WTF_STRING_COPIES(2, literal + (stringView + literal + atomicString + literal + string));
+ EXPECT_N_WTF_STRING_COPIES(2, (literal + stringView) + (literal + atomicString) + (literal + string));
+ EXPECT_N_WTF_STRING_COPIES(2, stringView + literal + atomicString + literal + string + literal);
+ EXPECT_N_WTF_STRING_COPIES(2, stringView + (literal + atomicString + literal + string + literal));
+ EXPECT_N_WTF_STRING_COPIES(2, (stringView + literal) + (atomicString + literal) + (string + literal));
+
+ EXPECT_N_WTF_STRING_COPIES(2, "C string" + stringView + "C string" + string + "C string" + atomicString);
+ EXPECT_N_WTF_STRING_COPIES(2, "C string" + (stringView + "C string" + string + "C string" + atomicString));
+ EXPECT_N_WTF_STRING_COPIES(2, ("C string" + stringView) + ("C string" + string) + ("C string" + atomicString));
+ EXPECT_N_WTF_STRING_COPIES(2, stringView + "C string" + string + "C string" + atomicString + "C string");
+ EXPECT_N_WTF_STRING_COPIES(2, stringView + ("C string" + string + "C string" + atomicString + "C string"));
+ EXPECT_N_WTF_STRING_COPIES(2, (stringView + "C string") + (string + "C string") + (atomicString + "C string"));
+
+ EXPECT_N_WTF_STRING_COPIES(2, literal + stringView + literal + string + literal + atomicString);
+ EXPECT_N_WTF_STRING_COPIES(2, literal + (stringView + literal + string + literal + atomicString));
+ EXPECT_N_WTF_STRING_COPIES(2, (literal + stringView) + (literal + string) + (literal + atomicString));
+ EXPECT_N_WTF_STRING_COPIES(2, stringView + literal + string + literal + atomicString + literal);
+ EXPECT_N_WTF_STRING_COPIES(2, stringView + (literal + string + literal + atomicString + literal));
+ EXPECT_N_WTF_STRING_COPIES(2, (stringView + literal) + (string + literal) + (atomicString + literal));
+
#if COMPILER(MSVC)
EXPECT_N_WTF_STRING_COPIES(1, L"wide string" + string);
EXPECT_N_WTF_STRING_COPIES(1, string + L"wide string");
EXPECT_N_WTF_STRING_COPIES(1, L"wide string" + atomicString);
EXPECT_N_WTF_STRING_COPIES(1, atomicString + L"wide string");
+ EXPECT_N_WTF_STRING_COPIES(0, L"wide string" + stringView);
+ EXPECT_N_WTF_STRING_COPIES(0, stringView + L"wide string");
EXPECT_N_WTF_STRING_COPIES(2, L"wide string" + string + L"wide string" + string);
EXPECT_N_WTF_STRING_COPIES(2, L"wide string" + (string + L"wide string" + string));
@@ -168,19 +273,54 @@
EXPECT_N_WTF_STRING_COPIES(2, atomicString + (L"wide string" + atomicString + L"wide string"));
EXPECT_N_WTF_STRING_COPIES(2, (atomicString + L"wide string") + (atomicString + L"wide string"));
- EXPECT_N_WTF_STRING_COPIES(2, L"wide string" + string + L"wide string" + atomicString);
- EXPECT_N_WTF_STRING_COPIES(2, L"wide string" + (string + L"wide string" + atomicString));
- EXPECT_N_WTF_STRING_COPIES(2, (L"wide string" + string) + (L"wide string" + atomicString));
- EXPECT_N_WTF_STRING_COPIES(2, string + L"wide string" + atomicString + L"wide string");
- EXPECT_N_WTF_STRING_COPIES(2, string + (L"wide string" + atomicString + L"wide string"));
- EXPECT_N_WTF_STRING_COPIES(2, (string + L"wide string") + (atomicString + L"wide string"));
+ EXPECT_N_WTF_STRING_COPIES(0, L"wide string" + stringView + L"wide string" + stringView);
+ EXPECT_N_WTF_STRING_COPIES(0, L"wide string" + (stringView + L"wide string" + stringView));
+ EXPECT_N_WTF_STRING_COPIES(0, (L"wide string" + stringView) + (L"wide string" + stringView));
+ EXPECT_N_WTF_STRING_COPIES(0, stringView + L"wide string" + stringView + L"wide string");
+ EXPECT_N_WTF_STRING_COPIES(0, stringView + (L"wide string" + stringView + L"wide string"));
+ EXPECT_N_WTF_STRING_COPIES(0, (stringView + L"wide string") + (stringView + L"wide string"));
- EXPECT_N_WTF_STRING_COPIES(2, L"wide string" + atomicString + L"wide string" + string);
- EXPECT_N_WTF_STRING_COPIES(2, L"wide string" + (atomicString + L"wide string" + string));
- EXPECT_N_WTF_STRING_COPIES(2, (L"wide string" + atomicString) + (L"wide string" + string));
- EXPECT_N_WTF_STRING_COPIES(2, atomicString + L"wide string" + string + L"wide string");
- EXPECT_N_WTF_STRING_COPIES(2, atomicString + (L"wide string" + string + L"wide string"));
- EXPECT_N_WTF_STRING_COPIES(2, (atomicString + L"wide string") + (string + L"wide string"));
+ EXPECT_N_WTF_STRING_COPIES(2, L"wide string" + string + L"wide string" + atomicString + L"wide string" + stringView);
+ EXPECT_N_WTF_STRING_COPIES(2, L"wide string" + (string + L"wide string" + atomicString + L"wide string" + stringView));
+ EXPECT_N_WTF_STRING_COPIES(2, (L"wide string" + string) + (L"wide string" + atomicString) + (L"wide string" + stringView));
+ EXPECT_N_WTF_STRING_COPIES(2, string + L"wide string" + atomicString + L"wide string" + stringView + L"wide string");
+ EXPECT_N_WTF_STRING_COPIES(2, string + (L"wide string" + atomicString + L"wide string" + stringView + L"wide string"));
+ EXPECT_N_WTF_STRING_COPIES(2, (string + L"wide string") + (atomicString + L"wide string") + (stringView + L"wide string"));
+
+ EXPECT_N_WTF_STRING_COPIES(2, L"wide string" + string + L"wide string" + stringView + L"wide string" + atomicString);
+ EXPECT_N_WTF_STRING_COPIES(2, L"wide string" + (string + L"wide string" + stringView + L"wide string" + atomicString));
+ EXPECT_N_WTF_STRING_COPIES(2, (L"wide string" + string) + (L"wide string" + stringView) + (L"wide string" + atomicString));
+ EXPECT_N_WTF_STRING_COPIES(2, string + L"wide string" + stringView + L"wide string" + atomicString + L"wide string");
+ EXPECT_N_WTF_STRING_COPIES(2, string + (L"wide string" + stringView + L"wide string" + atomicString + L"wide string"));
+ EXPECT_N_WTF_STRING_COPIES(2, (string + L"wide string") + (stringView + L"wide string") + (atomicString + L"wide string"));
+
+ EXPECT_N_WTF_STRING_COPIES(2, L"wide string" + atomicString + L"wide string" + string + L"wide string" + stringView);
+ EXPECT_N_WTF_STRING_COPIES(2, L"wide string" + (atomicString + L"wide string" + string + L"wide string" + stringView));
+ EXPECT_N_WTF_STRING_COPIES(2, (L"wide string" + atomicString) + (L"wide string" + string) + (L"wide string" + stringView));
+ EXPECT_N_WTF_STRING_COPIES(2, atomicString + L"wide string" + string + L"wide string" + stringView + L"wide string");
+ EXPECT_N_WTF_STRING_COPIES(2, atomicString + (L"wide string" + string + L"wide string" + stringView + L"wide string"));
+ EXPECT_N_WTF_STRING_COPIES(2, (atomicString + L"wide string") + (string + L"wide string") + (stringView + L"wide string"));
+
+ EXPECT_N_WTF_STRING_COPIES(2, L"wide string" + atomicString + L"wide string" + stringView + L"wide string" + string);
+ EXPECT_N_WTF_STRING_COPIES(2, L"wide string" + (atomicString + L"wide string" + stringView + L"wide string" + string));
+ EXPECT_N_WTF_STRING_COPIES(2, (L"wide string" + atomicString) + (L"wide string" + stringView) + (L"wide string" + string));
+ EXPECT_N_WTF_STRING_COPIES(2, atomicString + L"wide string" + stringView + L"wide string" + string + L"wide string");
+ EXPECT_N_WTF_STRING_COPIES(2, atomicString + (L"wide string" + stringView + L"wide string" + string + L"wide string"));
+ EXPECT_N_WTF_STRING_COPIES(2, (atomicString + L"wide string") + (stringView + L"wide string") + (string + L"wide string"));
+
+ EXPECT_N_WTF_STRING_COPIES(2, L"wide string" + stringView + L"wide string" + atomicString + L"wide string" + string);
+ EXPECT_N_WTF_STRING_COPIES(2, L"wide string" + (stringView + L"wide string" + atomicString + L"wide string" + string));
+ EXPECT_N_WTF_STRING_COPIES(2, (L"wide string" + stringView) + (L"wide string" + atomicString) + (L"wide string" + string));
+ EXPECT_N_WTF_STRING_COPIES(2, stringView + L"wide string" + atomicString + L"wide string" + string + L"wide string");
+ EXPECT_N_WTF_STRING_COPIES(2, stringView + (L"wide string" + atomicString + L"wide string" + string + L"wide string"));
+ EXPECT_N_WTF_STRING_COPIES(2, (stringView + L"wide string") + (atomicString + L"wide string") + (string + L"wide string"));
+
+ EXPECT_N_WTF_STRING_COPIES(2, L"wide string" + stringView + L"wide string" + string + L"wide string" + atomicString);
+ EXPECT_N_WTF_STRING_COPIES(2, L"wide string" + (stringView + L"wide string" + string + L"wide string" + atomicString));
+ EXPECT_N_WTF_STRING_COPIES(2, (L"wide string" + stringView) + (L"wide string" + string) + (L"wide string" + atomicString));
+ EXPECT_N_WTF_STRING_COPIES(2, stringView + L"wide string" + string + L"wide string" + atomicString + L"wide string");
+ EXPECT_N_WTF_STRING_COPIES(2, stringView + (L"wide string" + string + L"wide string" + atomicString + L"wide string"));
+ EXPECT_N_WTF_STRING_COPIES(2, (stringView + L"wide string") + (string + L"wide string") + (atomicString + L"wide string"));
#endif
}