Skip to content

Commit 3085c5a

Browse files
committed
Patch in facebook/react#1322 and enable ES6/harmony transforms
1 parent a7cc23f commit 3085c5a

File tree

2 files changed

+13
-6
lines changed

2 files changed

+13
-6
lines changed

src/React/JsxTransformer.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -132,7 +132,7 @@ public string TransformJsx(string input)
132132
{
133133
var encodedInput = JsonConvert.SerializeObject(input);
134134
var output = _environment.ExecuteWithLargerStackIfRequired<string>(string.Format(
135-
"global.JSXTransformer.transform({0}).code",
135+
"global.JSXTransformer.transform({0}, {{ harmony: true }}).code",
136136
encodedInput
137137
));
138138
return output;

src/React/Resources/JSXTransformer.js

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11791,7 +11791,7 @@ var headEl;
1179111791

1179211792
var buffer = _dereq_('buffer');
1179311793
var transform = _dereq_('jstransform').transform;
11794-
var visitors = _dereq_('./fbtransform/visitors').transformVisitors;
11794+
var visitors = _dereq_('./fbtransform/visitors');
1179511795
var docblock = _dereq_('jstransform/src/docblock');
1179611796

1179711797
// The source-map library relies on Object.defineProperty, but IE8 doesn't
@@ -11800,16 +11800,23 @@ var docblock = _dereq_('jstransform/src/docblock');
1180011800
// the source map in that case.
1180111801
var supportsAccessors = Object.prototype.hasOwnProperty('__defineGetter__');
1180211802

11803-
function transformReact(source) {
11804-
return transform(visitors.react, source, {
11803+
function transformReact(source, options) {
11804+
var visitorList;
11805+
if (options && options.harmony) {
11806+
visitorList = visitors.getAllVisitors();
11807+
} else {
11808+
visitorList = visitors.transformVisitors.react;
11809+
}
11810+
11811+
return transform(visitorList, source, {
1180511812
sourceMap: supportsAccessors
1180611813
});
1180711814
}
1180811815

1180911816
exports.transform = transformReact;
1181011817

11811-
exports.exec = function(code) {
11812-
return eval(transformReact(code).code);
11818+
exports.exec = function(code, options) {
11819+
return eval(transformReact(code, options).code);
1181311820
};
1181411821

1181511822
var inlineScriptCount = 0;

0 commit comments

Comments
 (0)