← ECMAScript 2027 · İçindekiler
ECMA-262 · 18inci Baskı
8

Sözdizimi Yönelimli İşlemler

Bu bölümde tanımlananlara ek olarak, bu belirtim boyunca özel sözdizimi yönelimli işlemler tanımlanmıştır.

8.1 Çalışma Zamanı Anlambilimi: Değerlendirme

Sözdizimi yönelimli işlem Evaluation hiçbir argüman almaz ve bir Completion Record döndürür.

8.2 Kapsam Analizi

8.2.1 Statik Anlambilim: BoundNames

Sözdizimi yönelimli işlem BoundNames hiçbir argüman almaz ve String'lerden oluşan bir Liste döndürür.

Aşağıdaki üretimler üzerinde parça parça tanımlanmıştır:

BindingIdentifier BindingIdentifier : Identifier

  1. Yegane öğesi, Identifier'ın StringValue değeri olan bir Liste döndür.

BindingIdentifier BindingIdentifier : yield

  1. « "yield" » döndür.

BindingIdentifier BindingIdentifier : await

  1. « "await" » döndür.

LexicalDeclaration LexicalDeclaration : LetOrConst BindingList ;

  1. BindingList'in BoundNames değerini döndür.

BindingList BindingList : BindingList , LexicalBinding

  1. names1, BindingList'in BoundNames değeri olsun.

  2. names2, LexicalBinding'in BoundNames değeri olsun.

  3. names1 ve names2'nin liste birleştirmesini döndür.

LexicalBinding LexicalBinding : BindingIdentifier Initializeropt

  1. BindingIdentifier'ın BoundNames değerini döndür.

LexicalBinding LexicalBinding : BindingPattern Initializer

  1. BindingPattern'in BoundNames değerini döndür.

VariableDeclarationList VariableDeclarationList : VariableDeclarationList , VariableDeclaration

  1. names1, VariableDeclarationList'in BoundNames değeri olsun.

  2. names2, VariableDeclaration'ın BoundNames değeri olsun.

  3. names1 ve names2'nin liste birleştirmesini döndür.

VariableDeclaration VariableDeclaration : BindingIdentifier Initializeropt

  1. BindingIdentifier'ın BoundNames değerini döndür.

VariableDeclaration VariableDeclaration : BindingPattern Initializer

  1. BindingPattern'in BoundNames değerini döndür.

ObjectBindingPattern ObjectBindingPattern : { }

  1. Yeni bir boş Liste döndür.

ObjectBindingPattern ObjectBindingPattern : { BindingPropertyList , BindingRestProperty }

  1. names1, BindingPropertyList'in BoundNames değeri olsun.

  2. names2, BindingRestProperty'in BoundNames değeri olsun.

  3. names1 ve names2'nin liste birleştirmesini döndür.

ArrayBindingPattern ArrayBindingPattern : [ Elisionopt ]

  1. Yeni bir boş Liste döndür.

ArrayBindingPattern ArrayBindingPattern : [ Elisionopt BindingRestElement ]

  1. BindingRestElement'in BoundNames değerini döndür.

ArrayBindingPattern ArrayBindingPattern : [ BindingElementList , Elisionopt ]

  1. BindingElementList'in BoundNames değerini döndür.

ArrayBindingPattern ArrayBindingPattern : [ BindingElementList , Elisionopt BindingRestElement ]

  1. names1, BindingElementList'in BoundNames değeri olsun.

  2. names2, BindingRestElement'in BoundNames değeri olsun.

  3. names1 ve names2'nin liste birleştirmesini döndür.

BindingPropertyList BindingPropertyList : BindingPropertyList , BindingProperty

  1. names1, BindingPropertyList'in BoundNames değeri olsun.

  2. names2, BindingProperty'nin BoundNames değeri olsun.

  3. names1 ve names2'nin liste birleştirmesini döndür.

BindingElementList BindingElementList : BindingElementList , BindingElisionElement

  1. names1, BindingElementList'in BoundNames değeri olsun.

  2. names2, BindingElisionElement'in BoundNames değeri olsun.

  3. names1 ve names2'nin liste birleştirmesini döndür.

BindingElisionElement BindingElisionElement : Elisionopt BindingElement

  1. BindingElement'in BoundNames değerini döndür.

BindingProperty BindingProperty : PropertyName : BindingElement

  1. BindingElement'in BoundNames değerini döndür.

SingleNameBinding SingleNameBinding : BindingIdentifier Initializeropt

  1. BindingIdentifier'ın BoundNames değerini döndür.

BindingElement BindingElement : BindingPattern Initializeropt

  1. BindingPattern'in BoundNames değerini döndür.

ForDeclaration ForDeclaration : LetOrConst ForBinding

  1. ForBinding'in BoundNames değerini döndür.

FunctionDeclaration FunctionDeclaration : function BindingIdentifier ( FormalParameters ) { FunctionBody }

  1. BindingIdentifier'ın BoundNames değerini döndür.

FunctionDeclaration FunctionDeclaration : function ( FormalParameters ) { FunctionBody }

  1. « "*default*" » döndür.

FormalParameters FormalParameters : [empty]

  1. Yeni bir boş Liste döndür.

FormalParameters FormalParameters : FormalParameterList , FunctionRestParameter

  1. names1, FormalParameterList'in BoundNames değeri olsun.

  2. names2, FunctionRestParameter'ın BoundNames değeri olsun.

  3. names1 ve names2'nin liste birleştirmesini döndür.

FormalParameterList FormalParameterList : FormalParameterList , FormalParameter

  1. names1, FormalParameterList'in BoundNames değeri olsun.

  2. names2, FormalParameter'ın BoundNames değeri olsun.

  3. names1 ve names2'nin liste birleştirmesini döndür.

ArrowParameters ArrowParameters : CoverParenthesizedExpressionAndArrowParameterList

  1. formals, CoverParenthesizedExpressionAndArrowParameterList tarafından kapsanan ArrowFormalParameters olsun.

  2. formals'ın BoundNames değerini döndür.

GeneratorDeclaration GeneratorDeclaration : function ***** BindingIdentifier ( FormalParameters ) { GeneratorBody }

  1. BindingIdentifier'ın BoundNames değerini döndür.

GeneratorDeclaration GeneratorDeclaration : function ***** ( FormalParameters ) { GeneratorBody }

  1. « "*default*" » döndür.

AsyncGeneratorDeclaration AsyncGeneratorDeclaration : async function ***** BindingIdentifier ( FormalParameters ) { AsyncGeneratorBody }

  1. BindingIdentifier'ın BoundNames değerini döndür.

AsyncGeneratorDeclaration AsyncGeneratorDeclaration : async function ***** ( FormalParameters ) { AsyncGeneratorBody }

  1. « "*default*" » döndür.

ClassDeclaration ClassDeclaration : class BindingIdentifier ClassTail

  1. BindingIdentifier'ın BoundNames değerini döndür.

ClassDeclaration ClassDeclaration : class ClassTail

  1. « "*default*" » döndür.

AsyncFunctionDeclaration AsyncFunctionDeclaration : async function BindingIdentifier ( FormalParameters ) { AsyncFunctionBody }

  1. BindingIdentifier'ın BoundNames değerini döndür.

AsyncFunctionDeclaration AsyncFunctionDeclaration : async function ( FormalParameters ) { AsyncFunctionBody }

  1. « "*default*" » döndür.

CoverCallExpressionAndAsyncArrowHead CoverCallExpressionAndAsyncArrowHead : MemberExpression Arguments

  1. head, CoverCallExpressionAndAsyncArrowHead tarafından kapsanan AsyncArrowHead olsun.

  2. head'in BoundNames değerini döndür.

ImportDeclaration ImportDeclaration : import ImportClause FromClause WithClauseopt ;

  1. ImportClause'un BoundNames değerini döndür.

ImportDeclaration ImportDeclaration : import ModuleSpecifier WithClauseopt ;

  1. Yeni bir boş Liste döndür.

ImportClause ImportClause : ImportedDefaultBinding , NameSpaceImport

  1. names1, ImportedDefaultBinding'in BoundNames değeri olsun.

  2. names2, NameSpaceImport'ın BoundNames değeri olsun.

  3. names1 ve names2'nin liste birleştirmesini döndür.

ImportClause ImportClause : ImportedDefaultBinding , NamedImports

  1. names1, ImportedDefaultBinding'in BoundNames değeri olsun.

  2. names2, NamedImports'ın BoundNames değeri olsun.

  3. names1 ve names2'nin liste birleştirmesini döndür.

NamedImports NamedImports : { }

  1. Yeni bir boş Liste döndür.

ImportsList ImportsList : ImportsList , ImportSpecifier

  1. names1, ImportsList'in BoundNames değeri olsun.

  2. names2, ImportSpecifier'ın BoundNames değeri olsun.

  3. names1 ve names2'nin liste birleştirmesini döndür.

ImportSpecifier ImportSpecifier : ModuleExportName as ImportedBinding

  1. ImportedBinding'in BoundNames değerini döndür.

ExportDeclaration ExportDeclaration : export ExportFromClause FromClause WithClauseopt ; export NamedExports ;

  1. Yeni bir boş Liste döndür.

ExportDeclaration ExportDeclaration : export VariableStatement

  1. VariableStatement'in BoundNames değerini döndür.

ExportDeclaration ExportDeclaration : export Declaration

  1. Declaration'ın BoundNames değerini döndür.

ExportDeclaration ExportDeclaration : export default HoistableDeclaration

  1. declNames, HoistableDeclaration'ın BoundNames değeri olsun.

  2. Eğer declNames, "*default*" öğesini içermiyorsa, declNames'e "*default*" ekle.

  3. declNames döndür.

ExportDeclaration ExportDeclaration : export default ClassDeclaration

  1. declNames, ClassDeclaration'ın BoundNames değeri olsun.

  2. Eğer declNames, "*default*" öğesini içermiyorsa, declNames'e "*default*" ekle.

  3. declNames döndür.

ExportDeclaration ExportDeclaration : export default AssignmentExpression ;

  1. « "*default*" » döndür.

8.2.2 Statik Anlambilim: DeclarationPart

Sözdizimi yönelimli işlem DeclarationPart hiçbir argüman almaz ve bir Parse Node döndürür. Aşağıdaki üretimler üzerinde parça parça tanımlanmıştır:

HoistableDeclaration HoistableDeclaration : FunctionDeclaration

  1. FunctionDeclaration döndür.

HoistableDeclaration HoistableDeclaration : GeneratorDeclaration

  1. GeneratorDeclaration döndür.

HoistableDeclaration HoistableDeclaration : AsyncFunctionDeclaration

  1. AsyncFunctionDeclaration döndür.

HoistableDeclaration HoistableDeclaration : AsyncGeneratorDeclaration

  1. AsyncGeneratorDeclaration döndür.

Declaration Declaration : ClassDeclaration

  1. ClassDeclaration döndür.

Declaration Declaration : LexicalDeclaration

  1. LexicalDeclaration döndür.

8.2.3 Statik Anlambilim: IsConstantDeclaration

Sözdizimi yönelimli işlem IsConstantDeclaration 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:

LexicalDeclaration LexicalDeclaration : LetOrConst BindingList ;

  1. LetOrConst'ın IsConstantDeclaration değerini döndür.

LetOrConst LetOrConst : let

  1. false döndür.

LetOrConst LetOrConst : const

  1. true döndür.

FunctionDeclaration FunctionDeclaration : function BindingIdentifier ( FormalParameters ) { FunctionBody } function ( FormalParameters ) { FunctionBody }

GeneratorDeclaration GeneratorDeclaration : function ***** BindingIdentifier ( FormalParameters ) { GeneratorBody } function ***** ( FormalParameters ) { GeneratorBody }

AsyncGeneratorDeclaration AsyncGeneratorDeclaration : async function ***** BindingIdentifier ( FormalParameters ) { AsyncGeneratorBody } async function ***** ( FormalParameters ) { AsyncGeneratorBody }

AsyncFunctionDeclaration AsyncFunctionDeclaration : async function BindingIdentifier ( FormalParameters ) { AsyncFunctionBody } async function ( FormalParameters ) { AsyncFunctionBody }

  1. false döndür.

ClassDeclaration ClassDeclaration : class BindingIdentifier ClassTail class ClassTail

  1. false döndür.

ExportDeclaration ExportDeclaration : export ExportFromClause FromClause ; export NamedExports ; export default AssignmentExpression ;

  1. false döndür.

8.2.4 Statik Anlambilim: LexicallyDeclaredNames

Sözdizimi yönelimli işlem LexicallyDeclaredNames hiçbir argüman almaz ve String'lerden oluşan bir Liste döndürür. Aşağıdaki üretimler üzerinde parça parça tanımlanmıştır:

Block Block : { }

  1. Yeni bir boş Liste döndür.

StatementList StatementList : StatementList StatementListItem

  1. names1, StatementList'in LexicallyDeclaredNames değeri olsun.

  2. names2, StatementListItem'nin LexicallyDeclaredNames değeri olsun.

  3. names1 ve names2'nin liste birleştirmesini döndür.

StatementListItem StatementListItem : Statement

  1. Eğer Statement

Statement Statement : LabelledStatement

ise, LabelledStatement'in LexicallyDeclaredNames değerini döndür.

  1. Yeni bir boş Liste döndür.

StatementListItem StatementListItem : Declaration

  1. Declaration'ın BoundNames değerini döndür.

CaseBlock CaseBlock : { }

  1. Yeni bir boş Liste döndür.

CaseBlock CaseBlock : { CaseClausesopt DefaultClause CaseClausesopt }

  1. Eğer ilk CaseClauses mevcutsa, names1, ilk CaseClauses'in LexicallyDeclaredNames değeri olsun.

  2. Değilse, names1 yeni bir boş Liste olsun.

  3. names2, DefaultClause'un LexicallyDeclaredNames değeri olsun.

  4. Eğer ikinci CaseClauses mevcutsa, names3, ikinci CaseClauses'in LexicallyDeclaredNames değeri olsun.

  5. Değilse, names3 yeni bir boş Liste olsun.

  6. names1, names2 ve names3'ün liste birleştirmesini döndür.

CaseClauses CaseClauses : CaseClauses CaseClause

  1. names1, CaseClauses'in LexicallyDeclaredNames değeri olsun.

  2. names2, CaseClause'un LexicallyDeclaredNames değeri olsun.

  3. names1 ve names2'nin liste birleştirmesini döndür.

CaseClause CaseClause : case Expression : StatementListopt

  1. Eğer StatementList mevcutsa, StatementList'in LexicallyDeclaredNames değerini döndür.

  2. Yeni bir boş Liste döndür.

DefaultClause DefaultClause : default : StatementListopt

  1. Eğer StatementList mevcutsa, StatementList'in LexicallyDeclaredNames değerini döndür.

  2. Yeni bir boş Liste döndür.

LabelledStatement LabelledStatement : LabelIdentifier : LabelledItem

  1. LabelledItem'in LexicallyDeclaredNames değerini döndür.

LabelledItem LabelledItem : Statement

  1. Yeni bir boş Liste döndür.

LabelledItem LabelledItem : FunctionDeclaration

  1. FunctionDeclaration'ın BoundNames değerini döndür.

FunctionStatementList FunctionStatementList : [empty]

  1. Yeni bir boş Liste döndür.

FunctionStatementList FunctionStatementList : StatementList

  1. StatementList'in TopLevelLexicallyDeclaredNames değerini döndür.

ClassStaticBlockStatementList ClassStaticBlockStatementList : [empty]

  1. Yeni bir boş Liste döndür.

ClassStaticBlockStatementList ClassStaticBlockStatementList : StatementList

  1. StatementList'in TopLevelLexicallyDeclaredNames değerini döndür.

ConciseBody ConciseBody : ExpressionBody

  1. Yeni bir boş Liste döndür.

AsyncConciseBody AsyncConciseBody : ExpressionBody

  1. Yeni bir boş Liste döndür.

Script Script : [empty]

  1. Yeni bir boş Liste döndür.

ScriptBody ScriptBody : StatementList

  1. StatementList'in TopLevelLexicallyDeclaredNames değerini döndür.

ModuleItemList ModuleItemList : ModuleItemList ModuleItem

  1. names1, ModuleItemList'in LexicallyDeclaredNames değeri olsun.

  2. names2, ModuleItem'nin LexicallyDeclaredNames değeri olsun.

  3. names1 ve names2'nin liste birleştirmesini döndür.

ModuleItem ModuleItem : ImportDeclaration

  1. ImportDeclaration'ın BoundNames değerini döndür.

ModuleItem ModuleItem : ExportDeclaration

  1. Eğer ExportDeclaration export VariableStatement ise, yeni bir boş Liste döndür.

  2. ExportDeclaration'ın BoundNames değerini döndür.

ModuleItem ModuleItem : StatementListItem

  1. StatementListItem'nin LexicallyDeclaredNames değerini döndür.

8.2.5 Statik Anlambilim: LexicallyScopedDeclarations

Sözdizimi yönelimli işlem LexicallyScopedDeclarations hiçbir argüman almaz ve Parse Node'lardan oluşan bir Liste döndürür. Aşağıdaki üretimler üzerinde parça parça tanımlanmıştır:

StatementList StatementList : StatementList StatementListItem

  1. decls1, StatementList'in LexicallyScopedDeclarations değeri olsun.

  2. decls2, StatementListItem'nin LexicallyScopedDeclarations değeri olsun.

  3. decls1 ve decls2'nin liste birleştirmesini döndür.

StatementListItem StatementListItem : Statement

  1. Eğer Statement

Statement Statement : LabelledStatement

ise, LabelledStatement'in LexicallyScopedDeclarations değerini döndür.

  1. Yeni bir boş Liste döndür.

StatementListItem StatementListItem : Declaration

  1. Yegane öğesi, Declaration'ın DeclarationPart değeri olan bir Liste döndür.

CaseBlock CaseBlock : { }

  1. Yeni bir boş Liste döndür.

CaseBlock CaseBlock : { CaseClausesopt DefaultClause CaseClausesopt }

  1. Eğer ilk CaseClauses mevcutsa, decls1, ilk CaseClauses'in LexicallyScopedDeclarations değeri olsun.

  2. Değilse, decls1 yeni bir boş Liste olsun.

  3. decls2, DefaultClause'un LexicallyScopedDeclarations değeri olsun.

  4. Eğer ikinci CaseClauses mevcutsa, decls3, ikinci CaseClauses'in LexicallyScopedDeclarations değeri olsun.

  5. Değilse, decls3 yeni bir boş Liste olsun.

  6. decls1, decls2 ve decls3'ün liste birleştirmesini döndür.

CaseClauses CaseClauses : CaseClauses CaseClause

  1. decls1, CaseClauses'in LexicallyScopedDeclarations değeri olsun.

  2. decls2, CaseClause'un LexicallyScopedDeclarations değeri olsun.

  3. decls1 ve decls2'nin liste birleştirmesini döndür.

CaseClause CaseClause : case Expression : StatementListopt

  1. Eğer StatementList mevcutsa, StatementList'in LexicallyScopedDeclarations değerini döndür.

  2. Yeni bir boş Liste döndür.

DefaultClause DefaultClause : default : StatementListopt

  1. Eğer StatementList mevcutsa, StatementList'in LexicallyScopedDeclarations değerini döndür.

  2. Yeni bir boş Liste döndür.

LabelledStatement LabelledStatement : LabelIdentifier : LabelledItem

  1. LabelledItem'in LexicallyScopedDeclarations değerini döndür.

LabelledItem LabelledItem : Statement

  1. Yeni bir boş Liste döndür.

LabelledItem LabelledItem : FunctionDeclaration

  1. « FunctionDeclaration » döndür.

FunctionStatementList FunctionStatementList : [empty]

  1. Yeni bir boş Liste döndür.

FunctionStatementList FunctionStatementList : StatementList

  1. StatementList'in TopLevelLexicallyScopedDeclarations değerini döndür.

ClassStaticBlockStatementList ClassStaticBlockStatementList : [empty]

  1. Yeni bir boş Liste döndür.

ClassStaticBlockStatementList ClassStaticBlockStatementList : StatementList

  1. StatementList'in TopLevelLexicallyScopedDeclarations değerini döndür.

ConciseBody ConciseBody : ExpressionBody

  1. Yeni bir boş Liste döndür.

AsyncConciseBody AsyncConciseBody : ExpressionBody

  1. Yeni bir boş Liste döndür.

Script Script : [empty]

  1. Yeni bir boş Liste döndür.

ScriptBody ScriptBody : StatementList

  1. StatementList'in TopLevelLexicallyScopedDeclarations değerini döndür.

Module Module : [empty]

  1. Yeni bir boş Liste döndür.

ModuleItemList ModuleItemList : ModuleItemList ModuleItem

  1. decls1, ModuleItemList'in LexicallyScopedDeclarations değeri olsun.

  2. decls2, ModuleItem'nin LexicallyScopedDeclarations değeri olsun.

  3. decls1 ve decls2'nin liste birleştirmesini döndür.

ModuleItem ModuleItem : ImportDeclaration

  1. Yeni bir boş Liste döndür.

ExportDeclaration ExportDeclaration : export ExportFromClause FromClause WithClauseopt ; export NamedExports ; export VariableStatement

  1. Yeni bir boş Liste döndür.

ExportDeclaration ExportDeclaration : export Declaration

  1. Yegane öğesi, Declaration'ın DeclarationPart değeri olan bir Liste döndür.

ExportDeclaration ExportDeclaration : export default HoistableDeclaration

  1. Yegane öğesi, HoistableDeclaration'ın DeclarationPart değeri olan bir Liste döndür.

ExportDeclaration ExportDeclaration : export default ClassDeclaration

  1. Yegane öğesi, ClassDeclaration olan bir Liste döndür.

ExportDeclaration ExportDeclaration : export default AssignmentExpression ;

  1. Yegane öğesi, bu ExportDeclaration olan bir Liste döndür.

8.2.6 Statik Anlambilim: VarDeclaredNames

Sözdizimi yönelimli işlem VarDeclaredNames hiçbir argüman almaz ve String'lerden oluşan bir Liste döndürür. Aşağıdaki üretimler üzerinde parça parça tanımlanmıştır:

Statement Statement : EmptyStatement ExpressionStatement ContinueStatement BreakStatement ReturnStatement ThrowStatement DebuggerStatement

  1. Yeni bir boş Liste döndür.

Block Block : { }

  1. Yeni bir boş Liste döndür.

StatementList StatementList : StatementList StatementListItem

  1. names1, StatementList'in VarDeclaredNames değeri olsun.

  2. names2, StatementListItem'nin VarDeclaredNames değeri olsun.

  3. names1 ve names2'nin liste birleştirmesini döndür.

StatementListItem StatementListItem : Declaration

  1. Yeni bir boş Liste döndür.

VariableStatement VariableStatement : var VariableDeclarationList ;

  1. VariableDeclarationList'in BoundNames değerini döndür.

IfStatement IfStatement : if ( Expression ) Statement else Statement

  1. names1, ilk Statement'in VarDeclaredNames değeri olsun.

  2. names2, ikinci Statement'in VarDeclaredNames değeri olsun.

  3. names1 ve names2'nin liste birleştirmesini döndür.

IfStatement IfStatement : if ( Expression ) Statement

  1. Statement'in VarDeclaredNames değerini döndür.

DoWhileStatement DoWhileStatement : do Statement while ( Expression ) ;

  1. Statement'in VarDeclaredNames değerini döndür.

WhileStatement WhileStatement : while ( Expression ) Statement

  1. Statement'in VarDeclaredNames değerini döndür.

ForStatement ForStatement : for ( Expressionopt ; Expressionopt ; Expressionopt ) Statement

  1. Statement'in VarDeclaredNames değerini döndür.

ForStatement ForStatement : for ( var VariableDeclarationList ; Expressionopt ; Expressionopt ) Statement

  1. names1, VariableDeclarationList'in BoundNames değeri olsun.

  2. names2, Statement'in VarDeclaredNames değeri olsun.

  3. names1 ve names2'nin liste birleştirmesini döndür.

ForStatement ForStatement : for ( LexicalDeclaration Expressionopt ; Expressionopt ) Statement

  1. Statement'in VarDeclaredNames değerini döndür.

ForInOfStatement ForInOfStatement : for ( LeftHandSideExpression in Expression ) Statement for ( ForDeclaration in Expression ) Statement for ( LeftHandSideExpression of AssignmentExpression ) Statement for ( ForDeclaration of AssignmentExpression ) Statement for await ( LeftHandSideExpression of AssignmentExpression ) Statement for await ( ForDeclaration of AssignmentExpression ) Statement

  1. Statement'in VarDeclaredNames değerini döndür.

ForInOfStatement ForInOfStatement : for ( var ForBinding in Expression ) Statement for ( var ForBinding of AssignmentExpression ) Statement for await ( var ForBinding of AssignmentExpression ) Statement

  1. names1, ForBinding'in BoundNames değeri olsun.

  2. names2, Statement'in VarDeclaredNames değeri olsun.

  3. names1 ve names2'nin liste birleştirmesini döndür.

WithStatement WithStatement : with ( Expression ) Statement

  1. Statement'in VarDeclaredNames değerini döndür.

SwitchStatement SwitchStatement : switch ( Expression ) CaseBlock

  1. CaseBlock'ın VarDeclaredNames değerini döndür.

CaseBlock CaseBlock : { }

  1. Yeni bir boş Liste döndür.

CaseBlock CaseBlock : { CaseClausesopt DefaultClause CaseClausesopt }

  1. Eğer ilk CaseClauses mevcutsa, names1, ilk CaseClauses'in VarDeclaredNames değeri olsun.

  2. Değilse, names1 yeni bir boş Liste olsun.

  3. names2, DefaultClause'un VarDeclaredNames değeri olsun.

  4. Eğer ikinci CaseClauses mevcutsa, names3, ikinci CaseClauses'in VarDeclaredNames değeri olsun.

  5. Değilse, names3 yeni bir boş Liste olsun.

  6. names1, names2 ve names3'ün liste birleştirmesini döndür.

CaseClauses CaseClauses : CaseClauses CaseClause

  1. names1, CaseClauses'in VarDeclaredNames değeri olsun.

  2. names2, CaseClause'un VarDeclaredNames değeri olsun.

  3. names1 ve names2'nin liste birleştirmesini döndür.

CaseClause CaseClause : case Expression : StatementListopt

  1. Eğer StatementList mevcutsa, StatementList'in VarDeclaredNames değerini döndür.

  2. Yeni bir boş Liste döndür.

DefaultClause DefaultClause : default : StatementListopt

  1. Eğer StatementList mevcutsa, StatementList'in VarDeclaredNames değerini döndür.

  2. Yeni bir boş Liste döndür.

LabelledStatement LabelledStatement : LabelIdentifier : LabelledItem

  1. LabelledItem'in VarDeclaredNames değerini döndür.

LabelledItem LabelledItem : FunctionDeclaration

  1. Yeni bir boş Liste döndür.

TryStatement TryStatement : try Block Catch

  1. names1, Block'ın VarDeclaredNames değeri olsun.

  2. names2, Catch'in VarDeclaredNames değeri olsun.

  3. names1 ve names2'nin liste birleştirmesini döndür.

TryStatement TryStatement : try Block Finally

  1. names1, Block'ın VarDeclaredNames değeri olsun.

  2. names2, Finally'nin VarDeclaredNames değeri olsun.

  3. names1 ve names2'nin liste birleştirmesini döndür.

TryStatement TryStatement : try Block Catch Finally

  1. names1, Block'ın VarDeclaredNames değeri olsun.

  2. names2, Catch'in VarDeclaredNames değeri olsun.

  3. names3, Finally'nin VarDeclaredNames değeri olsun.

  4. names1, names2 ve names3'ün liste birleştirmesini döndür.

Catch Catch : catch ( CatchParameter ) Block

  1. Block'ın VarDeclaredNames değerini döndür.

FunctionStatementList FunctionStatementList : [empty]

  1. Yeni bir boş Liste döndür.

FunctionStatementList FunctionStatementList : StatementList

  1. StatementList'in TopLevelVarDeclaredNames değerini döndür.

ClassStaticBlockStatementList ClassStaticBlockStatementList : [empty]

  1. Yeni bir boş Liste döndür.

ClassStaticBlockStatementList ClassStaticBlockStatementList : StatementList

  1. StatementList'in TopLevelVarDeclaredNames değerini döndür.

ConciseBody ConciseBody : ExpressionBody

  1. Yeni bir boş Liste döndür.

AsyncConciseBody AsyncConciseBody : ExpressionBody

  1. Yeni bir boş Liste döndür.

Script Script : [empty]

  1. Yeni bir boş Liste döndür.

ScriptBody ScriptBody : StatementList

  1. StatementList'in TopLevelVarDeclaredNames değerini döndür.

ModuleItemList ModuleItemList : ModuleItemList ModuleItem

  1. names1, ModuleItemList'in VarDeclaredNames değeri olsun.

  2. names2, ModuleItem'nin VarDeclaredNames değeri olsun.

  3. names1 ve names2'nin liste birleştirmesini döndür.

ModuleItem ModuleItem : ImportDeclaration

  1. Yeni bir boş Liste döndür.

ModuleItem ModuleItem : ExportDeclaration

  1. Eğer ExportDeclaration export VariableStatement ise, ExportDeclaration'ın BoundNames değerini döndür.

  2. Yeni bir boş Liste döndür.

8.2.7 Statik Anlambilim: VarScopedDeclarations

Sözdizimi yönelimli işlem VarScopedDeclarations hiçbir argüman almaz ve Parse Node'lardan oluşan bir Liste döndürür. Aşağıdaki üretimler üzerinde parça parça tanımlanmıştır:

Statement Statement : EmptyStatement ExpressionStatement ContinueStatement BreakStatement ReturnStatement ThrowStatement DebuggerStatement

  1. Yeni bir boş Liste döndür.

Block Block : { }

  1. Yeni bir boş Liste döndür.

StatementList StatementList : StatementList StatementListItem

  1. decls1, StatementList'in VarScopedDeclarations değeri olsun.

  2. decls2, StatementListItem'nin VarScopedDeclarations değeri olsun.

  3. decls1 ve decls2'nin liste birleştirmesini döndür.

StatementListItem StatementListItem : Declaration

  1. Yeni bir boş Liste döndür.

VariableDeclarationList VariableDeclarationList : VariableDeclaration

  1. « VariableDeclaration » döndür.

VariableDeclarationList VariableDeclarationList : VariableDeclarationList , VariableDeclaration

  1. decls1, VariableDeclarationList'in VarScopedDeclarations değeri olsun.

  2. decls1 ile « VariableDeclaration »'nin liste birleştirmesini döndür.

IfStatement IfStatement : if ( Expression ) Statement else Statement

  1. decls1, ilk Statement'in VarScopedDeclarations değeri olsun.

  2. decls2, ikinci Statement'in VarScopedDeclarations değeri olsun.

  3. decls1 ve decls2'nin liste birleştirmesini döndür.

IfStatement IfStatement : if ( Expression ) Statement

  1. Statement'in VarScopedDeclarations değerini döndür.

DoWhileStatement DoWhileStatement : do Statement while ( Expression ) ;

  1. Statement'in VarScopedDeclarations değerini döndür.

WhileStatement WhileStatement : while ( Expression ) Statement

  1. Statement'in VarScopedDeclarations değerini döndür.

ForStatement ForStatement : for ( Expressionopt ; Expressionopt ; Expressionopt ) Statement

  1. Statement'in VarScopedDeclarations değerini döndür.

ForStatement ForStatement : for ( var VariableDeclarationList ; Expressionopt ; Expressionopt ) Statement

  1. decls1, VariableDeclarationList'in VarScopedDeclarations değeri olsun.

  2. decls2, Statement'in VarScopedDeclarations değeri olsun.

  3. decls1 ve decls2'nin liste birleştirmesini döndür.

ForStatement ForStatement : for ( LexicalDeclaration Expressionopt ; Expressionopt ) Statement

  1. Statement'in VarScopedDeclarations değerini döndür.

ForInOfStatement ForInOfStatement : for ( LeftHandSideExpression in Expression ) Statement for ( ForDeclaration in Expression ) Statement for ( LeftHandSideExpression of AssignmentExpression ) Statement for ( ForDeclaration of AssignmentExpression ) Statement for await ( LeftHandSideExpression of AssignmentExpression ) Statement for await ( ForDeclaration of AssignmentExpression ) Statement

  1. Statement'in VarScopedDeclarations değerini döndür.

ForInOfStatement ForInOfStatement : for ( var ForBinding in Expression ) Statement for ( var ForBinding of AssignmentExpression ) Statement for await ( var ForBinding of AssignmentExpression ) Statement

  1. decls1 = « ForBinding » olsun.

  2. decls2, Statement'in VarScopedDeclarations değeri olsun.

  3. decls1 ve decls2'nin liste birleştirmesini döndür.

WithStatement WithStatement : with ( Expression ) Statement

  1. Statement'in VarScopedDeclarations değerini döndür.

SwitchStatement SwitchStatement : switch ( Expression ) CaseBlock

  1. CaseBlock'ın VarScopedDeclarations değerini döndür.

CaseBlock CaseBlock : { }

  1. Yeni bir boş Liste döndür.

CaseBlock CaseBlock : { CaseClausesopt DefaultClause CaseClausesopt }

  1. Eğer ilk CaseClauses mevcutsa, decls1, ilk CaseClauses'in VarScopedDeclarations değeri olsun.

  2. Değilse, decls1 yeni bir boş Liste olsun.

  3. decls2, DefaultClause'un VarScopedDeclarations değeri olsun.

  4. Eğer ikinci CaseClauses mevcutsa, decls3, ikinci CaseClauses'in VarScopedDeclarations değeri olsun.

  5. Değilse, decls3 yeni bir boş Liste olsun.

  6. decls1, decls2 ve decls3'ün liste birleştirmesini döndür.

CaseClauses CaseClauses : CaseClauses CaseClause

  1. decls1, CaseClauses'in VarScopedDeclarations değeri olsun.

  2. decls2, CaseClause'un VarScopedDeclarations değeri olsun.

  3. decls1 ve decls2'nin liste birleştirmesini döndür.

CaseClause CaseClause : case Expression : StatementListopt

  1. Eğer StatementList mevcutsa, StatementList'in VarScopedDeclarations değerini döndür.

  2. Yeni bir boş Liste döndür.

DefaultClause DefaultClause : default : StatementListopt

  1. Eğer StatementList mevcutsa, StatementList'in VarScopedDeclarations değerini döndür.

  2. Yeni bir boş Liste döndür.

LabelledStatement LabelledStatement : LabelIdentifier : LabelledItem

  1. LabelledItem'in VarScopedDeclarations değerini döndür.

LabelledItem LabelledItem : FunctionDeclaration

  1. Yeni bir boş Liste döndür.

TryStatement TryStatement : try Block Catch

  1. decls1, Block'ın VarScopedDeclarations değeri olsun.

  2. decls2, Catch'in VarScopedDeclarations değeri olsun.

  3. decls1 ve decls2'nin liste birleştirmesini döndür.

TryStatement TryStatement : try Block Finally

  1. decls1, Block'ın VarScopedDeclarations değeri olsun.

  2. decls2, Finally'nin VarScopedDeclarations değeri olsun.

  3. decls1 ve decls2'nin liste birleştirmesini döndür.

TryStatement TryStatement : try Block Catch Finally

  1. decls1, Block'ın VarScopedDeclarations değeri olsun.

  2. decls2, Catch'in VarScopedDeclarations değeri olsun.

  3. decls3, Finally'nin VarScopedDeclarations değeri olsun.

  4. decls1, decls2 ve decls3'ün liste birleştirmesini döndür.

Catch Catch : catch ( CatchParameter ) Block

  1. Block'ın VarScopedDeclarations değerini döndür.

FunctionStatementList FunctionStatementList : [empty]

  1. Yeni bir boş Liste döndür.

FunctionStatementList FunctionStatementList : StatementList

  1. StatementList'in TopLevelVarScopedDeclarations değerini döndür.

ClassStaticBlockStatementList ClassStaticBlockStatementList : [empty]

  1. Yeni bir boş Liste döndür.

ClassStaticBlockStatementList ClassStaticBlockStatementList : StatementList

  1. StatementList'in TopLevelVarScopedDeclarations değerini döndür.

ConciseBody ConciseBody : ExpressionBody

  1. Yeni bir boş Liste döndür.

AsyncConciseBody AsyncConciseBody : ExpressionBody

  1. Yeni bir boş Liste döndür.

Script Script : [empty]

  1. Yeni bir boş Liste döndür.

ScriptBody ScriptBody : StatementList

  1. StatementList'in TopLevelVarScopedDeclarations değerini döndür.

Module Module : [empty]

  1. Yeni bir boş Liste döndür.

ModuleItemList ModuleItemList : ModuleItemList ModuleItem

  1. decls1, ModuleItemList'in VarScopedDeclarations değeri olsun.

  2. decls2, ModuleItem'nin VarScopedDeclarations değeri olsun.

  3. decls1 ve decls2'nin liste birleştirmesini döndür.

ModuleItem ModuleItem : ImportDeclaration

  1. Yeni bir boş Liste döndür.

ModuleItem ModuleItem : ExportDeclaration

  1. Eğer ExportDeclaration export VariableStatement ise, VariableStatement'in VarScopedDeclarations değerini döndür.

  2. Yeni bir boş Liste döndür.

8.2.8 Statik Anlambilim: TopLevelLexicallyDeclaredNames

Sözdizimi yönelimli işlem TopLevelLexicallyDeclaredNames hiçbir argüman almaz ve String'lerden oluşan bir Liste döndürür. Aşağıdaki üretimler üzerinde parça parça tanımlanmıştır:

StatementList StatementList : StatementList StatementListItem

  1. names1, StatementList'in TopLevelLexicallyDeclaredNames değeri olsun.

  2. names2, StatementListItem'nin TopLevelLexicallyDeclaredNames değeri olsun.

  3. names1 ve names2'nin liste birleştirmesini döndür.

StatementListItem StatementListItem : Statement

  1. Yeni bir boş Liste döndür.

StatementListItem StatementListItem : Declaration

  1. Eğer Declaration

Declaration Declaration : HoistableDeclaration

ise, o zaman

1. Yeni bir boş [Liste](07_sec-ecmascript-data-types-and-values.md#sec-list-and-record-specification-type) döndür.
  1. Declaration'ın BoundNames değerini döndür.

8.2.9 Statik Anlambilim: TopLevelLexicallyScopedDeclarations

Sözdizimi yönelimli işlem TopLevelLexicallyScopedDeclarations hiçbir argüman almaz ve Parse Node'lardan oluşan bir Liste döndürür. Aşağıdaki üretimler üzerinde parça parça tanımlanmıştır:

StatementList StatementList : StatementList StatementListItem

  1. decls1, StatementList'in TopLevelLexicallyScopedDeclarations değeri olsun.

  2. decls2, StatementListItem'nin TopLevelLexicallyScopedDeclarations değeri olsun.

  3. decls1 ve decls2'nin liste birleştirmesini döndür.

StatementListItem StatementListItem : Statement

  1. Yeni bir boş Liste döndür.

StatementListItem StatementListItem : Declaration

  1. Eğer Declaration

Declaration Declaration : HoistableDeclaration

ise, o zaman

1. Yeni bir boş [Liste](07_sec-ecmascript-data-types-and-values.md#sec-list-and-record-specification-type) döndür.
  1. « Declaration » döndür.

8.2.10 Statik Anlambilim: TopLevelVarDeclaredNames

Sözdizimi yönelimli işlem TopLevelVarDeclaredNames hiçbir argüman almaz ve String'lerden oluşan bir Liste döndürür. Aşağıdaki üretimler üzerinde parça parça tanımlanmıştır:

StatementList StatementList : StatementList StatementListItem

  1. names1, StatementList'in TopLevelVarDeclaredNames değeri olsun.

  2. names2, StatementListItem'nin TopLevelVarDeclaredNames değeri olsun.

  3. names1 ve names2'nin liste birleştirmesini döndür.

StatementListItem StatementListItem : Declaration

  1. Eğer Declaration

Declaration Declaration : HoistableDeclaration

ise, o zaman

1. *[HoistableDeclaration](15_sec-ecmascript-language-statements-and-declarations.md#prod-HoistableDeclaration)*'ın [BoundNames](#sec-static-semantics-boundnames) değerini döndür.
  1. Yeni bir boş Liste döndür.

StatementListItem StatementListItem : Statement

  1. Eğer Statement

Statement Statement : LabelledStatement

ise, Statement'in TopLevelVarDeclaredNames değerini döndür.

  1. Statement'in VarDeclaredNames değerini döndür.

LabelledStatement LabelledStatement : LabelIdentifier : LabelledItem

  1. LabelledItem'in TopLevelVarDeclaredNames değerini döndür.

LabelledItem LabelledItem : Statement

  1. Eğer Statement

Statement Statement : LabelledStatement

ise, Statement'in TopLevelVarDeclaredNames değerini döndür.

  1. Statement'in VarDeclaredNames değerini döndür.

LabelledItem LabelledItem : FunctionDeclaration

  1. FunctionDeclaration'ın BoundNames değerini döndür.

8.2.11 Statik Anlambilim: TopLevelVarScopedDeclarations

Sözdizimi yönelimli işlem TopLevelVarScopedDeclarations hiçbir argüman almaz ve Parse Node'lardan oluşan bir Liste döndürür. Aşağıdaki üretimler üzerinde parça parça tanımlanmıştır:

StatementList StatementList : StatementList StatementListItem

  1. decls1, StatementList'in TopLevelVarScopedDeclarations değeri olsun.

  2. decls2, StatementListItem'nin TopLevelVarScopedDeclarations değeri olsun.

  3. decls1 ve decls2'nin liste birleştirmesini döndür.

StatementListItem StatementListItem : Statement

  1. Eğer Statement

Statement Statement : LabelledStatement

ise, Statement'in TopLevelVarScopedDeclarations değerini döndür.

  1. Statement'in VarScopedDeclarations değerini döndür.

StatementListItem StatementListItem : Declaration

  1. Eğer Declaration

Declaration Declaration : HoistableDeclaration

ise, o zaman

1. *decl*, *[HoistableDeclaration](15_sec-ecmascript-language-statements-and-declarations.md#prod-HoistableDeclaration)*'ın [DeclarationPart](#sec-static-semantics-declarationpart) değeri olsun.

2. « *decl* » döndür.
  1. Yeni bir boş Liste döndür.

LabelledStatement LabelledStatement : LabelIdentifier : LabelledItem

  1. LabelledItem'in TopLevelVarScopedDeclarations değerini döndür.

LabelledItem LabelledItem : Statement

  1. Eğer Statement

Statement Statement : LabelledStatement

ise, Statement'in TopLevelVarScopedDeclarations değerini döndür.

  1. Statement'in VarScopedDeclarations değerini döndür.

LabelledItem LabelledItem : FunctionDeclaration

  1. « FunctionDeclaration » döndür.

8.3 Etiketler

8.3.1 Statik Anlambilim: ContainsDuplicateLabels

Sözdizimi yönelimli işlem ContainsDuplicateLabels, labelSet (String'lerden oluşan bir Liste) argümanını alır ve bir Boolean döndürür. Aşağıdaki üretimler üzerinde parça parça tanımlanmıştır:

Statement Statement : VariableStatement EmptyStatement ExpressionStatement ContinueStatement BreakStatement ReturnStatement ThrowStatement DebuggerStatement

Block Block : { }

StatementListItem StatementListItem : Declaration

  1. false döndür.

StatementList StatementList : StatementList StatementListItem

  1. hasDuplicates, StatementList'in labelSet argümanıyla ContainsDuplicateLabels değeri olsun.

  2. Eğer hasDuplicates true ise, true döndür.

  3. StatementListItem'nin labelSet argümanıyla ContainsDuplicateLabels değerini döndür.

IfStatement IfStatement : if ( Expression ) Statement else Statement

  1. hasDuplicate, ilk Statement'in labelSet argümanıyla ContainsDuplicateLabels değeri olsun.

  2. Eğer hasDuplicate true ise, true döndür.

  3. İkinci Statement'in labelSet argümanıyla ContainsDuplicateLabels değerini döndür.

IfStatement IfStatement : if ( Expression ) Statement

  1. Statement'in labelSet argümanıyla ContainsDuplicateLabels değerini döndür.

DoWhileStatement DoWhileStatement : do Statement while ( Expression ) ;

  1. Statement'in labelSet argümanıyla ContainsDuplicateLabels değerini döndür.

WhileStatement WhileStatement : while ( Expression ) Statement

  1. Statement'in labelSet argümanıyla ContainsDuplicateLabels değerini döndür.

ForStatement ForStatement : for ( Expressionopt ; Expressionopt ; Expressionopt ) Statement for ( var VariableDeclarationList ; Expressionopt ; Expressionopt ) Statement for ( LexicalDeclaration Expressionopt ; Expressionopt ) Statement

  1. Statement'in labelSet argümanıyla ContainsDuplicateLabels değerini döndür.

ForInOfStatement ForInOfStatement : for ( LeftHandSideExpression in Expression ) Statement for ( var ForBinding in Expression ) Statement for ( ForDeclaration in Expression ) Statement for ( LeftHandSideExpression of AssignmentExpression ) Statement for ( var ForBinding of AssignmentExpression ) Statement for ( ForDeclaration of AssignmentExpression ) Statement for await ( LeftHandSideExpression of AssignmentExpression ) Statement for await ( var ForBinding of AssignmentExpression ) Statement for await ( ForDeclaration of AssignmentExpression ) Statement

  1. Statement'in labelSet argümanıyla ContainsDuplicateLabels değerini döndür.

WithStatement WithStatement : with ( Expression ) Statement

  1. Statement'in labelSet argümanıyla ContainsDuplicateLabels değerini döndür.

SwitchStatement SwitchStatement : switch ( Expression ) CaseBlock

  1. CaseBlock'ın labelSet argümanıyla ContainsDuplicateLabels değerini döndür.

CaseBlock CaseBlock : { }

  1. false döndür.

CaseBlock CaseBlock : { CaseClausesopt DefaultClause CaseClausesopt }

  1. Eğer ilk CaseClauses mevcutsa, o zaman

    1. Eğer ilk CaseClauses'in labelSet argümanıyla ContainsDuplicateLabels değeri true ise, true döndür.
  2. Eğer DefaultClause'un labelSet argümanıyla ContainsDuplicateLabels değeri true ise, true döndür.

  3. Eğer ikinci CaseClauses mevcut değilse, false döndür.

  4. İkinci CaseClauses'in labelSet argümanıyla ContainsDuplicateLabels değerini döndür.

CaseClauses CaseClauses : CaseClauses CaseClause

  1. hasDuplicates, CaseClauses'in labelSet argümanıyla ContainsDuplicateLabels değeri olsun.

  2. Eğer hasDuplicates true ise, true döndür.

  3. CaseClause'un labelSet argümanıyla ContainsDuplicateLabels değerini döndür.

CaseClause CaseClause : case Expression : StatementListopt

  1. Eğer StatementList mevcutsa, StatementList'in labelSet argümanıyla ContainsDuplicateLabels değerini döndür.

  2. false döndür.

DefaultClause DefaultClause : default : StatementListopt

  1. Eğer StatementList mevcutsa, StatementList'in labelSet argümanıyla ContainsDuplicateLabels değerini döndür.

  2. false döndür.

LabelledStatement LabelledStatement : LabelIdentifier : LabelledItem

  1. label, LabelIdentifier'ın StringValue değeri olsun.

  2. Eğer labelSet, label'ı içeriyorsa, true döndür.

  3. newLabelSet, labelSet ile « label »'ın liste birleştirmesi olsun.

  4. LabelledItem'in newLabelSet argümanıyla ContainsDuplicateLabels değerini döndür.

LabelledItem LabelledItem : FunctionDeclaration

  1. false döndür.

TryStatement TryStatement : try Block Catch

  1. hasDuplicates, Block'ın labelSet argümanıyla ContainsDuplicateLabels değeri olsun.

  2. Eğer hasDuplicates true ise, true döndür.

  3. Catch'in labelSet argümanıyla ContainsDuplicateLabels değerini döndür.

TryStatement TryStatement : try Block Finally

  1. hasDuplicates, Block'ın labelSet argümanıyla ContainsDuplicateLabels değeri olsun.

  2. Eğer hasDuplicates true ise, true döndür.

  3. Finally'nin labelSet argümanıyla ContainsDuplicateLabels değerini döndür.

TryStatement TryStatement : try Block Catch Finally

  1. Eğer Block'ın labelSet argümanıyla ContainsDuplicateLabels değeri true ise, true döndür.

  2. Eğer Catch'in labelSet argümanıyla ContainsDuplicateLabels değeri true ise, true döndür.

  3. Finally'nin labelSet argümanıyla ContainsDuplicateLabels değerini döndür.

Catch Catch : catch ( CatchParameter ) Block

  1. Block'ın labelSet argümanıyla ContainsDuplicateLabels değerini döndür.

FunctionStatementList FunctionStatementList : [empty]

  1. false döndür.

ClassStaticBlockStatementList ClassStaticBlockStatementList : [empty]

  1. false döndür.

ModuleItemList ModuleItemList : ModuleItemList ModuleItem

  1. hasDuplicates, ModuleItemList'in labelSet argümanıyla ContainsDuplicateLabels değeri olsun.

  2. Eğer hasDuplicates true ise, true döndür.

  3. ModuleItem'nin labelSet argümanıyla ContainsDuplicateLabels değerini döndür.

ModuleItem ModuleItem : ImportDeclaration ExportDeclaration

  1. false döndür.

8.3.2 Statik Anlambilim: ContainsUndefinedBreakTarget

Sözdizimi yönelimli işlem ContainsUndefinedBreakTarget, labelSet (String'lerden oluşan bir Liste) argümanını alır ve bir Boolean döndürür. Aşağıdaki üretimler üzerinde parça parça tanımlanmıştır:

Statement Statement : VariableStatement EmptyStatement ExpressionStatement ContinueStatement ReturnStatement ThrowStatement DebuggerStatement

Block Block : { }

StatementListItem StatementListItem : Declaration

  1. false döndür.

StatementList StatementList : StatementList StatementListItem

  1. hasUndefinedLabels, StatementList'in labelSet argümanıyla ContainsUndefinedBreakTarget değeri olsun.

  2. Eğer hasUndefinedLabels true ise, true döndür.

  3. StatementListItem'nin labelSet argümanıyla ContainsUndefinedBreakTarget değerini döndür.

IfStatement IfStatement : if ( Expression ) Statement else Statement

  1. hasUndefinedLabels, ilk Statement'in labelSet argümanıyla ContainsUndefinedBreakTarget değeri olsun.

  2. Eğer hasUndefinedLabels true ise, true döndür.

  3. İkinci Statement'in labelSet argümanıyla ContainsUndefinedBreakTarget değerini döndür.

IfStatement IfStatement : if ( Expression ) Statement

  1. Statement'in labelSet argümanıyla ContainsUndefinedBreakTarget değerini döndür.

DoWhileStatement DoWhileStatement : do Statement while ( Expression ) ;

  1. Statement'in labelSet argümanıyla ContainsUndefinedBreakTarget değerini döndür.

WhileStatement WhileStatement : while ( Expression ) Statement

  1. Statement'in labelSet argümanıyla ContainsUndefinedBreakTarget değerini döndür.

ForStatement ForStatement : for ( Expressionopt ; Expressionopt ; Expressionopt ) Statement for ( var VariableDeclarationList ; Expressionopt ; Expressionopt ) Statement for ( LexicalDeclaration Expressionopt ; Expressionopt ) Statement

  1. Statement'in labelSet argümanıyla ContainsUndefinedBreakTarget değerini döndür.

ForInOfStatement ForInOfStatement : for ( LeftHandSideExpression in Expression ) Statement for ( var ForBinding in Expression ) Statement for ( ForDeclaration in Expression ) Statement for ( LeftHandSideExpression of AssignmentExpression ) Statement for ( var ForBinding of AssignmentExpression ) Statement for ( ForDeclaration of AssignmentExpression ) Statement for await ( LeftHandSideExpression of AssignmentExpression ) Statement for await ( var ForBinding of AssignmentExpression ) Statement for await ( ForDeclaration of AssignmentExpression ) Statement

  1. Statement'in labelSet argümanıyla ContainsUndefinedBreakTarget değerini döndür.

BreakStatement BreakStatement : break ;

  1. false döndür.

BreakStatement BreakStatement : break LabelIdentifier ;

  1. Eğer labelSet, LabelIdentifier'ın StringValue değerini içeriyorsa, false döndür.

  2. true döndür.

WithStatement WithStatement : with ( Expression ) Statement

  1. Statement'in labelSet argümanıyla ContainsUndefinedBreakTarget değerini döndür.

SwitchStatement SwitchStatement : switch ( Expression ) CaseBlock

  1. CaseBlock'ın labelSet argümanıyla ContainsUndefinedBreakTarget değerini döndür.

CaseBlock CaseBlock : { }

  1. false döndür.

CaseBlock CaseBlock : { CaseClausesopt DefaultClause CaseClausesopt }

  1. false döndür.

CaseBlock CaseBlock : { CaseClausesopt DefaultClause CaseClausesopt }

  1. Eğer ilk CaseClauses mevcutsa, o zaman

    1. Eğer ilk CaseClauses'in labelSet argümanıyla ContainsUndefinedBreakTarget değeri true ise, true döndür.
  2. Eğer DefaultClause'un labelSet argümanıyla ContainsUndefinedBreakTarget değeri true ise, true döndür.

  3. Eğer ikinci CaseClauses mevcut değilse, false döndür.

  4. İkinci CaseClauses'in labelSet argümanıyla ContainsUndefinedBreakTarget değerini döndür.

CaseClauses CaseClauses : CaseClauses CaseClause

  1. hasUndefinedLabels, CaseClauses'in labelSet argümanıyla ContainsUndefinedBreakTarget değeri olsun.

  2. Eğer hasUndefinedLabels true ise, true döndür.

  3. CaseClause'un labelSet argümanıyla ContainsUndefinedBreakTarget değerini döndür.

CaseClause CaseClause : case Expression : StatementListopt

  1. Eğer StatementList mevcutsa, StatementList'in labelSet argümanıyla ContainsUndefinedBreakTarget değerini döndür.

  2. false döndür.

DefaultClause DefaultClause : default : StatementListopt

  1. Eğer StatementList mevcutsa, StatementList'in labelSet argümanıyla ContainsUndefinedBreakTarget değerini döndür.

  2. false döndür.

LabelledStatement LabelledStatement : LabelIdentifier : LabelledItem

  1. label, LabelIdentifier'ın StringValue değeri olsun.

  2. newLabelSet, labelSet ile « label »'ın liste birleştirmesi olsun.

  3. LabelledItem'in newLabelSet argümanıyla ContainsUndefinedBreakTarget değerini döndür.

LabelledItem LabelledItem : FunctionDeclaration

  1. false döndür.

TryStatement TryStatement : try Block Catch

  1. hasUndefinedLabels, Block'ın labelSet argümanıyla ContainsUndefinedBreakTarget değeri olsun.

  2. Eğer hasUndefinedLabels true ise, true döndür.

  3. Catch'in labelSet argümanıyla ContainsUndefinedBreakTarget değerini döndür.

TryStatement TryStatement : try Block Finally

  1. hasUndefinedLabels, Block'ın labelSet argümanıyla ContainsUndefinedBreakTarget değeri olsun.

  2. Eğer hasUndefinedLabels true ise, true döndür.

  3. Finally'nin labelSet argümanıyla ContainsUndefinedBreakTarget değerini döndür.

TryStatement TryStatement : try Block Catch Finally

  1. Eğer Block'ın labelSet argümanıyla ContainsUndefinedBreakTarget değeri true ise, true döndür.

  2. Eğer Catch'in labelSet argümanıyla ContainsUndefinedBreakTarget değeri true ise, true döndür.

  3. Finally'nin labelSet argümanıyla ContainsUndefinedBreakTarget değerini döndür.

Catch Catch : catch ( CatchParameter ) Block

  1. Block'ın labelSet argümanıyla ContainsUndefinedBreakTarget değerini döndür.

FunctionStatementList FunctionStatementList : [empty]

  1. false döndür.

ClassStaticBlockStatementList ClassStaticBlockStatementList : [empty]

  1. false döndür.

ModuleItemList ModuleItemList : ModuleItemList ModuleItem

  1. hasUndefinedLabels, ModuleItemList'in labelSet argümanıyla ContainsUndefinedBreakTarget değeri olsun.

  2. Eğer hasUndefinedLabels true ise, true döndür.

  3. ModuleItem'nin labelSet argümanıyla ContainsUndefinedBreakTarget değerini döndür.

ModuleItem ModuleItem : ImportDeclaration ExportDeclaration

  1. false döndür.

8.3.3 Statik Anlambilim: ContainsUndefinedContinueTarget

Sözdizimi yönelimli işlem ContainsUndefinedContinueTarget, iterationSet (String'lerden oluşan bir Liste) ve labelSet (String'lerden oluşan bir Liste) argümanlarını alır ve bir Boolean döndürür. Aşağıdaki üretimler üzerinde parça parça tanımlanmıştır:

Statement Statement : VariableStatement EmptyStatement ExpressionStatement BreakStatement ReturnStatement ThrowStatement DebuggerStatement

Block Block : { }

StatementListItem StatementListItem : Declaration

  1. false döndür.

Statement Statement : BlockStatement

  1. BlockStatement'in iterationSet ve « » argümanlarıyla ContainsUndefinedContinueTarget değerini döndür.

BreakableStatement BreakableStatement : IterationStatement

  1. newIterationSet, iterationSet ile labelSet'in liste birleştirmesi olsun.

  2. IterationStatement'in newIterationSet ve « » argümanlarıyla ContainsUndefinedContinueTarget değerini döndür.

StatementList StatementList : StatementList StatementListItem

  1. hasUndefinedLabels, StatementList'in iterationSet ve « » argümanlarıyla ContainsUndefinedContinueTarget değeri olsun.

  2. Eğer hasUndefinedLabels true ise, true döndür.

  3. StatementListItem'nin iterationSet ve « » argümanlarıyla ContainsUndefinedContinueTarget değerini döndür.

IfStatement IfStatement : if ( Expression ) Statement else Statement

  1. hasUndefinedLabels, ilk Statement'in iterationSet ve « » argümanlarıyla ContainsUndefinedContinueTarget değeri olsun.

  2. Eğer hasUndefinedLabels true ise, true döndür.

  3. İkinci Statement'in iterationSet ve « » argümanlarıyla ContainsUndefinedContinueTarget değerini döndür.

IfStatement IfStatement : if ( Expression ) Statement

  1. Statement'in iterationSet ve « » argümanlarıyla ContainsUndefinedContinueTarget değerini döndür.

DoWhileStatement DoWhileStatement : do Statement while ( Expression ) ;

  1. Statement'in iterationSet ve « » argümanlarıyla ContainsUndefinedContinueTarget değerini döndür.

WhileStatement WhileStatement : while ( Expression ) Statement

  1. Statement'in iterationSet ve « » argümanlarıyla ContainsUndefinedContinueTarget değerini döndür.

ForStatement ForStatement : for ( Expressionopt ; Expressionopt ; Expressionopt ) Statement for ( var VariableDeclarationList ; Expressionopt ; Expressionopt ) Statement for ( LexicalDeclaration Expressionopt ; Expressionopt ) Statement

  1. Statement'in iterationSet ve « » argümanlarıyla ContainsUndefinedContinueTarget değerini döndür.

ForInOfStatement ForInOfStatement : for ( LeftHandSideExpression in Expression ) Statement for ( var ForBinding in Expression ) Statement for ( ForDeclaration in Expression ) Statement for ( LeftHandSideExpression of AssignmentExpression ) Statement for ( var ForBinding of AssignmentExpression ) Statement for ( ForDeclaration of AssignmentExpression ) Statement for await ( LeftHandSideExpression of AssignmentExpression ) Statement for await ( var ForBinding of AssignmentExpression ) Statement for await ( ForDeclaration of AssignmentExpression ) Statement

  1. Statement'in iterationSet ve « » argümanlarıyla ContainsUndefinedContinueTarget değerini döndür.

ContinueStatement ContinueStatement : continue ;

  1. false döndür.

ContinueStatement ContinueStatement : continue LabelIdentifier ;

  1. Eğer iterationSet, LabelIdentifier'ın StringValue değerini içeriyorsa, false döndür.

  2. true döndür.

WithStatement WithStatement : with ( Expression ) Statement

  1. Statement'in iterationSet ve « » argümanlarıyla ContainsUndefinedContinueTarget değerini döndür.

SwitchStatement SwitchStatement : switch ( Expression ) CaseBlock

  1. CaseBlock'ın iterationSet ve « » argümanlarıyla ContainsUndefinedContinueTarget değerini döndür.

CaseBlock CaseBlock : { }

  1. false döndür.

CaseBlock CaseBlock : { CaseClausesopt DefaultClause CaseClausesopt }

  1. Eğer ilk CaseClauses mevcutsa, o zaman

    1. Eğer ilk CaseClauses'in iterationSet ve « » argümanlarıyla ContainsUndefinedContinueTarget değeri true ise, true döndür.
  2. Eğer DefaultClause'un iterationSet ve « » argümanlarıyla ContainsUndefinedContinueTarget değeri true ise, true döndür.

  3. Eğer ikinci CaseClauses mevcut değilse, false döndür.

  4. İkinci CaseClauses'in iterationSet ve « » argümanlarıyla ContainsUndefinedContinueTarget değerini döndür.

CaseClauses CaseClauses : CaseClauses CaseClause

  1. hasUndefinedLabels, CaseClauses'in iterationSet ve « » argümanlarıyla ContainsUndefinedContinueTarget değeri olsun.

  2. Eğer hasUndefinedLabels true ise, true döndür.

  3. CaseClause'un iterationSet ve « » argümanlarıyla ContainsUndefinedContinueTarget değerini döndür.

CaseClause CaseClause : case Expression : StatementListopt

  1. Eğer StatementList mevcutsa, StatementList'in iterationSet ve « » argümanlarıyla ContainsUndefinedContinueTarget değerini döndür.

  2. false döndür.

DefaultClause DefaultClause : default : StatementListopt

  1. Eğer StatementList mevcutsa, StatementList'in iterationSet ve « » argümanlarıyla ContainsUndefinedContinueTarget değerini döndür.

  2. false döndür.

LabelledStatement LabelledStatement : LabelIdentifier : LabelledItem

  1. label, LabelIdentifier'ın StringValue değeri olsun.

  2. newLabelSet, labelSet ile « label »'ın liste birleştirmesi olsun.

  3. LabelledItem'in iterationSet ve newLabelSet argümanlarıyla ContainsUndefinedContinueTarget değerini döndür.

LabelledItem LabelledItem : FunctionDeclaration

  1. false döndür.

TryStatement TryStatement : try Block Catch

  1. hasUndefinedLabels, Block'ın iterationSet ve « » argümanlarıyla ContainsUndefinedContinueTarget değeri olsun.

  2. Eğer hasUndefinedLabels true ise, true döndür.

  3. Catch'in iterationSet ve « » argümanlarıyla ContainsUndefinedContinueTarget değerini döndür.

TryStatement TryStatement : try Block Finally

  1. hasUndefinedLabels, Block'ın iterationSet ve « » argümanlarıyla ContainsUndefinedContinueTarget değeri olsun.

  2. Eğer hasUndefinedLabels true ise, true döndür.

  3. Finally'nin iterationSet ve « » argümanlarıyla ContainsUndefinedContinueTarget değerini döndür.

TryStatement TryStatement : try Block Catch Finally

  1. Eğer Block'ın iterationSet ve « » argümanlarıyla ContainsUndefinedContinueTarget değeri true ise, true döndür.

  2. Eğer Catch'in iterationSet ve « » argümanlarıyla ContainsUndefinedContinueTarget değeri true ise, true döndür.

  3. Finally'nin iterationSet ve « » argümanlarıyla ContainsUndefinedContinueTarget değerini döndür.

Catch Catch : catch ( CatchParameter ) Block

  1. Block'ın iterationSet ve « » argümanlarıyla ContainsUndefinedContinueTarget değerini döndür.

FunctionStatementList FunctionStatementList : [empty]

  1. false döndür.

ClassStaticBlockStatementList ClassStaticBlockStatementList : [empty]

  1. false döndür.

ModuleItemList ModuleItemList : ModuleItemList ModuleItem

  1. hasUndefinedLabels, ModuleItemList'in iterationSet ve « » argümanlarıyla ContainsUndefinedContinueTarget değeri olsun.

  2. Eğer hasUndefinedLabels true ise, true döndür.

  3. ModuleItem'nin iterationSet ve « » argümanlarıyla ContainsUndefinedContinueTarget değerini döndür.

ModuleItem ModuleItem : ImportDeclaration ExportDeclaration

  1. 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

  1. expr, CoverParenthesizedExpressionAndArrowParameterList tarafından kapsanan ParenthesizedExpression olsun.

  2. Eğer expr'in IsFunctionDefinition değeri false ise, false döndür.

  3. 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

  1. 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

  1. 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

  1. expr, CoverParenthesizedExpressionAndArrowParameterList tarafından kapsanan ParenthesizedExpression olsun.

  2. 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

  1. 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

  1. 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:

  1. Eğer expr'in IsFunctionDefinition değeri false ise, false döndür.

  2. hasName, expr'in HasName değeri olsun.

  3. Eğer hasName true ise, false döndür.

  4. 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

  1. 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

  1. 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

  1. expr, CoverParenthesizedExpressionAndArrowParameterList tarafından kapsanan ParenthesizedExpression olsun.

  2. ? expr'in name argümanıyla NamedEvaluation değerini döndür.

ParenthesizedExpression ParenthesizedExpression : ( Expression )

  1. Assert: IsAnonymousFunctionDefinition(Expression) true'dur.

  2. ? Expression'in name argümanıyla NamedEvaluation değerini döndür.

FunctionExpression FunctionExpression : function ( FormalParameters ) { FunctionBody }

  1. FunctionExpression'in name argümanıyla InstantiateOrdinaryFunctionExpression değerini döndür.

GeneratorExpression GeneratorExpression : function ***** ( FormalParameters ) { GeneratorBody }

  1. GeneratorExpression'in name argümanıyla InstantiateGeneratorFunctionExpression değerini döndür.

AsyncGeneratorExpression AsyncGeneratorExpression : async function ***** ( FormalParameters ) { AsyncGeneratorBody }

  1. AsyncGeneratorExpression'in name argümanıyla InstantiateAsyncGeneratorFunctionExpression değerini döndür.

AsyncFunctionExpression AsyncFunctionExpression : async function ( FormalParameters ) { AsyncFunctionBody }

  1. AsyncFunctionExpression'in name argümanıyla InstantiateAsyncFunctionExpression değerini döndür.

ArrowFunction ArrowFunction : ArrowParameters => ConciseBody

  1. ArrowFunction'un name argümanıyla InstantiateArrowFunctionExpression değerini döndür.

AsyncArrowFunction AsyncArrowFunction : async AsyncArrowBindingIdentifier => AsyncConciseBody CoverCallExpressionAndAsyncArrowHead => AsyncConciseBody

  1. AsyncArrowFunction'un name argümanıyla InstantiateAsyncArrowFunctionExpression değerini döndür.

ClassExpression ClassExpression : class ClassTail

  1. sourceText, ClassExpression tarafından eşleşen kaynak metin olsun.

  2. ? 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:

  1. Bu Parse Node'un her child alt düğümü için,

    1. Eğer child, symbol'ün bir örneğiyse, true döndür.

    2. Eğer child bir uçolmayan örneğiyse, o zaman

      1. contained, child'ın symbolContains işleminin sonucu olsun.

      2. Eğer contained true ise, true döndür.

  2. 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 }

  1. false döndür.

ClassTail ClassTail : ClassHeritageopt { ClassBody }

  1. Eğer symbol, ClassBody ise, true döndür.

  2. Eğer symbol, ClassHeritage ise, o zaman

    1. Eğer ClassHeritage mevcutsa, true döndür.

    2. false döndür.

  3. Eğer ClassHeritage mevcutsa, o zaman

    1. Eğer ClassHeritage'ın symbolContains değeri true ise, true döndür.
  4. ClassBody'nin symbol argümanıyla ComputedPropertyContains sonucunu döndür.

ClassStaticBlock ClassStaticBlock : static { ClassStaticBlockBody }

  1. false döndür.

ArrowFunction ArrowFunction : ArrowParameters => ConciseBody

  1. Eğer symbol; NewTarget, SuperProperty, SuperCall, super veya this'ten biri değilse, false döndür.

  2. Eğer ArrowParameters'ın symbolContains değeri true ise, true döndür.

  3. ConciseBody'nin symbolContains değerini döndür.

ArrowParameters ArrowParameters : CoverParenthesizedExpressionAndArrowParameterList

  1. formals, CoverParenthesizedExpressionAndArrowParameterList tarafından kapsanan ArrowFormalParameters olsun.

  2. formals'ın symbolContains değerini döndür.

AsyncArrowFunction AsyncArrowFunction : async AsyncArrowBindingIdentifier => AsyncConciseBody

  1. Eğer symbol; NewTarget, SuperProperty, SuperCall, super veya this'ten biri değilse, false döndür.

  2. AsyncConciseBody'nin symbolContains değerini döndür.

AsyncArrowFunction AsyncArrowFunction : CoverCallExpressionAndAsyncArrowHead => AsyncConciseBody

  1. Eğer symbol; NewTarget, SuperProperty, SuperCall, super veya this'ten biri değilse, false döndür.

  2. head, CoverCallExpressionAndAsyncArrowHead tarafından kapsanan AsyncArrowHead olsun.

  3. Eğer head'in symbolContains değeri true ise, true döndür.

  4. AsyncConciseBody'nin symbolContains değerini döndür.

PropertyDefinition PropertyDefinition : MethodDefinition

  1. Eğer symbol, MethodDefinition ise, true döndür.

  2. MethodDefinition'ın symbol argümanıyla ComputedPropertyContains sonucunu döndür.

LiteralPropertyName LiteralPropertyName : IdentifierName

  1. false döndür.

MemberExpression MemberExpression : MemberExpression . IdentifierName

  1. Eğer MemberExpression'in symbolContains değeri true ise, true döndür.

  2. false döndür.

SuperProperty SuperProperty : super . IdentifierName

  1. Eğer symbol, super ReservedWord ise, true döndür.

  2. false döndür.

CallExpression CallExpression : CallExpression . IdentifierName

  1. Eğer CallExpression'in symbolContains değeri true ise, true döndür.

  2. false döndür.

OptionalChain OptionalChain : ?. IdentifierName

  1. false döndür.

OptionalChain OptionalChain : OptionalChain . IdentifierName

  1. Eğer OptionalChain'in symbolContains değeri true ise, true döndür.

  2. false döndür.

8.5.2 Statik Anlambilim: ComputedPropertyContains

Sözdizimi yönelimli işlem ComputedPropertyContains, symbol (bir dilbilgisi sembolü) argümanını alır ve bir Boolean döndürür. Aşağıdaki üretimler üzerinde parça parça tanımlanmıştır:

ClassElementName ClassElementName : PrivateIdentifier

PropertyName PropertyName : LiteralPropertyName

  1. false döndür.

PropertyName PropertyName : ComputedPropertyName

  1. ComputedPropertyName'in symbolContains değerini döndür.

MethodDefinition MethodDefinition : ClassElementName ( UniqueFormalParameters ) { FunctionBody } get ClassElementName ( ) { FunctionBody } set ClassElementName ( PropertySetParameterList ) { FunctionBody }

  1. ClassElementName'in symbol argümanıyla ComputedPropertyContains sonucunu döndür.

GeneratorMethod GeneratorMethod : ***** ClassElementName ( UniqueFormalParameters ) { GeneratorBody }

  1. ClassElementName'in symbol argümanıyla ComputedPropertyContains sonucunu döndür.

AsyncGeneratorMethod AsyncGeneratorMethod : async ***** ClassElementName ( UniqueFormalParameters ) { AsyncGeneratorBody }

  1. ClassElementName'in symbol argümanıyla ComputedPropertyContains sonucunu döndür.

ClassElementList ClassElementList : ClassElementList ClassElement

  1. inList, ClassElementList'in symbol argümanıyla ComputedPropertyContains değeri olsun.

  2. Eğer inList true ise, true döndür.

  3. ClassElement'in symbol argümanıyla ComputedPropertyContains sonucunu döndür.

ClassElement ClassElement : ClassStaticBlock

  1. false döndür.

ClassElement ClassElement : ;

  1. false döndür.

AsyncMethod AsyncMethod : async ClassElementName ( UniqueFormalParameters ) { AsyncFunctionBody }

  1. ClassElementName'in symbol argümanıyla ComputedPropertyContains sonucunu döndür.

FieldDefinition FieldDefinition : ClassElementName Initializeropt

  1. ClassElementName'in symbol argümanıyla ComputedPropertyContains sonucunu döndür.

8.6 Diğer

Bu işlemler, belirtim boyunca birden çok yerde kullanılır.

8.6.1 Çalışma Zamanı Anlambilimi: InstantiateFunctionObject

Sözdizimi yönelimli işlem InstantiateFunctionObject, envRecord (bir Environment Record) ve privateEnv (bir PrivateEnvironment Record veya null) argümanlarını alır ve bir ECMAScript işlev nesnesi döndürür. Aşağıdaki üretimler üzerinde parça parça tanımlanmıştır:

FunctionDeclaration FunctionDeclaration : function BindingIdentifier ( FormalParameters ) { FunctionBody } function ( FormalParameters ) { FunctionBody }

  1. FunctionDeclaration'ın envRecord ve privateEnv argümanlarıyla InstantiateOrdinaryFunctionObject değerini döndür.

GeneratorDeclaration GeneratorDeclaration : function ***** BindingIdentifier ( FormalParameters ) { GeneratorBody } function ***** ( FormalParameters ) { GeneratorBody }

  1. GeneratorDeclaration'ın envRecord ve privateEnv argümanlarıyla InstantiateGeneratorFunctionObject değerini döndür.

AsyncGeneratorDeclaration AsyncGeneratorDeclaration : async function ***** BindingIdentifier ( FormalParameters ) { AsyncGeneratorBody } async function ***** ( FormalParameters ) { AsyncGeneratorBody }

  1. AsyncGeneratorDeclaration'ın envRecord ve privateEnv argümanlarıyla InstantiateAsyncGeneratorFunctionObject değerini döndür.

AsyncFunctionDeclaration AsyncFunctionDeclaration : async function BindingIdentifier ( FormalParameters ) { AsyncFunctionBody } async function ( FormalParameters ) { AsyncFunctionBody }

  1. AsyncFunctionDeclaration'ın envRecord ve privateEnv argümanlarıyla InstantiateAsyncFunctionObject değerini döndür.

8.6.2 Çalışma Zamanı Anlambilimi: BindingInitialization

Sözdizimi yönelimli işlem BindingInitialization, value (bir ECMAScript dil değeri) ve envRecord (bir Environment Record veya undefined) argümanlarını alır ve ya unused 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:

BindingIdentifier BindingIdentifier : Identifier

  1. name, Identifier'ın StringValue değeri olsun.

  2. ? InitializeBoundName(name, value, envRecord) döndür.

BindingIdentifier BindingIdentifier : yield

  1. ? InitializeBoundName("yield", value, envRecord) döndür.

BindingIdentifier BindingIdentifier : await

  1. ? InitializeBoundName("await", value, envRecord) döndür.

BindingPattern BindingPattern : ObjectBindingPattern

  1. ? RequireObjectCoercible(value) işlemini gerçekleştir.

  2. ? ObjectBindingPattern'in value ve envRecord argümanlarıyla BindingInitialization değerini döndür.

BindingPattern BindingPattern : ArrayBindingPattern

  1. iteratorRecord = ? GetIterator(value, sync) olsun.

  2. result = Completion(ArrayBindingPattern'in iteratorRecord ve envRecord argümanlarıyla IteratorBindingInitialization değeri) olsun.

  3. Eğer iteratorRecord.[[Done]] false ise, ? IteratorClose(iteratorRecord, result) döndür.

  4. ? result döndür.

ObjectBindingPattern ObjectBindingPattern : { }

  1. unused döndür.

ObjectBindingPattern ObjectBindingPattern : { BindingPropertyList } { BindingPropertyList , }

  1. ? BindingPropertyList'in value ve envRecord argümanlarıyla PropertyBindingInitialization işlemini gerçekleştir.

  2. unused döndür.

ObjectBindingPattern ObjectBindingPattern : { BindingRestProperty }

  1. excludedNames yeni bir boş Liste olsun.

  2. ? BindingRestProperty'in value, envRecord ve excludedNames argümanlarıyla RestBindingInitialization değerini döndür.

ObjectBindingPattern ObjectBindingPattern : { BindingPropertyList , BindingRestProperty }

  1. excludedNames = ? BindingPropertyList'in value ve envRecord argümanlarıyla PropertyBindingInitialization değeri olsun.

  2. ? BindingRestProperty'in value, envRecord ve excludedNames argümanlarıyla RestBindingInitialization değerini döndür.

8.6.2.1 InitializeBoundName ( name, value, envRecord )

Soyut işlem InitializeBoundName, name (bir String), value (bir ECMAScript dil değeri) ve envRecord (bir Environment Record veya undefined) argümanlarını alır ve ya unused içeren normal tamamlanma ya da bir ani tamamlanma döndürür. Çağrıldığında aşağıdaki adımları gerçekleştirir:

  1. Eğer envRecord undefined değilse, o zaman

    1. ! envRecord.InitializeBinding(name, value) işlemini gerçekleştir.

    2. unused döndür.

  2. lhs = ? ResolveBinding(name) olsun.

  3. ? PutValue(lhs, value) döndür.

8.6.3 Çalışma Zamanı Anlambilimi: IteratorBindingInitialization

Sözdizimi yönelimli işlem IteratorBindingInitialization, iteratorRecord (bir Iterator Record) ve envRecord (bir Environment Record veya undefined) argümanlarını alır ve ya unused 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:

ArrayBindingPattern ArrayBindingPattern : [ ]

  1. unused döndür.

ArrayBindingPattern ArrayBindingPattern : [ Elision ]

  1. ? Elision'ın iteratorRecord argümanıyla IteratorDestructuringAssignmentEvaluation değerini döndür.

ArrayBindingPattern ArrayBindingPattern : [ Elisionopt BindingRestElement ]

  1. Eğer Elision mevcutsa, o zaman

    1. ? Elision'ın iteratorRecord argümanıyla IteratorDestructuringAssignmentEvaluation işlemini gerçekleştir.
  2. ? BindingRestElement'in iteratorRecord ve envRecord argümanlarıyla IteratorBindingInitialization değerini döndür.

ArrayBindingPattern ArrayBindingPattern : [ BindingElementList , Elision ]

  1. ? BindingElementList'in iteratorRecord ve envRecord argümanlarıyla IteratorBindingInitialization işlemini gerçekleştir.

  2. ? Elision'ın iteratorRecord argümanıyla IteratorDestructuringAssignmentEvaluation değerini döndür.

ArrayBindingPattern ArrayBindingPattern : [ BindingElementList , Elisionopt BindingRestElement ]

  1. ? BindingElementList'in iteratorRecord ve envRecord argümanlarıyla IteratorBindingInitialization işlemini gerçekleştir.

  2. Eğer Elision mevcutsa, o zaman

    1. ? Elision'ın iteratorRecord argümanıyla IteratorDestructuringAssignmentEvaluation işlemini gerçekleştir.
  3. ? BindingRestElement'in iteratorRecord ve envRecord argümanlarıyla IteratorBindingInitialization değerini döndür.

BindingElementList BindingElementList : BindingElementList , BindingElisionElement

  1. ? BindingElementList'in iteratorRecord ve envRecord argümanlarıyla IteratorBindingInitialization işlemini gerçekleştir.

  2. ? BindingElisionElement'in iteratorRecord ve envRecord argümanlarıyla IteratorBindingInitialization değerini döndür.

BindingElisionElement BindingElisionElement : Elision BindingElement

  1. ? Elision'ın iteratorRecord argümanıyla IteratorDestructuringAssignmentEvaluation işlemini gerçekleştir.

  2. ? BindingElement'in iteratorRecord ve envRecord argümanlarıyla IteratorBindingInitialization değerini döndür.

SingleNameBinding SingleNameBinding : BindingIdentifier Initializeropt

  1. bindingId, BindingIdentifier'ın StringValue değeri olsun.

  2. lhs = ? ResolveBinding(bindingId, envRecord) olsun.

  3. v = undefined olsun.

  4. Eğer iteratorRecord.[[Done]] false ise, o zaman

    1. next = ? IteratorStepValue(iteratorRecord) olsun.

    2. Eğer next, done değilse, o zaman

      1. v'yi next olarak ayarla.
  5. Eğer Initializer mevcutsa ve v, undefined ise, o zaman

    1. Eğer IsAnonymousFunctionDefinition(Initializer) true ise, o zaman

      1. v = ? Initializer'ın bindingId argümanıyla NamedEvaluation değeri olsun.
    2. Değilse,

      1. defaultValue = ? Initializer'ın Evaluation değeri olsun.

      2. v = ? GetValue(defaultValue) olsun.

  6. Eğer envRecord undefined ise, ? PutValue(lhs, v) döndür.

  7. ? InitializeReferencedBinding(lhs, v) döndür.

BindingElement BindingElement : BindingPattern Initializeropt

  1. v = undefined olsun.

  2. Eğer iteratorRecord.[[Done]] false ise, o zaman

    1. next = ? IteratorStepValue(iteratorRecord) olsun.

    2. Eğer next, done değilse, o zaman

      1. v'yi next olarak ayarla.
  3. Eğer Initializer mevcutsa ve v, undefined ise, o zaman

    1. defaultValue = ? Initializer'ın Evaluation değeri olsun.

    2. v = ? GetValue(defaultValue) olsun.

  4. ? BindingPattern'in v ve envRecord argümanlarıyla BindingInitialization değerini döndür.

BindingRestElement BindingRestElement : ... BindingIdentifier

  1. lhs = ? ResolveBinding(BindingIdentifier'ın StringValue değeri, envRecord) olsun.

  2. array = ! ArrayCreate(0) olsun.

  3. n = 0 olsun.

  4. Tekrar et,

    1. next = done olsun.

    2. Eğer iteratorRecord.[[Done]] false ise, o zaman

      1. next = ? IteratorStepValue(iteratorRecord) olsun.
    3. Eğer next, done ise, o zaman

      1. Eğer envRecord undefined ise, ? PutValue(lhs, array) döndür.

      2. ? InitializeReferencedBinding(lhs, array) döndür.

    4. ! CreateDataPropertyOrThrow(array, ! ToString(𝔽(n)), next) işlemini gerçekleştir.

    5. n'yi n + 1 olarak ayarla.

BindingRestElement BindingRestElement : ... BindingPattern

  1. array = ! ArrayCreate(0) olsun.

  2. n = 0 olsun.

  3. Tekrar et,

    1. next = done olsun.

    2. Eğer iteratorRecord.[[Done]] false ise, o zaman

      1. next = ? IteratorStepValue(iteratorRecord) olsun.
    3. Eğer next, done ise, o zaman

      1. ? BindingPattern'in array ve envRecord argümanlarıyla BindingInitialization değerini döndür.
    4. ! CreateDataPropertyOrThrow(array, ! ToString(𝔽(n)), next) işlemini gerçekleştir.

    5. n'yi n + 1 olarak ayarla.

FormalParameters FormalParameters : [empty]

  1. unused döndür.

FormalParameters FormalParameters : FormalParameterList , FunctionRestParameter

  1. ? FormalParameterList'in iteratorRecord ve envRecord argümanlarıyla IteratorBindingInitialization işlemini gerçekleştir.

  2. ? FunctionRestParameter'ın iteratorRecord ve envRecord argümanlarıyla IteratorBindingInitialization değerini döndür.

FormalParameterList FormalParameterList : FormalParameterList , FormalParameter

  1. ? FormalParameterList'in iteratorRecord ve envRecord argümanlarıyla IteratorBindingInitialization işlemini gerçekleştir.

  2. ? FormalParameter'ın iteratorRecord ve envRecord argümanlarıyla IteratorBindingInitialization değerini döndür.

ArrowParameters ArrowParameters : BindingIdentifier

  1. v = undefined olsun.

  2. Assert: iteratorRecord.[[Done]] false'dır.

  3. next = ? IteratorStepValue(iteratorRecord) olsun.

  4. Eğer next, done değilse, o zaman

    1. v'yi next olarak ayarla.
  5. ? BindingIdentifier'ın v ve envRecord argümanlarıyla BindingInitialization değerini döndür.

ArrowParameters ArrowParameters : CoverParenthesizedExpressionAndArrowParameterList

  1. formals, CoverParenthesizedExpressionAndArrowParameterList tarafından kapsanan ArrowFormalParameters olsun.

  2. ? formals'ın iteratorRecord ve envRecord argümanlarıyla IteratorBindingInitialization değerini döndür.

AsyncArrowBindingIdentifier AsyncArrowBindingIdentifier : BindingIdentifier

  1. v = undefined olsun.

  2. Assert: iteratorRecord.[[Done]] false'dır.

  3. next = ? IteratorStepValue(iteratorRecord) olsun.

  4. Eğer next, done değilse, o zaman

    1. v'yi next olarak ayarla.
  5. ? BindingIdentifier'ın v ve envRecord argümanlarıyla BindingInitialization değerini döndür.

8.6.4 Statik Anlambilim: AssignmentTargetType

Sözdizimi yönelimli işlem AssignmentTargetType hiçbir argüman almaz ve simple, web-compat veya invalid döndürür. Aşağıdaki üretimler üzerinde parça parça tanımlanmıştır:

IdentifierReference IdentifierReference : Identifier

  1. Eğer IsStrict(bu IdentifierReference) true ise ve Identifier'ın StringValue değeri "eval" veya "arguments" ise, invalid döndür.

  2. simple döndür.

IdentifierReference IdentifierReference : yield await

CallExpression CallExpression : CallExpression [ Expression ] CallExpression . IdentifierName CallExpression . PrivateIdentifier

MemberExpression MemberExpression : MemberExpression [ Expression ] MemberExpression . IdentifierName SuperProperty MemberExpression . PrivateIdentifier

  1. simple döndür.

PrimaryExpression PrimaryExpression : CoverParenthesizedExpressionAndArrowParameterList

  1. expr, CoverParenthesizedExpressionAndArrowParameterList tarafından kapsanan ParenthesizedExpression olsun.

  2. expr'in AssignmentTargetType değerini döndür.

CallExpression CallExpression : CoverCallExpressionAndAsyncArrowHead CallExpression Arguments

  1. Normative OptionalEğer konak bir web tarayıcısı ise veya İşlev Çağrısı Atama Hedefleri için Çalışma Zamanı Hatalarını başka şekilde destekliyorsa ve IsStrict(bu CallExpression) false ise, o zaman

    1. web-compat döndür.
  2. invalid döndür.

PrimaryExpression PrimaryExpression : this Literal ArrayLiteral ObjectLiteral FunctionExpression ClassExpression GeneratorExpression AsyncFunctionExpression AsyncGeneratorExpression RegularExpressionLiteral TemplateLiteral

CallExpression CallExpression : SuperCall ImportCall CallExpression TemplateLiteral

NewExpression NewExpression : new NewExpression

MemberExpression MemberExpression : MemberExpression TemplateLiteral new MemberExpression Arguments

NewTarget NewTarget : new . target

ImportMeta ImportMeta : import . meta

LeftHandSideExpression LeftHandSideExpression : 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 ArrowFunction AsyncArrowFunction LeftHandSideExpression = AssignmentExpression LeftHandSideExpression AssignmentOperator AssignmentExpression LeftHandSideExpression &&= AssignmentExpression LeftHandSideExpression ||= AssignmentExpression LeftHandSideExpression ??= AssignmentExpression

Expression Expression : Expression , AssignmentExpression

  1. invalid döndür.

8.6.5 Statik Anlambilim: PropName

Sözdizimi yönelimli işlem PropName hiçbir argüman almaz ve bir String veya empty döndürür. Aşağıdaki üretimler üzerinde parça parça tanımlanmıştır:

PropertyDefinition PropertyDefinition : IdentifierReference

  1. IdentifierReference'ın StringValue değerini döndür.

PropertyDefinition PropertyDefinition : ... AssignmentExpression

  1. empty döndür.

PropertyDefinition PropertyDefinition : PropertyName : AssignmentExpression

  1. PropertyName'in PropName değerini döndür.

LiteralPropertyName LiteralPropertyName : IdentifierName

AttributeKey AttributeKey : IdentifierName

  1. IdentifierName'in StringValue değerini döndür.

LiteralPropertyName LiteralPropertyName : StringLiteral

AttributeKey AttributeKey : StringLiteral

  1. StringLiteral'ın SV değerini döndür.

LiteralPropertyName LiteralPropertyName : NumericLiteral

  1. number, NumericLiteral'ın NumericValue değeri olsun.

  2. ! ToString(number) döndür.

ComputedPropertyName ComputedPropertyName : [ AssignmentExpression ]

  1. empty döndür.

MethodDefinition MethodDefinition : ClassElementName ( UniqueFormalParameters ) { FunctionBody } get ClassElementName ( ) { FunctionBody } set ClassElementName ( PropertySetParameterList ) { FunctionBody }

  1. ClassElementName'in PropName değerini döndür.

GeneratorMethod GeneratorMethod : ***** ClassElementName ( UniqueFormalParameters ) { GeneratorBody }

  1. ClassElementName'in PropName değerini döndür.

AsyncGeneratorMethod AsyncGeneratorMethod : async ***** ClassElementName ( UniqueFormalParameters ) { AsyncGeneratorBody }

  1. ClassElementName'in PropName değerini döndür.

ClassElement ClassElement : ClassStaticBlock

  1. empty döndür.

ClassElement ClassElement : ;

  1. empty döndür.

AsyncMethod AsyncMethod : async ClassElementName ( UniqueFormalParameters ) { AsyncFunctionBody }

  1. ClassElementName'in PropName değerini döndür.

FieldDefinition FieldDefinition : ClassElementName Initializeropt

  1. ClassElementName'in PropName değerini döndür.

ClassElementName ClassElementName : PrivateIdentifier

  1. empty döndür.