Support for async, await, sync *, async* yield, yield*, await for – learn more here
enum is fully enabled – read about it on the language tour under Enumerated Types
Much more comprehensive
Generates much more readable code
Analysis Server integration into IntelliJ plugin and Dart Editor
Improved code analysis
Runs out of process in IDEs, so interaction remains smooth, even for large projects
More and better hints, including unused variables and unused private members
New model for shared server sockets – no need for Socket reference, implemented on all platforms
New, much faster regexp engine
Isolate APIs now works across VM and dart2js
For more information on any of these changes, see the corresponding documentation on the Dart API site.
Future.wait added a new named argument: cleanUp
new class: SynchronousStreamController
SplayTreeSet added a new constructor: from(Iterable)
Utf8Encoder.convert and Utf8Decoder.convert added optional start and end arguments
RangeError added new static helper functions: checkNotNegative, checkValidIndex, checkValidRange, checkValueInInterval
int added modPow function
String added replaceFirstMapped and replaceRange
New classes: FileLock and ProcessStartMode
File added lock, lockSync, unlock, and unlockSync.
HttpServer static methods bind and bindSecure added named arguments v6Only and shared.
Process.start added mode (ProcessStartMode) argument.
Process added static method killPid.
ServerSocket.bind, RawServerSocket.bind, SecureServerSocket.bind and RawSecureServerSocket.bind methods added new argument shared.
SocketReference methods and classes have been marked as deprecated.
Socket and RawSocket static method connect added sourceAddress argument.
Stdout added nonBlocking instance property
Isolate added static getter current
Isolate APIs now works on the VM, including addOnExitListener, removeOnExitListener, setErrorsFatal, addOnErrorListener, removeOnErrorListener
spawnFunction now allows passing top-level and static functions as in the message argument.