diff options
Diffstat (limited to 'src/mongo/scripting')
-rw-r--r-- | src/mongo/scripting/mozjs/cursor.cpp | 14 | ||||
-rw-r--r-- | src/mongo/scripting/mozjs/cursor.h | 3 |
2 files changed, 15 insertions, 2 deletions
diff --git a/src/mongo/scripting/mozjs/cursor.cpp b/src/mongo/scripting/mozjs/cursor.cpp index fb1d48e8c83..0b107a31367 100644 --- a/src/mongo/scripting/mozjs/cursor.cpp +++ b/src/mongo/scripting/mozjs/cursor.cpp @@ -40,12 +40,13 @@ namespace mongo { namespace mozjs { -const JSFunctionSpec CursorInfo::methods[6] = { +const JSFunctionSpec CursorInfo::methods[7] = { MONGO_ATTACH_JS_CONSTRAINED_METHOD_NO_PROTO(close, CursorInfo), MONGO_ATTACH_JS_CONSTRAINED_METHOD_NO_PROTO(hasNext, CursorInfo), MONGO_ATTACH_JS_CONSTRAINED_METHOD_NO_PROTO(next, CursorInfo), MONGO_ATTACH_JS_CONSTRAINED_METHOD_NO_PROTO(objsLeftInBatch, CursorInfo), MONGO_ATTACH_JS_CONSTRAINED_METHOD_NO_PROTO(readOnly, CursorInfo), + MONGO_ATTACH_JS_CONSTRAINED_METHOD_NO_PROTO(isClosed, CursorInfo), JS_FS_END, }; @@ -126,5 +127,16 @@ void CursorInfo::Functions::close::call(JSContext* cx, JS::CallArgs args) { args.rval().setUndefined(); } +void CursorInfo::Functions::isClosed::call(JSContext* cx, JS::CallArgs args) { + auto cursor = getCursor(args); + + if (!cursor) { + args.rval().setBoolean(true); + return; + } + + args.rval().setBoolean(cursor->isDead()); +} + } // namespace mozjs } // namespace mongo diff --git a/src/mongo/scripting/mozjs/cursor.h b/src/mongo/scripting/mozjs/cursor.h index 3d3386f7bcc..a0190e6a359 100644 --- a/src/mongo/scripting/mozjs/cursor.h +++ b/src/mongo/scripting/mozjs/cursor.h @@ -47,12 +47,13 @@ struct CursorInfo : public BaseInfo { struct Functions { MONGO_DECLARE_JS_FUNCTION(close); MONGO_DECLARE_JS_FUNCTION(hasNext); + MONGO_DECLARE_JS_FUNCTION(isClosed); MONGO_DECLARE_JS_FUNCTION(next); MONGO_DECLARE_JS_FUNCTION(objsLeftInBatch); MONGO_DECLARE_JS_FUNCTION(readOnly); }; - static const JSFunctionSpec methods[6]; + static const JSFunctionSpec methods[7]; static const char* const className; static const unsigned classFlags = JSCLASS_HAS_PRIVATE; |