Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
sxychenjing
engine
提交
420d715e
E
engine
项目概览
sxychenjing
/
engine
与 Fork 源项目一致
从无法访问的项目Fork
通知
3
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
E
engine
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
420d715e
编写于
10月 24, 2014
作者:
H
Hixie
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Specs: Module overview
Review URL:
https://codereview.chromium.org/678803002
上级
2a491514
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
77 addition
and
0 deletion
+77
-0
specs/modules.md
specs/modules.md
+77
-0
未找到文件。
specs/modules.md
0 → 100644
浏览文件 @
420d715e
Sky module system
=================
This document describes the Sky module system.
Overview
--------
The Sky module system is based on the
```import```
element. In its
most basic form, you import a module as follows:
```
html
<import
src=
"path/to/module.sky"
/>
```
As these
```import```
elements are inserted into a document, the
document's list of outstanding dependencies grows. When an imported
module completes, it is removed from the document's list of
outstanding dependencies.
Before executing any
```script```
elements, the parser waits until the
list of outstanding dependencies is empty. After the parser has
finished parsing, the document waits until its list of outstanding
dependencies is empty before the module it represents is marked
complete.
Module API
----------
Within a script in a module, the
```module```
identifier is bound to
the
```Module```
object that represents the module:
```
interface Module : EventTarget {
constructor (Application application, Document document); // O(1)
attribute any exports; // O(1) // defaults to the module's document
readonly attribute Document document; // O(1) // the module's document
readonly attribute Application application; // O(1)
}
```
### Exporting values ###
A module can export a value by assigning the
```exports```
property of
its
```Module```
object. By default, the
```exports```
property of a
```
Module``` is its ```Document``` object, so that a script-less
import is still useful (it exposes its contents, e.g. templates that
the import might have been written to provide).
Naming modules
--------------
The ```as``` attribute on the ```import``` element binds a name to the
imported module:
```
html
<import
src=
"path/to/chocolate.sky"
as=
"chocolate"
/>
```
The parser executes the contents of script elements inside a module as
if they were executed as follow:
```
javascript
(new Function(module, name_1, ..., name_n, source_code)).call(
source_module, value_1, ..., value_n);
```
Where ```name_1``` through ```name_n``` are the names bound to the
various named imports in the script element's document,
```
source_code
``` is the text content of the script element,
```
source_module
`` is the ```Module``` object of the script element's
module, and ```value_1``` through ```value_n``` are the values
exported by the various named imports in the script element's
document.
When an import fails to load, the ```as``` name for the import gets
bound to ```undefined`
``
.
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录