| 6648 | } |
| 6649 | |
| 6650 | function propFilter( props, specialEasing ) { |
| 6651 | var index, name, easing, value, hooks; |
| 6652 | |
| 6653 | // camelCase, specialEasing and expand cssHook pass |
| 6654 | for ( index in props ) { |
| 6655 | name = jQuery.camelCase( index ); |
| 6656 | easing = specialEasing[ name ]; |
| 6657 | value = props[ index ]; |
| 6658 | if ( jQuery.isArray( value ) ) { |
| 6659 | easing = value[ 1 ]; |
| 6660 | value = props[ index ] = value[ 0 ]; |
| 6661 | } |
| 6662 | |
| 6663 | if ( index !== name ) { |
| 6664 | props[ name ] = value; |
| 6665 | delete props[ index ]; |
| 6666 | } |
| 6667 | |
| 6668 | hooks = jQuery.cssHooks[ name ]; |
| 6669 | if ( hooks && "expand" in hooks ) { |
| 6670 | value = hooks.expand( value ); |
| 6671 | delete props[ name ]; |
| 6672 | |
| 6673 | // Not quite $.extend, this won't overwrite existing keys. |
| 6674 | // Reusing 'index' because we have the correct "name" |
| 6675 | for ( index in value ) { |
| 6676 | if ( !( index in props ) ) { |
| 6677 | props[ index ] = value[ index ]; |
| 6678 | specialEasing[ index ] = easing; |
| 6679 | } |
| 6680 | } |
| 6681 | } else { |
| 6682 | specialEasing[ name ] = easing; |
| 6683 | } |
| 6684 | } |
| 6685 | } |
| 6686 | |
| 6687 | function Animation( elem, properties, options ) { |
| 6688 | var result, |