| 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 (function(global, utils, extrasUtils) { | 5 (function(global, utils, extrasUtils) { |
| 6 | 6 |
| 7 "use strict"; | 7 "use strict"; |
| 8 | 8 |
| 9 %CheckIsBootstrapping(); | 9 %CheckIsBootstrapping(); |
| 10 | 10 |
| 11 // ------------------------------------------------------------------- | 11 // ------------------------------------------------------------------- |
| 12 // Imports | 12 // Imports |
| 13 | 13 |
| 14 var InternalArray = utils.InternalArray; | 14 var InternalArray = utils.InternalArray; |
| 15 var MakeTypeError; | 15 var MakeTypeError; |
| 16 var promiseCombinedDeferredSymbol = | 16 var promiseCombinedDeferredSymbol = |
| 17 utils.ImportNow("promise_combined_deferred_symbol"); | 17 utils.ImportNow("promise_combined_deferred_symbol"); |
| 18 var promiseHasHandlerSymbol = | 18 var promiseHasHandlerSymbol = |
| 19 utils.ImportNow("promise_has_handler_symbol"); | 19 utils.ImportNow("promise_has_handler_symbol"); |
| 20 var promiseRejectReactionsSymbol = | 20 var promiseRejectReactionsSymbol = |
| 21 utils.ImportNow("promise_reject_reactions_symbol"); | 21 utils.ImportNow("promise_reject_reactions_symbol"); |
| 22 var promiseFulfillReactionsSymbol = | 22 var promiseFulfillReactionsSymbol = |
| 23 utils.ImportNow("promise_fulfill_reactions_symbol"); | 23 utils.ImportNow("promise_fulfill_reactions_symbol"); |
| 24 var promiseDeferredReactionsSymbol = | 24 var promiseDeferredReactionsSymbol = |
| 25 utils.ImportNow("promise_deferred_reactions_symbol"); | 25 utils.ImportNow("promise_deferred_reactions_symbol"); |
| 26 var promiseRawSymbol = utils.ImportNow("promise_raw_symbol"); | 26 var promiseRawSymbol = utils.ImportNow("promise_raw_symbol"); |
| 27 var promiseStateSymbol = utils.ImportNow("promise_state_symbol"); | 27 var promiseStateSymbol = utils.ImportNow("promise_state_symbol"); |
| 28 var promiseResultSymbol = utils.ImportNow("promise_result_symbol"); | 28 var promiseResultSymbol = utils.ImportNow("promise_result_symbol"); |
| 29 var SpeciesConstructor; | 29 var SpeciesConstructor; |
| 30 var speciesSymbol = utils.ImportNow("species_symbol"); |
| 30 var toStringTagSymbol = utils.ImportNow("to_string_tag_symbol"); | 31 var toStringTagSymbol = utils.ImportNow("to_string_tag_symbol"); |
| 31 | 32 |
| 32 utils.Import(function(from) { | 33 utils.Import(function(from) { |
| 33 MakeTypeError = from.MakeTypeError; | 34 MakeTypeError = from.MakeTypeError; |
| 34 SpeciesConstructor = from.SpeciesConstructor; | 35 SpeciesConstructor = from.SpeciesConstructor; |
| 35 }); | 36 }); |
| 36 | 37 |
| 37 // ------------------------------------------------------------------- | 38 // ------------------------------------------------------------------- |
| 38 | 39 |
| 39 // [[PromiseState]] values: | 40 // [[PromiseState]] values: |
| (...skipping 516 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 556 return false; | 557 return false; |
| 557 } | 558 } |
| 558 | 559 |
| 559 // Return whether the promise will be handled by a user-defined reject | 560 // Return whether the promise will be handled by a user-defined reject |
| 560 // handler somewhere down the promise chain. For this, we do a depth-first | 561 // handler somewhere down the promise chain. For this, we do a depth-first |
| 561 // search for a reject handler that's not the default PromiseIdRejectHandler. | 562 // search for a reject handler that's not the default PromiseIdRejectHandler. |
| 562 function PromiseHasUserDefinedRejectHandler() { | 563 function PromiseHasUserDefinedRejectHandler() { |
| 563 return PromiseHasUserDefinedRejectHandlerRecursive(this); | 564 return PromiseHasUserDefinedRejectHandlerRecursive(this); |
| 564 }; | 565 }; |
| 565 | 566 |
| 567 |
| 568 function PromiseSpecies() { |
| 569 return this; |
| 570 } |
| 571 |
| 566 // ------------------------------------------------------------------- | 572 // ------------------------------------------------------------------- |
| 567 // Install exported functions. | 573 // Install exported functions. |
| 568 | 574 |
| 569 %AddNamedProperty(global, 'Promise', GlobalPromise, DONT_ENUM); | 575 %AddNamedProperty(global, 'Promise', GlobalPromise, DONT_ENUM); |
| 570 %AddNamedProperty(GlobalPromise.prototype, toStringTagSymbol, "Promise", | 576 %AddNamedProperty(GlobalPromise.prototype, toStringTagSymbol, "Promise", |
| 571 DONT_ENUM | READ_ONLY); | 577 DONT_ENUM | READ_ONLY); |
| 572 | 578 |
| 573 utils.InstallFunctions(GlobalPromise, DONT_ENUM, [ | 579 utils.InstallFunctions(GlobalPromise, DONT_ENUM, [ |
| 574 "reject", PromiseReject, | 580 "reject", PromiseReject, |
| 575 "all", PromiseAll, | 581 "all", PromiseAll, |
| 576 "race", PromiseRace, | 582 "race", PromiseRace, |
| 577 "resolve", PromiseResolve | 583 "resolve", PromiseResolve |
| 578 ]); | 584 ]); |
| 579 | 585 |
| 586 utils.InstallGetter(GlobalPromise, speciesSymbol, PromiseSpecies); |
| 587 |
| 580 utils.InstallFunctions(GlobalPromise.prototype, DONT_ENUM, [ | 588 utils.InstallFunctions(GlobalPromise.prototype, DONT_ENUM, [ |
| 581 "then", PromiseThen, | 589 "then", PromiseThen, |
| 582 "catch", PromiseCatch | 590 "catch", PromiseCatch |
| 583 ]); | 591 ]); |
| 584 | 592 |
| 585 %InstallToContext([ | 593 %InstallToContext([ |
| 586 "promise_catch", PromiseCatch, | 594 "promise_catch", PromiseCatch, |
| 587 "promise_chain", PromiseChain, | 595 "promise_chain", PromiseChain, |
| 588 "promise_create", PromiseCreate, | 596 "promise_create", PromiseCreate, |
| 589 "promise_has_user_defined_reject_handler", PromiseHasUserDefinedRejectHandler, | 597 "promise_has_user_defined_reject_handler", PromiseHasUserDefinedRejectHandler, |
| (...skipping 21 matching lines...) Expand all Loading... |
| 611 to.PromiseChain = PromiseChain; | 619 to.PromiseChain = PromiseChain; |
| 612 to.PromiseDefer = PromiseDefer; | 620 to.PromiseDefer = PromiseDefer; |
| 613 to.PromiseAccept = PromiseAccept; | 621 to.PromiseAccept = PromiseAccept; |
| 614 | 622 |
| 615 to.PromiseCreateRejected = PromiseCreateRejected; | 623 to.PromiseCreateRejected = PromiseCreateRejected; |
| 616 to.PromiseCreateResolved = PromiseCreateResolved; | 624 to.PromiseCreateResolved = PromiseCreateResolved; |
| 617 to.PromiseThen = PromiseThen; | 625 to.PromiseThen = PromiseThen; |
| 618 }); | 626 }); |
| 619 | 627 |
| 620 }) | 628 }) |
| OLD | NEW |