This will work for a standard Promise, which is great, but not for weirdo made up promises. It also was released, I think, in 2018.
It's one thing if you own the entire codebase, but if you're building a popular, multiple-years-old library/framework, you can't make the same assumptions.