()
| 8492 | prop = jQuery.extend( {}, prop ); |
| 8493 | |
| 8494 | function doAnimation() { |
| 8495 | // XXX 'this' does not always have a nodeName when running the |
| 8496 | // test suite |
| 8497 | |
| 8498 | if ( optall.queue === false ) { |
| 8499 | jQuery._mark( this ); |
| 8500 | } |
| 8501 | |
| 8502 | var opt = jQuery.extend( {}, optall ), |
| 8503 | isElement = this.nodeType === 1, |
| 8504 | hidden = isElement && jQuery(this).is(":hidden"), |
| 8505 | name, val, p, e, hooks, replace, |
| 8506 | parts, start, end, unit, |
| 8507 | method; |
| 8508 | |
| 8509 | // will store per property easing and be used to determine when an animation is complete |
| 8510 | opt.animatedProperties = {}; |
| 8511 | |
| 8512 | // first pass over propertys to expand / normalize |
| 8513 | for ( p in prop ) { |
| 8514 | name = jQuery.camelCase( p ); |
| 8515 | if ( p !== name ) { |
| 8516 | prop[ name ] = prop[ p ]; |
| 8517 | delete prop[ p ]; |
| 8518 | } |
| 8519 | |
| 8520 | if ( ( hooks = jQuery.cssHooks[ name ] ) && "expand" in hooks ) { |
| 8521 | replace = hooks.expand( prop[ name ] ); |
| 8522 | delete prop[ name ]; |
| 8523 | |
| 8524 | // not quite $.extend, this wont overwrite keys already present. |
| 8525 | // also - reusing 'p' from above because we have the correct "name" |
| 8526 | for ( p in replace ) { |
| 8527 | if ( ! ( p in prop ) ) { |
| 8528 | prop[ p ] = replace[ p ]; |
| 8529 | } |
| 8530 | } |
| 8531 | } |
| 8532 | } |
| 8533 | |
| 8534 | for ( name in prop ) { |
| 8535 | val = prop[ name ]; |
| 8536 | // easing resolution: per property > opt.specialEasing > opt.easing > 'swing' (default) |
| 8537 | if ( jQuery.isArray( val ) ) { |
| 8538 | opt.animatedProperties[ name ] = val[ 1 ]; |
| 8539 | val = prop[ name ] = val[ 0 ]; |
| 8540 | } else { |
| 8541 | opt.animatedProperties[ name ] = opt.specialEasing && opt.specialEasing[ name ] || opt.easing || 'swing'; |
| 8542 | } |
| 8543 | |
| 8544 | if ( val === "hide" && hidden || val === "show" && !hidden ) { |
| 8545 | return opt.complete.call( this ); |
| 8546 | } |
| 8547 | |
| 8548 | if ( isElement && ( name === "height" || name === "width" ) ) { |
| 8549 | // Make sure that nothing sneaks out |
| 8550 | // Record all 3 overflow attributes because IE does not |
| 8551 | // change the overflow attribute when overflowX and |
nothing calls this directly
no test coverage detected