| OLD | NEW |
| 1 ## 1.20.0 | 1 ## 1.20.0 |
| 2 | 2 |
| 3 ### Dart VM | 3 ### Dart VM |
| 4 | 4 |
| 5 * We have improved the way that the VM locates the native code library for a | 5 * We have improved the way that the VM locates the native code library for a |
| 6 native extension (e.g. `dart-ext:` import). We have updated this | 6 native extension (e.g. `dart-ext:` import). We have updated this |
| 7 [article on native extensions](https://www.dartlang.org/articles/dart-vm/nativ
e-extensions) | 7 [article on native extensions](https://www.dartlang.org/articles/dart-vm/nativ
e-extensions) |
| 8 to reflect the VM's improved behavior. | 8 to reflect the VM's improved behavior. |
| 9 | 9 |
| 10 * We have improved the way the VM searches for trusted root certificates for |
| 11 secure socket connections on Linux. First, the VM will look for trusted root |
| 12 certificates in standard locations on the file system |
| 13 (/etc/pki/tls/certs/ca-bundle.crt followed by /etc/ssl/certs), and only if |
| 14 these do not exist will it fall back on the builtin trusted root certificates. |
| 15 This behavior can be overridden on Linux with the new flags |
| 16 --root-certs-file and --root-certs-cache. The former is the path to a file |
| 17 containing the trusted root certificates, and the latter is the path to a |
| 18 directory containing root certificate files hashed using `c_rehash`. |
| 19 |
| 10 ### Core library changes | 20 ### Core library changes |
| 11 * `dart:core`: Remove deprecated `Resource` class. | 21 * `dart:core`: Remove deprecated `Resource` class. |
| 12 Use the class in `package:resource` instead. | 22 Use the class in `package:resource` instead. |
| 13 * `dart:async` | 23 * `dart:async` |
| 14 * `Future.wait` now catches synchronous errors and returns them in the | 24 * `Future.wait` now catches synchronous errors and returns them in the |
| 15 returned Future. | 25 returned Future. |
| 16 * More aggressively returns a Future on Stream.cancel operations. | 26 * More aggressively returns a Future on Stream.cancel operations. |
| 17 Discourages to return `null` from `cancel`. | 27 Discourages to return `null` from `cancel`. |
| 18 * Fixes a few bugs where the cancel future wasn't passed through | 28 * Fixes a few bugs where the cancel future wasn't passed through |
| 19 transformations. | 29 transformations. |
| 20 * `dart:io` | 30 * `dart:io` |
| 21 * Added `WebSocket.addUtf8Text` to allow sending a pre-encoded text message | 31 * Added `WebSocket.addUtf8Text` to allow sending a pre-encoded text message |
| 22 without a round-trip UTF-8 conversion. | 32 without a round-trip UTF-8 conversion. |
| 23 | 33 |
| 24 ## Strong Mode | 34 ### Strong Mode |
| 25 | 35 |
| 26 * Breaking change - it is an error if a generic type parameter cannot be | 36 * Breaking change - it is an error if a generic type parameter cannot be |
| 27 inferred (SDK issue [26992](https://github.com/dart-lang/sdk/issues/26992)). | 37 inferred (SDK issue [26992](https://github.com/dart-lang/sdk/issues/26992)). |
| 28 | 38 |
| 29 ```dart | 39 ```dart |
| 30 class Cup<T> { | 40 class Cup<T> { |
| 31 Cup(T t); | 41 Cup(T t); |
| 32 } | 42 } |
| 33 main() { | 43 main() { |
| 34 // Error because: | 44 // Error because: |
| (...skipping 1221 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1256 they will keep the Dart process alive until they time out. This fixes the | 1266 they will keep the Dart process alive until they time out. This fixes the |
| 1257 handling of persistent connections. Previously, the client would shut down | 1267 handling of persistent connections. Previously, the client would shut down |
| 1258 immediately after a request. | 1268 immediately after a request. |
| 1259 | 1269 |
| 1260 * **Breaking change:** `HttpServer` no longer compresses all traffic by | 1270 * **Breaking change:** `HttpServer` no longer compresses all traffic by |
| 1261 default. The new `autoCompress` property can be set to `true` to re-enable | 1271 default. The new `autoCompress` property can be set to `true` to re-enable |
| 1262 compression. | 1272 compression. |
| 1263 | 1273 |
| 1264 * `dart:isolate`: `Isolate.spawnUri` added the optional `packageRoot` argument, | 1274 * `dart:isolate`: `Isolate.spawnUri` added the optional `packageRoot` argument, |
| 1265 which controls how it resolves `package:` URIs. | 1275 which controls how it resolves `package:` URIs. |
| OLD | NEW |