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

Commit b68cd49

Browse files
committed
refactor($compile): use labaled variables to represent nodeType values
This also does some cleanup in $animate
1 parent a6ee572 commit b68cd49

File tree

4 files changed

+23
-24
lines changed

4 files changed

+23
-24
lines changed

src/.jshintrc

+4
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,10 @@
9292

9393
"skipDestroyOnNextJQueryCleanData": true,
9494

95+
"NODE_TYPE_ELEMENT": false,
96+
"NODE_TYPE_TEXT": false,
97+
"NODE_TYPE_COMMENT": false,
98+
9599
/* filters.js */
96100
"getFirstThursdayOfYear": false,
97101

src/Angular.js

+8
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,10 @@
8383
getBlockNodes: true,
8484
hasOwnProperty: true,
8585
createMap: true,
86+
87+
NODE_TYPE_ELEMENT: true,
88+
NODE_TYPE_TEXT: true,
89+
NODE_TYPE_COMMENT: true,
8690
*/
8791

8892
////////////////////////////////////
@@ -1610,3 +1614,7 @@ function getBlockNodes(nodes) {
16101614
function createMap() {
16111615
return Object.create(null);
16121616
}
1617+
1618+
var NODE_TYPE_ELEMENT = 1;
1619+
var NODE_TYPE_TEXT = 3;
1620+
var NODE_TYPE_COMMENT = 8;

src/ng/animate.js

+3-16
Original file line numberDiff line numberDiff line change
@@ -84,20 +84,6 @@ var $AnimateProvider = ['$provide', function($provide) {
8484
this.$get = ['$$q', '$$asyncCallback', '$rootScope', function($$q, $$asyncCallback, $rootScope) {
8585

8686
var currentDefer;
87-
var ELEMENT_NODE = 1;
88-
89-
function extractElementNodes(element) {
90-
var elements = new Array(element.length);
91-
var count = 0;
92-
for(var i = 0; i < element.length; i++) {
93-
var elm = element[i];
94-
if (elm.nodeType == ELEMENT_NODE) {
95-
elements[count++] = elm;
96-
}
97-
}
98-
elements.length = count;
99-
return jqLite(elements);
100-
}
10187

10288
function runAnimationPostDigest(fn) {
10389
var cancelFn, defer = $$q.defer();
@@ -299,7 +285,8 @@ var $AnimateProvider = ['$provide', function($provide) {
299285
setClass : function(element, add, remove, runSynchronously) {
300286
var self = this;
301287
var STORAGE_KEY = '$$animateClasses';
302-
element = extractElementNodes(jqLite(element));
288+
var createdCache = false;
289+
element = jqLite(element);
303290

304291
if (runSynchronously) {
305292
self.$$addClassImmediately(element, add);
@@ -312,7 +299,7 @@ var $AnimateProvider = ['$provide', function($provide) {
312299
cache = {
313300
classes: {}
314301
};
315-
var createdCache = true;
302+
createdCache = true;
316303
}
317304

318305
var classes = cache.classes;

src/ng/compile.js

+8-8
Original file line numberDiff line numberDiff line change
@@ -1141,7 +1141,7 @@ function $CompileProvider($provide, $$sanitizeUriProvider) {
11411141
// We can not compile top level text elements since text nodes can be merged and we will
11421142
// not be able to attach scope data to them, so we will wrap them in <span>
11431143
forEach($compileNodes, function(node, index){
1144-
if (node.nodeType == 3 /* text node */ && node.nodeValue.match(/\S+/) /* non-empty */ ) {
1144+
if (node.nodeType == NODE_TYPE_TEXT && node.nodeValue.match(/\S+/) /* non-empty */ ) {
11451145
$compileNodes[index] = jqLite(node).wrap('<span></span>').parent()[0];
11461146
}
11471147
});
@@ -1344,7 +1344,7 @@ function $CompileProvider($provide, $$sanitizeUriProvider) {
13441344
className;
13451345

13461346
switch(nodeType) {
1347-
case 1: /* Element */
1347+
case NODE_TYPE_ELEMENT: /* Element */
13481348
// use the node name: <directive>
13491349
addDirective(directives,
13501350
directiveNormalize(nodeName_(node)), 'E', maxPriority, ignoreDirective);
@@ -1399,10 +1399,10 @@ function $CompileProvider($provide, $$sanitizeUriProvider) {
13991399
}
14001400
}
14011401
break;
1402-
case 3: /* Text Node */
1402+
case NODE_TYPE_TEXT: /* Text Node */
14031403
addTextInterpolateDirective(directives, node.nodeValue);
14041404
break;
1405-
case 8: /* Comment */
1405+
case NODE_TYPE_COMMENT: /* Comment */
14061406
try {
14071407
match = COMMENT_DIRECTIVE_REGEXP.exec(node.nodeValue);
14081408
if (match) {
@@ -1442,7 +1442,7 @@ function $CompileProvider($provide, $$sanitizeUriProvider) {
14421442
"Unterminated attribute, found '{0}' but no matching '{1}' found.",
14431443
attrStart, attrEnd);
14441444
}
1445-
if (node.nodeType == 1 /** Element **/) {
1445+
if (node.nodeType == NODE_TYPE_ELEMENT) {
14461446
if (node.hasAttribute(attrStart)) depth++;
14471447
if (node.hasAttribute(attrEnd)) depth--;
14481448
}
@@ -1625,7 +1625,7 @@ function $CompileProvider($provide, $$sanitizeUriProvider) {
16251625
}
16261626
compileNode = $template[0];
16271627

1628-
if ($template.length != 1 || compileNode.nodeType !== 1) {
1628+
if ($template.length != 1 || compileNode.nodeType !== NODE_TYPE_ELEMENT) {
16291629
throw $compileMinErr('tplrt',
16301630
"Template for directive '{0}' must have exactly one root element. {1}",
16311631
directiveName, '');
@@ -2107,7 +2107,7 @@ function $CompileProvider($provide, $$sanitizeUriProvider) {
21072107
}
21082108
compileNode = $template[0];
21092109

2110-
if ($template.length != 1 || compileNode.nodeType !== 1) {
2110+
if ($template.length != 1 || compileNode.nodeType !== NODE_TYPE_ELEMENT) {
21112111
throw $compileMinErr('tplrt',
21122112
"Template for directive '{0}' must have exactly one root element. {1}",
21132113
origAsyncDirective.name, templateUrl);
@@ -2533,7 +2533,7 @@ function removeComments(jqNodes) {
25332533

25342534
while (i--) {
25352535
var node = jqNodes[i];
2536-
if (node.nodeType === 8) {
2536+
if (node.nodeType === NODE_TYPE_COMMENT) {
25372537
splice.call(jqNodes, i, 1);
25382538
}
25392539
}

0 commit comments

Comments
 (0)