Index: include/AdblockPlus/JsValue.h |
diff --git a/include/AdblockPlus/JsValue.h b/include/AdblockPlus/JsValue.h |
index a7ca34c0915329fa045c379611e87abba6e5a7af..df87833883540ffa5f6516df4ab75e2d9bda7105 100644 |
--- a/include/AdblockPlus/JsValue.h |
+++ b/include/AdblockPlus/JsValue.h |
@@ -40,16 +40,9 @@ namespace AdblockPlus |
typedef std::shared_ptr<JsEngine> JsEnginePtr; |
/** |
- * Shared smart pointer to a `JsValue` instance. |
- */ |
- typedef std::shared_ptr<JsValue> JsValuePtr; |
- typedef std::shared_ptr<const JsValue> JsConstValuePtr; |
- |
- /** |
* List of JavaScript values. |
*/ |
- typedef std::vector<AdblockPlus::JsValuePtr> JsValueList; |
- typedef std::vector<AdblockPlus::JsConstValuePtr> JsConstValueList; |
+ typedef std::vector<AdblockPlus::JsValue> JsValueList; |
/** |
* Wrapper for JavaScript values. |
@@ -60,8 +53,11 @@ namespace AdblockPlus |
friend class JsEngine; |
public: |
JsValue(JsValue&& src); |
+ JsValue(const JsValue& src); |
virtual ~JsValue(); |
+ JsValue& operator=(const JsValue& src); |
+ |
bool IsUndefined() const; |
bool IsNull() const; |
bool IsString() const; |
@@ -87,7 +83,7 @@ namespace AdblockPlus |
* @return Property value, undefined (see `IsUndefined()`) if the property |
* does not exist. |
*/ |
- JsValuePtr GetProperty(const std::string& name) const; |
+ JsValue GetProperty(const std::string& name) const; |
//@{ |
/** |
@@ -98,7 +94,7 @@ namespace AdblockPlus |
void SetProperty(const std::string& name, const std::string& val); |
void SetProperty(const std::string& name, int64_t val); |
void SetProperty(const std::string& name, bool val); |
- void SetProperty(const std::string& name, const JsValuePtr& value); |
+ void SetProperty(const std::string& name, const JsValue& value); |
inline void SetProperty(const std::string& name, const char* val) |
{ |
SetProperty(name, std::string(val)); |
@@ -121,11 +117,17 @@ namespace AdblockPlus |
/** |
* Invokes the value as a function (see `IsFunction()`). |
* @param params Optional list of parameters. |
- * @param thisPtr Optional `this` value. |
* @return Value returned by the function. |
*/ |
- JsValue Call(const JsConstValueList& params = JsConstValueList(), |
- AdblockPlus::JsValuePtr thisPtr = AdblockPlus::JsValuePtr()) const; |
+ JsValue Call(const JsValueList& params = JsValueList()) const; |
+ |
+ /** |
+ * Invokes the value as a method (see `IsFunction()`). |
+ * @param params list of parameters. |
+ * @param thisPtr `this` value. |
+ * @return Value returned by the function. |
+ */ |
+ JsValue Call(const JsValueList& params, const AdblockPlus::JsValue& thisValue) const; |
/** |
* Invokes the value as a function (see `IsFunction()`) with single |
@@ -136,6 +138,7 @@ namespace AdblockPlus |
JsValue Call(const JsValue& arg) const; |
v8::Local<v8::Value> UnwrapValue() const; |
+ |
protected: |
JsEnginePtr jsEngine; |
private: |