Tree shaking is helpful but not enough. It makes dependencies more fine-grained and binaries smaller by removing some false sharing. But library maintainers still have to be careful about <i>true</i> sharing, where a function calls another function, which in turn pulls in something big (like a lot of data stored in a constant).<p>You need both tree shaking and a community dedicated to keeping code small.<p>Javascript has the latter; it&#x27;s not universally true, but lots of JavaScript libraries pride themselves on small code size and few dependencies.<p>That&#x27;s great. But you can&#x27;t stop doing that work just because you have a tree-shaking compiler. For example, there&#x27;s a lot of work going into making Angular 2 apps reasonably sized and dart2js doesn&#x27;t magically make it go away.