Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code

Delta Between Two Patch Sets: src/JsEngine.cpp

Issue 29813591: Issue 6526 - Use Maybe<> version of soon to be deprecated API in v8 6.7 (Closed) Base URL: https://hg.adblockplus.org/libadblockplus/
Left Patch Set: Created June 22, 2018, 8:54 p.m.
Right Patch Set: Throw on empty value (AsInt() and As Bool()) Created Aug. 7, 2018, 2:36 p.m.
Left:
Right:
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
Left: Side by side diff | Download
Right: Side by side diff | Download
« no previous file with change/comment | « no previous file | src/JsValue.cpp » ('j') | src/JsValue.cpp » ('J')
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
LEFTRIGHT
1 /* 1 /*
2 * This file is part of Adblock Plus <https://adblockplus.org/>, 2 * This file is part of Adblock Plus <https://adblockplus.org/>,
3 * Copyright (C) 2006-present eyeo GmbH 3 * Copyright (C) 2006-present eyeo GmbH
4 * 4 *
5 * Adblock Plus is free software: you can redistribute it and/or modify 5 * Adblock Plus is free software: you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License version 3 as 6 * it under the terms of the GNU General Public License version 3 as
7 * published by the Free Software Foundation. 7 * published by the Free Software Foundation.
8 * 8 *
9 * Adblock Plus is distributed in the hope that it will be useful, 9 * Adblock Plus is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
(...skipping 176 matching lines...) Expand 10 before | Expand all | Expand 10 after
187 JsContext context(*this); 187 JsContext context(*this);
188 return JsValue(shared_from_this(), context.GetV8Context()->Global()); 188 return JsValue(shared_from_this(), context.GetV8Context()->Global());
189 } 189 }
190 190
191 AdblockPlus::JsValue AdblockPlus::JsEngine::Evaluate(const std::string& source, 191 AdblockPlus::JsValue AdblockPlus::JsEngine::Evaluate(const std::string& source,
192 const std::string& filename) 192 const std::string& filename)
193 { 193 {
194 const JsContext context(*this); 194 const JsContext context(*this);
195 auto isolate = GetIsolate(); 195 auto isolate = GetIsolate();
196 const v8::TryCatch tryCatch(isolate); 196 const v8::TryCatch tryCatch(isolate);
197 auto script = CHECKED_TO_LOCAL( 197 auto script = CHECKED_TO_LOCAL_WITH_TRY_CATCH(
198 isolate, CompileScript(isolate, source, filename), tryCatch); 198 isolate, CompileScript(isolate, source, filename), tryCatch);
199 auto result = CHECKED_TO_LOCAL( 199 auto result = CHECKED_TO_LOCAL_WITH_TRY_CATCH(
200 isolate, script->Run(isolate->GetCurrentContext()), tryCatch); 200 isolate, script->Run(isolate->GetCurrentContext()), tryCatch);
201 return JsValue(shared_from_this(), result); 201 return JsValue(shared_from_this(), result);
202 } 202 }
203 203
204 void AdblockPlus::JsEngine::SetEventCallback(const std::string& eventName, 204 void AdblockPlus::JsEngine::SetEventCallback(const std::string& eventName,
205 const AdblockPlus::JsEngine::EventCallback& callback) 205 const AdblockPlus::JsEngine::EventCallback& callback)
206 { 206 {
207 if (!callback) 207 if (!callback)
208 { 208 {
209 RemoveEventCallback(eventName); 209 RemoveEventCallback(eventName);
(...skipping 25 matching lines...) Expand all
235 void AdblockPlus::JsEngine::Gc() 235 void AdblockPlus::JsEngine::Gc()
236 { 236 {
237 while (!GetIsolate()->IdleNotificationDeadline(1000)); 237 while (!GetIsolate()->IdleNotificationDeadline(1000));
238 } 238 }
239 239
240 AdblockPlus::JsValue AdblockPlus::JsEngine::NewValue(const std::string& val) 240 AdblockPlus::JsValue AdblockPlus::JsEngine::NewValue(const std::string& val)
241 { 241 {
242 const JsContext context(*this); 242 const JsContext context(*this);
243 auto isolate = GetIsolate(); 243 auto isolate = GetIsolate();
244 return JsValue(shared_from_this(), 244 return JsValue(shared_from_this(),
245 CHECKED_TO_LOCAL_NOTHROW(isolate, Utils::ToV8String(isolate, val))); 245 CHECKED_TO_LOCAL(isolate, Utils::ToV8String(isolate, val)));
246 } 246 }
247 247
248 AdblockPlus::JsValue AdblockPlus::JsEngine::NewValue(int64_t val) 248 AdblockPlus::JsValue AdblockPlus::JsEngine::NewValue(int64_t val)
249 { 249 {
250 const JsContext context(*this); 250 const JsContext context(*this);
251 return JsValue(shared_from_this(), v8::Number::New(GetIsolate(), val)); 251 return JsValue(shared_from_this(), v8::Number::New(GetIsolate(), val));
252 } 252 }
253 253
254 AdblockPlus::JsValue AdblockPlus::JsEngine::NewValue(bool val) 254 AdblockPlus::JsValue AdblockPlus::JsEngine::NewValue(bool val)
255 { 255 {
(...skipping 12 matching lines...) Expand all
268 { 268 {
269 const JsContext context(*this); 269 const JsContext context(*this);
270 auto isolate = GetIsolate(); 270 auto isolate = GetIsolate();
271 // Note: we are leaking this weak pointer, no obvious way to destroy it when 271 // Note: we are leaking this weak pointer, no obvious way to destroy it when
272 // it's no longer used 272 // it's no longer used
273 std::weak_ptr<JsEngine>* data = 273 std::weak_ptr<JsEngine>* data =
274 new std::weak_ptr<JsEngine>(shared_from_this()); 274 new std::weak_ptr<JsEngine>(shared_from_this());
275 v8::Local<v8::FunctionTemplate> templ = v8::FunctionTemplate::New(isolate, cal lback, 275 v8::Local<v8::FunctionTemplate> templ = v8::FunctionTemplate::New(isolate, cal lback,
276 v8::External::New(isolate, data)); 276 v8::External::New(isolate, data));
277 return JsValue(shared_from_this(), 277 return JsValue(shared_from_this(),
278 CHECKED_TO_LOCAL_NOTHROW(isolate, templ->GetFunction(isolate->GetCurrentCo ntext()))); 278 CHECKED_TO_LOCAL(isolate, templ->GetFunction(isolate->GetCurrentContext()) ));
279 } 279 }
280 280
281 AdblockPlus::JsEnginePtr AdblockPlus::JsEngine::FromArguments(const v8::Function CallbackInfo<v8::Value>& arguments) 281 AdblockPlus::JsEnginePtr AdblockPlus::JsEngine::FromArguments(const v8::Function CallbackInfo<v8::Value>& arguments)
282 { 282 {
283 const v8::Local<const v8::External> external = 283 const v8::Local<const v8::External> external =
284 v8::Local<const v8::External>::Cast(arguments.Data()); 284 v8::Local<const v8::External>::Cast(arguments.Data());
285 std::weak_ptr<JsEngine>* data = 285 std::weak_ptr<JsEngine>* data =
286 static_cast<std::weak_ptr<JsEngine>*>(external->Value()); 286 static_cast<std::weak_ptr<JsEngine>*>(external->Value());
287 JsEnginePtr result = data->lock(); 287 JsEnginePtr result = data->lock();
288 if (!result) 288 if (!result)
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
345 list.push_back(JsValue(shared_from_this(), arguments[i])); 345 list.push_back(JsValue(shared_from_this(), arguments[i]));
346 return list; 346 return list;
347 } 347 }
348 348
349 void AdblockPlus::JsEngine::SetGlobalProperty(const std::string& name, 349 void AdblockPlus::JsEngine::SetGlobalProperty(const std::string& name,
350 const AdblockPlus::JsValue& value) 350 const AdblockPlus::JsValue& value)
351 { 351 {
352 auto global = GetGlobalObject(); 352 auto global = GetGlobalObject();
353 global.SetProperty(name, value); 353 global.SetProperty(name, value);
354 } 354 }
LEFTRIGHT
« no previous file | src/JsValue.cpp » ('j') | Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Toggle Comments ('s')

Powered by Google App Engine
This is Rietveld