mirror of
https://github.com/facebook/react.git
synced 2025-11-01 09:12:30 +00:00
Avoid object iteration when creating DOM factories (#7493)
This commit is contained in:
committed by
Ben Alpert
parent
db452bd20b
commit
e5f9ae2705
@@ -13,20 +13,15 @@
|
||||
|
||||
var ReactElement = require('ReactElement');
|
||||
|
||||
var mapObject = require('mapObject');
|
||||
|
||||
/**
|
||||
* Create a factory that creates HTML tag elements.
|
||||
*
|
||||
* @param {string} tag Tag name (e.g. `div`).
|
||||
* @private
|
||||
*/
|
||||
function createDOMFactory(tag) {
|
||||
if (__DEV__) {
|
||||
var ReactElementValidator = require('ReactElementValidator');
|
||||
return ReactElementValidator.createFactory(tag);
|
||||
}
|
||||
return ReactElement.createFactory(tag);
|
||||
var createDOMFactory = ReactElement.createFactory;
|
||||
if (__DEV__) {
|
||||
var ReactElementValidator = require('ReactElementValidator');
|
||||
createDOMFactory = ReactElementValidator.createFactory;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -35,142 +30,141 @@ function createDOMFactory(tag) {
|
||||
*
|
||||
* @public
|
||||
*/
|
||||
var ReactDOMFactories = mapObject({
|
||||
a: 'a',
|
||||
abbr: 'abbr',
|
||||
address: 'address',
|
||||
area: 'area',
|
||||
article: 'article',
|
||||
aside: 'aside',
|
||||
audio: 'audio',
|
||||
b: 'b',
|
||||
base: 'base',
|
||||
bdi: 'bdi',
|
||||
bdo: 'bdo',
|
||||
big: 'big',
|
||||
blockquote: 'blockquote',
|
||||
body: 'body',
|
||||
br: 'br',
|
||||
button: 'button',
|
||||
canvas: 'canvas',
|
||||
caption: 'caption',
|
||||
cite: 'cite',
|
||||
code: 'code',
|
||||
col: 'col',
|
||||
colgroup: 'colgroup',
|
||||
data: 'data',
|
||||
datalist: 'datalist',
|
||||
dd: 'dd',
|
||||
del: 'del',
|
||||
details: 'details',
|
||||
dfn: 'dfn',
|
||||
dialog: 'dialog',
|
||||
div: 'div',
|
||||
dl: 'dl',
|
||||
dt: 'dt',
|
||||
em: 'em',
|
||||
embed: 'embed',
|
||||
fieldset: 'fieldset',
|
||||
figcaption: 'figcaption',
|
||||
figure: 'figure',
|
||||
footer: 'footer',
|
||||
form: 'form',
|
||||
h1: 'h1',
|
||||
h2: 'h2',
|
||||
h3: 'h3',
|
||||
h4: 'h4',
|
||||
h5: 'h5',
|
||||
h6: 'h6',
|
||||
head: 'head',
|
||||
header: 'header',
|
||||
hgroup: 'hgroup',
|
||||
hr: 'hr',
|
||||
html: 'html',
|
||||
i: 'i',
|
||||
iframe: 'iframe',
|
||||
img: 'img',
|
||||
input: 'input',
|
||||
ins: 'ins',
|
||||
kbd: 'kbd',
|
||||
keygen: 'keygen',
|
||||
label: 'label',
|
||||
legend: 'legend',
|
||||
li: 'li',
|
||||
link: 'link',
|
||||
main: 'main',
|
||||
map: 'map',
|
||||
mark: 'mark',
|
||||
menu: 'menu',
|
||||
menuitem: 'menuitem',
|
||||
meta: 'meta',
|
||||
meter: 'meter',
|
||||
nav: 'nav',
|
||||
noscript: 'noscript',
|
||||
object: 'object',
|
||||
ol: 'ol',
|
||||
optgroup: 'optgroup',
|
||||
option: 'option',
|
||||
output: 'output',
|
||||
p: 'p',
|
||||
param: 'param',
|
||||
picture: 'picture',
|
||||
pre: 'pre',
|
||||
progress: 'progress',
|
||||
q: 'q',
|
||||
rp: 'rp',
|
||||
rt: 'rt',
|
||||
ruby: 'ruby',
|
||||
s: 's',
|
||||
samp: 'samp',
|
||||
script: 'script',
|
||||
section: 'section',
|
||||
select: 'select',
|
||||
small: 'small',
|
||||
source: 'source',
|
||||
span: 'span',
|
||||
strong: 'strong',
|
||||
style: 'style',
|
||||
sub: 'sub',
|
||||
summary: 'summary',
|
||||
sup: 'sup',
|
||||
table: 'table',
|
||||
tbody: 'tbody',
|
||||
td: 'td',
|
||||
textarea: 'textarea',
|
||||
tfoot: 'tfoot',
|
||||
th: 'th',
|
||||
thead: 'thead',
|
||||
time: 'time',
|
||||
title: 'title',
|
||||
tr: 'tr',
|
||||
track: 'track',
|
||||
u: 'u',
|
||||
ul: 'ul',
|
||||
'var': 'var',
|
||||
video: 'video',
|
||||
wbr: 'wbr',
|
||||
var ReactDOMFactories = {
|
||||
a: createDOMFactory('a'),
|
||||
abbr: createDOMFactory('abbr'),
|
||||
address: createDOMFactory('address'),
|
||||
area: createDOMFactory('area'),
|
||||
article: createDOMFactory('article'),
|
||||
aside: createDOMFactory('aside'),
|
||||
audio: createDOMFactory('audio'),
|
||||
b: createDOMFactory('b'),
|
||||
base: createDOMFactory('base'),
|
||||
bdi: createDOMFactory('bdi'),
|
||||
bdo: createDOMFactory('bdo'),
|
||||
big: createDOMFactory('big'),
|
||||
blockquote: createDOMFactory('blockquote'),
|
||||
body: createDOMFactory('body'),
|
||||
br: createDOMFactory('br'),
|
||||
button: createDOMFactory('button'),
|
||||
canvas: createDOMFactory('canvas'),
|
||||
caption: createDOMFactory('caption'),
|
||||
cite: createDOMFactory('cite'),
|
||||
code: createDOMFactory('code'),
|
||||
col: createDOMFactory('col'),
|
||||
colgroup: createDOMFactory('colgroup'),
|
||||
data: createDOMFactory('data'),
|
||||
datalist: createDOMFactory('datalist'),
|
||||
dd: createDOMFactory('dd'),
|
||||
del: createDOMFactory('del'),
|
||||
details: createDOMFactory('details'),
|
||||
dfn: createDOMFactory('dfn'),
|
||||
dialog: createDOMFactory('dialog'),
|
||||
div: createDOMFactory('div'),
|
||||
dl: createDOMFactory('dl'),
|
||||
dt: createDOMFactory('dt'),
|
||||
em: createDOMFactory('em'),
|
||||
embed: createDOMFactory('embed'),
|
||||
fieldset: createDOMFactory('fieldset'),
|
||||
figcaption: createDOMFactory('figcaption'),
|
||||
figure: createDOMFactory('figure'),
|
||||
footer: createDOMFactory('footer'),
|
||||
form: createDOMFactory('form'),
|
||||
h1: createDOMFactory('h1'),
|
||||
h2: createDOMFactory('h2'),
|
||||
h3: createDOMFactory('h3'),
|
||||
h4: createDOMFactory('h4'),
|
||||
h5: createDOMFactory('h5'),
|
||||
h6: createDOMFactory('h6'),
|
||||
head: createDOMFactory('head'),
|
||||
header: createDOMFactory('header'),
|
||||
hgroup: createDOMFactory('hgroup'),
|
||||
hr: createDOMFactory('hr'),
|
||||
html: createDOMFactory('html'),
|
||||
i: createDOMFactory('i'),
|
||||
iframe: createDOMFactory('iframe'),
|
||||
img: createDOMFactory('img'),
|
||||
input: createDOMFactory('input'),
|
||||
ins: createDOMFactory('ins'),
|
||||
kbd: createDOMFactory('kbd'),
|
||||
keygen: createDOMFactory('keygen'),
|
||||
label: createDOMFactory('label'),
|
||||
legend: createDOMFactory('legend'),
|
||||
li: createDOMFactory('li'),
|
||||
link: createDOMFactory('link'),
|
||||
main: createDOMFactory('main'),
|
||||
map: createDOMFactory('map'),
|
||||
mark: createDOMFactory('mark'),
|
||||
menu: createDOMFactory('menu'),
|
||||
menuitem: createDOMFactory('menuitem'),
|
||||
meta: createDOMFactory('meta'),
|
||||
meter: createDOMFactory('meter'),
|
||||
nav: createDOMFactory('nav'),
|
||||
noscript: createDOMFactory('noscript'),
|
||||
object: createDOMFactory('object'),
|
||||
ol: createDOMFactory('ol'),
|
||||
optgroup: createDOMFactory('optgroup'),
|
||||
option: createDOMFactory('option'),
|
||||
output: createDOMFactory('output'),
|
||||
p: createDOMFactory('p'),
|
||||
param: createDOMFactory('param'),
|
||||
picture: createDOMFactory('picture'),
|
||||
pre: createDOMFactory('pre'),
|
||||
progress: createDOMFactory('progress'),
|
||||
q: createDOMFactory('q'),
|
||||
rp: createDOMFactory('rp'),
|
||||
rt: createDOMFactory('rt'),
|
||||
ruby: createDOMFactory('ruby'),
|
||||
s: createDOMFactory('s'),
|
||||
samp: createDOMFactory('samp'),
|
||||
script: createDOMFactory('script'),
|
||||
section: createDOMFactory('section'),
|
||||
select: createDOMFactory('select'),
|
||||
small: createDOMFactory('small'),
|
||||
source: createDOMFactory('source'),
|
||||
span: createDOMFactory('span'),
|
||||
strong: createDOMFactory('strong'),
|
||||
style: createDOMFactory('style'),
|
||||
sub: createDOMFactory('sub'),
|
||||
summary: createDOMFactory('summary'),
|
||||
sup: createDOMFactory('sup'),
|
||||
table: createDOMFactory('table'),
|
||||
tbody: createDOMFactory('tbody'),
|
||||
td: createDOMFactory('td'),
|
||||
textarea: createDOMFactory('textarea'),
|
||||
tfoot: createDOMFactory('tfoot'),
|
||||
th: createDOMFactory('th'),
|
||||
thead: createDOMFactory('thead'),
|
||||
time: createDOMFactory('time'),
|
||||
title: createDOMFactory('title'),
|
||||
tr: createDOMFactory('tr'),
|
||||
track: createDOMFactory('track'),
|
||||
u: createDOMFactory('u'),
|
||||
ul: createDOMFactory('ul'),
|
||||
'var': createDOMFactory('var'),
|
||||
video: createDOMFactory('video'),
|
||||
wbr: createDOMFactory('wbr'),
|
||||
|
||||
// SVG
|
||||
circle: 'circle',
|
||||
clipPath: 'clipPath',
|
||||
defs: 'defs',
|
||||
ellipse: 'ellipse',
|
||||
g: 'g',
|
||||
image: 'image',
|
||||
line: 'line',
|
||||
linearGradient: 'linearGradient',
|
||||
mask: 'mask',
|
||||
path: 'path',
|
||||
pattern: 'pattern',
|
||||
polygon: 'polygon',
|
||||
polyline: 'polyline',
|
||||
radialGradient: 'radialGradient',
|
||||
rect: 'rect',
|
||||
stop: 'stop',
|
||||
svg: 'svg',
|
||||
text: 'text',
|
||||
tspan: 'tspan',
|
||||
|
||||
}, createDOMFactory);
|
||||
circle: createDOMFactory('circle'),
|
||||
clipPath: createDOMFactory('clipPath'),
|
||||
defs: createDOMFactory('defs'),
|
||||
ellipse: createDOMFactory('ellipse'),
|
||||
g: createDOMFactory('g'),
|
||||
image: createDOMFactory('image'),
|
||||
line: createDOMFactory('line'),
|
||||
linearGradient: createDOMFactory('linearGradient'),
|
||||
mask: createDOMFactory('mask'),
|
||||
path: createDOMFactory('path'),
|
||||
pattern: createDOMFactory('pattern'),
|
||||
polygon: createDOMFactory('polygon'),
|
||||
polyline: createDOMFactory('polyline'),
|
||||
radialGradient: createDOMFactory('radialGradient'),
|
||||
rect: createDOMFactory('rect'),
|
||||
stop: createDOMFactory('stop'),
|
||||
svg: createDOMFactory('svg'),
|
||||
text: createDOMFactory('text'),
|
||||
tspan: createDOMFactory('tspan'),
|
||||
};
|
||||
|
||||
module.exports = ReactDOMFactories;
|
||||
|
||||
Reference in New Issue
Block a user