mirror of
https://github.com/marko-js/marko.git
synced 2025-12-08 19:26:05 +00:00
Docs and test cases for builder.code(value)
This commit is contained in:
parent
6153b13959
commit
13be833b15
@ -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:
|
||||
|
||||
3
test/fixtures/codegen/autotest/code-expression/expected.js
vendored
Normal file
3
test/fixtures/codegen/autotest/code-expression/expected.js
vendored
Normal file
@ -0,0 +1,3 @@
|
||||
if (a === b) {
|
||||
foo = "bar";
|
||||
}
|
||||
17
test/fixtures/codegen/autotest/code-expression/index.js
vendored
Normal file
17
test/fixtures/codegen/autotest/code-expression/index.js
vendored
Normal 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'))
|
||||
])
|
||||
]);
|
||||
};
|
||||
6
test/fixtures/codegen/autotest/code-statement-nested/expected.js
vendored
Normal file
6
test/fixtures/codegen/autotest/code-statement-nested/expected.js
vendored
Normal file
@ -0,0 +1,6 @@
|
||||
if (true) {
|
||||
var a = 1;
|
||||
var b = 2;
|
||||
|
||||
b = 3;
|
||||
}
|
||||
12
test/fixtures/codegen/autotest/code-statement-nested/index.js
vendored
Normal file
12
test/fixtures/codegen/autotest/code-statement-nested/index.js
vendored
Normal 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))
|
||||
])
|
||||
]);
|
||||
};
|
||||
4
test/fixtures/codegen/autotest/code-statement/expected.js
vendored
Normal file
4
test/fixtures/codegen/autotest/code-statement/expected.js
vendored
Normal file
@ -0,0 +1,4 @@
|
||||
var a = 1;
|
||||
var b = 2;
|
||||
|
||||
b = 3;
|
||||
8
test/fixtures/codegen/autotest/code-statement/index.js
vendored
Normal file
8
test/fixtures/codegen/autotest/code-statement/index.js
vendored
Normal 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))
|
||||
]);
|
||||
};
|
||||
@ -1,3 +1,4 @@
|
||||
<var foo bar/>
|
||||
<assign foo=123 bar='hello'/>
|
||||
|
||||
${bar.toUpperCase()} ${foo*10}
|
||||
Loading…
x
Reference in New Issue
Block a user