Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(5)

Side by Side Diff: test/mjsunit/es6/debug-promises/reject-uncaught-uncaught.js

Issue 2244003003: Change which ExceptionEvents are triggered by Promises (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Fixed typos Created 4 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2014 the V8 project authors. All rights reserved. 1 // Copyright 2014 the V8 project authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 // Flags: --expose-debug-as debug --allow-natives-syntax 5 // Flags: --expose-debug-as debug --allow-natives-syntax
6 6
7 // Test debug events when we only listen to uncaught exceptions and 7 // Test debug events when we only listen to uncaught exceptions and
8 // there is no catch handler for the to-be-rejected Promise. 8 // there is no catch handler for the to-be-rejected Promise.
9 // We expect an Exception debug event with a promise to be triggered. 9 // We expect an Exception debug event with a promise to be triggered.
10 10
(...skipping 15 matching lines...) Expand all
26 26
27 function listener(event, exec_state, event_data, data) { 27 function listener(event, exec_state, event_data, data) {
28 try { 28 try {
29 if (event == Debug.DebugEvent.Exception) { 29 if (event == Debug.DebugEvent.Exception) {
30 expected_events--; 30 expected_events--;
31 assertTrue(expected_events >= 0); 31 assertTrue(expected_events >= 0);
32 assertEquals("uncaught reject", event_data.exception().message); 32 assertEquals("uncaught reject", event_data.exception().message);
33 assertTrue(event_data.promise() instanceof Promise); 33 assertTrue(event_data.promise() instanceof Promise);
34 assertSame(q, event_data.promise()); 34 assertSame(q, event_data.promise());
35 assertTrue(event_data.uncaught()); 35 assertTrue(event_data.uncaught());
36 // All of the frames on the stack are from native Javascript. 36 // The JavaScript frame is from the Promise rejection
37 assertEquals(0, exec_state.frameCount()); 37 assertTrue(/Promise\.reject/.test(event_data.sourceLineText()));
38 } 38 }
39 } catch (e) { 39 } catch (e) {
40 %AbortJS(e + "\n" + e.stack); 40 %AbortJS(e + "\n" + e.stack);
41 } 41 }
42 } 42 }
43 43
44 Debug.setBreakOnUncaughtException(); 44 Debug.setBreakOnUncaughtException();
45 Debug.setListener(listener); 45 Debug.setListener(listener);
46 46
47 log.push("end main"); 47 log.push("end main");
48 48
49 function testDone(iteration) { 49 function testDone(iteration) {
50 function checkResult() { 50 function checkResult() {
51 try { 51 try {
52 assertTrue(iteration < 10); 52 assertTrue(iteration < 10);
53 if (expected_events === 0) { 53 if (expected_events === 0) {
54 assertEquals(["resolve", "end main", "reject"], log); 54 assertEquals(["resolve", "end main", "reject"], log);
55 } else { 55 } else {
56 testDone(iteration + 1); 56 testDone(iteration + 1);
57 } 57 }
58 } catch (e) { 58 } catch (e) {
59 %AbortJS(e + "\n" + e.stack); 59 %AbortJS(e + "\n" + e.stack);
60 } 60 }
61 } 61 }
62 62
63 %EnqueueMicrotask(checkResult); 63 %EnqueueMicrotask(checkResult);
64 } 64 }
65 65
66 testDone(0); 66 testDone(0);
OLDNEW
« no previous file with comments | « test/mjsunit/es6/debug-promises/reject-uncaught-all.js ('k') | test/mjsunit/harmony/async-debug-caught-exception.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698