Disable source maps when defineProperty is missing

Fixes #1053.
This commit is contained in:
Ben Alpert
2014-02-11 00:10:06 -08:00
parent 0f4cc6ee84
commit 89bcecc76f
+13 -1
View File
@@ -25,8 +25,16 @@ var transform = require('jstransform').transform;
var visitors = require('./fbtransform/visitors').transformVisitors;
var docblock = require('jstransform/src/docblock');
// The source-map library relies on Object.defineProperty, but IE8 doesn't
// support it fully even with es5-sham. Indeed, es5-sham's defineProperty
// throws when Object.prototype.__defineGetter__ is missing, so we skip building
// the source map in that case.
var supportsAccessors = Object.prototype.hasOwnProperty('__defineGetter__');
function transformReact(source) {
return transform(visitors.react, source, {sourceMap: true});
return transform(visitors.react, source, {
sourceMap: supportsAccessors
});
}
exports.transform = transformReact;
@@ -97,6 +105,10 @@ var transformCode = function(code, source) {
throw e;
}
if (!transformed.sourceMap) {
return transformed.code;
}
var map = transformed.sourceMap.toJSON();
if (source == null) {
source = "Inline JSX script";