diff options
author | Kevin Pulo <kevin.pulo@mongodb.com> | 2019-12-04 01:12:03 +0000 |
---|---|---|
committer | evergreen <evergreen@mongodb.com> | 2019-12-04 01:12:03 +0000 |
commit | 89c93866980e924c7ae91ca30b5bd3674727fe4f (patch) | |
tree | 2cb953fba031ecb363d0fab7e177e508c292540a /src/mongo/scripting | |
parent | d3b08f2dc93636a04f92d5448fdacfd447704607 (diff) | |
download | mongo-89c93866980e924c7ae91ca30b5bd3674727fe4f.tar.gz |
SERVER-43246 Add a log line for when a cursor is reaped due to logical session cleanup
Diffstat (limited to 'src/mongo/scripting')
-rw-r--r-- | src/mongo/scripting/mozjs/internedstring.defs | 1 | ||||
-rw-r--r-- | src/mongo/scripting/mozjs/numberlong.cpp | 18 | ||||
-rw-r--r-- | src/mongo/scripting/mozjs/numberlong.h | 1 |
3 files changed, 20 insertions, 0 deletions
diff --git a/src/mongo/scripting/mozjs/internedstring.defs b/src/mongo/scripting/mozjs/internedstring.defs index 89900e5c35c..a02b5d680b2 100644 --- a/src/mongo/scripting/mozjs/internedstring.defs +++ b/src/mongo/scripting/mozjs/internedstring.defs @@ -19,6 +19,7 @@ MONGO_MOZJS_INTERNED_STRING(defaultDB, "defaultDB") MONGO_MOZJS_INTERNED_STRING(dollar_db, "$db") MONGO_MOZJS_INTERNED_STRING(dollar_id, "$id") MONGO_MOZJS_INTERNED_STRING(dollar_ref, "$ref") +MONGO_MOZJS_INTERNED_STRING(exactValueString, "exactValueString") MONGO_MOZJS_INTERNED_STRING(_fields, "_fields") MONGO_MOZJS_INTERNED_STRING(fileName, "fileName") MONGO_MOZJS_INTERNED_STRING(flags, "flags") diff --git a/src/mongo/scripting/mozjs/numberlong.cpp b/src/mongo/scripting/mozjs/numberlong.cpp index 0fbc1aee999..33f8fafe76b 100644 --- a/src/mongo/scripting/mozjs/numberlong.cpp +++ b/src/mongo/scripting/mozjs/numberlong.cpp @@ -130,6 +130,13 @@ void NumberLongInfo::Functions::floatApprox::call(JSContext* cx, JS::CallArgs ar ValueReader(cx, args.rval()).fromDouble(numLong); } +void NumberLongInfo::Functions::exactValueString::call(JSContext* cx, JS::CallArgs args) { + str::stream ss; + int64_t val = NumberLongInfo::ToNumberLong(cx, args.thisv()); + ss << val; + ValueReader(cx, args.rval()).fromStringData(ss.operator std::string()); +} + void NumberLongInfo::Functions::top::call(JSContext* cx, JS::CallArgs args) { auto numULong = static_cast<uint64_t>(NumberLongInfo::ToNumberLong(cx, args.thisv())); ValueReader(cx, args.rval()).fromDouble(numULong >> 32); @@ -236,6 +243,17 @@ void NumberLongInfo::postInstall(JSContext* cx, JS::HandleObject global, JS::Han JSPROP_ENUMERATE)) { uasserted(ErrorCodes::JSInterpreterFailure, "Failed to JS_DefinePropertyById"); } + + // exactValueString + if (!JS_DefinePropertyById( + cx, + proto, + getScope(cx)->getInternedStringId(InternedString::exactValueString), + smUtils::wrapConstrainedMethod<Functions::exactValueString, false, NumberLongInfo>, + nullptr, + JSPROP_ENUMERATE)) { + uasserted(ErrorCodes::JSInterpreterFailure, "Failed to JS_DefinePropertyById"); + } } } // namespace mozjs diff --git a/src/mongo/scripting/mozjs/numberlong.h b/src/mongo/scripting/mozjs/numberlong.h index 354a229d79c..ec2f18e50cd 100644 --- a/src/mongo/scripting/mozjs/numberlong.h +++ b/src/mongo/scripting/mozjs/numberlong.h @@ -63,6 +63,7 @@ struct NumberLongInfo : public BaseInfo { MONGO_DECLARE_JS_FUNCTION(floatApprox); MONGO_DECLARE_JS_FUNCTION(top); MONGO_DECLARE_JS_FUNCTION(bottom); + MONGO_DECLARE_JS_FUNCTION(exactValueString); }; static const JSFunctionSpec methods[6]; |