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

Unified Diff: src/JsEngine.cpp

Issue 29365532: Issue #3594 - Remove `globalJsObject` and add `GetGlobalObject()` (Closed)
Patch Set: use JsContext Created Nov. 28, 2016, 5:47 p.m.
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « src/JsContext.cpp ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/JsEngine.cpp
===================================================================
--- a/src/JsEngine.cpp
+++ b/src/JsEngine.cpp
@@ -91,13 +91,16 @@
result->context.reset(new v8::Persistent<v8::Context>(result->GetIsolate(),
v8::Context::New(result->GetIsolate())));
- v8::Local<v8::Object> globalContext = v8::Local<v8::Context>::New(
- result->GetIsolate(), *result->context)->Global();
- result->globalJsObject = JsValuePtr(new JsValue(result, globalContext));
- AdblockPlus::GlobalJsObject::Setup(result, appInfo, result->globalJsObject);
+ AdblockPlus::GlobalJsObject::Setup(result, appInfo, result->GetGlobalObject());
return result;
}
+AdblockPlus::JsValuePtr AdblockPlus::JsEngine::GetGlobalObject()
+{
+ JsContext context(shared_from_this());
+ return JsValuePtr(new JsValue(shared_from_this(), context.GetV8Context()->Global()));
Eric 2016/11/28 17:51:27 `JsContext` creates a scope that's entered upon co
sergei 2016/11/29 09:47:12 I would merely like to clarify here that not "the
Eric 2016/11/30 17:59:46 Right. I had a problem on an earlier iteration of
+};
sergei 2016/11/29 09:47:12 Nit: no semicolon.
Eric 2016/11/30 17:59:46 Done.
+
AdblockPlus::JsValuePtr AdblockPlus::JsEngine::Evaluate(const std::string& source,
const std::string& filename)
{
@@ -244,8 +247,8 @@
void AdblockPlus::JsEngine::SetGlobalProperty(const std::string& name,
AdblockPlus::JsValuePtr value)
{
- if (!globalJsObject)
+ auto global = GetGlobalObject();
+ if (!global)
throw std::runtime_error("Global object cannot be null");
-
- globalJsObject->SetProperty(name, value);
+ global->SetProperty(name, value);
}
« no previous file with comments | « src/JsContext.cpp ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld