?um/p1-90`인터페이스는 관련 값이 특정 명세와 일치하는 프로퍼티 키의 집합이다. 인터페이스의 명세에 설명된 모든 프로퍼티를 제공하는 모든 객체는 그 인터페이스를 준수한다. 인터페이스는 별개의 객체로 표현되지 않는다. 어떤 인터페이스를 준수하는 객체는 별도로 구현된 것이 많이 있을 수 있다. 개별 객체는 여러 인터페이스를 준수할 수 있다.
iterable 인터페이스는
| 프로퍼티 | 값 | 요구 사항 |
|---|---|---|
%Symbol.iterator%
|
|
반환된 객체는 |
iterator 인터페이스를 구현하는 객체는
| 프로퍼티 | 값 | 요구 사항 |
|---|---|---|
|
|
IteratorResult 객체를 반환하는 함수 |
반환된 객체는 next 메서드에 대한 이전 호출이 next 메서드에 대한 모든 이후 호출도 |
next 함수에 인자를 전달할 수 있지만, 그 해석과 유효성은 대상 iterator에 따라 달라진다. for-of 문과 iterator의 다른 일반적인 사용자는 어떤 인자도 전달하지 않으므로, 그러한 방식으로 사용될 것으로 예상하는 iterator 객체는 인자 없이 호출되는 경우를 처리할 준비가 되어 있어야 한다.
| 프로퍼티 | 값 | 요구 사항 |
|---|---|---|
|
|
IteratorResult 객체를 반환하는 함수 |
반환된 객체는 next 메서드 호출을 할 의도가 없음을 return 메서드의 인자로 전달된 값을 갖는 |
|
|
IteratorResult 객체를 반환하는 함수 |
반환된 객체는 throw하는 것이다. 메서드가 throw하지 않으면, 반환된 IteratorResult 객체는 일반적으로 값이 |
일반적으로 이러한 메서드의 호출자는 호출하기 전에 그 존재 여부를 확인해야 한다. for-of, yield*, 배열 구조 분해를 포함한 특정 ECMAScript 언어 기능은 존재 여부 확인을 수행한 뒤 이러한 메서드를 호출한다.
async iterable 인터페이스는
| 프로퍼티 | 값 | 요구 사항 |
|---|---|---|
%Symbol.asyncIterator% |
반환된 객체는 |
async iterator 인터페이스를 구현하는 객체는
| 프로퍼티 | 값 | 요구 사항 |
|---|---|---|
| IteratorResult 객체에 대한 promise를 반환하는 함수 |
반환된 promise는 이행될 때 추가로, 이행 값으로 쓰이는 IteratorResult 객체는 값이 promise(또는 "thenable")가 아닌 |
next 함수에 인자를 전달할 수 있지만, 그 해석과 유효성은 대상 async iterator에 따라 달라진다. for-await-of 문과 async iterator의 다른 일반적인 사용자는 어떤 인자도 전달하지 않으므로, 그러한 방식으로 사용될 것으로 예상하는 async iterator 객체는 인자 없이 호출되는 경우를 처리할 준비가 되어 있어야 한다.
| 프로퍼티 | 값 | 요구 사항 |
|---|---|---|
| IteratorResult 객체에 대한 promise를 반환하는 함수 |
반환된 promise는 이행될 때 추가로, 이행 값으로 쓰이는 IteratorResult 객체는 값이 promise(또는 "thenable")가 아닌 |
|
| IteratorResult 객체에 대한 promise를 반환하는 함수 |
반환된 promise는 이행될 때 반환된 promise가 이행되면, IteratorResult 객체 이행 값은 일반적으로 값이 |
일반적으로 이러한 메서드의 호출자는 호출하기 전에 그 존재 여부를 확인해야 한다. for-await-of 및 yield*를 포함한 특정 ECMAScript 언어 기능은 존재 여부 확인을 수행한 뒤 이러한 메서드를 호출한다.
IteratorResult 인터페이스는
| 프로퍼티 | 값 | 요구 사항 |
|---|---|---|
|
|
Boolean |
이는 next 메서드 호출의 결과 상태이다. |
|
|
done이 |
Iterator Helper 객체는 어떤 특정 소스
%IteratorHelperPrototype% 객체:
이 프로퍼티는 속성 { [[Writable]]:
Iterator 생성자:
이 함수는 호출될 때 다음 단계를 수행한다:
%WrapForValidIteratorPrototype% 객체:
Iterator.prototype의 초기 값은
이 프로퍼티는 속성 { [[Writable]]:
Iterator prototype object:
이 명세에서
다음 표현식은 ECMAScript 코드가 %Iterator.prototype% 객체에 접근할 수 있는 한 가지 방법이다:
Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]()))
Iterator.prototype.constructor는 속성 { [[Enumerable]]:
[[Get]] 속성의 값은 인자를 필요로 하지 않는 built-in function이다. 호출될 때 다음 단계를 수행한다:
[[Set]] 속성의 값은 인자 v를 받는 built-in function이다. 호출될 때 다음 단계를 수행한다:
대부분의 built-in prototype의
이 메서드는 호출될 때 다음 단계를 수행한다:
이 메서드는 호출될 때 다음 단계를 수행한다:
이 메서드는 호출될 때 다음 단계를 수행한다:
이 메서드는 호출될 때 다음 단계를 수행한다:
이 메서드는 호출될 때 다음 단계를 수행한다:
이 메서드는 호출될 때 다음 단계를 수행한다:
이 메서드는 호출될 때 다음 단계를 수행한다:
이 메서드는 호출될 때 다음 단계를 수행한다:
이 메서드는 호출될 때 다음 단계를 수행한다:
이 메서드는 호출될 때 다음 단계를 수행한다:
이 메서드는 호출될 때 다음 단계를 수행한다:
이 함수는 호출될 때 다음 단계를 수행한다:
이 함수의
Iterator.prototype[%Symbol.toStringTag%]는 속성 { [[Enumerable]]:
[[Get]] 속성의 값은 인자를 필요로 하지 않는 built-in function이다. 호출될 때 다음 단계를 수행한다:
[[Set]] 속성의 값은 인자 v를 받는 built-in function이다. 호출될 때 다음 단계를 수행한다:
대부분의 built-in prototype의
%AsyncIteratorPrototype% 객체:
이 명세에서
이 함수는 호출될 때 다음 단계를 수행한다:
이 함수의
Async-from-Sync Iterator 객체는 특정 동기
The abstract operation CreateAsyncFromSyncIterator takes argument syncIteratorRecord (an
%AsyncFromSyncIteratorPrototype% 객체:
throw 메서드가 없으면, capability를 거부하기 전에 정리할 기회를 주기 위해 이를 닫는다.throw 메서드가 없다.Async-from-Sync
| 내부 슬롯 | 타입 | 설명 |
|---|---|---|
| [[SyncIteratorRecord]] |
|
적응 중인 원래 동기 |
The abstract operation AsyncFromSyncIteratorContinuation takes arguments result (an Object), promiseCapability (a PromiseCapability
Promise는 지연된(그리고 가능하게는 비동기적인) 계산의 최종 결과를 위한 자리표시자로 사용되는 객체이다.
모든 Promise는 서로 배타적인 세 상태 중 하나에 있다: fulfilled, rejected, 그리고 pending:
p는 p.then(f, r)이 함수 f를 호출하는 p는 p.then(f, r)이 함수 r을 호출하는 promise는 pending이 아니면, 즉 fulfilled이거나 rejected이면 settled되었다고 한다.
promise는 settled되었거나 다른 promise의 상태와 일치하도록 “고정”되었다면 resolved되었다. resolved promise를 resolve하거나 reject하려는 시도는 아무 효과가 없다. promise는 resolved가 아니면 unresolved이다. unresolved promise는 항상 pending 상태에 있다. resolved promise는 pending, fulfilled 또는 rejected일 수 있다.
PromiseCapability 레코드는 Promise 또는 promise-like 객체를 그 promise를 resolve하거나 reject할 수 있는 함수들과 함께 캡슐화하는 데 사용되는
PromiseCapability 레코드는
| 필드 이름 | 값 | 의미 |
|---|---|---|
| [[Promise]] | Object | promise로 사용할 수 있는 객체. |
| [[Resolve]] | 함수 객체 | 주어진 promise를 resolve하는 데 사용되는 함수. |
| [[Reject]] | 함수 객체 | 주어진 promise를 reject하는 데 사용되는 함수. |
IfAbruptRejectPromise는
는 다음과 같은 의미이다:
PromiseReaction 레코드는 promise가 주어진 값으로 resolved 또는 rejected될 때 어떻게 반응해야 하는지에 대한 정보를 저장하는 데 사용되는
PromiseReaction 레코드는
| 필드 이름 | 값 | 의미 |
|---|---|---|
| [[Capability]] |
|
이 레코드가 reaction handler를 제공하는 promise의 capability. |
| [[Type]] |
|
[[Type]]은 [[Handler]]가 |
| [[Handler]] |
JobCallback 레코드 또는 |
들어오는 값에 적용되어야 하는 함수이며, 그 반환 값은 파생 promise에 일어날 일을 결정한다. [[Handler]]가 |
The abstract operation CreateResolvingFunctions takes argument toResolve (a Promise) and returns a
The abstract operation FulfillPromise takes arguments promise (a Promise) and value (an ECMAScript language value) and returns
The abstract operation NewPromiseCapability takes argument constructor (an ECMAScript language value) and returns either a resolve와 reject 함수를 추출하려 시도한다. promise와 resolve 및 reject 함수는 새로운
이
The abstract operation IsPromise takes argument value (an ECMAScript language value) and returns a Boolean. 객체에서 promise brand를 확인한다. It performs the following steps when called:
The abstract operation RejectPromise takes arguments promise (a Promise) and reason (an ECMAScript language value) and returns
The abstract operation TriggerPromiseReactions takes arguments reactions (a
The host-defined abstract operation HostPromiseRejectionTracker takes arguments promise (a Promise) and operation (
HostPromiseRejectionTracker의 기본 구현은
HostPromiseRejectionTracker는 두 시나리오에서 호출된다:
HostPromiseRejectionTracker의 전형적인 구현은 처리되지 않은 rejection을 개발자에게 알리려 할 수 있으며, 동시에 그런 이전 알림이 나중에 새로운 handler의 연결로 무효화되는 경우에도 알리도록 주의할 수 있다.
operation이
The abstract operation NewPromiseReactionJob takes arguments reaction (a PromiseReaction
The abstract operation NewPromiseResolveThenableJob takes arguments promiseToResolve (a Promise), thenable (an Object), and then (a
Promise 생성자:
extends 절에서 값으로 사용될 수 있다. 지정된 Promise 동작을 상속하려는 서브클래스 생성자는 Promise 및 Promise.prototype built-in 메서드를 지원하는 데 필요한 내부 상태로 서브클래스 인스턴스를 생성하고 초기화하기 위해 Promise 생성자에 대한 super 호출을 포함해야 한다.이 함수는 호출될 때 다음 단계를 수행한다:
executor 인자는 함수 객체여야 한다. 이 Promise가 나타내는, 가능하게는 지연된 동작의 시작과 완료 보고를 위해 호출된다. executor는 두 인자 resolve와 reject로 호출된다. 이들은 executor 함수가 지연된 계산의 최종 완료 또는 실패를 보고하기 위해 사용할 수 있는 함수이다. executor 함수에서 반환된다는 것은 지연된 동작이 완료되었다는 뜻이 아니라, 결국 그 지연된 동작을 수행하라는 요청이 수락되었다는 뜻일 뿐이다.
executor 함수에 전달되는 resolve 함수는 단일 인자를 받는다. executor 코드는 결국 관련 Promise를 resolve하고자 함을 나타내기 위해 resolve 함수를 호출할 수 있다. resolve 함수에 전달된 인자는 지연된 동작의 최종 값을 나타내며, 실제 fulfillment 값이거나 fulfilled되면 그 값을 제공할 다른 promise일 수 있다.
executor 함수에 전달되는 reject 함수는 단일 인자를 받는다. executor 코드는 결국 관련 Promise가 rejected되며 결코 fulfilled되지 않을 것임을 나타내기 위해 reject 함수를 호출할 수 있다. reject 함수에 전달된 인자는 promise의 rejection 값으로 사용된다. 일반적으로 Error 객체가 된다.
Promise 생성자가 executor 함수에 전달하는 resolve 및 reject 함수는 실제로 관련 promise를 resolve하고 reject할 수 있는 capability를 가진다. 서브클래스는 resolve 및 reject에 대해 사용자 정의 값을 전달하는 다른 생성자 동작을 가질 수 있다.
Promise 생성자:
이 함수는 전달된 promise들의 fulfillment 값 배열로 fulfilled되는 새 promise를 반환하거나, rejected되는 첫 번째 전달 promise의 reason으로 rejected된다. 이 알고리즘을 실행하면서 전달된
이 함수는 자신의
The abstract operation GetPromiseResolve takes argument promiseConstructor (a
The abstract operation PerformPromiseAll takes arguments iteratorRecord (an
이 함수는 모든 원래 promise가 settled, 즉 fulfilled 또는 rejected가 된 뒤에야 promise 상태 snapshot의 배열로 fulfilled되는 promise를 반환한다. 이 알고리즘을 실행하면서 전달된
이 함수는 자신의
The abstract operation PerformPromiseAllSettled takes arguments iteratorRecord (an
이 함수는 주어진 promise 중 처음으로 fulfilled되는 promise에 의해 fulfilled되거나, 주어진 promise가 모두 rejected되면 rejection reason들을 담은 AggregateError로 rejected되는 promise를 반환한다. 이 알고리즘을 실행하면서 전달된
이 함수는 자신의 Promise 생성자의 매개변수 관례를 지원하는 생성자 함수일 것을 요구한다.
The abstract operation PerformPromiseAny takes arguments iteratorRecord (an
Promise.prototype의 초기 값은
이 프로퍼티는 속성 { [[Writable]]:
이 함수는 settled되는 첫 번째 전달 promise와 같은 방식으로 settled되는 새 promise를 반환한다. 이 알고리즘을 실행하면서 전달된 iterable의 모든 요소를 promise로 resolve한다.
iterable 인자가 어떤 값도 산출하지 않거나 iterable이 산출한 어떤 promise도 결코 settle되지 않으면, 이 메서드가 반환한 pending promise는 결코 settled되지 않는다.
이 함수는 자신의 resolve 메서드를 제공할 것을 기대한다.
The abstract operation PerformPromiseRace takes arguments iteratorRecord (an
이 함수는 전달된 인자로 rejected된 새 promise를 반환한다.
이 함수는 자신의
이 함수는 전달된 인자로 resolved된 새 promise를 반환하거나, 인자가 이 생성자에 의해 생성된 promise이면 인자 자체를 반환한다.
이 함수는 자신의
The abstract operation PromiseResolve takes arguments constructor (an Object) and resolution (an ECMAScript language value) and returns either a
이 함수는 호출될 때 다음 단계를 수행한다:
이 함수는 자신의
이 함수는 새 promise와 그와 관련된 resolve 및 reject 함수를 함께 포함하는 세 프로퍼티를 가진 객체를 반환한다.
Promise[%Symbol.species%]는 set accessor function이
이 함수의
Promise prototype 메서드는 일반적으로 파생 객체를 생성하기 위해 자신의
Promise prototype object:
이 메서드는 호출될 때 다음 단계를 수행한다:
Promise.prototype.constructor의 초기 값은
이 메서드는 호출될 때 다음 단계를 수행한다:
이 메서드는 호출될 때 다음 단계를 수행한다:
The abstract operation PerformPromiseThen takes arguments promise (a Promise), onFulfilled (an ECMAScript language value), and onRejected (an ECMAScript language value) and optional argument resultCapability (a PromiseCapability
이 프로퍼티는 속성 { [[Writable]]:
Promise 인스턴스는
| 내부 슬롯 | 타입 | 설명 |
|---|---|---|
| [[PromiseState]] |
|
promise가 자신의 then 메서드에 들어오는 호출에 어떻게 반응할지를 지배한다.
|
| [[PromiseResult]] |
promise가 fulfilled 또는 rejected된 값(있는 경우). [[PromiseState]]가 |
|
| [[PromiseFulfillReactions]] |
|
promise가 |
| [[PromiseRejectReactions]] |
|
promise가 |
| [[PromiseIsHandled]] | Boolean | promise가 fulfillment 또는 rejection handler를 가진 적이 있는지 여부를 나타내며, unhandled rejection 추적에 사용된다. |
GeneratorFunction은 보통
GeneratorFunction 생성자:
Function의 서브클래스이다.GeneratorFunction (…)은 같은 인자를 가진 객체 생성 표현식 new GeneratorFunction (…)과 동등하다.extends 절의 값으로 사용될 수 있다. 지정된 GeneratorFunction 동작을 상속하려는 서브클래스 생성자는 built-in GeneratorFunction 동작에 필요한 내부 슬롯으로 서브클래스 인스턴스를 생성하고 초기화하기 위해 GeneratorFunction 생성자에 대한 super 호출을 포함해야 한다. generator function 객체를 정의하는 모든 ECMAScript 구문 형식은 GeneratorFunction의 직접 인스턴스를 생성한다. GeneratorFunction 서브클래스의 인스턴스를 생성하는 구문적 수단은 없다.마지막 인자(있는 경우)는 generator function의 본문(실행 가능한 코드)을 지정하며, 그 앞의 모든 인자는 형식 매개변수를 지정한다.
이 함수는 호출될 때 다음 단계를 수행한다:
GeneratorFunction 생성자:
GeneratorFunction.prototype의 초기 값은
이 프로퍼티는 속성 { [[Writable]]:
GeneratorFunction prototype object:
GeneratorFunction.prototype.constructor의 초기 값은
이 프로퍼티는 속성 { [[Writable]]:
GeneratorFunction.prototype.prototype의 초기 값은
이 프로퍼티는 속성 { [[Writable]]:
이 프로퍼티는 속성 { [[Writable]]:
모든 GeneratorFunction 인스턴스는 ECMAScript
각 GeneratorFunction 인스턴스는 다음 own 프로퍼티를 가진다:
GeneratorFunction 인스턴스가 생성될 때마다 또 다른
이 프로퍼티는 속성 { [[Writable]]:
Function 인스턴스와 달리, GeneratorFunction의
AsyncGeneratorFunction은 보통
AsyncGeneratorFunction 생성자:
Function의 서브클래스이다.AsyncGeneratorFunction (...)은 같은 인자를 가진 객체 생성 표현식 new AsyncGeneratorFunction (...)과 동등하다.extends 절의 값으로 사용될 수 있다. 지정된 AsyncGeneratorFunction 동작을 상속하려는 서브클래스 생성자는 built-in AsyncGeneratorFunction 동작에 필요한 내부 슬롯으로 서브클래스 인스턴스를 생성하고 초기화하기 위해 AsyncGeneratorFunction 생성자에 대한 super 호출을 포함해야 한다. async generator function 객체를 정의하는 모든 ECMAScript 구문 형식은 AsyncGeneratorFunction의 직접 인스턴스를 생성한다. AsyncGeneratorFunction 서브클래스의 인스턴스를 생성하는 구문적 수단은 없다.마지막 인자(있는 경우)는 async generator function의 본문(실행 가능한 코드)을 지정하며, 그 앞의 모든 인자는 형식 매개변수를 지정한다.
이 함수는 호출될 때 다음 단계를 수행한다:
AsyncGeneratorFunction 생성자:
AsyncGeneratorFunction.prototype의 초기 값은
이 프로퍼티는 속성 { [[Writable]]:
AsyncGeneratorFunction prototype object:
AsyncGeneratorFunction.prototype.constructor의 초기 값은
이 프로퍼티는 속성 { [[Writable]]:
AsyncGeneratorFunction.prototype.prototype의 초기 값은
이 프로퍼티는 속성 { [[Writable]]:
이 프로퍼티는 속성 { [[Writable]]:
모든 AsyncGeneratorFunction 인스턴스는 ECMAScript
각 AsyncGeneratorFunction 인스턴스는 다음 own 프로퍼티를 가진다:
이 프로퍼티는 속성 { [[Writable]]:
AsyncGeneratorFunction 인스턴스가 생성될 때마다 또 다른
이 프로퍼티는 속성 { [[Writable]]:
function 인스턴스와 달리, AsyncGeneratorFunction의
Generator는 generator function을 호출하여 생성되며
Generator 인스턴스는 그 인스턴스를 생성한 generator function의
%GeneratorPrototype% 객체:
.constructor의 초기 값은
이 프로퍼티는 속성 { [[Writable]]:
이 메서드는 호출될 때 다음 단계를 수행한다:
이 메서드는 호출될 때 다음 단계를 수행한다:
이 프로퍼티는 속성 { [[Writable]]:
Generator 인스턴스는 처음에
| 내부 슬롯 | 타입 | 설명 |
|---|---|---|
| [[GeneratorState]] |
|
generator의 현재 실행 상태. |
| [[GeneratorContext]] |
|
이 generator의 코드를 실행할 때 사용되는 |
| [[GeneratorBrand]] |
String 또는 |
서로 다른 종류의 generator를 구별하는 데 사용되는 brand. |
The abstract operation GeneratorStart takes arguments generator (a Generator) and generatorBody (a
The abstract operation GeneratorValidate takes arguments generator (an ECMAScript language value) and generatorBrand (a String or
The abstract operation GeneratorResume takes arguments generator (an ECMAScript language value), value (an ECMAScript language value or
The abstract operation GeneratorResumeAbrupt takes arguments generator (an ECMAScript language value), abruptCompletion (a
The abstract operation GetGeneratorKind takes no arguments and returns
The abstract operation GeneratorYield takes argument iteratorResult (an Object that conforms to the IteratorResult interface) and returns either a
The abstract operation Yield takes argument value (an ECMAScript language value) and returns either a
The abstract operation CreateIteratorFromClosure takes arguments closure (an
AsyncGenerator는 async generator function을 호출하여 생성되며
AsyncGenerator 인스턴스는 그 인스턴스를 생성한 async generator function의
%AsyncGeneratorPrototype% 객체:
.constructor의 초기 값은
이 프로퍼티는 속성 { [[Writable]]:
이 프로퍼티는 속성 { [[Writable]]:
AsyncGenerator 인스턴스는 처음에 아래에 설명된 내부 슬롯을 가지고 생성된다:
| 내부 슬롯 | 타입 | 설명 |
|---|---|---|
| [[AsyncGeneratorState]] | async generator의 현재 실행 상태. | |
| [[AsyncGeneratorContext]] | 이 async generator의 코드를 실행할 때 사용되는 |
|
| [[AsyncGeneratorQueue]] | async generator를 재개하기 위한 요청을 나타내는 레코드. 상태 전환 중을 제외하면, [[AsyncGeneratorState]]가 |
|
| [[GeneratorBrand]] | String 또는 |
서로 다른 종류의 async generator를 구별하는 데 사용되는 brand. |
AsyncGeneratorRequest는 async generator가 어떻게 재개되어야 하는지에 대한 정보를 저장하고 해당 promise를 fulfill하거나 reject하기 위한 capability를 포함하는 데 사용되는
다음 필드를 가진다:
| 필드 이름 | 값 | 의미 |
|---|---|---|
| [[Completion]] | async generator를 재개하는 데 사용되어야 하는 |
|
| [[Capability]] | 이 요청과 관련된 promise capability. |
The abstract operation AsyncGeneratorStart takes arguments generator (an AsyncGenerator) and generatorBody (a
The abstract operation AsyncGeneratorValidate takes arguments generator (an ECMAScript language value) and generatorBrand (a String or
The abstract operation AsyncGeneratorEnqueue takes arguments generator (an AsyncGenerator), completion (a
The abstract operation AsyncGeneratorCompleteStep takes arguments generator (an AsyncGenerator), completion (a
The abstract operation AsyncGeneratorResume takes arguments generator (an AsyncGenerator) and completion (a
The abstract operation AsyncGeneratorUnwrapYieldResumption takes argument resumptionValue (a
The abstract operation AsyncGeneratorYield takes argument value (an ECMAScript language value) and returns either a
The abstract operation AsyncGeneratorAwaitReturn takes argument generator (an AsyncGenerator) and returns
The abstract operation AsyncGeneratorDrainQueue takes argument generator (an AsyncGenerator) and returns
AsyncFunction은 보통
AsyncFunction 생성자:
Function의 서브클래스이다.AsyncFunction(…)은 같은 인자를 가진 객체 생성 표현식 new AsyncFunction(…)과 동등하다.extends 절의 값으로 사용될 수 있다. 지정된 AsyncFunction 동작을 상속하려는 서브클래스 생성자는 built-in async function 동작에 필요한 내부 슬롯으로 서브클래스 인스턴스를 생성하고 초기화하기 위해 AsyncFunction 생성자에 대한 super 호출을 포함해야 한다. async function 객체를 정의하는 모든 ECMAScript 구문 형식은 AsyncFunction의 직접 인스턴스를 생성한다. AsyncFunction 서브클래스의 인스턴스를 생성하는 구문적 수단은 없다.마지막 인자(있는 경우)는 async function의 본문(실행 가능한 코드)을 지정한다. 그 앞의 모든 인자는 형식 매개변수를 지정한다.
이 함수는 호출될 때 다음 단계를 수행한다:
AsyncFunction 생성자:
AsyncFunction.prototype의 초기 값은
이 프로퍼티는 속성 { [[Writable]]:
AsyncFunction prototype object:
AsyncFunction.prototype.constructor의 초기 값은
이 프로퍼티는 속성 { [[Writable]]:
이 프로퍼티는 속성 { [[Writable]]:
모든 AsyncFunction 인스턴스는 ECMAScript
각 AsyncFunction 인스턴스는 다음 own 프로퍼티를 가진다:
The abstract operation AsyncFunctionStart takes arguments promiseCapability (a PromiseCapability
The abstract operation AsyncBlockStart takes arguments promiseCapability (a PromiseCapability
The abstract operation Await takes argument value (an ECMAScript language value) and returns either a