"use strict"; /** * Waits until we have at least one frame rendered, regardless of the engine. * * @returns {Promise} */ function waitForAtLeastOneFrame() { return new Promise(resolve => { // Different web engines work slightly different on this area but waiting // for two requestAnimationFrames() to happen, one after another, should be // sufficient to ensure at least one frame has been generated anywhere. window.requestAnimationFrame(() => { window.requestAnimationFrame(() => { resolve(); }); }); }); }