Removed unknown tag warning/whitelist.
Jim committed
Jan 8, 2015 at 13:01 UTC
61f7a5613bffaf70b79606654c945a40e744c099
3 files changed
+4
-162
vendor/fbtransform/transforms/__tests__/react-test.js
+4
-15
@@ -19,11 +19,6 @@ describe('react jsx', function() {
19
var transformAll = require('../../syntax.js').transformAll;
20
var xjs = require('../xjs.js');
21
22
- // Add <font-face> to list of known tags to ensure that when we test support
23
- // for hyphentated known tags, it's there.
24
- // TODO: remove this when/if <font-face> is supported out of the box.
25
- xjs.knownTags['font-face'] = true;
26
-
22
var transform = function(code, options, excludes) {
23
return transformAll(
24
code,
@@ -272,13 +267,8 @@ describe('react jsx', function() {
267
268
it('should handle hasOwnProperty correctly', function() {
269
var code = '<hasOwnProperty>testing</hasOwnProperty>;';
275
- // var result = 'React.createElement("hasOwnProperty", null, "testing");';
276
-
277
- // expect(transform(code).code).toBe(result);
278
-
279
- // This is currently not supported, and will generate a string tag in
280
- // a follow up.
281
- expect(() => transform(code)).toThrow();
270
+ var result = 'React.createElement("hasOwnProperty", null, "testing");';
271
+ expect(transform(code).code).toBe(result);
272
});
273
274
it('should allow constructor as prop', function() {
@@ -346,10 +336,9 @@ describe('react jsx', function() {
336
).not.toBeCalled();
337
});
338
349
- it('should throw for unknown hyphenated tags', function() {
339
+ it('should not throw for unknown hyphenated tags', function() {
340
var code = '<x-component />;';
351
-
352
- expect(() => transform(code)).toThrow();
341
+ transform(code); // Asserting it doesn't throw
342
});
343
344
it('calls assign with a new target object for spreads', function() {
vendor/fbtransform/transforms/react.js
-10
@@ -12,7 +12,6 @@
12
var Syntax = require('jstransform').Syntax;
13
var utils = require('jstransform/src/utils');
14
15
-var FALLBACK_TAGS = require('./xjs').knownTags;
15
var renderXJSExpressionContainer =
16
require('./xjs').renderXJSExpressionContainer;
17
var renderXJSLiteral = require('./xjs').renderXJSLiteral;
@@ -58,17 +57,8 @@ function visitReactTag(traverse, object, path, state) {
57
// We assume that the React runtime is already in scope
58
utils.append('React.createElement(', state);
59
61
- // Identifiers with lower case or hypthens are fallback tags (strings).
60
// XJSMemberExpressions are not.
61
if (nameObject.type === Syntax.XJSIdentifier && isTagName(nameObject.name)) {
64
- // This is a temporary error message to assist upgrades
65
- if (!FALLBACK_TAGS.hasOwnProperty(nameObject.name)) {
66
- throw new Error(
67
- 'Lower case component names (' + nameObject.name + ') are no longer ' +
68
- 'supported in JSX: See http://fb.me/react-jsx-lower-case'
69
- );
70
- }
71
-
62
utils.append('"' + nameObject.name + '"', state);
63
utils.move(nameObject.range[1], state);
64
} else {
vendor/fbtransform/transforms/xjs.js
-137
@@ -11,142 +11,6 @@
11
var Syntax = require('jstransform').Syntax;
12
var utils = require('jstransform/src/utils');
13
14
-var knownTags = {
15
- a: true,
16
- abbr: true,
17
- address: true,
18
- applet: true,
19
- area: true,
20
- article: true,
21
- aside: true,
22
- audio: true,
23
- b: true,
24
- base: true,
25
- bdi: true,
26
- bdo: true,
27
- big: true,
28
- blockquote: true,
29
- body: true,
30
- br: true,
31
- button: true,
32
- canvas: true,
33
- caption: true,
34
- circle: true,
35
- cite: true,
36
- code: true,
37
- col: true,
38
- colgroup: true,
39
- command: true,
40
- data: true,
41
- datalist: true,
42
- dd: true,
43
- defs: true,
44
- del: true,
45
- details: true,
46
- dfn: true,
47
- dialog: true,
48
- div: true,
49
- dl: true,
50
- dt: true,
51
- ellipse: true,
52
- em: true,
53
- embed: true,
54
- fieldset: true,
55
- figcaption: true,
56
- figure: true,
57
- footer: true,
58
- form: true,
59
- g: true,
60
- h1: true,
61
- h2: true,
62
- h3: true,
63
- h4: true,
64
- h5: true,
65
- h6: true,
66
- head: true,
67
- header: true,
68
- hgroup: true,
69
- hr: true,
70
- html: true,
71
- i: true,
72
- iframe: true,
73
- img: true,
74
- input: true,
75
- ins: true,
76
- kbd: true,
77
- keygen: true,
78
- label: true,
79
- legend: true,
80
- li: true,
81
- line: true,
82
- linearGradient: true,
83
- link: true,
84
- main: true,
85
- map: true,
86
- mark: true,
87
- marquee: true,
88
- mask: false,
89
- menu: true,
90
- menuitem: true,
91
- meta: true,
92
- meter: true,
93
- nav: true,
94
- noscript: true,
95
- object: true,
96
- ol: true,
97
- optgroup: true,
98
- option: true,
99
- output: true,
100
- p: true,
101
- param: true,
102
- path: true,
103
- pattern: false,
104
- picture: true,
105
- polygon: true,
106
- polyline: true,
107
- pre: true,
108
- progress: true,
109
- q: true,
110
- radialGradient: true,
111
- rect: true,
112
- rp: true,
113
- rt: true,
114
- ruby: true,
115
- s: true,
116
- samp: true,
117
- script: true,
118
- section: true,
119
- select: true,
120
- small: true,
121
- source: true,
122
- span: true,
123
- stop: true,
124
- strong: true,
125
- style: true,
126
- sub: true,
127
- summary: true,
128
- sup: true,
129
- svg: true,
130
- table: true,
131
- tbody: true,
132
- td: true,
133
- text: true,
134
- textarea: true,
135
- tfoot: true,
136
- th: true,
137
- thead: true,
138
- time: true,
139
- title: true,
140
- tr: true,
141
- track: true,
142
- tspan: true,
143
- u: true,
144
- ul: true,
145
- 'var': true,
146
- video: true,
147
- wbr: true
148
-};
149
-
14
function renderXJSLiteral(object, isLast, state, start, end) {
15
var lines = object.value.split(/\r\n|\n|\r/);
16
@@ -241,7 +105,6 @@ function trimLeft(value) {
105
return value.replace(/^[ ]+/, '');
106
}
107
244
-exports.knownTags = knownTags;
108
exports.renderXJSExpressionContainer = renderXJSExpressionContainer;
109
exports.renderXJSLiteral = renderXJSLiteral;
110
exports.quoteAttrName = quoteAttrName;