Test Element.matches() with no argument, null, and undefined. On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE". PASS document.getElementsByTagName("undefined")[0].matches() threw exception TypeError: Not enough arguments. PASS document.getElementsByTagName("undefined")[0].matches(undefined) is true PASS document.getElementsByTagName("undefined")[0].matches(null) is false PASS document.getElementsByTagName("null")[0].matches() threw exception TypeError: Not enough arguments. PASS document.getElementsByTagName("null")[0].matches(null) is true PASS document.getElementsByTagName("null")[0].matches(undefined) is false PASS document.getElementsByTagName("defined")[0].matches() threw exception TypeError: Not enough arguments. PASS document.getElementsByTagName("defined")[0].matches(null) is false PASS document.getElementsByTagName("defined")[0].matches(undefined) is false PASS document.getElementsByTagName("undefined")[0].webkitMatchesSelector() threw exception TypeError: Not enough arguments. PASS document.getElementsByTagName("undefined")[0].webkitMatchesSelector(undefined) is true PASS document.getElementsByTagName("undefined")[0].webkitMatchesSelector(null) is false PASS document.getElementsByTagName("null")[0].webkitMatchesSelector() threw exception TypeError: Not enough arguments. PASS document.getElementsByTagName("null")[0].webkitMatchesSelector(null) is true PASS document.getElementsByTagName("null")[0].webkitMatchesSelector(undefined) is false PASS document.getElementsByTagName("defined")[0].webkitMatchesSelector() threw exception TypeError: Not enough arguments. PASS document.getElementsByTagName("defined")[0].webkitMatchesSelector(null) is false PASS document.getElementsByTagName("defined")[0].webkitMatchesSelector(undefined) is false PASS successfullyParsed is true TEST COMPLETE