为了保持代码的单态(monomorphism)。
这涉及到了js引擎优化的一些问题,
tapable从1.0.0版本开始就用new Function来生成静态代码最后来来执行, 以确保得到最优执行效率。
...
https://medium.com/webpack/the-new-plugin-system-week-22-23-c24e3b22e95
https://mrale.ph/blog/2015/01/11/whats-up-with-monomorphism.html
https://github.com/webpack/tapable/issues/90