| OLD | NEW |
| (Empty) |
| 1 <html> | |
| 2 <head> | |
| 3 <script src="../../../http/tests/inspector/inspector-test.js"></script> | |
| 4 <script src="../../../http/tests/inspector/debugger-test.js"></script> | |
| 5 <script> | |
| 6 | |
| 7 var promise; | |
| 8 function testFunction() | |
| 9 { | |
| 10 promise = new Promise(function promiseConstructor(resolve, reject) { | |
| 11 resolve("Resolved!"); | |
| 12 }); | |
| 13 promise | |
| 14 .then(thenCallback, errorCallback) | |
| 15 .then(thenCallback2, errorCallback); | |
| 16 } | |
| 17 | |
| 18 function thenCallback() { } | |
| 19 | |
| 20 function thenCallback2() | |
| 21 { | |
| 22 debugger; | |
| 23 } | |
| 24 | |
| 25 function errorCallback() { } | |
| 26 | |
| 27 var test = function () | |
| 28 { | |
| 29 InspectorTest.startDebuggerTest(step1); | |
| 30 | |
| 31 var minPromiseId; | |
| 32 WebInspector.targetManager.addModelListener(WebInspector.DebuggerModel, WebI
nspector.DebuggerModel.Events.PromiseUpdated, onPromiseUpdated, this); | |
| 33 function onPromiseUpdated(event) | |
| 34 { | |
| 35 var target = /** @type {!WebInspector.Target} */ (event.target.target())
; | |
| 36 var eventType = /** @type {string} */ (event.data.eventType); | |
| 37 var promise = /** @type {!DebuggerAgent.PromiseDetails} */ (event.data.p
romise); | |
| 38 | |
| 39 if (typeof minPromiseId === "undefined") | |
| 40 minPromiseId = promise.id; | |
| 41 | |
| 42 var parentId = promise.parentId ? promise.parentId - minPromiseId : unde
fined; | |
| 43 var promiseInfo = []; | |
| 44 promiseInfo.push("Promise (" + eventType + "):"); | |
| 45 if (eventType !== "gc") { | |
| 46 promiseInfo.push("id: " + (promise.id - minPromiseId)); | |
| 47 promiseInfo.push("status: " + promise.status); | |
| 48 if (parentId) | |
| 49 promiseInfo.push("parent id: " + parentId); | |
| 50 var callFrame = promise.creationStack ? promise.creationStack.callFr
ames[0] : null; | |
| 51 if (callFrame) { | |
| 52 var url = WebInspector.displayNameForURL(callFrame.url); | |
| 53 promiseInfo.push(callFrame.functionName + " " + url + ":" + call
Frame.lineNumber); | |
| 54 } | |
| 55 if (promise.creationTime) | |
| 56 promiseInfo.push("creationTime: " + (promise.creationTime > 0)); | |
| 57 if (promise.settlementTime) | |
| 58 promiseInfo.push("settlementTime: " + (promise.settlementTime >
0)); | |
| 59 } | |
| 60 InspectorTest.addResult(promiseInfo.join("\n ")); | |
| 61 } | |
| 62 | |
| 63 function step1() | |
| 64 { | |
| 65 InspectorTest.DebuggerAgent.enablePromiseTracker(); | |
| 66 InspectorTest.runTestFunctionAndWaitUntilPaused(step2); | |
| 67 } | |
| 68 | |
| 69 function step2() | |
| 70 { | |
| 71 InspectorTest.DebuggerAgent.getPromiseById(minPromiseId, "console", didG
etPromiseById); | |
| 72 } | |
| 73 | |
| 74 function didGetPromiseById(error, response) | |
| 75 { | |
| 76 if (error) { | |
| 77 InspectorTest.addResult("Failed to get promise by id: " + error); | |
| 78 InspectorTest.DebuggerAgent.disablePromiseTracker(); | |
| 79 InspectorTest.completeDebuggerTest(); | |
| 80 return; | |
| 81 } | |
| 82 InspectorTest.addResult("Got promise by id: " + !error); | |
| 83 InspectorTest.addResult("Resolved object class: " + response.className); | |
| 84 InspectorTest.RuntimeAgent.getProperties(response.objectId, didGetProper
ties); | |
| 85 } | |
| 86 | |
| 87 function didGetProperties(error, properties, internalProperties) | |
| 88 { | |
| 89 InspectorTest.assertTrue("Received internal properties of the first prom
ise: " + (internalProperties && internalProperties.length > 0)); | |
| 90 | |
| 91 var status, value; | |
| 92 for (var i = 0; i < internalProperties.length; i++) { | |
| 93 var property = internalProperties[i]; | |
| 94 if (property.name === "[[PromiseStatus]]") | |
| 95 status = property.value.value; | |
| 96 if (property.name === "[[PromiseValue]]") | |
| 97 value = property.value.value; | |
| 98 } | |
| 99 | |
| 100 InspectorTest.addResult("Promise:\n status: " + status + "\n value
: " + value); | |
| 101 | |
| 102 InspectorTest.DebuggerAgent.disablePromiseTracker(); | |
| 103 InspectorTest.completeDebuggerTest(); | |
| 104 } | |
| 105 } | |
| 106 | |
| 107 </script> | |
| 108 </head> | |
| 109 | |
| 110 <body onload="runTest()"> | |
| 111 <p> | |
| 112 Tests promise tracker in debugger. | |
| 113 </p> | |
| 114 </body> | |
| 115 </html> | |
| OLD | NEW |