diff --git a/.travis.yml b/.travis.yml
index 5a9ee9963a..79c803fab7 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -49,7 +49,6 @@ matrix:
fast_finish: true
allow_failures:
- env: TEST_TYPE=test:coverage
- - env: TEST_TYPE=perf:full
- env: TEST_TYPE=test:webdriver:saucelabs:modern
- env: TEST_TYPE=test:webdriver:saucelabs BROWSER_NAME=ie11
- env: TEST_TYPE=test:webdriver:saucelabs BROWSER_NAME=ie10
diff --git a/Gruntfile.js b/Gruntfile.js
index 1a95ef0c1d..d3ad43e8cc 100644
--- a/Gruntfile.js
+++ b/Gruntfile.js
@@ -24,7 +24,6 @@ module.exports = function(grunt) {
populist: require('./grunt/config/populist')(grunt),
connect: require('./grunt/config/server')(grunt),
'webdriver-jasmine': require('./grunt/config/webdriver-jasmine'),
- 'webdriver-perf': require('./grunt/config/webdriver-perf'),
npm: require('./grunt/config/npm'),
clean: [
'./build',
@@ -79,8 +78,6 @@ module.exports = function(grunt) {
grunt.registerMultiTask('webdriver-jasmine', webdriverJasmineTasks);
- grunt.registerMultiTask('webdriver-perf', require('./grunt/tasks/webdriver-perf'));
-
grunt.registerMultiTask('npm', npmTask);
grunt.registerTask('npm-react:release', npmReactTasks.buildRelease);
@@ -119,14 +116,6 @@ module.exports = function(grunt) {
'version-check',
'browserify:withCodeCoverageLogging'
]);
- grunt.registerTask('build:perf', [
- 'jsx:normal',
- 'version-check',
- 'browserify:transformer',
- 'browserify:basic',
- 'browserify:min',
- 'download-previous-version'
- ]);
grunt.registerTask('build:test', [
'delete-build-modules',
'jsx:test',
@@ -153,12 +142,6 @@ module.exports = function(grunt) {
'webdriver-jasmine:local'
]);
- grunt.registerTask('perf:webdriver:phantomjs', [
- 'connect',
- 'webdriver-phantomjs',
- 'webdriver-perf:local'
- ]);
-
grunt.registerTask('test:full', [
'build:test',
'build:basic',
@@ -173,20 +156,6 @@ module.exports = function(grunt) {
'webdriver-jasmine:saucelabs_chrome'
]);
- grunt.registerTask('perf:full', [
- 'build:perf',
-
- 'connect',
- 'webdriver-phantomjs',
- 'webdriver-perf:local',
-
- 'sauce-tunnel',
- 'webdriver-perf:saucelabs_firefox',
- 'webdriver-perf:saucelabs_chrome',
- 'webdriver-perf:saucelabs_ie11',
- 'webdriver-perf:saucelabs_ie8'
- ]);
-
grunt.registerTask('test:webdriver:saucelabs', [
'build:test',
'build:basic',
@@ -251,7 +220,6 @@ module.exports = function(grunt) {
grunt.task.run('build:test', 'build:basic', 'test:webdriver:phantomjs');
}
});
- grunt.registerTask('perf', ['build:perf', 'perf:webdriver:phantomjs']);
grunt.registerTask('npm:test', ['build', 'npm:pack']);
// Optimized build task that does all of our builds. The subtasks will be run
diff --git a/grunt/config/webdriver-perf.js b/grunt/config/webdriver-perf.js
deleted file mode 100644
index 476155bdcf..0000000000
--- a/grunt/config/webdriver-perf.js
+++ /dev/null
@@ -1,55 +0,0 @@
-'use strict';
-
-var grunt = require('grunt');
-var path = require('path');
-
-var tests = grunt.file.expand(path.join(__dirname, '/../../perf/tests/*'));
-
-var maxTime = 5;
-
-var reactVersions = [
- 'edge',
- 'previous'
-];
-
-var params = []
- .concat('headless=false')
- .concat('maxTime=' + maxTime)
- .concat(tests
- .map(function(testPath) {
- return testPath.split(/tests./i).reverse()[0];
- })
- .map(encodeURIComponent)
- .map(function(filename) {
- return 'test=' + filename;
- })
- )
- .concat(reactVersions
- .map(encodeURIComponent)
- .map(function(version) {
- return 'react=' + version;
- }
- )
-);
-
-module.exports = require('./webdriver-all')({
-
- url: 'http://127.0.0.1:9999/perf/index.html?' + params.join('&'),
-
- isDoneTimeout: 15 * 60 * 1000,
-
- onStart: function() {
- grunt.event.on('perf results', function(results) {
- console.log(results);
- });
- },
-
- onComplete: function(completedTestKeys) {
- grunt.verbose.writeln('onComplete ' + JSON.stringify(completedTestKeys));
- },
-
- onError: function(error) {
- grunt.fatal(error);
- }
-
-});
diff --git a/grunt/tasks/webdriver-perf.js b/grunt/tasks/webdriver-perf.js
deleted file mode 100644
index 240a13b54d..0000000000
--- a/grunt/tasks/webdriver-perf.js
+++ /dev/null
@@ -1,20 +0,0 @@
-'use strict';
-
-var grunt = require('grunt');
-
-module.exports = function() {
- return require('./webdriver-all').call(this, function(config, wd, browser) {
- if (!config.isDoneTimeout) {
- grunt.verbose.writeln('Expected isDoneTimeout config, using default value');
- }
- grunt.verbose.writeln('isDoneTimeout:' + config.isDoneTimeout);
- return browser
- .waitFor(wd.asserters.jsCondition('window.isDone === false'), 5e3, 50)
- .fail(function(error) {
- throw Error('The test page didn\'t load properly. ' + error);
- })
- .waitFor(wd.asserters.jsCondition('window.isDone === true'), config.isDoneTimeout || 30e3, 1e3)
- .waitFor(wd.asserters.jsCondition('window.postDataToURL.running <= 0'), 30e3, 500)
- .eval('window.completedTestKeys || window._unhandledError');
- });
-};
diff --git a/perf/.eslintrc b/perf/.eslintrc
deleted file mode 100644
index ba63cd1d14..0000000000
--- a/perf/.eslintrc
+++ /dev/null
@@ -1,21 +0,0 @@
-globals:
- document: true
- window: true
- Benchmark: true
- React: true
- _rootNode: true
- todolist: true
- _app: true
- _todo1: true
- _todo2: true
- _todo3: true
- _timesToRun: true
- setState: true
-
-rules:
- strict: false
- no-undef: false
- no-unused-vars: false
- block-scoped-var: false
- consistent-return: false
- no-shadow: false
diff --git a/perf/index.html b/perf/index.html
deleted file mode 100644
index 1808c3f15d..0000000000
--- a/perf/index.html
+++ /dev/null
@@ -1,67 +0,0 @@
-
-
-
Perf Tests
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/perf/lib/BrowserPerfRunnerApp.react.js b/perf/lib/BrowserPerfRunnerApp.react.js
deleted file mode 100644
index 5579fe749c..0000000000
--- a/perf/lib/BrowserPerfRunnerApp.react.js
+++ /dev/null
@@ -1,219 +0,0 @@
-var BrowserPerfRunnerApp = React.createClass({
-
- propTypes: {
- tests: React.PropTypes.array.isRequired,
- react: React.PropTypes.array.isRequired,
- maxTime: React.PropTypes.number,
- onCompleteEach: React.PropTypes.func,
- onComplete: React.PropTypes.func,
- onError: React.PropTypes.func,
- headless: React.PropTypes.bool
- },
-
- getInitialState: function() {
- var queue = [];
- this.props.tests.forEach(function(testName) {
- this.props.react.forEach(function(version) {
- queue.push({
- test: testName,
- react: version
- });
- }, this);
- }, this);
- return {
- queue: queue,
- results: {}
- };
- },
-
- handleResults: function(results) {
- this.state.results[results.test + '@' + results.react] = results;
- this.replaceState(this.state);
- },
-
- handleComplete: function(queueItem) {
- queueItem.completed = true;
-
- if (!this.props.onCompleteEach) {
- return;
- }
- // Can't get the resultsForAllVersions if there are still some queued
- var incompleteCount = 0;
- for (var index = this.state.queue.length; --index >= 0;) {
- if (this.state.queue[index].completed) {
- continue;
- }
- if (this.state.queue[index].test === queueItem.test) {
- return;
- }
- incompleteCount++;
- }
- var resultsForAllVersions = Object.keys(this.state.results)
- .filter(function(key) {
- return key.indexOf(queueItem.test) === 0;
- })
- .map(function(key) {
- return this.state.results[key];
- }, this);
- this.props.onCompleteEach(resultsForAllVersions);
-
- if (this.props.onComplete && incompleteCount === 0) {
- this.props.onComplete(this.state.results);
- }
- },
-
- render: function() {
- var grid = null;
-
- if (!this.props.headless) {
- grid = GridViewTable({
- rows: this.props.tests,
- cols: this.props.react,
- renderCell: BrowserPerfRunnerApp.renderBenchmarkCell,
- value: this.state.results
- });
- }
-
- return React.DOM.div(null,
- BenchmarkQueue({
- initialQueue: this.state.queue,
- onChange: this.handleResults,
- maxTime: this.props.maxTime,
- onCompleteEach: this.handleComplete,
- onError: this.props.onError
- }),
- grid
- );
- }
-});
-
-BrowserPerfRunnerApp.renderBenchmarkCell = function(props, row, col) {
- if (col == null && row == null) {
- return React.DOM.th(null);
- }
- if (row == null) {
- return React.DOM.th({style:{verticalAlign:'top', textAlign:'center'}}, col);
- }
-
- var benchmarks = Object.keys(props.value)
- .filter(function(key) {
- return key.indexOf(row) === 0;
- })
- .map(function(key) {
- return props.value[key];
- })
- .filter(function(benchmark) {
- return benchmark && !benchmark.isRunning && benchmark.stats;
- });
-
- if (col == null) {
- return React.DOM.th({style:{verticalAlign:'top', textAlign:'right'}},
- React.DOM.a({href:'?test=' + row}, benchmarks[0] && benchmarks[0].name || row)
- );
- }
-
- var key = row + '@' + col;
- var benchmark = props.value[key];
- if (!(benchmark && benchmark.stats)) {
- return React.DOM.td({key:key});
- }
-
-
- var colors = [
- '000000',
- 'AA0000',
- '00AA00',
- 'AA5500',
- '0000AA',
- 'AA00AA',
- '00AAAA',
- 'AAAAAA',
-
- '555555',
- 'FF5555',
- '55FF55',
- 'FFFF55',
- '5555FF',
- 'FF55FF',
- '55FFFF',
- 'FFFFFF'
- ];
-
- function chartValue(value) {
- return Math.round(valueFromRangeToRange(value, chartValue.min, chartValue.max, 0, 100));
- }
- chartValue.min = Math.min.apply(Math, benchmarks.map(function(benchmark) {
- return Math.min.apply(Math, benchmark.stats.sample);
- }));
- chartValue.max = Math.max.apply(Math, benchmarks.map(function(benchmark) {
- return Math.max.apply(Math, benchmark.stats.sample);
- }));
-
- var means = benchmarks.map(function(benchmark) {
- return benchmark.stats.mean;
- });
- benchmarks.forEach(function(benchmark) {
- benchmark.isTheWinner = benchmark.stats.mean <= Math.min.apply(Math, means);
- });
-
- var chartValues = benchmarks.map(function(benchmark) {
- // benchmark.stats.sample.sort(function(a,b) {return b - a;});
- return benchmark.stats.sample.map(chartValue).join(',');
- }).join('|');
-
- return (
- React.DOM.td({key:key, style:{textAlign:'center', width:234, verticalAlign:'top'}},
- benchmark.error && benchmark.error.message || '',
- React.DOM.div({style: benchmark.isTheWinner ? {backgroundColor:'#0A5', color:'#AFA'} : {backgroundColor:'transparent', color:'inherit'}},
- Math.round(1 / benchmark.stats.mean * 100) / 100, ' op/s ',
- React.DOM.strong(null, Math.round(benchmark.stats.mean * 1000 * 100) / 100, ' ms/op '),
- React.DOM.small(null, '(±' + (Math.round(benchmark.stats.rme * 10) / 10) + '%)')
- ),
- benchmark.isRunning && 'Running' || React.DOM.img({
- style: {
- borderWidth: 2,
- borderStyle: 'solid',
- color: '#' + colors[benchmarks.indexOf(benchmark)]
- },
- width: 230,
- height: 50,
- src: 'https://chart.googleapis.com/chart?cht=ls&chs=460x100&chd=t:' + chartValues + '&chco=' + colors.join(',')
- })
- )
- );
-};
-
-function valueFromRangeToRange(value, fromMin, fromMax, toMin, toMax) {
- var fromRange = fromMax - fromMin;
- var toRange = toMax - toMin;
- return (((value - fromMin) * toRange) / fromRange) + toMin;
-}
-
-var GridViewTable = React.createClass({
-
- propTypes: {
- rows: React.PropTypes.array.isRequired,
- cols: React.PropTypes.array.isRequired,
- renderCell: React.PropTypes.func.isRequired
- },
-
- _renderCell: function(col) {
- return this.props.renderCell({value:this.props.value}, this._row, col);
- },
-
- _renderRow: function(row) {
- this._row = row;
- return React.DOM.tr({key:row},
- this._renderCell(null, 0),
- this.props.cols.map(this._renderCell, this)
- );
- },
-
- render: function() {
- return React.DOM.table(null,
- this._renderRow(null, 0),
- this.props.rows.map(this._renderRow, this)
- );
- }
-
-});
diff --git a/perf/lib/BrowserPerfRunnerContext.react.js b/perf/lib/BrowserPerfRunnerContext.react.js
deleted file mode 100644
index 042dfc8e2d..0000000000
--- a/perf/lib/BrowserPerfRunnerContext.react.js
+++ /dev/null
@@ -1,201 +0,0 @@
-var BenchmarkQueue = React.createClass({
- propTypes: {
- debug: React.PropTypes.bool,
- onChange: React.PropTypes.func.isRequired,
- initialQueue: React.PropTypes.array.isRequired,
- maxTime: React.PropTypes.number,
- onCompleteEach: React.PropTypes.func,
- onError: React.PropTypes.func
- },
-
- getDefaultProps: function() {
- return {
- maxTime: 5
- };
- },
-
- getInitialState: function() {
- return {
- queue: this.props.initialQueue.slice()
- };
- },
-
- setItemState: function(state) {
- state.test = this.state.queue[0].test;
- state.react = this.state.queue[0].react;
- this.props.onChange(state);
- },
-
- handleContextReady: function(window) {
- var benchmark = window.Benchmark(window.exports);
- benchmark.options.maxTime = this.props.maxTime; //DEBUG
-
- var itemState = {
- testRunnerURL: window.location.href,
-
- name: window.exports.name,
- platform: window.Benchmark.platform.description,
- reactVersion: window.React.version,
-
- isMinified: (function() {
- var code = window.React.render.toString();
- return code.indexOf(',') - code.indexOf('(') <= 2;
- }())
- };
-
- this.setItemState(itemState);
-
- var self = this;
- benchmark.on('start error cycle complete', function() {
- var stats = JSON.parse(JSON.stringify(benchmark.stats));
- itemState.stats = stats;
- itemState.isRunning = benchmark.running;
- itemState.error = benchmark.error;
- self.setItemState(itemState);
- });
- if (this.props.onError) {
- benchmark.on('error', this.props.onError);
- }
- benchmark.on('complete', function() {
- var queue = self.state.queue.slice();
- var queueItem = queue.shift();
- if (self.props.onCompleteEach) {
- self.props.onCompleteEach(queueItem);
- }
- self.setState({queue:queue});
- });
- benchmark.run({async:true});
- },
-
- shouldComponentUpdate: function(nextProps, nextState) {
- return nextState.queue.length < this.state.queue.length;
- },
-
- render: function() {
- if (!(this.state.queue && this.state.queue.length > 0)) {
- return React.DOM.div({style:{display:'none'}});
- }
- return BrowserPerfRunnerContext({
- debug: this.props.debug,
- test: this.state.queue[0].test,
- react: this.state.queue[0].react,
- onReady: this.handleContextReady
- });
- }
-});
-
-var BrowserPerfRunnerContext = React.createClass({
-
- propTypes: {
- debug: React.PropTypes.bool,
- test: function(object, key) {
- React.PropTypes.string.isRequired(object, key);
- if (/\.jsx?$/i.test(object[key])) {
- return;
- }
- throw Error('Expected `' + key + '` to be a test file name with extension `.js` or `.jsx`');
- },
- react: function(object, key) {
- React.PropTypes.string.isRequired(object, key);
- if (/^(?:builds\/.+|edge|previous|(?:\d+\.){2}\d+)$/.test(object[key])) {
- return;
- }
- throw Error('Expected `' + key + '` prop to be a valid react version string, build string or \'edge\' or \'previous\'');
- },
- onReady: React.PropTypes.func.isRequired
- },
-
- getInitialState: function() {
- return {
- testRunnerURL:'about:blank'
- };
- },
-
- // _handleFrameError: function(error) {
- // console.error('BrowserPerfRunnerContext', error);
- // },
- //
- // _handleFrameLoad: function(event) {
- // console.log('BrowserPerfRunnerContext', event);
- // },
- //
- _handleMessage: function(event) {
- if (location.href.indexOf(event.origin) !== 0) {
- return console.debug('BrowserPerfRunnerContext#_handleMessage ignored message from ' + event.origin);
- }
- if (event.source.location.href.indexOf(this.state.testRunnerURL) === -1) {
- return console.debug('BrowserPerfRunnerContext#_handleMessage ignored message from ' + event.source.location.href);
- }
- if (event.data !== 'Ready!') {
- return console.debug('BrowserPerfRunnerContext#_handleMessage ignored message ' + JSON.stringify(event.data));
- }
- this.props.onReady(event.source);
- },
-
- _getTestRunnerURL: function(props) {
- return 'runner.html' +
- '?' +
- 'debug=' + (props.debug ? 1 : 0) +
- '&' +
- 'react=' + encodeURIComponent(props.react) +
- '&' +
- 'test=' + encodeURIComponent(props.test);
- },
-
- _renderState: function(props) {
- return {
- testRunnerURL: this._getTestRunnerURL(props)
- };
- },
-
- componentDidMount: function() {
- var node = this.refs.iframe.getDOMNode();
- // node.onload = this._handleFrameLoad;
- // node.onerror = this._handleFrameError;
- if (window.addEventListener) {
- window.addEventListener('message', this._handleMessage, false);
- } else if (window.attachEvent) {
- window.attachEvent('onmessage', this._handleMessage);
- } else {
- throw Error('cannot attach onmessage listener');
- }
- this.setState(this._renderState(this.props));
- },
-
- componentWillUnmount: function() {
- if (window.removeEventListener) {
- window.removeEventListener('message', this._handleMessage);
- } else if (window.detachEvent) {
- window.detachEvent('onmessage', this._handleMessage);
- } else {
- throw Error('cannot detach onmessage listener');
- }
- this.refs.iframe.getDOMNode().src = '';
- },
-
- componentWillReceiveProps: function(nextProps) {
- this.setState(this._renderState(nextProps));
- },
-
- shouldComponentUpdate: function(nextProps, nextState) {
- return nextState.testRunnerURL !== this.state.testRunnerURL;
- },
-
- render: function() {
- return (
- React.DOM.iframe({
- ref: 'iframe',
- name: 'BrowserPerfRunnerContextFrame',
- style: this.style,
- src: this.state.testRunnerURL
- })
- );
- },
-
- style: {
- position: 'absolute',
- right: '100%',
- bottom: '100%'
- }
-
-});
diff --git a/perf/lib/perf-test-runner.browser.js b/perf/lib/perf-test-runner.browser.js
deleted file mode 100644
index d2af7345fd..0000000000
--- a/perf/lib/perf-test-runner.browser.js
+++ /dev/null
@@ -1,224 +0,0 @@
-if (typeof console === 'undefined') {
- console = {
- log: function() {},
- warn: function() {},
- error: function() {},
- debug: function() {}
- };
-}
-
-var perfRunner;
-if (typeof exports === 'object') {
- perfRunner = exports;
-} else {
- perfRunner = {};
-}
-
-perfRunner.assert = function(test, message) {
- if (typeof test === 'function') {
- test = test();
- }
- if (test) {
- return;
- }
- throw Error(message);
-};
-
-perfRunner.WriteScript = function(props) {
- var type = '';
- if (props.jsx) {
- type = ' type=\'text/jsx\'';
- }
- var src = props.src;
- if (!props.cache) {
- src += src.indexOf('?') === -1 ? '?_' : '&_';
- src += perfRunner.WriteScript.cacheBust;
- }
- document.write('
-
-
-
-
-
diff --git a/perf/runner.html b/perf/runner.html
deleted file mode 100644
index 976841ff37..0000000000
--- a/perf/runner.html
+++ /dev/null
@@ -1,59 +0,0 @@
-
-
-Perf Test Runner
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/perf/tests/basic-div.js b/perf/tests/basic-div.js
deleted file mode 100644
index 1fe81d722b..0000000000
--- a/perf/tests/basic-div.js
+++ /dev/null
@@ -1,11 +0,0 @@
-if (typeof exports === 'undefined') {
- exports = {};
-}
-
-/*http://benchmarkjs.com/docs#options*/
-
-exports.name = 'React.DOM.div, no props';
-
-exports.fn = function() {
- React.DOM.div(null, 'lol, perf testing ', this.count);
-};
diff --git a/perf/tests/basic-unmount.js b/perf/tests/basic-unmount.js
deleted file mode 100644
index a0b36d3877..0000000000
--- a/perf/tests/basic-unmount.js
+++ /dev/null
@@ -1,21 +0,0 @@
-if (typeof exports === 'undefined') {
- exports = {};
-}
-
-/*http://benchmarkjs.com/docs#options*/
-
-exports.name = 'unmountComponentAtNode';
-
-exports.setup = function() {
- _rootNode = document.createElement('div');
- document.body.appendChild(_rootNode);
- var _firstChild = React.DOM.div(null, 'lol, perf testing ', this.count);
- React.render(_firstChild, _rootNode);
-};
-exports.fn = function() {
- if (React.unmountAndReleaseReactRootNode) {
- React.unmountAndReleaseReactRootNode(_rootNode);
- } else {
- React.unmountComponentAtNode(_rootNode);
- }
-};
diff --git a/perf/tests/propTypes.js b/perf/tests/propTypes.js
deleted file mode 100644
index 991abe6062..0000000000
--- a/perf/tests/propTypes.js
+++ /dev/null
@@ -1,91 +0,0 @@
-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);
-};
diff --git a/perf/tests/renderComponent-basic.js b/perf/tests/renderComponent-basic.js
deleted file mode 100644
index 16349f10c0..0000000000
--- a/perf/tests/renderComponent-basic.js
+++ /dev/null
@@ -1,22 +0,0 @@
-if (typeof exports === 'undefined') {
- exports = {};
-}
-
-/*http://benchmarkjs.com/docs#options*/
-
-exports.name = 'React.render single div';
-
-exports.setup = function() {
- _rootNode = document.createElement('div');
- document.body.appendChild(_rootNode);
-};
-exports.fn = function() {
- React.render(React.DOM.div(null, 'lol, perf testing ', this.count), _rootNode);
-};
-exports.teardown = function() {
- if (React.unmountAndReleaseReactRootNode) {
- React.unmountAndReleaseReactRootNode(_rootNode);
- } else {
- React.unmountComponentAtNode(_rootNode);
- }
-};
diff --git a/perf/tests/sanity.js b/perf/tests/sanity.js
deleted file mode 100644
index a92364c62f..0000000000
--- a/perf/tests/sanity.js
+++ /dev/null
@@ -1,17 +0,0 @@
-if (typeof exports === 'undefined') {
- exports = {};
-}
-
-/*http://benchmarkjs.com/docs#options*/
-
-exports.name = 'Trivial benchmark to verify that everything works';
-
-exports.setup = function() {
- var foo;
-};
-exports.fn = function() {
- foo = Array(999).join('Howdy!\n');
-};
-exports.teardown = function() {
- foo = null;
-};
diff --git a/perf/tests/setState-callback-5.js b/perf/tests/setState-callback-5.js
deleted file mode 100644
index a231642123..0000000000
--- a/perf/tests/setState-callback-5.js
+++ /dev/null
@@ -1,45 +0,0 @@
-if (typeof exports === 'undefined') {
- exports = {};
-}
-
-/*http://benchmarkjs.com/docs#options*/
-
-exports.name = 'From setState to callback (x5)';
-
-exports.defer = true;
-
-exports.setup = function() {
- _rootNode = document.createElement('div');
- document.body.appendChild(_rootNode);
- setState = null;
-
- var AwesomeComponent = React.createClass({
- getInitialState: function() {
- return {random:null};
- },
- render: function() {
- if (!setState) {
- setState = this.setState.bind(this);
- }
- return React.DOM.div(null, this.state.random);
- }
- });
-
- React.render(AwesomeComponent(null), _rootNode);
-};
-exports.fn = function(deferred) {
- setState({random: Date.now() + Math.random()}, function() {
- setState({random: Date.now() + Math.random()}, function() {
- setState({random: Date.now() + Math.random()}, function() {
- setState({random: Date.now() + Math.random()}, function() {
- setState({random: Date.now() + Math.random()}, function() {
- deferred.resolve();
- });
- });
- });
- });
- });
-};
-exports.teardown = function() {
- React.unmountComponentAtNode(_rootNode);
-};
diff --git a/perf/tests/setState-callback.js b/perf/tests/setState-callback.js
deleted file mode 100644
index 2597fe3178..0000000000
--- a/perf/tests/setState-callback.js
+++ /dev/null
@@ -1,37 +0,0 @@
-if (typeof exports === 'undefined') {
- exports = {};
-}
-
-/*http://benchmarkjs.com/docs#options*/
-
-exports.name = 'From setState to callback';
-
-exports.defer = true;
-
-exports.setup = function() {
- _rootNode = document.createElement('div');
- document.body.appendChild(_rootNode);
- setState = null;
-
- var AwesomeComponent = React.createClass({
- getInitialState: function() {
- return {random:null};
- },
- render: function() {
- if (!setState) {
- setState = this.setState.bind(this);
- }
- return React.DOM.div(null, this.state.random);
- }
- });
-
- React.render(AwesomeComponent(null), _rootNode);
-};
-exports.fn = function(deferred) {
- setState({random: Date.now() + Math.random()}, function() {
- deferred.resolve();
- });
-};
-exports.teardown = function() {
- React.unmountComponentAtNode(_rootNode);
-};
diff --git a/perf/tests/shouldComponentUpdate.js b/perf/tests/shouldComponentUpdate.js
deleted file mode 100644
index 4c738f6eb8..0000000000
--- a/perf/tests/shouldComponentUpdate.js
+++ /dev/null
@@ -1,27 +0,0 @@
-if (typeof exports === 'undefined') {
- exports = {};
-}
-
-/*http://benchmarkjs.com/docs#options*/
-
-exports.name = 'shouldComponentUpdate';
-
-exports.setup = function() {
- var AwesomeComponent = React.createClass({
- shouldComponentUpdate: function() {
- return false;
- },
- render: function() {
- return React.DOM.div({});
- }
- });
-
- var _rootNode = document.createElement('div');
- document.body.appendChild(_rootNode);
-};
-exports.fn = function() {
- React.render(AwesomeComponent(null), _rootNode);
-};
-exports.teardown = function() {
- React.unmountComponentAtNode(_rootNode);
-};
diff --git a/perf/tests/todolist-add.js b/perf/tests/todolist-add.js
deleted file mode 100644
index 28de8a2072..0000000000
--- a/perf/tests/todolist-add.js
+++ /dev/null
@@ -1,31 +0,0 @@
-if (typeof exports === 'undefined') {
- exports = {};
-}
-
-/*http://benchmarkjs.com/docs#options*/
-
-exports.name = 'todolist from addItem to callback';
-
-exports.defer = true;
-
-exports.setup = function() {
- _rootNode = document.createElement('div');
- document.body.appendChild(_rootNode);
- var appDescriptor = todolist.App({fakeDataCount: 333});
- _app = React.render(appDescriptor, _rootNode);
-};
-exports.fn = function(deferred) {
- var liCount = document.getElementsByTagName('li').length;
- _app.addItem(Math.random(), function() {
- if (document.getElementsByTagName('li').length <= liCount) {
- throw Error('expected a list item to be added to the dom');
- }
- deferred.resolve();
- });
-};
-exports.teardown = function() {
- React.unmountComponentAtNode(_rootNode);
- _rootNode.parentNode.removeChild(_rootNode);
- _rootNode = null;
- _app = null;
-};
diff --git a/perf/tests/todolist-do-stuff.js b/perf/tests/todolist-do-stuff.js
deleted file mode 100644
index b1c6483d21..0000000000
--- a/perf/tests/todolist-do-stuff.js
+++ /dev/null
@@ -1,58 +0,0 @@
-if (typeof exports === 'undefined') {
- exports = {};
-}
-
-/*http://benchmarkjs.com/docs#options*/
-
-_timesToRun = 2;
-
-exports.name = 'todolist add, complete, remove (x' + _timesToRun + ')';
-
-exports.defer = true;
-
-exports.setup = function() {
- _rootNode = document.createElement('div');
- document.body.appendChild(_rootNode);
- var appDescriptor = todolist.App({fakeDataCount: 333});
- _app = React.render(appDescriptor, _rootNode);
-};
-
-exports.fn = function(deferred) {
- var originalLiCount = document.getElementsByTagName('li').length;
-
- var todos = [];
- var times = _timesToRun;
- while (times-- >= 0) {
- todos.push(_app.addItem(times + 1));
- }
-
- todos.forEach(function(todo) {
- _app.setItemCompleted(todo.id);
- });
-
- todos.forEach(function(todo) {
- _app.deleteItemById(todo.id);
- });
-
- todos = null;
-
- _app.addItem(Math.random(), function(todo) {
- if (document.getElementsByTagName('li').length <= originalLiCount) {
- throw Error('expected a list item to be added to the dom');
- }
-
- _app.deleteItemById(todo.id, function() {
- if (document.getElementsByTagName('li').length !== originalLiCount) {
- throw Error('expected everything to be done by now');
- }
- deferred.resolve();
- });
- });
-};
-
-exports.teardown = function() {
- React.unmountComponentAtNode(_rootNode);
- _rootNode.parentNode.removeChild(_rootNode);
- _rootNode = null;
- _app = null;
-};
diff --git a/perf/tests/todolist-edit.js b/perf/tests/todolist-edit.js
deleted file mode 100644
index 7fe7f34b6e..0000000000
--- a/perf/tests/todolist-edit.js
+++ /dev/null
@@ -1,34 +0,0 @@
-if (typeof exports === 'undefined') {
- exports = {};
-}
-
-/*http://benchmarkjs.com/docs#options*/
-
-exports.name = 'todolist setItemCompleted';
-
-exports.defer = true;
-
-exports.setup = function() {
- _rootNode = document.createElement('div');
- document.body.appendChild(_rootNode);
- var appDescriptor = todolist.App({fakeDataCount: 333});
- _app = React.render(appDescriptor, _rootNode);
- _todo1 = _app.addItem('Howdy 1!');
- _todo2 = _app.addItem('Howdy 2!');
- _todo3 = _app.addItem('Howdy 3!');
-};
-
-exports.fn = function(deferred) {
- _app.setItemCompleted(_todo1.id, !_todo1.completed);
- _app.setItemCompleted(_todo2.id, !_todo2.completed);
- _app.setItemCompleted(_todo3.id, !_todo3.completed, function() {
- deferred.resolve();
- });
-};
-
-exports.teardown = function() {
- React.unmountComponentAtNode(_rootNode);
- _rootNode.parentNode.removeChild(_rootNode);
- _rootNode = null;
- _app = null;
-};
diff --git a/perf/tests/todolist-mount.js b/perf/tests/todolist-mount.js
deleted file mode 100644
index 0347143b63..0000000000
--- a/perf/tests/todolist-mount.js
+++ /dev/null
@@ -1,30 +0,0 @@
-if (typeof exports === 'undefined') {
- exports = {};
-}
-
-/*http://benchmarkjs.com/docs#options*/
-
-exports.name =
- 'todolist from renderComponent to renderComponent callback (333 rows)';
-
-exports.defer = true;
-
-exports.setup = function() {
- if (typeof _rootNode !== 'undefined') {
- throw Error('should teardown before running setup again');
- }
- _rootNode = document.createElement('div');
- document.body.appendChild(_rootNode);
-};
-
-exports.fn = function(deferred) {
- React.render(todolist.App({fakeDataCount: 333}), _rootNode, function() {
- deferred.resolve();
- });
-};
-
-exports.teardown = function() {
- React.unmountComponentAtNode(_rootNode);
- _rootNode.parentNode.removeChild(_rootNode);
- _rootNode = undefined;
-};