Babel plugin to ensure function declarations at the block level are block scoped
Static scope analysis and transpilation of ES6 block scoped const and let variables, to ES3.
Convert 'var' declarations to 'let' or 'const' as appropriate.
Use block scopes and let while retaining function scopes and var