google / closure-compiler

A JavaScript checker and optimizer.
https://developers.google.com/closure/compiler/
Apache License 2.0
7.37k stars 1.14k forks source link

Failing to optimize getprop #3503

Open NotWearingPants opened 4 years ago

NotWearingPants commented 4 years ago

Closure Compiler with advanced optimizations fails to optimize the expression {a:0}.a to 0 in some cases.

When running:

echo console.log({a:0}.a) | java -jar closure-compiler-v20191027.jar -O ADVANCED

I get console.log({a:0}.a);

but when running:

echo console.log({a:0}.a===0) | java -jar closure-compiler-v20191027.jar -O ADVANCED

I get console.log(!0);.

It seems that the compiler knows that {a:0}.a can be reduced to 0, but doesn't always do it for no apparent reason.

mprobst commented 4 years ago

Internal issue created: b/144415023.