X-Git-Url: https://git.saurik.com/apple/javascriptcore.git/blobdiff_plain/2d39b0e377c0896910ee49ae70082ba665faf986..HEAD:/runtime/JSStringBuilder.h?ds=inline diff --git a/runtime/JSStringBuilder.h b/runtime/JSStringBuilder.h index 63e51a3..34f43c4 100644 --- a/runtime/JSStringBuilder.h +++ b/runtime/JSStringBuilder.h @@ -118,49 +118,19 @@ private: bool m_is8Bit; }; -template -inline JSValue jsMakeNontrivialString(ExecState* exec, StringType1 string1, StringType2 string2) +template +inline JSValue jsMakeNontrivialString(ExecState* exec, StringType&& string) { - PassRefPtr result = WTF::tryMakeString(string1, string2); - if (!result) - return throwOutOfMemoryError(exec); - return jsNontrivialString(exec, result); -} - -template -inline JSValue jsMakeNontrivialString(ExecState* exec, StringType1 string1, StringType2 string2, StringType3 string3) -{ - PassRefPtr result = WTF::tryMakeString(string1, string2, string3); - if (!result) - return throwOutOfMemoryError(exec); - return jsNontrivialString(exec, result); -} - -template -inline JSValue jsMakeNontrivialString(ExecState* exec, StringType1 string1, StringType2 string2, StringType3 string3, StringType4 string4) -{ - PassRefPtr result = WTF::tryMakeString(string1, string2, string3, string4); - if (!result) - return throwOutOfMemoryError(exec); - return jsNontrivialString(exec, result); -} - -template -inline JSValue jsMakeNontrivialString(ExecState* exec, StringType1 string1, StringType2 string2, StringType3 string3, StringType4 string4, StringType5 string5) -{ - PassRefPtr result = WTF::tryMakeString(string1, string2, string3, string4, string5); - if (!result) - return throwOutOfMemoryError(exec); - return jsNontrivialString(exec, result); + return jsNontrivialString(exec, std::forward(string)); } -template -inline JSValue jsMakeNontrivialString(ExecState* exec, StringType1 string1, StringType2 string2, StringType3 string3, StringType4 string4, StringType5 string5, StringType6 string6) +template +inline JSValue jsMakeNontrivialString(ExecState* exec, const StringType& string, const StringTypes&... strings) { - PassRefPtr result = WTF::tryMakeString(string1, string2, string3, string4, string5, string6); + RefPtr result = WTF::tryMakeString(string, strings...); if (!result) return throwOutOfMemoryError(exec); - return jsNontrivialString(exec, result); + return jsNontrivialString(exec, result.release()); } }