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 'any type allowed'
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 (but not omitted)'
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 (but not omitted)'
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

