OLD | NEW |
1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 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 "use strict"; | 5 "use strict"; |
6 | 6 |
7 // This file relies on the fact that the following declaration has been made | 7 // This file relies on the fact that the following declaration has been made |
8 // in runtime.js: | 8 // in runtime.js: |
9 // var $Object = global.Object | 9 // var $Object = global.Object |
10 // var $WeakMap = global.WeakMap | 10 // var $WeakMap = global.WeakMap |
(...skipping 133 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
144 break; | 144 break; |
145 } | 145 } |
146 return deferred.promise; | 146 return deferred.promise; |
147 } | 147 } |
148 | 148 |
149 function PromiseCatch(onReject) { | 149 function PromiseCatch(onReject) { |
150 return this.then(UNDEFINED, onReject); | 150 return this.then(UNDEFINED, onReject); |
151 } | 151 } |
152 | 152 |
153 function PromiseEnqueue(value, tasks) { | 153 function PromiseEnqueue(value, tasks) { |
| 154 BUILTIN_ASSERT(IS_ARRAY(tasks)); |
154 %EnqueueMicrotask(function() { | 155 %EnqueueMicrotask(function() { |
155 for (var i = 0; i < tasks.length; i += 2) { | 156 for (var i = 0; i < tasks.length; i += 2) { |
156 PromiseHandle(value, tasks[i], tasks[i + 1]) | 157 PromiseHandle(value, tasks[i], tasks[i + 1]) |
157 } | 158 } |
158 }); | 159 }); |
159 } | 160 } |
160 | 161 |
161 function PromiseHandle(value, handler, deferred) { | 162 function PromiseHandle(value, handler, deferred) { |
162 try { | 163 try { |
163 %DebugPromiseHandlePrologue( | 164 %DebugPromiseHandlePrologue( |
(...skipping 130 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
294 "resolve", PromiseCast | 295 "resolve", PromiseCast |
295 ]); | 296 ]); |
296 InstallFunctions($Promise.prototype, DONT_ENUM, [ | 297 InstallFunctions($Promise.prototype, DONT_ENUM, [ |
297 "chain", PromiseChain, | 298 "chain", PromiseChain, |
298 "then", PromiseThen, | 299 "then", PromiseThen, |
299 "catch", PromiseCatch | 300 "catch", PromiseCatch |
300 ]); | 301 ]); |
301 } | 302 } |
302 | 303 |
303 SetUpPromise(); | 304 SetUpPromise(); |
OLD | NEW |