mirror of
https://github.com/dart-lang/sdk
synced 2024-10-01 19:19:16 +00:00
Update changelog for event changes in dart:html, etc in 1.16
Closes https://github.com/dart-lang/sdk/issues/25970 R=alanknight@google.com, terry@google.com Review URL: https://codereview.chromium.org/1911213002 .
This commit is contained in:
parent
4cd1d552e4
commit
fd08dae063
82
CHANGELOG.md
82
CHANGELOG.md
|
@ -14,10 +14,92 @@
|
|||
|
||||
* 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`, and `getElementsByTagName`, e.g.,
|
||||
|
||||
```dart
|
||||
elem.shadowRoot.getElementsByClassName('clazz')
|
||||
```
|
||||
|
||||
should become:
|
||||
|
||||
```dart
|
||||
elem.shadowRoot.querySelectorAll('.clazz')
|
||||
```
|
||||
|
||||
* The `clipboardData` property has been removed from `KeyEvent`
|
||||
and `Event`. It has been moved to the new `ClipboardEvent` 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.
|
||||
|
||||
### 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.
|
||||
|
||||
```dart
|
||||
@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.,
|
||||
|
||||
```dart
|
||||
// library_1.dart
|
||||
@JS()
|
||||
library library_1;
|
||||
|
||||
import 'package:js/js.dart';
|
||||
|
||||
part 'part_1.dart';
|
||||
```
|
||||
|
||||
```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.,
|
||||
|
||||
```dart
|
||||
@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
|
||||
|
|
Loading…
Reference in a new issue