diff options
author | A. Jesse Jiryu Davis <jesse@mongodb.com> | 2018-12-06 23:15:36 -0500 |
---|---|---|
committer | A. Jesse Jiryu Davis <jesse@mongodb.com> | 2018-12-20 08:36:44 -0600 |
commit | bf58b1ab2abfb2a3ab7a86c154f9f5954ed6f98c (patch) | |
tree | 558b52d1c2db71bb630ed38f9391db58cde986f4 /src/mongo/scripting/mozjs | |
parent | 759846ffced5ef84734bd917a99061edf44dd786 (diff) | |
download | mongo-bf58b1ab2abfb2a3ab7a86c154f9f5954ed6f98c.tar.gz |
SERVER-36902 Update jsTests for new shell transaction API
Diffstat (limited to 'src/mongo/scripting/mozjs')
-rw-r--r-- | src/mongo/scripting/mozjs/session.cpp | 15 | ||||
-rw-r--r-- | src/mongo/scripting/mozjs/session.h | 2 |
2 files changed, 15 insertions, 2 deletions
diff --git a/src/mongo/scripting/mozjs/session.cpp b/src/mongo/scripting/mozjs/session.cpp index 608ed26bd2e..477ab4024dc 100644 --- a/src/mongo/scripting/mozjs/session.cpp +++ b/src/mongo/scripting/mozjs/session.cpp @@ -46,12 +46,13 @@ namespace mongo { namespace mozjs { -const JSFunctionSpec SessionInfo::methods[7] = { +const JSFunctionSpec SessionInfo::methods[8] = { MONGO_ATTACH_JS_CONSTRAINED_METHOD_NO_PROTO(end, SessionInfo), MONGO_ATTACH_JS_CONSTRAINED_METHOD_NO_PROTO(getId, SessionInfo), MONGO_ATTACH_JS_CONSTRAINED_METHOD_NO_PROTO(getTxnState, SessionInfo), MONGO_ATTACH_JS_CONSTRAINED_METHOD_NO_PROTO(setTxnState, SessionInfo), MONGO_ATTACH_JS_CONSTRAINED_METHOD_NO_PROTO(getTxnNumber, SessionInfo), + MONGO_ATTACH_JS_CONSTRAINED_METHOD_NO_PROTO(setTxnNumber, SessionInfo), MONGO_ATTACH_JS_CONSTRAINED_METHOD_NO_PROTO(incrementTxnNumber, SessionInfo), JS_FS_END, }; @@ -86,6 +87,8 @@ StringData transactionStateName(SessionHolder::TransactionState state) { case SessionHolder::TransactionState::kAborted: return "aborted"_sd; } + + MONGO_UNREACHABLE; } SessionHolder::TransactionState transactionStateEnum(StringData name) { @@ -202,6 +205,16 @@ void SessionInfo::Functions::getTxnNumber::call(JSContext* cx, JS::CallArgs args ValueReader(cx, args.rval()).fromInt64(holder->txnNumber); } +void SessionInfo::Functions::setTxnNumber::call(JSContext* cx, JS::CallArgs args) { + auto holder = getHolder(args); + invariant(holder); + uassert(ErrorCodes::BadValue, "setTxnNumber takes 1 argument", args.length() == 1); + + auto arg = args.get(0); + holder->txnNumber = ValueWriter(cx, arg).toInt64(); + args.rval().setUndefined(); +} + void SessionInfo::Functions::incrementTxnNumber::call(JSContext* cx, JS::CallArgs args) { auto holder = getHolder(args); invariant(holder); diff --git a/src/mongo/scripting/mozjs/session.h b/src/mongo/scripting/mozjs/session.h index 845fdb34d35..15c5c950910 100644 --- a/src/mongo/scripting/mozjs/session.h +++ b/src/mongo/scripting/mozjs/session.h @@ -54,7 +54,7 @@ struct SessionInfo : public BaseInfo { MONGO_DECLARE_JS_FUNCTION(incrementTxnNumber); }; - static const JSFunctionSpec methods[7]; + static const JSFunctionSpec methods[8]; static const char* const className; static const unsigned classFlags = JSCLASS_HAS_PRIVATE; |