Skip to content

Commit 8dbc530

Browse files
committed
Add --harmony option to jsx.
1 parent 1f5c8d2 commit 8dbc530

File tree

4 files changed

+19
-10
lines changed

4 files changed

+19
-10
lines changed

bin/jsx

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,23 @@
22
// -*- mode: js -*-
33
"use strict";
44

5-
var visitors = require('../vendor/fbtransform/visitors').transformVisitors;
5+
var visitors = require('../vendor/fbtransform/visitors');
66
var transform = require('jstransform').transform;
77

8-
require("commoner").version(
9-
require("../package.json").version
8+
require('commoner').version(
9+
require('../package.json').version
1010
).resolve(function(id) {
1111
return this.readModuleP(id);
12-
}).process(function(id, source) {
12+
}).option(
13+
'--harmony',
14+
'Turns on JS transformations such as ES6 Classes etc.'
15+
).process(function(id, source) {
1316
// This is where JSX, ES6, etc. desugaring happens.
14-
return transform(visitors.react, source).code;
17+
var visitorList;
18+
if (this.options.harmony) {
19+
visitorList = visitors.getAllVisitors();
20+
} else {
21+
visitorList = visitors.transformVisitors.react;
22+
}
23+
return transform(visitorList, source).code;
1524
});

bin/jsx-internal

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
// -*- mode: js -*-
33
"use strict";
44

5-
var getVisitorsList = require('../vendor/fbtransform/visitors').getVisitorsList;
5+
var getAllVisitors = require('../vendor/fbtransform/visitors').getAllVisitors;
66
var transform = require('jstransform').transform;
77
var propagate = require("../vendor/constants").propagate;
88

@@ -31,7 +31,7 @@ require("commoner").version(
3131
var constants = context.config.constants || {};
3232

3333
// This is where JSX, ES6, etc. desugaring happens.
34-
source = transform(getVisitorsList(), source).code;
34+
source = transform(getAllVisitors(), source).code;
3535

3636
// Constant propagation means removing any obviously dead code after
3737
// replacing constant expressions with literal (boolean) values.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@
3333
"url": "https://github.com/facebook/react"
3434
},
3535
"dependencies": {
36-
"commoner": "~0.8.12",
36+
"commoner": "~0.8.13",
3737
"esprima-fb": "~2001.1001.0-dev-harmony-fb",
3838
"jstransform": "~2.0.2"
3939
},

vendor/fbtransform/visitors.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ var transformRunOrder = [
4141
* @param {array?} excludes
4242
* @return {array}
4343
*/
44-
function getVisitorsList(excludes) {
44+
function getAllVisitors(excludes) {
4545
var ret = [];
4646
for (var i = 0, il = transformRunOrder.length; i < il; i++) {
4747
if (!excludes || excludes.indexOf(transformRunOrder[i]) === -1) {
@@ -51,5 +51,5 @@ function getVisitorsList(excludes) {
5151
return ret;
5252
}
5353

54-
exports.getVisitorsList = getVisitorsList;
54+
exports.getAllVisitors = getAllVisitors;
5555
exports.transformVisitors = transformVisitors;

0 commit comments

Comments
 (0)