| 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 function timeoutPromise(value, ms) | |
| 8 { | |
| 9 return new Promise(function promiseCallback(resolve, reject) { | |
| 10 function resolvePromise() | |
| 11 { | |
| 12 resolve(value); | |
| 13 } | |
| 14 function rejectPromise() | |
| 15 { | |
| 16 reject(value); | |
| 17 } | |
| 18 if (value instanceof Error) | |
| 19 setTimeout(rejectPromise, ms || 0); | |
| 20 else | |
| 21 setTimeout(resolvePromise, ms || 0); | |
| 22 }); | |
| 23 } | |
| 24 | |
| 25 function settledPromise(value) | |
| 26 { | |
| 27 function resolveCallback(resolve, reject) | |
| 28 { | |
| 29 resolve(value); | |
| 30 } | |
| 31 function rejectCallback(resolve, reject) | |
| 32 { | |
| 33 reject(value); | |
| 34 } | |
| 35 if (value instanceof Error) | |
| 36 return new Promise(rejectCallback); | |
| 37 else | |
| 38 return new Promise(resolveCallback); | |
| 39 } | |
| 40 | |
| 41 function testFunction() | |
| 42 { | |
| 43 setTimeout(testFunctionTimeout, 0); | |
| 44 } | |
| 45 | |
| 46 function testFunctionTimeout() | |
| 47 { | |
| 48 var functions = [doTestPromiseConstructor, doTestSettledPromisesResolved, do
TestSettledPromisesRejected, doTestChainedPromises, doTestChainedPromisesJSON, d
oTestPromiseAll, doTestThrowFromChain, doTestRejectFromChain, doTestPromiseResol
ve, doTestPromiseReject]; | |
| 49 for (var i = 0; i < functions.length; ++i) | |
| 50 functions[i](); | |
| 51 } | |
| 52 | |
| 53 function thenCallback(value) | |
| 54 { | |
| 55 debugger; | |
| 56 } | |
| 57 | |
| 58 function errorCallback(error) | |
| 59 { | |
| 60 debugger; | |
| 61 } | |
| 62 | |
| 63 async function doTestPromiseConstructor() | |
| 64 { | |
| 65 try { | |
| 66 let result = await new Promise(function promiseCallback(resolve, reject)
{ | |
| 67 resolve(1); | |
| 68 debugger; | |
| 69 }); | |
| 70 thenCallback(result); | |
| 71 } catch (e) { | |
| 72 errorCallback(e); | |
| 73 } | |
| 74 } | |
| 75 | |
| 76 async function doTestSettledPromisesResolved() | |
| 77 { | |
| 78 try { | |
| 79 let value = await settledPromise("resolved"); | |
| 80 thenCallback(value); | |
| 81 } catch (e) { | |
| 82 errorCallback(e); | |
| 83 } | |
| 84 } | |
| 85 | |
| 86 async function doTestSettledPromisesRejected() | |
| 87 { | |
| 88 try { | |
| 89 let value = await settledPromise(new Error("rejected")); | |
| 90 thenCallback(value); | |
| 91 } catch (e) { | |
| 92 errorCallback(e); | |
| 93 } | |
| 94 } | |
| 95 | |
| 96 async function doTestChainedPromises() | |
| 97 { | |
| 98 try { | |
| 99 await timeoutPromise(1); | |
| 100 debugger; | |
| 101 await timeoutPromise(2); | |
| 102 debugger; | |
| 103 await 3; | |
| 104 debugger; | |
| 105 await settledPromise(4); | |
| 106 debugger; | |
| 107 thenCallback(await timeoutPromise(5)); | |
| 108 } catch (e) { | |
| 109 errorCallback(e); | |
| 110 } | |
| 111 } | |
| 112 | |
| 113 async function doTestChainedPromisesJSON() | |
| 114 { | |
| 115 try { | |
| 116 let one = await timeoutPromise(1); | |
| 117 let stringify = await JSON.stringify(one); | |
| 118 let parse = await JSON.parse(stringify); | |
| 119 thenCallback(parse); | |
| 120 } catch (e) { | |
| 121 errorCallback(e); | |
| 122 } | |
| 123 } | |
| 124 | |
| 125 async function doTestPromiseAll() | |
| 126 { | |
| 127 try { | |
| 128 let all = await Promise.all([11, 22, 33, 44, 55].map(timeoutPromise)); | |
| 129 thenCallback(all); | |
| 130 } catch (e) { | |
| 131 errorCallback(e); | |
| 132 } | |
| 133 } | |
| 134 | |
| 135 async function throwFromChain() | |
| 136 { | |
| 137 await timeoutPromise(1); | |
| 138 await timeoutPromise(2); | |
| 139 await settledPromise(3); | |
| 140 throw Error("thrown from 4"); | |
| 141 await timeoutPromise(5); | |
| 142 debugger; | |
| 143 } | |
| 144 | |
| 145 async function doTestThrowFromChain() | |
| 146 { | |
| 147 try { | |
| 148 let result = await throwFromChain(); | |
| 149 thencallback(result); | |
| 150 } catch (e) { | |
| 151 errorCallback(e); | |
| 152 } | |
| 153 } | |
| 154 | |
| 155 async function rejectFromChain() | |
| 156 { | |
| 157 await timeoutPromise(1); | |
| 158 await timeoutPromise(2); | |
| 159 await timeoutPromise(3); | |
| 160 await timeoutPromise(new Error(4)); | |
| 161 throw new Error("thrown from rejectFromChain"); | |
| 162 debugger; | |
| 163 } | |
| 164 | |
| 165 async function doTestRejectFromChain() | |
| 166 { | |
| 167 try { | |
| 168 let result = await rejectFromChain(); | |
| 169 thenCallback(result); | |
| 170 } catch (e) { | |
| 171 errorCallback(e); | |
| 172 } | |
| 173 } | |
| 174 | |
| 175 async function doTestPromiseResolve() | |
| 176 { | |
| 177 try { | |
| 178 let result = await Promise.resolve(1); | |
| 179 thenCallback(result); | |
| 180 } catch (e) { | |
| 181 errorCallback(e); | |
| 182 } | |
| 183 } | |
| 184 | |
| 185 async function doTestPromiseReject() | |
| 186 { | |
| 187 try { | |
| 188 let result = await Promise.reject(new Error("2")) | |
| 189 thenCallback(result); | |
| 190 } catch (e) { | |
| 191 errorCallback(e); | |
| 192 } | |
| 193 } | |
| 194 | |
| 195 var test = function() | |
| 196 { | |
| 197 var totalDebuggerStatements = 15; | |
| 198 var maxAsyncCallStackDepth = 5; | |
| 199 InspectorTest.runAsyncCallStacksTest(totalDebuggerStatements, maxAsyncCallSt
ackDepth); | |
| 200 } | |
| 201 | |
| 202 </script> | |
| 203 </head> | |
| 204 | |
| 205 <body onload="runTest()"> | |
| 206 <p> | |
| 207 Tests asynchronous call stacks for async functions. | |
| 208 </p> | |
| 209 | |
| 210 </body> | |
| 211 </html> | |
| OLD | NEW |