diff options
Diffstat (limited to 'Source/JavaScriptCore/parser')
-rw-r--r-- | Source/JavaScriptCore/parser/Parser.cpp | 16 | ||||
-rw-r--r-- | Source/JavaScriptCore/parser/Parser.h | 3 |
2 files changed, 11 insertions, 8 deletions
diff --git a/Source/JavaScriptCore/parser/Parser.cpp b/Source/JavaScriptCore/parser/Parser.cpp index c66b74282..f4751616f 100644 --- a/Source/JavaScriptCore/parser/Parser.cpp +++ b/Source/JavaScriptCore/parser/Parser.cpp @@ -90,7 +90,7 @@ void Parser<LexerType>::logError(bool) return; StringPrintStream stream; printUnexpectedTokenText(stream); - setErrorMessage(stream.toString()); + setErrorMessage(stream.toStringWithLatin1Fallback()); } template <typename LexerType> template <typename A> @@ -104,7 +104,7 @@ void Parser<LexerType>::logError(bool shouldPrintToken, const A& value1) stream.print(". "); } stream.print(value1, "."); - setErrorMessage(stream.toString()); + setErrorMessage(stream.toStringWithLatin1Fallback()); } template <typename LexerType> template <typename A, typename B> @@ -118,7 +118,7 @@ void Parser<LexerType>::logError(bool shouldPrintToken, const A& value1, const B stream.print(". "); } stream.print(value1, value2, "."); - setErrorMessage(stream.toString()); + setErrorMessage(stream.toStringWithLatin1Fallback()); } template <typename LexerType> template <typename A, typename B, typename C> @@ -132,7 +132,7 @@ void Parser<LexerType>::logError(bool shouldPrintToken, const A& value1, const B stream.print(". "); } stream.print(value1, value2, value3, "."); - setErrorMessage(stream.toString()); + setErrorMessage(stream.toStringWithLatin1Fallback()); } template <typename LexerType> template <typename A, typename B, typename C, typename D> @@ -146,7 +146,7 @@ void Parser<LexerType>::logError(bool shouldPrintToken, const A& value1, const B stream.print(". "); } stream.print(value1, value2, value3, value4, "."); - setErrorMessage(stream.toString()); + setErrorMessage(stream.toStringWithLatin1Fallback()); } template <typename LexerType> template <typename A, typename B, typename C, typename D, typename E> @@ -160,7 +160,7 @@ void Parser<LexerType>::logError(bool shouldPrintToken, const A& value1, const B stream.print(". "); } stream.print(value1, value2, value3, value4, value5, "."); - setErrorMessage(stream.toString()); + setErrorMessage(stream.toStringWithLatin1Fallback()); } template <typename LexerType> template <typename A, typename B, typename C, typename D, typename E, typename F> @@ -174,7 +174,7 @@ void Parser<LexerType>::logError(bool shouldPrintToken, const A& value1, const B stream.print(". "); } stream.print(value1, value2, value3, value4, value5, value6, "."); - setErrorMessage(stream.toString()); + setErrorMessage(stream.toStringWithLatin1Fallback()); } template <typename LexerType> template <typename A, typename B, typename C, typename D, typename E, typename F, typename G> @@ -188,7 +188,7 @@ void Parser<LexerType>::logError(bool shouldPrintToken, const A& value1, const B stream.print(". "); } stream.print(value1, value2, value3, value4, value5, value6, value7, "."); - setErrorMessage(stream.toString()); + setErrorMessage(stream.toStringWithLatin1Fallback()); } template <typename LexerType> diff --git a/Source/JavaScriptCore/parser/Parser.h b/Source/JavaScriptCore/parser/Parser.h index 02a726a56..bce94ba25 100644 --- a/Source/JavaScriptCore/parser/Parser.h +++ b/Source/JavaScriptCore/parser/Parser.h @@ -1114,7 +1114,10 @@ private: void setErrorMessage(const String& message) { + ASSERT_WITH_MESSAGE(!message.isEmpty(), "Attempted to set the empty string as an error message. Likely caused by invalid UTF8 used when creating the message."); m_errorMessage = message; + if (m_errorMessage.isEmpty()) + m_errorMessage = ASCIILiteral("Unparseable script"); } NEVER_INLINE void logError(bool); |