mirror of
https://github.com/zebrajr/react.git
synced 2025-12-06 12:20:20 +01:00
Add --harmony option to jsx.
This commit is contained in:
parent
1f5c8d21d8
commit
8dbc530d1c
19
bin/jsx
19
bin/jsx
|
|
@ -2,14 +2,23 @@
|
||||||
// -*- mode: js -*-
|
// -*- mode: js -*-
|
||||||
"use strict";
|
"use strict";
|
||||||
|
|
||||||
var visitors = require('../vendor/fbtransform/visitors').transformVisitors;
|
var visitors = require('../vendor/fbtransform/visitors');
|
||||||
var transform = require('jstransform').transform;
|
var transform = require('jstransform').transform;
|
||||||
|
|
||||||
require("commoner").version(
|
require('commoner').version(
|
||||||
require("../package.json").version
|
require('../package.json').version
|
||||||
).resolve(function(id) {
|
).resolve(function(id) {
|
||||||
return this.readModuleP(id);
|
return this.readModuleP(id);
|
||||||
}).process(function(id, source) {
|
}).option(
|
||||||
|
'--harmony',
|
||||||
|
'Turns on JS transformations such as ES6 Classes etc.'
|
||||||
|
).process(function(id, source) {
|
||||||
// This is where JSX, ES6, etc. desugaring happens.
|
// This is where JSX, ES6, etc. desugaring happens.
|
||||||
return transform(visitors.react, source).code;
|
var visitorList;
|
||||||
|
if (this.options.harmony) {
|
||||||
|
visitorList = visitors.getAllVisitors();
|
||||||
|
} else {
|
||||||
|
visitorList = visitors.transformVisitors.react;
|
||||||
|
}
|
||||||
|
return transform(visitorList, source).code;
|
||||||
});
|
});
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,7 @@
|
||||||
// -*- mode: js -*-
|
// -*- mode: js -*-
|
||||||
"use strict";
|
"use strict";
|
||||||
|
|
||||||
var getVisitorsList = require('../vendor/fbtransform/visitors').getVisitorsList;
|
var getAllVisitors = require('../vendor/fbtransform/visitors').getAllVisitors;
|
||||||
var transform = require('jstransform').transform;
|
var transform = require('jstransform').transform;
|
||||||
var propagate = require("../vendor/constants").propagate;
|
var propagate = require("../vendor/constants").propagate;
|
||||||
|
|
||||||
|
|
@ -31,7 +31,7 @@ require("commoner").version(
|
||||||
var constants = context.config.constants || {};
|
var constants = context.config.constants || {};
|
||||||
|
|
||||||
// This is where JSX, ES6, etc. desugaring happens.
|
// This is where JSX, ES6, etc. desugaring happens.
|
||||||
source = transform(getVisitorsList(), source).code;
|
source = transform(getAllVisitors(), source).code;
|
||||||
|
|
||||||
// Constant propagation means removing any obviously dead code after
|
// Constant propagation means removing any obviously dead code after
|
||||||
// replacing constant expressions with literal (boolean) values.
|
// replacing constant expressions with literal (boolean) values.
|
||||||
|
|
|
||||||
|
|
@ -33,7 +33,7 @@
|
||||||
"url": "https://github.com/facebook/react"
|
"url": "https://github.com/facebook/react"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"commoner": "~0.8.12",
|
"commoner": "~0.8.13",
|
||||||
"esprima-fb": "~2001.1001.0-dev-harmony-fb",
|
"esprima-fb": "~2001.1001.0-dev-harmony-fb",
|
||||||
"jstransform": "~2.0.2"
|
"jstransform": "~2.0.2"
|
||||||
},
|
},
|
||||||
|
|
|
||||||
4
vendor/fbtransform/visitors.js
vendored
4
vendor/fbtransform/visitors.js
vendored
|
|
@ -41,7 +41,7 @@ var transformRunOrder = [
|
||||||
* @param {array?} excludes
|
* @param {array?} excludes
|
||||||
* @return {array}
|
* @return {array}
|
||||||
*/
|
*/
|
||||||
function getVisitorsList(excludes) {
|
function getAllVisitors(excludes) {
|
||||||
var ret = [];
|
var ret = [];
|
||||||
for (var i = 0, il = transformRunOrder.length; i < il; i++) {
|
for (var i = 0, il = transformRunOrder.length; i < il; i++) {
|
||||||
if (!excludes || excludes.indexOf(transformRunOrder[i]) === -1) {
|
if (!excludes || excludes.indexOf(transformRunOrder[i]) === -1) {
|
||||||
|
|
@ -51,5 +51,5 @@ function getVisitorsList(excludes) {
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
exports.getVisitorsList = getVisitorsList;
|
exports.getAllVisitors = getAllVisitors;
|
||||||
exports.transformVisitors = transformVisitors;
|
exports.transformVisitors = transformVisitors;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user