aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAnthony Ramine <n.oxyde@gmail.com>2015-09-11 02:51:51 +0200
committerAnthony Ramine <n.oxyde@gmail.com>2015-09-19 16:03:13 +0200
commit49219baab8fa67baba2383d50b0a4da84b2b9068 (patch)
tree1226a7ed6734089f7d133e943446120c2e5c2037
parent4dbf391e837652d8a509224e3a07f65d923fb9c2 (diff)
downloadservo-49219baab8fa67baba2383d50b0a4da84b2b9068.tar.gz
servo-49219baab8fa67baba2383d50b0a4da84b2b9068.zip
Annotate many DOM attribute and methods with [Constant] and [Pure]
-rw-r--r--components/script/dom/webidls/Attr.webidl9
-rw-r--r--components/script/dom/webidls/CharacterData.webidl6
-rw-r--r--components/script/dom/webidls/DOMImplementation.webidl1
-rw-r--r--components/script/dom/webidls/DOMTokenList.webidl4
-rw-r--r--components/script/dom/webidls/Document.webidl5
-rw-r--r--components/script/dom/webidls/DocumentType.webidl3
-rw-r--r--components/script/dom/webidls/Element.webidl14
-rw-r--r--components/script/dom/webidls/Event.webidl5
-rw-r--r--components/script/dom/webidls/HTMLCollection.webidl3
-rw-r--r--components/script/dom/webidls/NamedNodeMap.webidl4
-rw-r--r--components/script/dom/webidls/Node.webidl7
-rw-r--r--components/script/dom/webidls/NodeIterator.webidl1
-rw-r--r--components/script/dom/webidls/NodeList.webidl2
-rw-r--r--components/script/dom/webidls/NonElementParentNode.webidl1
-rw-r--r--components/script/dom/webidls/ParentNode.webidl2
-rw-r--r--components/script/dom/webidls/ProcessingInstruction.webidl1
-rw-r--r--components/script/dom/webidls/Range.webidl14
-rw-r--r--components/script/dom/webidls/Text.webidl1
18 files changed, 69 insertions, 14 deletions
diff --git a/components/script/dom/webidls/Attr.webidl b/components/script/dom/webidls/Attr.webidl
index d14f2f34414..e90bec8fccd 100644
--- a/components/script/dom/webidls/Attr.webidl
+++ b/components/script/dom/webidls/Attr.webidl
@@ -9,15 +9,24 @@
*/
interface Attr {
+ [Constant]
readonly attribute DOMString? namespaceURI;
+ [Constant]
readonly attribute DOMString? prefix;
+ [Constant]
readonly attribute DOMString localName;
+ [Constant]
readonly attribute DOMString name;
+ [Pure]
attribute DOMString value;
+ [Pure]
attribute DOMString textContent; // alias of .value
+ [Pure]
attribute DOMString nodeValue; // alias of .value
+ [Pure]
readonly attribute Element? ownerElement;
+ [Constant]
readonly attribute boolean specified; // useless; always returns true
};
diff --git a/components/script/dom/webidls/CharacterData.webidl b/components/script/dom/webidls/CharacterData.webidl
index b22d755438f..79e6c933c98 100644
--- a/components/script/dom/webidls/CharacterData.webidl
+++ b/components/script/dom/webidls/CharacterData.webidl
@@ -11,9 +11,9 @@
*/
interface CharacterData : Node {
- [TreatNullAs=EmptyString] attribute DOMString data;
- readonly attribute unsigned long length;
- [Throws]
+ [Pure, TreatNullAs=EmptyString] attribute DOMString data;
+ [Pure] readonly attribute unsigned long length;
+ [Pure, Throws]
DOMString substringData(unsigned long offset, unsigned long count);
void appendData(DOMString data);
[Throws]
diff --git a/components/script/dom/webidls/DOMImplementation.webidl b/components/script/dom/webidls/DOMImplementation.webidl
index 98b90a29630..8bedebe8a87 100644
--- a/components/script/dom/webidls/DOMImplementation.webidl
+++ b/components/script/dom/webidls/DOMImplementation.webidl
@@ -23,5 +23,6 @@ interface DOMImplementation {
[NewObject]
Document createHTMLDocument(optional DOMString title);
+ [Pure]
boolean hasFeature(); // useless, always return true
};
diff --git a/components/script/dom/webidls/DOMTokenList.webidl b/components/script/dom/webidls/DOMTokenList.webidl
index 61a3bebff15..746bc8ac521 100644
--- a/components/script/dom/webidls/DOMTokenList.webidl
+++ b/components/script/dom/webidls/DOMTokenList.webidl
@@ -5,10 +5,12 @@
// https://dom.spec.whatwg.org/#domtokenlist
interface DOMTokenList {
+ [Pure]
readonly attribute unsigned long length;
+ [Pure]
getter DOMString? item(unsigned long index);
- [Throws]
+ [Pure, Throws]
boolean contains(DOMString token);
[Throws]
void add(DOMString... tokens);
diff --git a/components/script/dom/webidls/Document.webidl b/components/script/dom/webidls/Document.webidl
index fa69f6f95f7..75b209d9c5e 100644
--- a/components/script/dom/webidls/Document.webidl
+++ b/components/script/dom/webidls/Document.webidl
@@ -13,15 +13,20 @@
interface Document : Node {
[SameObject]
readonly attribute DOMImplementation implementation;
+ [Constant]
readonly attribute DOMString URL;
readonly attribute Element? activeElement;
+ [Constant]
readonly attribute DOMString documentURI;
readonly attribute DOMString compatMode;
readonly attribute DOMString characterSet;
readonly attribute DOMString inputEncoding; // legacy alias of .characterSet
+ [Constant]
readonly attribute DOMString contentType;
+ [Pure]
readonly attribute DocumentType? doctype;
+ [Pure]
readonly attribute Element? documentElement;
HTMLCollection getElementsByTagName(DOMString localName);
HTMLCollection getElementsByTagNameNS(DOMString? namespace, DOMString localName);
diff --git a/components/script/dom/webidls/DocumentType.webidl b/components/script/dom/webidls/DocumentType.webidl
index e59faa1a026..b864d3a6496 100644
--- a/components/script/dom/webidls/DocumentType.webidl
+++ b/components/script/dom/webidls/DocumentType.webidl
@@ -11,8 +11,11 @@
*/
interface DocumentType : Node {
+ [Constant]
readonly attribute DOMString name;
+ [Constant]
readonly attribute DOMString publicId;
+ [Constant]
readonly attribute DOMString systemId;
};
diff --git a/components/script/dom/webidls/Element.webidl b/components/script/dom/webidls/Element.webidl
index f54fd0cf04e..dde5b978890 100644
--- a/components/script/dom/webidls/Element.webidl
+++ b/components/script/dom/webidls/Element.webidl
@@ -14,12 +14,12 @@
*/
interface Element : Node {
-
- readonly attribute DOMString? prefix;
- readonly attribute DOMString localName;
-
[Constant]
readonly attribute DOMString? namespaceURI;
+ [Constant]
+ readonly attribute DOMString? prefix;
+ [Constant]
+ readonly attribute DOMString localName;
// Not [Constant] because it depends on which document we're in
[Pure]
readonly attribute DOMString tagName;
@@ -33,7 +33,9 @@ interface Element : Node {
[SameObject]
readonly attribute NamedNodeMap attributes;
+ [Pure]
DOMString? getAttribute(DOMString name);
+ [Pure]
DOMString? getAttributeNS(DOMString? namespace, DOMString localName);
[Throws]
void setAttribute(DOMString name, DOMString value);
@@ -44,10 +46,10 @@ interface Element : Node {
boolean hasAttribute(DOMString name);
boolean hasAttributeNS(DOMString? namespace, DOMString localName);
- [Throws]
+ [Pure, Throws]
Element? closest(DOMString selectors);
- [Throws]
+ [Pure, Throws]
boolean matches(DOMString selectors);
HTMLCollection getElementsByTagName(DOMString localName);
diff --git a/components/script/dom/webidls/Event.webidl b/components/script/dom/webidls/Event.webidl
index a8090d68ae3..5adc06da3f9 100644
--- a/components/script/dom/webidls/Event.webidl
+++ b/components/script/dom/webidls/Event.webidl
@@ -12,6 +12,7 @@
[Constructor(DOMString type, optional EventInit eventInitDict)]
interface Event {
+ [Pure]
readonly attribute DOMString type;
readonly attribute EventTarget? target;
readonly attribute EventTarget? currentTarget;
@@ -25,12 +26,16 @@ interface Event {
void stopPropagation();
void stopImmediatePropagation();
+ [Pure]
readonly attribute boolean bubbles;
+ [Pure]
readonly attribute boolean cancelable;
void preventDefault();
+ [Pure]
readonly attribute boolean defaultPrevented;
readonly attribute boolean isTrusted;
+ [Constant]
readonly attribute DOMTimeStamp timeStamp;
void initEvent(DOMString type, boolean bubbles, boolean cancelable);
diff --git a/components/script/dom/webidls/HTMLCollection.webidl b/components/script/dom/webidls/HTMLCollection.webidl
index d244ba5e9b1..02bcea6ccae 100644
--- a/components/script/dom/webidls/HTMLCollection.webidl
+++ b/components/script/dom/webidls/HTMLCollection.webidl
@@ -6,7 +6,10 @@
// https://dom.spec.whatwg.org/#interface-htmlcollection
interface HTMLCollection {
+ [Pure]
readonly attribute unsigned long length;
+ [Pure]
getter Element? item(unsigned long index);
+ [Pure]
getter Element? namedItem(DOMString name);
};
diff --git a/components/script/dom/webidls/NamedNodeMap.webidl b/components/script/dom/webidls/NamedNodeMap.webidl
index 8c21bacd1b7..235de06a802 100644
--- a/components/script/dom/webidls/NamedNodeMap.webidl
+++ b/components/script/dom/webidls/NamedNodeMap.webidl
@@ -5,9 +5,13 @@
// https://dom.spec.whatwg.org/#interface-namednodemap
interface NamedNodeMap {
+ [Pure]
readonly attribute unsigned long length;
+ [Pure]
getter Attr? item(unsigned long index);
+ [Pure]
getter Attr? getNamedItem(DOMString name);
+ [Pure]
Attr? getNamedItemNS(DOMString? namespace, DOMString localName);
//[Throws]
//Attr? setNamedItem(Attr attr);
diff --git a/components/script/dom/webidls/Node.webidl b/components/script/dom/webidls/Node.webidl
index a595dae3fc0..b76aa937e6e 100644
--- a/components/script/dom/webidls/Node.webidl
+++ b/components/script/dom/webidls/Node.webidl
@@ -34,6 +34,7 @@ interface Node : EventTarget {
readonly attribute Node? parentNode;
[Pure]
readonly attribute Element? parentElement;
+ [Pure]
boolean hasChildNodes();
[SameObject]
readonly attribute NodeList childNodes;
@@ -53,6 +54,7 @@ interface Node : EventTarget {
void normalize();
Node cloneNode(optional boolean deep = false);
+ [Pure]
boolean isEqualNode(Node? node);
const unsigned short DOCUMENT_POSITION_DISCONNECTED = 0x01;
@@ -61,11 +63,16 @@ interface Node : EventTarget {
const unsigned short DOCUMENT_POSITION_CONTAINS = 0x08;
const unsigned short DOCUMENT_POSITION_CONTAINED_BY = 0x10;
const unsigned short DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC = 0x20;
+ [Pure]
unsigned short compareDocumentPosition(Node other);
+ [Pure]
boolean contains(Node? other);
+ [Pure]
DOMString? lookupPrefix(DOMString? namespace);
+ [Pure]
DOMString? lookupNamespaceURI(DOMString? prefix);
+ [Pure]
boolean isDefaultNamespace(DOMString? namespace);
[Throws]
diff --git a/components/script/dom/webidls/NodeIterator.webidl b/components/script/dom/webidls/NodeIterator.webidl
index 1cab33d5ee1..bcf969d6d48 100644
--- a/components/script/dom/webidls/NodeIterator.webidl
+++ b/components/script/dom/webidls/NodeIterator.webidl
@@ -24,5 +24,6 @@ interface NodeIterator {
[Throws]
Node? previousNode();
+ [Pure]
void detach();
};
diff --git a/components/script/dom/webidls/NodeList.webidl b/components/script/dom/webidls/NodeList.webidl
index 3436de25f71..9d40e9e19cf 100644
--- a/components/script/dom/webidls/NodeList.webidl
+++ b/components/script/dom/webidls/NodeList.webidl
@@ -8,6 +8,8 @@
*/
interface NodeList {
+ [Pure]
readonly attribute unsigned long length;
+ [Pure]
getter Node? item(unsigned long index);
};
diff --git a/components/script/dom/webidls/NonElementParentNode.webidl b/components/script/dom/webidls/NonElementParentNode.webidl
index b1bd854ab93..769ee06955d 100644
--- a/components/script/dom/webidls/NonElementParentNode.webidl
+++ b/components/script/dom/webidls/NonElementParentNode.webidl
@@ -7,5 +7,6 @@
[NoInterfaceObject,
Exposed=Window]
interface NonElementParentNode {
+ [Pure]
Element? getElementById(DOMString elementId);
};
diff --git a/components/script/dom/webidls/ParentNode.webidl b/components/script/dom/webidls/ParentNode.webidl
index ef36324bca8..73d7075971b 100644
--- a/components/script/dom/webidls/ParentNode.webidl
+++ b/components/script/dom/webidls/ParentNode.webidl
@@ -26,7 +26,7 @@ interface ParentNode {
//Element? query(DOMString relativeSelectors);
//[NewObject]
//Elements queryAll(DOMString relativeSelectors);
- [Throws]
+ [Pure, Throws]
Element? querySelector(DOMString selectors);
[NewObject, Throws]
NodeList querySelectorAll(DOMString selectors);
diff --git a/components/script/dom/webidls/ProcessingInstruction.webidl b/components/script/dom/webidls/ProcessingInstruction.webidl
index 1b25f5f84f6..cd6a14f3dc0 100644
--- a/components/script/dom/webidls/ProcessingInstruction.webidl
+++ b/components/script/dom/webidls/ProcessingInstruction.webidl
@@ -8,5 +8,6 @@
*/
interface ProcessingInstruction : CharacterData {
+ [Constant]
readonly attribute DOMString target;
};
diff --git a/components/script/dom/webidls/Range.webidl b/components/script/dom/webidls/Range.webidl
index 5f8da542112..0cf978115fa 100644
--- a/components/script/dom/webidls/Range.webidl
+++ b/components/script/dom/webidls/Range.webidl
@@ -11,11 +11,17 @@
[Constructor /*, Exposed=Window */]
interface Range {
+ [Pure]
readonly attribute Node startContainer;
+ [Pure]
readonly attribute unsigned long startOffset;
+ [Pure]
readonly attribute Node endContainer;
+ [Pure]
readonly attribute unsigned long endOffset;
+ [Pure]
readonly attribute boolean collapsed;
+ [Pure]
readonly attribute Node commonAncestorContainer;
[Throws]
@@ -40,7 +46,7 @@ interface Range {
const unsigned short START_TO_END = 1;
const unsigned short END_TO_END = 2;
const unsigned short END_TO_START = 3;
- [Throws]
+ [Pure, Throws]
short compareBoundaryPoints(unsigned short how, Range sourceRange);
// [Throws]
// void deleteContents();
@@ -55,13 +61,15 @@ interface Range {
[NewObject]
Range cloneRange();
+ [Pure]
void detach();
- [Throws]
+ [Pure, Throws]
boolean isPointInRange(Node node, unsigned long offset);
- [Throws]
+ [Pure, Throws]
short comparePoint(Node node, unsigned long offset);
+ [Pure]
boolean intersectsNode(Node node);
// stringifier;
diff --git a/components/script/dom/webidls/Text.webidl b/components/script/dom/webidls/Text.webidl
index 4d84783e3b2..d9df25539d8 100644
--- a/components/script/dom/webidls/Text.webidl
+++ b/components/script/dom/webidls/Text.webidl
@@ -15,5 +15,6 @@
interface Text : CharacterData {
[NewObject, Throws]
Text splitText(unsigned long offset);
+ [Pure]
readonly attribute DOMString wholeText;
};