| Index: third_party/WebKit/Source/bindings/core/v8/custom/V8XMLHttpRequestCustom.cpp
|
| diff --git a/third_party/WebKit/Source/bindings/core/v8/custom/V8XMLHttpRequestCustom.cpp b/third_party/WebKit/Source/bindings/core/v8/custom/V8XMLHttpRequestCustom.cpp
|
| index 4e8dee3d101cbfcf60d257dac9f09673c53cba65..f35c837682790188ba404c293790abd8de8b3b10 100644
|
| --- a/third_party/WebKit/Source/bindings/core/v8/custom/V8XMLHttpRequestCustom.cpp
|
| +++ b/third_party/WebKit/Source/bindings/core/v8/custom/V8XMLHttpRequestCustom.cpp
|
| @@ -66,6 +66,9 @@ void V8XMLHttpRequest::responseTextAttributeGetterCustom(
|
| void V8XMLHttpRequest::responseAttributeGetterCustom(
|
| const v8::FunctionCallbackInfo<v8::Value>& info) {
|
| XMLHttpRequest* xmlHttpRequest = V8XMLHttpRequest::toImpl(info.Holder());
|
| + ExceptionState exceptionState(ExceptionState::GetterContext, "response",
|
| + "XMLHttpRequest", info.Holder(),
|
| + info.GetIsolate());
|
|
|
| switch (xmlHttpRequest->getResponseTypeCode()) {
|
| case XMLHttpRequest::ResponseTypeDefault:
|
| @@ -84,20 +87,18 @@ void V8XMLHttpRequest::responseAttributeGetterCustom(
|
|
|
| // Catch syntax error. Swallows an exception (when thrown) as the
|
| // spec says. https://xhr.spec.whatwg.org/#response-body
|
| - v8::TryCatch exceptionCatcher(isolate);
|
| - v8::Local<v8::Value> json;
|
| - if (v8Call(v8::JSON::Parse(isolate, jsonSource.v8Value()), json,
|
| - exceptionCatcher))
|
| - v8SetReturnValue(info, json);
|
| - else
|
| + v8::Local<v8::Value> json = fromJSONString(
|
| + isolate, toCoreString(jsonSource.v8Value()), exceptionState);
|
| + if (exceptionState.hadException()) {
|
| + exceptionState.clearException();
|
| v8SetReturnValue(info, v8::Null(isolate));
|
| + } else {
|
| + v8SetReturnValue(info, json);
|
| + }
|
| return;
|
| }
|
|
|
| case XMLHttpRequest::ResponseTypeDocument: {
|
| - ExceptionState exceptionState(ExceptionState::GetterContext, "response",
|
| - "XMLHttpRequest", info.Holder(),
|
| - info.GetIsolate());
|
| Document* document = xmlHttpRequest->responseXML(exceptionState);
|
| v8SetReturnValueFast(info, document, xmlHttpRequest);
|
| return;
|
|
|