demo/module-import/js/vendor/three.module.js
function () {

		var valid = true;

		var valueSize = this.getValueSize();
		if ( valueSize - Math.floor( valueSize ) !== 0 ) {

			console.error( 'THREE.KeyframeTrack: Invalid value size in track.', this );
			valid = false;

		}

		var times = this.times,
			values = this.values,

			nKeys = times.length;

		if ( nKeys === 0 ) {

			console.error( 'THREE.KeyframeTrack: Track is empty.', this );
			valid = false;

		}

		var prevTime = null;

		for ( var i = 0; i !== nKeys; i ++ ) {

			var currTime = times[ i ];

			if ( typeof currTime === 'number' && isNaN( currTime ) ) {

				console.error( 'THREE.KeyframeTrack: Time is not a valid number.', this, i, currTime );
				valid = false;
				break;

			}

			if ( prevTime !== null && prevTime > currTime ) {

				console.error( 'THREE.KeyframeTrack: Out of order keys.', this, i, currTime, prevTime );
				valid = false;
				break;

			}

			prevTime = currTime;

		}

		if ( values !== undefined ) {

			if ( AnimationUtils.isTypedArray( values ) ) {

				for ( var i = 0, n = values.length; i !== n; ++ i ) {

					var value = values[ i ];

					if ( isNaN( value ) ) {

						console.error( 'THREE.KeyframeTrack: Value is not a valid number.', this, i, value );
						valid = false;
						break;

					}

				}

			}

		}

		return valid;

	}
function () {

		var valid = true;

		var valueSize = this.getValueSize();
		if ( valueSize - Math.floor( valueSize ) !== 0 ) {

			console.error( 'THREE.KeyframeTrack: Invalid value size in track.', this );
			valid = false;

		}

		var times = this.times,
			values = this.values,

			nKeys = times.length;

		if ( nKeys === 0 ) {

			console.error( 'THREE.KeyframeTrack: Track is empty.', this );
			valid = false;

		}

		var prevTime = null;

		for ( var i = 0; i !== nKeys; i ++ ) {

			var currTime = times[ i ];

			if ( typeof currTime === 'number' && isNaN( currTime ) ) {

				console.error( 'THREE.KeyframeTrack: Time is not a valid number.', this, i, currTime );
				valid = false;
				break;

			}

			if ( prevTime !== null && prevTime > currTime ) {

				console.error( 'THREE.KeyframeTrack: Out of order keys.', this, i, currTime, prevTime );
				valid = false;
				break;

			}

			prevTime = currTime;

		}

		if ( values !== undefined ) {

			if ( AnimationUtils.isTypedArray( values ) ) {

				for ( var i = 0, n = values.length; i !== n; ++ i ) {

					var value = values[ i ];

					if ( isNaN( value ) ) {

						console.error( 'THREE.KeyframeTrack: Value is not a valid number.', this, i, value );
						valid = false;
						break;

					}

				}

			}

		}

		return valid;

	}
function ( ) { var valid = true ; var valueSize = this . getValueSize ( ) ; if ( valueSize - Math . floor ( valueSize ) !== 0 ) { console . error ( 'THREE.KeyframeTrack: Invalid value size in track.' , this ) ; valid = false ; } var times = this . times , values = this . values , nKeys = times . length ; if ( nKeys === 0 ) { console . error ( 'THREE.KeyframeTrack: Track is empty.' , this ) ; valid = false ; } var prevTime = null ; for ( var i = 0 ; i !== nKeys ; i ++ ) { var currTime = times [ i ] ; if ( typeof currTime === 'number' && isNaN ( currTime ) ) { console . error ( 'THREE.KeyframeTrack: Time is not a valid number.' , this , i , currTime ) ; valid = false ; break ; } if ( prevTime !== null && prevTime > currTime ) { console . error ( 'THREE.KeyframeTrack: Out of order keys.' , this , i , currTime , prevTime ) ; valid = false ; break ; } prevTime = currTime ; } if ( values !== undefined ) { if ( AnimationUtils . isTypedArray ( values ) ) { for ( var i = 0 , n = values . length ; i !== n ; ++ i ) { var value = values [ i ] ; if ( isNaN ( value ) ) { console . error ( 'THREE.KeyframeTrack: Value is not a valid number.' , this , i , value ) ; valid = false ; break ; } } } } return valid ; }
ensure we do not get a GarbageInGarbageOut situation, make sure tracks are at least minimally viable
ensure we do not get a GarbageInGarbageOut situation make sure tracks are at least minimally viable