Bug 1344527 - Give up in ReadScriptAsync if we can't create a promise. r=bholley draft
authorAndrew McCreight <continuation@gmail.com>
Thu, 09 Mar 2017 09:24:28 -0800
changeset 496058 9d918ca85bae0d5653e730c174eaa3bdd8f9caac
parent 494684 3d341b9ba5353b6b8ab45b6ca03dcb1b2d789faa
child 496861 69246194c816b784b52536ad4914e574ea362c5c
child 496888 bbf1ba5db00b2b32af4b884b681c50619f1b58ab
push id48516
push userbmo:continuation@gmail.com
push dateThu, 09 Mar 2017 19:17:12 +0000
reviewersbholley
bugs1344527
milestone55.0a1
Bug 1344527 - Give up in ReadScriptAsync if we can't create a promise. r=bholley MozReview-Commit-ID: Hq4vJZmfDpc
js/xpconnect/loader/mozJSSubScriptLoader.cpp
--- a/js/xpconnect/loader/mozJSSubScriptLoader.cpp
+++ b/js/xpconnect/loader/mozJSSubScriptLoader.cpp
@@ -405,22 +405,22 @@ mozJSSubScriptLoader::ReadScriptAsync(ns
 {
     RootedObject target_obj(RootingCx(), targetObjArg);
 
     nsCOMPtr<nsIGlobalObject> globalObject = xpc::NativeGlobal(target_obj);
     ErrorResult result;
 
     AutoJSAPI jsapi;
     if (NS_WARN_IF(!jsapi.Init(globalObject))) {
-      return NS_ERROR_UNEXPECTED;
+        return NS_ERROR_UNEXPECTED;
     }
 
     RefPtr<Promise> promise = Promise::Create(globalObject, result);
     if (result.Failed()) {
-      promise = nullptr;
+        return result.StealNSResult();
     }
 
     DebugOnly<bool> asJS = ToJSValue(jsapi.cx(), promise, retval);
     MOZ_ASSERT(asJS, "Should not fail to convert the promise to a JS value");
 
     // We create a channel and call SetContentType, to avoid expensive MIME type
     // lookups (bug 632490).
     nsCOMPtr<nsIChannel> channel;