Index: include/AdblockPlus/JsValue.h |
diff --git a/include/AdblockPlus/JsValue.h b/include/AdblockPlus/JsValue.h |
index fb76efff6f475b83c93175f3e52c17897b89874a..c9632149822fe9d5d44ef06efc2ef1caa0555613 100644 |
--- a/include/AdblockPlus/JsValue.h |
+++ b/include/AdblockPlus/JsValue.h |
@@ -1,6 +1,6 @@ |
/* |
* This file is part of Adblock Plus <https://adblockplus.org/>, |
- * Copyright (C) 2006-2015 Eyeo GmbH |
+ * Copyright (C) 2006-2016 Eyeo GmbH |
* |
* Adblock Plus is free software: you can redistribute it and/or modify |
* it under the terms of the GNU General Public License version 3 as |
@@ -22,13 +22,13 @@ |
#include <string> |
#include <vector> |
#include <memory> |
-#include "V8ValueHolder.h" |
namespace v8 |
{ |
class Value; |
template<class T> class Handle; |
template<class T> class Local; |
+ template<class T> class Persistent; |
} |
namespace AdblockPlus |
@@ -56,6 +56,7 @@ namespace AdblockPlus |
{ |
friend class JsEngine; |
public: |
+ JsValue(JsValue&& src); |
virtual ~JsValue(); |
bool IsUndefined() const; |
@@ -123,14 +124,21 @@ namespace AdblockPlus |
JsValuePtr Call(const JsValueList& params = JsValueList(), |
AdblockPlus::JsValuePtr thisPtr = AdblockPlus::JsValuePtr()) const; |
+ /** |
+ * Invokes the value as a function (see `IsFunction()`) with single |
+ * parameter. |
+ * @param arg A single required parameter. |
+ * @return Value returned by the function. |
+ */ |
+ JsValuePtr Call(const JsValue& arg) const; |
+ |
v8::Local<v8::Value> UnwrapValue() const; |
protected: |
- JsValue(JsValuePtr value); |
JsEnginePtr jsEngine; |
private: |
JsValue(JsEnginePtr jsEngine, v8::Handle<v8::Value> value); |
void SetProperty(const std::string& name, v8::Handle<v8::Value> val); |
- V8ValueHolder<v8::Value> value; |
+ std::unique_ptr<v8::Persistent<v8::Value>> value; |
}; |
} |