Docs and test cases for builder.code(value)

This commit is contained in:
Patrick Steele-Idem 2015-12-30 20:19:08 -07:00
parent 6153b13959
commit 13be833b15
8 changed files with 70 additions and 0 deletions

View File

@ -102,6 +102,25 @@ builder.binaryExpression(
foo < 99;
```
### code(value)
Returns a node that writes out arbitrary JavaScript code with the given value. The indentation of the provided code is adjusted for proper formatting.
For example:
```javascript
builder.program([
builder.code('var a = 1;\nvar b = 2;'),
builder.assignment(builder.identifier('b'), builder.literal(3))
])
// Output code:
var a = 1;
var b = 2;
b = 3;
```
### elseStatement(body)
Returns a node that generates the following code:

View File

@ -0,0 +1,3 @@
if (a === b) {
foo = "bar";
}

View File

@ -0,0 +1,17 @@
'use strict';
module.exports = function(builder) {
var program = builder.program;
var ifStatement = builder.ifStatement;
var strictEquality = builder.strictEquality;
var assignment = builder.assignment;
var literal = builder.literal;
return program([
ifStatement(
builder.code('a === b'),
[
assignment('foo', literal('bar'))
])
]);
};

View File

@ -0,0 +1,6 @@
if (true) {
var a = 1;
var b = 2;
b = 3;
}

View File

@ -0,0 +1,12 @@
'use strict';
module.exports = function(builder) {
return builder.program([
builder.ifStatement(
builder.literal(true),
[
builder.code('var a = 1;\nvar b = 2;'),
builder.assignment(builder.identifier('b'), builder.literal(3))
])
]);
};

View File

@ -0,0 +1,4 @@
var a = 1;
var b = 2;
b = 3;

View File

@ -0,0 +1,8 @@
'use strict';
module.exports = function(builder) {
return builder.program([
builder.code('var a = 1;\nvar b = 2;'),
builder.assignment(builder.identifier('b'), builder.literal(3))
]);
};

View File

@ -1,3 +1,4 @@
<var foo bar/>
<assign foo=123 bar='hello'/>
${bar.toUpperCase()} ${foo*10}