diff options
Diffstat (limited to 'chromium/third_party/blink/renderer/core/fetch/readable_stream_bytes_consumer.cc')
-rw-r--r-- | chromium/third_party/blink/renderer/core/fetch/readable_stream_bytes_consumer.cc | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/chromium/third_party/blink/renderer/core/fetch/readable_stream_bytes_consumer.cc b/chromium/third_party/blink/renderer/core/fetch/readable_stream_bytes_consumer.cc index abf67b31626..6b755eb52f9 100644 --- a/chromium/third_party/blink/renderer/core/fetch/readable_stream_bytes_consumer.cc +++ b/chromium/third_party/blink/renderer/core/fetch/readable_stream_bytes_consumer.cc @@ -33,10 +33,17 @@ class ReadableStreamBytesConsumer::OnFulfilled final : public ScriptFunction { ScriptValue Call(ScriptValue v) override { bool done; v8::Local<v8::Value> item = v.V8Value(); - DCHECK(item->IsObject()); - v8::Local<v8::Value> value = - V8UnpackIteratorResult(v.GetScriptState(), item.As<v8::Object>(), &done) - .ToLocalChecked(); + if (!item->IsObject()) { + consumer_->OnRejected(); + return ScriptValue(); + } + v8::Local<v8::Value> value; + if (!V8UnpackIteratorResult(v.GetScriptState(), item.As<v8::Object>(), + &done) + .ToLocal(&value)) { + consumer_->OnRejected(); + return ScriptValue(); + } if (done) { consumer_->OnReadDone(); return v; |