Small note: I wonder if this is a minor deoptimization. Uint32Value() is only expensive when the value is not an SMI but that should be relatively rare.