It's a little un-idiomatic to use delegate objects as a "callback bag" in the Web Platform.
This could potentially, instead, use EventTarget, and emit events for each of the callbacks we have in thedelegate
object. This gives us a lot more flexibility with handling these lifecycle steps.