EventTarget.addEventListener and EventTarget.removeEventLister should throw on invalid arguments.

On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".

Signature:
void addEventListener(DOMString type, EventListener? listener, optional boolean useCapture)
PASS document.addEventListener() threw exception TypeError: Failed to execute 'addEventListener' on 'EventTarget': 2 arguments required, but only 0 present..
PASS document.addEventListener("foo") threw exception TypeError: Failed to execute 'addEventListener' on 'EventTarget': 2 arguments required, but only 1 present..
PASS document.addEventListener("foo", listener) did not throw exception.
PASS document.addEventListener("", listener) did not throw exception.
PASS document.addEventListener("", function(){}) did not throw exception.
PASS document.addEventListener("bar", listener, false) did not throw exception.
PASS document.addEventListener("bar", listener, true) did not throw exception.
PASS document.addEventListener(null, listener) did not throw exception.
PASS document.addEventListener("foo", null) did not throw exception.
PASS document.addEventListener("zork", listener, null) did not throw exception.
PASS document.addEventListener(undefined, listener) did not throw exception.
PASS document.addEventListener("foo", undefined) did not throw exception.
PASS document.addEventListener("zork", listener, undefined) did not throw exception.


Signature:
void removeEventListener(DOMString type, EventListener? listener, optional boolean useCapture)
PASS document.removeEventListener() threw exception TypeError: Failed to execute 'removeEventListener' on 'EventTarget': 2 arguments required, but only 0 present..
PASS document.removeEventListener("foo") threw exception TypeError: Failed to execute 'removeEventListener' on 'EventTarget': 2 arguments required, but only 1 present..
PASS document.removeEventListener("foo", listener) did not throw exception.
PASS document.removeEventListener("foo", listener, true) did not throw exception.
PASS document.removeEventListener("bar", listener, false) did not throw exception.
PASS document.removeEventListener("bar", listener, false) did not throw exception.
PASS document.removeEventListener("bar", listener, true) did not throw exception.
PASS document.removeEventListener(null, listener) did not throw exception.
PASS document.removeEventListener("foo", null) did not throw exception.
PASS document.removeEventListener("zork", listener, null) did not throw exception.
PASS document.removeEventListener(undefined, listener) did not throw exception.
PASS document.removeEventListener("foo", undefined) did not throw exception.
PASS document.removeEventListener("zork", listener, undefined) did not throw exception.
PASS successfullyParsed is true

TEST COMPLETE

