| Left: | ||
| Right: |
| LEFT | RIGHT |
|---|---|
| 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 120 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 131 { | 131 { |
| 132 const JsContext context(*jsEngine); | 132 const JsContext context(*jsEngine); |
| 133 return Utils::StringBufferFromV8String(jsEngine->GetIsolate(), UnwrapValue()); | 133 return Utils::StringBufferFromV8String(jsEngine->GetIsolate(), UnwrapValue()); |
| 134 } | 134 } |
| 135 | 135 |
| 136 int64_t AdblockPlus::JsValue::AsInt() const | 136 int64_t AdblockPlus::JsValue::AsInt() const |
| 137 { | 137 { |
| 138 const JsContext context(*jsEngine); | 138 const JsContext context(*jsEngine); |
| 139 auto currentContext = jsEngine->GetIsolate()->GetCurrentContext(); | 139 auto currentContext = jsEngine->GetIsolate()->GetCurrentContext(); |
| 140 auto value = UnwrapValue()->IntegerValue(currentContext); | 140 auto value = UnwrapValue()->IntegerValue(currentContext); |
| 141 return value.IsJust() ? value.FromJust() : 0; | 141 return CHECKED_TO_VALUE(std::move(value)); |
|
sergei
2018/08/07 13:14:52
What about using of CheckedToValue here?
Returning
hub
2018/08/07 14:36:48
I wanted to avoid throwing an exception. But it se
|
sergei
2018/08/07 16:47:35
I find the usage of std::move good here too, for t
|
| 142 } | 142 } |
| 143 | 143 |
| 144 bool AdblockPlus::JsValue::AsBool() const | 144 bool AdblockPlus::JsValue::AsBool() const |
| 145 { | 145 { |
| 146 const JsContext context(*jsEngine); | 146 const JsContext context(*jsEngine); |
| 147 auto currentContext = jsEngine->GetIsolate()->GetCurrentContext(); | 147 auto currentContext = jsEngine->GetIsolate()->GetCurrentContext(); |
| 148 auto value = UnwrapValue()->BooleanValue(currentContext); | 148 auto value = UnwrapValue()->BooleanValue(currentContext); |
| 149 return value.IsJust() ? value.FromJust() : false; | 149 return CHECKED_TO_VALUE(std::move(value)); |
| 150 } | 150 } |
| 151 | 151 |
| 152 AdblockPlus::JsValueList AdblockPlus::JsValue::AsList() const | 152 AdblockPlus::JsValueList AdblockPlus::JsValue::AsList() const |
| 153 { | 153 { |
| 154 if (!IsArray()) | 154 if (!IsArray()) |
| 155 throw std::runtime_error("Cannot convert a non-array to list"); | 155 throw std::runtime_error("Cannot convert a non-array to list"); |
| 156 | 156 |
| 157 const JsContext context(*jsEngine); | 157 const JsContext context(*jsEngine); |
| 158 auto isolate = jsEngine->GetIsolate(); | 158 auto isolate = jsEngine->GetIsolate(); |
| 159 auto currentContext = isolate->GetCurrentContext(); | 159 auto currentContext = isolate->GetCurrentContext(); |
| (...skipping 147 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 307 auto isolate = jsEngine->GetIsolate(); | 307 auto isolate = jsEngine->GetIsolate(); |
| 308 | 308 |
| 309 const v8::TryCatch tryCatch(isolate); | 309 const v8::TryCatch tryCatch(isolate); |
| 310 v8::Local<v8::Function> func = v8::Local<v8::Function>::Cast(UnwrapValue()); | 310 v8::Local<v8::Function> func = v8::Local<v8::Function>::Cast(UnwrapValue()); |
| 311 auto result = CHECKED_TO_LOCAL_WITH_TRY_CATCH( | 311 auto result = CHECKED_TO_LOCAL_WITH_TRY_CATCH( |
| 312 isolate, func->Call(isolate->GetCurrentContext(), | 312 isolate, func->Call(isolate->GetCurrentContext(), |
| 313 thisObj, args.size(), args.size() ? &args[0] : nullptr), tryCatch); | 313 thisObj, args.size(), args.size() ? &args[0] : nullptr), tryCatch); |
| 314 | 314 |
| 315 return JsValue(jsEngine, result); | 315 return JsValue(jsEngine, result); |
| 316 } | 316 } |
| LEFT | RIGHT |