summaryrefslogtreecommitdiff
path: root/src/mongo/scripting
diff options
context:
space:
mode:
authorSiyuan Zhou <siyuan.zhou@mongodb.com>2017-11-07 17:50:57 -0500
committerSiyuan Zhou <siyuan.zhou@mongodb.com>2017-11-16 22:10:31 -0500
commit4edcb8195a1ad4ffa20b9840c323913894376cdb (patch)
tree6e86d75e330220be728b9b9988cf0009d8b89516 /src/mongo/scripting
parent3b5249593ad3bdbc8799f6a2f80ba89568f7894a (diff)
downloadmongo-4edcb8195a1ad4ffa20b9840c323913894376cdb.tar.gz
SERVER-31354 Support driver API for changeStreams in the shell.
Diffstat (limited to 'src/mongo/scripting')
-rw-r--r--src/mongo/scripting/mozjs/cursor.cpp14
-rw-r--r--src/mongo/scripting/mozjs/cursor.h3
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;