Skip to content

Instantly share code, notes, and snippets.

@a-ignatov-parc
Last active December 16, 2015 15:09
Show Gist options
  • Save a-ignatov-parc/5454116 to your computer and use it in GitHub Desktop.
Save a-ignatov-parc/5454116 to your computer and use it in GitHub Desktop.
function Test(adapter, handlersCount, contextCount, eventNamesCount) {
var handlers = [],
contexts = [],
events = [],
i;
function generateNum(range) {
return Math.floor(Math.random() * (range || 1000));
}
for (i = 0; i < handlersCount; i++) {
handlers.push(function() {
this.a + this.b;
});
}
for (i = 0; i < contextCount; i++) {
contexts.push({
a: generateNum(),
b: generateNum()
});
}
for (i = 0; i < eventNamesCount; i++) {
events.push('event' + i);
}
return {
// Добавить все обработчики
bind: function() {
for (var i = 0, lenI = events.length; i < lenI; i++) {
for (var j = 0, lenJ = handlers.length; j < lenJ; j++) {
for (var k = 0, lenK = contexts.length; k < lenK; k++) {
adapter.on(events[i], handlers[j], contexts[k]);
}
}
}
},
// Отписаться от всех событий в случайном порядке
remove: function() {
for (;events.length;) {
adapter.off(events.splice(generateNum(events.length), 1));
}
},
// Бросить каждое событие 100 раз
trigger: function() {
for (var i = 0, length = events.length; i < length; i++) {
for (var j = 0; j < 100; j++) {
adapter.trigger(events[i]);
}
}
}
};
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment