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

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

Issue 940593003: Specs: clean up the last remaining mentions of documents (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: Created 5 years, 10 months 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/specs/markup.md ('k') | sky/specs/parsing.md » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 Sky Module System 1 Sky Module System
2 ================= 2 =================
3 3
4 This document describes the Sky module system. 4 This document describes the Sky module system.
5 5
6 Overview 6 Overview
7 -------- 7 --------
8 8
9 The Sky module system is based on the ``import`` element. In its 9 The Sky module system is based on the ``import`` element. In its
10 most basic form, you import a module as follows: 10 most basic form, you import a module as follows:
11 11
12 ```html 12 ```html
13 <import src="path/to/module.sky" /> 13 <import src="path/to/module.sky" />
14 ``` 14 ```
15 15
16 As these ``import`` elements are inserted into a document, the 16 As these ``import`` elements are inserted into a module's element
17 document's list of outstanding dependencies grows. When an imported 17 tree, the module's list of outstanding dependencies grows. When an
18 module completes, it is removed from the document's list of 18 imported module completes, it is removed from the importing module's
19 outstanding dependencies. 19 list of outstanding dependencies.
20 20
21 Before compiling script or inserting an element that is not already 21 Before compiling script or inserting an element that is not already
22 registered, the parser waits until the list of outstanding 22 registered, the parser waits until the list of outstanding
23 dependencies is empty. After the parser has finished parsing, the 23 dependencies is empty. After the parser has finished parsing, the
24 document waits until its list of outstanding dependencies is empty 24 module waits until its list of outstanding dependencies is empty
25 before the module it represents is marked complete. 25 before marking itself complete.
26 26
27 The ``as`` attribute on the ``import`` element binds a name to the 27 The ``as`` attribute on the ``import`` element binds a name to the
28 imported module: 28 imported module:
29 29
30 ```html 30 ```html
31 <import src="path/to/chocolate.sky" as="chocolate" /> 31 <import src="path/to/chocolate.sky" as="chocolate" />
32 ``` 32 ```
33 33
34 34
35 Module API 35 Module API
36 ---------- 36 ----------
37 37
38 Each module consists of one or more libraries. The first library in a 38 Each module consists of one or more libraries. The first library in a
39 module is the *element tree library*, which imports the dart:sky 39 module is the *element tree library*, which imports the dart:sky
40 module and then consists of the following code for a Sky module: 40 module and then consists of the following code for a Sky module:
41 41
42 ```dart 42 ```dart
43 final Module module = new Module(); 43 final Module module = new Module();
44 ``` 44 ```
45 45
46 ...and the following code for a Sky application: 46 ...and the following code for a Sky application:
47 47
48 ```dart 48 ```dart
49 final Module module = new Application(); 49 final Module module = new Application();
50 ``` 50 ```
51 51
52 The ``<script>`` elements found in the document create the subsequent 52 The ``<script>`` elements found in the module's element tree create
53 libraries. Each one first imports the ``dart:mirror`` library, then 53 the subsequent libraries. Each one first imports the ``dart:mirror``
54 the ``dart:sky`` module, then the first library described above, then 54 library, then the ``dart:sky`` module, then the first library
55 all the modules referenced by ``<import>`` element up to that 55 described above, then all the modules referenced by ``<import>``
56 ``<script>`` element and all the libraries defined by ``<script>`` 56 element up to that ``<script>`` element and all the libraries defined
57 elements up to that point, interleaved so as to maintain the same 57 by ``<script>`` elements up to that point, interleaved so as to
58 relative order as those elements were first seen by the parser. 58 maintain the same relative order as those elements were first seen by
59 the parser.
59 60
60 When a library imports a module, it actually imports all the libraries 61 When a library imports a module, it actually imports all the libraries
61 that were declared by that module except the aforementioned element 62 that were declared by that module except the aforementioned element
62 tree library. If the ``as`` attribute is present on the ``import`` 63 tree library. If the ``as`` attribute is present on the ``import``
63 element, all the libraries are bound to the same name. 64 element, all the libraries are bound to the same name.
64 65
65 At the end of the ``<script>`` block's source, if it parsed correctly 66 At the end of the ``<script>`` block's source, if it parsed correctly
66 and completely, the conceptual equivalent of the following code is 67 and completely, the conceptual equivalent of the following code is
67 appended (but without affecting the library's list of declarations and 68 appended (but without affecting the library's list of declarations and
68 without any possibility of it clashing with identifiers described in 69 without any possibility of it clashing with identifiers described in
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
121 } 122 }
122 123
123 class Application extends AbstractModule { 124 class Application extends AbstractModule {
124 Application({String url, Root elements, this.gestureManager}) : 125 Application({String url, Root elements, this.gestureManager}) :
125 super(url: url, elements: elements); // O(1) 126 super(url: url, elements: elements); // O(1)
126 external String get title; // O(1) 127 external String get title; // O(1)
127 external void set title(String newValue); // O(1) 128 external void set title(String newValue); // O(1)
128 final GestureManager gestureManager; 129 final GestureManager gestureManager;
129 } 130 }
130 ``` 131 ```
OLDNEW
« no previous file with comments | « sky/specs/markup.md ('k') | sky/specs/parsing.md » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698