Better error reporting on XFA JS errors

Change-Id: I773ff83b45ffbd736f064daedb1010c8d01a99d5
Reviewed-on: https://pdfium-review.googlesource.com/34050
Commit-Queue: dsinclair <dsinclair@chromium.org>
Reviewed-by: dsinclair <dsinclair@chromium.org>
diff --git a/fxjs/cfxjse_context.cpp b/fxjs/cfxjse_context.cpp
index 2de698d..01f86c3 100644
--- a/fxjs/cfxjse_context.cpp
+++ b/fxjs/cfxjse_context.cpp
@@ -293,7 +293,16 @@
 
 #ifndef NDEBUG
   v8::String::Utf8Value error(GetIsolate(), trycatch.Exception());
-  fprintf(stderr, "JS Error: %ls\n", WideString::FromUTF8(*error).c_str());
+  fprintf(stderr, "JS Error: %s\n", *error);
+
+  v8::Local<v8::Message> message = trycatch.Message();
+  if (!message.IsEmpty()) {
+    v8::Local<v8::Context> context(GetIsolate()->GetCurrentContext());
+    int linenum = message->GetLineNumber(context).FromJust();
+    v8::String::Utf8Value sourceline(
+        GetIsolate(), message->GetSourceLine(context).ToLocalChecked());
+    fprintf(stderr, "Line %d: %s\n", linenum, *sourceline);
+  }
 #endif  // NDEBUG
 
   if (lpRetValue) {