Index: sky/specs/apis.md |
diff --git a/sky/specs/apis.md b/sky/specs/apis.md |
index d2701756d78f1dfc618fd3e9f6cadfd0705d2106..2ce493dbca9bc7c4794c9cc99613168765a3e6b7 100644 |
--- a/sky/specs/apis.md |
+++ b/sky/specs/apis.md |
@@ -101,6 +101,7 @@ module 'sky:core' { |
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 endTagParsedCallback(); // noop |
virtual void attributeChangeCallback(String name, String? oldValue, String? newValue); // noop |
// TODO(ianh): does a node ever need to know when it's been redistributed? |
} |
@@ -284,6 +285,16 @@ module 'sky:core' { |
// if you call registerElement() with an object that was created by |
// registerElement(), it just returns the object after registering it, |
// rather than creating a new constructor |
+ // otherwise, it proceeds as follows: |
+ // 0. let prototype be the prototype passed in (defaulting to Element) |
+ // 1. let constructor be prototype.constructor |
+ // 2. create a new Function that: |
+ // 0. throws if not called as a constructor |
+ // 1. initialises the shadow tree is shadow on the options is true |
+ // 2. calls constructor, if it's not null, with the module as the argument |
+ // 3. let that new Function's prototype be the aforementioned prototype |
+ // 4. let that new Function have tagName and shadow properties set to |
+ // the values passed in |
ScriptElement? currentScript; // O(1) // returns the <script> element currently being executed if any, and if it's in this module; else null |
} |