summaryrefslogtreecommitdiff
path: root/src/mongo/scripting/mozjs/timestamp.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mongo/scripting/mozjs/timestamp.cpp')
-rw-r--r--src/mongo/scripting/mozjs/timestamp.cpp15
1 files changed, 15 insertions, 0 deletions
diff --git a/src/mongo/scripting/mozjs/timestamp.cpp b/src/mongo/scripting/mozjs/timestamp.cpp
index 99d83f7c343..468c2f4927f 100644
--- a/src/mongo/scripting/mozjs/timestamp.cpp
+++ b/src/mongo/scripting/mozjs/timestamp.cpp
@@ -38,11 +38,16 @@
#include "mongo/scripting/mozjs/objectwrapper.h"
#include "mongo/scripting/mozjs/valuereader.h"
#include "mongo/scripting/mozjs/valuewriter.h"
+#include "mongo/scripting/mozjs/wrapconstrainedmethod.h"
#include "mongo/util/mongoutils/str.h"
namespace mongo {
namespace mozjs {
+const JSFunctionSpec TimestampInfo::methods[2] = {
+ MONGO_ATTACH_JS_CONSTRAINED_METHOD(toJSON, TimestampInfo), JS_FS_END,
+};
+
const char* const TimestampInfo::className = "Timestamp";
namespace {
@@ -84,5 +89,15 @@ void TimestampInfo::construct(JSContext* cx, JS::CallArgs args) {
args.rval().setObjectOrNull(thisv);
}
+void TimestampInfo::Functions::toJSON::call(JSContext* cx, JS::CallArgs args) {
+ ObjectWrapper o(cx, args.thisv());
+
+ ValueReader(cx, args.rval())
+ .fromBSON(BSON("$timestamp" << BSON("t" << o.getNumber(InternedString::t) << "i"
+ << o.getNumber(InternedString::i))),
+ nullptr,
+ false);
+}
+
} // namespace mozjs
} // namespace mongo