diff options
Diffstat (limited to 'src/mongo/scripting/mozjs/exception.cpp')
-rw-r--r-- | src/mongo/scripting/mozjs/exception.cpp | 5 |
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) |