| 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 promiseAsyncStackIDSymbol = | 15 var promiseAsyncStackIDSymbol = |
| 16 utils.ImportNow("promise_async_stack_id_symbol"); | 16 utils.ImportNow("promise_async_stack_id_symbol"); |
| 17 var promiseHandledBySymbol = | 17 var promiseHandledBySymbol = |
| 18 utils.ImportNow("promise_handled_by_symbol"); | 18 utils.ImportNow("promise_handled_by_symbol"); |
| 19 var promiseForwardingHandlerSymbol = | 19 var promiseForwardingHandlerSymbol = |
| 20 utils.ImportNow("promise_forwarding_handler_symbol"); | 20 utils.ImportNow("promise_forwarding_handler_symbol"); |
| 21 var promiseHandledHintSymbol = | 21 var promiseHandledHintSymbol = |
| 22 utils.ImportNow("promise_handled_hint_symbol"); | 22 utils.ImportNow("promise_handled_hint_symbol"); |
| 23 var promiseRawSymbol = utils.ImportNow("promise_raw_symbol"); | 23 var promiseRawSymbol = utils.ImportNow("promise_raw_symbol"); |
| 24 var promiseStateSymbol = utils.ImportNow("promise_state_symbol"); | 24 var promiseStateSymbol = utils.ImportNow("promise_state_symbol"); |
| 25 var promiseResultSymbol = utils.ImportNow("promise_result_symbol"); | 25 var promiseResultSymbol = utils.ImportNow("promise_result_symbol"); |
| 26 var SpeciesConstructor; | |
| 27 var speciesSymbol = utils.ImportNow("species_symbol"); | |
| 28 var toStringTagSymbol = utils.ImportNow("to_string_tag_symbol"); | 26 var toStringTagSymbol = utils.ImportNow("to_string_tag_symbol"); |
| 29 var ObjectHasOwnProperty; | 27 var ObjectHasOwnProperty; |
| 30 var GlobalPromise = global.Promise; | 28 var GlobalPromise = global.Promise; |
| 31 var PromiseThen = GlobalPromise.prototype.then; | 29 var PromiseThen = GlobalPromise.prototype.then; |
| 32 | 30 |
| 33 utils.Import(function(from) { | 31 utils.Import(function(from) { |
| 34 ObjectHasOwnProperty = from.ObjectHasOwnProperty; | 32 ObjectHasOwnProperty = from.ObjectHasOwnProperty; |
| 35 SpeciesConstructor = from.SpeciesConstructor; | |
| 36 }); | 33 }); |
| 37 | 34 |
| 38 // ------------------------------------------------------------------- | 35 // ------------------------------------------------------------------- |
| 39 | 36 |
| 40 // Core functionality. | 37 // Core functionality. |
| 41 | 38 |
| 42 function PromiseDebugGetInfo(deferreds, status) { | 39 function PromiseDebugGetInfo(deferreds, status) { |
| 43 var id, name, instrumenting = DEBUG_IS_ACTIVE; | 40 var id, name, instrumenting = DEBUG_IS_ACTIVE; |
| 44 | 41 |
| 45 if (instrumenting) { | 42 if (instrumenting) { |
| (...skipping 290 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 336 // This function also traverses dependencies of one Promise on another, | 333 // This function also traverses dependencies of one Promise on another, |
| 337 // set up through async/await and Promises resolved with Promises. | 334 // set up through async/await and Promises resolved with Promises. |
| 338 function PromiseHasUserDefinedRejectHandler() { | 335 function PromiseHasUserDefinedRejectHandler() { |
| 339 return PromiseHasUserDefinedRejectHandlerRecursive(this); | 336 return PromiseHasUserDefinedRejectHandlerRecursive(this); |
| 340 }; | 337 }; |
| 341 | 338 |
| 342 function MarkPromiseAsHandled(promise) { | 339 function MarkPromiseAsHandled(promise) { |
| 343 %PromiseMarkAsHandled(promise); | 340 %PromiseMarkAsHandled(promise); |
| 344 } | 341 } |
| 345 | 342 |
| 346 | |
| 347 function PromiseSpecies() { | |
| 348 return this; | |
| 349 } | |
| 350 | |
| 351 // ------------------------------------------------------------------- | 343 // ------------------------------------------------------------------- |
| 352 // Install exported functions. | 344 // Install exported functions. |
| 353 | 345 |
| 354 utils.InstallFunctions(GlobalPromise, DONT_ENUM, [ | 346 utils.InstallFunctions(GlobalPromise, DONT_ENUM, [ |
| 355 "reject", PromiseReject, | 347 "reject", PromiseReject, |
| 356 "all", PromiseAll, | 348 "all", PromiseAll, |
| 357 "race", PromiseRace, | 349 "race", PromiseRace, |
| 358 "resolve", PromiseResolve | 350 "resolve", PromiseResolve |
| 359 ]); | 351 ]); |
| 360 | 352 |
| 361 utils.InstallGetter(GlobalPromise, speciesSymbol, PromiseSpecies); | |
| 362 | |
| 363 %SetCode(GlobalPromise.prototype.catch, PromiseCatch); | 353 %SetCode(GlobalPromise.prototype.catch, PromiseCatch); |
| 364 | 354 |
| 365 %InstallToContext([ | 355 %InstallToContext([ |
| 366 "promise_catch", GlobalPromise.prototype.catch, | 356 "promise_catch", GlobalPromise.prototype.catch, |
| 367 "promise_create", PromiseCreate, | 357 "promise_create", PromiseCreate, |
| 368 "promise_has_user_defined_reject_handler", PromiseHasUserDefinedRejectHandler, | 358 "promise_has_user_defined_reject_handler", PromiseHasUserDefinedRejectHandler, |
| 369 "promise_reject", DoRejectPromise, | 359 "promise_reject", DoRejectPromise, |
| 370 // TODO(gsathya): Remove this once we update the promise builtin. | 360 // TODO(gsathya): Remove this once we update the promise builtin. |
| 371 "promise_internal_reject", RejectPromise, | 361 "promise_internal_reject", RejectPromise, |
| 372 "promise_debug_get_info", PromiseDebugGetInfo, | 362 "promise_debug_get_info", PromiseDebugGetInfo, |
| (...skipping 14 matching lines...) Expand all Loading... |
| 387 | 377 |
| 388 utils.Export(function(to) { | 378 utils.Export(function(to) { |
| 389 to.PromiseCreate = PromiseCreate; | 379 to.PromiseCreate = PromiseCreate; |
| 390 to.PromiseThen = PromiseThen; | 380 to.PromiseThen = PromiseThen; |
| 391 | 381 |
| 392 to.CreateInternalPromiseCapability = CreateInternalPromiseCapability; | 382 to.CreateInternalPromiseCapability = CreateInternalPromiseCapability; |
| 393 to.RejectPromise = RejectPromise; | 383 to.RejectPromise = RejectPromise; |
| 394 }); | 384 }); |
| 395 | 385 |
| 396 }) | 386 }) |
| OLD | NEW |