Index: sky/specs/apis.md |
diff --git a/sky/specs/apis.md b/sky/specs/apis.md |
index 3808659f5dafd621268179b145e9cdaf4c5d6491..2122dd3d38d92ab8e80143de9bcbbe9d6cd2183d 100644 |
--- a/sky/specs/apis.md |
+++ b/sky/specs/apis.md |
@@ -98,12 +98,10 @@ module 'sky:core' { |
// Returns a new Array and new Attr instances every time. |
Array<Attr> getAttributes(); // O(N) in arguments |
- readonly attribute ShadowRoot? shadowRoot; // O(1) // returns the youngest shadow root |
- void addShadowRoot(ShadowRoot root); // O(N) in descendants of argument |
+ readonly attribute ShadowRoot? shadowRoot; // O(1) // returns the shadow root |
Array<ContentElement> getDestinationInsertionPoints(); // O(N) in number of insertion points the node is in |
virtual void attributeChangeCallback(String name, String? oldValue, String? newValue); // noop |
- virtual void shadowRootChangeCallback(ShadowRoot root); // noop |
// TODO(ianh): does a node ever need to know when it's been redistributed? |
} |
Element createElement(String tagName, Dictionary attributes, ChildArguments... nodes); // O(M+N), M = number of attributes, N = number of nodes plus all their descendants |
@@ -111,7 +109,12 @@ module 'sky:core' { |
Element createElement(String tagName, ChildArguments... nodes); // shorthand |
Element createElement(String tagName); // shorthand |
- Object registerElement(String tagName, Object interfaceObject); // O(N) in number of outstanding elements with that tag name to be upgraded |
+ dictionary ElementRegistration { |
+ String tagName; |
+ Boolean shadow; |
+ Object prototype; |
+ } |
+ Object registerElement(ElementRegistration options); // O(N) in number of outstanding elements with that tag name to be upgraded |
interface Text : Node { |
constructor (String value); // O(1) |
@@ -134,10 +137,8 @@ module 'sky:core' { |
} |
interface ShadowRoot : TreeScope { |
- constructor (ChildArguments... nodes); // O(N) in number of arguments plus all their descendants |
- readonly attribute Element? host; // O(1) |
- readonly attribute ShadowRoot? olderShadowRoot; // O(1) |
- void removeShadowRoot(); // O(N) in descendants |
+ constructor (Element host); // O(1) // note that there is no way in the API to use a newly created ShadowRoot |
+ readonly attribute Element host; // O(1) |
} |
interface Document : TreeScope { |
@@ -162,9 +163,6 @@ module 'sky:core' { |
interface ContentElement : Element { |
Array<Node> getDistributedNodes(); // O(N) in distributed nodes |
} |
- interface ShadowElement : Element { |
- Array<Node> getDistributedNodes(); // O(N) in distributed nodes |
- } |
interface ImgElement : Element { } |
interface IframeElement : Element { } |
interface TElement : Element { } |
@@ -267,6 +265,11 @@ module 'sky:modulename' { |
ReturnType method(ArgumentType argumentName1, ArgumentType... allSubsequentArguments); |
} |
+ dictionary Options { |
+ String foo; |
+ Integer bar; |
+ } |
+ |
// the module can have properties and methods also |
attribute String Foo; |
void method(); |
@@ -309,6 +312,7 @@ The following types are available: |
* ``Boolean`` - WebIDL ``boolean`` |
# ``Object`` - WebIDL ``object`` |
* ``InterfaceName`` - an instance of the interface InterfaceName |
+* ``DictionaryName`` - an instance of the dictionary DictionaryName |
* ``Promise<Type>`` - WebIDL ``Promise<T>`` |
* ``Array<Type>`` - WebIDL ``sequence<T>`` |
* ``Dictionary`` - unordered set of name-value String-String pairs with no duplicate names |