Open bakkot opened 6 years ago
This is a valid bug that should get fixed.
Prepack's main focus is on the JavaScript ES5 feature set, and thing tend to be brittle for ES6 features.
I would love to work on this!
@NTillmann if this is till open could direct me on where to get started
const f = 0;
is considered by Prepack to be totally dead. But it's not: the top-level lexical scope is shared across scripts, just below the global scope. So while that may not be a global declaration, in that it does not create a property of the global object, it is available to other code on the page just as if it had beenvar
instead ofconst
; other scripts can writeconsole.log(f)
to print0
. In that sense it is not safe to eliminate.This may or may not be a bug, depending on your perspective. I'm just not sure what things prepack considers dead:
{ const f = 0; }
definitely is,var f = 0;
definitely isn't, but this is kind of in-between.