> (A fallout of that (my victory or my fault, depending on how you see it) > is that ES4 does not require things like definite assignment analysis, > which would have required more elaborate data structures than a compiler > on an embedded system would be happy with. Instead we have a syntactic > workaround (the "settings" section of the constructor) and other rules > to handle non-nullability. Kludgy? Depends on your point of view.
As an aside: in my view this design goal ("no complex static analyses in the semantics") is not just a win for lightweight devices. It's also a win for the simplicity of the semantics. A programmer doesn't have to think about complex analyses to understand the *meaning* of a program; similarly, when the compiler/interpreter freaks out because an analysis failed, the programmer doesn't have to understand a complicated error. Syntactic restrictions like lexical scope, the "settings" section, type systems, etc. have the benefit of being based on simple syntactic properties that are easy for the programmer to eyeball by inspection of the source. The result is a cleaner and clearer language semantics. Dave _______________________________________________ Es4-discuss mailing list Es4-discuss@mozilla.org https://mail.mozilla.org/listinfo/es4-discuss