Closed cesaryuan closed 1 year ago
好问题,我想想用什么办法删掉。
例子中的定义方法只能运行在sloppy mode而无法运行在strict mode。
babel-parser的options里面有strictMode的选项,但我试了一下,即使显式地传入false,任然无法对变量b正确解析。
babel关于sloppy mode的bug有很多,现在还有一个function定义无法冒泡到上层scope的问题(babel/babel#13549),这个问题在8.0.0版本中将被解决。
已在babel提了issue,在上游修复前只能先不删除这类变量了。
babel的开发者回了,说是这种情况下变量b在global中,不在babel的修改范围内(好久没看文档了,早就忘了这茬事)。babel的讨论区也有一个处理这类变量的解决方案:babel/babel#11654,不过在我们这没必要做那么全面,我们只需要预处理一下,分离这种定义就行了。
谢谢大佬哈哈,白天太忙没来得及看,感谢感谢
代码decode后无法运行(deob)
加密前:
加密后
decode结果:
console.log(b);
预期结果:var a = b = 1; console.log(b);