| OLD | NEW |
| 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 133 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 144 Element? find(TreeScope root); // O(N*F()) where N is the number of descenda
nts | 144 Element? find(TreeScope root); // O(N*F()) where N is the number of descenda
nts |
| 145 Array<Element> findAll(Element root); // O(N*F())+O(N*M) where N is the numb
er of descendants and M the average depth of the tree | 145 Array<Element> findAll(Element root); // O(N*F())+O(N*M) where N is the numb
er of descendants and M the average depth of the tree |
| 146 Array<Element> findAll(DocumentFragment root); // O(N*F())+O(N*M) where N is
the number of descendants and M the average depth of the tree | 146 Array<Element> findAll(DocumentFragment root); // O(N*F())+O(N*M) where N is
the number of descendants and M the average depth of the tree |
| 147 Array<Element> findAll(TreeScope root); // O(N*F()) where N is the number of
descendants | 147 Array<Element> findAll(TreeScope root); // O(N*F()) where N is the number of
descendants |
| 148 } | 148 } |
| 149 | 149 |
| 150 | 150 |
| 151 // BUILT-IN ELEMENTS | 151 // BUILT-IN ELEMENTS |
| 152 | 152 |
| 153 class ImportElement : Element { | 153 class ImportElement : Element { |
| 154 constructor (Dictionary attributes, ChildArguments... nodes); // O(M+N), M =
number of attributes, N = number of nodes plus all their descendants | 154 constructor (Dictionary<String> attributes, ChildArguments... nodes); // O(M
+N), M = number of attributes, N = number of nodes plus all their descendants |
| 155 constructor (ChildArguments... nodes); // shorthand | 155 constructor (ChildArguments... nodes); // shorthand |
| 156 constructor (Dictionary attributes); // shorthand | 156 constructor (Dictionary<String> attributes); // shorthand |
| 157 constructor (); // shorthand | 157 constructor (); // shorthand |
| 158 constructor attribute String tagName; // O(1) // "import" | 158 constructor attribute String tagName; // O(1) // "import" |
| 159 constructor attribute Boolean shadow; // O(1) // false | 159 constructor attribute Boolean shadow; // O(1) // false |
| 160 } | 160 } |
| 161 class TemplateElement : Element { | 161 class TemplateElement : Element { |
| 162 constructor (Dictionary attributes, ChildArguments... nodes); // O(M+N), M =
number of attributes, N = number of nodes plus all their descendants | 162 constructor (Dictionary<String> attributes, ChildArguments... nodes); // O(M
+N), M = number of attributes, N = number of nodes plus all their descendants |
| 163 constructor (ChildArguments... nodes); // shorthand | 163 constructor (ChildArguments... nodes); // shorthand |
| 164 constructor (Dictionary attributes); // shorthand | 164 constructor (Dictionary<String> attributes); // shorthand |
| 165 constructor (); // shorthand | 165 constructor (); // shorthand |
| 166 constructor attribute String tagName; // O(1) // "template" | 166 constructor attribute String tagName; // O(1) // "template" |
| 167 constructor attribute Boolean shadow; // O(1) // false | 167 constructor attribute Boolean shadow; // O(1) // false |
| 168 | 168 |
| 169 readonly attribute DocumentFragment content; // O(1) | 169 readonly attribute DocumentFragment content; // O(1) |
| 170 } | 170 } |
| 171 class ScriptElement : Element { | 171 class ScriptElement : Element { |
| 172 constructor (Dictionary attributes, ChildArguments... nodes); // O(M+N), M =
number of attributes, N = number of nodes plus all their descendants | 172 constructor (Dictionary<String> attributes, ChildArguments... nodes); // O(M
+N), M = number of attributes, N = number of nodes plus all their descendants |
| 173 constructor (ChildArguments... nodes); // shorthand | 173 constructor (ChildArguments... nodes); // shorthand |
| 174 constructor (Dictionary attributes); // shorthand | 174 constructor (Dictionary<String> attributes); // shorthand |
| 175 constructor (); // shorthand | 175 constructor (); // shorthand |
| 176 constructor attribute String tagName; // O(1) // "script" | 176 constructor attribute String tagName; // O(1) // "script" |
| 177 constructor attribute Boolean shadow; // O(1) // false | 177 constructor attribute Boolean shadow; // O(1) // false |
| 178 } | 178 } |
| 179 class StyleElement : Element { | 179 class StyleElement : Element { |
| 180 constructor (Dictionary attributes, ChildArguments... nodes); // O(M+N), M =
number of attributes, N = number of nodes plus all their descendants | 180 constructor (Dictionary<String> attributes, ChildArguments... nodes); // O(M
+N), M = number of attributes, N = number of nodes plus all their descendants |
| 181 constructor (ChildArguments... nodes); // shorthand | 181 constructor (ChildArguments... nodes); // shorthand |
| 182 constructor (Dictionary attributes); // shorthand | 182 constructor (Dictionary<String> attributes); // shorthand |
| 183 constructor (); // shorthand | 183 constructor (); // shorthand |
| 184 constructor attribute String tagName; // O(1) // "style" | 184 constructor attribute String tagName; // O(1) // "style" |
| 185 constructor attribute Boolean shadow; // O(1) // false | 185 constructor attribute Boolean shadow; // O(1) // false |
| 186 } | 186 } |
| 187 class ContentElement : Element { | 187 class ContentElement : Element { |
| 188 constructor (Dictionary attributes, ChildArguments... nodes); // O(M+N), M =
number of attributes, N = number of nodes plus all their descendants | 188 constructor (Dictionary<String> attributes, ChildArguments... nodes); // O(M
+N), M = number of attributes, N = number of nodes plus all their descendants |
| 189 constructor (ChildArguments... nodes); // shorthand | 189 constructor (ChildArguments... nodes); // shorthand |
| 190 constructor (Dictionary attributes); // shorthand | 190 constructor (Dictionary<String> attributes); // shorthand |
| 191 constructor (); // shorthand | 191 constructor (); // shorthand |
| 192 constructor attribute String tagName; // O(1) // "content" | 192 constructor attribute String tagName; // O(1) // "content" |
| 193 constructor attribute Boolean shadow; // O(1) // false | 193 constructor attribute Boolean shadow; // O(1) // false |
| 194 | 194 |
| 195 Array<Node> getDistributedNodes(); // O(N) in distributed nodes | 195 Array<Node> getDistributedNodes(); // O(N) in distributed nodes |
| 196 } | 196 } |
| 197 class ImgElement : Element { | 197 class ImgElement : Element { |
| 198 constructor (Dictionary attributes, ChildArguments... nodes); // O(M+N), M =
number of attributes, N = number of nodes plus all their descendants | 198 constructor (Dictionary<String> attributes, ChildArguments... nodes); // O(M
+N), M = number of attributes, N = number of nodes plus all their descendants |
| 199 constructor (ChildArguments... nodes); // shorthand | 199 constructor (ChildArguments... nodes); // shorthand |
| 200 constructor (Dictionary attributes); // shorthand | 200 constructor (Dictionary<String> attributes); // shorthand |
| 201 constructor (); // shorthand | 201 constructor (); // shorthand |
| 202 constructor attribute String tagName; // O(1) // "img" | 202 constructor attribute String tagName; // O(1) // "img" |
| 203 constructor attribute Boolean shadow; // O(1) // false | 203 constructor attribute Boolean shadow; // O(1) // false |
| 204 } | 204 } |
| 205 class DivElement : Element { | 205 class DivElement : Element { |
| 206 constructor (Dictionary attributes, ChildArguments... nodes); // O(M+N), M =
number of attributes, N = number of nodes plus all their descendants | 206 constructor (Dictionary<String> attributes, ChildArguments... nodes); // O(M
+N), M = number of attributes, N = number of nodes plus all their descendants |
| 207 constructor (ChildArguments... nodes); // shorthand | 207 constructor (ChildArguments... nodes); // shorthand |
| 208 constructor (Dictionary attributes); // shorthand | 208 constructor (Dictionary<String> attributes); // shorthand |
| 209 constructor (); // shorthand | 209 constructor (); // shorthand |
| 210 constructor attribute String tagName; // O(1) // "div" | 210 constructor attribute String tagName; // O(1) // "div" |
| 211 constructor attribute Boolean shadow; // O(1) // false | 211 constructor attribute Boolean shadow; // O(1) // false |
| 212 } | 212 } |
| 213 class SpanElement : Element { | 213 class SpanElement : Element { |
| 214 constructor (Dictionary attributes, ChildArguments... nodes); // O(M+N), M =
number of attributes, N = number of nodes plus all their descendants | 214 constructor (Dictionary<String> attributes, ChildArguments... nodes); // O(M
+N), M = number of attributes, N = number of nodes plus all their descendants |
| 215 constructor (ChildArguments... nodes); // shorthand | 215 constructor (ChildArguments... nodes); // shorthand |
| 216 constructor (Dictionary attributes); // shorthand | 216 constructor (Dictionary<String> attributes); // shorthand |
| 217 constructor (); // shorthand | 217 constructor (); // shorthand |
| 218 constructor attribute String tagName; // O(1) // "span" | 218 constructor attribute String tagName; // O(1) // "span" |
| 219 constructor attribute Boolean shadow; // O(1) // false | 219 constructor attribute Boolean shadow; // O(1) // false |
| 220 } | 220 } |
| 221 class IframeElement : Element { | 221 class IframeElement : Element { |
| 222 constructor (Dictionary attributes, ChildArguments... nodes); // O(M+N), M =
number of attributes, N = number of nodes plus all their descendants | 222 constructor (Dictionary<String> attributes, ChildArguments... nodes); // O(M
+N), M = number of attributes, N = number of nodes plus all their descendants |
| 223 constructor (ChildArguments... nodes); // shorthand | 223 constructor (ChildArguments... nodes); // shorthand |
| 224 constructor (Dictionary attributes); // shorthand | 224 constructor (Dictionary<String> attributes); // shorthand |
| 225 constructor (); // shorthand | 225 constructor (); // shorthand |
| 226 constructor attribute String tagName; // O(1) // "iframe" | 226 constructor attribute String tagName; // O(1) // "iframe" |
| 227 constructor attribute Boolean shadow; // O(1) // false | 227 constructor attribute Boolean shadow; // O(1) // false |
| 228 } | 228 } |
| 229 class TElement : Element { | 229 class TElement : Element { |
| 230 constructor (Dictionary attributes, ChildArguments... nodes); // O(M+N), M =
number of attributes, N = number of nodes plus all their descendants | 230 constructor (Dictionary<String> attributes, ChildArguments... nodes); // O(M
+N), M = number of attributes, N = number of nodes plus all their descendants |
| 231 constructor (ChildArguments... nodes); // shorthand | 231 constructor (ChildArguments... nodes); // shorthand |
| 232 constructor (Dictionary attributes); // shorthand | 232 constructor (Dictionary<String> attributes); // shorthand |
| 233 constructor (); // shorthand | 233 constructor (); // shorthand |
| 234 constructor attribute String tagName; // O(1) // "t" | 234 constructor attribute String tagName; // O(1) // "t" |
| 235 constructor attribute Boolean shadow; // O(1) // false | 235 constructor attribute Boolean shadow; // O(1) // false |
| 236 } | 236 } |
| 237 class AElement : Element { | 237 class AElement : Element { |
| 238 constructor (Dictionary attributes, ChildArguments... nodes); // O(M+N), M =
number of attributes, N = number of nodes plus all their descendants | 238 constructor (Dictionary<String> attributes, ChildArguments... nodes); // O(M
+N), M = number of attributes, N = number of nodes plus all their descendants |
| 239 constructor (ChildArguments... nodes); // shorthand | 239 constructor (ChildArguments... nodes); // shorthand |
| 240 constructor (Dictionary attributes); // shorthand | 240 constructor (Dictionary<String> attributes); // shorthand |
| 241 constructor (); // shorthand | 241 constructor (); // shorthand |
| 242 constructor attribute String tagName; // O(1) // "a" | 242 constructor attribute String tagName; // O(1) // "a" |
| 243 constructor attribute Boolean shadow; // O(1) // false | 243 constructor attribute Boolean shadow; // O(1) // false |
| 244 } | 244 } |
| 245 class TitleElement : Element { | 245 class TitleElement : Element { |
| 246 constructor (Dictionary attributes, ChildArguments... nodes); // O(M+N), M =
number of attributes, N = number of nodes plus all their descendants | 246 constructor (Dictionary<String> attributes, ChildArguments... nodes); // O(M
+N), M = number of attributes, N = number of nodes plus all their descendants |
| 247 constructor (ChildArguments... nodes); // shorthand | 247 constructor (ChildArguments... nodes); // shorthand |
| 248 constructor (Dictionary attributes); // shorthand | 248 constructor (Dictionary<String> attributes); // shorthand |
| 249 constructor (); // shorthand | 249 constructor (); // shorthand |
| 250 constructor attribute String tagName; // O(1) // "title" | 250 constructor attribute String tagName; // O(1) // "title" |
| 251 constructor attribute Boolean shadow; // O(1) // false | 251 constructor attribute Boolean shadow; // O(1) // false |
| 252 } | 252 } |
| 253 class ErrorElement : Element { | 253 class ErrorElement : Element { |
| 254 constructor (Dictionary attributes, ChildArguments... nodes); // O(M+N), M =
number of attributes, N = number of nodes plus all their descendants | 254 constructor (Dictionary<String> attributes, ChildArguments... nodes); // O(M
+N), M = number of attributes, N = number of nodes plus all their descendants |
| 255 constructor (ChildArguments... nodes); // shorthand | 255 constructor (ChildArguments... nodes); // shorthand |
| 256 constructor (Dictionary attributes); // shorthand | 256 constructor (Dictionary<String> attributes); // shorthand |
| 257 constructor (); // shorthand | 257 constructor (); // shorthand |
| 258 constructor attribute String tagName; // O(1) // "error" | 258 constructor attribute String tagName; // O(1) // "error" |
| 259 constructor attribute Boolean shadow; // O(1) // false | 259 constructor attribute Boolean shadow; // O(1) // false |
| 260 } | 260 } |
| 261 | 261 |
| 262 | 262 |
| 263 | 263 |
| 264 // MODULES | 264 // MODULES |
| 265 | 265 |
| 266 callback InternalElementConstructor void (Module module); | 266 callback InternalElementConstructor void (Module module); |
| 267 dictionary ElementRegistration { | 267 dictionary ElementRegistration { |
| 268 String tagName; | 268 String tagName; |
| 269 Boolean shadow = false; | 269 Boolean shadow = false; |
| 270 InternalElementConstructor? constructor = null; | 270 InternalElementConstructor? constructor = null; |
| 271 } | 271 } |
| 272 | 272 |
| 273 interface ElementConstructor { | 273 interface ElementConstructor { |
| 274 constructor (Dictionary attributes, ChildArguments... nodes); // O(M+N), M =
number of attributes, N = number of nodes plus all their descendants | 274 constructor (Dictionary<String> attributes, ChildArguments... nodes); // O(M
+N), M = number of attributes, N = number of nodes plus all their descendants |
| 275 constructor (ChildArguments... nodes); // shorthand | 275 constructor (ChildArguments... nodes); // shorthand |
| 276 constructor (Dictionary attributes); // shorthand | 276 constructor (Dictionary<String> attributes); // shorthand |
| 277 constructor (); // shorthand | 277 constructor (); // shorthand |
| 278 | 278 |
| 279 constructor attribute String tagName; | 279 constructor attribute String tagName; |
| 280 constructor attribute Boolean shadow; | 280 constructor attribute Boolean shadow; |
| 281 } | 281 } |
| 282 | 282 |
| 283 abstract class AbstractModule : EventTarget { | 283 abstract class AbstractModule : EventTarget { |
| 284 readonly attribute Document document; // O(1) // the Documentof the module o
r application | 284 readonly attribute Document document; // O(1) // the Documentof the module o
r application |
| 285 Promise<any> import(String url); // O(Yikes) // returns the module's exports | 285 Promise<any> import(String url); // O(Yikes) // returns the module's exports |
| 286 | 286 |
| (...skipping 158 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 445 foo[debug.Bar] | 445 foo[debug.Bar] |
| 446 </script> | 446 </script> |
| 447 ``` | 447 ``` |
| 448 | 448 |
| 449 ### Types ### | 449 ### Types ### |
| 450 | 450 |
| 451 The following types are available: | 451 The following types are available: |
| 452 | 452 |
| 453 * ``Integer`` - WebIDL ``long long`` | 453 * ``Integer`` - WebIDL ``long long`` |
| 454 * ``Float`` - WebIDL ``double`` | 454 * ``Float`` - WebIDL ``double`` |
| 455 * ``Infinity`` - singleton type with value ``Infinity`` |
| 455 * ``String`` - WebIDL ``USVString`` | 456 * ``String`` - WebIDL ``USVString`` |
| 456 * ``Boolean`` - WebIDL ``boolean`` | 457 * ``Boolean`` - WebIDL ``boolean`` |
| 457 # ``Object`` - WebIDL ``object`` (``ClassName`` can be used as a literal for thi
s type) | 458 # ``Object`` - WebIDL ``object`` (``ClassName`` can be used as a literal for thi
s type) |
| 458 * ``ClassName`` - an instance of the class ClassName | 459 * ``ClassName`` - an instance of the class ClassName |
| 459 * ``DictionaryName`` - an instance of the dictionary DictionaryName | 460 * ``DictionaryName`` - an instance of the dictionary DictionaryName |
| 460 * ``Promise<Type>`` - WebIDL ``Promise<T>`` | 461 * ``Promise<Type>`` - WebIDL ``Promise<T>`` |
| 462 * ``Generator<Type>`` - An ECMAScript generator function that returns data of th
e given type |
| 461 * ``Array<Type>`` - WebIDL ``sequence<T>`` | 463 * ``Array<Type>`` - WebIDL ``sequence<T>`` |
| 462 * ``Dictionary`` - unordered set of name-value String-String pairs with no dupli
cate names | 464 * ``Dictionary<Type>`` - unordered set of name-value String-Type pairs with no d
uplicate names |
| 463 * ``Type?`` - union of Type and the singleton type with value ``null`` (WebIDL n
ullable) | 465 * ``Type?`` - union of Type and the singleton type with value ``null`` (WebIDL n
ullable) |
| 464 * ``(Type1 or Type2)`` - union of Type1 and Type2 (WebIDL union) | 466 * ``(Type1 or Type2)`` - union of Type1 and Type2 (WebIDL union) |
| 465 * ``any`` - union of all types (WebIDL ``any``) | 467 * ``any`` - union of all types (WebIDL ``any``) |
| 466 | 468 |
| 467 Methods that return nothing (undefined, in JS) use the keyword "void" | 469 Methods that return nothing (undefined, in JS) use the keyword "void" |
| 468 instead of a type. | 470 instead of a type. |
| 469 | 471 |
| 470 | 472 |
| 471 TODO(ianh): Define in detail how this actually works | 473 TODO(ianh): Define in detail how this actually works |
| 472 | 474 |
| (...skipping 19 matching lines...) Expand all Loading... |
| 492 the core mojo fabric JS API sky:mojo:fabric:core | 494 the core mojo fabric JS API sky:mojo:fabric:core |
| 493 the asyncWait/cancelWait mojo fabric JS API (interface to IPC thread) sky:moj
o:fabric:ipc | 495 the asyncWait/cancelWait mojo fabric JS API (interface to IPC thread) sky:moj
o:fabric:ipc |
| 494 the mojom for the shell, proxying through C++ so that the shell pipe isn't exp
osed sky:mojo:shell | 496 the mojom for the shell, proxying through C++ so that the shell pipe isn't exp
osed sky:mojo:shell |
| 495 the sky API sky:core | 497 the sky API sky:core |
| 496 the sky debug symbols for private APIs sky:debug | 498 the sky debug symbols for private APIs sky:debug |
| 497 ``` | 499 ``` |
| 498 | 500 |
| 499 TODO(ianh): determine if we want to separate the "this" from the | 501 TODO(ianh): determine if we want to separate the "this" from the |
| 500 Document, especially for Modules, so that exposing a module's element | 502 Document, especially for Modules, so that exposing a module's element |
| 501 doesn't expose the module's exports attribute. | 503 doesn't expose the module's exports attribute. |
| OLD | NEW |