mirror of
https://github.com/dart-lang/sdk
synced 2024-07-05 09:20:04 +00:00
[release] Move CHANGELOG entries to 2.18
Change-Id: I35d887541c8de985b55daed7c732c0d8302d278a Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/251542 Reviewed-by: Johnni Winther <johnniwinther@google.com> Reviewed-by: Alexander Markov <alexmarkov@google.com> Reviewed-by: Lasse Nielsen <lrn@google.com>
This commit is contained in:
parent
e473caca03
commit
f2bd1e9641
107
CHANGELOG.md
107
CHANGELOG.md
|
@ -1,71 +1,15 @@
|
|||
## 2.19.0
|
||||
|
||||
#### Dart command line
|
||||
|
||||
- **Breaking change** [#46100](https://github.com/dart-lang/sdk/issues/46100):
|
||||
The standalone `dartanalyzer` tool has been removed as previously
|
||||
announced. `dartanalyzer` is replaced by the `dart analyze` command.
|
||||
|
||||
### Language
|
||||
|
||||
- **Breaking Change** [#48167](https://github.com/dart-lang/sdk/issues/48167):
|
||||
Mixin of classes that don't extend `Object` is no longer supported:
|
||||
```dart
|
||||
class Base {}
|
||||
class Mixin extends Base {}
|
||||
class C extends Base with Mixin {}
|
||||
```
|
||||
This should instead be written using a mixin declaration of `Mixin`:
|
||||
```dart
|
||||
class Base {}
|
||||
mixin Mixin on Base {}
|
||||
class C extends Base with Mixin {}
|
||||
```
|
||||
This feature has not been supported in most compilation targets for some
|
||||
time but is now completely removed.
|
||||
|
||||
### Libraries
|
||||
|
||||
#### `dart:async`
|
||||
|
||||
- The `Stream.fromIterable` stream can now be listened to more than once.
|
||||
|
||||
### `dart:collection`
|
||||
|
||||
- Deprecates `BidirectionalIterator`.
|
||||
|
||||
### `dart:developer`
|
||||
|
||||
- Deprecates `UserTag.MAX_USER_TAGS` in favor of `UserTag.maxUserTags`.
|
||||
|
||||
### Dart VM
|
||||
|
||||
Implementation of `async`/`async*`/`sync*` is revamped in Dart VM,
|
||||
both in JIT and AOT modes. This also affects Flutter except Flutter Web.
|
||||
|
||||
Besides smaller code size and better performance of async methods,
|
||||
the new implementation carries a few subtle changes in behavior:
|
||||
|
||||
- If `async` method returns before reaching the first `await`, it now returns a completed Future.
|
||||
Previously `async` methods completed resulting Future in separate microtasks.
|
||||
|
||||
- Stack traces no longer have duplicate entries for `async` methods.
|
||||
|
||||
- New implementation now correctly throws an error if `null` occurs as
|
||||
an argument of a logical expression (`&&` and `||`) which also contains
|
||||
an `await`.
|
||||
|
||||
- New implementation avoids unnecessary extending the liveness of local
|
||||
variables in `async`/`async*`/`sync*` methods, which means that unused
|
||||
objects stored in local variables in such methods might be garbage
|
||||
collected earlier than they were before
|
||||
(see issue [#36983](https://github.com/dart-lang/sdk/issues/36983) for details).
|
||||
|
||||
|
||||
### Tools
|
||||
|
||||
#### Dart command line
|
||||
|
||||
#### Linter
|
||||
|
||||
Updated the Linter to `1.26.0`, which includes changes that
|
||||
|
@ -131,8 +75,32 @@ them, you must set the lower bound on the SDK constraint for your package to
|
|||
}
|
||||
```
|
||||
|
||||
- **Breaking Change** [#48167](https://github.com/dart-lang/sdk/issues/48167):
|
||||
Mixin of classes that don't extend `Object` is no longer supported:
|
||||
```dart
|
||||
class Base {}
|
||||
class Mixin extends Base {}
|
||||
class C extends Base with Mixin {}
|
||||
```
|
||||
This should instead be written using a mixin declaration of `Mixin`:
|
||||
```dart
|
||||
class Base {}
|
||||
mixin Mixin on Base {}
|
||||
class C extends Base with Mixin {}
|
||||
```
|
||||
This feature has not been supported in most compilation targets for some
|
||||
time but is now completely removed.
|
||||
|
||||
### Core libraries
|
||||
|
||||
#### `dart:async`
|
||||
|
||||
- The `Stream.fromIterable` stream can now be listened to more than once.
|
||||
|
||||
### `dart:collection`
|
||||
|
||||
- Deprecates `BidirectionalIterator`.
|
||||
|
||||
#### `dart:html`
|
||||
|
||||
- Add `connectionState` attribute and `connectionstatechange` listener to
|
||||
|
@ -202,6 +170,29 @@ them, you must set the lower bound on the SDK constraint for your package to
|
|||
- Allow omitting the `unencodedPath` positional argument to `Uri.http` and
|
||||
`Uri.https` to default to an empty path.
|
||||
|
||||
### Dart VM
|
||||
|
||||
Implementation of `async`/`async*`/`sync*` is revamped in Dart VM,
|
||||
both in JIT and AOT modes. This also affects Flutter except Flutter Web.
|
||||
|
||||
Besides smaller code size and better performance of async methods,
|
||||
the new implementation carries a few subtle changes in behavior:
|
||||
|
||||
- If `async` method returns before reaching the first `await`, it now returns a completed Future.
|
||||
Previously `async` methods completed resulting Future in separate microtasks.
|
||||
|
||||
- Stack traces no longer have duplicate entries for `async` methods.
|
||||
|
||||
- New implementation now correctly throws an error if `null` occurs as
|
||||
an argument of a logical expression (`&&` and `||`) which also contains
|
||||
an `await`.
|
||||
|
||||
- New implementation avoids unnecessary extending the liveness of local
|
||||
variables in `async`/`async*`/`sync*` methods, which means that unused
|
||||
objects stored in local variables in such methods might be garbage
|
||||
collected earlier than they were before
|
||||
(see issue [#36983](https://github.com/dart-lang/sdk/issues/36983) for details).
|
||||
|
||||
### Tools
|
||||
|
||||
#### Dart command line
|
||||
|
@ -211,6 +202,10 @@ them, you must set the lower bound on the SDK constraint for your package to
|
|||
announced. `dart2js` is replaced by the `dart compile js` command, `dartdevc`
|
||||
is no longer exposed as a command-line tool.
|
||||
|
||||
- **Breaking change** [#46100](https://github.com/dart-lang/sdk/issues/46100):
|
||||
The standalone `dartanalyzer` tool has been removed as previously
|
||||
announced. `dartanalyzer` is replaced by the `dart analyze` command.
|
||||
|
||||
#### Linter
|
||||
|
||||
Updated the Linter to `1.25.0`, which includes changes that
|
||||
|
|
Loading…
Reference in New Issue
Block a user