diff options
author | Mark Benvenuto <mark.benvenuto@mongodb.com> | 2016-04-21 10:41:26 -0400 |
---|---|---|
committer | Mark Benvenuto <mark.benvenuto@mongodb.com> | 2016-04-21 10:51:49 -0400 |
commit | 6abef94a017f6140f1cd222587bb101c1b8ceda1 (patch) | |
tree | 334b5025cb1a6abfd0d61f5b0d6d478dbe948b30 /src/mongo/scripting/mozjs/bson.cpp | |
parent | 9d496edb004f1782ca4f8998eab6327e5cc0e3c8 (diff) | |
download | mongo-6abef94a017f6140f1cd222587bb101c1b8ceda1.tar.gz |
SERVER-23358 SpiderMonkey 45.0.2 ESR MongoDB & Build Integration
Diffstat (limited to 'src/mongo/scripting/mozjs/bson.cpp')
-rw-r--r-- | src/mongo/scripting/mozjs/bson.cpp | 22 |
1 files changed, 17 insertions, 5 deletions
diff --git a/src/mongo/scripting/mozjs/bson.cpp b/src/mongo/scripting/mozjs/bson.cpp index 0cb60fb6117..cf73b44dc55 100644 --- a/src/mongo/scripting/mozjs/bson.cpp +++ b/src/mongo/scripting/mozjs/bson.cpp @@ -119,7 +119,10 @@ void BSONInfo::finalize(JSFreeOp* fop, JSObject* obj) { delete holder; } -void BSONInfo::enumerate(JSContext* cx, JS::HandleObject obj, JS::AutoIdVector& properties) { +void BSONInfo::enumerate(JSContext* cx, + JS::HandleObject obj, + JS::AutoIdVector& properties, + bool enumerableOnly) { auto holder = getValidHolder(cx, obj); if (!holder) @@ -148,13 +151,17 @@ void BSONInfo::enumerate(JSContext* cx, JS::HandleObject obj, JS::AutoIdVector& } } -void BSONInfo::setProperty( - JSContext* cx, JS::HandleObject obj, JS::HandleId id, bool strict, JS::MutableHandleValue vp) { +void BSONInfo::setProperty(JSContext* cx, + JS::HandleObject obj, + JS::HandleId id, + JS::MutableHandleValue vp, + JS::ObjectOpResult& result) { auto holder = getValidHolder(cx, obj); if (holder) { if (holder->_readOnly) { uasserted(ErrorCodes::BadValue, "Read only object"); + return; } auto iter = holder->_removed.find(IdWrapper(cx, id).toString()); @@ -167,14 +174,19 @@ void BSONInfo::setProperty( } ObjectWrapper(cx, obj).defineProperty(id, vp, JSPROP_ENUMERATE); + result.succeed(); } -void BSONInfo::delProperty(JSContext* cx, JS::HandleObject obj, JS::HandleId id, bool* succeeded) { +void BSONInfo::delProperty(JSContext* cx, + JS::HandleObject obj, + JS::HandleId id, + JS::ObjectOpResult& result) { auto holder = getValidHolder(cx, obj); if (holder) { if (holder->_readOnly) { uasserted(ErrorCodes::BadValue, "Read only object"); + return; } holder->_altered = true; @@ -183,7 +195,7 @@ void BSONInfo::delProperty(JSContext* cx, JS::HandleObject obj, JS::HandleId id, holder->_removed[IdWrapper(cx, id).toStringData(&jsstr)] = true; } - *succeeded = true; + result.succeed(); } void BSONInfo::resolve(JSContext* cx, JS::HandleObject obj, JS::HandleId id, bool* resolvedp) { |