|
| 1 | +## March 20th |
| 2 | + |
| 3 | +This was a jam packed week: |
| 4 | + |
| 5 | +1. Original Languages got support for preview |
| 6 | +2. Stepping now handles many edge cases |
| 7 | +3. Preview supports many new edge cases |
| 8 | +4. Huge performance wins for loading evil and cheap webpack bundles |
| 9 | + |
| 10 | +Thanks to all of the contributors! |
| 11 | + |
| 12 | +[@Rohanhacker], [@atwalg2], [@bomsy], [@lukaszsobek], [@loganfsmyth], [@mmcote], [@AnshulMalik], [@zeoneo], [@hozefaj], [@MarkPollmann] |
| 13 | + |
| 14 | +### Map Original Languages |
| 15 | + |
| 16 | +Last week we landed support for mapping expressions. We map original variables to generated expressions, which is especially useful for webpack and babel module dependencies. |
| 17 | + |
| 18 | +We are currently using the new mappings in the debugger's preview and watch expressions. We will add support to the console this week. |
| 19 | + |
| 20 | +Last week we also fixed some bugs with the scope mapping logic: |
| 21 | + |
| 22 | +1. out of order declarations |
| 23 | +2. flow types are now excluded |
| 24 | +3. optimized away bindings |
| 25 | + |
| 26 | +* [Use original scope mappings to rewrite preview and watch expressions][5684] [@loganfsmyth] |
| 27 | +* [Handle out-of-order declarations in scopes.][5690] [@loganfsmyth] |
| 28 | +* [Exclude Flowtype bindings from original scope list.][5692] [@loganfsmyth] |
| 29 | +* [Render a toggle for original/generated scopes when available.][5702] [@loganfsmyth] |
| 30 | +* [[Scopes] Avoid exceptions when import bindings are optimized away.][5722] [@loganfsmyth] |
| 31 | + |
| 32 | +[preview]: https://user-images.githubusercontent.com/254562/37664954-99287814-2c32-11e8-9b0c-d8088148ec3c.gif |
| 33 | + |
| 34 | +| Preview original expressions | |
| 35 | +| ---------------------------- | |
| 36 | +| ![preview] | |
| 37 | + |
| 38 | +| Jump between original and generated scopes | |
| 39 | +| ------------------------------------------ | |
| 40 | +| ![5702-0] | |
| 41 | + |
| 42 | +### Stepping |
| 43 | + |
| 44 | +One of our quarterly goals is to improve the debugger's stepping quality. There are some cases where we either step too often or miss locations: |
| 45 | + |
| 46 | +1. multiple statements on the same line `console.log(); debugger; console.log(); debugger;` |
| 47 | +2. multiple expressions on the same line `e.g. a() ? b() ? c() : d()` |
| 48 | +3. multi-line statements e.g. array, object declarations and call expressions |
| 49 | + |
| 50 | +We hope to solve all of these issues in the engine's debugger frontend, but in the meantime, |
| 51 | +we're using a new pause point data structure which has all of the valid pause locations. |
| 52 | + |
| 53 | +* [Pause points - client][5537] [@jasonLaster] |
| 54 | +* [Pause points - server][pp] |
| 55 | + |
| 56 | +[pp]: https://bugzilla.mozilla.org/show_bug.cgi?id=1447316 |
| 57 | + |
| 58 | +#### Statements |
| 59 | + |
| 60 | + |
| 61 | + |
| 62 | +#### Sequences |
| 63 | + |
| 64 | + |
| 65 | + |
| 66 | +#### Old Behavior -Sequences |
| 67 | + |
| 68 | + |
| 69 | + |
| 70 | +### Performance |
| 71 | + |
| 72 | +* [Improve loading sources][5648] [@jasonLaster] |
| 73 | +* [refactored loading states & added loading in outline][5651] [@Rohanhacker] |
| 74 | +* [Added VisibilityHandler to handle the mounting and unmounting of child components of App when changing panel tabs.][5688] [@mmcote] |
| 75 | +* [update file icons to use img instead of svg][5709] [@hozefaj] |
| 76 | + |
| 77 | +| Loading eval-source-maps (New) | |
| 78 | +| ------------------------------ | |
| 79 | +| ![5648-3] | |
| 80 | + |
| 81 | +| Loading eval-source-maps (Old) | |
| 82 | +| ------------------------------ | |
| 83 | +| ![5648-0] | |
| 84 | + |
| 85 | +### Preview |
| 86 | + |
| 87 | +[@bomsy] landed an awesome fix for our preview engine, which makes it possible to preview member properties of indexed objects. In the example below, previously it was only possible to preview `collection` and `genres`, now it is possible to preview `movies` and `director`. |
| 88 | + |
| 89 | +We'll be adding additional support for index keys and several other syntax locations in this [issue](https://github.com/devtools-html/debugger.html/issues/5695). |
| 90 | + |
| 91 | +```js |
| 92 | +collection.genres["sci-fi"].movies[0].director; |
| 93 | +``` |
| 94 | + |
| 95 | +* [Fix computed member expressions][5655] [@bomsy] |
| 96 | + |
| 97 | +### UI |
| 98 | + |
| 99 | +* [[QuickOpen] Fix loading for searching symbols][5653] [@atwalg2] |
| 100 | +* [Ensure sort by name button is visible in dark theme][5666] [@darkwing] |
| 101 | +* [Fix home button color for dark theme][5673] [@darkwing] |
| 102 | +* [Fix #5668 - Restore missing CSS var][5675] [@darkwing] |
| 103 | +* [Fix message and formatting of Outline when no functions][5683] [@darkwing] |
| 104 | +* [Open quick open without prefix selected][5715] [@MarkPollmann] |
| 105 | +* [Enhancement add contenxt menu copy to clipboard][5704] [@zeoneo] |
| 106 | + |
| 107 | +| Quick Open - Prefix | |
| 108 | +| ------------------- | |
| 109 | +| ![5715-0] | |
| 110 | + |
| 111 | +### Flow |
| 112 | + |
| 113 | +One of our goals this quarter is to improve our pausing and stepping stability. To that end, we want to improve our flow support to help prevent preventable typeErrors. |
| 114 | + |
| 115 | +This past week [@AnshulMalik] converted our source type, to a stricter read-only object. This will catch unintentional sets. |
| 116 | + |
| 117 | +[@lukaszsobek] is making progress removing `toJS` calls from the codebase. He's seeing a significant performance win here as well. |
| 118 | + |
| 119 | +* [Removes toJS from setInScopeLines][5664] [@lukaszsobek] |
| 120 | +* [Fix flow config rules][5671] [@jasonLaster] |
| 121 | +* [Make SourceRecord fields Read-Only][5703] [@AnshulMalik] |
| 122 | +* [Lock down parser flow type exports][5674] [@jasonLaster] |
| 123 | + |
| 124 | +### Bugs |
| 125 | + |
| 126 | +* [Fix a couple of stepping typeErrors][5680] [@jasonLaster] |
| 127 | + |
| 128 | +### Docs |
| 129 | + |
| 130 | +* [March 13th update][5662] [@jasonLaster] |
| 131 | + |
| 132 | +### Testing |
| 133 | + |
| 134 | +* [Bump mochii][5670] [@jasonLaster] |
| 135 | +* [Bump mochii to 28][5700] [@jasonLaster] |
| 136 | +* [Fix failing mochitests][5676] [@jasonLaster] |
| 137 | +* [Fixup console pretty print test][5689] [@jasonLaster] |
| 138 | + |
| 139 | +### Code Health |
| 140 | + |
| 141 | +* [backport - Bug 1436187 Move existing shared head files to devtools/cl…][5667] [@jasonLaster] |
| 142 | +* [Allow dbg in the browser toolbox][5685] [@jasonLaster] |
| 143 | +* [Backport changes from MC][5696] [@jasonLaster] |
| 144 | +* [Backport changes made in mozilla-central for Bug 1382581][5705] [@nchevobbe] |
| 145 | +* [Reformat the getIcon code][5723] [@darkwing] |
| 146 | + |
| 147 | +### Infrastructure |
| 148 | + |
| 149 | +* [added pretty quick][5719] [@Rohanhacker] |
| 150 | + |
| 151 | +[5648-0]: https://shipusercontent.com/e43b9730dc89b9c3d794f7d9a7f8e4d4/Screen%20Shot%202018-03-09%20at%2010.14.16%20AM.png |
| 152 | +[5648-1]: https://shipusercontent.com/684ced3a48464effd75d7bbc296973b4/Screen%20Shot%202018-03-09%20at%2010.14.00%20AM.png |
| 153 | +[5648-2]: https://shipusercontent.com/9eb51ab907c4ff4387465344d52f248d/Screen%20Shot%202018-03-09%20at%2010.14.34%20AM.png |
| 154 | +[5648-3]: https://shipusercontent.com/92dcf1ed3d7d3681e389a0d3940656ff/Screen%20Shot%202018-03-09%20at%2010.10.25%20AM.png |
| 155 | +[5648-4]: https://shipusercontent.com/1ecb7b22f7a5bd3c241426e7c75fa7b4/Screen%20Shot%202018-03-09%20at%2010.08.51%20AM.png |
| 156 | +[5648-5]: https://shipusercontent.com/0e3393c1c21a690e59e409f83e2a8dec/Screen%20Shot%202018-03-09%20at%2010.08.12%20AM.png |
| 157 | +[5653-0]: https://user-images.githubusercontent.com/23143862/37255763-9e1dd6b6-2516-11e8-984f-619340629fa4.gif |
| 158 | +[5666-0]: https://user-images.githubusercontent.com/46655/37372064-835743d8-26df-11e8-9971-f50c08f0a61c.png |
| 159 | +[5670-0]: https://user-images.githubusercontent.com/254562/37410574-4c8aabb8-2777-11e8-82e9-aa02593eac89.png |
| 160 | +[5673-0]: https://user-images.githubusercontent.com/46655/37427326-136f9652-2797-11e8-8671-e7f47bb3b08b.png |
| 161 | +[5688-0]: https://user-images.githubusercontent.com/14250545/37176004-5d396b46-22d8-11e8-92f7-6e0ed588ca3d.gif |
| 162 | +[5688-1]: https://user-images.githubusercontent.com/14250545/37488408-1f14a36c-285a-11e8-86c6-073693e9a725.gif |
| 163 | +[5702-0]: https://user-images.githubusercontent.com/132260/37547099-eedb0082-292c-11e8-81f3-af2241649b82.gif |
| 164 | +[5704-0]: https://user-images.githubusercontent.com/26451940/37554772-5401dfd6-2a03-11e8-82d3-00c001471416.gif |
| 165 | +[5715-0]: https://user-images.githubusercontent.com/5286559/37593249-95cdf0ac-2b71-11e8-9385-3fe4d105a215.gif |
| 166 | +[5537]: https://github.com/devtools-html/debugger.html/pull/5537 |
| 167 | +[5648]: https://github.com/devtools-html/debugger.html/pull/5648 |
| 168 | +[5651]: https://github.com/devtools-html/debugger.html/pull/5651 |
| 169 | +[5653]: https://github.com/devtools-html/debugger.html/pull/5653 |
| 170 | +[5655]: https://github.com/devtools-html/debugger.html/pull/5655 |
| 171 | +[5662]: https://github.com/devtools-html/debugger.html/pull/5662 |
| 172 | +[5664]: https://github.com/devtools-html/debugger.html/pull/5664 |
| 173 | +[5666]: https://github.com/devtools-html/debugger.html/pull/5666 |
| 174 | +[5667]: https://github.com/devtools-html/debugger.html/pull/5667 |
| 175 | +[5670]: https://github.com/devtools-html/debugger.html/pull/5670 |
| 176 | +[5671]: https://github.com/devtools-html/debugger.html/pull/5671 |
| 177 | +[5673]: https://github.com/devtools-html/debugger.html/pull/5673 |
| 178 | +[5674]: https://github.com/devtools-html/debugger.html/pull/5674 |
| 179 | +[5675]: https://github.com/devtools-html/debugger.html/pull/5675 |
| 180 | +[5676]: https://github.com/devtools-html/debugger.html/pull/5676 |
| 181 | +[5680]: https://github.com/devtools-html/debugger.html/pull/5680 |
| 182 | +[5683]: https://github.com/devtools-html/debugger.html/pull/5683 |
| 183 | +[5684]: https://github.com/devtools-html/debugger.html/pull/5684 |
| 184 | +[5685]: https://github.com/devtools-html/debugger.html/pull/5685 |
| 185 | +[5688]: https://github.com/devtools-html/debugger.html/pull/5688 |
| 186 | +[5689]: https://github.com/devtools-html/debugger.html/pull/5689 |
| 187 | +[5690]: https://github.com/devtools-html/debugger.html/pull/5690 |
| 188 | +[5692]: https://github.com/devtools-html/debugger.html/pull/5692 |
| 189 | +[5696]: https://github.com/devtools-html/debugger.html/pull/5696 |
| 190 | +[5700]: https://github.com/devtools-html/debugger.html/pull/5700 |
| 191 | +[5702]: https://github.com/devtools-html/debugger.html/pull/5702 |
| 192 | +[5703]: https://github.com/devtools-html/debugger.html/pull/5703 |
| 193 | +[5704]: https://github.com/devtools-html/debugger.html/pull/5704 |
| 194 | +[5705]: https://github.com/devtools-html/debugger.html/pull/5705 |
| 195 | +[5709]: https://github.com/devtools-html/debugger.html/pull/5709 |
| 196 | +[5715]: https://github.com/devtools-html/debugger.html/pull/5715 |
| 197 | +[5719]: https://github.com/devtools-html/debugger.html/pull/5719 |
| 198 | +[5722]: https://github.com/devtools-html/debugger.html/pull/5722 |
| 199 | +[5723]: https://github.com/devtools-html/debugger.html/pull/5723 |
| 200 | +[@jasonlaster]: https://github.com/jasonLaster |
| 201 | +[@rohanhacker]: https://github.com/Rohanhacker |
| 202 | +[@atwalg2]: https://github.com/atwalg2 |
| 203 | +[@bomsy]: https://github.com/bomsy |
| 204 | +[@lukaszsobek]: https://github.com/lukaszsobek |
| 205 | +[@darkwing]: https://github.com/darkwing |
| 206 | +[@loganfsmyth]: https://github.com/loganfsmyth |
| 207 | +[@mmcote]: https://github.com/mmcote |
| 208 | +[@anshulmalik]: https://github.com/AnshulMalik |
| 209 | +[@zeoneo]: https://github.com/zeoneo |
| 210 | +[@nchevobbe]: https://github.com/nchevobbe |
| 211 | +[@hozefaj]: https://github.com/hozefaj |
| 212 | +[@markpollmann]: https://github.com/MarkPollmann |
0 commit comments