summaryrefslogtreecommitdiff
path: root/scripting
diff options
context:
space:
mode:
authorEliot Horowitz <eliot@10gen.com>2010-01-26 10:42:28 -0500
committerEliot Horowitz <eliot@10gen.com>2010-01-26 10:42:28 -0500
commitc86eda25ac2256ec595ed9979c867b46c0f1c3df (patch)
treefa51d7c0901c14a326c00308e47965cc68e7d9a4 /scripting
parent81001819bebb81b44a260676b62f696f2203e45d (diff)
downloadmongo-c86eda25ac2256ec595ed9979c867b46c0f1c3df.tar.gz
fix: m/r emit error gets spidermonkey into bad state SERVER-570
Diffstat (limited to 'scripting')
-rw-r--r--scripting/engine_spidermonkey.cpp10
1 files changed, 9 insertions, 1 deletions
diff --git a/scripting/engine_spidermonkey.cpp b/scripting/engine_spidermonkey.cpp
index 2b5e8781fde..2b1493d4629 100644
--- a/scripting/engine_spidermonkey.cpp
+++ b/scripting/engine_spidermonkey.cpp
@@ -827,7 +827,15 @@ namespace mongo {
a = args.obj();
}
- BSONObj out = func( a );
+
+ BSONObj out;
+ try {
+ out = func( a );
+ }
+ catch ( std::exception& e ){
+ JS_ReportError( cx , e.what() );
+ return JS_FALSE;
+ }
if ( out.isEmpty() ){
*rval = JSVAL_VOID;