14. Program

Syntax

Program :
SourceElements
SourceElements :
SourceElement
SourceElements SourceElement
SourceElement :
Statement
FunctionDeclaration

Semantics

The production Program : SourceElements is evaluated as follows:

1. Process SourceElements for function declarations.

2. Evaluate SourceElements.

3. Return Result(2).

The production SourceElements : SourceElement is processed for function declarations as follows:

1. Process SourceElement for function declarations.

The production SourceElements : SourceElement is evaluated as follows:

1. Evaluate SourceElement.

2. Return Result(1).

The production SourceElements : SourceElements SourceElement is processed for function declarations as follows:

1. Process SourceElements for function declarations.

2. Process SourceElement for function declarations.

The production SourceElements : SourceElements SourceElement is evaluated as follows:

1. Evaluate SourceElements.

2. If Result(1) is an abrupt completion, return Result(1)

3. Evaluate SourceElement.

4. Return Result(3).

The production SourceElement : Statement is processed for function declarations by taking no action.

The production SourceElement : Statement is evaluated as follows:

1. Evaluate Statement.

2. Return Result(1).

The production SourceElement : FunctionDeclaration is processed for function declarations as follows:

1. Process FunctionDeclaration for function declarations (see clause 13).

The production SourceElement : FunctionDeclaration is evaluated as follows:

1. Return (normal, empty, empty).