| 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 |