[dart-announce] Dart 1.16 is now available

219 views
Skip to first unread message

'Kevin Moore' via Dart Announcements

unread,
Apr 26, 2016, 3:41:14 PM4/26/16
to Dart Announcements
The release announcement and the changelog 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 getElementByIdgetElementsByClassName, 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 copycut, 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:htmldart:indexed_dbdart: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.

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.,

// 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.

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"]) { ... }

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.

--
For more news and information, visit https://plus.google.com/+dartlang
 
To join the conversation, visit https://groups.google.com/a/dartlang.org/

Monty Rasmussen

unread,
Apr 26, 2016, 11:48:15 PM4/26/16
to Dart Misc
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.

Dan Grove

unread,
Apr 26, 2016, 11:49:41 PM4/26/16
to General Dart Discussion, Bob Nystrom, Jacob Richman, Terry Lucas, William Hesse
Adding a few relevant people to this thread.

Can you file a bug with repro instructions?

On Tue, Apr 26, 2016 at 8:48 PM, Monty Rasmussen <mont...@gmail.com> wrote:
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.

Dennis Kaselow

unread,
Apr 27, 2016, 12:25:30 AM4/27/16
to mi...@dartlang.org
A new version of WebStorm should be released this week where this bug is fixed. As a workaround you can use the port that is used when pub serve is started instead of the proxy port that WebStorm uses, e.g. http://localhost:<pubServePort> instead of http://localhost:63342/<your project>/web/index.html

Monty Rasmussen

unread,
Apr 27, 2016, 12:33:16 AM4/27/16
to Dart Misc
Good to know. Thank you for the quick response!

Alexander Doroshko

unread,
Apr 27, 2016, 5:44:22 AM4/27/16
to mi...@dartlang.org
The problem is reproducible on all OSes and it is at WebStorm / IntelliJ
IDEA side, they don't play nice with new 'caching' feature of Pub Serve
from Dart SDK 1.16.
Workaround is to use Pub Serve directly.

It is already fixed and the fix is already available for IntelliJ IDEA
users: you need to download 2016.1.2 RC from
https://confluence.jetbrains.com/display/IDEADEV/IDEA+2016.1+EAP and
update Dart plugin.

WebStorm 2016.1.2 RC with the fix will appear in few hours in
https://confluence.jetbrains.com/display/WI/WebStorm+EAP

Official 2016.1.2 releases are expected in few days.

Günter Zöchbauer

unread,
Apr 27, 2016, 11:10:15 AM4/27/16
to Dart Misc
Interesting. This works fine for me since a few days in bleeding edge on Linux.

Alexander Doroshko

unread,
May 11, 2016, 9:44:18 AM5/11/16
to mi...@dartlang.org
Those who use WebStorm or IntelliJ IDEA for Dart development, please
update to the recently released 2016.1.2 version, it contains some fixes
related to Dart SDK 1.16.
Reply all
Reply to author
Forward
0 new messages