summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBenety Goh <benety@mongodb.com>2014-06-13 18:18:20 -0400
committerBenety Goh <benety@mongodb.com>2014-07-22 16:30:21 -0400
commit1fbb52159eb9748627ffd2ae16785ad807d3ebb1 (patch)
tree7963a2a2c65e0cc38c0f8007cf1a7e3a3f6c0fdf
parent4ad6d96e91f4a1d5a22ae64547a9129daf807285 (diff)
downloadmongo-1fbb52159eb9748627ffd2ae16785ad807d3ebb1.tar.gz
SERVER-14254 convert _v8_function from function pointer to boolean
(cherry picked from commit e48abc5beeec5c8b79a6a6a42f9d374ccd323fd2)
-rw-r--r--src/mongo/scripting/engine_v8.cpp8
1 files changed, 4 insertions, 4 deletions
diff --git a/src/mongo/scripting/engine_v8.cpp b/src/mongo/scripting/engine_v8.cpp
index 5aa40b1abf0..4512ea02bac 100644
--- a/src/mongo/scripting/engine_v8.cpp
+++ b/src/mongo/scripting/engine_v8.cpp
@@ -603,8 +603,7 @@ namespace mongo {
// execution terminated
return v8::Undefined();
- v8::Local<v8::External> f =
- v8::External::Cast(*args.Callee()->Get(scope->strLitToV8("_v8_function")));
+ v8::Local<v8::External> f = v8::Local<v8::External>::Cast(args.Data());
v8Function function = (v8Function)(f->Value());
v8::Handle<v8::Value> ret;
string exceptionText;
@@ -1163,8 +1162,9 @@ namespace mongo {
}
v8::Handle<v8::FunctionTemplate> V8Scope::createV8Function(v8Function func) {
- v8::Handle<v8::FunctionTemplate> ft = v8::FunctionTemplate::New(v8Callback);
- ft->Set(strLitToV8("_v8_function"), v8::External::New(reinterpret_cast<void*>(func)),
+ v8::Handle<v8::Value> funcHandle = v8::External::New(reinterpret_cast<void*>(func));
+ v8::Handle<v8::FunctionTemplate> ft = v8::FunctionTemplate::New(v8Callback, funcHandle);
+ ft->Set(strLitToV8("_v8_function"), v8::Boolean::New(true),
static_cast<v8::PropertyAttribute>(v8::DontEnum | v8::ReadOnly));
return ft;
}