Skip to content
This repository was archived by the owner on Apr 12, 2024. It is now read-only.

Commit 0bf0cc6

Browse files
committed
refactor(*): remove add/removeEventListenerFn wrappers
- in some tests these methods are 2x as expensive as the actual add/removeEventListener which they wrap - in the largetable ngmodel this removes ~1%
1 parent 26ca379 commit 0bf0cc6

File tree

6 files changed

+14
-26
lines changed

6 files changed

+14
-26
lines changed

src/.jshintrc

-2
Original file line numberDiff line numberDiff line change
@@ -140,8 +140,6 @@
140140
"getAliasedAttrName": false,
141141
"createEventHandler": false,
142142
"JQLitePrototype": false,
143-
"addEventListenerFn": false,
144-
"removeEventListenerFn": false,
145143
"jqLiteIsTextNode": false,
146144
"jqLiteDocumentLoaded": false,
147145

src/jqLite.js

+4-12
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
'use strict';
22

33
/* global JQLitePrototype: true,
4-
addEventListenerFn: true,
5-
removeEventListenerFn: true,
64
BOOLEAN_ATTR: true,
75
ALIASED_ATTR: true,
86
*/
@@ -103,13 +101,7 @@
103101
JQLite.expando = 'ng339';
104102

105103
var jqCache = JQLite.cache = {},
106-
jqId = 1,
107-
addEventListenerFn = function(element, type, fn) {
108-
element.addEventListener(type, fn, false);
109-
},
110-
removeEventListenerFn = function(element, type, fn) {
111-
element.removeEventListener(type, fn, false);
112-
};
104+
jqId = 1;
113105

114106
/*
115107
* !!! This is an undocumented "private" function !!!
@@ -276,7 +268,7 @@ function jqLiteOff(element, type, fn, unsupported) {
276268
if (!type) {
277269
for (type in events) {
278270
if (type !== '$destroy') {
279-
removeEventListenerFn(element, type, handle);
271+
element.removeEventListener(type, handle, false);
280272
}
281273
delete events[type];
282274
}
@@ -290,7 +282,7 @@ function jqLiteOff(element, type, fn, unsupported) {
290282
}
291283
}
292284

293-
removeEventListenerFn(element, type, handle);
285+
element.removeEventListener(type, handle, false);
294286
delete events[type];
295287
});
296288
}
@@ -811,7 +803,7 @@ forEach({
811803

812804
} else {
813805
if (type !== '$destroy') {
814-
addEventListenerFn(element, type, handle);
806+
element.addEventListener(type, handle, false);
815807
}
816808
}
817809
eventFns = events[type];

src/ng/directive/form.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -474,13 +474,13 @@ var formDirectiveFactory = function(isNgForm) {
474474
event.preventDefault();
475475
};
476476

477-
addEventListenerFn(formElement[0], 'submit', handleFormSubmission);
477+
formElement[0].addEventListener('submit', handleFormSubmission, false);
478478

479479
// unregister the preventDefault listener so that we don't not leak memory but in a
480480
// way that will achieve the prevention of the default action.
481481
formElement.on('$destroy', function() {
482482
$timeout(function() {
483-
removeEventListenerFn(formElement[0], 'submit', handleFormSubmission);
483+
formElement[0].removeEventListener('submit', handleFormSubmission, false);
484484
}, 0, false);
485485
});
486486
}

src/ng/httpBackend.js

+4-4
Original file line numberDiff line numberDiff line change
@@ -146,8 +146,8 @@ function createHttpBackend($browser, createXhr, $browserDefer, callbacks, rawDoc
146146
script.async = true;
147147

148148
callback = function(event) {
149-
removeEventListenerFn(script, "load", callback);
150-
removeEventListenerFn(script, "error", callback);
149+
script.removeEventListener("load", callback, false);
150+
script.removeEventListener("error", callback, false);
151151
rawDocument.body.removeChild(script);
152152
script = null;
153153
var status = -1;
@@ -166,8 +166,8 @@ function createHttpBackend($browser, createXhr, $browserDefer, callbacks, rawDoc
166166
}
167167
};
168168

169-
addEventListenerFn(script, "load", callback);
170-
addEventListenerFn(script, "error", callback);
169+
script.addEventListener("load", callback, false);
170+
script.addEventListener("error", callback, false);
171171
rawDocument.body.appendChild(script);
172172
return callback;
173173
}

test/.jshintrc

-2
Original file line numberDiff line numberDiff line change
@@ -116,8 +116,6 @@
116116
"getBooleanAttrName": false,
117117
"createEventHandler": false,
118118
"JQLitePrototype": false,
119-
"addEventListenerFn": false,
120-
"removeEventListenerFn": false,
121119
"jqLiteDocumentLoaded": false,
122120

123121
/* apis.js */

test/ng/directive/formSpec.js

+4-4
Original file line numberDiff line numberDiff line change
@@ -283,7 +283,7 @@ describe('form', function() {
283283
submitted = true;
284284
};
285285

286-
addEventListenerFn(doc[0], 'submit', assertPreventDefaultListener);
286+
doc[0].addEventListener('submit', assertPreventDefaultListener, false);
287287

288288
browserTrigger(doc.find('input'));
289289

@@ -297,7 +297,7 @@ describe('form', function() {
297297
expect(submitted).toBe(true);
298298

299299
// prevent mem leak in test
300-
removeEventListenerFn(doc[0], 'submit', assertPreventDefaultListener);
300+
doc[0].removeEventListener('submit', assertPreventDefaultListener, false);
301301
});
302302
});
303303

@@ -334,7 +334,7 @@ describe('form', function() {
334334

335335
$compile(doc)(scope);
336336

337-
addEventListenerFn(form[0], 'submit', assertPreventDefaultListener);
337+
form[0].addEventListener('submit', assertPreventDefaultListener, false);
338338

339339
browserTrigger(doc.find('button'), 'click');
340340

@@ -353,7 +353,7 @@ describe('form', function() {
353353
// now. (i)
354354

355355
// prevent mem leak in test
356-
removeEventListenerFn(form[0], 'submit', assertPreventDefaultListener);
356+
form[0].removeEventListener('submit', assertPreventDefaultListener, false);
357357
});
358358
}));
359359

0 commit comments

Comments
 (0)