a. It is used for features that react to user interaction, for example, keyboard or mouse input.
b. It is used for features that react to DOM manipulations, for example, the things that happen asynchronously when an element is inserted in the document.
c. It is used to queue calls to history.back() and similar APIs.
d. All of the above.