That's not even the worst with Promises...
Did you know that Promise constructors might not even return a promise at all, but a arbitrary object?
function WHY(exec) {
function f() {}
exec(f, f)
}
let p = Promise.resolve.call(WHY, 42)
console.log(p, p instanceof Promise) // WHY {} false