Bu bölüm, Ek B.3.5 ile genişletilmiştir.
ContinueStatement ContinueStatement : continue ;
false döndür.
ContinueStatement ContinueStatement : continue LabelIdentifier ;
Eğer iterationSet, LabelIdentifier'ın StringValue değerini içeriyorsa, false döndür.
true döndür.
WithStatement WithStatement : with ( Expression ) Statement
- Statement'in iterationSet ve « » argümanlarıyla ContainsUndefinedContinueTarget değerini döndür.
SwitchStatement SwitchStatement : switch ( Expression ) CaseBlock
- CaseBlock'ın iterationSet ve « » argümanlarıyla ContainsUndefinedContinueTarget değerini döndür.
CaseBlock CaseBlock : { }
false döndür.
CaseBlock CaseBlock : { CaseClausesopt DefaultClause CaseClausesopt }
Eğer ilk CaseClauses mevcutsa, o zaman
- Eğer ilk CaseClauses'in iterationSet ve « » argümanlarıyla ContainsUndefinedContinueTarget değeri
true ise, true döndür.
Eğer DefaultClause'un iterationSet ve « » argümanlarıyla ContainsUndefinedContinueTarget değeri true ise, true döndür.
Eğer ikinci CaseClauses mevcut değilse, false döndür.
İkinci CaseClauses'in iterationSet ve « » argümanlarıyla ContainsUndefinedContinueTarget değerini döndür.
CaseClauses CaseClauses : CaseClauses CaseClause
hasUndefinedLabels, CaseClauses'in iterationSet ve « » argümanlarıyla ContainsUndefinedContinueTarget değeri olsun.
Eğer hasUndefinedLabels true ise, true döndür.
CaseClause'un iterationSet ve « » argümanlarıyla ContainsUndefinedContinueTarget değerini döndür.
CaseClause CaseClause : case Expression : StatementListopt
Eğer StatementList mevcutsa, StatementList'in iterationSet ve « » argümanlarıyla ContainsUndefinedContinueTarget değerini döndür.
false döndür.
DefaultClause DefaultClause : default : StatementListopt
Eğer StatementList mevcutsa, StatementList'in iterationSet ve « » argümanlarıyla ContainsUndefinedContinueTarget değerini döndür.
false döndür.
LabelledStatement LabelledStatement : LabelIdentifier : LabelledItem
label, LabelIdentifier'ın StringValue değeri olsun.
newLabelSet, labelSet ile « label »'ın liste birleştirmesi olsun.
LabelledItem'in iterationSet ve newLabelSet argümanlarıyla ContainsUndefinedContinueTarget değerini döndür.
LabelledItem LabelledItem : FunctionDeclaration
false döndür.
TryStatement TryStatement : try Block Catch
hasUndefinedLabels, Block'ın iterationSet ve « » argümanlarıyla ContainsUndefinedContinueTarget değeri olsun.
Eğer hasUndefinedLabels true ise, true döndür.
Catch'in iterationSet ve « » argümanlarıyla ContainsUndefinedContinueTarget değerini döndür.
TryStatement TryStatement : try Block Finally
hasUndefinedLabels, Block'ın iterationSet ve « » argümanlarıyla ContainsUndefinedContinueTarget değeri olsun.
Eğer hasUndefinedLabels true ise, true döndür.
Finally'nin iterationSet ve « » argümanlarıyla ContainsUndefinedContinueTarget değerini döndür.
TryStatement TryStatement : try Block Catch Finally
Eğer Block'ın iterationSet ve « » argümanlarıyla ContainsUndefinedContinueTarget değeri true ise, true döndür.
Eğer Catch'in iterationSet ve « » argümanlarıyla ContainsUndefinedContinueTarget değeri true ise, true döndür.
Finally'nin iterationSet ve « » argümanlarıyla ContainsUndefinedContinueTarget değerini döndür.
Catch Catch : catch ( CatchParameter ) Block
- Block'ın iterationSet ve « » argümanlarıyla ContainsUndefinedContinueTarget değerini döndür.
FunctionStatementList FunctionStatementList : [empty]
false döndür.
ClassStaticBlockStatementList ClassStaticBlockStatementList : [empty]
false döndür.
ModuleItemList ModuleItemList : ModuleItemList ModuleItem
hasUndefinedLabels, ModuleItemList'in iterationSet ve « » argümanlarıyla ContainsUndefinedContinueTarget değeri olsun.
Eğer hasUndefinedLabels true ise, true döndür.
ModuleItem'nin iterationSet ve « » argümanlarıyla ContainsUndefinedContinueTarget değerini döndür.
ModuleItem ModuleItem : ImportDeclaration ExportDeclaration
false döndür.
#8.4 İşlev Adı Çıkarımı
#8.4.1 Statik Anlambilim: HasName
Sözdizimi yönelimli işlem HasName hiçbir argüman almaz ve bir Boolean döndürür. Aşağıdaki üretimler üzerinde parça parça tanımlanmıştır:
PrimaryExpression PrimaryExpression : CoverParenthesizedExpressionAndArrowParameterList
expr, CoverParenthesizedExpressionAndArrowParameterList tarafından kapsanan ParenthesizedExpression olsun.
Eğer expr'in IsFunctionDefinition değeri false ise, false döndür.
expr'in HasName değerini döndür.
FunctionExpression FunctionExpression : function ( FormalParameters ) { FunctionBody }
GeneratorExpression GeneratorExpression : function ***** ( FormalParameters ) { GeneratorBody }
AsyncGeneratorExpression AsyncGeneratorExpression : async function ***** ( FormalParameters ) { AsyncGeneratorBody }
AsyncFunctionExpression AsyncFunctionExpression : async function ( FormalParameters ) { AsyncFunctionBody }
ArrowFunction ArrowFunction : ArrowParameters => ConciseBody
AsyncArrowFunction AsyncArrowFunction : async AsyncArrowBindingIdentifier => AsyncConciseBody CoverCallExpressionAndAsyncArrowHead => AsyncConciseBody
ClassExpression ClassExpression : class ClassTail
false döndür.
FunctionExpression FunctionExpression : function BindingIdentifier ( FormalParameters ) { FunctionBody }
GeneratorExpression GeneratorExpression : function ***** BindingIdentifier ( FormalParameters ) { GeneratorBody }
AsyncGeneratorExpression AsyncGeneratorExpression : async function ***** BindingIdentifier ( FormalParameters ) { AsyncGeneratorBody }
AsyncFunctionExpression AsyncFunctionExpression : async function BindingIdentifier ( FormalParameters ) { AsyncFunctionBody }
ClassExpression ClassExpression : class BindingIdentifier ClassTail
true döndür.
#8.4.2 Statik Anlambilim: IsFunctionDefinition
Sözdizimi yönelimli işlem IsFunctionDefinition hiçbir argüman almaz ve bir Boolean döndürür. Aşağıdaki üretimler üzerinde parça parça tanımlanmıştır:
PrimaryExpression PrimaryExpression : CoverParenthesizedExpressionAndArrowParameterList
expr, CoverParenthesizedExpressionAndArrowParameterList tarafından kapsanan ParenthesizedExpression olsun.
expr'in IsFunctionDefinition değerini döndür.
PrimaryExpression PrimaryExpression : this IdentifierReference Literal ArrayLiteral ObjectLiteral RegularExpressionLiteral TemplateLiteral
MemberExpression MemberExpression : MemberExpression [ Expression ] MemberExpression . IdentifierName MemberExpression TemplateLiteral SuperProperty MetaProperty new MemberExpression Arguments MemberExpression . PrivateIdentifier
NewExpression NewExpression : new NewExpression
LeftHandSideExpression LeftHandSideExpression : CallExpression OptionalExpression
UpdateExpression UpdateExpression : LeftHandSideExpression ++ LeftHandSideExpression -- ++ UnaryExpression -- UnaryExpression
UnaryExpression UnaryExpression : delete UnaryExpression void UnaryExpression typeof UnaryExpression + UnaryExpression - UnaryExpression ~ UnaryExpression ! UnaryExpression AwaitExpression
ExponentiationExpression ExponentiationExpression : UpdateExpression ****** ExponentiationExpression
MultiplicativeExpression MultiplicativeExpression : MultiplicativeExpression MultiplicativeOperator ExponentiationExpression
AdditiveExpression AdditiveExpression : AdditiveExpression + MultiplicativeExpression AdditiveExpression - MultiplicativeExpression
ShiftExpression ShiftExpression : ShiftExpression <<** *AdditiveExpression* *ShiftExpression* **>> AdditiveExpression ShiftExpression >>> AdditiveExpression
RelationalExpression RelationalExpression : RelationalExpression <** *ShiftExpression* *RelationalExpression* **> ShiftExpression RelationalExpression <=** *ShiftExpression* *RelationalExpression* **>= ShiftExpression RelationalExpression instanceof ShiftExpression RelationalExpression in ShiftExpression PrivateIdentifier in ShiftExpression
EqualityExpression EqualityExpression : EqualityExpression == RelationalExpression EqualityExpression != RelationalExpression EqualityExpression === RelationalExpression EqualityExpression !== RelationalExpression
BitwiseANDExpression BitwiseANDExpression : BitwiseANDExpression & EqualityExpression
BitwiseXORExpression BitwiseXORExpression : BitwiseXORExpression ^ BitwiseANDExpression
BitwiseORExpression BitwiseORExpression : BitwiseORExpression | BitwiseXORExpression
LogicalANDExpression LogicalANDExpression : LogicalANDExpression && BitwiseORExpression
LogicalORExpression LogicalORExpression : LogicalORExpression || LogicalANDExpression
CoalesceExpression CoalesceExpression : CoalesceExpressionHead ?? BitwiseORExpression
ConditionalExpression ConditionalExpression : ShortCircuitExpression ? AssignmentExpression : AssignmentExpression
AssignmentExpression AssignmentExpression : YieldExpression LeftHandSideExpression = AssignmentExpression LeftHandSideExpression AssignmentOperator AssignmentExpression LeftHandSideExpression &&= AssignmentExpression LeftHandSideExpression ||= AssignmentExpression LeftHandSideExpression ??= AssignmentExpression
Expression Expression : Expression , AssignmentExpression
false döndür.
AssignmentExpression AssignmentExpression : ArrowFunction AsyncArrowFunction
FunctionExpression FunctionExpression : function BindingIdentifieropt ( FormalParameters ) { FunctionBody }
GeneratorExpression GeneratorExpression : function ***** BindingIdentifieropt ( FormalParameters ) { GeneratorBody }
AsyncGeneratorExpression AsyncGeneratorExpression : async function ***** BindingIdentifieropt ( FormalParameters ) { AsyncGeneratorBody }
AsyncFunctionExpression AsyncFunctionExpression : async function BindingIdentifieropt ( FormalParameters ) { AsyncFunctionBody }
ClassExpression ClassExpression : class BindingIdentifieropt ClassTail
true döndür.
#8.4.3 Statik Anlambilim: IsAnonymousFunctionDefinition ( expr )
Soyut işlem IsAnonymousFunctionDefinition, expr (bir AssignmentExpression Parse Node, bir Initializer Parse Node veya bir Expression Parse Node) argümanını alır ve bir Boolean döndürür. Argümanının, bir ad bağlamayan bir işlev tanımı olup olmadığını belirler. Çağrıldığında aşağıdaki adımları gerçekleştirir:
Eğer expr'in IsFunctionDefinition değeri false ise, false döndür.
hasName, expr'in HasName değeri olsun.
Eğer hasName true ise, false döndür.
true döndür.
#8.4.4 Statik Anlambilim: IsIdentifierRef
Sözdizimi yönelimli işlem IsIdentifierRef hiçbir argüman almaz ve bir Boolean döndürür. Aşağıdaki üretimler üzerinde parça parça tanımlanmıştır:
PrimaryExpression PrimaryExpression : IdentifierReference
true döndür.
PrimaryExpression PrimaryExpression : this Literal ArrayLiteral ObjectLiteral FunctionExpression ClassExpression GeneratorExpression AsyncFunctionExpression AsyncGeneratorExpression RegularExpressionLiteral TemplateLiteral CoverParenthesizedExpressionAndArrowParameterList
MemberExpression MemberExpression : MemberExpression [ Expression ] MemberExpression . IdentifierName MemberExpression TemplateLiteral SuperProperty MetaProperty new MemberExpression Arguments MemberExpression . PrivateIdentifier
NewExpression NewExpression : new NewExpression
LeftHandSideExpression LeftHandSideExpression : CallExpression OptionalExpression
false döndür.
#8.4.5 Çalışma Zamanı Anlambilimi: NamedEvaluation
Sözdizimi yönelimli işlem NamedEvaluation, name (bir özellik anahtarı veya bir Private Name) argümanını alır ve ya bir işlev nesnesi içeren normal tamamlanma ya da bir ani tamamlanma döndürür. Aşağıdaki üretimler üzerinde parça parça tanımlanmıştır:
PrimaryExpression PrimaryExpression : CoverParenthesizedExpressionAndArrowParameterList
expr, CoverParenthesizedExpressionAndArrowParameterList tarafından kapsanan ParenthesizedExpression olsun.
? expr'in name argümanıyla NamedEvaluation değerini döndür.
ParenthesizedExpression ParenthesizedExpression : ( Expression )
Assert: IsAnonymousFunctionDefinition(Expression) true'dur.
? Expression'in name argümanıyla NamedEvaluation değerini döndür.
FunctionExpression FunctionExpression : function ( FormalParameters ) { FunctionBody }
- FunctionExpression'in name argümanıyla InstantiateOrdinaryFunctionExpression değerini döndür.
GeneratorExpression GeneratorExpression : function ***** ( FormalParameters ) { GeneratorBody }
- GeneratorExpression'in name argümanıyla InstantiateGeneratorFunctionExpression değerini döndür.
AsyncGeneratorExpression AsyncGeneratorExpression : async function ***** ( FormalParameters ) { AsyncGeneratorBody }
- AsyncGeneratorExpression'in name argümanıyla InstantiateAsyncGeneratorFunctionExpression değerini döndür.
AsyncFunctionExpression AsyncFunctionExpression : async function ( FormalParameters ) { AsyncFunctionBody }
- AsyncFunctionExpression'in name argümanıyla InstantiateAsyncFunctionExpression değerini döndür.
ArrowFunction ArrowFunction : ArrowParameters => ConciseBody
- ArrowFunction'un name argümanıyla InstantiateArrowFunctionExpression değerini döndür.
AsyncArrowFunction AsyncArrowFunction : async AsyncArrowBindingIdentifier => AsyncConciseBody CoverCallExpressionAndAsyncArrowHead => AsyncConciseBody
- AsyncArrowFunction'un name argümanıyla InstantiateAsyncArrowFunctionExpression değerini döndür.
ClassExpression ClassExpression : class ClassTail
sourceText, ClassExpression tarafından eşleşen kaynak metin olsun.
? ClassTail'in undefined, name ve sourceText argümanlarıyla ClassDefinitionEvaluation değerini döndür.
#8.5 İçerme
#8.5.1 Statik Anlambilim: Contains
Sözdizimi yönelimli işlem Contains, symbol (bir dilbilgisi sembolü) argümanını alır ve bir Boolean döndürür.
Bu belirtimde aşağıda listelenmeyen her dilbilgisi üretim alternatifi, örtük olarak şu varsayılan Contains tanımına sahiptir:
Bu Parse Node'un her child alt düğümü için,
Eğer child, symbol'ün bir örneğiyse, true döndür.
Eğer child bir uçolmayan örneğiyse, o zaman
contained, child'ın symbol'ü Contains işleminin sonucu olsun.
Eğer contained true ise, true döndür.
false döndür.
FunctionDeclaration FunctionDeclaration : function BindingIdentifier ( FormalParameters ) { FunctionBody } function ( FormalParameters ) { FunctionBody }
FunctionExpression FunctionExpression : function BindingIdentifieropt ( FormalParameters ) { FunctionBody }
GeneratorDeclaration GeneratorDeclaration : function ***** BindingIdentifier ( FormalParameters ) { GeneratorBody } function ***** ( FormalParameters ) { GeneratorBody }
GeneratorExpression GeneratorExpression : function ***** BindingIdentifieropt ( FormalParameters ) { GeneratorBody }
AsyncGeneratorDeclaration AsyncGeneratorDeclaration : async function ***** BindingIdentifier ( FormalParameters ) { AsyncGeneratorBody } async function ***** ( FormalParameters ) { AsyncGeneratorBody }
AsyncGeneratorExpression AsyncGeneratorExpression : async function ***** BindingIdentifieropt ( FormalParameters ) { AsyncGeneratorBody }
AsyncFunctionDeclaration AsyncFunctionDeclaration : async function BindingIdentifier ( FormalParameters ) { AsyncFunctionBody } async function ( FormalParameters ) { AsyncFunctionBody }
AsyncFunctionExpression AsyncFunctionExpression : async function BindingIdentifieropt ( FormalParameters ) { AsyncFunctionBody }
false döndür.