Why is the second parameter to MutationObserver.observe() optional?

The second parameter to MutationObserver.observe() is optional in the specification. I don't understand why we don't simply mark it as mandatory considering that it will throw a TypeError if omitted anyway.

Behavior of browser engines:

  • Gecko agrees with the spec (Argument is optional but throws a TypeError when omitted)
  • WebKit / Blink mark the second parameter as mandatory