Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(77)

Side by Side Diff: sky/specs/apis.md

Issue 701873004: Specs: define registerElement() more carefully; add an 'end tag (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: Created 6 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « sky/examples/radio.sky ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 APIs 1 APIs
2 ==== 2 ====
3 3
4 The Sky core API 4 The Sky core API
5 ---------------- 5 ----------------
6 6
7 ```javascript 7 ```javascript
8 module 'sky:core' { 8 module 'sky:core' {
9 9
10 // EVENTS 10 // EVENTS
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after
94 String getAttribute(String name); // O(N) in number of attributes 94 String getAttribute(String name); // O(N) in number of attributes
95 void setAttribute(String name, String value = ''); // O(N) in number of attr ibutes 95 void setAttribute(String name, String value = ''); // O(N) in number of attr ibutes
96 void removeAttribute(String name); // O(N) in number of attributes 96 void removeAttribute(String name); // O(N) in number of attributes
97 97
98 // Returns a new Array and new Attr instances every time. 98 // Returns a new Array and new Attr instances every time.
99 Array<Attr> getAttributes(); // O(N) in number of attributes 99 Array<Attr> getAttributes(); // O(N) in number of attributes
100 100
101 readonly attribute ShadowRoot? shadowRoot; // O(1) // returns the shadow roo t 101 readonly attribute ShadowRoot? shadowRoot; // O(1) // returns the shadow roo t
102 Array<ContentElement> getDestinationInsertionPoints(); // O(N) in number of insertion points the node is in 102 Array<ContentElement> getDestinationInsertionPoints(); // O(N) in number of insertion points the node is in
103 103
104 virtual void endTagParsedCallback(); // noop
104 virtual void attributeChangeCallback(String name, String? oldValue, String? newValue); // noop 105 virtual void attributeChangeCallback(String name, String? oldValue, String? newValue); // noop
105 // TODO(ianh): does a node ever need to know when it's been redistributed? 106 // TODO(ianh): does a node ever need to know when it's been redistributed?
106 } 107 }
107 108
108 class Text : Node { 109 class Text : Node {
109 constructor (String value = ''); // O(1) 110 constructor (String value = ''); // O(1)
110 attribute String value; // O(1) 111 attribute String value; // O(1)
111 112
112 void replaceWith(String node); // O(1) // special case override of Node.repl aceWith() 113 void replaceWith(String node); // O(1) // special case override of Node.repl aceWith()
113 114
(...skipping 163 matching lines...) Expand 10 before | Expand all | Expand 10 after
277 abstract class AbstractModule : EventTarget { 278 abstract class AbstractModule : EventTarget {
278 readonly attribute Document document; // O(1) // the Documentof the module o r application 279 readonly attribute Document document; // O(1) // the Documentof the module o r application
279 Promise<any> import(String url); // O(Yikes) // returns the module's exports 280 Promise<any> import(String url); // O(Yikes) // returns the module's exports
280 281
281 readonly attribute String url; 282 readonly attribute String url;
282 283
283 ElementConstructor registerElement(ElementRegistration options); // O(1) 284 ElementConstructor registerElement(ElementRegistration options); // O(1)
284 // if you call registerElement() with an object that was created by 285 // if you call registerElement() with an object that was created by
285 // registerElement(), it just returns the object after registering it, 286 // registerElement(), it just returns the object after registering it,
286 // rather than creating a new constructor 287 // rather than creating a new constructor
288 // otherwise, it proceeds as follows:
289 // 0. let prototype be the prototype passed in (defaulting to Element)
290 // 1. let constructor be prototype.constructor
291 // 2. create a new Function that:
292 // 0. throws if not called as a constructor
293 // 1. initialises the shadow tree is shadow on the options is true
294 // 2. calls constructor, if it's not null, with the module as the argum ent
295 // 3. let that new Function's prototype be the aforementioned prototype
296 // 4. let that new Function have tagName and shadow properties set to
297 // the values passed in
287 298
288 ScriptElement? currentScript; // O(1) // returns the <script> element curren tly being executed if any, and if it's in this module; else null 299 ScriptElement? currentScript; // O(1) // returns the <script> element curren tly being executed if any, and if it's in this module; else null
289 } 300 }
290 301
291 class Module : AbstractModule { 302 class Module : AbstractModule {
292 constructor (Application application, Document document, String url); // O(1 ) 303 constructor (Application application, Document document, String url); // O(1 )
293 readonly attribute Application application; // O(1) 304 readonly attribute Application application; // O(1)
294 305
295 attribute any exports; // O(1) // defaults to the module's document 306 attribute any exports; // O(1) // defaults to the module's document
296 } 307 }
(...skipping 178 matching lines...) Expand 10 before | Expand all | Expand 10 after
475 the core mojo fabric JS API sky:mojo:fabric:core 486 the core mojo fabric JS API sky:mojo:fabric:core
476 the asyncWait/cancelWait mojo fabric JS API (interface to IPC thread) sky:moj o:fabric:ipc 487 the asyncWait/cancelWait mojo fabric JS API (interface to IPC thread) sky:moj o:fabric:ipc
477 the mojom for the shell, proxying through C++ so that the shell pipe isn't exp osed sky:mojo:shell 488 the mojom for the shell, proxying through C++ so that the shell pipe isn't exp osed sky:mojo:shell
478 the sky API sky:core 489 the sky API sky:core
479 the sky debug symbols for private APIs sky:debug 490 the sky debug symbols for private APIs sky:debug
480 ``` 491 ```
481 492
482 TODO(ianh): determine if we want to separate the "this" from the 493 TODO(ianh): determine if we want to separate the "this" from the
483 Document, especially for Modules, so that exposing a module's element 494 Document, especially for Modules, so that exposing a module's element
484 doesn't expose the module's exports attribute. 495 doesn't expose the module's exports attribute.
OLDNEW
« no previous file with comments | « sky/examples/radio.sky ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698