auto-polyfil based on https://github.com/jakearchibald/es6-promise/issues/59#issuecomment-65396095