Support more properties for image maps
Supporting the `<area>` tag is pretty useless if we don't support the necessary properties.
Paul O'Shannessy committed
Jun 30, 2014 at 20:53 UTC
5b17e757070cc8ee4ffb7cb064195588db75e4e6
2 files changed
+141
src/browser/ui/dom/HTMLDOMPropertyConfig.js
+3
@@ -82,6 +82,7 @@ var HTMLDOMPropertyConfig = {
82
contentEditable: null,
83
contextMenu: MUST_USE_ATTRIBUTE,
84
controls: MUST_USE_PROPERTY | HAS_BOOLEAN_VALUE,
85
+ coords: null,
86
crossOrigin: null,
87
data: null, // For `<object />` acts as `src`.
88
dateTime: MUST_USE_ATTRIBUTE,
@@ -133,6 +134,7 @@ var HTMLDOMPropertyConfig = {
134
scrollTop: MUST_USE_PROPERTY,
135
seamless: MUST_USE_ATTRIBUTE | HAS_BOOLEAN_VALUE,
136
selected: MUST_USE_PROPERTY | HAS_BOOLEAN_VALUE,
137
+ shape: null,
138
size: MUST_USE_ATTRIBUTE | HAS_POSITIVE_NUMERIC_VALUE,
139
span: HAS_POSITIVE_NUMERIC_VALUE,
140
spellCheck: null,
@@ -146,6 +148,7 @@ var HTMLDOMPropertyConfig = {
148
target: null,
149
title: null,
150
type: null,
151
+ useMap: null,
152
value: MUST_USE_PROPERTY | HAS_SIDE_EFFECTS,
153
width: MUST_USE_ATTRIBUTE,
154
wmode: MUST_USE_ATTRIBUTE,
vendor/fbtransform/transforms/__tests__/react-displayName-test.js
new
+138
@@ -0,0 +1,138 @@
1
+/**
2
+ * Copyright 2004-present Facebook. All Rights Reserved.
3
+ *
4
+ * @emails jeffmo@fb.com
5
+ */
6
+"use strict";
7
+
8
+require('mock-modules').autoMockOff();
9
+
10
+var transformAll = require('../../syntax.js').transformAll;
11
+
12
+function transform(source) {
13
+ return transformAll(source, {}, ['allocate']);
14
+}
15
+
16
+describe('react displayName jsx', function() {
17
+
18
+ it('should only inject displayName if missing', function() {
19
+ var code = [
20
+ '/** @jsx React.DOM */',
21
+ '"use strict";',
22
+ 'var Whateva = React.createClass({',
23
+ ' displayName: \'Whateva\',',
24
+ ' render: function() {',
25
+ ' return <div className=\'whateva\'>...whateva.</div>;',
26
+ ' }',
27
+ '});'
28
+ ].join('\n');
29
+
30
+ var result = [
31
+ '/** @jsx React.DOM */',
32
+ '"use strict";',
33
+ 'var Whateva = React.createClass({',
34
+ ' displayName: \'Whateva\',',
35
+ ' render: function() {',
36
+ ' return React.DOM.div({className: "whateva"}, "...whateva.");',
37
+ ' }',
38
+ '});'
39
+ ].join('\n');
40
+
41
+ expect(transform(code).code).toEqual(result);
42
+ });
43
+
44
+ it('should inject displayName in simple assignment', () => {
45
+ var code = [
46
+ '/** @jsx React.DOM */',
47
+ 'var Component = React.createClass({',
48
+ ' render: function() {',
49
+ ' return <div/>;',
50
+ ' }',
51
+ '});'
52
+ ].join('\n');
53
+
54
+ var result = [
55
+ '/** @jsx React.DOM */',
56
+ 'var Component = React.createClass({displayName: \'Component\',',
57
+ ' render: function() {',
58
+ ' return React.DOM.div(null);',
59
+ ' }',
60
+ '});'
61
+ ].join('\n');
62
+
63
+ expect(transform(code).code).toEqual(result);
64
+ });
65
+
66
+ it('should inject displayName in simple assignment without var', () => {
67
+ var code = [
68
+ '/** @jsx React.DOM */',
69
+ 'var Component;',
70
+ 'Component = React.createClass({',
71
+ ' render: function() {',
72
+ ' return <div/>;',
73
+ ' }',
74
+ '});'
75
+ ].join('\n');
76
+
77
+ var result = [
78
+ '/** @jsx React.DOM */',
79
+ 'var Component;',
80
+ 'Component = React.createClass({displayName: \'Component\',',
81
+ ' render: function() {',
82
+ ' return React.DOM.div(null);',
83
+ ' }',
84
+ '});'
85
+ ].join('\n');
86
+
87
+ expect(transform(code).code).toEqual(result);
88
+ });
89
+
90
+ it('should inject displayName in property assignment', () => {
91
+ var code = [
92
+ '/** @jsx React.DOM */',
93
+ 'exports.Component = React.createClass({',
94
+ ' render: function() {',
95
+ ' return <div/>;',
96
+ ' }',
97
+ '});'
98
+ ].join('\n');
99
+
100
+ var result = [
101
+ '/** @jsx React.DOM */',
102
+ 'exports.Component = React.createClass({displayName: \'Component\',',
103
+ ' render: function() {',
104
+ ' return React.DOM.div(null);',
105
+ ' }',
106
+ '});'
107
+ ].join('\n');
108
+
109
+ expect(transform(code).code).toEqual(result);
110
+ });
111
+
112
+ it('should inject displayName in object declaration', () => {
113
+ var code = [
114
+ '/** @jsx React.DOM */',
115
+ 'exports = {',
116
+ ' Component: React.createClass({',
117
+ ' render: function() {',
118
+ ' return <div/>;',
119
+ ' }',
120
+ ' })',
121
+ '};'
122
+ ].join('\n');
123
+
124
+ var result = [
125
+ '/** @jsx React.DOM */',
126
+ 'exports = {',
127
+ ' Component: React.createClass({displayName: \'Component\',',
128
+ ' render: function() {',
129
+ ' return React.DOM.div(null);',
130
+ ' }',
131
+ ' })',
132
+ '};'
133
+ ].join('\n');
134
+
135
+ expect(transform(code).code).toEqual(result);
136
+ });
137
+
138
+});