Commit d6500cc8 authored by Richard Gibson's avatar Richard Gibson Committed by Dave Methvin

Fix #10858: CSS regexps recognize non-integer and explicit positive numbers.

parent 8f5f1b2e
...@@ -4,8 +4,8 @@ var ralpha = /alpha\([^)]*\)/i, ...@@ -4,8 +4,8 @@ var ralpha = /alpha\([^)]*\)/i,
ropacity = /opacity=([^)]*)/, ropacity = /opacity=([^)]*)/,
// fixed for IE9, see #8346 // fixed for IE9, see #8346
rupper = /([A-Z]|^ms)/g, rupper = /([A-Z]|^ms)/g,
rnumpx = /^-?\d+(?:px)?$/i, rnum = /^[\-+]?(?:\d*\.)?\d+$/i,
rnumnopx = /^-?\d+(?!px)[^\d\s]+$/i, rnumnonpx = /^-?(?:\d*\.)?\d+(?!px)[^\d\s]+$/i,
rrelNum = /^([\-+])=([\-+.\de]+)/, rrelNum = /^([\-+])=([\-+.\de]+)/,
rmargin = /^margin/, rmargin = /^margin/,
...@@ -181,17 +181,9 @@ jQuery.each(["height", "width"], function( i, name ) { ...@@ -181,17 +181,9 @@ jQuery.each(["height", "width"], function( i, name ) {
}, },
set: function( elem, value ) { set: function( elem, value ) {
if ( rnumpx.test( value ) ) { return rnum.test( value ) ?
// ignore negative width and height values #1599 value + "px" :
value = parseFloat( value ); value;
if ( value >= 0 ) {
return value + "px";
}
} else {
return value;
}
} }
}; };
}); });
...@@ -274,7 +266,7 @@ if ( document.defaultView && document.defaultView.getComputedStyle ) { ...@@ -274,7 +266,7 @@ if ( document.defaultView && document.defaultView.getComputedStyle ) {
// A tribute to the "awesome hack by Dean Edwards" // A tribute to the "awesome hack by Dean Edwards"
// WebKit uses "computed value (percentage if specified)" instead of "used value" for margins // WebKit uses "computed value (percentage if specified)" instead of "used value" for margins
// which is against the CSSOM draft spec: http://dev.w3.org/csswg/cssom/#resolved-values // which is against the CSSOM draft spec: http://dev.w3.org/csswg/cssom/#resolved-values
if ( !jQuery.support.pixelMargin && computedStyle && rmargin.test( name ) && rnumnopx.test( ret ) ) { if ( !jQuery.support.pixelMargin && computedStyle && rmargin.test( name ) && rnumnonpx.test( ret ) ) {
width = style.width; width = style.width;
style.width = ret; style.width = ret;
ret = computedStyle.width; ret = computedStyle.width;
...@@ -302,7 +294,7 @@ if ( document.documentElement.currentStyle ) { ...@@ -302,7 +294,7 @@ if ( document.documentElement.currentStyle ) {
// If we're not dealing with a regular pixel number // If we're not dealing with a regular pixel number
// but a number that has a weird ending, we need to convert it to pixels // but a number that has a weird ending, we need to convert it to pixels
if ( rnumnopx.test( ret ) ) { if ( rnumnonpx.test( ret ) ) {
// Remember the original values // Remember the original values
left = style.left; left = style.left;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment