Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 ## 1.24.0 | 1 ## 1.24.0 |
| 2 | 2 |
| 3 ### Language | 3 ### Language |
| 4 * During a dynamic type check, `void` is not required to be `null` anymore. | 4 * During a dynamic type check, `void` is not required to be `null` anymore. |
| 5 In practice, this makes overriding `void` functions with non-`void` functions | 5 In practice, this makes overriding `void` functions with non-`void` functions |
| 6 safer. | 6 safer. |
| 7 * During static analysis, a function or setter declared using `=>` with return | 7 * During static analysis, a function or setter declared using `=>` with return |
| 8 type `void` now allows the returned expression to have any type. For example, | 8 type `void` now allows the returned expression to have any type. For example, |
| 9 assuming the declaration `int x;`, it is now type correct to have | 9 assuming the declaration `int x;`, it is now type correct to have |
| 10 `void f() => ++x;`. | 10 `void f() => ++x;`. |
| (...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 69 * `dart:async`, `dart:io`, `dart:core` | 69 * `dart:async`, `dart:io`, `dart:core` |
| 70 * Adding to a closed sink, including `IOSink`, is not allowed anymore. In | 70 * Adding to a closed sink, including `IOSink`, is not allowed anymore. In |
| 71 1.24, violations are only reported (on stdout or stderr), but a future | 71 1.24, violations are only reported (on stdout or stderr), but a future |
| 72 version of the Dart SDK will change this to throwing a `StateError`. | 72 version of the Dart SDK will change this to throwing a `StateError`. |
| 73 | 73 |
| 74 ### Dart VM | 74 ### Dart VM |
| 75 | 75 |
| 76 ### Tool Changes | 76 ### Tool Changes |
| 77 | 77 |
| 78 * Pub | 78 * Pub |
| 79 * Added support for the Dart Development Compiler in `build` and `serve`. | |
| 80 | |
| 81 Unlike dart2js, this new compiler is modular, which allows pub to do | |
| 82 incremental re-builds for `pub serve`, and potentially `pub build` in the | |
| 83 future. | |
| 84 | |
| 85 In practice what that means is you can edit your Dart files, refresh in | |
| 86 chrome (or other supported browsers), and see your edits almost | |
|
nweiz
2017/05/26 22:30:09
Nit: "Chrome" (also below)
jakemac
2017/05/27 00:00:09
Done.
| |
| 87 immediately. This is because pub is only recompiling your package, not all | |
| 88 packages that you depend on. | |
| 89 | |
| 90 There is one caveat with the new compiler, which is that your package and | |
| 91 your dependencies must all be strong mode clean. If you are getting an | |
| 92 error compiling one of your dependencies, you will need to file bugs or | |
| 93 send pull requests to get them strong mode clean. | |
| 94 | |
| 95 There are two ways of opting into the new compiler: | |
| 96 | |
| 97 * Use the new `--web-compiler` flag, which supports `dartdevc`, | |
| 98 `dart2js` or `none` as options. This is the easiest way to try things | |
|
nweiz
2017/05/26 22:30:10
What does "none" do?
jakemac
2017/05/27 00:00:09
It is equivalent to --no-dart2js (no js compilatio
| |
| 99 out without changing the default. | |
| 100 | |
| 101 * Add config to your pubspec. There is a new `web` key which supports a | |
| 102 single key called `compiler`. This is a map of string to string, where | |
|
nweiz
2017/05/26 22:30:09
"of string to string..." -> "from mode names to th
jakemac
2017/05/27 00:00:10
Done.
| |
| 103 the keys are modes and the values are the compiler to use in that | |
| 104 mode. For example, to default to dartdevc in debug mode you can add | |
| 105 the following to your pubspec: | |
| 106 | |
| 107 ```yaml | |
| 108 web: | |
| 109 compiler: | |
| 110 debug: dartdevc | |
| 111 ``` | |
| 112 | |
| 113 You can also use the new compiler to run your tests in chrome much more | |
| 114 quickly than you can with dart2js. In order to do that, run pub serve on | |
| 115 your test directory `pub serve test --web-compiler=dartdevc`, and then run | |
|
nweiz
2017/05/26 22:30:09
-"pub serve on your test directory"
jakemac
2017/05/27 00:00:09
Done.
| |
| 116 `pub run test -p chrome --pub-serve=8080`. | |
| 117 | |
| 118 * Added support for the UNLICENSE file when validating licenses on | |
| 119 `pub lish`. | |
| 120 * Better handling for network errors when fetching packages. These are no | |
| 121 longer unhandled errors and won't print a stack trace unless you are | |
| 122 running in verbose mode. | |
| 79 * `pub build` will use a failing exit code if there are errors in any | 123 * `pub build` will use a failing exit code if there are errors in any |
| 80 transformer. | 124 transformer. |
| 81 * Allow publishing packages that depend on the Flutter SDK. | 125 * Allow publishing packages that depend on the Flutter SDK. |
| 82 | 126 |
| 83 * dartfmt | 127 * dartfmt |
| 84 * Preserve type parameters in new generic function typedef syntax. | 128 * Preserve type parameters in new generic function typedef syntax. |
| 85 * Add self-test validation to ensure formatter bugs do not cause user code | 129 * Add self-test validation to ensure formatter bugs do not cause user code |
| 86 to be lost. | 130 to be lost. |
| 87 | 131 |
| 88 ### Infrastructure changes | 132 ### Infrastructure changes |
| (...skipping 1853 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1942 they will keep the Dart process alive until they time out. This fixes the | 1986 they will keep the Dart process alive until they time out. This fixes the |
| 1943 handling of persistent connections. Previously, the client would shut down | 1987 handling of persistent connections. Previously, the client would shut down |
| 1944 immediately after a request. | 1988 immediately after a request. |
| 1945 | 1989 |
| 1946 * **Breaking change:** `HttpServer` no longer compresses all traffic by | 1990 * **Breaking change:** `HttpServer` no longer compresses all traffic by |
| 1947 default. The new `autoCompress` property can be set to `true` to re-enable | 1991 default. The new `autoCompress` property can be set to `true` to re-enable |
| 1948 compression. | 1992 compression. |
| 1949 | 1993 |
| 1950 * `dart:isolate`: `Isolate.spawnUri` added the optional `packageRoot` argument, | 1994 * `dart:isolate`: `Isolate.spawnUri` added the optional `packageRoot` argument, |
| 1951 which controls how it resolves `package:` URIs. | 1995 which controls how it resolves `package:` URIs. |
| OLD | NEW |