#10852·rolldown

[Bug]: missing typeof optimizations

Author: nstepienCreated Sep 9, 2026Updated Sep 12, 2026
Labelsp3: nice to have / edge casescope: output sizescope: minifier

Reproduction link or steps

https://repl.rolldown.rs/#eNqdVmtvIjcU/Ssu/QChwATINglVtooqFiFlSRroqpWQEs+MB7zx2GjGA5ki/nuPPQ/eu22/wPjce+37OPfa60pQ6a0rkRLCVyvZ8pQM+KylY4PKSu+UpFHxIODhQkWarInPAi7Zb1ZMNiSIVEimpd208stUTiV7t9rQpYmw/6VNbT2VhHC5SHQPhlz67B3HTCuNqdxcwLqyaZRo4Va5zpyBc7EmifTJnfm1u/swzXCZCOD4FSXkKgPpKGE7WiGg9lYF4WAtSyDWEYBqdQukxmKchtitZjzNYOV+BbzelEAg2wBqF+TuYwYHifQ0VxKSDuD1ZgvVgXVzbCqdep0MlPJJ3ck2U4K1hJrVdLpgKtjG2iBbpPDkQNfEX6phcUbN5KRUQ2Bn1No7W4Xl9xAFlVynJdA8QkZ0tP1OQpdFLUDnTpFbV/jsjFK1WiqhREbJJg6sqpPVPCW+YjHhmggVM4RHvTcC1VeU6fVXq8TzFeExmOkJGjGf8DBkPqeaiZS4LFARbOdQ2HXgokEKnpMVF4KoheYh/5uZ4zwVRczTIjVnHJTPMN5xyAylNZ+59+sNKG8FLt3F4RsE+4EZ056RtI3XXArDAkLRAbkR0MIbs1ed1KjQc5XM5mTF8lxk8SBQqS92vLQUNpQtOXyQcSPedwdIx56Ojy5BAolU2KZwgNAVTU2e9ZylVUgjFrCISQ8iveIeOzy98+3TO2XFzWKv9brftuyeIVEh2oaU5ZQUjRnbqMqIGsRNMDMQZNnMZUzxv654rRgKF7byOVruaOfAKQmqWYqO6IJxs2cjO/vL7hGZpMLgxTRDu08rVtEUDLGwOM5bRBtCrbhv2iFOFmaa57yaa72Ie46zYm5zIahGq4RN/70143qeuC2urCRgVCcRi5u4CQSaKXIKxMkORr7OTbliwm7bPN2OnEzY0mqsIy5nE2rHxF5s+wEROEgUiBiZ0YX5Y1taU6nzWLdTycRcBtsgMcM2rlrusnW3vrlHn6met/q7ObfIw2ivDjnWvjwGHwedE+aPg/blMfw0PILGvz9P2i/HhxncoIcdsKOXh95/Gg8fHke7O+SSz/d/vny5f/hjz5FCNhydl8FufP+p/zIcTfqD/vMZ8++oPD2Oh5PhF6PyaTgaTv46oTPqD+4PdU6NTi6XVPBsXJp7A9whzY+4HxhrxnP6xmBhq4ypVRBxESl0d0zu7vAOcJNZFU1oPCiyCYrJWjWREaPenLqC/VA1RxdXuT0dvdoj0HmTuDWqh8ePHieHLlirob3BtCroSASbUS8lwz5xI7WKWZSR1yo/43jMJdCcvdNwIRjx5sx7y5gP4h8ej1awlC5bOW9dXA2OCUXnv65QrnN943X87vW1f31Lrzs3V93ubeB1rtwPP1/6/ofLrk+DbvvK85wFLlo6Q39b46avwqaLZxsCRctHnsOWuHZiZ5xKuKS51zfr1tf4x4fbm++kvnD//6Yfmy1YpFOMbOqTn85x4VwxsndrYtVei72QdH+M+dgPAtz6cY8EVMTsFbu/5u4OkD4qTulgCiqxxCvF3MiG0/ATt0v5tvBUInx4zVDnpbm32X4IDXv1xto8QSIWYkJZHaQPJfPezmazxUKw6j+yGW91+/SvVQu6UCFUIBehIUyRcTzMWaVnHpMbPN+XeKPjamCxrmz+AVy+SQM=

What is expected?

Rolldown could optimize more typeof patterns:

  • "symbol" type, as well as well-known symbols
  • various const objects references
  • function references
  • typeof Number.NaN is optimized, but not other number constants
  • should support for the unknown type be removed?
  • invalid typeof checks on properties should always resolve to a boolean and tree-shake unreachable code

What is actually happening?

Rolldown does not optimize the patterns listed above. Please check the repro for specific examples.

System Info

bash
System:
    OS: Windows 11 10.0.26200
    CPU: (32) x64 AMD Ryzen 9 9950X3D 16-Core Processor          
    Memory: 36.84 GB / 63.58 GB
  Binaries:
    Node: 26.8.1 - C:\Program Files\nodejs\node.EXE
    npm: 12.0.2 - C:\Program Files\nodejs\npm.CMD
  Browsers:
    Chrome: 153.0.8010.37
    Edge: Chromium (152.0.4191.53)
    Firefox: 155.0.1 - C:\Program Files\Mozilla Firefox\firefox.exe

Any additional comments?

No response