summaryrefslogtreecommitdiff
path: root/src/mongo/scripting/mozjs/bson.cpp
diff options
context:
space:
mode:
authorMark Benvenuto <mark.benvenuto@mongodb.com>2016-04-21 10:41:26 -0400
committerMark Benvenuto <mark.benvenuto@mongodb.com>2016-04-21 10:51:49 -0400
commit6abef94a017f6140f1cd222587bb101c1b8ceda1 (patch)
tree334b5025cb1a6abfd0d61f5b0d6d478dbe948b30 /src/mongo/scripting/mozjs/bson.cpp
parent9d496edb004f1782ca4f8998eab6327e5cc0e3c8 (diff)
downloadmongo-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.cpp22
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) {