Disable source maps when defineProperty is missing
Fixes #1053.
Ben Alpert committed
Feb 11, 2014 at 00:08 UTC
89bcecc76ffaa738099e0c217f8846e60edb1b44
1 file changed
+13
-1
vendor/browser-transforms.js
+13
-1
@@ -25,8 +25,16 @@ var transform = require('jstransform').transform;
25
var visitors = require('./fbtransform/visitors').transformVisitors;
26
var docblock = require('jstransform/src/docblock');
27
28
+// The source-map library relies on Object.defineProperty, but IE8 doesn't
29
+// support it fully even with es5-sham. Indeed, es5-sham's defineProperty
30
+// throws when Object.prototype.__defineGetter__ is missing, so we skip building
31
+// the source map in that case.
32
+var supportsAccessors = Object.prototype.hasOwnProperty('__defineGetter__');
33
+
34
function transformReact(source) {
29
- return transform(visitors.react, source, {sourceMap: true});
35
+ return transform(visitors.react, source, {
36
+ sourceMap: supportsAccessors
37
+ });
38
}
39
40
exports.transform = transformReact;
@@ -97,6 +105,10 @@ var transformCode = function(code, source) {
105
throw e;
106
}
107
108
+ if (!transformed.sourceMap) {
109
+ return transformed.code;
110
+ }
111
+
112
var map = transformed.sourceMap.toJSON();
113
if (source == null) {
114
source = "Inline JSX script";