Index: test/mjsunit/es6/debug-promises/try-throw-reject-in-constructor.js |
diff --git a/test/mjsunit/es6/debug-promises-throw-in-constructor.js b/test/mjsunit/es6/debug-promises/try-throw-reject-in-constructor.js |
similarity index 70% |
rename from test/mjsunit/es6/debug-promises-throw-in-constructor.js |
rename to test/mjsunit/es6/debug-promises/try-throw-reject-in-constructor.js |
index e0ffcf70521b2237aeecf742cb22b17aef521660..feff81da900bad99440799524c370e871ed1ed0b 100644 |
--- a/test/mjsunit/es6/debug-promises-throw-in-constructor.js |
+++ b/test/mjsunit/es6/debug-promises/try-throw-reject-in-constructor.js |
@@ -5,7 +5,8 @@ |
// Flags: --expose-debug-as debug |
// Test debug events when we only listen to uncaught exceptions and |
-// an exception is thrown in the the Promise constructor. |
+// an exception is thrown in the Promise constructor, but caught in an |
+// inner try-catch. The Promise is rejected afterwards. |
// We expect an Exception debug event with a promise to be triggered. |
Debug = debug.Debug; |
@@ -15,8 +16,6 @@ var exception = null; |
function listener(event, exec_state, event_data, data) { |
try { |
- // Ignore exceptions during startup in stress runs. |
- if (step >= 1) return; |
if (event == Debug.DebugEvent.Exception) { |
assertEquals(0, step); |
assertEquals("uncaught", event_data.exception().message); |
@@ -27,10 +26,6 @@ function listener(event, exec_state, event_data, data) { |
step++; |
} |
} catch (e) { |
- // Signal a failure with exit code 1. This is necessary since the |
- // debugger swallows exceptions and we expect the chained function |
- // and this listener to be executed after the main script is finished. |
- print("Unexpected exception: " + e + "\n" + e.stack); |
exception = e; |
} |
} |
@@ -39,7 +34,10 @@ Debug.setBreakOnUncaughtException(); |
Debug.setListener(listener); |
var p = new Promise(function(resolve, reject) { |
- throw new Error("uncaught"); // event |
+ try { // This try-catch must not prevent this uncaught reject event. |
+ throw new Error("caught"); |
+ } catch (e) { } |
+ reject(new Error("uncaught")); // event |
}); |
assertEquals(1, step); |