| OLD | NEW |
| 1 ## 1.23.0 | 1 ## 1.23.0 |
| 2 | 2 |
| 3 ### Core library changes | 3 ### Core library changes |
| 4 * `dart:core`: Add `Uri.isScheme` function to check the scheme of a URI. | 4 * `dart:core`: Add `Uri.isScheme` function to check the scheme of a URI. |
| 5 Example: `uri.isScheme("http")`. Ignores case when comparing. | 5 Example: `uri.isScheme("http")`. Ignores case when comparing. |
| 6 | 6 |
| 7 ## 1.22.0 | 7 ## 1.22.0 |
| 8 | 8 |
| 9 ### Language | 9 ### Language |
| 10 | 10 |
| 11 * Breaking change: ['Generalized tear-offs'](https://github.com/gbracha/genera
lizedTearOffs/blob/master/proposal.md) | 11 * Breaking change: ['Generalized tear-offs'](https://github.com/gbracha/genera
lizedTearOffs/blob/master/proposal.md) |
| 12 are no longer supported, and will cause errors. We updated the language spec | 12 are no longer supported, and will cause errors. We updated the language spec |
| 13 and added warnings in 1.21, and are now taking the last step to fully | 13 and added warnings in 1.21, and are now taking the last step to fully |
| 14 de-support them. They were previously only supported in the VM, and there | 14 de-support them. They were previously only supported in the VM, and there |
| 15 are almost no known uses of them in the wild. | 15 are almost no known uses of them in the wild. |
| 16 | 16 |
| (...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 75 | 75 |
| 76 class Orca extends Predator { | 76 class Orca extends Predator { |
| 77 void chaseAndEat(Seal s) => ... | 77 void chaseAndEat(Seal s) => ... |
| 78 } | 78 } |
| 79 ``` | 79 ``` |
| 80 | 80 |
| 81 This isn't statically safe, because you could do: | 81 This isn't statically safe, because you could do: |
| 82 | 82 |
| 83 ```dart | 83 ```dart |
| 84 Predator predator = new Cat(); // Upcast. | 84 Predator predator = new Cat(); // Upcast. |
| 85 predator(new Seal()); // Cats can't eat seals! | 85 predator.chaseAndEat(new Seal()); // Cats can't eat seals! |
| 86 ``` | 86 ``` |
| 87 | 87 |
| 88 To preserve soundness in strong mode, in the body of a method that uses a | 88 To preserve soundness in strong mode, in the body of a method that uses a |
| 89 covariant override (here, `Cat.chaseAndEat()`), the compiler automatically | 89 covariant override (here, `Cat.chaseAndEat()`), the compiler automatically |
| 90 inserts a check that the parameter is of the expected type. So the compiler | 90 inserts a check that the parameter is of the expected type. So the compiler |
| 91 gives you something like: | 91 gives you something like: |
| 92 | 92 |
| 93 ```dart | 93 ```dart |
| 94 class Cat extends Predator { | 94 class Cat extends Predator { |
| 95 void chaseAndEat(o) { | 95 void chaseAndEat(o) { |
| (...skipping 1573 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1669 they will keep the Dart process alive until they time out. This fixes the | 1669 they will keep the Dart process alive until they time out. This fixes the |
| 1670 handling of persistent connections. Previously, the client would shut down | 1670 handling of persistent connections. Previously, the client would shut down |
| 1671 immediately after a request. | 1671 immediately after a request. |
| 1672 | 1672 |
| 1673 * **Breaking change:** `HttpServer` no longer compresses all traffic by | 1673 * **Breaking change:** `HttpServer` no longer compresses all traffic by |
| 1674 default. The new `autoCompress` property can be set to `true` to re-enable | 1674 default. The new `autoCompress` property can be set to `true` to re-enable |
| 1675 compression. | 1675 compression. |
| 1676 | 1676 |
| 1677 * `dart:isolate`: `Isolate.spawnUri` added the optional `packageRoot` argument, | 1677 * `dart:isolate`: `Isolate.spawnUri` added the optional `packageRoot` argument, |
| 1678 which controls how it resolves `package:` URIs. | 1678 which controls how it resolves `package:` URIs. |
| OLD | NEW |