?uem/p1-90`익명 export default 선언의 일부로만 나타날 수 있으므로 해당
대체 의미론은
다음 생성 규칙의 인스턴스를 처리할 때
arguments, super, this 또는 new.target에 대한 로컬 바인딩을 정의하지 않습니다. arguments, super, this 또는 new.target에 대한 모든 참조는 렉시컬하게 둘러싸는 환경의 바인딩으로 해석되어야 합니다. 일반적으로 이는 바로 둘러싸는 함수의 Function Environment입니다. super에 대한 참조를 포함할 수 있더라도 super를 참조하는 super를 구현하는 데 필요한 상태는
yield 바로 뒤의 구문 문맥에서는
익명 export default 선언의 일부로만 나타날 수 있으므로 해당
throw 메서드에서 발생한 예외는 전파됩니다. 내부 throw 메서드의 next와 유사하게 처리됩니다.throw 메서드가 없으면 이 throw는 yield* 반복을 종료합니다. 그러나 먼저 iterator가 정리할 기회를 제공해야 합니다.yield* 프로토콜 위반, 즉 iterator에 throw 메서드가 없음을 나타내기 위해 익명 export default 선언의 일부로만 나타날 수 있습니다.
클래스 정의는 항상
await가 아래에 나열되지 않은 이 명세의 모든 문법 생성 규칙 대안은 암묵적으로 다음과 같은 AllPrivateIdentifiersValid 기본 정의를 갖습니다:
아래에 나열되지 않은 이 명세의 모든 문법 생성 규칙 대안은 암묵적으로 다음과 같은 ContainsArguments 기본 정의를 갖습니다:
명세를 쉽게 작성하기 위해 비공개 메서드와 접근자는 비공개 필드와 함께 클래스 인스턴스의 [[PrivateElements]] 슬롯에 포함됩니다. 그러나 어떤 객체든 특정 클래스에서 정의한 비공개 메서드와 접근자를 모두 가지거나 전혀 가지지 않습니다. 이 기능은 구현체가 각 메서드 또는 접근자를 개별적으로 추적할 필요가 없는 전략을 사용하여 비공개 메서드와 접근자를 구현할 수 있도록 설계되었습니다.
예를 들어 구현체는 인스턴스 비공개 메서드를 대응하는 this 값으로 사용하여 실행되었는지를 추적할 수 있습니다. 그러면 객체에서 인스턴스 비공개 메서드를 조회하는 작업은 해당 메서드를 정의한 클래스
이는 비공개 필드와 다릅니다. 필드 이니셜라이저는 클래스 인스턴스화 중에 예외를 던질 수 있으므로 개별 객체에는 특정 클래스의 비공개 필드 중 일부만 존재할 수 있으며, 따라서 비공개 필드는 일반적으로 개별적으로 추적해야 합니다.
다음 생성 규칙별로 정의된다.
constructor(...args) { super(...args); }와 유사하게 동작합니다. 가장 주목할 만한 차이는 앞서 언급한 %Array.prototype%의 constructor() {}와 유사하게 동작합니다.[Await] 매개변수가 존재하면 await는
await를 식별자로 파싱할 수 있습니다. 여기에는 다음 문맥이 포함됩니다:
다음 생성 규칙의 인스턴스를 처리할 때
call은 특정 소스 텍스트 범위를 나타내는 Parse Node입니다. 다음 알고리즘에서 call을 다른 Parse Node와 비교하는 것은 이들이 동일한 소스 텍스트를 나타내는지 검사하는 것입니다.
잠재적인 꼬리 위치 호출 바로 뒤에 해당 호출 결과의
같은 using 선언 또는 await using 선언은 해당 호출이 가능한 꼬리 위치 호출이 되는 것을 방지합니다.
다음 생성 규칙별로 정의된다.
꼬리 위치 호출은 대상 함수를 호출하기 전에 현재 실행 중인 함수
예를 들어 꼬리 위치 호출은 대상 함수의 활성화 레코드 크기가 호출 함수의 활성화 레코드 크기를 초과하는 양만큼만 구현체의 활성화 레코드 스택을 증가시켜야 합니다. 대상 함수의 활성화 레코드가 더 작으면 스택의 전체 크기는 감소해야 합니다.