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

Commit 6e516a2

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 6268ff6 commit 6e516a2

File tree

6 files changed

+14
-26
lines changed

6 files changed

+14
-26
lines changed

src/.jshintrc

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -138,8 +138,6 @@
138138
"getAliasedAttrName": false,
139139
"createEventHandler": false,
140140
"JQLitePrototype": false,
141-
"addEventListenerFn": false,
142-
"removeEventListenerFn": false,
143141
"jqLiteIsTextNode": false,
144142
"jqLiteDocumentLoaded": false,
145143

src/jqLite.js

Lines changed: 4 additions & 12 deletions
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
*/
@@ -101,13 +99,7 @@
10199
JQLite.expando = 'ng339';
102100

103101
var jqCache = JQLite.cache = {},
104-
jqId = 1,
105-
addEventListenerFn = function(element, type, fn) {
106-
element.addEventListener(type, fn, false);
107-
},
108-
removeEventListenerFn = function(element, type, fn) {
109-
element.removeEventListener(type, fn, false);
110-
};
102+
jqId = 1;
111103

112104
/*
113105
* !!! This is an undocumented "private" function !!!
@@ -274,7 +266,7 @@ function jqLiteOff(element, type, fn, unsupported) {
274266
if (!type) {
275267
for (type in events) {
276268
if (type !== '$destroy') {
277-
removeEventListenerFn(element, type, handle);
269+
element.removeEventListener(type, handle, false);
278270
}
279271
delete events[type];
280272
}
@@ -288,7 +280,7 @@ function jqLiteOff(element, type, fn, unsupported) {
288280
}
289281
}
290282

291-
removeEventListenerFn(element, type, handle);
283+
element.removeEventListener(type, handle, false);
292284
delete events[type];
293285
});
294286
}
@@ -809,7 +801,7 @@ forEach({
809801

810802
} else {
811803
if (type !== '$destroy') {
812-
addEventListenerFn(element, type, handle);
804+
element.addEventListener(type, handle, false);
813805
}
814806
}
815807
eventFns = events[type];

src/ng/directive/form.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -476,13 +476,13 @@ var formDirectiveFactory = function(isNgForm) {
476476
: event.returnValue = false; // IE
477477
};
478478

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

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

src/ng/httpBackend.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -144,8 +144,8 @@ function createHttpBackend($browser, createXhr, $browserDefer, callbacks, rawDoc
144144
script.async = true;
145145

146146
callback = function(event) {
147-
removeEventListenerFn(script, "load", callback);
148-
removeEventListenerFn(script, "error", callback);
147+
script.removeEventListener("load", callback, false);
148+
script.removeEventListener("error", callback, false);
149149
rawDocument.body.removeChild(script);
150150
script = null;
151151
var status = -1;
@@ -164,8 +164,8 @@ function createHttpBackend($browser, createXhr, $browserDefer, callbacks, rawDoc
164164
}
165165
};
166166

167-
addEventListenerFn(script, "load", callback);
168-
addEventListenerFn(script, "error", callback);
167+
script.addEventListener("load", callback, false);
168+
script.addEventListener("error", callback, false);
169169
rawDocument.body.appendChild(script);
170170
return callback;
171171
}

test/.jshintrc

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -115,8 +115,6 @@
115115
"getBooleanAttrName": false,
116116
"createEventHandler": false,
117117
"JQLitePrototype": false,
118-
"addEventListenerFn": false,
119-
"removeEventListenerFn": false,
120118
"jqLiteDocumentLoaded": false,
121119

122120
/* apis.js */

test/ng/directive/formSpec.js

Lines changed: 4 additions & 4 deletions
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);
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);
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);
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);
357357
});
358358
}));
359359

0 commit comments

Comments
 (0)