It is permitted, but ideally would not be. We can use a `WeakMap` to associate a promise with an identifier without tampering with the public, mutable, subversible interface.