| 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);
|
|
|