| Index: gin/dictionary.h
|
| diff --git a/gin/dictionary.h b/gin/dictionary.h
|
| index efebfa85a702666d6efe8fe4285caafc858e49f1..64736b1d1625719aa6ee9fac1567312122e2210a 100644
|
| --- a/gin/dictionary.h
|
| +++ b/gin/dictionary.h
|
| @@ -32,13 +32,23 @@ class GIN_EXPORT Dictionary {
|
|
|
| template<typename T>
|
| bool Get(const std::string& key, T* out) {
|
| - v8::Local<v8::Value> val = object_->Get(StringToV8(isolate_, key));
|
| + v8::Local<v8::Value> val;
|
| + if (!object_->Get(isolate_->GetCurrentContext(), StringToV8(isolate_, key))
|
| + .ToLocal(&val)) {
|
| + return false;
|
| + }
|
| return ConvertFromV8(isolate_, val, out);
|
| }
|
|
|
| template<typename T>
|
| bool Set(const std::string& key, T val) {
|
| - return object_->Set(StringToV8(isolate_, key), ConvertToV8(isolate_, val));
|
| + v8::Local<v8::Value> v8_value;
|
| + if (!TryConvertToV8(isolate_, val, &v8_value))
|
| + return false;
|
| + v8::Maybe<bool> result =
|
| + object_->Set(isolate_->GetCurrentContext(), StringToV8(isolate_, key),
|
| + v8_value);
|
| + return !result.IsNothing() && result.FromJust();
|
| }
|
|
|
| v8::Isolate* isolate() const { return isolate_; }
|
|
|