v3 compatibility: ES6 Promises from mutualmobile/lavaca#106