|  | <!DOCTYPE html> | 
|  | <title>Worklet Animation with options</title> | 
|  | <link rel="help" href="https://drafts.css-houdini.org/css-animationworklet/"> | 
|  |  | 
|  | <script src="/resources/testharness.js"></script> | 
|  | <script src="/resources/testharnessreport.js"></script> | 
|  | <script src="/web-animations/testcommon.js"></script> | 
|  | <script src="common.js"></script> | 
|  |  | 
|  | <div id="target"></div> | 
|  |  | 
|  | <script id="animate_with_options" type="text/worklet"> | 
|  | registerAnimator("test_animator", class { | 
|  | constructor(options) { | 
|  | this.time_ = options.time; | 
|  | } | 
|  | animate(currentTime, effect) { | 
|  | effect.localTime = this.time_; | 
|  | } | 
|  | }); | 
|  | </script> | 
|  |  | 
|  | <script> | 
|  | promise_test(async t => { | 
|  | await runInAnimationWorklet(document.getElementById('animate_with_options').textContent); | 
|  | const target = document.getElementById('target'); | 
|  | const effect = new KeyframeEffect(target, [{ opacity: 0 }], { duration: 1000 }); | 
|  | const options = {'time': 500}; | 
|  | const animation = new WorkletAnimation('test_animator', effect, document.timeline, options); | 
|  | animation.play(); | 
|  |  | 
|  | // wait until local times are synced back to the main thread. | 
|  | await waitForAnimationFrameWithCondition(_ => { | 
|  | return getComputedStyle(target).opacity != '1'; | 
|  | }); | 
|  | assert_equals(getComputedStyle(target).opacity, "0.5"); | 
|  | }, "Animator should be able to use options to update the animation"); | 
|  | </script> |