Index: test/mjsunit/es6/debug-promises/resolve-after-aborted-try-finally.js |
diff --git a/test/mjsunit/es6/debug-promises/throw-caught-uncaught.js b/test/mjsunit/es6/debug-promises/resolve-after-aborted-try-finally.js |
similarity index 53% |
copy from test/mjsunit/es6/debug-promises/throw-caught-uncaught.js |
copy to test/mjsunit/es6/debug-promises/resolve-after-aborted-try-finally.js |
index 0ad9ce48a22c78fc431f693c22e2629c60759cef..918ae2a2e8769d83a57736ad5a10b9c19c3f30b0 100644 |
--- a/test/mjsunit/es6/debug-promises/throw-caught-uncaught.js |
+++ b/test/mjsunit/es6/debug-promises/resolve-after-aborted-try-finally.js |
@@ -4,33 +4,29 @@ |
// 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 q = p.chain( |
- function() { |
- throw new Error("caught throw"); |
- }); |
- |
-q.catch( |
- function(e) { |
- assertEquals("caught throw", e.message); |
- }); |
+var events = []; |
function listener(event, exec_state, event_data, data) { |
- try { |
- assertTrue(event != Debug.DebugEvent.Exception); |
- } catch (e) { |
- %AbortJS(e + "\n" + e.stack); |
- } |
+ if (event == Debug.DebugEvent.PromiseEvent) events.push(event_data.status()); |
} |
-Debug.setBreakOnUncaughtException(); |
Debug.setListener(listener); |
+ |
+var p = new Promise(function(resolve, reject) { |
+ do { |
+ try { |
+ throw new Error("reject"); |
+ } finally { |
+ break; // No rethrow. |
+ } |
+ } while (false); |
+ resolve(); |
+}); |
+ |
+assertEquals([0 /* create */, 1 /* resolve */], events); |