Skip to content

Commit

Permalink
Merge pull request #504 from Ms2ger/dom-interfaces
Browse files Browse the repository at this point in the history
Update dom/interfaces.html to spec.
  • Loading branch information
Ms2ger committed Jan 15, 2014
2 parents f7abd19 + 759db76 commit 31c43c9
Showing 1 changed file with 77 additions and 63 deletions.
140 changes: 77 additions & 63 deletions dom/interfaces.html
Expand Up @@ -27,7 +27,7 @@ <h1>DOM IDL tests</h1>
const unsigned short NAMESPACE_ERR = 14;
const unsigned short INVALID_ACCESS_ERR = 15;
const unsigned short VALIDATION_ERR = 16; // historical
const unsigned short TYPE_MISMATCH_ERR = 17; // historical; use TypeError instead
const unsigned short TYPE_MISMATCH_ERR = 17; // historical; use JavaScript's TypeError instead
const unsigned short SECURITY_ERR = 18;
const unsigned short NETWORK_ERR = 19;
const unsigned short ABORT_ERR = 20;
Expand All @@ -39,9 +39,10 @@ <h1>DOM IDL tests</h1>
unsigned short code;
};

[Constructor(DOMString name)]
[Constructor(DOMString name, optional DOMString message = "")]
interface DOMError {
readonly attribute DOMString name;
readonly attribute DOMString message;
};

[Constructor(DOMString type, optional EventInit eventInitDict)]
Expand Down Expand Up @@ -79,21 +80,20 @@ <h1>DOM IDL tests</h1>
interface CustomEvent : Event {
readonly attribute any detail;

void initCustomEvent(DOMString type, boolean bubbles, boolean cancelable, any details);
void initCustomEvent(DOMString type, boolean bubbles, boolean cancelable, any detail);
};

dictionary CustomEventInit : EventInit {
any detail = null;
};

interface EventTarget {
void addEventListener(DOMString type, EventListener? callback, optional boolean capture);
void removeEventListener(DOMString type, EventListener? callback, optional boolean capture);
void addEventListener(DOMString type, EventListener? callback, optional boolean capture = false);
void removeEventListener(DOMString type, EventListener? callback, optional boolean capture = false);
boolean dispatchEvent(Event event);
};

[Callback]
interface EventListener {
callback interface EventListener {
void handleEvent(Event event);
};

Expand All @@ -106,6 +106,11 @@ <h1>DOM IDL tests</h1>

void prepend((Node or DOMString)... nodes);
void append((Node or DOMString)... nodes);

Element? query(DOMString relativeSelectors);
[NewObject] Elements queryAll(DOMString relativeSelectors);
Element? querySelector(DOMString selectors);
[NewObject] NodeList querySelectorAll(DOMString selectors);
};
Document implements ParentNode;
DocumentFragment implements ParentNode;
Expand All @@ -130,6 +135,26 @@ <h1>DOM IDL tests</h1>
Element implements NonDocumentTypeChildNode;
CharacterData implements NonDocumentTypeChildNode;

// XXX unrecognized tokens "class", "extends"
// https://www.w3.org/Bugs/Public/show_bug.cgi?id=20020
// https://www.w3.org/Bugs/Public/show_bug.cgi?id=23225
//class Elements extends Array {
// Element? query(DOMString relativeSelectors);
// Elements queryAll(DOMString relativeSelectors);
//};

[ArrayClass]
interface NodeList {
getter Node? item(unsigned long index);
readonly attribute unsigned long length;
};

interface HTMLCollection {
readonly attribute unsigned long length;
getter Element? item(unsigned long index);
getter Element? namedItem(DOMString name);
};

[Constructor(MutationCallback callback)]
interface MutationObserver {
void observe(Node target, MutationObserverInit options);
Expand All @@ -141,19 +166,19 @@ <h1>DOM IDL tests</h1>

dictionary MutationObserverInit {
boolean childList = false;
boolean attributes = false;
boolean characterData = false;
boolean attributes;
boolean characterData;
boolean subtree = false;
boolean attributeOldValue = false;
boolean characterDataOldValue = false;
boolean attributeOldValue;
boolean characterDataOldValue;
sequence<DOMString> attributeFilter;
};

interface MutationRecord {
readonly attribute DOMString type;
readonly attribute Node target;
readonly attribute NodeList addedNodes;
readonly attribute NodeList removedNodes;
[SameObject] readonly attribute NodeList addedNodes;
[SameObject] readonly attribute NodeList removedNodes;
readonly attribute Node? previousSibling;
readonly attribute Node? nextSibling;
readonly attribute DOMString? attributeName;
Expand Down Expand Up @@ -183,7 +208,7 @@ <h1>DOM IDL tests</h1>
readonly attribute Node? parentNode;
readonly attribute Element? parentElement;
boolean hasChildNodes();
readonly attribute NodeList childNodes;
[SameObject] readonly attribute NodeList childNodes;
readonly attribute Node? firstChild;
readonly attribute Node? lastChild;
readonly attribute Node? previousSibling;
Expand All @@ -193,7 +218,7 @@ <h1>DOM IDL tests</h1>
attribute DOMString? textContent;
void normalize();

Node cloneNode(optional boolean deep);
Node cloneNode(optional boolean deep = false);
boolean isEqualNode(Node? node);

const unsigned short DOCUMENT_POSITION_DISCONNECTED = 0x01;
Expand All @@ -217,7 +242,7 @@ <h1>DOM IDL tests</h1>

[Constructor]
interface Document : Node {
readonly attribute DOMImplementation implementation;
[SameObject] readonly attribute DOMImplementation implementation;
readonly attribute DOMString URL;
readonly attribute DOMString documentURI;
readonly attribute DOMString compatMode;
Expand All @@ -231,31 +256,31 @@ <h1>DOM IDL tests</h1>
HTMLCollection getElementsByClassName(DOMString classNames);
Element? getElementById(DOMString elementId);

Element createElement(DOMString localName);
Element createElementNS(DOMString? namespace, DOMString qualifiedName);
DocumentFragment createDocumentFragment();
Text createTextNode(DOMString data);
Comment createComment(DOMString data);
ProcessingInstruction createProcessingInstruction(DOMString target, DOMString data);
[NewObject] Element createElement(DOMString localName);
[NewObject] Element createElementNS(DOMString? namespace, DOMString qualifiedName);
[NewObject] DocumentFragment createDocumentFragment();
[NewObject] Text createTextNode(DOMString data);
[NewObject] Comment createComment(DOMString data);
[NewObject] ProcessingInstruction createProcessingInstruction(DOMString target, DOMString data);

Node importNode(Node node, optional boolean deep);
Node importNode(Node node, optional boolean deep = false);
Node adoptNode(Node node);

Event createEvent(DOMString interface);
[NewObject] Event createEvent(DOMString interface);

Range createRange();
[NewObject] Range createRange();

// NodeFilter.SHOW_ALL = 0xFFFFFFFF
NodeIterator createNodeIterator(Node root, optional unsigned long whatToShow, optional NodeFilter? filter);
TreeWalker createTreeWalker(Node root, optional unsigned long whatToShow, optional NodeFilter? filter);
[NewObject] NodeIterator createNodeIterator(Node root, optional unsigned long whatToShow = 0xFFFFFFFF, optional NodeFilter? filter = null);
[NewObject] TreeWalker createTreeWalker(Node root, optional unsigned long whatToShow = 0xFFFFFFFF, optional NodeFilter? filter = null);
};

interface XMLDocument : Document {};

interface DOMImplementation {
DocumentType createDocumentType(DOMString qualifiedName, DOMString publicId, DOMString systemId);
XMLDocument createDocument(DOMString? namespace, [TreatNullAs=EmptyString] DOMString qualifiedName, optional DocumentType? doctype = null);
Document createHTMLDocument(optional DOMString title);
[NewObject] DocumentType createDocumentType(DOMString qualifiedName, DOMString publicId, DOMString systemId);
[NewObject] XMLDocument createDocument(DOMString? namespace, [TreatNullAs=EmptyString] DOMString qualifiedName, optional DocumentType? doctype = null);
[NewObject] Document createHTMLDocument(optional DOMString title);

boolean hasFeature(DOMString feature, [TreatNullAs=EmptyString] DOMString version);
};
Expand All @@ -278,9 +303,9 @@ <h1>DOM IDL tests</h1>

attribute DOMString id;
attribute DOMString className;
readonly attribute DOMTokenList classList;
[SameObject] readonly attribute DOMTokenList classList;

readonly attribute Attr[] attributes;
[SameObject] readonly attribute Attr[] attributes;
DOMString? getAttribute(DOMString name);
DOMString? getAttributeNS(DOMString? namespace, DOMString localName);
void setAttribute(DOMString name, DOMString value);
Expand All @@ -290,6 +315,8 @@ <h1>DOM IDL tests</h1>
boolean hasAttribute(DOMString name);
boolean hasAttributeNS(DOMString? namespace, DOMString localName);

boolean matches(DOMString selectors);

HTMLCollection getElementsByTagName(DOMString localName);
HTMLCollection getElementsByTagNameNS(DOMString? namespace, DOMString localName);
HTMLCollection getElementsByClassName(DOMString classNames);
Expand All @@ -314,17 +341,17 @@ <h1>DOM IDL tests</h1>
void replaceData(unsigned long offset, unsigned long count, DOMString data);
};

[Constructor(optional DOMString data)]
[Constructor(optional DOMString data = "")]
interface Text : CharacterData {
Text splitText(unsigned long offset);
[NewObject] Text splitText(unsigned long offset);
readonly attribute DOMString wholeText;
};

interface ProcessingInstruction : CharacterData {
readonly attribute DOMString target;
};

[Constructor(optional DOMString data)]
[Constructor(optional DOMString data = "")]
interface Comment : CharacterData {
};

Expand All @@ -337,15 +364,15 @@ <h1>DOM IDL tests</h1>
readonly attribute boolean collapsed;
readonly attribute Node commonAncestorContainer;

void setStart(Node refNode, unsigned long offset);
void setEnd(Node refNode, unsigned long offset);
void setStartBefore(Node refNode);
void setStartAfter(Node refNode);
void setEndBefore(Node refNode);
void setEndAfter(Node refNode);
void setStart(Node node, unsigned long offset);
void setEnd(Node node, unsigned long offset);
void setStartBefore(Node node);
void setStartAfter(Node node);
void setEndBefore(Node node);
void setEndAfter(Node node);
void collapse(optional boolean toStart = false);
void selectNode(Node refNode);
void selectNodeContents(Node refNode);
void selectNode(Node node);
void selectNodeContents(Node node);

const unsigned short START_TO_START = 0;
const unsigned short START_TO_END = 1;
Expand All @@ -354,12 +381,12 @@ <h1>DOM IDL tests</h1>
short compareBoundaryPoints(unsigned short how, Range sourceRange);

void deleteContents();
DocumentFragment extractContents();
DocumentFragment cloneContents();
[NewObject] DocumentFragment extractContents();
[NewObject] DocumentFragment cloneContents();
void insertNode(Node node);
void surroundContents(Node newParent);

Range cloneRange();
[NewObject] Range cloneRange();
void detach();

boolean isPointInRange(Node node, unsigned long offset);
Expand All @@ -371,8 +398,8 @@ <h1>DOM IDL tests</h1>
};

interface NodeIterator {
readonly attribute Node root;
readonly attribute Node? referenceNode;
[SameObject] readonly attribute Node root;
readonly attribute Node referenceNode;
readonly attribute boolean pointerBeforeReferenceNode;
readonly attribute unsigned long whatToShow;
readonly attribute NodeFilter? filter;
Expand All @@ -384,7 +411,7 @@ <h1>DOM IDL tests</h1>
};

interface TreeWalker {
readonly attribute Node root;
[SameObject] readonly attribute Node root;
readonly attribute unsigned long whatToShow;
readonly attribute NodeFilter? filter;
attribute Node currentNode;
Expand All @@ -398,8 +425,7 @@ <h1>DOM IDL tests</h1>
Node? nextNode();
};

[Callback]
interface NodeFilter {
callback interface NodeFilter {
// Constants for acceptNode()
const unsigned short FILTER_ACCEPT = 1;
const unsigned short FILTER_REJECT = 2;
Expand All @@ -423,18 +449,6 @@ <h1>DOM IDL tests</h1>
unsigned short acceptNode(Node node);
};

[ArrayClass]
interface NodeList {
getter Node? item(unsigned long index);
readonly attribute unsigned long length;
};

interface HTMLCollection {
readonly attribute unsigned long length;
getter Element? item(unsigned long index);
getter object? namedItem(DOMString name); // only returns Element
};

interface DOMTokenList {
readonly attribute unsigned long length;
getter DOMString? item(unsigned long index);
Expand Down

0 comments on commit 31c43c9

Please sign in to comment.