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

Side by Side Diff: test/mjsunit/harmony/promises.js

Issue 110503004: ES6 Promise: Rename method names to match spec. (Closed) Base URL: http://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Created 7 years 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 | Annotate | Revision Log
« no previous file with comments | « src/promise.js ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2013 the V8 project authors. All rights reserved. 1 // Copyright 2013 the V8 project authors. All rights reserved.
2 // Redistribution and use in source and binary forms, with or without 2 // Redistribution and use in source and binary forms, with or without
3 // modification, are permitted provided that the following conditions are 3 // modification, are permitted provided that the following conditions are
4 // met: 4 // met:
5 // 5 //
6 // * Redistributions of source code must retain the above copyright 6 // * Redistributions of source code must retain the above copyright
7 // notice, this list of conditions and the following disclaimer. 7 // notice, this list of conditions and the following disclaimer.
8 // * Redistributions in binary form must reproduce the above 8 // * Redistributions in binary form must reproduce the above
9 // copyright notice, this list of conditions and the following 9 // copyright notice, this list of conditions and the following
10 // disclaimer in the documentation and/or other materials provided 10 // disclaimer in the documentation and/or other materials provided
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
59 59
60 (function() { 60 (function() {
61 assertThrows(function() { new Promise(5) }, TypeError) 61 assertThrows(function() { new Promise(5) }, TypeError)
62 })(); 62 })();
63 63
64 (function() { 64 (function() {
65 assertThrows(function() { new Promise(function() { throw 5 }) }, 5) 65 assertThrows(function() { new Promise(function() { throw 5 }) }, 5)
66 })(); 66 })();
67 67
68 (function() { 68 (function() {
69 Promise.resolved(5); 69 Promise.resolve(5);
70 Promise.resolved(5).chain(undefined, assertUnreachable).chain( 70 Promise.resolve(5).chain(undefined, assertUnreachable).chain(
71 function(x) { assertAsync(x === 5, "resolved/chain-nohandler") }, 71 function(x) { assertAsync(x === 5, "resolve/chain-nohandler") },
72 assertUnreachable 72 assertUnreachable
73 ) 73 )
74 assertAsyncRan() 74 assertAsyncRan()
75 })(); 75 })();
76 76
77 (function() { 77 (function() {
78 Promise.rejected(5).chain(assertUnreachable, undefined).chain( 78 Promise.reject(5).chain(assertUnreachable, undefined).chain(
79 assertUnreachable, 79 assertUnreachable,
80 function(r) { assertAsync(r === 5, "rejected/chain-nohandler") } 80 function(r) { assertAsync(r === 5, "reject/chain-nohandler") }
81 ) 81 )
82 assertAsyncRan() 82 assertAsyncRan()
83 })(); 83 })();
84 84
85 (function() { 85 (function() {
86 Promise.resolved(5).then(undefined, assertUnreachable).chain( 86 Promise.resolve(5).then(undefined, assertUnreachable).chain(
87 function(x) { assertAsync(x === 5, "resolved/then-nohandler") }, 87 function(x) { assertAsync(x === 5, "resolve/then-nohandler") },
88 assertUnreachable 88 assertUnreachable
89 ) 89 )
90 assertAsyncRan() 90 assertAsyncRan()
91 })(); 91 })();
92 92
93 (function() { 93 (function() {
94 Promise.rejected(5).then(assertUnreachable, undefined).chain( 94 Promise.reject(5).then(assertUnreachable, undefined).chain(
95 assertUnreachable, 95 assertUnreachable,
96 function(r) { assertAsync(r === 5, "rejected/then-nohandler") } 96 function(r) { assertAsync(r === 5, "reject/then-nohandler") }
97 ) 97 )
98 assertAsyncRan() 98 assertAsyncRan()
99 })(); 99 })();
100 100
101 (function() { 101 (function() {
102 var p1 = Promise.resolved(5) 102 var p1 = Promise.resolve(5)
103 var p2 = Promise.resolved(p1) 103 var p2 = Promise.resolve(p1)
104 var p3 = Promise.resolved(p2) 104 var p3 = Promise.resolve(p2)
105 p3.chain( 105 p3.chain(
106 function(x) { assertAsync(x === p2, "resolved/chain") }, 106 function(x) { assertAsync(x === p2, "resolve/chain") },
107 assertUnreachable 107 assertUnreachable
108 ) 108 )
109 assertAsyncRan() 109 assertAsyncRan()
110 })(); 110 })();
111 111
112 (function() { 112 (function() {
113 var p1 = Promise.resolved(5) 113 var p1 = Promise.resolve(5)
114 var p2 = Promise.resolved(p1) 114 var p2 = Promise.resolve(p1)
115 var p3 = Promise.resolved(p2) 115 var p3 = Promise.resolve(p2)
116 p3.then( 116 p3.then(
117 function(x) { assertAsync(x === 5, "resolved/then") }, 117 function(x) { assertAsync(x === 5, "resolve/then") },
118 assertUnreachable 118 assertUnreachable
119 ) 119 )
120 assertAsyncRan() 120 assertAsyncRan()
121 })(); 121 })();
122 122
123 (function() { 123 (function() {
124 var p1 = Promise.rejected(5) 124 var p1 = Promise.reject(5)
125 var p2 = Promise.resolved(p1) 125 var p2 = Promise.resolve(p1)
126 var p3 = Promise.resolved(p2) 126 var p3 = Promise.resolve(p2)
127 p3.chain( 127 p3.chain(
128 function(x) { assertAsync(x === p2, "rejected/chain") }, 128 function(x) { assertAsync(x === p2, "reject/chain") },
129 assertUnreachable 129 assertUnreachable
130 ) 130 )
131 assertAsyncRan() 131 assertAsyncRan()
132 })(); 132 })();
133 133
134 (function() { 134 (function() {
135 var p1 = Promise.rejected(5) 135 var p1 = Promise.reject(5)
136 var p2 = Promise.resolved(p1) 136 var p2 = Promise.resolve(p1)
137 var p3 = Promise.resolved(p2) 137 var p3 = Promise.resolve(p2)
138 p3.then( 138 p3.then(
139 assertUnreachable, 139 assertUnreachable,
140 function(x) { assertAsync(x === 5, "rejected/then") } 140 function(x) { assertAsync(x === 5, "reject/then") }
141 ) 141 )
142 assertAsyncRan() 142 assertAsyncRan()
143 })(); 143 })();
144 144
145 (function() { 145 (function() {
146 var p1 = Promise.resolved(5) 146 var p1 = Promise.resolve(5)
147 var p2 = Promise.resolved(p1) 147 var p2 = Promise.resolve(p1)
148 var p3 = Promise.resolved(p2) 148 var p3 = Promise.resolve(p2)
149 p3.chain(function(x) { return x }, assertUnreachable).chain( 149 p3.chain(function(x) { return x }, assertUnreachable).chain(
150 function(x) { assertAsync(x === p1, "resolved/chain/chain") }, 150 function(x) { assertAsync(x === p1, "resolve/chain/chain") },
151 assertUnreachable 151 assertUnreachable
152 ) 152 )
153 assertAsyncRan() 153 assertAsyncRan()
154 })(); 154 })();
155 155
156 (function() { 156 (function() {
157 var p1 = Promise.resolved(5) 157 var p1 = Promise.resolve(5)
158 var p2 = Promise.resolved(p1) 158 var p2 = Promise.resolve(p1)
159 var p3 = Promise.resolved(p2) 159 var p3 = Promise.resolve(p2)
160 p3.chain(function(x) { return x }, assertUnreachable).then( 160 p3.chain(function(x) { return x }, assertUnreachable).then(
161 function(x) { assertAsync(x === 5, "resolved/chain/then") }, 161 function(x) { assertAsync(x === 5, "resolve/chain/then") },
162 assertUnreachable 162 assertUnreachable
163 ) 163 )
164 assertAsyncRan() 164 assertAsyncRan()
165 })(); 165 })();
166 166
167 (function() { 167 (function() {
168 var p1 = Promise.resolved(5) 168 var p1 = Promise.resolve(5)
169 var p2 = Promise.resolved(p1) 169 var p2 = Promise.resolve(p1)
170 var p3 = Promise.resolved(p2) 170 var p3 = Promise.resolve(p2)
171 p3.chain(function(x) { return 6 }, assertUnreachable).chain( 171 p3.chain(function(x) { return 6 }, assertUnreachable).chain(
172 function(x) { assertAsync(x === 6, "resolved/chain/chain2") }, 172 function(x) { assertAsync(x === 6, "resolve/chain/chain2") },
173 assertUnreachable 173 assertUnreachable
174 ) 174 )
175 assertAsyncRan() 175 assertAsyncRan()
176 })(); 176 })();
177 177
178 (function() { 178 (function() {
179 var p1 = Promise.resolved(5) 179 var p1 = Promise.resolve(5)
180 var p2 = Promise.resolved(p1) 180 var p2 = Promise.resolve(p1)
181 var p3 = Promise.resolved(p2) 181 var p3 = Promise.resolve(p2)
182 p3.chain(function(x) { return 6 }, assertUnreachable).then( 182 p3.chain(function(x) { return 6 }, assertUnreachable).then(
183 function(x) { assertAsync(x === 6, "resolved/chain/then2") }, 183 function(x) { assertAsync(x === 6, "resolve/chain/then2") },
184 assertUnreachable 184 assertUnreachable
185 ) 185 )
186 assertAsyncRan() 186 assertAsyncRan()
187 })(); 187 })();
188 188
189 (function() { 189 (function() {
190 var p1 = Promise.resolved(5) 190 var p1 = Promise.resolve(5)
191 var p2 = Promise.resolved(p1) 191 var p2 = Promise.resolve(p1)
192 var p3 = Promise.resolved(p2) 192 var p3 = Promise.resolve(p2)
193 p3.then(function(x) { return x + 1 }, assertUnreachable).chain( 193 p3.then(function(x) { return x + 1 }, assertUnreachable).chain(
194 function(x) { assertAsync(x === 6, "resolved/then/chain") }, 194 function(x) { assertAsync(x === 6, "resolve/then/chain") },
195 assertUnreachable 195 assertUnreachable
196 ) 196 )
197 assertAsyncRan() 197 assertAsyncRan()
198 })(); 198 })();
199 199
200 (function() { 200 (function() {
201 var p1 = Promise.resolved(5) 201 var p1 = Promise.resolve(5)
202 var p2 = Promise.resolved(p1) 202 var p2 = Promise.resolve(p1)
203 var p3 = Promise.resolved(p2) 203 var p3 = Promise.resolve(p2)
204 p3.then(function(x) { return x + 1 }, assertUnreachable).then( 204 p3.then(function(x) { return x + 1 }, assertUnreachable).then(
205 function(x) { assertAsync(x === 6, "resolved/then/then") }, 205 function(x) { assertAsync(x === 6, "resolve/then/then") },
206 assertUnreachable 206 assertUnreachable
207 ) 207 )
208 assertAsyncRan() 208 assertAsyncRan()
209 })(); 209 })();
210 210
211 (function() { 211 (function() {
212 var p1 = Promise.resolved(5) 212 var p1 = Promise.resolve(5)
213 var p2 = Promise.resolved(p1) 213 var p2 = Promise.resolve(p1)
214 var p3 = Promise.resolved(p2) 214 var p3 = Promise.resolve(p2)
215 p3.then(function(x){ return Promise.resolved(x+1) }, assertUnreachable).chain( 215 p3.then(function(x){ return Promise.resolve(x+1) }, assertUnreachable).chain(
216 function(x) { assertAsync(x === 6, "resolved/then/chain2") }, 216 function(x) { assertAsync(x === 6, "resolve/then/chain2") },
217 assertUnreachable 217 assertUnreachable
218 ) 218 )
219 assertAsyncRan() 219 assertAsyncRan()
220 })(); 220 })();
221 221
222 (function() { 222 (function() {
223 var p1 = Promise.resolved(5) 223 var p1 = Promise.resolve(5)
224 var p2 = Promise.resolved(p1) 224 var p2 = Promise.resolve(p1)
225 var p3 = Promise.resolved(p2) 225 var p3 = Promise.resolve(p2)
226 p3.then(function(x) { return Promise.resolved(x+1) }, assertUnreachable).then( 226 p3.then(function(x) { return Promise.resolve(x+1) }, assertUnreachable).then(
227 function(x) { assertAsync(x === 6, "resolved/then/then2") }, 227 function(x) { assertAsync(x === 6, "resolve/then/then2") },
228 assertUnreachable 228 assertUnreachable
229 ) 229 )
230 assertAsyncRan() 230 assertAsyncRan()
231 })(); 231 })();
232 232
233 (function() { 233 (function() {
234 var p1 = Promise.resolved(5) 234 var p1 = Promise.resolve(5)
235 var p2 = Promise.resolved(p1) 235 var p2 = Promise.resolve(p1)
236 var p3 = Promise.resolved(p2) 236 var p3 = Promise.resolve(p2)
237 p3.chain(function(x) { throw 6 }, assertUnreachable).chain( 237 p3.chain(function(x) { throw 6 }, assertUnreachable).chain(
238 assertUnreachable, 238 assertUnreachable,
239 function(x) { assertAsync(x === 6, "resolved/chain-throw/chain") } 239 function(x) { assertAsync(x === 6, "resolve/chain-throw/chain") }
240 ) 240 )
241 assertAsyncRan() 241 assertAsyncRan()
242 })(); 242 })();
243 243
244 (function() { 244 (function() {
245 var p1 = Promise.resolved(5) 245 var p1 = Promise.resolve(5)
246 var p2 = Promise.resolved(p1) 246 var p2 = Promise.resolve(p1)
247 var p3 = Promise.resolved(p2) 247 var p3 = Promise.resolve(p2)
248 p3.chain(function(x) { throw 6 }, assertUnreachable).then( 248 p3.chain(function(x) { throw 6 }, assertUnreachable).then(
249 assertUnreachable, 249 assertUnreachable,
250 function(x) { assertAsync(x === 6, "resolved/chain-throw/then") } 250 function(x) { assertAsync(x === 6, "resolve/chain-throw/then") }
251 ) 251 )
252 assertAsyncRan() 252 assertAsyncRan()
253 })(); 253 })();
254 254
255 (function() { 255 (function() {
256 var p1 = Promise.resolved(5) 256 var p1 = Promise.resolve(5)
257 var p2 = Promise.resolved(p1) 257 var p2 = Promise.resolve(p1)
258 var p3 = Promise.resolved(p2) 258 var p3 = Promise.resolve(p2)
259 p3.then(function(x) { throw 6 }, assertUnreachable).chain( 259 p3.then(function(x) { throw 6 }, assertUnreachable).chain(
260 assertUnreachable, 260 assertUnreachable,
261 function(x) { assertAsync(x === 6, "resolved/then-throw/chain") } 261 function(x) { assertAsync(x === 6, "resolve/then-throw/chain") }
262 ) 262 )
263 assertAsyncRan() 263 assertAsyncRan()
264 })(); 264 })();
265 265
266 (function() { 266 (function() {
267 var p1 = Promise.resolved(5) 267 var p1 = Promise.resolve(5)
268 var p2 = Promise.resolved(p1) 268 var p2 = Promise.resolve(p1)
269 var p3 = Promise.resolved(p2) 269 var p3 = Promise.resolve(p2)
270 p3.then(function(x) { throw 6 }, assertUnreachable).then( 270 p3.then(function(x) { throw 6 }, assertUnreachable).then(
271 assertUnreachable, 271 assertUnreachable,
272 function(x) { assertAsync(x === 6, "resolved/then-throw/then") } 272 function(x) { assertAsync(x === 6, "resolve/then-throw/then") }
273 ) 273 )
274 assertAsyncRan() 274 assertAsyncRan()
275 })(); 275 })();
276 276
277 (function() { 277 (function() {
278 var p1 = Promise.resolved(5) 278 var p1 = Promise.resolve(5)
279 var p2 = {then: function(onResolve, onReject) { onResolve(p1) }} 279 var p2 = {then: function(onResolve, onReject) { onResolve(p1) }}
280 var p3 = Promise.resolved(p2) 280 var p3 = Promise.resolve(p2)
281 p3.chain( 281 p3.chain(
282 function(x) { assertAsync(x === p2, "resolved/thenable/chain") }, 282 function(x) { assertAsync(x === p2, "resolve/thenable/chain") },
283 assertUnreachable 283 assertUnreachable
284 ) 284 )
285 assertAsyncRan() 285 assertAsyncRan()
286 })(); 286 })();
287 287
288 (function() { 288 (function() {
289 var p1 = Promise.resolved(5) 289 var p1 = Promise.resolve(5)
290 var p2 = {then: function(onResolve, onReject) { onResolve(p1) }} 290 var p2 = {then: function(onResolve, onReject) { onResolve(p1) }}
291 var p3 = Promise.resolved(p2) 291 var p3 = Promise.resolve(p2)
292 p3.then( 292 p3.then(
293 function(x) { assertAsync(x === 5, "resolved/thenable/then") }, 293 function(x) { assertAsync(x === 5, "resolve/thenable/then") },
294 assertUnreachable 294 assertUnreachable
295 ) 295 )
296 assertAsyncRan() 296 assertAsyncRan()
297 })(); 297 })();
298 298
299 (function() { 299 (function() {
300 var p1 = Promise.rejected(5) 300 var p1 = Promise.reject(5)
301 var p2 = {then: function(onResolve, onReject) { onResolve(p1) }} 301 var p2 = {then: function(onResolve, onReject) { onResolve(p1) }}
302 var p3 = Promise.resolved(p2) 302 var p3 = Promise.resolve(p2)
303 p3.chain( 303 p3.chain(
304 function(x) { assertAsync(x === p2, "rejected/thenable/chain") }, 304 function(x) { assertAsync(x === p2, "reject/thenable/chain") },
305 assertUnreachable 305 assertUnreachable
306 ) 306 )
307 assertAsyncRan() 307 assertAsyncRan()
308 })(); 308 })();
309 309
310 (function() { 310 (function() {
311 var p1 = Promise.rejected(5) 311 var p1 = Promise.reject(5)
312 var p2 = {then: function(onResolve, onReject) { onResolve(p1) }} 312 var p2 = {then: function(onResolve, onReject) { onResolve(p1) }}
313 var p3 = Promise.resolved(p2) 313 var p3 = Promise.resolve(p2)
314 p3.then( 314 p3.then(
315 assertUnreachable, 315 assertUnreachable,
316 function(x) { assertAsync(x === 5, "rejected/thenable/then") } 316 function(x) { assertAsync(x === 5, "reject/thenable/then") }
317 ) 317 )
318 assertAsyncRan() 318 assertAsyncRan()
319 })(); 319 })();
320 320
321 (function() { 321 (function() {
322 var deferred = Promise.deferred() 322 var deferred = Promise.deferred()
323 var p1 = deferred.promise 323 var p1 = deferred.promise
324 var p2 = Promise.resolved(p1) 324 var p2 = Promise.resolve(p1)
325 var p3 = Promise.resolved(p2) 325 var p3 = Promise.resolve(p2)
326 p3.chain( 326 p3.chain(
327 function(x) { assertAsync(x === p2, "chain/resolve") }, 327 function(x) { assertAsync(x === p2, "chain/resolve") },
328 assertUnreachable 328 assertUnreachable
329 ) 329 )
330 deferred.resolve(5) 330 deferred.resolve(5)
331 assertAsyncRan() 331 assertAsyncRan()
332 })(); 332 })();
333 333
334 (function() { 334 (function() {
335 var deferred = Promise.deferred() 335 var deferred = Promise.deferred()
336 var p1 = deferred.promise 336 var p1 = deferred.promise
337 var p2 = Promise.resolved(p1) 337 var p2 = Promise.resolve(p1)
338 var p3 = Promise.resolved(p2) 338 var p3 = Promise.resolve(p2)
339 p3.then( 339 p3.then(
340 function(x) { assertAsync(x === 5, "then/resolve") }, 340 function(x) { assertAsync(x === 5, "then/resolve") },
341 assertUnreachable 341 assertUnreachable
342 ) 342 )
343 deferred.resolve(5) 343 deferred.resolve(5)
344 assertAsyncRan() 344 assertAsyncRan()
345 })(); 345 })();
346 346
347 (function() { 347 (function() {
348 var deferred = Promise.deferred() 348 var deferred = Promise.deferred()
349 var p1 = deferred.promise 349 var p1 = deferred.promise
350 var p2 = Promise.resolved(p1) 350 var p2 = Promise.resolve(p1)
351 var p3 = Promise.resolved(p2) 351 var p3 = Promise.resolve(p2)
352 p3.chain( 352 p3.chain(
353 function(x) { assertAsync(x === p2, "chain/reject") }, 353 function(x) { assertAsync(x === p2, "chain/reject") },
354 assertUnreachable 354 assertUnreachable
355 ) 355 )
356 deferred.reject(5) 356 deferred.reject(5)
357 assertAsyncRan() 357 assertAsyncRan()
358 })(); 358 })();
359 359
360 (function() { 360 (function() {
361 var deferred = Promise.deferred() 361 var deferred = Promise.deferred()
362 var p1 = deferred.promise 362 var p1 = deferred.promise
363 var p2 = Promise.resolved(p1) 363 var p2 = Promise.resolve(p1)
364 var p3 = Promise.resolved(p2) 364 var p3 = Promise.resolve(p2)
365 p3.then( 365 p3.then(
366 assertUnreachable, 366 assertUnreachable,
367 function(x) { assertAsync(x === 5, "then/reject") } 367 function(x) { assertAsync(x === 5, "then/reject") }
368 ) 368 )
369 deferred.reject(5) 369 deferred.reject(5)
370 assertAsyncRan() 370 assertAsyncRan()
371 })(); 371 })();
372 372
373 (function() { 373 (function() {
374 var deferred = Promise.deferred() 374 var deferred = Promise.deferred()
375 var p1 = deferred.promise 375 var p1 = deferred.promise
376 var p2 = {then: function(onResolve, onReject) { onResolve(p1) }} 376 var p2 = {then: function(onResolve, onReject) { onResolve(p1) }}
377 var p3 = Promise.resolved(p2) 377 var p3 = Promise.resolve(p2)
378 p3.chain( 378 p3.chain(
379 function(x) { assertAsync(x === p2, "chain/resolve/thenable") }, 379 function(x) { assertAsync(x === p2, "chain/resolve/thenable") },
380 assertUnreachable 380 assertUnreachable
381 ) 381 )
382 deferred.resolve(5) 382 deferred.resolve(5)
383 assertAsyncRan() 383 assertAsyncRan()
384 })(); 384 })();
385 385
386 (function() { 386 (function() {
387 var deferred = Promise.deferred() 387 var deferred = Promise.deferred()
388 var p1 = deferred.promise 388 var p1 = deferred.promise
389 var p2 = {then: function(onResolve, onReject) { onResolve(p1) }} 389 var p2 = {then: function(onResolve, onReject) { onResolve(p1) }}
390 var p3 = Promise.resolved(p2) 390 var p3 = Promise.resolve(p2)
391 p3.then( 391 p3.then(
392 function(x) { assertAsync(x === 5, "then/resolve/thenable") }, 392 function(x) { assertAsync(x === 5, "then/resolve/thenable") },
393 assertUnreachable 393 assertUnreachable
394 ) 394 )
395 deferred.resolve(5) 395 deferred.resolve(5)
396 assertAsyncRan() 396 assertAsyncRan()
397 })(); 397 })();
398 398
399 (function() { 399 (function() {
400 var deferred = Promise.deferred() 400 var deferred = Promise.deferred()
401 var p1 = deferred.promise 401 var p1 = deferred.promise
402 var p2 = {then: function(onResolve, onReject) { onResolve(p1) }} 402 var p2 = {then: function(onResolve, onReject) { onResolve(p1) }}
403 var p3 = Promise.resolved(p2) 403 var p3 = Promise.resolve(p2)
404 p3.chain( 404 p3.chain(
405 function(x) { assertAsync(x === p2, "chain/reject/thenable") }, 405 function(x) { assertAsync(x === p2, "chain/reject/thenable") },
406 assertUnreachable 406 assertUnreachable
407 ) 407 )
408 deferred.reject(5) 408 deferred.reject(5)
409 assertAsyncRan() 409 assertAsyncRan()
410 })(); 410 })();
411 411
412 (function() { 412 (function() {
413 var deferred = Promise.deferred() 413 var deferred = Promise.deferred()
414 var p1 = deferred.promise 414 var p1 = deferred.promise
415 var p2 = {then: function(onResolve, onReject) { onResolve(p1) }} 415 var p2 = {then: function(onResolve, onReject) { onResolve(p1) }}
416 var p3 = Promise.resolved(p2) 416 var p3 = Promise.resolve(p2)
417 p3.then( 417 p3.then(
418 assertUnreachable, 418 assertUnreachable,
419 function(x) { assertAsync(x === 5, "then/reject/thenable") } 419 function(x) { assertAsync(x === 5, "then/reject/thenable") }
420 ) 420 )
421 deferred.reject(5) 421 deferred.reject(5)
422 assertAsyncRan() 422 assertAsyncRan()
423 })(); 423 })();
424 424
425 (function() { 425 (function() {
426 var p1 = Promise.resolved(5) 426 var p1 = Promise.resolve(5)
427 var p2 = Promise.resolved(p1) 427 var p2 = Promise.resolve(p1)
428 var deferred = Promise.deferred() 428 var deferred = Promise.deferred()
429 var p3 = deferred.promise 429 var p3 = deferred.promise
430 p3.chain( 430 p3.chain(
431 function(x) { assertAsync(x === p2, "chain/resolve2") }, 431 function(x) { assertAsync(x === p2, "chain/resolve2") },
432 assertUnreachable 432 assertUnreachable
433 ) 433 )
434 deferred.resolve(p2) 434 deferred.resolve(p2)
435 assertAsyncRan() 435 assertAsyncRan()
436 })(); 436 })();
437 437
438 (function() { 438 (function() {
439 var p1 = Promise.resolved(5) 439 var p1 = Promise.resolve(5)
440 var p2 = Promise.resolved(p1) 440 var p2 = Promise.resolve(p1)
441 var deferred = Promise.deferred() 441 var deferred = Promise.deferred()
442 var p3 = deferred.promise 442 var p3 = deferred.promise
443 p3.then( 443 p3.then(
444 function(x) { assertAsync(x === 5, "then/resolve2") }, 444 function(x) { assertAsync(x === 5, "then/resolve2") },
445 assertUnreachable 445 assertUnreachable
446 ) 446 )
447 deferred.resolve(p2) 447 deferred.resolve(p2)
448 assertAsyncRan() 448 assertAsyncRan()
449 })(); 449 })();
450 450
451 (function() { 451 (function() {
452 var p1 = Promise.resolved(5) 452 var p1 = Promise.resolve(5)
453 var p2 = Promise.resolved(p1) 453 var p2 = Promise.resolve(p1)
454 var deferred = Promise.deferred() 454 var deferred = Promise.deferred()
455 var p3 = deferred.promise 455 var p3 = deferred.promise
456 p3.chain( 456 p3.chain(
457 assertUnreachable, 457 assertUnreachable,
458 function(x) { assertAsync(x === 5, "chain/reject2") } 458 function(x) { assertAsync(x === 5, "chain/reject2") }
459 ) 459 )
460 deferred.reject(5) 460 deferred.reject(5)
461 assertAsyncRan() 461 assertAsyncRan()
462 })(); 462 })();
463 463
464 (function() { 464 (function() {
465 var p1 = Promise.resolved(5) 465 var p1 = Promise.resolve(5)
466 var p2 = Promise.resolved(p1) 466 var p2 = Promise.resolve(p1)
467 var deferred = Promise.deferred() 467 var deferred = Promise.deferred()
468 var p3 = deferred.promise 468 var p3 = deferred.promise
469 p3.then( 469 p3.then(
470 assertUnreachable, 470 assertUnreachable,
471 function(x) { assertAsync(x === 5, "then/reject2") } 471 function(x) { assertAsync(x === 5, "then/reject2") }
472 ) 472 )
473 deferred.reject(5) 473 deferred.reject(5)
474 assertAsyncRan() 474 assertAsyncRan()
475 })(); 475 })();
476 476
477 (function() { 477 (function() {
478 var p1 = Promise.resolved(5) 478 var p1 = Promise.resolve(5)
479 var p2 = {then: function(onResolve, onReject) { onResolve(p1) }} 479 var p2 = {then: function(onResolve, onReject) { onResolve(p1) }}
480 var deferred = Promise.deferred() 480 var deferred = Promise.deferred()
481 var p3 = deferred.promise 481 var p3 = deferred.promise
482 p3.chain( 482 p3.chain(
483 function(x) { assertAsync(x === p2, "chain/resolve/thenable2") }, 483 function(x) { assertAsync(x === p2, "chain/resolve/thenable2") },
484 assertUnreachable 484 assertUnreachable
485 ) 485 )
486 deferred.resolve(p2) 486 deferred.resolve(p2)
487 assertAsyncRan() 487 assertAsyncRan()
488 })(); 488 })();
489 489
490 (function() { 490 (function() {
491 var p1 = Promise.resolved(5) 491 var p1 = Promise.resolve(5)
492 var p2 = {then: function(onResolve, onReject) { onResolve(p1) }} 492 var p2 = {then: function(onResolve, onReject) { onResolve(p1) }}
493 var deferred = Promise.deferred() 493 var deferred = Promise.deferred()
494 var p3 = deferred.promise 494 var p3 = deferred.promise
495 p3.then( 495 p3.then(
496 function(x) { assertAsync(x === 5, "then/resolve/thenable2") }, 496 function(x) { assertAsync(x === 5, "then/resolve/thenable2") },
497 assertUnreachable 497 assertUnreachable
498 ) 498 )
499 deferred.resolve(p2) 499 deferred.resolve(p2)
500 assertAsyncRan() 500 assertAsyncRan()
501 })(); 501 })();
502 502
503 (function() { 503 (function() {
504 var p1 = Promise.resolved(0) 504 var p1 = Promise.resolve(0)
505 var p2 = p1.chain(function(x) { return p2 }, assertUnreachable) 505 var p2 = p1.chain(function(x) { return p2 }, assertUnreachable)
506 p2.chain( 506 p2.chain(
507 assertUnreachable, 507 assertUnreachable,
508 function(r) { assertAsync(r instanceof TypeError, "cyclic/chain") } 508 function(r) { assertAsync(r instanceof TypeError, "cyclic/chain") }
509 ) 509 )
510 assertAsyncRan() 510 assertAsyncRan()
511 })(); 511 })();
512 512
513 (function() { 513 (function() {
514 var p1 = Promise.resolved(0) 514 var p1 = Promise.resolve(0)
515 var p2 = p1.then(function(x) { return p2 }, assertUnreachable) 515 var p2 = p1.then(function(x) { return p2 }, assertUnreachable)
516 p2.chain( 516 p2.chain(
517 assertUnreachable, 517 assertUnreachable,
518 function(r) { assertAsync(r instanceof TypeError, "cyclic/then") } 518 function(r) { assertAsync(r instanceof TypeError, "cyclic/then") }
519 ) 519 )
520 assertAsyncRan() 520 assertAsyncRan()
521 })(); 521 })();
522 522
523 (function() { 523 (function() {
524 var deferred = Promise.deferred() 524 var deferred = Promise.deferred()
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
571 deferred2.resolve(2) 571 deferred2.resolve(2)
572 assertAsyncRan() 572 assertAsyncRan()
573 assertAsyncRan() 573 assertAsyncRan()
574 assertAsyncRan() 574 assertAsyncRan()
575 assertAsyncRan() 575 assertAsyncRan()
576 })(); 576 })();
577 577
578 (function() { 578 (function() {
579 var deferred = Promise.deferred() 579 var deferred = Promise.deferred()
580 var p1 = deferred.promise 580 var p1 = deferred.promise
581 var p2 = Promise.resolved(2) 581 var p2 = Promise.resolve(2)
582 var p3 = Promise.deferred().promise 582 var p3 = Promise.deferred().promise
583 Promise.all([p1, p2, p3]).chain( 583 Promise.all([p1, p2, p3]).chain(
584 assertUnreachable, 584 assertUnreachable,
585 assertUnreachable 585 assertUnreachable
586 ) 586 )
587 deferred.resolve(1) 587 deferred.resolve(1)
588 })(); 588 })();
589 589
590 (function() { 590 (function() {
591 var deferred1 = Promise.deferred() 591 var deferred1 = Promise.deferred()
592 var p1 = deferred1.promise 592 var p1 = deferred1.promise
593 var deferred2 = Promise.deferred() 593 var deferred2 = Promise.deferred()
594 var p2 = deferred2.promise 594 var p2 = deferred2.promise
595 var deferred3 = Promise.deferred() 595 var deferred3 = Promise.deferred()
596 var p3 = deferred3.promise 596 var p3 = deferred3.promise
597 Promise.all([p1, p2, p3]).chain( 597 Promise.all([p1, p2, p3]).chain(
598 assertUnreachable, 598 assertUnreachable,
599 function(x) { assertAsync(x === 2, "all/reject") } 599 function(x) { assertAsync(x === 2, "all/reject") }
600 ) 600 )
601 deferred1.resolve(1) 601 deferred1.resolve(1)
602 deferred3.resolve(3) 602 deferred3.resolve(3)
603 deferred2.reject(2) 603 deferred2.reject(2)
604 assertAsyncRan() 604 assertAsyncRan()
605 })(); 605 })();
606 606
607 (function() { 607 (function() {
608 Promise.one([]).chain( 608 Promise.race([]).chain(
609 assertUnreachable, 609 assertUnreachable,
610 assertUnreachable 610 assertUnreachable
611 ) 611 )
612 })(); 612 })();
613 613
614 (function() { 614 (function() {
615 var p1 = Promise.resolved(1) 615 var p1 = Promise.resolve(1)
616 var p2 = Promise.resolved(2) 616 var p2 = Promise.resolve(2)
617 var p3 = Promise.resolved(3) 617 var p3 = Promise.resolve(3)
618 Promise.one([p1, p2, p3]).chain( 618 Promise.race([p1, p2, p3]).chain(
619 function(x) { assertAsync(x === 1, "resolved/all") }, 619 function(x) { assertAsync(x === 1, "resolve/all") },
620 assertUnreachable 620 assertUnreachable
621 ) 621 )
622 assertAsyncRan() 622 assertAsyncRan()
623 })(); 623 })();
624 624
625 (function() { 625 (function() {
626 var p1 = Promise.resolved(1) 626 var p1 = Promise.resolve(1)
627 var p2 = Promise.resolved(2) 627 var p2 = Promise.resolve(2)
628 var p3 = Promise.resolved(3) 628 var p3 = Promise.resolve(3)
629 Promise.one([0, p1, p2, p3]).chain( 629 Promise.race([0, p1, p2, p3]).chain(
630 function(x) { assertAsync(x === 0, "resolved-const/all") }, 630 function(x) { assertAsync(x === 0, "resolve-const/all") },
631 assertUnreachable 631 assertUnreachable
632 ) 632 )
633 assertAsyncRan() 633 assertAsyncRan()
634 })(); 634 })();
635 635
636 (function() { 636 (function() {
637 var deferred1 = Promise.deferred() 637 var deferred1 = Promise.deferred()
638 var p1 = deferred1.promise 638 var p1 = deferred1.promise
639 var deferred2 = Promise.deferred() 639 var deferred2 = Promise.deferred()
640 var p2 = deferred2.promise 640 var p2 = deferred2.promise
641 var deferred3 = Promise.deferred() 641 var deferred3 = Promise.deferred()
642 var p3 = deferred3.promise 642 var p3 = deferred3.promise
643 Promise.one([p1, p2, p3]).chain( 643 Promise.race([p1, p2, p3]).chain(
644 function(x) { assertAsync(x === 3, "one/resolve") }, 644 function(x) { assertAsync(x === 3, "race/resolve") },
645 assertUnreachable 645 assertUnreachable
646 ) 646 )
647 deferred3.resolve(3) 647 deferred3.resolve(3)
648 deferred1.resolve(1) 648 deferred1.resolve(1)
649 assertAsyncRan() 649 assertAsyncRan()
650 })(); 650 })();
651 651
652 (function() { 652 (function() {
653 var deferred = Promise.deferred() 653 var deferred = Promise.deferred()
654 var p1 = deferred.promise 654 var p1 = deferred.promise
655 var p2 = Promise.resolved(2) 655 var p2 = Promise.resolve(2)
656 var p3 = Promise.deferred().promise 656 var p3 = Promise.deferred().promise
657 Promise.one([p1, p2, p3]).chain( 657 Promise.race([p1, p2, p3]).chain(
658 function(x) { assertAsync(x === 2, "resolved/one") }, 658 function(x) { assertAsync(x === 2, "resolve/race") },
659 assertUnreachable 659 assertUnreachable
660 ) 660 )
661 deferred.resolve(1) 661 deferred.resolve(1)
662 assertAsyncRan() 662 assertAsyncRan()
663 })(); 663 })();
664 664
665 (function() { 665 (function() {
666 var deferred1 = Promise.deferred() 666 var deferred1 = Promise.deferred()
667 var p1 = deferred1.promise 667 var p1 = deferred1.promise
668 var deferred2 = Promise.deferred() 668 var deferred2 = Promise.deferred()
669 var p2 = deferred2.promise 669 var p2 = deferred2.promise
670 var deferred3 = Promise.deferred() 670 var deferred3 = Promise.deferred()
671 var p3 = deferred3.promise 671 var p3 = deferred3.promise
672 Promise.one([p1, p2, p3]).chain( 672 Promise.race([p1, p2, p3]).chain(
673 function(x) { assertAsync(x === 3, "one/resolve/reject") }, 673 function(x) { assertAsync(x === 3, "race/resolve/reject") },
674 assertUnreachable 674 assertUnreachable
675 ) 675 )
676 deferred3.resolve(3) 676 deferred3.resolve(3)
677 deferred1.reject(1) 677 deferred1.reject(1)
678 assertAsyncRan() 678 assertAsyncRan()
679 })(); 679 })();
680 680
681 (function() { 681 (function() {
682 var deferred1 = Promise.deferred() 682 var deferred1 = Promise.deferred()
683 var p1 = deferred1.promise 683 var p1 = deferred1.promise
684 var deferred2 = Promise.deferred() 684 var deferred2 = Promise.deferred()
685 var p2 = deferred2.promise 685 var p2 = deferred2.promise
686 var deferred3 = Promise.deferred() 686 var deferred3 = Promise.deferred()
687 var p3 = deferred3.promise 687 var p3 = deferred3.promise
688 Promise.one([p1, p2, p3]).chain( 688 Promise.race([p1, p2, p3]).chain(
689 assertUnreachable, 689 assertUnreachable,
690 function(x) { assertAsync(x === 3, "one/reject/resolve") } 690 function(x) { assertAsync(x === 3, "race/reject/resolve") }
691 ) 691 )
692 deferred3.reject(3) 692 deferred3.reject(3)
693 deferred1.resolve(1) 693 deferred1.resolve(1)
694 assertAsyncRan() 694 assertAsyncRan()
695 })(); 695 })();
696 696
697 (function() { 697 (function() {
698 var log 698 var log
699 function MyPromise(resolver) { 699 function MyPromise(resolver) {
700 log += "n" 700 log += "n"
(...skipping 20 matching lines...) Expand all
721 } 721 }
722 722
723 log = "" 723 log = ""
724 var p1 = new MyPromise(function(resolve, reject) { resolve(1) }) 724 var p1 = new MyPromise(function(resolve, reject) { resolve(1) })
725 var p2 = new MyPromise(function(resolve, reject) { reject(2) }) 725 var p2 = new MyPromise(function(resolve, reject) { reject(2) })
726 var d3 = MyPromise.deferred() 726 var d3 = MyPromise.deferred()
727 assertTrue(d3.promise instanceof MyPromise, "subclass/instance3") 727 assertTrue(d3.promise instanceof MyPromise, "subclass/instance3")
728 assertTrue(log === "nx1nr2dn", "subclass/create") 728 assertTrue(log === "nx1nr2dn", "subclass/create")
729 729
730 log = "" 730 log = ""
731 var p4 = MyPromise.resolved(4) 731 var p4 = MyPromise.resolve(4)
732 var p5 = MyPromise.rejected(5) 732 var p5 = MyPromise.reject(5)
733 assertTrue(p4 instanceof MyPromise, "subclass/instance4") 733 assertTrue(p4 instanceof MyPromise, "subclass/instance4")
734 assertTrue(p5 instanceof MyPromise, "subclass/instance5") 734 assertTrue(p5 instanceof MyPromise, "subclass/instance5")
735 d3.resolve(3) 735 d3.resolve(3)
736 assertTrue(log === "nx4nr5x3", "subclass/resolve") 736 assertTrue(log === "nx4nr5x3", "subclass/resolve")
737 737
738 log = "" 738 log = ""
739 var d6 = MyPromise.deferred() 739 var d6 = MyPromise.deferred()
740 d6.promise.chain(function(x) { return new Promise(x) }).chain(function() {}) 740 d6.promise.chain(function(x) { return new Promise(x) }).chain(function() {})
741 d6.resolve(6) 741 d6.resolve(6)
742 assertTrue(log === "dnwnwnx6", "subclass/chain") 742 assertTrue(log === "dnwnwnx6", "subclass/chain")
743 743
744 log = "" 744 log = ""
745 Promise.all([11, Promise.resolved(12), 13, MyPromise.resolved(14), 15, 16]) 745 Promise.all([11, Promise.resolve(12), 13, MyPromise.resolve(14), 15, 16])
746 assertTrue(log === "nx14wn", "subclass/all/arg") 746 assertTrue(log === "nx14wn", "subclass/all/arg")
747 747
748 log = "" 748 log = ""
749 MyPromise.all([21, Promise.resolved(22), 23, MyPromise.resolved(24), 25, 26]) 749 MyPromise.all([21, Promise.resolve(22), 23, MyPromise.resolve(24), 25, 26])
750 assertTrue(log === "nx24dnnx21wnnx23wnwnnx25wnnx26wn", "subclass/all/self") 750 assertTrue(log === "nx24dnnx21wnnx23wnwnnx25wnnx26wn", "subclass/all/self")
751 })(); 751 })();
752 752
753 753
754 assertAsyncDone() 754 assertAsyncDone()
OLDNEW
« no previous file with comments | « src/promise.js ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698