?um/p1-90`The syntax-directed operation ContainsExpression takes no arguments and returns 불리언. It is defined piecewise over the following productions:
The syntax-directed operation IsSimpleParameterList takes no arguments and returns 불리언. It is defined piecewise over the following productions:
The syntax-directed operation HasInitializer takes no arguments and returns 불리언. It is defined piecewise over the following productions:
The syntax-directed operation ExpectedArgumentCount takes no arguments and returns 음이 아닌
The syntax-directed operation FunctionBodyContainsUseStrict takes no arguments and returns 불리언. It is defined piecewise over the following productions:
The syntax-directed operation EvaluateFunctionBody takes arguments functionObject (ECMAScript 함수 객체) and argumentsList (ECMAScript 언어 값의 리스트) and returns return 완료 또는 throw 완료. It is defined piecewise over the following productions:
The syntax-directed operation InstantiateOrdinaryFunctionObject takes arguments env (
익명 export default 선언의 일부로만 나타날 수 있으므로, 그
The syntax-directed operation InstantiateOrdinaryFunctionExpression takes optional argument name (프로퍼티 키 또는
다음 생성식의 인스턴스를 처리할 때
The syntax-directed operation ConciseBodyContainsUseStrict takes no arguments and returns 불리언. It is defined piecewise over the following productions:
The syntax-directed operation EvaluateConciseBody takes arguments functionObject (ECMAScript 함수 객체) and argumentsList (ECMAScript 언어 값들의
The syntax-directed operation InstantiateArrowFunctionExpression takes optional argument name (속성 키 또는
arguments, super, this, 또는 new.target에 대한 로컬 바인딩을 정의하지 않는다. arguments, super, this, 또는 new.target에 대한 모든 참조는 렉시컬하게 둘러싸는 환경의 바인딩으로 해석되어야 한다. 일반적으로 이는 바로 둘러싸는 함수의 Function Environment가 된다. super에 대한 참조를 포함할 수 있더라도, 단계 super를 참조하는 super를 구현하는 데 필요한 상태는
The syntax-directed operation HasDirectSuper takes no arguments and returns 불리언. It is defined piecewise over the following productions:
The syntax-directed operation SpecialMethod takes no arguments and returns 불리언. It is defined piecewise over the following productions:
The syntax-directed operation DefineMethod takes argument object (객체) and optional argument functionPrototype (객체) and returns [[Key]](속성 키) 및 [[Closure]](ECMAScript 함수 객체) 필드를 가진
The syntax-directed operation MethodDefinitionEvaluation takes arguments object (an Object) and enumerable (a Boolean) and returns either a
yield 바로 뒤의 구문 컨텍스트는
The syntax-directed operation EvaluateGeneratorBody takes arguments functionObject (ECMAScript 함수 객체) and argumentsList (ECMAScript 언어 값들의
The syntax-directed operation InstantiateGeneratorFunctionObject takes arguments env (
익명 export default 선언의 일부로만 나타날 수 있으며, 따라서 그
The syntax-directed operation InstantiateGeneratorFunctionExpression takes optional argument name (속성 키 또는
throw 메서드에서 발생한 예외는 전파된다. 내부 throw 메서드의 정상 완료는 내부 next와 유사하게 처리된다.throw 메서드가 없으면, 이 throw는 yield* 루프를 종료하게 된다. 그러나 먼저 iterator에게 정리할 기회를 제공해야 한다.throw 메서드가 없다는 yield* 프로토콜 위반을 나타내기 위해 The syntax-directed operation EvaluateAsyncGeneratorBody takes arguments functionObject (ECMAScript 함수 객체) and argumentsList (ECMAScript 언어 값들의
The syntax-directed operation InstantiateAsyncGeneratorFunctionObject takes arguments env (
익명 export default 선언의 일부로만 나타날 수 있다.
The syntax-directed operation InstantiateAsyncGeneratorFunctionExpression takes optional argument name (속성 키 또는
클래스 정의는 항상 엄격 모드 코드이다.
await가 The syntax-directed operation ClassElementKind takes no arguments and returns
The syntax-directed operation ConstructorMethod takes no arguments and returns
The syntax-directed operation IsStatic takes no arguments and returns 불리언. It is defined piecewise over the following productions:
The syntax-directed operation NonConstructorElements takes no arguments and returns
The syntax-directed operation PrototypePropertyNameList takes no arguments and returns 속성 키들의
The syntax-directed operation AllPrivateIdentifiersValid takes argument names (String들의
이 명세에서 아래에 나열되지 않은 모든 문법 생성식 대안은 암시적으로 AllPrivateIdentifiersValid에 대해 다음 기본 정의를 가진다:
The syntax-directed operation PrivateBoundIdentifiers takes no arguments and returns String들의
The syntax-directed operation ContainsArguments takes no arguments and returns 불리언.
이 명세에서 아래에 나열되지 않은 모든 문법 생성식 대안은 암시적으로 ContainsArguments에 대해 다음 기본 정의를 가진다:
The syntax-directed operation ClassFieldDefinitionEvaluation takes argument homeObject (객체) and returns
The syntax-directed operation ClassStaticBlockDefinitionEvaluation takes argument homeObject (객체) and returns
The syntax-directed operation EvaluateClassStaticBlockBody takes argument functionObject (ECMAScript 함수 객체) and returns 반환 완료 또는 던짐 완료. It is defined piecewise over the following productions:
The syntax-directed operation ClassElementEvaluation takes argument object (an Object) and returns either a
The syntax-directed operation ClassDefinitionEvaluation takes arguments classBinding (String 또는
명세의 편의를 위해 private 메서드와 접근자는 클래스 인스턴스의 [[PrivateElements]] 슬롯에서 private 필드와 함께 포함된다. 그러나 주어진 객체는 주어진 클래스가 정의한 private 메서드와 접근자를 모두 가지거나 전혀 가지지 않는다. 이 기능은 구현체가 각 메서드나 접근자를 개별적으로 추적할 필요가 없는 전략을 사용하여 private 메서드와 접근자를 구현할 수 있도록 설계되었다.
예를 들어, 구현체는 인스턴스 private 메서드를 해당 this 값으로 하여 실행되었는지를 추적할 수 있다. 그러면 객체에서 인스턴스 private 메서드를 조회하는 것은 그 메서드를 정의한 클래스 생성자가 해당 객체를 초기화하는 데 사용되었는지 확인한 뒤,
이는 private 필드와 다르다. 필드 초기자는 클래스 인스턴스화 중에 던질 수 있으므로, 개별 객체는 주어진 클래스의 private 필드 중 적절한 부분집합만 가질 수 있으며, 따라서 private 필드는 일반적으로 개별적으로 추적되어야 한다.
It is defined piecewise over the following productions:
constructor(...args) { super(...args); }와 유사하게 동작한다. 가장 주목할 만한 차이점은, 앞서 언급한 %Array.prototype%의 constructor() {}와 유사하게 동작한다.The syntax-directed operation BindingClassDeclarationEvaluation takes no arguments and returns 함수 객체를 포함하는 정상 완료 또는 갑작스러운 완료. It is defined piecewise over the following productions:
[Await] 매개변수가 존재할 때 await는
await는 식별자로 파싱될 수 있다. 여기에는 다음 컨텍스트가 포함된다:
The syntax-directed operation InstantiateAsyncFunctionObject takes arguments env (
The syntax-directed operation InstantiateAsyncFunctionExpression takes optional argument name (속성 키 또는
The syntax-directed operation EvaluateAsyncFunctionBody takes arguments functionObject (ECMAScript 함수 객체) and argumentsList (ECMAScript 언어 값들의
다음 생성식의 인스턴스를 처리할 때
The syntax-directed operation AsyncConciseBodyContainsUseStrict takes no arguments and returns 불리언. It is defined piecewise over the following productions:
The syntax-directed operation EvaluateAsyncConciseBody takes arguments functionObject (ECMAScript 함수 객체) and argumentsList (ECMAScript 언어 값들의
The syntax-directed operation InstantiateAsyncArrowFunctionExpression takes optional argument name (속성 키 또는
The abstract operation IsInTailPosition takes argument call (a
꼬리 위치 호출은 호출자 컨텍스트 체인의 관찰을 가능하게 하는 일반적인 비표준 언어 확장(
The syntax-directed operation HasCallInTailPosition takes argument call (a
호출 결과의
It is defined piecewise over the following productions:
The abstract operation PrepareForTailCall takes no arguments and returns
꼬리 위치 호출은 대상 함수를 호출하기 전에 현재 실행 중인 함수 실행 컨텍스트와 관련된 일시적 내부 자원을 해제하거나, 대상 함수를 지원하기 위해 그 자원을 재사용해야 한다.
예를 들어, 꼬리 위치 호출은 대상 함수의 활성화 레코드 크기가 호출 함수의 활성화 레코드 크기를 초과하는 양만큼만 구현체의 활성화 레코드 스택을 증가시켜야 한다. 대상 함수의 활성화 레코드가 더 작으면, 스택의 전체 크기는 감소해야 한다.