and self for native promises