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

