| Index: src/FileSystemJsObject.cpp | 
| =================================================================== | 
| --- a/src/FileSystemJsObject.cpp | 
| +++ b/src/FileSystemJsObject.cpp | 
| @@ -28,32 +28,32 @@ | 
|  | 
| using namespace AdblockPlus; | 
|  | 
| namespace | 
| { | 
| class IoThread : public Thread | 
| { | 
| public: | 
| -    IoThread(const JsEnginePtr& jsEngine, const JsConstValuePtr& callback) | 
| +    IoThread(const JsEnginePtr& jsEngine, const JsValue& callback) | 
| : Thread(true), jsEngine(jsEngine), fileSystem(jsEngine->GetFileSystem()), | 
| callback(callback) | 
| { | 
| } | 
|  | 
| protected: | 
| JsEnginePtr jsEngine; | 
| FileSystemPtr fileSystem; | 
| -    JsConstValuePtr callback; | 
| +    JsValue callback; | 
| }; | 
|  | 
| class ReadThread : public IoThread | 
| { | 
| public: | 
| -    ReadThread(const JsEnginePtr& jsEngine, const JsConstValuePtr& callback, | 
| +    ReadThread(const JsEnginePtr& jsEngine, const JsValue& callback, | 
| const std::string& path) | 
| : IoThread(jsEngine, callback), path(path) | 
| { | 
| } | 
|  | 
| void Run() | 
| { | 
| std::string content; | 
| @@ -68,32 +68,32 @@ | 
| error = e.what(); | 
| } | 
| catch (...) | 
| { | 
| error =  "Unknown error while reading from " + path; | 
| } | 
|  | 
| const JsContext context(jsEngine); | 
| -      JsValuePtr result = jsEngine->NewObject(); | 
| -      result->SetProperty("content", content); | 
| -      result->SetProperty("error", error); | 
| -      JsConstValueList params; | 
| +      auto result = jsEngine->NewObject(); | 
| +      result.SetProperty("content", content); | 
| +      result.SetProperty("error", error); | 
| +      JsValueList params; | 
| params.push_back(result); | 
| -      callback->Call(params); | 
| +      callback.Call(params); | 
| } | 
|  | 
| private: | 
| std::string path; | 
| }; | 
|  | 
| class WriteThread : public IoThread | 
| { | 
| public: | 
| -    WriteThread(const JsEnginePtr& jsEngine, const JsConstValuePtr& callback, | 
| +    WriteThread(const JsEnginePtr& jsEngine, const JsValue& callback, | 
| const std::string& path, const std::string& content) | 
| : IoThread(jsEngine, callback), path(path), content(content) | 
| { | 
| } | 
|  | 
| void Run() | 
| { | 
| std::string error; | 
| @@ -108,31 +108,31 @@ | 
| error = e.what(); | 
| } | 
| catch (...) | 
| { | 
| error = "Unknown error while writing to " + path; | 
| } | 
|  | 
| const JsContext context(jsEngine); | 
| -      JsValuePtr errorValue = jsEngine->NewValue(error); | 
| -      JsConstValueList params; | 
| +      auto errorValue = jsEngine->NewValue(error); | 
| +      JsValueList params; | 
| params.push_back(errorValue); | 
| -      callback->Call(params); | 
| +      callback.Call(params); | 
| } | 
|  | 
| private: | 
| std::string path; | 
| std::string content; | 
| }; | 
|  | 
| class MoveThread : public IoThread | 
| { | 
| public: | 
| -    MoveThread(const JsEnginePtr& jsEngine, const JsConstValuePtr& callback, | 
| +    MoveThread(const JsEnginePtr& jsEngine, const JsValue& callback, | 
| const std::string& fromPath, const std::string& toPath) | 
| : IoThread(jsEngine, callback), fromPath(fromPath), toPath(toPath) | 
| { | 
| } | 
|  | 
| void Run() | 
| { | 
| std::string error; | 
| @@ -145,31 +145,31 @@ | 
| error = e.what(); | 
| } | 
| catch (...) | 
| { | 
| error = "Unknown error while moving " + fromPath + " to " + toPath; | 
| } | 
|  | 
| const JsContext context(jsEngine); | 
| -      JsValuePtr errorValue = jsEngine->NewValue(error); | 
| -      JsConstValueList params; | 
| +      auto errorValue = jsEngine->NewValue(error); | 
| +      JsValueList params; | 
| params.push_back(errorValue); | 
| -      callback->Call(params); | 
| +      callback.Call(params); | 
| } | 
|  | 
| private: | 
| std::string fromPath; | 
| std::string toPath; | 
| }; | 
|  | 
| class RemoveThread : public IoThread | 
| { | 
| public: | 
| -    RemoveThread(const JsEnginePtr& jsEngine, const JsConstValuePtr& callback, | 
| +    RemoveThread(const JsEnginePtr& jsEngine, const JsValue& callback, | 
| const std::string& path) | 
| : IoThread(jsEngine, callback), path(path) | 
| { | 
| } | 
|  | 
| void Run() | 
| { | 
| std::string error; | 
| @@ -182,31 +182,31 @@ | 
| error = e.what(); | 
| } | 
| catch (...) | 
| { | 
| error = "Unknown error while removing " + path; | 
| } | 
|  | 
| const JsContext context(jsEngine); | 
| -      JsValuePtr errorValue = jsEngine->NewValue(error); | 
| -      JsConstValueList params; | 
| +      auto errorValue = jsEngine->NewValue(error); | 
| +      JsValueList params; | 
| params.push_back(errorValue); | 
| -      callback->Call(params); | 
| +      callback.Call(params); | 
| } | 
|  | 
| private: | 
| std::string path; | 
| }; | 
|  | 
|  | 
| class StatThread : public IoThread | 
| { | 
| public: | 
| -    StatThread(const JsEnginePtr& jsEngine, const JsConstValuePtr& callback, | 
| +    StatThread(const JsEnginePtr& jsEngine, const JsValue& callback, | 
| const std::string& path) | 
| : IoThread(jsEngine, callback), path(path) | 
| { | 
| } | 
|  | 
| void Run() | 
| { | 
| std::string error; | 
| @@ -220,133 +220,133 @@ | 
| error = e.what(); | 
| } | 
| catch (...) | 
| { | 
| error = "Unknown error while calling stat on " + path; | 
| } | 
|  | 
| const JsContext context(jsEngine); | 
| -      JsValuePtr result = jsEngine->NewObject(); | 
| -      result->SetProperty("exists", statResult.exists); | 
| -      result->SetProperty("isFile", statResult.isFile); | 
| -      result->SetProperty("isDirectory", statResult.isDirectory); | 
| -      result->SetProperty("lastModified", statResult.lastModified); | 
| -      result->SetProperty("error", error); | 
| +      auto result = jsEngine->NewObject(); | 
| +      result.SetProperty("exists", statResult.exists); | 
| +      result.SetProperty("isFile", statResult.isFile); | 
| +      result.SetProperty("isDirectory", statResult.isDirectory); | 
| +      result.SetProperty("lastModified", statResult.lastModified); | 
| +      result.SetProperty("error", error); | 
|  | 
| -      JsConstValueList params; | 
| +      JsValueList params; | 
| params.push_back(result); | 
| -      callback->Call(params); | 
| +      callback.Call(params); | 
| } | 
|  | 
| private: | 
| std::string path; | 
| }; | 
|  | 
| v8::Handle<v8::Value> ReadCallback(const v8::Arguments& arguments) | 
| { | 
| AdblockPlus::JsEnginePtr jsEngine = AdblockPlus::JsEngine::FromArguments(arguments); | 
| -    AdblockPlus::JsConstValueList converted = jsEngine->ConvertArguments(arguments); | 
| +    AdblockPlus::JsValueList converted = jsEngine->ConvertArguments(arguments); | 
|  | 
| v8::Isolate* isolate = arguments.GetIsolate(); | 
| if (converted.size() != 2) | 
| return v8::ThrowException(Utils::ToV8String(isolate, | 
| "_fileSystem.read requires 2 parameters")); | 
| -    if (!converted[1]->IsFunction()) | 
| +    if (!converted[1].IsFunction()) | 
| return v8::ThrowException(Utils::ToV8String(isolate, | 
| "Second argument to _fileSystem.read must be a function")); | 
| ReadThread* const readThread = new ReadThread(jsEngine, converted[1], | 
| -        converted[0]->AsString()); | 
| +        converted[0].AsString()); | 
| readThread->Start(); | 
| return v8::Undefined(); | 
| } | 
|  | 
| v8::Handle<v8::Value> WriteCallback(const v8::Arguments& arguments) | 
| { | 
| AdblockPlus::JsEnginePtr jsEngine = AdblockPlus::JsEngine::FromArguments(arguments); | 
| -    AdblockPlus::JsConstValueList converted = jsEngine->ConvertArguments(arguments); | 
| +    AdblockPlus::JsValueList converted = jsEngine->ConvertArguments(arguments); | 
|  | 
| v8::Isolate* isolate = arguments.GetIsolate(); | 
| if (converted.size() != 3) | 
| return v8::ThrowException(Utils::ToV8String(isolate, | 
| "_fileSystem.write requires 3 parameters")); | 
| -    if (!converted[2]->IsFunction()) | 
| +    if (!converted[2].IsFunction()) | 
| return v8::ThrowException(Utils::ToV8String(isolate, | 
| "Third argument to _fileSystem.write must be a function")); | 
| WriteThread* const writeThread = new WriteThread(jsEngine, converted[2], | 
| -        converted[0]->AsString(), converted[1]->AsString()); | 
| +        converted[0].AsString(), converted[1].AsString()); | 
| writeThread->Start(); | 
| return v8::Undefined(); | 
| } | 
|  | 
| v8::Handle<v8::Value> MoveCallback(const v8::Arguments& arguments) | 
| { | 
| AdblockPlus::JsEnginePtr jsEngine = AdblockPlus::JsEngine::FromArguments(arguments); | 
| -    AdblockPlus::JsConstValueList converted = jsEngine->ConvertArguments(arguments); | 
| +    AdblockPlus::JsValueList converted = jsEngine->ConvertArguments(arguments); | 
|  | 
| v8::Isolate* isolate = arguments.GetIsolate(); | 
| if (converted.size() != 3) | 
| return v8::ThrowException(Utils::ToV8String(isolate, | 
| "_fileSystem.move requires 3 parameters")); | 
| -    if (!converted[2]->IsFunction()) | 
| +    if (!converted[2].IsFunction()) | 
| return v8::ThrowException(Utils::ToV8String(isolate, | 
| "Third argument to _fileSystem.move must be a function")); | 
| MoveThread* const moveThread = new MoveThread(jsEngine, converted[2], | 
| -        converted[0]->AsString(), converted[1]->AsString()); | 
| +        converted[0].AsString(), converted[1].AsString()); | 
| moveThread->Start(); | 
| return v8::Undefined(); | 
| } | 
|  | 
| v8::Handle<v8::Value> RemoveCallback(const v8::Arguments& arguments) | 
| { | 
| AdblockPlus::JsEnginePtr jsEngine = AdblockPlus::JsEngine::FromArguments(arguments); | 
| -    AdblockPlus::JsConstValueList converted = jsEngine->ConvertArguments(arguments); | 
| +    AdblockPlus::JsValueList converted = jsEngine->ConvertArguments(arguments); | 
|  | 
| v8::Isolate* isolate = arguments.GetIsolate(); | 
| if (converted.size() != 2) | 
| return v8::ThrowException(Utils::ToV8String(isolate, | 
| "_fileSystem.remove requires 2 parameters")); | 
| -    if (!converted[1]->IsFunction()) | 
| +    if (!converted[1].IsFunction()) | 
| return v8::ThrowException(Utils::ToV8String(isolate, | 
| "Second argument to _fileSystem.remove must be a function")); | 
| RemoveThread* const removeThread = new RemoveThread(jsEngine, converted[1], | 
| -        converted[0]->AsString()); | 
| +        converted[0].AsString()); | 
| removeThread->Start(); | 
| return v8::Undefined(); | 
| } | 
|  | 
| v8::Handle<v8::Value> StatCallback(const v8::Arguments& arguments) | 
| { | 
| AdblockPlus::JsEnginePtr jsEngine = AdblockPlus::JsEngine::FromArguments(arguments); | 
| -    AdblockPlus::JsConstValueList converted = jsEngine->ConvertArguments(arguments); | 
| +    AdblockPlus::JsValueList converted = jsEngine->ConvertArguments(arguments); | 
|  | 
| v8::Isolate* isolate = arguments.GetIsolate(); | 
| if (converted.size() != 2) | 
| return v8::ThrowException(Utils::ToV8String(isolate, | 
| "_fileSystem.stat requires 2 parameters")); | 
| -    if (!converted[1]->IsFunction()) | 
| +    if (!converted[1].IsFunction()) | 
| return v8::ThrowException(Utils::ToV8String(isolate, | 
| "Second argument to _fileSystem.stat must be a function")); | 
| StatThread* const statThread = new StatThread(jsEngine, converted[1], | 
| -        converted[0]->AsString()); | 
| +        converted[0].AsString()); | 
| statThread->Start(); | 
| return v8::Undefined(); | 
| } | 
|  | 
| v8::Handle<v8::Value> ResolveCallback(const v8::Arguments& arguments) | 
| { | 
| AdblockPlus::JsEnginePtr jsEngine = AdblockPlus::JsEngine::FromArguments(arguments); | 
| -    AdblockPlus::JsConstValueList converted = jsEngine->ConvertArguments(arguments); | 
| +    AdblockPlus::JsValueList converted = jsEngine->ConvertArguments(arguments); | 
|  | 
| v8::Isolate* isolate = arguments.GetIsolate(); | 
| if (converted.size() != 1) | 
| return v8::ThrowException(Utils::ToV8String(isolate, | 
| "_fileSystem.resolve requires 1 parameter")); | 
|  | 
| -    std::string resolved = jsEngine->GetFileSystem()->Resolve(converted[0]->AsString()); | 
| +    std::string resolved = jsEngine->GetFileSystem()->Resolve(converted[0].AsString()); | 
|  | 
| return Utils::ToV8String(isolate, resolved); | 
| } | 
|  | 
| } | 
|  | 
|  | 
| JsValue& FileSystemJsObject::Setup(JsEngine& jsEngine, JsValue& obj) | 
|  |