code: function GLTFLightsExtension( json ) {
  
  			this.name = EXTENSIONS.KHR_LIGHTS;
  
  			this.lights = {};
  
  			var extension = ( json.extensions && json.extensions[ EXTENSIONS.KHR_LIGHTS ] ) || {};
  			var lights = extension.lights || {};
  
  			for ( var lightId in lights ) {
  
  				var light = lights[ lightId ];
  				var lightNode;
  
  				var color = new THREE.Color().fromArray( light.color );
  
  				switch ( light.type ) {
  
  					case 'directional':
  						lightNode = new THREE.DirectionalLight( color );
  						lightNode.position.set( 0, 0, 1 );
  						break;
  
  					case 'point':
  						lightNode = new THREE.PointLight( color );
  						break;
  
  					case 'spot':
  						lightNode = new THREE.SpotLight( color );
  						lightNode.position.set( 0, 0, 1 );
  						break;
  
  					case 'ambient':
  						lightNode = new THREE.AmbientLight( color );
  						break;
  
  				}
  
  				if ( lightNode ) {
  
  					if ( light.constantAttenuation !== undefined ) {
  
  						lightNode.intensity = light.constantAttenuation;
  
  					}
  
  					if ( light.linearAttenuation !== undefined ) {
  
  						lightNode.distance = 1 / light.linearAttenuation;
  
  					}
  
  					if ( light.quadraticAttenuation !== undefined ) {
  
  						lightNode.decay = light.quadraticAttenuation;
  
  					}
  
  					if ( light.fallOffAngle !== undefined ) {
  
  						lightNode.angle = light.fallOffAngle;
  
  					}
  
  					if ( light.fallOffExponent !== undefined ) {
  
  						console.warn( 'THREE.GLTFLoader:: light.fallOffExponent not currently supported.' );
  
  					}
  
  					lightNode.name = light.name || ( 'light_' + lightId );
  					this.lights[ lightId ] = lightNode;
  
  				}
  
  			}
  
  		}
docs: Lights Extension
  
  Specification: PENDING