/**
* Polyfill for HTMLMediaElement
* - HTMLMediaElement.play
* Return a `Promise`.
*/
(function (HTMLMediaElement) {
'use strict';
const HTMLMediaElementPrototype = HTMLMediaElement.prototype;
const realPlay = HTMLMediaElementPrototype.play;
HTMLMediaElementPrototype.play = function () {
// eslint-disable-next-line sonarjs/no-try-promise
try {
const promise = realPlay.apply(this, arguments);
if (typeof promise?.then === 'function') {
return promise;
}
return Promise.resolve();
} catch (err) {
return Promise.reject(err);
}
};
}(HTMLMediaElement));