All except `GetAsDictionary()`. Please use new shiny methods instead.
https://chromium.googlesource.com/chromium/src/+/master/base/values.h
atom/common/native_mate_converters/v8_value_converter.cc
v8::Isolate* isolate,
    const base::DictionaryValue* val) const {
  mate::Dictionary result = mate::Dictionary::CreateEmpty(isolate);
  result.SetHidden("simple", true);
  for (base::DictionaryValue::Iterator iter(*val); !iter.IsAtEnd();
       iter.Advance()) {
    const std::string& key = iter.key();
    v8::Local<v8::Value> child_v8 = ToV8ValueImpl(isolate, &iter.value());
    v8::TryCatch try_catch(isolate);
    result.Set(key, child_v8);
    if (try_catch.HasCaught()) {
      LOG(ERROR) << "Setter for property " << key.c_str() << " threw an "
                 << "exception.";
    }
  }
  return result.GetHandle();
}
v8::Local<v8::Value> V8ValueConverter::ToArrayBuffer(
    v8::Isolate* isolate,
    const base::Value* value) const {
  const char* data = value->GetBlob().data();
  size_t length = value->GetBlob().size();
  if (NodeBindings::IsInitialized()) {
    return node::Buffer::Copy(isolate, data, length).ToLocalChecked();
  }
  if (length > node::Buffer::kMaxLength) {
    return v8::Local<v8::Object>();
  }