Saturday, March 24, 2012

Dart language spec update to 0.08

Posted by Seth Ladd

The Dart team has updated the Dart language spec to version 0.08. Changes include:

5:  Static variables are lazily initialized, but need not be constants. Orthogonal notion of constant variable introduced.
7.1.2: Added equals operator as part of revised == treatment.
7.5.1: Initializing formals have the same type as the field they correspond to.
7.7: Static variable getter rules revised to deal with lazy initialization.
10: Modified syntax to support cascaded method invocations.
10.1: Removed support for + operator on Strings. Extended string constants to support certain cases of string interpolation. Revised constants to deal with constant variables
10.5: Corrected definition of HEX_DIGIT_SEQUENCE. Support implicit concatenation of adjacent single line strings.
10.13.2: Centralized and corrected type rules for function invocation.
10.14: Moved rules for checking function/method invocations to 10.1.3.2. Added definition of cascaded method invocations.
10.1510.16: Updated noSuchMethod() call for getters and setters to conform to planned API.
10.17: Modified syntax to support cascaded method invocations.
10:20: Revised semantics for ==.
10:28: Removed importlibrary and source from list of built-in identifiers. Revised rules for evaluating identifiers to deal with lazy static variable initialization.
11.13: Fixed bug that allowed continue labeled on non-loops.
12: Revised syntax so no space is permitted between # and directives. Introduced show: combinator. Describe prefix: as a combinator. Added initial discussion of namespaces. Preclude string interpolation in arguments to directives.

Not everything is implemented by both the Dart VM and the Dart to JavaScript compiler yet.

As always, the Dart team appreciates your feedback. The mailing list is a good way to participate and share your thoughts.