brownplt/LambdaJS — Issue #2: nested function declarations allowed
Author: arjunguha
Created: 2011-11-07 12:57:59+00:00
State: open

Nested function definitions are not allowed in ECMAScript but most browsers allow them. Actually, ECMAScript is aware of it. The ECMAScript specification contains the following note:

NOTE
Several widely used implementations of ECMAScript are known to support
the use of FunctionDeclaration as a
Statement. However there are significant and irreconcilable variations
among the implementations in the semantics applied
to such FunctionDeclarations. Because of these irreconcilable
differences, the use of a FunctionDeclaration as a Statement
results in code that is not reliably portable among implementations.
It is recommended that ECMAScript implementations
either disallow this usage of FunctionDeclaration or issue a warning
when such a usage is encountered. Future editions of
ECMAScript may define alternative portable means for declaring
functions in a Statement context.

We noticed that LambdaJS allows nested function definitions while the spec does not allow them technically.