Skip to content

Latest commit

 

History

History
212 lines (159 loc) · 9.93 KB

File metadata and controls

212 lines (159 loc) · 9.93 KB

March 20th

This was a jam packed week:

  1. Original Languages got support for preview
  2. Stepping now handles many edge cases
  3. Preview supports many new edge cases
  4. Huge performance wins for loading evil and cheap webpack bundles

Thanks to all of the contributors!

@Rohanhacker, @atwalg2, @bomsy, @lukaszsobek, @loganfsmyth, @mmcote, @AnshulMalik, @zeoneo, @hozefaj, @MarkPollmann

Map Original Languages

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.

We are currently using the new mappings in the debugger's preview and watch expressions. We will add support to the console this week.

Last week we also fixed some bugs with the scope mapping logic:

  1. out of order declarations
  2. flow types are now excluded
  3. optimized away bindings
Preview original expressions
preview
Jump between original and generated scopes
5702-0

Stepping

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:

  1. multiple statements on the same line console.log(); debugger; console.log(); debugger;
  2. multiple expressions on the same line e.g. a() ? b() ? c() : d()
  3. multi-line statements e.g. array, object declarations and call expressions

We hope to solve all of these issues in the engine's debugger frontend, but in the meantime, we're using a new pause point data structure which has all of the valid pause locations.

Statements

Sequences

Old Behavior -Sequences

Performance

Loading eval-source-maps (New)
5648-3
Loading eval-source-maps (Old)
5648-0

Preview

@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.

We'll be adding additional support for index keys and several other syntax locations in this issue.

collection.genres["sci-fi"].movies[0].director;

UI

Quick Open - Prefix
5715-0

Flow

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.

This past week @AnshulMalik converted our source type, to a stricter read-only object. This will catch unintentional sets.

@lukaszsobek is making progress removing toJS calls from the codebase. He's seeing a significant performance win here as well.

Bugs

Docs

Testing

Code Health

Infrastructure