diff options
| author | Misko Hevery | 2012-06-04 21:11:35 -0700 | 
|---|---|---|
| committer | Igor Minar | 2012-06-08 15:27:02 -0700 | 
| commit | bcc3a021ebbdc33f826cc668e40de360ee6a6b23 (patch) | |
| tree | 7b616144e89a5cad6ce8b47d94fc9261cf39e356 | |
| parent | a57141fd1d24962982e512c65e0e16d9b5edefe4 (diff) | |
| download | angular.js-bcc3a021ebbdc33f826cc668e40de360ee6a6b23.tar.bz2 | |
chore(jqLite): performance reordering
| -rw-r--r-- | src/jqLite.js | 8 | ||||
| -rw-r--r-- | src/ng/compile.js | 4 | 
2 files changed, 8 insertions, 4 deletions
| diff --git a/src/jqLite.js b/src/jqLite.js index 387de47d..3e8fb266 100644 --- a/src/jqLite.js +++ b/src/jqLite.js @@ -365,8 +365,12 @@ forEach('input,select,option,textarea,button,form'.split(','), function(value) {    BOOLEAN_ELEMENTS[uppercase(value)] = true;  }); -function isBooleanAttr(element, name) { -  return BOOLEAN_ELEMENTS[element.nodeName] && BOOLEAN_ATTR[name.toLowerCase()]; +function getBooleanAttrName(element, name) { +  // check dom last since we will most likely fail on name +  var booleanAttr = BOOLEAN_ATTR[name.toLowerCase()]; + +  // booleanAttr is here twice to minimize DOM access +  return booleanAttr && BOOLEAN_ELEMENTS[element.nodeName] && booleanAttr;  }  forEach({ diff --git a/src/ng/compile.js b/src/ng/compile.js index 5c7f1419..0d9ff9ea 100644 --- a/src/ng/compile.js +++ b/src/ng/compile.js @@ -286,7 +286,7 @@ function $CompileProvider($provide) {         * @param {string=} attrName Optional none normalized name. Defaults to key.         */        $set: function(key, value, writeAttr, attrName) { -        var booleanKey = isBooleanAttr(this.$$element[0], key.toLowerCase()); +        var booleanKey = getBooleanAttrName(this.$$element[0], key);          if (booleanKey) {            this.$$element.prop(key, value); @@ -498,7 +498,7 @@ function $CompileProvider($provide) {                attrs[nName] = value = trim((msie && name == 'href')                  ? decodeURIComponent(node.getAttribute(name, 2))                  : attr.value); -              if (isBooleanAttr(node, nName)) { +              if (getBooleanAttrName(node, nName)) {                  attrs[nName] = true; // presence means true                }                addAttrInterpolateDirective(node, directives, value, nName); | 
