/** * Imports code into a worklet. E.g. * * importWorklet(CSS.paintWorklet, {url: 'script.js'}); * importWorklet(CSS.paintWorklet, '(javascript string)'); * * @param {Worklet} worklet * @param {(Object|string)} code
*/ function importWorklet(worklet, code) {
let url; if (typeof code === 'object') {
url = code.url;
} else { const blob = new Blob([code], {type: 'text/javascript'});
url = URL.createObjectURL(blob);
}
return worklet.addModule(url);
}
/** @private */
async function animationFrames(frames) { for (let i = 0; i < frames; i++)
await new Promise(requestAnimationFrame);
}
/** @private */
async function workletPainted() {
await animationFrames(2);
}
/** * To make sure that we take the snapshot at the right time, we do double * requestAnimationFrame. In the second frame, we take a screenshot, that makes * sure that we already have a full frame. * * @param {Worklet} worklet * @param {(Object|string)} code
*/
async function importWorkletAndTerminateTestAfterAsyncPaint(worklet, code) { if (typeof worklet === 'undefined') {
takeScreenshot(); return;
}
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung ist noch experimentell.