Index: test/mjsunit/es6/debug-promises/rethrow-in-try-finally.js |
diff --git a/test/mjsunit/es6/debug-promises/throw-caught-uncaught.js b/test/mjsunit/es6/debug-promises/rethrow-in-try-finally.js |
similarity index 54% |
copy from test/mjsunit/es6/debug-promises/throw-caught-uncaught.js |
copy to test/mjsunit/es6/debug-promises/rethrow-in-try-finally.js |
index 0ad9ce48a22c78fc431f693c22e2629c60759cef..b1e2ff98e1a0b58eed9c11be9e05015d31ab451d 100644 |
--- a/test/mjsunit/es6/debug-promises/throw-caught-uncaught.js |
+++ b/test/mjsunit/es6/debug-promises/rethrow-in-try-finally.js |
@@ -4,33 +4,27 @@ |
// Flags: --expose-debug-as debug --allow-natives-syntax |
-// Test debug events when we only listen to uncaught exceptions and |
+// Test debug events when we listen to all exceptions and |
// there is a catch handler for the exception thrown in a Promise. |
-// We expect no debug event to be triggered. |
+// We expect a normal Exception debug event to be triggered. |
Debug = debug.Debug; |
-var p = new Promise(function(resolve, reject) { |
- resolve(); |
-}); |
+var events = []; |
-var q = p.chain( |
- function() { |
- throw new Error("caught throw"); |
- }); |
+function listener(event, exec_state, event_data, data) { |
+ if (event == Debug.DebugEvent.PromiseEvent) events.push(event_data.status()); |
+} |
-q.catch( |
- function(e) { |
- assertEquals("caught throw", e.message); |
- }); |
+Debug.setListener(listener); |
-function listener(event, exec_state, event_data, data) { |
+var p = new Promise(function(resolve, reject) { |
try { |
- assertTrue(event != Debug.DebugEvent.Exception); |
- } catch (e) { |
- %AbortJS(e + "\n" + e.stack); |
+ throw new Error("reject"); |
+ } finally { |
+ // Implicit rethrow. |
} |
-} |
+ resolve(); |
+}); |
-Debug.setBreakOnUncaughtException(); |
-Debug.setListener(listener); |
+assertEquals([0 /* create */, -1 /* rethrown */], events); |