'Kevin Moore' via Dart Announcements
2016-04-26 19:41:08 UTC
The release announcement
<http://news.dartlang.org/2016/04/dart-116-faster-tools-updated-html-apis.html>
and the changelog
<https://github.com/dart-lang/sdk/blob/master/CHANGELOG.md> have all of the
details!
Core library changes
-
dart:convert
-
Added BASE64URL codec and corresponding Base64Codec.urlSafe
constructor.
-
Introduce ChunkedConverter and deprecate chunked methods on Converter.
-
dart:html
There have been a number of BREAKING changes to align APIs with recent
changes in Chrome. These include:
-
Chrome's ShadowRoot interface no longer has the methods getElementById
, getElementsByClassName, andgetElementsByTagName, e.g.,
elem.shadowRoot.getElementsByClassName('clazz')
should become:
elem.shadowRoot.querySelectorAll('.clazz')
-
The clipboardData property has been removed from KeyEvent and Event.
It has been moved to the newClipboardEvent class, which is now used
by copy, cut, and paste events.
-
The layer property has been removed from KeyEvent and UIEvent. It has
been moved to MouseEvent.
-
The Point get page property has been removed from UIEvent. It still
exists on MouseEvent and Touch.
There have also been a number of other additions and removals to
dart:html, dart:indexed_db, dart:svg,dart:web_audio, and dart:web_gl that
correspond to changes to Chrome APIs between v39 and v45. Many of the
breaking changes represent APIs that would have caused runtime exceptions
when compiled to Javascript and run on recent Chrome releases.
-
dart:io
- Added SecurityContext.alpnSupported, which is true if a platform
supports ALPN, and false otherwise.
<https://github.com/dart-lang/sdk/blob/master/CHANGELOG.md#javascript-interop>JavaScript
interop
For performance reasons, a potentially BREAKING change was added for
libraries that use JS interop. Any Dart file that uses @JS annotations on
declarations (top-level functions, classes or class members) to interop
with JavaScript code will require that the file have the annotation @JS() on
a library directive.
@JS()library my_library;
The analyzer will enforce this by generating the error:
The @JS() annotation can only be used if it is also declared on the library
directive.
If part file uses the @JS() annotation, the library that uses the part
should have the @JS() annotation e.g.,
// ***@JS()library library_1;
import 'package:js/js.dart';
part 'part_1.dart';
// part_1.dartpart of library_1;
@JS("frameworkStabilizers")external List<FrameworkStabilizer> get frameworkStabilizers;
If your library already has a JS module e.g.,
@JS('array.utils')library my_library;
Then your library will work without any additional changes.
<https://github.com/dart-lang/sdk/blob/master/CHANGELOG.md#analyzer>Analyzer
-
Static checking of for in statements. These will now produce static
warnings:
// Not Iterable.for (var i in 1234) { ... }
// String cannot be assigned to int.for (int n in <String>["a", "b"]) { ... }
<https://github.com/dart-lang/sdk/blob/master/CHANGELOG.md#tool-changes>Tool
Changes
-
Pub
-
pub serve now provides caching headers that should improve the
performance of requesting large files multiple times.
-
Both pub get and pub upgrade now have a --no-precompile flag that
disables precompilation of executables and transformed dependencies.
-
pub publish now resolves symlinks when publishing from a Git
repository. This matches the behavior it always had when publishing a
package that wasn't in a Git repository.
-
Dart Dev Compiler
-
The experimental dartdevc executable has been added to the SDK.
-
It will help early adopters validate the implementation and provide
feedback. dartdevc is not yet ready for production usage.
-
Read more about the Dart Dev Compiler here
<https://github.com/dart-lang/dev_compiler>.
--
For more news and information, visit https://plus.google.com/+dartlang
To join the conversation, visit https://groups.google.com/a/dartlang.org/
<http://news.dartlang.org/2016/04/dart-116-faster-tools-updated-html-apis.html>
and the changelog
<https://github.com/dart-lang/sdk/blob/master/CHANGELOG.md> have all of the
details!
Core library changes
-
dart:convert
-
Added BASE64URL codec and corresponding Base64Codec.urlSafe
constructor.
-
Introduce ChunkedConverter and deprecate chunked methods on Converter.
-
dart:html
There have been a number of BREAKING changes to align APIs with recent
changes in Chrome. These include:
-
Chrome's ShadowRoot interface no longer has the methods getElementById
, getElementsByClassName, andgetElementsByTagName, e.g.,
elem.shadowRoot.getElementsByClassName('clazz')
should become:
elem.shadowRoot.querySelectorAll('.clazz')
-
The clipboardData property has been removed from KeyEvent and Event.
It has been moved to the newClipboardEvent class, which is now used
by copy, cut, and paste events.
-
The layer property has been removed from KeyEvent and UIEvent. It has
been moved to MouseEvent.
-
The Point get page property has been removed from UIEvent. It still
exists on MouseEvent and Touch.
There have also been a number of other additions and removals to
dart:html, dart:indexed_db, dart:svg,dart:web_audio, and dart:web_gl that
correspond to changes to Chrome APIs between v39 and v45. Many of the
breaking changes represent APIs that would have caused runtime exceptions
when compiled to Javascript and run on recent Chrome releases.
-
dart:io
- Added SecurityContext.alpnSupported, which is true if a platform
supports ALPN, and false otherwise.
<https://github.com/dart-lang/sdk/blob/master/CHANGELOG.md#javascript-interop>JavaScript
interop
For performance reasons, a potentially BREAKING change was added for
libraries that use JS interop. Any Dart file that uses @JS annotations on
declarations (top-level functions, classes or class members) to interop
with JavaScript code will require that the file have the annotation @JS() on
a library directive.
@JS()library my_library;
The analyzer will enforce this by generating the error:
The @JS() annotation can only be used if it is also declared on the library
directive.
If part file uses the @JS() annotation, the library that uses the part
should have the @JS() annotation e.g.,
// ***@JS()library library_1;
import 'package:js/js.dart';
part 'part_1.dart';
// part_1.dartpart of library_1;
@JS("frameworkStabilizers")external List<FrameworkStabilizer> get frameworkStabilizers;
If your library already has a JS module e.g.,
@JS('array.utils')library my_library;
Then your library will work without any additional changes.
<https://github.com/dart-lang/sdk/blob/master/CHANGELOG.md#analyzer>Analyzer
-
Static checking of for in statements. These will now produce static
warnings:
// Not Iterable.for (var i in 1234) { ... }
// String cannot be assigned to int.for (int n in <String>["a", "b"]) { ... }
<https://github.com/dart-lang/sdk/blob/master/CHANGELOG.md#tool-changes>Tool
Changes
-
Pub
-
pub serve now provides caching headers that should improve the
performance of requesting large files multiple times.
-
Both pub get and pub upgrade now have a --no-precompile flag that
disables precompilation of executables and transformed dependencies.
-
pub publish now resolves symlinks when publishing from a Git
repository. This matches the behavior it always had when publishing a
package that wasn't in a Git repository.
-
Dart Dev Compiler
-
The experimental dartdevc executable has been added to the SDK.
-
It will help early adopters validate the implementation and provide
feedback. dartdevc is not yet ready for production usage.
-
Read more about the Dart Dev Compiler here
<https://github.com/dart-lang/dev_compiler>.
--
For more news and information, visit https://plus.google.com/+dartlang
To join the conversation, visit https://groups.google.com/a/dartlang.org/
--
For other discussions, see https://groups.google.com/a/dartlang.org/
For HOWTO questions, visit http://stackoverflow.com/tags/dart
To file a bug report or feature request, go to http://www.dartbug.com/new
---
You received this message because you are subscribed to the Google Groups "Dart Misc" group.
To unsubscribe from this group and stop receiving emails from it, send an email to misc+***@dartlang.org.
For other discussions, see https://groups.google.com/a/dartlang.org/
For HOWTO questions, visit http://stackoverflow.com/tags/dart
To file a bug report or feature request, go to http://www.dartbug.com/new
---
You received this message because you are subscribed to the Google Groups "Dart Misc" group.
To unsubscribe from this group and stop receiving emails from it, send an email to misc+***@dartlang.org.