> // DEPRECATED, use Value::Clone() instead.

atom/browser/api/atom_api_debugger.cc
const std::string& message) {
  DCHECK(agent_host == agent_host_.get());
  v8::Locker locker(isolate());
  v8::HandleScope handle_scope(isolate());
  std::unique_ptr<base::Value> parsed_message = base::JSONReader::Read(message);
  if (!parsed_message || !parsed_message->is_dict())
    return;
  base::DictionaryValue* dict =
      static_cast<base::DictionaryValue*>(parsed_message.get());
  int id;
  if (!dict->GetInteger("id", &id)) {
    std::string method;
    if (!dict->GetString("method", &method))
      return;
    base::DictionaryValue* params_value = nullptr;
    base::DictionaryValue params;
    if (dict->GetDictionary("params", &params_value))
      params.Swap(params_value);
    Emit("message", method, params);
  } else {
    auto send_command_callback = pending_requests_[id];
    pending_requests_.erase(id);
    if (send_command_callback.is_null())
      return;
    base::DictionaryValue* error_body = nullptr;
    base::DictionaryValue error;
    if (dict->GetDictionary("error", &error_body))
      error.Swap(error_body);