diff --git a/spec.html b/spec.html
index 5c6e29f82f3..e4df3823974 100644
--- a/spec.html
+++ b/spec.html
@@ -3063,7 +3063,7 @@
CreateByteDataBlock ( _size_ )
name: CreateByteDataBlock
parameters:
- - _size_ : integer
+ - _size_ : Integer_
returns:
- normal : TBD
- abrupt : TBD
@@ -4196,7 +4196,7 @@ IsCallable ( _argument_ )
name: IsCallable
parameters:
- - _argument_ : an ECMAScript language value
+ - _argument_ : Tangible_
returns:
- normal : TBD
- abrupt : TBD
@@ -4215,7 +4215,7 @@ IsConstructor ( _argument_ )
name: IsConstructor
parameters:
- - _argument_ : an ECMAScript language value
+ - _argument_ : Tangible_
returns:
- normal : TBD
- abrupt : TBD
@@ -4272,7 +4272,7 @@ IsPropertyKey ( _argument_ )
name: IsPropertyKey
parameters:
- - _argument_ : an ECMAScript language value
+ - _argument_ : Tangible_
returns:
- normal : TBD
- abrupt : TBD
@@ -4311,8 +4311,8 @@ SameValue ( _x_, _y_ )
name: SameValue
parameters:
- - _x_ : an ECMAScript language value
- - _y_ : an ECMAScript language value
+ - _x_ : Tangible_
+ - _y_ : Tangible_
returns:
- normal : Boolean
- abrupt : TBD
@@ -4338,8 +4338,8 @@ SameValueZero ( _x_, _y_ )
name: SameValueZero
parameters:
- - _x_ : an ECMAScript language value
- - _y_ : an ECMAScript language value
+ - _x_ : Tangible_
+ - _y_ : Tangible_
returns:
- normal : Boolean
- abrupt : TBD
@@ -4364,11 +4364,12 @@ SameValueNonNumber ( _x_, _y_ )
name: SameValueNonNumber
parameters:
- - _x_ : something other than a Number value
- - _y_ : something other than a Number value
+ - _x_ : Tangible_
+ - _y_ : Tangible_
returns:
- normal : Boolean
- abrupt : TBD
+ description: neither _x_ nor _y_ are Number values.
1. Assert: Type(_x_) is not Number.
@@ -4391,8 +4392,8 @@ Abstract Relational Comparison
name: Abstract Relational Comparison
parameters:
- - _x_ : a value
- - _y_ : a value
+ - _x_ : Tangible_
+ - _y_ : Tangible_
- _LeftFirst_ : Boolean
returns:
- normal : Boolean | Undefined
@@ -4441,8 +4442,8 @@ Abstract Equality Comparison
name: Abstract Equality Comparison
parameters:
- - _x_ : a value
- - _y_ : a value
+ - _x_ : Tangible_
+ - _y_ : Tangible_
returns:
- normal : Boolean
- abrupt : TBD
@@ -4469,8 +4470,8 @@ Strict Equality Comparison
name: Strict Equality Comparison
parameters:
- - _x_ : a value
- - _y_ : a value
+ - _x_ : Tangible_
+ - _y_ : Tangible_
returns:
- normal : Boolean
- abrupt : TBD
@@ -4523,7 +4524,7 @@ GetV ( _V_, _P_ )
name: GetV
parameters:
- - _V_ : the value
+ - _V_ : Tangible_
- _P_ : String | Symbol
returns:
- normal : TBD
@@ -4545,7 +4546,7 @@ Set ( _O_, _P_, _V_, _Throw_ )
parameters:
- _O_ : Object
- _P_ : String | Symbol
- - _V_ : a value
+ - _V_ : Tangible_
- _Throw_ : Boolean
returns:
- normal : TBD
@@ -4570,7 +4571,7 @@ CreateDataProperty ( _O_, _P_, _V_ )
parameters:
- _O_ : Object
- _P_ : String | Symbol
- - _V_ : a value
+ - _V_ : Tangible_
returns:
- normal : TBD
- abrupt : TBD
@@ -4595,7 +4596,7 @@ CreateMethodProperty ( _O_, _P_, _V_ )
parameters:
- _O_ : Object
- _P_ : String | Symbol
- - _V_ : a value
+ - _V_ : Tangible_
returns:
- normal : TBD
- abrupt : TBD
@@ -4620,7 +4621,7 @@ CreateDataPropertyOrThrow ( _O_, _P_, _V_ )
parameters:
- _O_ : Object
- _P_ : String | Symbol
- - _V_ : a value
+ - _V_ : Tangible_
returns:
- normal : TBD
- abrupt : throw *TypeError*
@@ -4689,7 +4690,7 @@ GetMethod ( _V_, _P_ )
name: GetMethod
parameters:
- - _V_ : the ECMAScript language value
+ - _V_ : Tangible_
- _P_ : String | Symbol
returns:
- normal : TBD
@@ -4753,9 +4754,9 @@ Call ( _F_, _V_ [ , _argumentsList_ ] )
name: Call
parameters:
- - _F_ : the function object
- - _V_ : an ECMAScript language value
- - _argumentsList_ : (optional) a List of values
+ - _F_ : function_object_
+ - _V_ : Tangible_
+ - _argumentsList_ : (optional) List of Tangible_
returns:
- normal : TBD
- abrupt : TBD
@@ -4774,9 +4775,9 @@ Construct ( _F_ [ , _argumentsList_ [ , _newTarget_ ]] )
name: Construct
parameters:
- - _F_ : the function object
- - _argumentsList_ : (optional) a List of values
- - _newTarget_ : (optional) a value
+ - _F_ : function_object_
+ - _argumentsList_ : (optional) List of Tangible_
+ - _newTarget_ : (optional) Tangible_
returns:
- normal : TBD
- abrupt : TBD
@@ -4889,8 +4890,8 @@ CreateListFromArrayLike ( _obj_ [ , _elementTypes_ ] )
name: CreateListFromArrayLike
parameters:
- - _obj_ : an array-like object
- - _elementTypes_ : (optional) a List of ECMAScript Language Type names
+ - _obj_ : Object
+ - _elementTypes_ : (optional) List of LangTypeName_
returns:
- normal : TBD
- abrupt : TBD
@@ -4918,9 +4919,9 @@ Invoke ( _V_, _P_ [ , _argumentsList_ ] )
name: Invoke
parameters:
- - _V_ : a value
+ - _V_ : Tangible_
- _P_ : String | Symbol
- - _argumentsList_ : (optional) a List of values
+ - _argumentsList_ : (optional) List of Tangible_
returns:
- normal : TBD
- abrupt : TBD
@@ -4941,7 +4942,7 @@ OrdinaryHasInstance ( _C_, _O_ )
name: OrdinaryHasInstance
parameters:
- - _C_ : a constructor
+ - _C_ : constructor_object_
- _O_ : Object
returns:
- normal : TBD
@@ -4970,7 +4971,7 @@ SpeciesConstructor ( _O_, _defaultConstructor_ )
name: SpeciesConstructor
parameters:
- _O_ : Object
- - _defaultConstructor_ : a constructor
+ - _defaultConstructor_ : constructor_object_
returns:
- normal : TBD
- abrupt : TBD
@@ -5140,7 +5141,7 @@ IteratorStep ( _iterator_ )
parameters:
- _iterator_ : TBD
returns:
- - normal : *false* or an IteratoreResult object
+ - normal : Boolean | IteratoreResult_object_
- abrupt : TBD
description: requests the next value from _iterator_ and returns either *false* indicating that the iterator has reached its end or the IteratorResult object if a next value is available.
@@ -7113,7 +7114,7 @@ OrdinarySetPrototypeOf ( _O_, _V_ )
name: OrdinarySetPrototypeOf
parameters:
- _O_ : Object
- - _V_ : value
+ - _V_ : Tangible_
returns:
- normal : TBD
- abrupt : TBD
@@ -7379,7 +7380,7 @@ OrdinaryGet ( _O_, _P_, _Receiver_ )
parameters:
- _O_ : Object
- _P_ : String | Symbol
- - _Receiver_ : ECMAScript language value
+ - _Receiver_ : Tangible_
returns:
- normal : TBD
- abrupt : TBD
@@ -7416,8 +7417,8 @@ OrdinarySet ( _O_, _P_, _V_, _Receiver_ )
parameters:
- _O_ : Object
- _P_ : String | Symbol
- - _V_ : value
- - _Receiver_ : ECMAScript language value
+ - _V_ : Tangible_
+ - _Receiver_ : Tangible_
returns:
- normal : TBD
- abrupt : TBD
@@ -7522,7 +7523,7 @@ ObjectCreate ( _proto_ [ , _internalSlotsList_ ] )
name: ObjectCreate
parameters:
- _proto_ : Object | Null
- - _internalSlotsList_ : (optional) a List of slot-names
+ - _internalSlotsList_ : (optional) List of SlotName_
returns:
- normal : TBD
- abrupt : TBD
@@ -7546,7 +7547,7 @@ OrdinaryCreateFromConstructor ( _constructor_, _intrinsicDefaultProto_ [ , _
parameters:
- _constructor_ : TBD
- _intrinsicDefaultProto_ : TBD
- - _internalSlotsList_ : (optional) a List of slot-names
+ - _internalSlotsList_ : (optional) List of SlotName_
returns:
- normal : TBD
- abrupt : TBD
@@ -7748,8 +7749,8 @@ PrepareForOrdinaryCall ( _F_, _newTarget_ )
name: PrepareForOrdinaryCall
parameters:
- - _F_ : function object
- - _newTarget_ : ECMAScript language value
+ - _F_ : function_object_
+ - _newTarget_ : Tangible_
returns:
- normal : TBD
- abrupt : TBD
@@ -7778,9 +7779,9 @@ OrdinaryCallBindThis ( _F_, _calleeContext_, _thisArgument_ )
name: OrdinaryCallBindThis
parameters:
- - _F_ : function object
+ - _F_ : function_object_
- _calleeContext_ : execution context
- - _thisArgument_ : ECMAScript value
+ - _thisArgument_ : Tangible_
returns:
- normal : TBD
- abrupt : TBD
@@ -7811,7 +7812,7 @@ OrdinaryCallEvaluateBody ( _F_, _argumentsList_ )
name: OrdinaryCallEvaluateBody
parameters:
- - _F_ : function object
+ - _F_ : function_object_
- _argumentsList_ : List
returns:
- normal : TBD
@@ -7890,10 +7891,10 @@ FunctionInitialize ( _F_, _kind_, _ParameterList_, _Body_, _Scope_ )
name: FunctionInitialize
parameters:
- - _F_ : a function object
- - _kind_ : one of (Normal, Method, Arrow)
- - _ParameterList_ : a parameter list production
- - _Body_ : a body production
+ - _F_ : function_object_
+ - _kind_ : FunctionKind1_
+ - _ParameterList_ : ParseTreeNode_
+ - _Body_ : ParseTreeNode_
- _Scope_ : Lexical Environment
returns:
- normal : TBD
@@ -7921,9 +7922,9 @@ FunctionCreate ( _kind_, _ParameterList_, _Body_, _Scope_, _Strict_ [ , _pro
name: FunctionCreate
parameters:
- - _kind_ : one of (Normal, Method, Arrow)
- - _ParameterList_ : a parameter list production
- - _Body_ : a body production
+ - _kind_ : FunctionKind1_
+ - _ParameterList_ : ParseTreeNode_
+ - _Body_ : ParseTreeNode_
- _Scope_ : Lexical Environment
- _Strict_ : Boolean
- _prototype_ : (optional) Object
@@ -7947,9 +7948,9 @@ GeneratorFunctionCreate ( _kind_, _ParameterList_, _Body_, _Scope_, _Strict_
name: GeneratorFunctionCreate
parameters:
- - _kind_ : one of (Normal, Method)
- - _ParameterList_ : a parameter list production
- - _Body_ : a body production
+ - _kind_ : FunctionKind1_
+ - _ParameterList_ : ParseTreeNode_
+ - _Body_ : ParseTreeNode_
- _Scope_ : Lexical Environment
- _Strict_ : Boolean
returns:
@@ -7969,7 +7970,7 @@ AddRestrictedFunctionProperties ( _F_, _realm_ )
name: AddRestrictedFunctionProperties
parameters:
- - _F_ : a function object
+ - _F_ : function_object_
- _realm_ : Realm Record
returns:
- normal : TBD
@@ -8000,7 +8001,7 @@ MakeConstructor ( _F_ [ , _writablePrototype_ [ , _prototype_ ] ] )
name: MakeConstructor
parameters:
- - _F_ : a Function
+ - _F_ : function_object_
- _writablePrototype_ : (optional) Boolean
- _prototype_ : (optional) Object
returns:
@@ -8067,7 +8068,7 @@ SetFunctionName ( _F_, _name_ [ , _prefix_ ] )
name: SetFunctionName
parameters:
- - _F_ : a Function
+ - _F_ : function_object_
- _name_ : String | Symbol
- _prefix_ : (optional) String
returns:
@@ -8098,7 +8099,7 @@ FunctionDeclarationInstantiation ( _func_, _argumentsList_ )
name: FunctionDeclarationInstantiation
parameters:
- - _func_ : a function object
+ - _func_ : function_object_
- _argumentsList_ : TBD
returns:
- normal : TBD
@@ -8274,9 +8275,9 @@ CreateBuiltinFunction ( _realm_, _steps_, _prototype_ [ , _internalSlotsList
- _realm_ : TBD
- _steps_ : TBD
- _prototype_ : TBD
- - _internalSlotsList_ : (optional) a List of slot-names
+ - _internalSlotsList_ : (optional) List of SlotName_
returns:
- - normal : a function object
+ - normal : function_object_
- abrupt : TBD
description: The optional argument _internalSlotsList_ is a List of the names of additional internal slots that must be defined as part of the object. If the list is not provided, a new empty List is used. This operation creates a built-in function object.
@@ -8456,7 +8457,7 @@ ArrayCreate ( _length_ [ , _proto_ ] )
name: ArrayCreate
parameters:
- - _length_ : either 0 or a positive integer
+ - _length_ : Integer_
- _proto_ : (optional) TBD
returns:
- normal : TBD
@@ -8520,7 +8521,7 @@ ArraySetLength ( _A_, _Desc_ )
name: ArraySetLength
parameters:
- - _A_ : an Array exotic object
+ - _A_ : Array_object_
- _Desc_ : Property Descriptor
returns:
- normal : TBD
@@ -8787,7 +8788,7 @@ CreateMappedArgumentsObject ( _func_, _formals_, _argumentsList_, _env_ )IntegerIndexedObjectCreate ( _prototype_, _internalSlotsList_ )
name: IntegerIndexedObjectCreate
parameters:
- _prototype_ : TBD
- - _internalSlotsList_ : a List of slot-names
+ - _internalSlotsList_ : List of SlotName_
returns:
- normal : TBD
- abrupt : TBD
@@ -10018,10 +10019,11 @@ Static Semantics: UTF16Encoding ( _cp_ )
name: UTF16Encoding
parameters:
- - _cp_ : a numeric code point value
+ - _cp_ : Integer_
returns:
- normal : TBD
- abrupt : TBD
+ description: _cp_ is a numeric code point value.
1. Assert: 0 ≤ _cp_ ≤ 0x10FFFF.
@@ -10038,8 +10040,8 @@ Static Semantics: UTF16Decode( _lead_, _trail_ )
name: UTF16Decode
parameters:
- - _lead_ : a code unit
- - _trail_ : a code unit
+ - _lead_ : code_unit_
+ - _trail_ : code_unit_
returns:
- normal : TBD
- abrupt : TBD
@@ -12597,7 +12599,7 @@ Runtime Semantics: GetTemplateObject ( _templateLiteral_ )
name: GetTemplateObject
parameters:
- - _templateLiteral_ : a grammar production
+ - _templateLiteral_ : ParseTreeNode_
returns:
- normal : TBD
- abrupt : TBD
@@ -13172,8 +13174,8 @@ Runtime Semantics: EvaluateCall( _ref_, _arguments_, _tailPosition_ )
name: EvaluateCall
parameters:
- - _ref_ : a value
- - _arguments_ : a syntactic grammar production
+ - _ref_ : Tangible_
+ - _arguments_ : ParseTreeNode_
- _tailPosition_ : Boolean
returns:
- normal : TBD
@@ -13199,9 +13201,9 @@ Runtime Semantics: EvaluateDirectCall( _func_, _thisValue_, _arguments_, _ta
name: EvaluateDirectCall
parameters:
- - _func_ : a value
- - _thisValue_ : a value
- - _arguments_ : a syntactic grammar production
+ - _func_ : Tangible_
+ - _thisValue_ : Tangible_
+ - _arguments_ : ParseTreeNode_
- _tailPosition_ : Boolean
returns:
- normal : TBD
@@ -14457,7 +14459,7 @@ Runtime Semantics: InstanceofOperator ( _O_, _C_ )
name: InstanceofOperator
parameters:
- _O_ : Object
- - _C_ : a constructor
+ - _C_ : constructor_object_
returns:
- normal : TBD
- abrupt : TBD
@@ -15803,7 +15805,7 @@ Runtime Semantics: BlockDeclarationInstantiation( _code_, _env_ )
name: BlockDeclarationInstantiation
parameters:
- - _code_ : a grammar production
+ - _code_ : ParseTreeNode_
- _env_ : Lexical Environment
returns:
- normal : TBD
@@ -17440,7 +17442,7 @@ Runtime Semantics: ForIn/OfHeadEvaluation ( _TDZnames_, _expr_, _iterationKi
parameters:
- _TDZnames_ : TBD
- _expr_ : TBD
- - _iterationKind_ : either ~enumerate~ or ~iterate~
+ - _iterationKind_ : IterationKind_
returns:
- normal : TBD
- abrupt : TBD
@@ -17477,7 +17479,7 @@ Runtime Semantics: ForIn/OfBodyEvaluation ( _lhs_, _stmt_, _iterator_, _lhsK
- _lhs_ : TBD
- _stmt_ : TBD
- _iterator_ : TBD
- - _lhsKind_ : either ~assignment~, ~varBinding~ or ~lexicalBinding~
+ - _lhsKind_ : LhsKind_
- _labelSet_ : TBD
returns:
- normal : TBD
@@ -19069,7 +19071,7 @@ Static Semantics: IsAnonymousFunctionDefinition ( _production_ )
name: IsAnonymousFunctionDefinition
parameters:
- - _production_ : the result of parsing an |AssignmentExpression| or |Initializer|
+ - _production_ : ParseTreeNode_ for |AssignmentExpression| or |Initializer|
returns:
- normal : TBD
- abrupt : TBD
@@ -21615,8 +21617,8 @@ Runtime Semantics: GlobalDeclarationInstantiation ( _script_, _env_ )
name: GlobalDeclarationInstantiation
parameters:
- - _script_ : a |ScriptBody|
- - _env_ : a global lexical environment
+ - _script_ : ParseTreeNode_ for |ScriptBody|
+ - _env_ : Lexical Environment
returns:
- normal : TBD
- abrupt : TBD
@@ -25150,10 +25152,10 @@ Runtime Semantics: CreateDynamicFunction( _constructor_, _newTarget_, _kind_
name: CreateDynamicFunction
parameters:
- - _constructor_ : a constructor
- - _newTarget_ : a constructor
- - _kind_ : either `"normal"`, `"generator"`, or `"async"`
- - _args_ : a List of values
+ - _constructor_ : constructor_object_
+ - _newTarget_ : constructor_object_
+ - _kind_ : FunctionKind2_
+ - _args_ : List of Tangible_
returns:
- normal : TBD
- abrupt : TBD
@@ -29253,10 +29255,10 @@ Runtime Semantics: SplitMatch ( _S_, _q_, _R_ )
name: SplitMatch
parameters:
- _S_ : String
- - _q_ : an integer
+ - _q_ : Integer_
- _R_ : String
returns:
- - normal : *false* or an integer index
+ - normal : Boolean | Integer_
- abrupt : TBD
description: returns either *false* or the end index of a match.
@@ -29861,13 +29863,13 @@ Runtime Semantics: RepeatMatcher Abstract Operation
name: RepeatMatcher
parameters:
- _m_ : Matcher
- - _min_ : an integer
- - _max_ : an integer (or ∞)
+ - _min_ : Integer_
+ - _max_ : Integer_ | Infinity_
- _greedy_ : Boolean
- _x_ : State
- _c_ : Continuation
- - _parenIndex_ : an integer
- - _parenCount_ : an integer
+ - _parenIndex_ : Integer_
+ - _parenCount_ : Integer_
returns:
- normal : TBD
- abrupt : TBD
@@ -30254,7 +30256,7 @@ Runtime Semantics: IsWordChar Abstract Operation
name: IsWordChar
parameters:
- - _e_ : an integer
+ - _e_ : Integer_
returns:
- normal : TBD
- abrupt : TBD
@@ -30388,7 +30390,7 @@ Runtime Semantics: Canonicalize ( _ch_ )
name: Canonicalize
parameters:
- - _ch_ : a character
+ - _ch_ : character_
returns:
- normal : TBD
- abrupt : TBD
@@ -33863,14 +33865,14 @@ Runtime Semantics: AllocateTypedArray ( _constructorName_, _newTarget_, _def
name: AllocateTypedArray
parameters:
- - _constructorName_ : the name of a TypedArray constructor in
+ - _constructorName_ : String
- _newTarget_ : TBD
- _defaultProto_ : TBD
- _length_ : (optional) TBD
returns:
- normal : TBD
- abrupt : TBD
- description: is used to validate and create an instance of a TypedArray constructor. If the _length_ argument is passed, an ArrayBuffer of that length is also allocated and associated with the new TypedArray instance. This operation provides common semantics that is used by all of the _TypedArray_ overloads.
+ description: is used to validate and create an instance of a TypedArray constructor. _constructorName_ is required to be the name of a TypedArray constructor in . If the _length_ argument is passed, an ArrayBuffer of that length is also allocated and associated with the new TypedArray instance. This operation provides common semantics that is used by all of the _TypedArray_ overloads.
1. Let _proto_ be ? GetPrototypeFromConstructor(_newTarget_, _defaultProto_).
@@ -33892,7 +33894,7 @@ Runtime Semantics: AllocateTypedArrayBuffer ( _O_, _length_ )
name: AllocateTypedArrayBuffer
parameters:
- - _O_ : a TypedArray instance
+ - _O_ : TypedArray_object_
- _length_ : TBD
returns:
- normal : TBD
@@ -35229,10 +35231,10 @@ CloneArrayBuffer ( _srcBuffer_, _srcByteOffset_, _srcLength_ [ , _cloneConst
name: CloneArrayBuffer
parameters:
- - _srcBuffer_ : an ArrayBuffer
- - _srcByteOffset_ : an integer offset
- - _srcLength_ : an integer length
- - _cloneConstructor_ : (optional) a constructor function
+ - _srcBuffer_ : ArrayBuffer_object_
+ - _srcByteOffset_ : Integer_
+ - _srcLength_ : Integer_
+ - _cloneConstructor_ : (optional) constructor_object_
returns:
- normal : TBD
- abrupt : TBD
@@ -35259,8 +35261,8 @@ GetValueFromBuffer ( _arrayBuffer_, _byteIndex_, _type_ [ , _isLittleEndian_
name: GetValueFromBuffer
parameters:
- - _arrayBuffer_ : an ArrayBuffer
- - _byteIndex_ : an integer
+ - _arrayBuffer_ : ArrayBuffer_object_
+ - _byteIndex_ : Integer_
- _type_ : String
- _isLittleEndian_ : (optional) Boolean
returns:
@@ -35298,8 +35300,8 @@ SetValueInBuffer ( _arrayBuffer_, _byteIndex_, _type_, _value_ [ , _isLittle
name: SetValueInBuffer
parameters:
- - _arrayBuffer_ : an ArrayBuffer
- - _byteIndex_ : an integer
+ - _arrayBuffer_ : ArrayBuffer_object_
+ - _byteIndex_ : Integer_
- _type_ : String
- _value_ : Number
- _isLittleEndian_ : (optional) Boolean
@@ -37039,7 +37041,7 @@ NewPromiseCapability ( _C_ )
name: NewPromiseCapability
parameters:
- - _C_ : a constructor function
+ - _C_ : constructor_object_
returns:
- normal : PromiseCapability Record
- abrupt : TBD
@@ -37128,7 +37130,7 @@ TriggerPromiseReactions ( _reactions_, _argument_ )
name: TriggerPromiseReactions
parameters:
- - _reactions_ : a collection of PromiseReactionRecords
+ - _reactions_ : List of PromiseReaction Record
- _argument_ : TBD
returns:
- normal : TBD
@@ -37724,9 +37726,9 @@ AsyncFunctionCreate ( _kind_, _parameters_, _body_, _Scope_, _Strict_ )
name: AsyncFunctionCreate
parameters:
- - _kind_ : one of (~Normal~, ~Method~, ~Arrow~),
- - _parameters_ : a parameter list production
- - _body_ : a body production
+ - _kind_ : FunctionKind1_
+ - _parameters_ : ParseTreeNode_
+ - _body_ : ParseTreeNode_
- _Scope_ : Lexical Environment
- _Strict_ : Boolean
returns: