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

Delta Between Two Patch Sets: src/JsEngine.cpp

Issue 29523555: Issue 5552 - use strict mode for all JS in libadblocklus (Closed) Base URL: https://github.com/adblockplus/libadblockplus.git
Left Patch Set: Created Aug. 22, 2017, 7:29 a.m.
Right Patch Set: move setting of V8 flags at the very beginning Created Aug. 22, 2017, 10:51 a.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 | « lib/compat.js ('k') | test/FileSystemJsObject.cpp » ('j') | no next file with change/comment »
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-2017 eyeo GmbH 3 * Copyright (C) 2006-2017 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 30 matching lines...) Expand all
41 41
42 void CheckTryCatch(const v8::TryCatch& tryCatch) 42 void CheckTryCatch(const v8::TryCatch& tryCatch)
43 { 43 {
44 if (tryCatch.HasCaught()) 44 if (tryCatch.HasCaught())
45 throw AdblockPlus::JsError(tryCatch.Exception(), tryCatch.Message()); 45 throw AdblockPlus::JsError(tryCatch.Exception(), tryCatch.Message());
46 } 46 }
47 47
48 class V8Initializer 48 class V8Initializer
49 { 49 {
50 V8Initializer() 50 V8Initializer()
51 : platform(v8::platform::CreateDefaultPlatform()) 51 : platform{nullptr}
52 { 52 {
53 std::string cmd = "--use_strict";
54 v8::V8::SetFlagsFromString(cmd.c_str(), cmd.length());
55 platform = v8::platform::CreateDefaultPlatform();
53 v8::V8::InitializePlatform(platform); 56 v8::V8::InitializePlatform(platform);
54 v8::V8::Initialize(); 57 v8::V8::Initialize();
55 } 58 }
56 59
57 ~V8Initializer() 60 ~V8Initializer()
58 { 61 {
59 v8::V8::Dispose(); 62 v8::V8::Dispose();
60 v8::V8::ShutdownPlatform(); 63 v8::V8::ShutdownPlatform();
61 delete platform; 64 delete platform;
62 } 65 }
63 v8::Platform* platform; 66 v8::Platform* platform;
64 public: 67 public:
65 static void Init() 68 static void Init()
66 { 69 {
67 // it's threadsafe since C++11 and it will be instantiated only once and 70 // it's threadsafe since C++11 and it will be instantiated only once and
68 // destroyed at the application exit 71 // destroyed at the application exit
69 static V8Initializer initializer; 72 static V8Initializer initializer;
70 } 73 }
71 }; 74 };
72 } 75 }
73 76
74 using namespace AdblockPlus; 77 using namespace AdblockPlus;
75 78
76 AdblockPlus::ScopedV8Isolate::ScopedV8Isolate() 79 AdblockPlus::ScopedV8Isolate::ScopedV8Isolate()
77 { 80 {
78 V8Initializer::Init(); 81 V8Initializer::Init();
79 std::string cmd = "--use_strict";
anton 2017/08/22 07:37:04 https://issues.adblockplus.org/ticket/5552#comment
80 v8::V8::SetFlagsFromString(cmd.c_str(), cmd.length());
81 v8::Isolate::CreateParams isolateParams; 82 v8::Isolate::CreateParams isolateParams;
82 isolateParams.array_buffer_allocator = v8::ArrayBuffer::Allocator::NewDefaultA llocator(); 83 isolateParams.array_buffer_allocator = v8::ArrayBuffer::Allocator::NewDefaultA llocator();
83 isolate = v8::Isolate::New(isolateParams); 84 isolate = v8::Isolate::New(isolateParams);
84 } 85 }
85 86
86 AdblockPlus::ScopedV8Isolate::~ScopedV8Isolate() 87 AdblockPlus::ScopedV8Isolate::~ScopedV8Isolate()
87 { 88 {
88 isolate->Dispose(); 89 isolate->Dispose();
89 isolate = nullptr; 90 isolate = nullptr;
90 } 91 }
(...skipping 208 matching lines...) Expand 10 before | Expand all | Expand 10 after
299 list.push_back(JsValue(shared_from_this(), arguments[i])); 300 list.push_back(JsValue(shared_from_this(), arguments[i]));
300 return list; 301 return list;
301 } 302 }
302 303
303 void AdblockPlus::JsEngine::SetGlobalProperty(const std::string& name, 304 void AdblockPlus::JsEngine::SetGlobalProperty(const std::string& name,
304 const AdblockPlus::JsValue& value) 305 const AdblockPlus::JsValue& value)
305 { 306 {
306 auto global = GetGlobalObject(); 307 auto global = GetGlobalObject();
307 global.SetProperty(name, value); 308 global.SetProperty(name, value);
308 } 309 }
LEFTRIGHT

Powered by Google App Engine
This is Rietveld