Index: src/JsValue.cpp |
=================================================================== |
--- a/src/JsValue.cpp |
+++ b/src/JsValue.cpp |
@@ -220,22 +220,30 @@ |
if (!IsObject()) |
throw new std::runtime_error("Cannot get constructor of a non-object"); |
const JsContext context(jsEngine); |
v8::Local<v8::Object> obj = v8::Local<v8::Object>::Cast(UnwrapValue()); |
return Utils::FromV8String(obj->GetConstructorName()); |
} |
-JsValue JsValue::Call(const JsValueList& params, const JsValuePtr& thisPtr) const |
+JsValue JsValue::Call(const JsValueList& params) const |
{ |
const JsContext context(jsEngine); |
- v8::Local<v8::Object> thisObj = thisPtr ? |
- v8::Local<v8::Object>::Cast(thisPtr->UnwrapValue()) : |
- context.GetV8Context()->Global(); |
+ std::vector<v8::Handle<v8::Value>> argv; |
+ for (const auto& param : params) |
+ argv.push_back(param.UnwrapValue()); |
+ |
+ return Call(argv, context.GetV8Context()->Global()); |
+} |
+ |
+JsValue JsValue::Call(const JsValueList& params, const JsValue& thisValue) const |
+{ |
+ const JsContext context(jsEngine); |
+ v8::Local<v8::Object> thisObj = v8::Local<v8::Object>::Cast(thisValue.UnwrapValue()); |
std::vector<v8::Handle<v8::Value>> argv; |
for (const auto& param : params) |
argv.push_back(param.UnwrapValue()); |
return Call(argv, thisObj); |
} |