Index: src/GlobalJsObject.cpp |
=================================================================== |
--- a/src/GlobalJsObject.cpp |
+++ b/src/GlobalJsObject.cpp |
@@ -49,37 +49,37 @@ |
// used via clearTimeout(). But since we don't seem to need |
// clearTimeout(), we can save that for later. |
return v8::Undefined(); |
} |
v8::Handle<v8::Value> TriggerEventCallback(const v8::Arguments& arguments) |
{ |
AdblockPlus::JsEnginePtr jsEngine = AdblockPlus::JsEngine::FromArguments(arguments); |
- AdblockPlus::JsConstValueList converted = jsEngine->ConvertArguments(arguments); |
+ AdblockPlus::JsValueList converted = jsEngine->ConvertArguments(arguments); |
if (converted.size() < 1) |
{ |
v8::Isolate* isolate = arguments.GetIsolate(); |
return v8::ThrowException(Utils::ToV8String(isolate, |
"_triggerEvent expects at least one parameter")); |
} |
- std::string eventName = converted.front()->AsString(); |
- converted.erase(converted.begin()); |
+ std::string eventName = converted.front().AsString(); |
+ converted.erase(converted.cbegin()); |
jsEngine->TriggerEvent(eventName, converted); |
return v8::Undefined(); |
} |
} |
JsValue& GlobalJsObject::Setup(JsEngine& jsEngine, const AppInfo& appInfo, |
JsValue& obj) |
{ |
obj.SetProperty("setTimeout", jsEngine.NewCallback(::SetTimeoutCallback)); |
obj.SetProperty("_triggerEvent", jsEngine.NewCallback(::TriggerEventCallback)); |
- obj.SetProperty("_fileSystem", |
- FileSystemJsObject::Setup(jsEngine, *jsEngine.NewObject())); |
- obj.SetProperty("_webRequest", |
- WebRequestJsObject::Setup(jsEngine, *jsEngine.NewObject())); |
- obj.SetProperty("console", |
- ConsoleJsObject::Setup(jsEngine, *jsEngine.NewObject())); |
- obj.SetProperty("_appInfo", |
- AppInfoJsObject::Setup(appInfo, *jsEngine.NewObject())); |
+ auto value = jsEngine.NewObject(); |
sergei
2017/04/19 18:56:52
This change is a bit controversial, but OK.
hub
2017/04/19 21:56:49
It is required for lifetime/scope reasons. Otherwi
|
+ obj.SetProperty("_fileSystem", FileSystemJsObject::Setup(jsEngine, value)); |
+ value = jsEngine.NewObject(); |
+ obj.SetProperty("_webRequest", WebRequestJsObject::Setup(jsEngine, value)); |
+ value = jsEngine.NewObject(); |
+ obj.SetProperty("console", ConsoleJsObject::Setup(jsEngine, value)); |
+ value = jsEngine.NewObject(); |
+ obj.SetProperty("_appInfo", AppInfoJsObject::Setup(appInfo, value)); |
return obj; |
} |