| 1234567891011121314151617181920212223242526272829303132333435363738394041424344 | import defined from "./defined.js";let implementation;if (typeof cancelAnimationFrame !== "undefined") {  implementation = cancelAnimationFrame;}(function () {  // look for vendor prefixed function  if (!defined(implementation) && typeof window !== "undefined") {    const vendors = ["webkit", "moz", "ms", "o"];    let i = 0;    const len = vendors.length;    while (i < len && !defined(implementation)) {      implementation = window[`${vendors[i]}CancelAnimationFrame`];      if (!defined(implementation)) {        implementation = window[`${vendors[i]}CancelRequestAnimationFrame`];      }      ++i;    }  }  // otherwise, assume requestAnimationFrame is based on setTimeout, so use clearTimeout  if (!defined(implementation)) {    implementation = clearTimeout;  }})();/** * A browser-independent function to cancel an animation frame requested using {@link requestAnimationFrame}. * * @function cancelAnimationFrame * * @param {Number} requestID The value returned by {@link requestAnimationFrame}. * * @see {@link http://www.w3.org/TR/animation-timing/#the-WindowAnimationTiming-interface|The WindowAnimationTiming interface} */function cancelAnimationFramePolyfill(requestID) {  // we need this extra wrapper function because the native cancelAnimationFrame  // functions must be invoked on the global scope (window), which is not the case  // if invoked as Cesium.cancelAnimationFrame(requestID)  implementation(requestID);}export default cancelAnimationFramePolyfill;
 |