Permalink
Browse files

Perform destructuring of specs for easier navigation from TOC.

Issue #96.
  • Loading branch information...
1 parent 4728e62 commit b546322d968748284a0c1115d89ca8ae0b1b4237 @RReverser RReverser committed Oct 25, 2015
Showing with 143 additions and 199 deletions.
  1. +0 −32 deprecated.md
  2. +22 −16 es6.md
  3. +121 −151 spec.md
View
@@ -57,7 +57,6 @@ If the `expression` flag is true, the function is an [expression closure](https:
# Statements
-
## ForInStatement
```js
@@ -68,7 +67,6 @@ extend interface ForInStatement {
If `each` is true, a `for each`/`in` statement.
-
## LetStatement
```js
@@ -81,7 +79,6 @@ interface LetStatement <: Statement {
A `let` statement.
-
## SwitchStatement
```js
@@ -92,7 +89,6 @@ extend interface SwitchStatement {
The `lexical` flag is metadata indicating whether the `switch` statement contains any unnested `let` declarations (and therefore introduces a new lexical scope).
-
## TryStatement
```js
@@ -104,7 +100,6 @@ extend interface TryStatement {
The `length` of `handlers` may be any non-negative integer.
-
# Expressions
## ComprehensionExpression
@@ -120,7 +115,6 @@ interface ComprehensionExpression <: Expression {
An array comprehension. The `blocks` array corresponds to the sequence of `for` and `for each` blocks. The optional `filter` expression corresponds to the final `if` clause, if present.
-
## GeneratorExpression
```js
@@ -134,7 +128,6 @@ interface GeneratorExpression <: Expression {
A generator expression. As with array comprehensions, the `blocks` array corresponds to the sequence of `for` and `for each` blocks, and the optional `filter` expression corresponds to the final `if` clause, if present.
-
## GraphExpression
```js
@@ -147,7 +140,6 @@ interface GraphExpression <: Expression {
A graph expression, aka "sharp literal," such as `#1={ self: #1# }`.
-
## GraphIndexExpression
```js
@@ -159,7 +151,6 @@ interface GraphIndexExpression <: Expression {
A graph index expression, aka "sharp variable," such as `#1#`.
-
## LetExpression
```js
@@ -172,7 +163,6 @@ interface LetExpression <: Expression {
A `let` expression.
-
# Clauses
## CatchClause
@@ -185,7 +175,6 @@ extend interface CatchClause {
The optional `guard` property corresponds to the optional expression guard on the bound variable.
-
## ComprehensionBlock
```js
@@ -199,7 +188,6 @@ interface ComprehensionBlock <: Node {
A `for` or `for each` block in an array comprehension or generator expression.
-
# Miscellaneous
## BinaryOperator
@@ -212,14 +200,12 @@ extend enum BinaryOperator {
The `".."` token is E4X-specific.
-
# E4X
E4X was specified by [ECMA-357](http://www.ecma-international.org/publications/standards/Ecma-357.htm) but has become a defunct standard. It was implemented for several years in SpiderMonkey but was [removed starting in Firefox 21](https://bugzilla.mozilla.org/show_bug.cgi?id=788293).
## Declarations
-
### XMLDefaultDeclaration
```js
@@ -231,7 +217,6 @@ interface XMLDefaultDeclaration <: Declaration {
A `default xml namespace` declaration.
-
## Expressions
### XMLAnyName
@@ -244,7 +229,6 @@ interface XMLAnyName <: Expression {
The special E4X wildcard pseudo-identifier `*`.
-
### XMLQualifiedIdentifier
```js
@@ -258,7 +242,6 @@ interface XMLQualifiedIdentifier <: Expression {
An E4X qualified identifier, i.e., a pseudo-identifier using the namespace separator `::`. If the qualified identifier has a computed name (i.e., the `id::[expr]` form), then `computed` is `true` and the `right` property is an expression.
-
### XMLFunctionQualifiedIdentifier
```js
@@ -271,7 +254,6 @@ interface XMLFunctionQualifiedIdentifier <: Expression {
An E4X identifier qualified by the `function` keyword, e.g., `function::id`. (This functionality was a non-standard SpiderMonkey extension.)
-
### XMLAttributeSelector
```js
@@ -283,7 +265,6 @@ interface XMLAttributeSelector <: Expression {
An E4X attribute selector expression, i.e., an `@` expression.
-
### XMLFilterExpression
```js
@@ -296,7 +277,6 @@ interface XMLFilterExpression <: Expression {
An E4X list filter expression, i.e., an expression of the form `expr.(expr)`.
-
### XMLElement
```js
@@ -308,7 +288,6 @@ interface XMLElement <: XML, Expression {
An E4X literal representing a single XML element.
-
### XMLList
```js
@@ -320,7 +299,6 @@ interface XMLList <: XML, Expression {
An E4X literal representing a list of XML elements.
-
## XML
```js
@@ -329,7 +307,6 @@ interface XML <: Node { }
XML data.
-
### XMLEscape
```js
@@ -341,7 +318,6 @@ interface XMLEscape <: XML {
XML data with an escaped JavaScript expression.
-
### XMLText
```js
@@ -353,7 +329,6 @@ interface XMLText <: XML {
Literal XML text.
-
### XMLStartTag
```js
@@ -365,7 +340,6 @@ interface XMLStartTag <: XML {
An XML start tag.
-
### XMLEndTag
```js
@@ -377,7 +351,6 @@ interface XMLEndTag <: XML {
An XML end tag.
-
### XMLPointTag
```js
@@ -389,7 +362,6 @@ interface XMLPointTag <: XML {
An XML point tag.
-
### XMLName
```js
@@ -401,7 +373,6 @@ interface XMLName <: XML {
An XML name.
-
### XMLAttribute
```js
@@ -413,7 +384,6 @@ interface XMLAttribute <: XML {
An XML attribute value.
-
### XMLCdata
```js
@@ -425,7 +395,6 @@ interface XMLCdata <: XML {
An XML CDATA node.
-
### XMLComment
```js
@@ -437,7 +406,6 @@ interface XMLComment <: XML {
An XML comment.
-
### XMLProcessingInstruction
```js
View
@@ -29,14 +29,16 @@ This document specifies the extensions to the core ESTree AST types to support t
- [Modules](#modules)
- [ModuleDeclaration](#moduledeclaration)
- [ModuleSpecifier](#modulespecifier)
- - [ImportDeclaration](#importdeclaration)
- - [ImportSpecifier](#importspecifier)
- - [ImportDefaultSpecifier](#importdefaultspecifier)
- - [ImportNamespaceSpecifier](#importnamespacespecifier)
- - [ExportNamedDeclaration](#exportnameddeclaration)
- - [ExportSpecifier](#exportspecifier)
- - [ExportDefaultDeclaration](#exportdefaultdeclaration)
- - [ExportAllDeclaration](#exportalldeclaration)
+ - [Imports](#imports)
+ - [ImportDeclaration](#importdeclaration)
+ - [ImportSpecifier](#importspecifier)
+ - [ImportDefaultSpecifier](#importdefaultspecifier)
+ - [ImportNamespaceSpecifier](#importnamespacespecifier)
+ - [Exports](#exports)
+ - [ExportNamedDeclaration](#exportnameddeclaration)
+ - [ExportSpecifier](#exportspecifier)
+ - [ExportDefaultDeclaration](#exportdefaultdeclaration)
+ - [ExportAllDeclaration](#exportalldeclaration)
<!-- END doctoc generated TOC please keep comment here to allow auto update -->
@@ -317,7 +319,9 @@ interface ModuleSpecifier <: Node {
A specifier in an import or export declaration.
-## ImportDeclaration
+## Imports
+
+### ImportDeclaration
```js
interface ImportDeclaration <: ModuleDeclaration {
@@ -329,7 +333,7 @@ interface ImportDeclaration <: ModuleDeclaration {
An import declaration, e.g., `import foo from "mod";`.
-## ImportSpecifier
+### ImportSpecifier
```js
interface ImportSpecifier <: ModuleSpecifier {
@@ -340,7 +344,7 @@ interface ImportSpecifier <: ModuleSpecifier {
An imported variable binding, e.g., `{foo}` in `import {foo} from "mod"` or `{foo as bar}` in `import {foo as bar} from "mod"`. The `imported` field refers to the name of the export imported from the module. The `local` field refers to the binding imported into the local module scope. If it is a basic named import, such as in `import {foo} from "mod"`, both `imported` and `local` are equivalent `Identifier` nodes; in this case an `Identifier` node representing `foo`. If it is an aliased import, such as in `import {foo as bar} from "mod"`, the `imported` field is an `Identifier` node representing `foo`, and the `local` field is an `Identifier` node representing `bar`.
-## ImportDefaultSpecifier
+### ImportDefaultSpecifier
```js
interface ImportDefaultSpecifier <: ModuleSpecifier {
@@ -350,7 +354,7 @@ interface ImportDefaultSpecifier <: ModuleSpecifier {
A default import specifier, e.g., `foo` in `import foo from "mod.js"`.
-## ImportNamespaceSpecifier
+### ImportNamespaceSpecifier
```js
interface ImportNamespaceSpecifier <: ModuleSpecifier {
@@ -360,7 +364,9 @@ interface ImportNamespaceSpecifier <: ModuleSpecifier {
A namespace import specifier, e.g., `* as foo` in `import * as foo from "mod.js"`.
-## ExportNamedDeclaration
+## Exports
+
+### ExportNamedDeclaration
```js
interface ExportNamedDeclaration <: ModuleDeclaration {
@@ -375,7 +381,7 @@ An export named declaration, e.g., `export {foo, bar};`, `export {foo} from "mod
_Note: Having `declaration` populated with non-empty `specifiers` or non-null `source` results in an invalid state._
-## ExportSpecifier
+### ExportSpecifier
```js
interface ExportSpecifier <: ModuleSpecifier {
@@ -386,7 +392,7 @@ interface ExportSpecifier <: ModuleSpecifier {
An exported variable binding, e.g., `{foo}` in `export {foo}` or `{bar as foo}` in `export {bar as foo}`. The `exported` field refers to the name exported in the module. The `local` field refers to the binding into the local module scope. If it is a basic named export, such as in `export {foo}`, both `exported` and `local` are equivalent `Identifier` nodes; in this case an `Identifier` node representing `foo`. If it is an aliased export, such as in `export {bar as foo}`, the `exported` field is an `Identifier` node representing `foo`, and the `local` field is an `Identifier` node representing `bar`.
-## ExportDefaultDeclaration
+### ExportDefaultDeclaration
```js
interface ExportDefaultDeclaration <: ModuleDeclaration {
@@ -397,7 +403,7 @@ interface ExportDefaultDeclaration <: ModuleDeclaration {
An export default declaration, e.g., `export default function () {};` or `export default 1;`.
-## ExportAllDeclaration
+### ExportAllDeclaration
```js
interface ExportAllDeclaration <: ModuleDeclaration {
Oops, something went wrong.

0 comments on commit b546322

Please sign in to comment.