summaryrefslogtreecommitdiff
path: root/src/mongo/scripting/mozjs/exception.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mongo/scripting/mozjs/exception.cpp')
-rw-r--r--src/mongo/scripting/mozjs/exception.cpp5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/mongo/scripting/mozjs/exception.cpp b/src/mongo/scripting/mozjs/exception.cpp
index 28ab1545dac..5b813087ad2 100644
--- a/src/mongo/scripting/mozjs/exception.cpp
+++ b/src/mongo/scripting/mozjs/exception.cpp
@@ -36,6 +36,7 @@
#include "mongo/scripting/mozjs/implscope.h"
#include "mongo/scripting/mozjs/jsstringwrapper.h"
#include "mongo/scripting/mozjs/objectwrapper.h"
+#include "mongo/scripting/mozjs/valuewriter.h"
#include "mongo/util/assert_util.h"
namespace mongo {
@@ -89,6 +90,10 @@ Status currentJSExceptionToStatus(JSContext* cx, ErrorCodes::Error altCode, Stri
if (!JS_GetPendingException(cx, &vp))
return Status(altCode, altReason.rawData());
+ if (!vp.isObject()) {
+ return Status(altCode, ValueWriter(cx, vp).toString());
+ }
+
JS::RootedObject obj(cx, vp.toObjectOrNull());
JSErrorReport* report = JS_ErrorFromException(cx, obj);
if (!report)