Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 405be0f

Browse files
committed
Merge pull request facebook#106 from benjamn/rename-woodchipper
Rename Woodchipper to ConstantVisitor, and simplify the vendor/constants.js interface
2 parents 2195a47 + 000928f commit 405be0f

File tree

2 files changed

+11
-21
lines changed

2 files changed

+11
-21
lines changed

bin/jsx

Lines changed: 5 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33

44
var visitors = require('../vendor/fbtransform/visitors').transformVisitors;
55
var transform = require('../vendor/fbtransform/lib/transform').transform;
6-
var debranch = require("../vendor/woodchipper").debranch;
6+
var propagate = require("../vendor/constants").propagate;
77

88
require("commoner").resolve(function(id) {
99
var context = this;
@@ -25,18 +25,12 @@ require("commoner").resolve(function(id) {
2525

2626
}).process(function(id, source) {
2727
var context = this;
28+
var constants = context.config.constants || {};
2829

2930
// This is where JSX, ES6, etc. desugaring happens.
3031
source = transform(visitors.react, source).code;
3132

32-
return context.makePromise(function(callback) {
33-
var constants = context.config.constants || {};
34-
35-
// Debranching means removing any obviously dead code after
36-
// replacing constant conditional expressions with literal
37-
// (boolean) values.
38-
debranch(constants, source, function(source) {
39-
callback(null, source);
40-
});
41-
});
33+
// Constant propagation means removing any obviously dead code after
34+
// replacing constant expressions with literal (boolean) values.
35+
return propagate(constants, source);
4236
});

vendor/woodchipper.js renamed to vendor/constants.js

Lines changed: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -17,17 +17,13 @@
1717

1818
var recast = require('recast');
1919

20-
exports.debranch = function(constants, source, writeback) {
21-
recast.runString(
22-
source,
23-
function(ast, callback) {
24-
callback(new Woodchipper(constants).visit(ast));
25-
},
26-
{ writeback: writeback }
27-
);
20+
exports.propagate = function(constants, source) {
21+
var ast = recast.parse(source);
22+
ast = new ConstantVisitor(constants).visit(ast);
23+
return recast.print(ast);
2824
};
2925

30-
var Woodchipper = recast.Visitor.extend({
26+
var ConstantVisitor = recast.Visitor.extend({
3127
init: function(constants) {
3228
this.constants = constants || {};
3329
},
@@ -57,6 +53,6 @@ var Woodchipper = recast.Visitor.extend({
5753
if (!module.parent) {
5854
var constants = JSON.parse(process.argv[3]);
5955
recast.run(function(ast, callback) {
60-
callback(new Woodchipper(constants).visit(ast));
56+
callback(new ConstantVisitor(constants).visit(ast));
6157
});
6258
}

0 commit comments

Comments
 (0)