diff --git a/perf/Set.js b/perf/Set.js new file mode 100644 index 0000000000..c8770ad316 --- /dev/null +++ b/perf/Set.js @@ -0,0 +1,84 @@ +/** + * Copyright (c) 2014-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +describe('Set', () => { + describe('maps with changes', () => { + const array2 = []; + for (let i = 0; i < 2; i++) { + array2[i] = i; + } + const set2 = Immutable.Set(array2); + it('of 2', () => { + set2.map((value) => value + 1); + }); + + const array8 = []; + for (let i = 0; i < 8; i++) { + array8[i] = i; + } + const set8 = Immutable.Set(array8); + it('of 8', () => { + set8.map((value) => value + 1); + }); + + const array32 = []; + for (let i = 0; i < 32; i++) { + array32[i] = i; + } + const set32 = Immutable.Set(array32); + it('of 32', () => { + set32.map((value) => value + 1); + }); + + const array1024 = []; + for (let i = 0; i < 1024; i++) { + array1024[i] = i; + } + const set1024 = Immutable.Set(array1024); + it('of 1024', () => { + set1024.map((value) => value + 1); + }); + }); + + describe('maps without changes', () => { + const array2 = []; + for (let i = 0; i < 2; i++) { + array2[i] = i; + } + const set2 = Immutable.Set(array2); + it('of 2', () => { + set2.map((value) => value); + }); + + const array8 = []; + for (let i = 0; i < 8; i++) { + array8[i] = i; + } + const set8 = Immutable.Set(array8); + it('of 8', () => { + set8.map((value) => value); + }); + + const array32 = []; + for (let i = 0; i < 32; i++) { + array32[i] = i; + } + const set32 = Immutable.Set(array32); + it('of 32', () => { + set32.map((value) => value); + }); + + const array1024 = []; + for (let i = 0; i < 1024; i++) { + array1024[i] = i; + } + const set1024 = Immutable.Set(array1024); + it('of 1024', () => { + set1024.map((value) => value); + }); + }); +}); diff --git a/perf/fromJS.js b/perf/fromJS.js new file mode 100644 index 0000000000..ea844bdf3d --- /dev/null +++ b/perf/fromJS.js @@ -0,0 +1,52 @@ +/** + * Copyright (c) 2014-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +describe('fromJS', () => { + const list = Immutable.List(); + it('List', () => { + Immutable.fromJS(list); + }); + + const object = { foo: 'bar' }; + it('object', () => { + Immutable.fromJS(object); + }); + + describe('array of Lists', () => { + const array2 = []; + for (let i = 0; i < 2; i++) { + array2[i] = Immutable.List(); + } + it('of 2', () => { + Immutable.fromJS(array2); + }); + + const array8 = []; + for (let i = 0; i < 8; i++) { + array8[i] = Immutable.List(); + } + it('of 8', () => { + Immutable.fromJS(array8); + }); + + const array32 = []; + for (let i = 0; i < 32; i++) { + array32[i] = Immutable.List(); + } + it('of 32', () => { + Immutable.fromJS(array32); + }); + + const array1024 = []; + for (let i = 0; i < 1024; i++) { + array1024[i] = i; + } + it('of 1024', () => { + Immutable.fromJS(array1024); + }); + }); +}); diff --git a/perf/hash.js b/perf/hash.js new file mode 100644 index 0000000000..d3c4edbf59 --- /dev/null +++ b/perf/hash.js @@ -0,0 +1,48 @@ +/** + * Copyright (c) 2014-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +describe('hash', () => { + const aString = 'test'; + it('a string', () => { + Immutable.hash(aString); + }); + + const aNumber = 5; + it('a number', () => { + Immutable.fromJS(aNumber); + }); + + const aNull = null; + it('null', () => { + Immutable.hash(aNull); + }); + + const anUndefined = undefined; + it('undefined', () => { + Immutable.hash(anUndefined); + }); + + const aBoolean = true; + it('a boolean', () => { + Immutable.hash(aBoolean); + }); + + const anObject = {}; + it('an object', () => { + Immutable.hash(anObject); + }); + + const anArray = []; + it('an array', () => { + Immutable.hash(anArray); + }); + + const aFunction = () => null; + it('a function', () => { + Immutable.hash(aFunction); + }); +}); diff --git a/perf/toJS.js b/perf/toJS.js index 049b7bafde..48898b8228 100644 --- a/perf/toJS.js +++ b/perf/toJS.js @@ -13,7 +13,7 @@ describe('toJS', () => { const list = Immutable.List(array32); it('List of 32', () => { - Immutable.toJS(list); + list.toJS(list); }); const obj32 = {}; @@ -23,6 +23,6 @@ describe('toJS', () => { const map = Immutable.Map(obj32); it('Map of 32', () => { - Immutable.toJS(map); + map.toJS(map); }); });