Use native or polyfill promises and matches