<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html>
<head>
<script src="../../resources/js-test.js"></script>
</head>
<body>
<script>
description(
'This tests the behavior of non-numeric values in contexts where the DOM has a numeric parameter.'
);
function nonNumericPolicy(template)
{
var x = 0;
try {
eval(template);
} catch (e) {
return e;
}
var nullAllowed = 1;
x = null;
try {
eval(template);
} catch (e) {
nullAllowed = 0;
}
var undefinedAllowed = 1;
x = undefined;
try {
eval(template);
} catch (e) {
undefinedAllowed = 0;
}
var stringAllowed = 1;
x = "string";
try {
eval(template);
} catch (e) {
stringAllowed = 0;
}
var documentAllowed = 1;
x = document;
try {
eval(template);
} catch (e) {
documentAllowed = 0;
}
var nonIntegerAllowed = 1;
x = 0.1;
try {
eval(template);
} catch (e) {
nonIntegerAllowed = 0;
}
var infinityAllowed = 1;
x = Infinity;
try {
eval(template);
} catch (e) {
infinityAllowed = 0;
}
var nanAllowed = 1;
x = NaN;
try {
eval(template);
} catch (e) {
nanAllowed = 0;
}
var omitAllowed = -1; // means "not applicable"
var templateWithoutArg = template.replace(", x)", ")").replace("(x)", "()");
if (templateWithoutArg != template) {
omitAllowed = 1;
try {
eval(templateWithoutArg);
} catch(e) {
omitAllowed = 0;
}
}
var expectOmitAllowed = navigator.userAgent.match("Gecko/") != "Gecko/";
if (nullAllowed && undefinedAllowed && stringAllowed && documentAllowed && nonIntegerAllowed && infinityAllowed && nanAllowed) {
if (omitAllowed == -1 || omitAllowed == (expectOmitAllowed ? 1 : 0))
return "any type allowed";
if (omitAllowed == 1)
return "any type allowed (or omitted)";
if (omitAllowed == 0)
return "any type allowed (but not omitted)";
}
if (nullAllowed && !undefinedAllowed && !stringAllowed && !documentAllowed && nonIntegerAllowed && !infinityAllowed && nanAllowed && omitAllowed == 1)
return "number or null allowed (or omitted, but not infinite)";
return "mixed";
}
var selector = "a";
var styleText = "font-size: smaller";
var ruleText = selector + " { " + styleText + " }";
var testElementContainer = document.createElement("div");
document.body.appendChild(testElementContainer);
function createFromMarkup(markup)
{
var range = document.createRange();
var fragmentContainer = document.createElement("div");
range.selectNodeContents(fragmentContainer);
testElementContainer.appendChild(fragmentContainer);
var fragment = range.createContextualFragment(markup);
fragmentContainer.appendChild(fragment);
return fragmentContainer.firstChild;
}
function createCSSStyleSheet()
{
return createFromMarkup("<style>" + ruleText + "</style>").sheet;
}
function createCSSRuleList()
{
return createCSSStyleSheet().cssRules;
}
function createCSSStyleDeclaration()
{
return createCSSRuleList().item(0).style;
}
function createCSSMediaRule()
{
var rule = createFromMarkup("<style>@media screen { a { text-weight: bold } }</style>").sheet.cssRules.item(0);
rule.insertRule(ruleText, 0);
return rule;
}
function createMediaList()
{
return createCSSMediaRule().media;
}
function createHTMLSelectElement()
{
var select = document.createElement("select");
select.options.add(document.createElement("option"));
return select;
}
function createHTMLOptionsCollection()
{
return createHTMLSelectElement().options;
}
function createHTMLTableElement()
{
var table = document.createElement("table");
table.insertRow(0);
return table;
}
function createHTMLTableSectionElement()
{
var table = document.createElement("table");
table.insertRow(0);
return table.tBodies[0];
}
function createHTMLTableRowElement()
{
var table = document.createElement("table");
var row = table.insertRow(0);
row.insertCell(0);
return row;
}
function createCanvasElement()
{
return document.createElement("canvas");
}
// CharacterData
shouldBe("nonNumericPolicy('document.createTextNode(\"a\").substringData(x, 0)')", "'any type allowed'");
shouldBe("nonNumericPolicy('document.createTextNode(\"a\").substringData(0, x)')", "'any type allowed (but not omitted)'");
shouldBe("nonNumericPolicy('document.createTextNode(\"a\").insertData(x, \"b\")')", "'any type allowed'");
shouldBe("nonNumericPolicy('document.createTextNode(\"a\").deleteData(x, 0)')", "'any type allowed'");
shouldBe("nonNumericPolicy('document.createTextNode(\"a\").deleteData(0, x)')", "'any type allowed (but not omitted)'");
shouldBe("nonNumericPolicy('document.createTextNode(\"a\").replaceData(x, 0, \"b\")')", "'any type allowed'");
shouldBe("nonNumericPolicy('document.createTextNode(\"a\").replaceData(0, x, \"b\")')", "'any type allowed'");
// CSSMediaRule
shouldBe("nonNumericPolicy('createCSSMediaRule().insertRule(ruleText, x)')", "'any type allowed'");
shouldBe("nonNumericPolicy('createCSSMediaRule().deleteRule(x)')", "'any type allowed (but not omitted)'");
// CSSRuleList
shouldBe("nonNumericPolicy('createCSSRuleList().item(x)')", "'any type allowed (but not omitted)'");
// CSSStyleDeclaration
shouldBe("nonNumericPolicy('createCSSStyleDeclaration().item(x)')", "'any type allowed (but not omitted)'");
// CSSStyleSheet
shouldBe("nonNumericPolicy('createCSSStyleSheet().insertRule(ruleText, x)')", "'any type allowed'");
shouldBe("nonNumericPolicy('createCSSStyleSheet().deleteRule(x)')", "'any type allowed (but not omitted)'");
shouldBe("nonNumericPolicy('createCSSStyleSheet().addRule(selector, styleText, x)')", "'any type allowed'");
shouldBe("nonNumericPolicy('createCSSStyleSheet().removeRule(x)')", "'any type allowed'");
// Document
shouldBe("nonNumericPolicy('document.elementFromPoint(x, 0)')", "'mixed'");
shouldBe("nonNumericPolicy('document.elementFromPoint(0, x)')", "'mixed'");
// Element
shouldBe("nonNumericPolicy('document.body.scrollLeft = x')", "'any type allowed'");
shouldBe("nonNumericPolicy('document.body.scrollTop = x')", "'any type allowed'");
// History
// Not tested: go.
// HTMLCollection
shouldBe("nonNumericPolicy('document.images.item(x)')", "'any type allowed (but not omitted)'");
// HTMLInputElement
shouldBe("nonNumericPolicy('document.createElement(\"input\").setSelectionRange(x, 0)')", "'any type allowed'");
shouldBe("nonNumericPolicy('document.createElement(\"input\").setSelectionRange(0, x)')", "'any type allowed (but not omitted)'");
// HTMLOptionsCollection
shouldBe("nonNumericPolicy('createHTMLOptionsCollection().add(document.createElement(\"option\"), x)')", "'any type allowed'");
shouldBe("nonNumericPolicy('createHTMLOptionsCollection().remove(x)')", "'any type allowed (but not omitted)'");
// HTMLSelectElement
shouldBe("nonNumericPolicy('createHTMLSelectElement().remove(x)')", "'any type allowed'");
shouldBe("nonNumericPolicy('createHTMLSelectElement().item(x)')", "'any type allowed (but not omitted)'");
// HTMLTableElement
shouldBe("nonNumericPolicy('createHTMLTableElement().insertRow(x)')", "'any type allowed'");
shouldBe("nonNumericPolicy('createHTMLTableElement().deleteRow(x)')", "'any type allowed (but not omitted)'");
// HTMLTableRowElement
shouldBe("nonNumericPolicy('createHTMLTableRowElement().insertCell(x)')", "'any type allowed'");
shouldBe("nonNumericPolicy('createHTMLTableRowElement().deleteCell(x)')", "'any type allowed (but not omitted)'");
// HTMLTableSectionElement
shouldBe("nonNumericPolicy('createHTMLTableSectionElement().insertRow(x)')", "'any type allowed'");
shouldBe("nonNumericPolicy('createHTMLTableSectionElement().deleteRow(x)')", "'any type allowed (but not omitted)'");
// HTMLInputElement
shouldBe("nonNumericPolicy('document.createElement(\"textarea\").setSelectionRange(x, 0)')", "'any type allowed'");
shouldBe("nonNumericPolicy('document.createElement(\"textarea\").setSelectionRange(0, x)')", "'any type allowed (but not omitted)'");
// HTMLCanvasElement
shouldBe("nonNumericPolicy('createCanvasElement().getContext(x)')", "'any type allowed (but not omitted)'");
// KeyboardEvent
shouldBe("nonNumericPolicy('document.createEvent(\"KeyboardEvent\").initKeyboardEvent(\"a\", false, false, null, \"b\", x, false, false, false, false, false)')", "'any type allowed'");
// MediaList
shouldBe("nonNumericPolicy('createMediaList().item(x)')", "'any type allowed (but not omitted)'");
// MouseEvent
shouldBe("nonNumericPolicy('document.createEvent(\"MouseEvent\").initMouseEvent(\"a\", false, false, null, x, 0, 0, 0, 0, false, false, false, false, 0, null)')", "'any type allowed'");
shouldBe("nonNumericPolicy('document.createEvent(\"MouseEvent\").initMouseEvent(\"a\", false, false, null, 0, x, 0, 0, 0, false, false, false, false, 0, null)')", "'any type allowed'");
shouldBe("nonNumericPolicy('document.createEvent(\"MouseEvent\").initMouseEvent(\"a\", false, false, null, 0, 0, x, 0, 0, false, false, false, false, 0, null)')", "'any type allowed'");
shouldBe("nonNumericPolicy('document.createEvent(\"MouseEvent\").initMouseEvent(\"a\", false, false, null, 0, 0, 0, x, 0, false, false, false, false, 0, null)')", "'any type allowed'");
shouldBe("nonNumericPolicy('document.createEvent(\"MouseEvent\").initMouseEvent(\"a\", false, false, null, 0, 0, 0, 0, x, false, false, false, false, 0, null)')", "'any type allowed'");
shouldBe("nonNumericPolicy('document.createEvent(\"MouseEvent\").initMouseEvent(\"a\", false, false, null, 0, 0, 0, 0, 0, false, false, false, false, x, null)')", "'any type allowed'");
// NamedNodeMap
shouldBe("nonNumericPolicy('document.body.attributes.item(x)')", "'any type allowed (but not omitted)'");
// NodeIterator
shouldBe("nonNumericPolicy('document.createNodeIterator(document, x, null, false)')", "'any type allowed'");
// NodeList
shouldBe("nonNumericPolicy('document.getElementsByTagName(\"div\").item(x)')", "'any type allowed (but not omitted)'");
// Range
shouldBe("nonNumericPolicy('document.createRange().setStart(document, x)')", "'any type allowed (but not omitted)'");
shouldBe("nonNumericPolicy('document.createRange().setEnd(document, x)')", "'any type allowed (but not omitted)'");
shouldBe("nonNumericPolicy('document.createRange().comparePoint(document, x)')", "'any type allowed (but not omitted)'");
shouldBe("nonNumericPolicy('document.createRange().isPointInRange(document, x)')", "'any type allowed (but not omitted)'");
// Selection
shouldBe("nonNumericPolicy('getSelection().collapse(document, x)')", "'any type allowed'");
shouldBe("nonNumericPolicy('getSelection().setBaseAndExtent(document, x, document, 0)')", "'any type allowed'");
shouldBe("nonNumericPolicy('getSelection().setBaseAndExtent(document, 0, document, x)')", "'any type allowed (but not omitted)'");
shouldBe("nonNumericPolicy('getSelection().collapse(document, x)')", "'any type allowed'");
shouldBe("nonNumericPolicy('getSelection().extend(document, x)')", "'any type allowed'");
shouldBe("nonNumericPolicy('getSelection().getRangeAt(x)')", "'any type allowed (but not omitted)'");
// SQLResultSetRowList
// Not tested: item.
// StyleSheetList
shouldBe("nonNumericPolicy('document.styleSheets.item(x)')", "'any type allowed (but not omitted)'");
// Text
shouldBe("nonNumericPolicy('document.createTextNode(\"a\").splitText(x)')", "'any type allowed (but not omitted)'");
// TimeRanges
// Not tested: start, end.
// TreeWalker
shouldBe("nonNumericPolicy('document.createTreeWalker(document, x, null, false)')", "'any type allowed'");
// UIEvent
shouldBe("nonNumericPolicy('document.createEvent(\"UIEvent\").initUIEvent(\"a\", false, false, null, x)')", "'any type allowed'");
// Window
shouldBe("nonNumericPolicy('window.scrollBy(x, 0)')", "'any type allowed'");
shouldBe("nonNumericPolicy('window.scrollBy(0, x)')", "'any type allowed (but not omitted)'");
shouldBe("nonNumericPolicy('window.scrollTo(x, 0)')", "'any type allowed'");
shouldBe("nonNumericPolicy('window.scrollTo(0, x)')", "'any type allowed (but not omitted)'");
shouldBe("nonNumericPolicy('window.scroll(x, 0)')", "'any type allowed'");
shouldBe("nonNumericPolicy('window.scroll(0, x)')", "'any type allowed (but not omitted)'");
shouldBe("nonNumericPolicy('window.moveBy(x, 0)')", "'any type allowed'");
shouldBe("nonNumericPolicy('window.moveBy(0, x)')", "'any type allowed (but not omitted)'");
shouldBe("nonNumericPolicy('window.moveTo(x, 0)')", "'any type allowed'");
shouldBe("nonNumericPolicy('window.moveTo(0, x)')", "'any type allowed (but not omitted)'");
shouldBe("nonNumericPolicy('window.resizeBy(x, 0)')", "'any type allowed'");
shouldBe("nonNumericPolicy('window.resizeBy(0, x)')", "'any type allowed (but not omitted)'");
shouldBe("nonNumericPolicy('window.resizeTo(x, 0)')", "'any type allowed'");
shouldBe("nonNumericPolicy('window.resizeTo(0, x)')", "'any type allowed (but not omitted)'");
// Not tested: openDatabase.
window.resizeTo(10000, 10000);
document.body.removeChild(testElementContainer);
/*
Here are other examples of numeric types in function parameters and settable attributes that we could test:
../../../../WebCore/css/CSSPrimitiveValue.idl: in float floatValue)
../../../../WebCore/html/CanvasGradient.idl: void addColorStop(in float offset, in DOMString color);
../../../../WebCore/html/CanvasRenderingContext2D.idl: void scale(in float sx, in float sy);
../../../../WebCore/html/CanvasRenderingContext2D.idl: void rotate(in float angle);
../../../../WebCore/html/CanvasRenderingContext2D.idl: void translate(in float tx, in float ty);
../../../../WebCore/html/CanvasRenderingContext2D.idl: CanvasGradient createLinearGradient(in float x0, in float y0, in float x1, in float y1);
../../../../WebCore/html/CanvasRenderingContext2D.idl: CanvasGradient createRadialGradient(in float x0, in float y0, in float r0, in float x1, in float y1, in float r1);
../../../../WebCore/html/CanvasRenderingContext2D.idl: void clearRect(in float x, in float y, in float width, in float height)
../../../../WebCore/html/CanvasRenderingContext2D.idl: void fillRect(in float x, in float y, in float width, in float height)
../../../../WebCore/html/CanvasRenderingContext2D.idl: void moveTo(in float x, in float y);
../../../../WebCore/html/CanvasRenderingContext2D.idl: void lineTo(in float x, in float y);
../../../../WebCore/html/CanvasRenderingContext2D.idl: void quadraticCurveTo(in float cpx, in float cpy, in float x, in float y);
../../../../WebCore/html/CanvasRenderingContext2D.idl: void bezierCurveTo(in float cp1x, in float cp1y, in float cp2x, in float cp2y, in float x, in float y);
../../../../WebCore/html/CanvasRenderingContext2D.idl: void arcTo(in float x1, in float y1, in float x2, in float y2, in float radius)
../../../../WebCore/html/CanvasRenderingContext2D.idl: void rect(in float x, in float y, in float width, in float height)
../../../../WebCore/html/CanvasRenderingContext2D.idl: void arc(in float x, in float y, in float radius, in float startAngle, in float endAngle, in boolean anticlockwise)
../../../../WebCore/html/CanvasRenderingContext2D.idl: boolean isPointInPath(in float x, in float y);
../../../../WebCore/html/CanvasRenderingContext2D.idl: void setAlpha(in float alpha);
../../../../WebCore/html/CanvasRenderingContext2D.idl: void setLineWidth(in float width);
../../../../WebCore/html/CanvasRenderingContext2D.idl: void setMiterLimit(in float limit);
../../../../WebCore/html/HTMLAnchorElement.idl: attribute long tabIndex;
../../../../WebCore/html/HTMLAreaElement.idl: attribute long tabIndex;
../../../../WebCore/html/HTMLBodyElement.idl: attribute long scrollLeft;
../../../../WebCore/html/HTMLBodyElement.idl: attribute long scrollTop;
../../../../WebCore/html/HTMLButtonElement.idl: attribute long tabIndex;
../../../../WebCore/html/HTMLCanvasElement.idl: attribute long width;
../../../../WebCore/html/HTMLCanvasElement.idl: attribute long height;
../../../../WebCore/html/HTMLEmbedElement.idl: attribute [ConvertFromString] long height;
../../../../WebCore/html/HTMLEmbedElement.idl: attribute [ConvertFromString] long width;
../../../../WebCore/html/HTMLImageElement.idl: attribute long height;
../../../../WebCore/html/HTMLImageElement.idl: attribute long hspace;
../../../../WebCore/html/HTMLImageElement.idl: attribute long vspace;
../../../../WebCore/html/HTMLImageElement.idl: attribute long width;
../../../../WebCore/html/HTMLInputElement.idl: attribute long maxLength;
../../../../WebCore/html/HTMLInputElement.idl: attribute unsigned long size; // Changed string -> long as part of DOM level 2
../../../../WebCore/html/HTMLInputElement.idl: attribute long tabIndex;
../../../../WebCore/html/HTMLInputElement.idl: attribute unsigned long selectionStart;
../../../../WebCore/html/HTMLInputElement.idl: attribute unsigned long selectionEnd;
../../../../WebCore/html/HTMLLIElement.idl: attribute long value;
../../../../WebCore/html/HTMLMediaElement.idl: attribute unsigned long playCount
../../../../WebCore/html/HTMLMediaElement.idl: attribute unsigned long currentLoop;
../../../../WebCore/html/HTMLObjectElement.idl: attribute long hspace;
../../../../WebCore/html/HTMLObjectElement.idl: attribute long tabIndex;
../../../../WebCore/html/HTMLObjectElement.idl: attribute long vspace;
../../../../WebCore/html/HTMLOListElement.idl: attribute long start;
../../../../WebCore/html/HTMLOptionsCollection.idl: attribute long selectedIndex;
../../../../WebCore/html/HTMLOptionsCollection.idl: attribute [Custom] unsigned long length
../../../../WebCore/html/HTMLPreElement.idl: attribute long width;
../../../../WebCore/html/HTMLSelectElement.idl: attribute long selectedIndex;
../../../../WebCore/html/HTMLSelectElement.idl: attribute unsigned long length
../../../../WebCore/html/HTMLSelectElement.idl: attribute long size;
../../../../WebCore/html/HTMLSelectElement.idl: attribute long tabIndex;
../../../../WebCore/html/HTMLTableCellElement.idl: attribute long colSpan;
../../../../WebCore/html/HTMLTableCellElement.idl: attribute long rowSpan;
../../../../WebCore/html/HTMLTableColElement.idl: attribute long span;
../../../../WebCore/html/HTMLTextAreaElement.idl: attribute long cols;
../../../../WebCore/html/HTMLTextAreaElement.idl: attribute long rows;
../../../../WebCore/html/HTMLTextAreaElement.idl: attribute long tabIndex;
../../../../WebCore/html/HTMLTextAreaElement.idl: attribute unsigned long selectionStart;
../../../../WebCore/html/HTMLTextAreaElement.idl: attribute unsigned long selectionEnd;
../../../../WebCore/html/HTMLVideoElement.idl: attribute long width;
../../../../WebCore/html/HTMLVideoElement.idl: attribute long height;
../../../../WebCore/html/CanvasRenderingContext2D.idl: attribute float globalAlpha;
../../../../WebCore/html/CanvasRenderingContext2D.idl: attribute float lineWidth;
../../../../WebCore/html/CanvasRenderingContext2D.idl: attribute float miterLimit;
../../../../WebCore/html/CanvasRenderingContext2D.idl: attribute float shadowOffsetX;
../../../../WebCore/html/CanvasRenderingContext2D.idl: attribute float shadowOffsetY;
../../../../WebCore/html/CanvasRenderingContext2D.idl: attribute float shadowBlur;
../../../../WebCore/html/HTMLMediaElement.idl: attribute float currentTime
../../../../WebCore/html/HTMLMediaElement.idl: attribute float defaultPlaybackRate
../../../../WebCore/html/HTMLMediaElement.idl: attribute float playbackRate
../../../../WebCore/html/HTMLMediaElement.idl: attribute float start;
../../../../WebCore/html/HTMLMediaElement.idl: attribute float end;
../../../../WebCore/html/HTMLMediaElement.idl: attribute float loopStart;
../../../../WebCore/html/HTMLMediaElement.idl: attribute float loopEnd;
../../../../WebCore/html/HTMLMediaElement.idl: attribute float volume
../../../../WebCore/svg/SVGAnimatedInteger.idl: attribute long baseVal
../../../../WebCore/svg/SVGElementInstanceList.idl: SVGElementInstance item(in unsigned long index);
../../../../WebCore/svg/SVGLengthList.idl: SVGLength getItem(in unsigned long index)
../../../../WebCore/svg/SVGLengthList.idl: SVGLength insertItemBefore(in SVGLength item, in unsigned long index)
../../../../WebCore/svg/SVGLengthList.idl: SVGLength replaceItem(in SVGLength item, in unsigned long index)
../../../../WebCore/svg/SVGLengthList.idl: SVGLength removeItem(in unsigned long index)
../../../../WebCore/svg/SVGNumberList.idl: SVGNumber getItem(in unsigned long index)
../../../../WebCore/svg/SVGNumberList.idl: SVGNumber insertItemBefore(in SVGNumber item, in unsigned long index)
../../../../WebCore/svg/SVGNumberList.idl: SVGNumber replaceItem(in SVGNumber item, in unsigned long index)
../../../../WebCore/svg/SVGNumberList.idl: SVGNumber removeItem(in unsigned long index)
../../../../WebCore/svg/SVGPointList.idl: [Custom] SVGPoint getItem(in unsigned long index)
../../../../WebCore/svg/SVGPointList.idl: [Custom] SVGPoint insertItemBefore(in SVGPoint item, in unsigned long index)
../../../../WebCore/svg/SVGPointList.idl: [Custom] SVGPoint replaceItem(in SVGPoint item, in unsigned long index)
../../../../WebCore/svg/SVGPointList.idl: [Custom] SVGPoint removeItem(in unsigned long index)
../../../../WebCore/svg/SVGStringList.idl: core::DOMString getItem(in unsigned long index)
../../../../WebCore/svg/SVGStringList.idl: core::DOMString insertItemBefore(in core::DOMString item, in unsigned long index)
../../../../WebCore/svg/SVGStringList.idl: core::DOMString replaceItem(in core::DOMString item, in unsigned long index)
../../../../WebCore/svg/SVGStringList.idl: core::DOMString removeItem(in unsigned long index)
../../../../WebCore/svg/SVGSVGElement.idl: unsigned long suspendRedraw(in unsigned long maxWaitMilliseconds);
../../../../WebCore/svg/SVGSVGElement.idl: void unsuspendRedraw(in unsigned long suspendHandleId)
../../../../WebCore/svg/SVGTextContentElement.idl: long getNumberOfChars();
../../../../WebCore/svg/SVGTextContentElement.idl: float getSubStringLength(in unsigned long offset,
../../../../WebCore/svg/SVGTextContentElement.idl: in unsigned long length)
../../../../WebCore/svg/SVGTextContentElement.idl: SVGPoint getStartPositionOfChar(in unsigned long offset)
../../../../WebCore/svg/SVGTextContentElement.idl: SVGPoint getEndPositionOfChar(in unsigned long offset)
../../../../WebCore/svg/SVGTextContentElement.idl: SVGRect getExtentOfChar(in unsigned long offset)
../../../../WebCore/svg/SVGTextContentElement.idl: float getRotationOfChar(in unsigned long offset)
../../../../WebCore/svg/SVGTextContentElement.idl: long getCharNumAtPosition(in SVGPoint point);
../../../../WebCore/svg/SVGTextContentElement.idl: void selectSubString(in unsigned long offset,
../../../../WebCore/svg/SVGTextContentElement.idl: in unsigned long length)
../../../../WebCore/svg/SVGTransformList.idl: [Custom] SVGTransform getItem(in unsigned long index)
../../../../WebCore/svg/SVGTransformList.idl: [Custom] SVGTransform insertItemBefore(in SVGTransform item, in unsigned long index)
../../../../WebCore/svg/SVGTransformList.idl: [Custom] SVGTransform replaceItem(in SVGTransform item, in unsigned long index)
../../../../WebCore/svg/SVGTransformList.idl: [Custom] SVGTransform removeItem(in unsigned long index)
../../../../WebCore/xml/XPathResult.idl: Node snapshotItem(in unsigned long index)
../../../../WebCore/svg/SVGAngle.idl: in float valueInSpecifiedUnits);
../../../../WebCore/svg/SVGAnimationElement.idl: float getStartTime();
../../../../WebCore/svg/SVGAnimationElement.idl: float getCurrentTime();
../../../../WebCore/svg/SVGAnimationElement.idl: float getSimpleDuration()
../../../../WebCore/svg/SVGFEGaussianBlurElement.idl: void setStdDeviation(in float stdDeviationX, in float stdDeviationY);
../../../../WebCore/svg/SVGLength.idl: in float valueInSpecifiedUnits);
../../../../WebCore/svg/SVGMatrix.idl: [Custom] SVGMatrix translate(in float x, in float y);
../../../../WebCore/svg/SVGMatrix.idl: [Custom] SVGMatrix scale(in float scaleFactor);
../../../../WebCore/svg/SVGMatrix.idl: [Custom] SVGMatrix scaleNonUniform(in float scaleFactorX, in float scaleFactorY);
../../../../WebCore/svg/SVGMatrix.idl: [Custom] SVGMatrix rotate(in float angle);
../../../../WebCore/svg/SVGMatrix.idl: [Custom] SVGMatrix rotateFromVector(in float x, in float y)
../../../../WebCore/svg/SVGMatrix.idl: [Custom] SVGMatrix skewX(in float angle);
../../../../WebCore/svg/SVGMatrix.idl: [Custom] SVGMatrix skewY(in float angle);
../../../../WebCore/svg/SVGNumber.idl: interface [Conditional=SVG, PODType=float] SVGNumber {
../../../../WebCore/svg/SVGPathElement.idl: float getTotalLength();
../../../../WebCore/svg/SVGPathElement.idl: SVGPoint getPointAtLength(in float distance);
../../../../WebCore/svg/SVGSVGElement.idl: float getCurrentTime();
../../../../WebCore/svg/SVGSVGElement.idl: void setCurrentTime(in float seconds);
../../../../WebCore/svg/SVGTextContentElement.idl: float getComputedTextLength();
../../../../WebCore/svg/SVGTextContentElement.idl: float getSubStringLength(in unsigned long offset,
../../../../WebCore/svg/SVGTextContentElement.idl: float getRotationOfChar(in unsigned long offset)
../../../../WebCore/svg/SVGTransform.idl: void setTranslate(in float tx, in float ty);
../../../../WebCore/svg/SVGTransform.idl: void setScale(in float sx, in float sy);
../../../../WebCore/svg/SVGTransform.idl: void setRotate(in float angle, in float cx, in float cy);
../../../../WebCore/svg/SVGTransform.idl: void setSkewX(in float angle);
../../../../WebCore/svg/SVGTransform.idl: void setSkewY(in float angle);
../../../../WebCore/svg/SVGAngle.idl: attribute float value;
../../../../WebCore/svg/SVGAngle.idl: attribute float valueInSpecifiedUnits;
../../../../WebCore/svg/SVGAnimatedNumber.idl: attribute float baseVal
../../../../WebCore/svg/SVGLength.idl: attribute float value;
../../../../WebCore/svg/SVGLength.idl: attribute float valueInSpecifiedUnits;
../../../../WebCore/svg/SVGNumber.idl: attribute float value
../../../../WebCore/svg/SVGPoint.idl: attribute float x
../../../../WebCore/svg/SVGPoint.idl: attribute float y
../../../../WebCore/svg/SVGRect.idl: attribute float x
../../../../WebCore/svg/SVGRect.idl: attribute float y
../../../../WebCore/svg/SVGRect.idl: attribute float width
../../../../WebCore/svg/SVGRect.idl: attribute float height
../../../../WebCore/svg/SVGSVGElement.idl: attribute float currentScale
../../../../WebCore/svg/SVGMatrix.idl: attribute double a;
../../../../WebCore/svg/SVGMatrix.idl: attribute double b;
../../../../WebCore/svg/SVGMatrix.idl: attribute double c;
../../../../WebCore/svg/SVGMatrix.idl: attribute double d;
../../../../WebCore/svg/SVGMatrix.idl: attribute double e;
../../../../WebCore/svg/SVGMatrix.idl: attribute double f;
*/
</script>
</body>
</html>