diff options
Diffstat (limited to 'src/mongo/scripting/mozjs/timestamp.cpp')
-rw-r--r-- | src/mongo/scripting/mozjs/timestamp.cpp | 15 |
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 |