Skip to content

Commit 42c1504

Browse files
committed
Core - EvaluateScriptAsync no longer returns meaningful error messages
Resolves #4629
1 parent e45890a commit 42c1504

File tree

2 files changed

+14
-2
lines changed

2 files changed

+14
-2
lines changed

CefSharp.Core.Runtime/Internals/StringUtils.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -133,10 +133,10 @@ namespace CefSharp
133133
if (exception.get())
134134
{
135135
std::wstringstream logMessageBuilder;
136-
logMessageBuilder << exception->GetMessage().c_str() << L"\n@ ";
136+
logMessageBuilder << exception->GetMessage().ToWString() << L"\n@ ";
137137
if (!exception->GetScriptResourceName().empty())
138138
{
139-
logMessageBuilder << exception->GetScriptResourceName().c_str();
139+
logMessageBuilder << exception->GetScriptResourceName().ToWString();
140140
}
141141
logMessageBuilder << L":" << exception->GetLineNumber() << L":" << exception->GetStartColumn();
142142
return CefString(logMessageBuilder.str());

CefSharp.Test/Javascript/EvaluateScriptAsyncTests.cs

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -216,6 +216,18 @@ public async Task CanEvaluateScriptAsyncReturnPartiallyEmptyArrays(string javasc
216216
Assert.Equal(expected, result.Result);
217217
}
218218

219+
[Theory]
220+
[InlineData("return", "Uncaught SyntaxError: Illegal return statement\n@ about:blank:1:0")]
221+
public async Task CanEvaluateScriptAsyncReturnError(string javascript, string expected)
222+
{
223+
AssertInitialLoadComplete();
224+
225+
var result = await Browser.EvaluateScriptAsync(javascript);
226+
227+
Assert.False(result.Success);
228+
Assert.Equal(expected, result.Message);
229+
}
230+
219231
/// <summary>
220232
/// Use the EvaluateScriptAsync (IWebBrowser, String,Object[]) overload and pass in string params
221233
/// that require encoding. Test case for https://github.com/cefsharp/CefSharp/issues/2339

0 commit comments

Comments
 (0)