Here's an example [fiddle](https://github.com/electron/fiddle) that triggers the crash: https://gist.github.com/0cbf622b1b46ea55811f56df9b32df37.

It looks like we're just assuming that this value is a string, and we crash hard if anything other than a string is passed. It would be better for us to throw a JS error in this situation.

```
base::Value::GetString() const (in Electron Framework) (values.cc:319)
atom::URLRequestAsyncAsarJob::StartAsync(std::__1::unique_ptr<base::Value, std::__1::default_delete<base::Value> >, int) (in Electron Framework) (url_request_async_asar_job.cc:88)
base::internal::Invoker<base::internal::BindState<void (atom::URLRequestAsyncAsarJob::*)(std::__1::unique_ptr<base::Value, std::__1::default_delete<base::Value> >, int), base::WeakPtr<atom::URLRequestAsyncAsarJob>, std::__1::unique_ptr<base::Value, std::__1::default_delete<base::Value> >, int>, void ()>::RunOnce(base::internal::BindStateBase*) (in Electron Framework) (bind_internal.h:641)
base::TaskAnnotator::RunTask(char const*, base::PendingTask*) (in Electron Framework) (task_annotator.cc:114)
base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::DoWorkImpl(base::sequence_manager::LazyNow*, bool*) (in Electron Framework) (heap_profiler.h:93)
base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::DoSomeWork() (in Electron Framework) (thread_controller_with_message_pump_impl.cc:214)
base::MessagePumpKqueue::Run(base::MessagePump::Delegate*) (in Electron Framework) (message_pump_kqueue.cc:155)
non-virtual thunk to base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::Run(bool, base::TimeDelta) (in Electron Framework) (thread_controller_with_message_pump_impl.cc:0)
base::RunLoop::RunWithTimeout(base::TimeDelta) (in Electron Framework) (run_loop.cc:167)
content::BrowserProcessSubThread::IOThreadRun(base::RunLoop*) (in Electron Framework) (browser_process_sub_thread.cc:0)
base::Thread::ThreadMain() (in Electron Framework) (thread.cc:315)
base::(anonymous namespace)::ThreadFunc(void*) (in Electron Framework) (platform_thread_posix.cc:83)
```

NB. this is probably only a good first issue if you have some C++ experience :)
shell/browser/net/url_request_async_asar_job.cc
mate::Arguments* args) {
  v8::Local<v8::Value> value;
  int error = net::OK;
  std::unique_ptr<base::Value> request_options = nullptr;
  if (args->GetNext(&value)) {
    V8ValueConverter converter;
    v8::Local<v8::Context> context = args->isolate()->GetCurrentContext();
    request_options = converter.FromV8Value(value, context);
  }
  if (request_options) {
    JsAsker::IsErrorOptions(request_options.get(), &error);
  } else {
    error = net::ERR_NOT_IMPLEMENTED;
  }
  base::PostTaskWithTraits(
      FROM_HERE, {content::BrowserThread::IO},
      base::BindOnce(&URLRequestAsyncAsarJob::StartAsync, job,
                     std::move(request_options), error));
}
}  
URLRequestAsyncAsarJob::URLRequestAsyncAsarJob(