if (typeof exports === 'undefined') { exports = {}; } /*http://benchmarkjs.com/docs#options*/ exports.name = 'propTypes'; var Thing = function() {}; var List; var ListItem; var MyReactComponent; var _rootNode; function func() { return 'this is a function'; } exports.setup = function() { List = React.createClass({ propTypes: { array: React.PropTypes.array, bool: React.PropTypes.bool.isRequired, number: React.PropTypes.number, string: React.PropTypes.string.isRequired, func: React.PropTypes.func.isRequired, node: React.PropTypes.node.isRequired, instanceOf: React.PropTypes.instanceOf(Thing).isRequired }, render: function() { return React.DOM.ul(null, this.props.children); } }); ListItem = React.createClass({ propTypes: { array: React.PropTypes.array, bool: React.PropTypes.bool.isRequired, number: React.PropTypes.number, string: React.PropTypes.string.isRequired, func: React.PropTypes.func.isRequired, node: React.PropTypes.node.isRequired, node2: React.PropTypes.node.isRequired, instanceOf: React.PropTypes.instanceOf(Thing).isRequired, element: React.PropTypes.element.isRequired }, render: function() { return React.DOM.li(null, this.props.number + this.props.string + this.props.node ); } }); MyReactComponent = React.createClass({ render: function() { return React.DOM.span(); } }); _rootNode = document.createElement('div'); document.body.appendChild(_rootNode); }; exports.fn = function() { var items = []; for (var i = 0; i < 1000; i++) { items.push(ListItem({ array: [11, 12, 13, 14, 15, 16, 17, 18, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10], bool: false, number: Math.random(), string: 'banana banana banana', func: func, node: 'renderable string', node2: [MyReactComponent(), 'a string'], instanceOf: new Thing(), element: MyReactComponent() })); } React.render(List({ array: [11, 12, 13, 14, 15, 16, 17, 18, 19, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10], bool: false, number: Math.random(), string: 'banana banana banana', func: func, renderable: 'renderable string', instanceOf: new Thing() }, items), _rootNode); }; exports.teardown = function() { React.unmountComponentAtNode(_rootNode); };