| OLD | NEW |
| 1 ## 1.22.0 | 1 ## 1.22.0 |
| 2 | 2 |
| 3 ### Language | 3 ### Language |
| 4 | 4 |
| 5 * Breaking change: ['Generalized tear-offs'](https://github.com/gbracha/genera
lizedTearOffs/blob/master/proposal.md) | 5 * Breaking change: ['Generalized tear-offs'](https://github.com/gbracha/genera
lizedTearOffs/blob/master/proposal.md) |
| 6 are no longer supported, and will cause errors. We updated the language spec | 6 are no longer supported, and will cause errors. We updated the language spec |
| 7 and added warnings in 1.21, and are now taking the last step to fully | 7 and added warnings in 1.21, and are now taking the last step to fully |
| 8 de-support them. They were previously supported in the VM only. | 8 de-support them. They were previously supported in the VM only. |
| 9 | 9 |
| 10 * The `assert()` statement has been expanded to support an optional second | 10 * The `assert()` statement has been expanded to support an optional second |
| 11 `message` argument (SDK issue [27342](https://github.com/dart-lang/sdk/issue
s/27342)). | 11 `message` argument (SDK issue [27342](https://github.com/dart-lang/sdk/issue
s/27342)). |
| 12 | 12 |
| 13 The message is displayed if the assert fails. It can be any object, and it | 13 The message is displayed if the assert fails. It can be any object, and it |
| 14 is accessible as `AssertionError.message`. It can be used to provide more | 14 is accessible as `AssertionError.message`. It can be used to provide more |
| 15 user friendly exception outputs. As an example, the following assert: | 15 user friendly exception outputs. As an example, the following assert: |
| 16 | 16 |
| 17 ```dart | 17 ```dart |
| 18 assert(configFile != null, "Tool config missing. Please see https://goo.gl/k
8iAi for details."); | 18 assert(configFile != null, "Tool config missing. Please see https://goo.gl/k
8iAi for details."); |
| 19 ``` | 19 ``` |
| 20 | 20 |
| 21 would produce the following exception output: | 21 would produce the following exception output: |
| 22 | 22 |
| 23 ``` | 23 ``` |
| 24 Unhandled exception: | 24 Unhandled exception: |
| 25 'file:///Users/mit/tmp/tool/bin/main.dart': Failed assertion: line 9 pos 10:
| 25 'file:///Users/mit/tmp/tool/bin/main.dart': Failed assertion: line 9 pos 10: |
| 26 'configFile != null': Tool config missing. Please see https://goo.gl/k8iAi f
or details. | 26 'configFile != null': Tool config missing. Please see https://goo.gl/k8iAi f
or details. |
| 27 #0 _AssertionError._doThrowNew (dart:core-patch/errors_patch.dart:33) | 27 #0 _AssertionError._doThrowNew (dart:core-patch/errors_patch.dart:33) |
| 28 #1 _AssertionError._throwNew (dart:core-patch/errors_patch.dart:29) | 28 #1 _AssertionError._throwNew (dart:core-patch/errors_patch.dart:29) |
| 29 #2 main (file:///Users/mit/tmp/tool/bin/main.dart:9:10) | 29 #2 main (file:///Users/mit/tmp/tool/bin/main.dart:9:10) |
| 30 ``` | 30 ``` |
| 31 | 31 |
| 32 ### Tool changes | 32 ### Tool changes |
| 33 | 33 |
| 34 * Dart2Js | 34 * Dart2Js |
| 35 | 35 |
| 36 * Remove support for (long-time deprecated) mixin typedefs. | 36 * Remove support for (long-time deprecated) mixin typedefs. |
| 37 | 37 |
| 38 * Pub | 38 * Pub |
| 39 | 39 |
| 40 * Avoid using a barback asset server for executables unless they actually use | 40 * Avoid using a barback asset server for executables unless they actually use |
| 41 transformers. This makes precompilation substantially faster, produces | 41 transformers. This makes precompilation substantially faster, produces |
| 42 better error messages when precompilation fails, and allows | 42 better error messages when precompilation fails, and allows |
| 43 globally-activated executables to consistently use the | 43 globally-activated executables to consistently use the |
| 44 `Isolate.resolvePackageUri()` API. | 44 `Isolate.resolvePackageUri()` API. |
| 45 | 45 |
| 46 * On POSIX systems, always ignore packages' original file owners and | 46 * On Linux systems, always ignore packages' original file owners and |
| 47 permissions when extracting those packages. This was already the default | 47 permissions when extracting those packages. This was already the default |
| 48 under most circumstances. | 48 under most circumstances. |
| 49 | 49 |
| 50 * Properly close the standard input stream of child processes started using | 50 * Properly close the standard input stream of child processes started using |
| 51 `pub run`. | 51 `pub run`. |
| 52 | 52 |
| 53 * Handle parse errors from the package cache more gracefully. A package whose | 53 * Handle parse errors from the package cache more gracefully. A package whose |
| 54 pubspec can't be parsed will now be ignored by `pub get --offline` and | 54 pubspec can't be parsed will now be ignored by `pub get --offline` and |
| 55 deleted by `pub cache repair`. | 55 deleted by `pub cache repair`. |
| 56 | 56 |
| 57 * Make `pub run` run executables in spawned isolates. This lets them handle |
| 58 signals and use standard IO reliably. |
| 57 | 59 |
| 58 ## 1.21.0 - 2016-12-07 | 60 ## 1.21.0 - 2016-12-07 |
| 59 | 61 |
| 60 ### Language | 62 ### Language |
| 61 | 63 |
| 62 * Support generic method syntax. Type arguments are not available at | 64 * Support generic method syntax. Type arguments are not available at |
| 63 runtime. For details, check the | 65 runtime. For details, check the |
| 64 [informal specification](https://gist.github.com/eernstg/4353d7b4f669745bed3a5
423e04a453c). | 66 [informal specification](https://gist.github.com/eernstg/4353d7b4f669745bed3a5
423e04a453c). |
| 65 * Support access to initializing formals, e.g., the use of `x` to initialize | 67 * Support access to initializing formals, e.g., the use of `x` to initialize |
| 66 `y` in `class C { var x, y; C(this.x): y = x; }`. | 68 `y` in `class C { var x, y; C(this.x): y = x; }`. |
| (...skipping 1395 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1462 they will keep the Dart process alive until they time out. This fixes the | 1464 they will keep the Dart process alive until they time out. This fixes the |
| 1463 handling of persistent connections. Previously, the client would shut down | 1465 handling of persistent connections. Previously, the client would shut down |
| 1464 immediately after a request. | 1466 immediately after a request. |
| 1465 | 1467 |
| 1466 * **Breaking change:** `HttpServer` no longer compresses all traffic by | 1468 * **Breaking change:** `HttpServer` no longer compresses all traffic by |
| 1467 default. The new `autoCompress` property can be set to `true` to re-enable | 1469 default. The new `autoCompress` property can be set to `true` to re-enable |
| 1468 compression. | 1470 compression. |
| 1469 | 1471 |
| 1470 * `dart:isolate`: `Isolate.spawnUri` added the optional `packageRoot` argument, | 1472 * `dart:isolate`: `Isolate.spawnUri` added the optional `packageRoot` argument, |
| 1471 which controls how it resolves `package:` URIs. | 1473 which controls how it resolves `package:` URIs. |
| OLD | NEW |