All except `GetAsDictionary()`. Please use new shiny methods instead.
https://chromium.googlesource.com/chromium/src/+/master/base/values.h
atom/browser/net/js_asker.cc
#include "atom/browser/net/js_asker.h"
#include <vector>
#include "atom/common/native_mate_converters/callback.h"
#include "atom/common/native_mate_converters/v8_value_converter.h"
namespace atom {
namespace internal {
namespace {
void HandlerCallback(const BeforeStartCallback& before_start,
                     const ResponseCallback& callback,
                     mate::Arguments* args) {
  
  v8::Local<v8::Value> value;
  if (!args->GetNext(&value)) {
    content::BrowserThread::PostTask(content::BrowserThread::IO, FROM_HERE,
                                     base::BindOnce(callback, false, nullptr));
    return;
  }
  
  before_start.Run(args->isolate(), value);
  
  V8ValueConverter converter;
  v8::Local<v8::Context> context = args->isolate()->GetCurrentContext();
  std::unique_ptr<base::Value> options(converter.FromV8Value(value, context));
  content::BrowserThread::PostTask(
      content::BrowserThread::IO, FROM_HERE,
      base::BindOnce(callback, true, std::move(options)));
}
}  
void AskForOptions(v8::Isolate* isolate,