Index: src/JsEngine.cpp |
=================================================================== |
--- a/src/JsEngine.cpp |
+++ b/src/JsEngine.cpp |
@@ -108,17 +108,18 @@ |
using namespace AdblockPlus; |
-JsEngine::JsWeakValuesList::~JsWeakValuesList() |
-{ |
-} |
+template <> JsWeakValuesList<v8::Global<v8::Value>>::~JsWeakValuesList() |
+{ |
+} |
-void JsEngine::NotifyLowMemory() |
+ |
+template <> void AdblockPlus::JSENGINEV8::NotifyLowMemory() |
{ |
const JsContext context(*this); |
GetIsolate()->MemoryPressureNotification(v8::MemoryPressureLevel::kCritical); |
} |
-void JsEngine::ScheduleTimer(const v8::FunctionCallbackInfo<v8::Value>& arguments) |
+template <> void AdblockPlus::JSENGINEV8::ScheduleTimer(const v8::FunctionCallbackInfo<v8::Value>& arguments) |
{ |
auto jsEngine = FromArguments(arguments); |
if (arguments.Length() < 2) |
@@ -144,7 +145,7 @@ |
}); |
} |
-void JsEngine::CallTimerTask(const JsWeakValuesID& timerParamsID) |
+template <> void AdblockPlus::JSENGINEV8::CallTimerTask(const JsWeakValuesID& timerParamsID) |
{ |
auto timerParams = TakeJsValues(timerParamsID); |
JsValue callback = std::move(timerParams[0]); |
@@ -154,13 +155,14 @@ |
callback.Call(timerParams); |
} |
-AdblockPlus::JsEngine::JsEngine(Platform& platform, std::unique_ptr<IV8IsolateProvider> isolate) |
+template <> AdblockPlus::JSENGINEV8::JsEngineTemplate(Platform& platform, std::unique_ptr<IV8IsolateProvider> isolate) |
: platform(platform) |
, isolate(std::move(isolate)) |
{ |
} |
-AdblockPlus::JsEnginePtr AdblockPlus::JsEngine::New(const AppInfo& appInfo, |
+ |
+template <> AdblockPlus::JsEnginePtr AdblockPlus::JSENGINEV8::New(const AppInfo& appInfo, |
Platform& platform, std::unique_ptr<IV8IsolateProvider> isolate) |
{ |
if (!isolate) |
@@ -180,13 +182,13 @@ |
return result; |
} |
-AdblockPlus::JsValue AdblockPlus::JsEngine::GetGlobalObject() |
+template <> AdblockPlus::JsValue AdblockPlus::JSENGINEV8::GetGlobalObject() |
{ |
JsContext context(*this); |
- return JsValue(shared_from_this(), context.GetV8Context()->Global()); |
+ return JsValue(shared_from_this(), context.GetJSEngineContext()->Global()); |
} |
-AdblockPlus::JsValue AdblockPlus::JsEngine::Evaluate(const std::string& source, |
+template <> AdblockPlus::JsValue AdblockPlus::JSENGINEV8::Evaluate(const std::string& source, |
const std::string& filename) |
{ |
const JsContext context(*this); |
@@ -199,8 +201,8 @@ |
return JsValue(shared_from_this(), result); |
} |
-void AdblockPlus::JsEngine::SetEventCallback(const std::string& eventName, |
- const AdblockPlus::JsEngine::EventCallback& callback) |
+template <> void AdblockPlus::JSENGINEV8::SetEventCallback(const std::string& eventName, |
+ const AdblockPlus::JSENGINEV8::EventCallback& callback) |
{ |
if (!callback) |
{ |
@@ -211,13 +213,13 @@ |
eventCallbacks[eventName] = callback; |
} |
-void AdblockPlus::JsEngine::RemoveEventCallback(const std::string& eventName) |
+template <> void AdblockPlus::JSENGINEV8::RemoveEventCallback(const std::string& eventName) |
{ |
std::lock_guard<std::mutex> lock(eventCallbacksMutex); |
eventCallbacks.erase(eventName); |
} |
-void AdblockPlus::JsEngine::TriggerEvent(const std::string& eventName, AdblockPlus::JsValueList&& params) |
+template <> void AdblockPlus::JSENGINEV8::TriggerEvent(const std::string& eventName, AdblockPlus::JsValueList&& params) |
{ |
EventCallback callback; |
{ |
@@ -230,36 +232,36 @@ |
callback(move(params)); |
} |
-void AdblockPlus::JsEngine::Gc() |
+template <> void AdblockPlus::JSENGINEV8::Gc() |
{ |
while (!GetIsolate()->IdleNotification(1000)); |
} |
-AdblockPlus::JsValue AdblockPlus::JsEngine::NewValue(const std::string& val) |
+template <> AdblockPlus::JsValue AdblockPlus::JSENGINEV8::NewValue(const std::string& val) |
{ |
const JsContext context(*this); |
return JsValue(shared_from_this(), Utils::ToV8String(GetIsolate(), val)); |
} |
-AdblockPlus::JsValue AdblockPlus::JsEngine::NewValue(int64_t val) |
+template <> AdblockPlus::JsValue AdblockPlus::JSENGINEV8::NewValue(int64_t val) |
{ |
const JsContext context(*this); |
return JsValue(shared_from_this(), v8::Number::New(GetIsolate(), val)); |
} |
-AdblockPlus::JsValue AdblockPlus::JsEngine::NewValue(bool val) |
+template <> AdblockPlus::JsValue AdblockPlus::JSENGINEV8::NewValue(bool val) |
{ |
const JsContext context(*this); |
return JsValue(shared_from_this(), v8::Boolean::New(GetIsolate(), val)); |
} |
-AdblockPlus::JsValue AdblockPlus::JsEngine::NewObject() |
+template <> AdblockPlus::JsValue AdblockPlus::JSENGINEV8::NewObject() |
{ |
const JsContext context(*this); |
return JsValue(shared_from_this(), v8::Object::New(GetIsolate())); |
} |
-AdblockPlus::JsValue AdblockPlus::JsEngine::NewCallback( |
+template <> AdblockPlus::JsValue AdblockPlus::JSENGINEV8::NewCallback( |
const v8::FunctionCallback& callback) |
{ |
const JsContext context(*this); |
@@ -273,7 +275,7 @@ |
return JsValue(shared_from_this(), templ->GetFunction()); |
} |
-AdblockPlus::JsEnginePtr AdblockPlus::JsEngine::FromArguments(const v8::FunctionCallbackInfo<v8::Value>& arguments) |
+template <> AdblockPlus::JsEnginePtr AdblockPlus::JSENGINEV8::FromArguments(const v8::FunctionCallbackInfo<v8::Value>& arguments) |
{ |
const v8::Local<const v8::External> external = |
v8::Local<const v8::External>::Cast(arguments.Data()); |
@@ -285,7 +287,7 @@ |
return result; |
} |
-JsEngine::JsWeakValuesID JsEngine::StoreJsValues(const JsValueList& values) |
+template <> AdblockPlus::JsWeakValuesID AdblockPlus::JSENGINEV8::StoreJsValues(const JsValueList& values) |
{ |
JsWeakValuesLists::iterator it; |
{ |
@@ -304,7 +306,7 @@ |
return retValue; |
} |
-JsValueList JsEngine::TakeJsValues(const JsWeakValuesID& id) |
+template <> JsValueList JSENGINEV8::TakeJsValues(const JsWeakValuesID& id) |
{ |
JsValueList retValue; |
{ |
@@ -321,7 +323,7 @@ |
return retValue; |
} |
-AdblockPlus::JsValueList AdblockPlus::JsEngine::ConvertArguments(const v8::FunctionCallbackInfo<v8::Value>& arguments) |
+template <> AdblockPlus::JsValueList AdblockPlus::JSENGINEV8::ConvertArguments(const v8::FunctionCallbackInfo<v8::Value>& arguments) |
{ |
const JsContext context(*this); |
JsValueList list; |
@@ -330,7 +332,7 @@ |
return list; |
} |
-void AdblockPlus::JsEngine::SetGlobalProperty(const std::string& name, |
+void AdblockPlus::JSENGINEV8::SetGlobalProperty(const std::string& name, |
const AdblockPlus::JsValue& value) |
{ |
auto global = GetGlobalObject(); |