Title: [227649] trunk
Revision
227649
Author
[email protected]
Date
2018-01-25 18:42:14 -0800 (Thu, 25 Jan 2018)

Log Message

imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/module/errorhandling.html crashes
https://bugs.webkit.org/show_bug.cgi?id=181980

Reviewed by Ryosuke Niwa.

LayoutTests/imported/w3c:

* web-platform-tests/html/semantics/scripting-1/the-script-element/module/dynamic-import/dynamic-imports-script-error-expected.txt:
* web-platform-tests/html/semantics/scripting-1/the-script-element/module/errorhandling-expected.txt: Added.

Source/_javascript_Core:

We accidentally failed to propagate errored promise in instantiate and satify phase if entry.{instantiate,satisfy}
promises are set. Since we just returned `entry`, it becomes succeeded promise even if the dependent fetch, instantiate,
and satisfy promises are failed. This patch fixes error propagation by returning `entry.instantiate` and `entry.satisfy`
correctly.

* builtins/ModuleLoaderPrototype.js:
(requestInstantiate):
(requestSatisfy):

LayoutTests:

* TestExpectations:

Modified Paths

Added Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (227648 => 227649)


--- trunk/LayoutTests/ChangeLog	2018-01-26 01:35:14 UTC (rev 227648)
+++ trunk/LayoutTests/ChangeLog	2018-01-26 02:42:14 UTC (rev 227649)
@@ -1,3 +1,12 @@
+2018-01-25  Yusuke Suzuki  <[email protected]>
+
+        imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/module/errorhandling.html crashes
+        https://bugs.webkit.org/show_bug.cgi?id=181980
+
+        Reviewed by Ryosuke Niwa.
+
+        * TestExpectations:
+
 2018-01-25  Jer Noble  <[email protected]>
 
         Move ImageDecoderAVFObjC from using AVSampleBufferGenerator to AVAssetReaderOutput for parsing

Modified: trunk/LayoutTests/TestExpectations (227648 => 227649)


--- trunk/LayoutTests/TestExpectations	2018-01-26 01:35:14 UTC (rev 227648)
+++ trunk/LayoutTests/TestExpectations	2018-01-26 02:42:14 UTC (rev 227649)
@@ -1404,8 +1404,6 @@
 
 webkit.org/b/165764 http/tests/misc/module-script-async.html [ Pass Timeout ]
 
-webkit.org/b/181980 imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/module/errorhandling.html [ Crash ]
-
 # After rebasing WPT, we should investigate deterministic error handling, which is the updated spec.
 imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/module/compilation-error-1.html [ Pass Failure ]
 imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/module/compilation-error-2.html [ Pass Failure ]

Modified: trunk/LayoutTests/imported/w3c/ChangeLog (227648 => 227649)


--- trunk/LayoutTests/imported/w3c/ChangeLog	2018-01-26 01:35:14 UTC (rev 227648)
+++ trunk/LayoutTests/imported/w3c/ChangeLog	2018-01-26 02:42:14 UTC (rev 227649)
@@ -1,3 +1,13 @@
+2018-01-25  Yusuke Suzuki  <[email protected]>
+
+        imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/module/errorhandling.html crashes
+        https://bugs.webkit.org/show_bug.cgi?id=181980
+
+        Reviewed by Ryosuke Niwa.
+
+        * web-platform-tests/html/semantics/scripting-1/the-script-element/module/dynamic-import/dynamic-imports-script-error-expected.txt:
+        * web-platform-tests/html/semantics/scripting-1/the-script-element/module/errorhandling-expected.txt: Added.
+
 2018-01-25  Chris Dumez  <[email protected]>
 
         Access to service workers / Cache API should be disabled in sandboxed frames without allow-same-origin flag

Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/module/dynamic-import/dynamic-imports-script-error-expected.txt (227648 => 227649)


--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/module/dynamic-import/dynamic-imports-script-error-expected.txt	2018-01-26 01:35:14 UTC (rev 227648)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/module/dynamic-import/dynamic-imports-script-error-expected.txt	2018-01-26 02:42:14 UTC (rev 227649)
@@ -1,13 +1,13 @@
 
 PASS import() must reject when there is a parse error 
-FAIL import() must reject with the same error object for each import when there is a parse error assert_throws: It must reject the second time function "function () { throw e }" threw object "TypeError: Type error" ("TypeError") expected object "SyntaxError" ("SyntaxError")
+PASS import() must reject with the same error object for each import when there is a parse error 
 PASS import() must reject when there is a bad module specifier 
 PASS import() must reject with different error objects for each import when there is a bad module specifier 
 PASS import() must reject when there is a bad module specifier in a dependency 
-FAIL import() must reject with the same error object for each import when there is a bad module specifier in a dependency assert_equals: The error objects must be equal expected object "TypeError: Type error" but got object "TypeError: Module specifier does not start with "/", "./", or "../"."
+PASS import() must reject with the same error object for each import when there is a bad module specifier in a dependency 
 PASS import() must reject when there is a instantiation error 
 PASS import() must reject with the same error object for each import when there is a instantiation error 
 PASS import() must reject when there is a evaluation error 
-FAIL import() must reject with the same error object for each import when there is a evaluation error assert_unreached: Should have rejected: It must reject the first time Reached unreachable code
+FAIL import() must reject with the same error object for each import when there is a evaluation error assert_unreached: Should have rejected: It must reject the second time Reached unreachable code
 PASS import()ing a module with an evaluation error must stop evaluation 
 

Added: trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/module/errorhandling-expected.txt (0 => 227649)


--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/module/errorhandling-expected.txt	                        (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/module/errorhandling-expected.txt	2018-01-26 02:42:14 UTC (rev 227649)
@@ -0,0 +1,15 @@
+CONSOLE MESSAGE: TypeError: 'text/plain' is not a valid _javascript_ MIME type.
+CONSOLE MESSAGE: TypeError: 'text/plain' is not a valid _javascript_ MIME type.
+CONSOLE MESSAGE: line 1: SyntaxError: No identifiers allowed directly after numeric literal
+CONSOLE MESSAGE: line 1: SyntaxError: No identifiers allowed directly after numeric literal
+CONSOLE MESSAGE: line 1: SyntaxError: No identifiers allowed directly after numeric literal
+CONSOLE MESSAGE: line 1: SyntaxError: No identifiers allowed directly after numeric literal
+html-script-module-errorHandling
+
+
+FAIL IFrame test: 'iframe_parseError_Root' assert_equals: Unexpected _errorReported value expected "error" but got ""
+PASS IFrame test: 'iframe_parseError_Dependent' 
+PASS IFrame test: 'iframe_parseError_DependentMultiple' 
+PASS External root module with non-script mimetype 
+PASS Module with imported non-script mimetype 
+

Modified: trunk/Source/_javascript_Core/ChangeLog (227648 => 227649)


--- trunk/Source/_javascript_Core/ChangeLog	2018-01-26 01:35:14 UTC (rev 227648)
+++ trunk/Source/_javascript_Core/ChangeLog	2018-01-26 02:42:14 UTC (rev 227649)
@@ -1,3 +1,19 @@
+2018-01-25  Yusuke Suzuki  <[email protected]>
+
+        imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/module/errorhandling.html crashes
+        https://bugs.webkit.org/show_bug.cgi?id=181980
+
+        Reviewed by Ryosuke Niwa.
+
+        We accidentally failed to propagate errored promise in instantiate and satify phase if entry.{instantiate,satisfy}
+        promises are set. Since we just returned `entry`, it becomes succeeded promise even if the dependent fetch, instantiate,
+        and satisfy promises are failed. This patch fixes error propagation by returning `entry.instantiate` and `entry.satisfy`
+        correctly.
+
+        * builtins/ModuleLoaderPrototype.js:
+        (requestInstantiate):
+        (requestSatisfy):
+
 2018-01-25  Mark Lam  <[email protected]>
 
         Gardening: fix 32-bit build after r227643.

Modified: trunk/Source/_javascript_Core/builtins/ModuleLoaderPrototype.js (227648 => 227649)


--- trunk/Source/_javascript_Core/builtins/ModuleLoaderPrototype.js	2018-01-26 01:35:14 UTC (rev 227648)
+++ trunk/Source/_javascript_Core/builtins/ModuleLoaderPrototype.js	2018-01-26 02:42:14 UTC (rev 227649)
@@ -193,7 +193,7 @@
         // Now fetching request succeeds. Then even if instantiation fails, we should cache it.
         // Instantiation won't be retried.
         if (entry.instantiate)
-            return entry;
+            return entry.instantiate;
         entry.instantiate = instantiatePromise;
 
         var key = entry.key;
@@ -229,7 +229,7 @@
     visited.@add(entry);
     var satisfyPromise = this.requestInstantiate(entry, parameters, fetcher).then((entry) => {
         if (entry.satisfy)
-            return entry;
+            return entry.satisfy;
 
         var depLoads = @newArrayWithSize(entry.dependencies.length);
         for (var i = 0, length = entry.dependencies.length; i < length; ++i) {
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to