Refactored local::promise to be standard conformant

Do we really need an allocation here? Wouldn't it be more efficient to set to NULL here?