<!DOCTYPE html> <title>Tests that the parameters to document.elementFromPoint() and document.elementsFromPoint() are mandatory and of type double.</title> <link rel="help" href="https://drafts.csswg.org/cssom-view/#extensions-to-the-document-interface"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <script> function validate_function_parameter_count(testFunc, funcName) { test(function() { assert_throws_js(TypeError, function() { testFunc(); }, "Called with no parameter"); assert_throws_js(TypeError, function() { testFunc(0); }, "Called with 1 parameter"); }, funcName + ": Parameters are mandatory."); } function validate_function_parameter_type(testFunc, funcName) { test(function() { assert_throws_js(TypeError, function() { testFunc(0, Infinity); }, "Passing Infinity as second parameter throws"); assert_throws_js(TypeError, function() { testFunc(Infinity, 0); }, "Passing Infinity as first parameter throws"); assert_throws_js(TypeError, function() { testFunc(0, NaN); }, "Passing NaN as second parameter throws"); assert_throws_js(TypeError, function() { testFunc(NaN, 0); }, "Passing NaN as first parameter throws"); }, funcName + ": Parameters should be finite floating point values."); } validate_function_parameter_count(function(x, y) { document.elementFromPoint(x, y); }, "document.elementFromPoint"); validate_function_parameter_type(function(x, y) { document.elementFromPoint(x, y); }, "document.elementFromPoint"); validate_function_parameter_count(function(x, y) { document.elementsFromPoint(x, y); }, "document.elementsFromPoint"); validate_function_parameter_type(function(x, y) { document.elementsFromPoint(x, y); }, "document.elementsFromPoint"); </script>