Skip to content
Permalink
Browse files

Landing pull request 600. Remove jQuery.trim() to restore perf. Suppl…

…ements #10773.

More Details:
 - #600
 - http://bugs.jquery.com/ticket/10773
  • Loading branch information...
rwaldron authored and timmywil committed Nov 14, 2011
1 parent 8bc60ba commit a8460d24e0fd9cae3c9091bd9adef645804dc935
Showing with 14 additions and 24 deletions.
  1. +12 −9 src/attributes.js
  2. +2 −15 test/unit/attributes.js
@@ -355,21 +355,24 @@ jQuery.extend({
var propName, attrNames, name, l,
i = 0;

if ( value && typeof value === "string" && elem.nodeType === 1 ) {
attrNames = jQuery.trim( value ).toLowerCase().split( " " );
if ( value && elem.nodeType === 1 ) {
attrNames = value.toLowerCase().split( rspace );
l = attrNames.length;

for ( ; i < l; i++ ) {
name = attrNames[ i ];
propName = jQuery.propFix[ name ] || name;

// See #9699 for explanation of this approach (setting first, then removal)
jQuery.attr( elem, name, "" );
elem.removeAttribute( getSetAttribute ? name : propName );
if ( name ) {
propName = jQuery.propFix[ name ] || name;

// Set corresponding property to false for boolean attributes
if ( rboolean.test( name ) && propName in elem ) {
elem[ propName ] = false;
// See #9699 for explanation of this approach (setting first, then removal)
jQuery.attr( elem, name, "" );
elem.removeAttribute( getSetAttribute ? name : propName );

// Set corresponding property to false for boolean attributes
if ( rboolean.test( name ) && propName in elem ) {
elem[ propName ] = false;
}
}
}
}
@@ -481,20 +481,7 @@ test("removeAttr(String)", function() {
}
});

test("removeAttr, #", function() {

var div = jQuery("<div />");

ok( div.removeAttr( "" ), "empty string" );
ok( div.removeAttr(), "nothing" );
ok( div.removeAttr( false ), "false" );
ok( div.removeAttr( true ), "true" );
ok( div.removeAttr({ }), "object" );
ok( div.removeAttr( function(){} ), "function" );

});

test("removeAttr(Multi String)", function() {
test("removeAttr(Multi String, variable space width)", function() {
expect(8);

var div = jQuery("<div id='a' alt='b' title='c' rel='d'></div>"),
@@ -509,7 +496,7 @@ test("removeAttr(Multi String)", function() {
equal( div.attr(key), val, "Attribute `" + key + "` exists, and has a value of `" + val + "`" );
});

div.removeAttr( "id alt title rel " );
div.removeAttr( "id alt title rel " );

jQuery.each( tests, function( key, val ) {
equal( div.attr(key), undefined, "Attribute `" + key + "` was removed" );

0 comments on commit a8460d2

Please sign in to comment.
You can’t perform that action at this time.