Better error messages for module loader SPI
authorkeith_miller@apple.com <keith_miller@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 8 Feb 2019 00:49:42 +0000 (00:49 +0000)
committerkeith_miller@apple.com <keith_miller@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 8 Feb 2019 00:49:42 +0000 (00:49 +0000)
https://bugs.webkit.org/show_bug.cgi?id=194421

Reviewed by Saam Barati.

* API/JSAPIGlobalObject.mm:
(JSC::JSAPIGlobalObject::moduleLoaderImportModule):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@241172 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Source/JavaScriptCore/API/JSAPIGlobalObject.mm
Source/JavaScriptCore/ChangeLog

index d5c2365..1fe872f 100644 (file)
@@ -116,7 +116,7 @@ JSInternalPromise* JSAPIGlobalObject::moduleLoaderImportModule(JSGlobalObject* g
         return import(absoluteURL);
 
     if (!specifier.startsWith('/') && !specifier.startsWith("./") && !specifier.startsWith("../"))
-        return reject(createError(exec, "Module specifier does not start with \"/\", \"./\", or \"../\"."_s));
+        return reject(createError(exec, makeString("Module specifier: ", specifier, " does not start with \"/\", \"./\", or \"../\"."_s)));
 
     if (specifier.startsWith('/')) {
         absoluteURL = URL(URL({ }, "file://"), specifier);
@@ -126,16 +126,16 @@ JSInternalPromise* JSAPIGlobalObject::moduleLoaderImportModule(JSGlobalObject* g
 
     auto noBaseErrorMessage = "Could not determine the base URL for loading."_s;
     if (sourceOrigin.isNull())
-        return reject(createError(exec, noBaseErrorMessage));
+        return reject(createError(exec, makeString(noBaseErrorMessage, " Referring script has no URL."_s)));
 
     auto referrer = sourceOrigin.string();
     URL baseURL(URL(), referrer);
     if (!baseURL.isValid())
-        return reject(createError(exec, noBaseErrorMessage));
+        return reject(createError(exec, makeString(noBaseErrorMessage, " Referring script's URL is not valid: "_s, baseURL.string())));
 
     URL url(baseURL, specifier);
     if (!url.isValid())
-        return reject(createError(exec, "could not determine a valid URL for module specifier"_s));
+        return reject(createError(exec, makeString("could not determine a valid URL for module specifier. Tried: "_s, url.string())));
 
     return import(url);
 }
index 1a08fea..d855ba4 100644 (file)
@@ -1,3 +1,13 @@
+2019-02-07  Keith Miller  <keith_miller@apple.com>
+
+        Better error messages for module loader SPI
+        https://bugs.webkit.org/show_bug.cgi?id=194421
+
+        Reviewed by Saam Barati.
+
+        * API/JSAPIGlobalObject.mm:
+        (JSC::JSAPIGlobalObject::moduleLoaderImportModule):
+
 2019-02-07  Mark Lam  <mark.lam@apple.com>
 
         Fix more doesGC() for CheckTraps, GetMapBucket, and Switch nodes.