UNPKG

lighter-emitter

Version:
587 lines (578 loc) 18.2 kB
/* global describe it */ var no = function () {} var bench = global.bench || no var EventEmitter = require('events').EventEmitter var libs = exports.libs = { 'events.EventEmitter': EventEmitter, 'lighter-emitter': require('../lighter-emitter') } exports.emit = function (count, wording) { describe('Emitter.prototype.emit (' + wording + ')', function () { if (this.root.options) { this.benchTime = this.root.options.benchTime * (1 - count / 10) } bench('zero arguments', function () { Object.keys(libs).forEach(function (name) { var Emitter = libs[name] var e = new Emitter() var f = function () {} for (var i = 0; i < count; i++) { e.on('a', f) } it(name, function () { e.emit('a') e.emit('a') e.emit('a') e.emit('a') e.emit('a') e.emit('a') e.emit('a') e.emit('a') e.emit('a') e.emit('a') e.emit('a') e.emit('a') e.emit('a') e.emit('a') e.emit('a') e.emit('a') e.emit('a') e.emit('a') e.emit('a') e.emit('a') e.emit('a') e.emit('a') e.emit('a') e.emit('a') e.emit('a') e.emit('a') e.emit('a') e.emit('a') e.emit('a') e.emit('a') e.emit('a') e.emit('a') e.emit('a') e.emit('a') e.emit('a') e.emit('a') e.emit('a') e.emit('a') e.emit('a') e.emit('a') e.emit('a') e.emit('a') e.emit('a') e.emit('a') e.emit('a') e.emit('a') e.emit('a') e.emit('a') e.emit('a') e.emit('a') e.emit('a') e.emit('a') e.emit('a') e.emit('a') e.emit('a') e.emit('a') e.emit('a') e.emit('a') e.emit('a') e.emit('a') e.emit('a') e.emit('a') e.emit('a') e.emit('a') e.emit('a') e.emit('a') e.emit('a') e.emit('a') e.emit('a') e.emit('a') e.emit('a') e.emit('a') e.emit('a') e.emit('a') e.emit('a') e.emit('a') e.emit('a') e.emit('a') e.emit('a') e.emit('a') e.emit('a') e.emit('a') e.emit('a') e.emit('a') e.emit('a') e.emit('a') e.emit('a') e.emit('a') e.emit('a') e.emit('a') e.emit('a') e.emit('a') e.emit('a') e.emit('a') e.emit('a') e.emit('a') e.emit('a') e.emit('a') e.emit('a') e.emit('a') }) }) }) bench('one argument', function () { Object.keys(libs).forEach(function (name) { var Emitter = libs[name] var e = new Emitter() var f = function (a) {} for (var i = 0; i < count; i++) { e.on('a', f) } it(name, function () { e.emit('a', 100) e.emit('a', 101) e.emit('a', 102) e.emit('a', 103) e.emit('a', 104) e.emit('a', 105) e.emit('a', 106) e.emit('a', 107) e.emit('a', 108) e.emit('a', 109) e.emit('a', 110) e.emit('a', 111) e.emit('a', 112) e.emit('a', 113) e.emit('a', 114) e.emit('a', 115) e.emit('a', 116) e.emit('a', 117) e.emit('a', 118) e.emit('a', 119) e.emit('a', 120) e.emit('a', 121) e.emit('a', 122) e.emit('a', 123) e.emit('a', 124) e.emit('a', 125) e.emit('a', 126) e.emit('a', 127) e.emit('a', 128) e.emit('a', 129) e.emit('a', 130) e.emit('a', 131) e.emit('a', 132) e.emit('a', 133) e.emit('a', 134) e.emit('a', 135) e.emit('a', 136) e.emit('a', 137) e.emit('a', 138) e.emit('a', 139) e.emit('a', 140) e.emit('a', 141) e.emit('a', 142) e.emit('a', 143) e.emit('a', 144) e.emit('a', 145) e.emit('a', 146) e.emit('a', 147) e.emit('a', 148) e.emit('a', 149) e.emit('a', 150) e.emit('a', 151) e.emit('a', 152) e.emit('a', 153) e.emit('a', 154) e.emit('a', 155) e.emit('a', 156) e.emit('a', 157) e.emit('a', 158) e.emit('a', 159) e.emit('a', 160) e.emit('a', 161) e.emit('a', 162) e.emit('a', 163) e.emit('a', 164) e.emit('a', 165) e.emit('a', 166) e.emit('a', 167) e.emit('a', 168) e.emit('a', 169) e.emit('a', 170) e.emit('a', 171) e.emit('a', 172) e.emit('a', 173) e.emit('a', 174) e.emit('a', 175) e.emit('a', 176) e.emit('a', 177) e.emit('a', 178) e.emit('a', 179) e.emit('a', 180) e.emit('a', 181) e.emit('a', 182) e.emit('a', 183) e.emit('a', 184) e.emit('a', 185) e.emit('a', 186) e.emit('a', 187) e.emit('a', 188) e.emit('a', 189) e.emit('a', 190) e.emit('a', 191) e.emit('a', 192) e.emit('a', 193) e.emit('a', 194) e.emit('a', 195) e.emit('a', 196) e.emit('a', 197) e.emit('a', 198) e.emit('a', 199) }) }) }) bench('two arguments', function () { this.benchTime = this.parent.benchTime / 3 Object.keys(libs).forEach(function (name) { var Emitter = libs[name] var e = new Emitter() var f = function (a, b) {} for (var i = 0; i < count; i++) { e.on('a', f) } it(name, function () { e.emit('a', 100, 101) e.emit('a', 101, 102) e.emit('a', 102, 103) e.emit('a', 103, 104) e.emit('a', 104, 105) e.emit('a', 105, 106) e.emit('a', 106, 107) e.emit('a', 107, 108) e.emit('a', 108, 109) e.emit('a', 109, 110) e.emit('a', 110, 111) e.emit('a', 111, 112) e.emit('a', 112, 113) e.emit('a', 113, 114) e.emit('a', 114, 115) e.emit('a', 115, 116) e.emit('a', 116, 117) e.emit('a', 117, 118) e.emit('a', 118, 119) e.emit('a', 119, 120) e.emit('a', 120, 121) e.emit('a', 121, 122) e.emit('a', 122, 123) e.emit('a', 123, 124) e.emit('a', 124, 125) e.emit('a', 125, 126) e.emit('a', 126, 127) e.emit('a', 127, 128) e.emit('a', 128, 129) e.emit('a', 129, 130) e.emit('a', 130, 131) e.emit('a', 131, 132) e.emit('a', 132, 133) e.emit('a', 133, 134) e.emit('a', 134, 135) e.emit('a', 135, 136) e.emit('a', 136, 137) e.emit('a', 137, 138) e.emit('a', 138, 139) e.emit('a', 139, 140) e.emit('a', 140, 141) e.emit('a', 141, 142) e.emit('a', 142, 143) e.emit('a', 143, 144) e.emit('a', 144, 145) e.emit('a', 145, 146) e.emit('a', 146, 147) e.emit('a', 147, 148) e.emit('a', 148, 149) e.emit('a', 149, 150) e.emit('a', 150, 151) e.emit('a', 151, 152) e.emit('a', 152, 153) e.emit('a', 153, 154) e.emit('a', 154, 155) e.emit('a', 155, 156) e.emit('a', 156, 157) e.emit('a', 157, 158) e.emit('a', 158, 159) e.emit('a', 159, 160) e.emit('a', 160, 161) e.emit('a', 161, 162) e.emit('a', 162, 163) e.emit('a', 163, 164) e.emit('a', 164, 165) e.emit('a', 165, 166) e.emit('a', 166, 167) e.emit('a', 167, 168) e.emit('a', 168, 169) e.emit('a', 169, 170) e.emit('a', 170, 171) e.emit('a', 171, 172) e.emit('a', 172, 173) e.emit('a', 173, 174) e.emit('a', 174, 175) e.emit('a', 175, 176) e.emit('a', 176, 177) e.emit('a', 177, 178) e.emit('a', 178, 179) e.emit('a', 179, 180) e.emit('a', 180, 181) e.emit('a', 181, 182) e.emit('a', 182, 183) e.emit('a', 183, 184) e.emit('a', 184, 185) e.emit('a', 185, 186) e.emit('a', 186, 187) e.emit('a', 187, 188) e.emit('a', 188, 189) e.emit('a', 189, 190) e.emit('a', 190, 191) e.emit('a', 191, 192) e.emit('a', 192, 193) e.emit('a', 193, 194) e.emit('a', 194, 195) e.emit('a', 195, 196) e.emit('a', 196, 197) e.emit('a', 197, 198) e.emit('a', 198, 199) e.emit('a', 199, 200) }) }) }) bench('three arguments', function () { this.benchTime = this.parent.benchTime / 3 Object.keys(libs).forEach(function (name) { var Emitter = libs[name] var e = new Emitter() var f = function (a, b, c) {} for (var i = 0; i < count; i++) { e.on('a', f) } it(name, function () { e.emit('a', 100, 101, 102) e.emit('a', 101, 102, 103) e.emit('a', 102, 103, 104) e.emit('a', 103, 104, 105) e.emit('a', 104, 105, 106) e.emit('a', 105, 106, 107) e.emit('a', 106, 107, 108) e.emit('a', 107, 108, 109) e.emit('a', 108, 109, 110) e.emit('a', 109, 110, 111) e.emit('a', 110, 111, 112) e.emit('a', 111, 112, 113) e.emit('a', 112, 113, 114) e.emit('a', 113, 114, 115) e.emit('a', 114, 115, 116) e.emit('a', 115, 116, 117) e.emit('a', 116, 117, 118) e.emit('a', 117, 118, 119) e.emit('a', 118, 119, 120) e.emit('a', 119, 120, 121) e.emit('a', 120, 121, 122) e.emit('a', 121, 122, 123) e.emit('a', 122, 123, 124) e.emit('a', 123, 124, 125) e.emit('a', 124, 125, 126) e.emit('a', 125, 126, 127) e.emit('a', 126, 127, 128) e.emit('a', 127, 128, 129) e.emit('a', 128, 129, 130) e.emit('a', 129, 130, 131) e.emit('a', 130, 131, 132) e.emit('a', 131, 132, 133) e.emit('a', 132, 133, 134) e.emit('a', 133, 134, 135) e.emit('a', 134, 135, 136) e.emit('a', 135, 136, 137) e.emit('a', 136, 137, 138) e.emit('a', 137, 138, 139) e.emit('a', 138, 139, 140) e.emit('a', 139, 140, 141) e.emit('a', 140, 141, 142) e.emit('a', 141, 142, 143) e.emit('a', 142, 143, 144) e.emit('a', 143, 144, 145) e.emit('a', 144, 145, 146) e.emit('a', 145, 146, 147) e.emit('a', 146, 147, 148) e.emit('a', 147, 148, 149) e.emit('a', 148, 149, 150) e.emit('a', 149, 150, 151) e.emit('a', 150, 151, 152) e.emit('a', 151, 152, 153) e.emit('a', 152, 153, 154) e.emit('a', 153, 154, 155) e.emit('a', 154, 155, 156) e.emit('a', 155, 156, 157) e.emit('a', 156, 157, 158) e.emit('a', 157, 158, 159) e.emit('a', 158, 159, 160) e.emit('a', 159, 160, 161) e.emit('a', 160, 161, 162) e.emit('a', 161, 162, 163) e.emit('a', 162, 163, 164) e.emit('a', 163, 164, 165) e.emit('a', 164, 165, 166) e.emit('a', 165, 166, 167) e.emit('a', 166, 167, 168) e.emit('a', 167, 168, 169) e.emit('a', 168, 169, 170) e.emit('a', 169, 170, 171) e.emit('a', 170, 171, 172) e.emit('a', 171, 172, 173) e.emit('a', 172, 173, 174) e.emit('a', 173, 174, 175) e.emit('a', 174, 175, 176) e.emit('a', 175, 176, 177) e.emit('a', 176, 177, 178) e.emit('a', 177, 178, 179) e.emit('a', 178, 179, 180) e.emit('a', 179, 180, 181) e.emit('a', 180, 181, 182) e.emit('a', 181, 182, 183) e.emit('a', 182, 183, 184) e.emit('a', 183, 184, 185) e.emit('a', 184, 185, 186) e.emit('a', 185, 186, 187) e.emit('a', 186, 187, 188) e.emit('a', 187, 188, 189) e.emit('a', 188, 189, 190) e.emit('a', 189, 190, 191) e.emit('a', 190, 191, 192) e.emit('a', 191, 192, 193) e.emit('a', 192, 193, 194) e.emit('a', 193, 194, 195) e.emit('a', 194, 195, 196) e.emit('a', 195, 196, 197) e.emit('a', 196, 197, 198) e.emit('a', 197, 198, 199) e.emit('a', 198, 199, 200) e.emit('a', 199, 200, 201) }) }) }) bench('four arguments', function () { this.benchTime = this.parent.benchTime / 3 Object.keys(libs).forEach(function (name) { var Emitter = libs[name] var e = new Emitter() var f = function (a, b, c, d) {} for (var i = 0; i < count; i++) { e.on('a', f) } it(name, function () { e.emit('a', 100, 101, 102, 103) e.emit('a', 101, 102, 103, 104) e.emit('a', 102, 103, 104, 105) e.emit('a', 103, 104, 105, 106) e.emit('a', 104, 105, 106, 107) e.emit('a', 105, 106, 107, 108) e.emit('a', 106, 107, 108, 109) e.emit('a', 107, 108, 109, 110) e.emit('a', 108, 109, 110, 111) e.emit('a', 109, 110, 111, 112) e.emit('a', 110, 111, 112, 113) e.emit('a', 111, 112, 113, 114) e.emit('a', 112, 113, 114, 115) e.emit('a', 113, 114, 115, 116) e.emit('a', 114, 115, 116, 117) e.emit('a', 115, 116, 117, 118) e.emit('a', 116, 117, 118, 119) e.emit('a', 117, 118, 119, 120) e.emit('a', 118, 119, 120, 121) e.emit('a', 119, 120, 121, 122) e.emit('a', 120, 121, 122, 123) e.emit('a', 121, 122, 123, 124) e.emit('a', 122, 123, 124, 125) e.emit('a', 123, 124, 125, 126) e.emit('a', 124, 125, 126, 127) e.emit('a', 125, 126, 127, 128) e.emit('a', 126, 127, 128, 129) e.emit('a', 127, 128, 129, 130) e.emit('a', 128, 129, 130, 131) e.emit('a', 129, 130, 131, 132) e.emit('a', 130, 131, 132, 133) e.emit('a', 131, 132, 133, 134) e.emit('a', 132, 133, 134, 135) e.emit('a', 133, 134, 135, 136) e.emit('a', 134, 135, 136, 137) e.emit('a', 135, 136, 137, 138) e.emit('a', 136, 137, 138, 139) e.emit('a', 137, 138, 139, 140) e.emit('a', 138, 139, 140, 141) e.emit('a', 139, 140, 141, 142) e.emit('a', 140, 141, 142, 143) e.emit('a', 141, 142, 143, 144) e.emit('a', 142, 143, 144, 145) e.emit('a', 143, 144, 145, 146) e.emit('a', 144, 145, 146, 147) e.emit('a', 145, 146, 147, 148) e.emit('a', 146, 147, 148, 149) e.emit('a', 147, 148, 149, 150) e.emit('a', 148, 149, 150, 151) e.emit('a', 149, 150, 151, 152) e.emit('a', 150, 151, 152, 153) e.emit('a', 151, 152, 153, 154) e.emit('a', 152, 153, 154, 155) e.emit('a', 153, 154, 155, 156) e.emit('a', 154, 155, 156, 157) e.emit('a', 155, 156, 157, 158) e.emit('a', 156, 157, 158, 159) e.emit('a', 157, 158, 159, 160) e.emit('a', 158, 159, 160, 161) e.emit('a', 159, 160, 161, 162) e.emit('a', 160, 161, 162, 163) e.emit('a', 161, 162, 163, 164) e.emit('a', 162, 163, 164, 165) e.emit('a', 163, 164, 165, 166) e.emit('a', 164, 165, 166, 167) e.emit('a', 165, 166, 167, 168) e.emit('a', 166, 167, 168, 169) e.emit('a', 167, 168, 169, 170) e.emit('a', 168, 169, 170, 171) e.emit('a', 169, 170, 171, 172) e.emit('a', 170, 171, 172, 173) e.emit('a', 171, 172, 173, 174) e.emit('a', 172, 173, 174, 175) e.emit('a', 173, 174, 175, 176) e.emit('a', 174, 175, 176, 177) e.emit('a', 175, 176, 177, 178) e.emit('a', 176, 177, 178, 179) e.emit('a', 177, 178, 179, 180) e.emit('a', 178, 179, 180, 181) e.emit('a', 179, 180, 181, 182) e.emit('a', 180, 181, 182, 183) e.emit('a', 181, 182, 183, 184) e.emit('a', 182, 183, 184, 185) e.emit('a', 183, 184, 185, 186) e.emit('a', 184, 185, 186, 187) e.emit('a', 185, 186, 187, 188) e.emit('a', 186, 187, 188, 189) e.emit('a', 187, 188, 189, 190) e.emit('a', 188, 189, 190, 191) e.emit('a', 189, 190, 191, 192) e.emit('a', 190, 191, 192, 193) e.emit('a', 191, 192, 193, 194) e.emit('a', 192, 193, 194, 195) e.emit('a', 193, 194, 195, 196) e.emit('a', 194, 195, 196, 197) e.emit('a', 195, 196, 197, 198) e.emit('a', 196, 197, 198, 199) e.emit('a', 197, 198, 199, 200) e.emit('a', 198, 199, 200, 201) e.emit('a', 199, 200, 201, 202) }) }) }) }) }