diff --git a/src/core/ReactDOM.js b/src/core/ReactDOM.js index 7a73090125b0..8e4b8de1206a 100644 --- a/src/core/ReactDOM.js +++ b/src/core/ReactDOM.js @@ -39,7 +39,8 @@ var objMapKeyVal = require('objMapKeyVal'); * @param {boolean} omitClose True if the close tag should be omitted. * @private */ -function createDOMComponentClass(tag, omitClose) { +function createDOMComponentClass(name, options) { + var tag = options[0], omitClose = options[1]; var Constructor = function() {}; Constructor.prototype = new ReactDOMComponent(tag, omitClose); Constructor.prototype.constructor = Constructor; @@ -61,126 +62,126 @@ function createDOMComponentClass(tag, omitClose) { * @public */ var ReactDOM = objMapKeyVal({ - a: false, - abbr: false, - address: false, - area: false, - article: false, - aside: false, - audio: false, - b: false, - base: false, - bdi: false, - bdo: false, - big: false, - blockquote: false, - body: false, - br: true, - button: false, - canvas: false, - caption: false, - cite: false, - code: false, - col: true, - colgroup: false, - data: false, - datalist: false, - dd: false, - del: false, - details: false, - dfn: false, - div: false, - dl: false, - dt: false, - em: false, - embed: true, - fieldset: false, - figcaption: false, - figure: false, - footer: false, - form: false, // NOTE: Injected, see `ReactDOMForm`. - h1: false, - h2: false, - h3: false, - h4: false, - h5: false, - h6: false, - head: false, - header: false, - hr: true, - html: false, - i: false, - iframe: false, - img: true, - input: true, - ins: false, - kbd: false, - keygen: true, - label: false, - legend: false, - li: false, - link: false, - main: false, - map: false, - mark: false, - menu: false, - menuitem: false, // NOTE: Close tag should be omitted, but causes problems. - meta: true, - meter: false, - nav: false, - noscript: false, - object: false, - ol: false, - optgroup: false, - option: false, - output: false, - p: false, - param: true, - pre: false, - progress: false, - q: false, - rp: false, - rt: false, - ruby: false, - s: false, - samp: false, - script: false, - section: false, - select: false, - small: false, - source: false, - span: false, - strong: false, - style: false, - sub: false, - summary: false, - sup: false, - table: false, - tbody: false, - td: false, - textarea: false, // NOTE: Injected, see `ReactDOMTextarea`. - tfoot: false, - th: false, - thead: false, - time: false, - title: false, - tr: false, - track: true, - u: false, - ul: false, - 'var': false, - video: false, - wbr: false, + a: ['a', false], + abbr: ['abbr', false], + address: ['address', false], + area: ['area', false], + article: ['article', false], + aside: ['aside', false], + audio: ['audio', false], + b: ['b', false], + base: ['base', false], + bdi: ['bdi', false], + bdo: ['bdo', false], + big: ['big', false], + blockquote: ['blockquote', false], + body: ['body', false], + br: ['br', true], + button: ['button', false], + canvas: ['canvas', false], + caption: ['caption', false], + cite: ['cite', false], + code: ['code', false], + col: ['col', true], + colgroup: ['colgroup', false], + data: ['data', false], + datalist: ['datalist', false], + dd: ['dd', false], + del: ['del', false], + details: ['details', false], + dfn: ['dfn', false], + div: ['div', false], + dl: ['dl', false], + dt: ['dt', false], + em: ['em', false], + embed: ['embed', true], + fieldset: ['fieldset', false], + figcaption: ['figcaption', false], + figure: ['figure', false], + footer: ['footer', false], + form: ['form', false], // NOTE: Injected, see `ReactDOMForm`. + h1: ['h1', false], + h2: ['h2', false], + h3: ['h3', false], + h4: ['h4', false], + h5: ['h5', false], + h6: ['h6', false], + head: ['head', false], + header: ['header', false], + hr: ['hr', true], + html: ['html', false], + i: ['i', false], + iframe: ['iframe', false], + img: ['img', true], + input: ['input', true], + ins: ['ins', false], + kbd: ['kbd', false], + keygen: ['keygen', true], + label: ['label', false], + legend: ['legend', false], + li: ['li', false], + link: ['link', false], + main: ['main', false], + map: ['map', false], + mark: ['mark', false], + menu: ['menu', false], + menuitem: ['menuitem', false], // NOTE: Close tag should be omitted, but causes problems. + meta: ['meta', true], + meter: ['meter', false], + nav: ['nav', false], + noscript: ['noscript', false], + object: ['object', false], + ol: ['ol', false], + optgroup: ['optgroup', false], + option: ['option', false], + output: ['output', false], + p: ['p', false], + param: ['param', true], + pre: ['pre', false], + progress: ['progress', false], + q: ['q', false], + rp: ['rp', false], + rt: ['rt', false], + ruby: ['ruby', false], + s: ['s', false], + samp: ['samp', false], + script: ['script', false], + section: ['section', false], + select: ['select', false], + small: ['small', false], + source: ['source', false], + span: ['span', false], + strong: ['strong', false], + style: ['style', false], + sub: ['sub', false], + summary: ['summary', false], + sup: ['sup', false], + table: ['table', false], + tbody: ['tbody', false], + td: ['td', false], + textarea: ['textarea', false], // NOTE: Injected, see `ReactDOMTextarea`. + tfoot: ['tfoot', false], + th: ['th', false], + thead: ['thead', false], + time: ['time', false], + title: ['title', false], + tr: ['tr', false], + track: ['track', true], + u: ['u', false], + ul: ['ul', false], + 'var': ['var', false], + video: ['video', false], + wbr: ['wbr', false], // SVG - circle: false, - g: false, - line: false, - path: false, - polyline: false, - rect: false, - svg: false, - text: false + circle: ['circle', false], + g: ['g', false], + line: ['line', false], + path: ['path', false], + polyline: ['polyline', false], + rect: ['rect', false], + svg: ['svg', false], + text: ['text', false] }, createDOMComponentClass); var injection = {