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
SecurityContext.alpnSupported
, which is true if a platform supports ALPN, and false otherwise.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.,
// library_1.dart @JS() library library_1; import 'package:js/js.dart'; part 'part_1.dart';
// part_1.dart part 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.
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"]) { ... }
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.
We Windows 10 users are having a hard time with this release. Many projects fail to load with the new Dartium. Pub Serve just keeps spitting out messages about loading cached assets, and the projects never completely load in Dartium. A number of users, all on Win10, have complained about this problem on the dartlang Slack channel.
--
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+uns...@dartlang.org.
http://localhost:<pubServePort>
instead of http://localhost:63342/<your project>/web/index.html