diff options
author | Eliot Horowitz <eliot@10gen.com> | 2010-01-26 10:42:28 -0500 |
---|---|---|
committer | Eliot Horowitz <eliot@10gen.com> | 2010-01-26 10:42:28 -0500 |
commit | c86eda25ac2256ec595ed9979c867b46c0f1c3df (patch) | |
tree | fa51d7c0901c14a326c00308e47965cc68e7d9a4 /scripting | |
parent | 81001819bebb81b44a260676b62f696f2203e45d (diff) | |
download | mongo-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.cpp | 10 |
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; |