Created by: bodazhao
This started as PR 8923 but I accidentally deleted that PR's repo/branch so it became unable to merge