This tests the behavior of non-numeric values in contexts where the DOM has a numeric parameter.

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


PASS nonNumericPolicy('document.createTextNode("a").substringData(x, 0)') is 'any type allowed'
PASS nonNumericPolicy('document.createTextNode("a").substringData(0, x)') is 'any type allowed'
PASS nonNumericPolicy('document.createTextNode("a").insertData(x, "b")') is 'any type allowed'
PASS nonNumericPolicy('document.createTextNode("a").deleteData(x, 0)') is 'any type allowed'
PASS nonNumericPolicy('document.createTextNode("a").deleteData(0, x)') is 'any type allowed'
PASS nonNumericPolicy('document.createTextNode("a").replaceData(x, 0, "b")') is 'any type allowed'
PASS nonNumericPolicy('document.createTextNode("a").replaceData(0, x, "b")') is 'any type allowed'
PASS nonNumericPolicy('createCSSMediaRule().insertRule(ruleText, x)') is 'any type allowed'
PASS nonNumericPolicy('createCSSMediaRule().deleteRule(x)') is 'any type allowed'
PASS nonNumericPolicy('createCSSRuleList().item(x)') is 'any type allowed'
PASS nonNumericPolicy('createCSSStyleDeclaration().item(x)') is 'any type allowed'
PASS nonNumericPolicy('createCSSStyleSheet().insertRule(ruleText, x)') is 'any type allowed'
PASS nonNumericPolicy('createCSSStyleSheet().deleteRule(x)') is 'any type allowed'
PASS nonNumericPolicy('createCSSStyleSheet().addRule(selector, styleText, x)') is 'any type allowed'
PASS nonNumericPolicy('createCSSStyleSheet().removeRule(x)') is 'any type allowed'
PASS nonNumericPolicy('createCSSValueList().item(x)') is 'any type allowed'
PASS nonNumericPolicy('document.elementFromPoint(x, 0)') is 'any type allowed'
PASS nonNumericPolicy('document.elementFromPoint(0, x)') is 'any type allowed'
PASS nonNumericPolicy('document.body.scrollByLines(x)') is 'any type allowed'
PASS nonNumericPolicy('document.body.scrollByPages(x)') is 'any type allowed'
PASS nonNumericPolicy('document.body.scrollLeft = x') is 'any type allowed'
PASS nonNumericPolicy('document.body.scrollTop = x') is 'any type allowed'
PASS nonNumericPolicy('document.images.item(x)') is 'any type allowed'
PASS nonNumericPolicy('document.createElement("input").setSelectionRange(x, 0)') is 'any type allowed'
PASS nonNumericPolicy('document.createElement("input").setSelectionRange(0, x)') is 'any type allowed'
PASS nonNumericPolicy('createHTMLOptionsCollection().add(document.createElement("option"), x)') is 'number or null allowed (or omitted, but not infinite)'
PASS nonNumericPolicy('createHTMLOptionsCollection().remove(x)') is 'any type allowed'
PASS nonNumericPolicy('createHTMLSelectElement().remove(x)') is 'any type allowed'
PASS nonNumericPolicy('createHTMLSelectElement().item(x)') is 'any type allowed'
PASS nonNumericPolicy('createHTMLTableElement().insertRow(x)') is 'any type allowed'
PASS nonNumericPolicy('createHTMLTableElement().deleteRow(x)') is 'any type allowed'
PASS nonNumericPolicy('createHTMLTableRowElement().insertCell(x)') is 'any type allowed'
PASS nonNumericPolicy('createHTMLTableRowElement().deleteCell(x)') is 'any type allowed'
PASS nonNumericPolicy('createHTMLTableSectionElement().insertRow(x)') is 'any type allowed'
PASS nonNumericPolicy('createHTMLTableSectionElement().deleteRow(x)') is 'any type allowed'
PASS nonNumericPolicy('document.createElement("textarea").setSelectionRange(x, 0)') is 'any type allowed'
PASS nonNumericPolicy('document.createElement("textarea").setSelectionRange(0, x)') is 'any type allowed'
PASS nonNumericPolicy('document.createEvent("KeyboardEvent").initKeyboardEvent("a", false, false, null, "b", x, false, false, false, false, false)') is 'any type allowed'
PASS nonNumericPolicy('createMediaList().item(x)') is 'any type allowed'
PASS nonNumericPolicy('document.createEvent("MouseEvent").initMouseEvent("a", false, false, null, x, 0, 0, 0, 0, false, false, false, false, 0, null)') is 'any type allowed'
PASS nonNumericPolicy('document.createEvent("MouseEvent").initMouseEvent("a", false, false, null, 0, x, 0, 0, 0, false, false, false, false, 0, null)') is 'any type allowed'
PASS nonNumericPolicy('document.createEvent("MouseEvent").initMouseEvent("a", false, false, null, 0, 0, x, 0, 0, false, false, false, false, 0, null)') is 'any type allowed'
PASS nonNumericPolicy('document.createEvent("MouseEvent").initMouseEvent("a", false, false, null, 0, 0, 0, x, 0, false, false, false, false, 0, null)') is 'any type allowed'
PASS nonNumericPolicy('document.createEvent("MouseEvent").initMouseEvent("a", false, false, null, 0, 0, 0, 0, x, false, false, false, false, 0, null)') is 'any type allowed'
PASS nonNumericPolicy('document.createEvent("MouseEvent").initMouseEvent("a", false, false, null, 0, 0, 0, 0, 0, false, false, false, false, x, null)') is 'any type allowed'
PASS nonNumericPolicy('document.body.attributes.item(x)') is 'any type allowed'
PASS nonNumericPolicy('document.createNodeIterator(document, x, null, false)') is 'any type allowed'
PASS nonNumericPolicy('document.getElementsByTagName("div").item(x)') is 'any type allowed'
PASS nonNumericPolicy('document.createEvent("ProgressEvent").initProgressEvent("a", false, false, false, x, 0)') is 'any type allowed'
PASS nonNumericPolicy('document.createEvent("ProgressEvent").initProgressEvent("a", false, false, false, 0, x)') is 'any type allowed'
PASS nonNumericPolicy('document.createRange().setStart(document, x)') is 'any type allowed'
PASS nonNumericPolicy('document.createRange().setEnd(document, x)') is 'any type allowed'
PASS nonNumericPolicy('document.createRange().comparePoint(document, x)') is 'any type allowed'
PASS nonNumericPolicy('document.createRange().isPointInRange(document, x)') is 'any type allowed'
PASS nonNumericPolicy('getSelection().collapse(document, x)') is 'any type allowed'
PASS nonNumericPolicy('getSelection().setBaseAndExtent(document, x, document, 0)') is 'any type allowed'
PASS nonNumericPolicy('getSelection().setBaseAndExtent(document, 0, document, x)') is 'any type allowed'
PASS nonNumericPolicy('getSelection().setPosition(document, x)') is 'any type allowed'
PASS nonNumericPolicy('getSelection().extend(document, x)') is 'any type allowed'
PASS nonNumericPolicy('getSelection().getRangeAt(x)') is 'any type allowed'
PASS nonNumericPolicy('document.styleSheets.item(x)') is 'any type allowed'
PASS nonNumericPolicy('document.createTextNode("a").splitText(x)') is 'any type allowed'
PASS nonNumericPolicy('document.createTreeWalker(document, x, null, false)') is 'any type allowed'
PASS nonNumericPolicy('document.createEvent("UIEvent").initUIEvent("a", false, false, null, x)') is 'any type allowed'
PASS nonNumericPolicy('window.scrollBy(x, 0)') is 'any type allowed'
PASS nonNumericPolicy('window.scrollBy(0, x)') is 'any type allowed'
PASS nonNumericPolicy('window.scrollTo(x, 0)') is 'any type allowed'
PASS nonNumericPolicy('window.scrollTo(0, x)') is 'any type allowed'
PASS nonNumericPolicy('window.scroll(x, 0)') is 'any type allowed'
PASS nonNumericPolicy('window.scroll(0, x)') is 'any type allowed'
PASS nonNumericPolicy('window.moveBy(x, 0)') is 'any type allowed'
PASS nonNumericPolicy('window.moveBy(0, x)') is 'any type allowed'
PASS nonNumericPolicy('window.moveTo(x, 0)') is 'any type allowed'
PASS nonNumericPolicy('window.moveTo(0, x)') is 'any type allowed'
PASS nonNumericPolicy('window.resizeBy(x, 0)') is 'any type allowed'
PASS nonNumericPolicy('window.resizeBy(0, x)') is 'any type allowed'
PASS nonNumericPolicy('window.resizeTo(x, 0)') is 'any type allowed'
PASS nonNumericPolicy('window.resizeTo(0, x)') is 'any type allowed'
PASS successfullyParsed is true

TEST COMPLETE

