Data: only use ES5 defineProperty for non-nodes

As discussed in http://bugs.jquery.com/ticket/14839, removing the use of definePropert(y|ies) brings the jQuery2 data initialization up to speed with jQuery1 for DOM nodes. For non nodes this also switches from defineProperties to defineProperty which is a bit faster, saves an object and saves some bytes.

@gibson042 this has the changed you suggested in https://github.com/jbedard/jquery/commit/d44885b3603dd41ebc47ac889bc55a9a0da0fd4f
#1668Sent from Yahoo Mail for iPadAt 6 Dec, 2014 3:27:24 am, chan yew choongc43500@yahoo.com'> wrote:Sent from Yahoo Mail for iPadAt 5 Dec, 2014 10:58:45 pm, Rick Waldronnotifications@github.com'> wrote:In src/data/Data.js:> -			unlock = Data.uid++;> -> -			// Secure it in a non-enumerable, non-writable property> -			try {> -				descriptor[ this.expando ] = { value: unlock };> -				Object.defineProperties( owner, descriptor );> -> -			// Support: Android> -			// Fallback to a less secure definition> -			} catch ( e ) {> -				descriptor[ this.expando ] = unlock;> -				jQuery.extend( owner, descriptor );> -			}> -		}> +		// Fetch the owner object cache key or create and store a new one> +		var unlock = owner[ this.expando ] || ( owner[ this.expando ] = Data.uid++
 );LGTM—Reply to this email directly or view it on GitHub.