1. If ifAvailable is true and request is not grantable, then enqueue the following steps on callback’s relevant settings object's responsible event loop:
1. Let r be the result of invoking callback with null as the only argument.
2. Resolve promise with r and abort these steps.
2. Enqueue request in queue.
I think it should check whether it's in the queue or not (or define "earlier than" better?)
https://wicg.github.io/web-locks/#lock-request-grantable
This can't be done before enqueuing, but in https://wicg.github.io/web-locks/#algorithm-request-lock:
I think it should check whether it's in the queue or not (or define "earlier than" better?)