Index: src/js/async-await.js |
diff --git a/src/js/async-await.js b/src/js/async-await.js |
deleted file mode 100644 |
index e1c75c008dc0dc0273a28faa0d62b3e3ae0ea66b..0000000000000000000000000000000000000000 |
--- a/src/js/async-await.js |
+++ /dev/null |
@@ -1,114 +0,0 @@ |
-// Copyright 2016 the V8 project authors. All rights reserved. |
-// Use of this source code is governed by a BSD-style license that can be |
-// found in the LICENSE file. |
- |
-(function(global, utils, extrasUtils) { |
- |
-"use strict"; |
- |
-%CheckIsBootstrapping(); |
- |
-// ------------------------------------------------------------------- |
-// Imports |
- |
-var AsyncFunctionNext; |
-var AsyncFunctionThrow; |
- |
-utils.Import(function(from) { |
- AsyncFunctionNext = from.AsyncFunctionNext; |
- AsyncFunctionThrow = from.AsyncFunctionThrow; |
-}); |
- |
-var promiseHandledBySymbol = |
- utils.ImportNow("promise_handled_by_symbol"); |
-var promiseForwardingHandlerSymbol = |
- utils.ImportNow("promise_forwarding_handler_symbol"); |
- |
-// ------------------------------------------------------------------- |
- |
-function PromiseCastResolved(value) { |
- // TODO(caitp): This is non spec compliant. See v8:5694. |
- if (%is_promise(value)) { |
- return value; |
- } else { |
- var promise = %promise_internal_constructor(UNDEFINED); |
- %promise_resolve(promise, value); |
- return promise; |
- } |
-} |
- |
-// ES#abstract-ops-async-function-await |
-// AsyncFunctionAwait ( value ) |
-// Shared logic for the core of await. The parser desugars |
-// await awaited |
-// into |
-// yield AsyncFunctionAwait{Caught,Uncaught}(.generator, awaited, .promise) |
-// The 'awaited' parameter is the value; the generator stands in |
-// for the asyncContext, and .promise is the larger promise under |
-// construction by the enclosing async function. |
-function AsyncFunctionAwait(generator, awaited, outerPromise) { |
- // Promise.resolve(awaited).then( |
- // value => AsyncFunctionNext(value), |
- // error => AsyncFunctionThrow(error) |
- // ); |
- var promise = PromiseCastResolved(awaited); |
- |
- var onFulfilled = sentValue => { |
- %_Call(AsyncFunctionNext, generator, sentValue); |
- // The resulting Promise is a throwaway, so it doesn't matter what it |
- // resolves to. What is important is that we don't end up keeping the |
- // whole chain of intermediate Promises alive by returning the value |
- // of AsyncFunctionNext, as that would create a memory leak. |
- return; |
- }; |
- var onRejected = sentError => { |
- %_Call(AsyncFunctionThrow, generator, sentError); |
- // Similarly, returning the huge Promise here would cause a long |
- // resolution chain to find what the exception to throw is, and |
- // create a similar memory leak, and it does not matter what |
- // sort of rejection this intermediate Promise becomes. |
- return; |
- } |
- |
- var throwawayPromise = %promise_internal_constructor(promise); |
- |
- // The Promise will be thrown away and not handled, but it shouldn't trigger |
- // unhandled reject events as its work is done |
- %PromiseMarkAsHandled(throwawayPromise); |
- |
- if (DEBUG_IS_ACTIVE) { |
- if (%is_promise(awaited)) { |
- // Mark the reject handler callback to be a forwarding edge, rather |
- // than a meaningful catch handler |
- SET_PRIVATE(onRejected, promiseForwardingHandlerSymbol, true); |
- } |
- |
- // Mark the dependency to outerPromise in case the throwaway Promise is |
- // found on the Promise stack |
- SET_PRIVATE(throwawayPromise, promiseHandledBySymbol, outerPromise); |
- } |
- |
- %perform_promise_then(promise, onFulfilled, onRejected, throwawayPromise); |
-} |
- |
-// Called by the parser from the desugaring of 'await' when catch |
-// prediction indicates no locally surrounding catch block |
-function AsyncFunctionAwaitUncaught(generator, awaited, outerPromise) { |
- AsyncFunctionAwait(generator, awaited, outerPromise); |
-} |
- |
-// Called by the parser from the desugaring of 'await' when catch |
-// prediction indicates that there is a locally surrounding catch block |
-function AsyncFunctionAwaitCaught(generator, awaited, outerPromise) { |
- if (DEBUG_IS_ACTIVE && %is_promise(awaited)) { |
- %PromiseMarkHandledHint(awaited); |
- } |
- AsyncFunctionAwait(generator, awaited, outerPromise); |
-} |
- |
-%InstallToContext([ |
- "async_function_await_caught", AsyncFunctionAwaitCaught, |
- "async_function_await_uncaught", AsyncFunctionAwaitUncaught, |
-]); |
- |
-}) |