Browse Source

Run lint fix on js and jsm files

Garrett Johnson 4 năm trước cách đây
mục cha
commit
9f07bafb9b
86 tập tin đã thay đổi với 637 bổ sung637 xóa
  1. 1 1
      examples/js/exporters/GLTFExporter.js
  2. 1 1
      examples/jsm/exporters/GLTFExporter.js
  3. 1 1
      examples/jsm/loaders/3DMLoader.js
  4. 8 8
      examples/jsm/loaders/NodeMaterialLoader.js
  5. 1 1
      examples/jsm/loaders/OBJLoader2.js
  6. 2 2
      examples/jsm/loaders/OBJLoader2Parallel.js
  7. 10 10
      examples/jsm/loaders/lwo/IFFParser.js
  8. 2 2
      examples/jsm/loaders/obj2/OBJLoader2Parser.js
  9. 1 1
      examples/jsm/loaders/obj2/shared/MaterialHandler.js
  10. 1 1
      examples/jsm/loaders/obj2/utils/CodeSerializer.js
  11. 6 6
      examples/jsm/loaders/obj2/worker/main/WorkerExecutionSupport.js
  12. 4 4
      examples/jsm/modifiers/CurveModifier.js
  13. 10 10
      examples/jsm/nodes/accessors/CameraNode.js
  14. 1 1
      examples/jsm/nodes/accessors/ColorsNode.js
  15. 2 2
      examples/jsm/nodes/accessors/LightNode.js
  16. 1 1
      examples/jsm/nodes/accessors/NormalNode.js
  17. 1 1
      examples/jsm/nodes/accessors/PositionNode.js
  18. 2 2
      examples/jsm/nodes/accessors/ReflectNode.js
  19. 2 2
      examples/jsm/nodes/accessors/ResolutionNode.js
  20. 2 2
      examples/jsm/nodes/accessors/ScreenUVNode.js
  21. 1 1
      examples/jsm/nodes/accessors/UVNode.js
  22. 1 1
      examples/jsm/nodes/core/AttributeNode.js
  23. 2 2
      examples/jsm/nodes/core/ConstNode.js
  24. 1 1
      examples/jsm/nodes/core/ExpressionNode.js
  25. 1 1
      examples/jsm/nodes/core/FunctionCallNode.js
  26. 1 1
      examples/jsm/nodes/core/FunctionNode.js
  27. 1 1
      examples/jsm/nodes/core/InputNode.js
  28. 3 3
      examples/jsm/nodes/core/Node.js
  29. 18 18
      examples/jsm/nodes/core/NodeBuilder.js
  30. 1 1
      examples/jsm/nodes/core/NodeUtils.js
  31. 1 1
      examples/jsm/nodes/core/StructNode.js
  32. 2 2
      examples/jsm/nodes/core/TempNode.js
  33. 1 1
      examples/jsm/nodes/core/VarNode.js
  34. 31 31
      examples/jsm/nodes/effects/BlurNode.js
  35. 23 23
      examples/jsm/nodes/effects/ColorAdjustmentNode.js
  36. 6 6
      examples/jsm/nodes/effects/LuminanceNode.js
  37. 1 1
      examples/jsm/nodes/inputs/BoolNode.js
  38. 2 2
      examples/jsm/nodes/inputs/ColorNode.js
  39. 1 1
      examples/jsm/nodes/inputs/CubeTextureNode.js
  40. 1 1
      examples/jsm/nodes/inputs/FloatNode.js
  41. 1 1
      examples/jsm/nodes/inputs/IntNode.js
  42. 2 2
      examples/jsm/nodes/inputs/Matrix3Node.js
  43. 2 2
      examples/jsm/nodes/inputs/Matrix4Node.js
  44. 1 1
      examples/jsm/nodes/inputs/PropertyNode.js
  45. 2 2
      examples/jsm/nodes/inputs/RTTNode.js
  46. 2 2
      examples/jsm/nodes/inputs/ReflectorNode.js
  47. 1 1
      examples/jsm/nodes/inputs/ScreenNode.js
  48. 1 1
      examples/jsm/nodes/inputs/TextureNode.js
  49. 2 2
      examples/jsm/nodes/inputs/Vector2Node.js
  50. 2 2
      examples/jsm/nodes/inputs/Vector3Node.js
  51. 2 2
      examples/jsm/nodes/inputs/Vector4Node.js
  52. 1 1
      examples/jsm/nodes/materials/BasicNodeMaterial.js
  53. 10 10
      examples/jsm/nodes/materials/MeshStandardNodeMaterial.js
  54. 2 2
      examples/jsm/nodes/materials/NodeMaterial.js
  55. 1 1
      examples/jsm/nodes/materials/PhongNodeMaterial.js
  56. 1 1
      examples/jsm/nodes/materials/SpriteNodeMaterial.js
  57. 1 1
      examples/jsm/nodes/materials/StandardNodeMaterial.js
  58. 32 32
      examples/jsm/nodes/materials/nodes/BasicNode.js
  59. 4 4
      examples/jsm/nodes/materials/nodes/MeshStandardNode.js
  60. 70 70
      examples/jsm/nodes/materials/nodes/PhongNode.js
  61. 1 1
      examples/jsm/nodes/materials/nodes/RawNode.js
  62. 27 27
      examples/jsm/nodes/materials/nodes/SpriteNode.js
  63. 79 79
      examples/jsm/nodes/materials/nodes/StandardNode.js
  64. 1 1
      examples/jsm/nodes/math/CondNode.js
  65. 2 2
      examples/jsm/nodes/math/MathNode.js
  66. 1 1
      examples/jsm/nodes/math/OperatorNode.js
  67. 33 33
      examples/jsm/nodes/misc/BumpMapNode.js
  68. 2 2
      examples/jsm/nodes/misc/NormalMapNode.js
  69. 2 2
      examples/jsm/nodes/misc/TextureCubeNode.js
  70. 22 22
      examples/jsm/nodes/misc/TextureCubeUVNode.js
  71. 3 3
      examples/jsm/nodes/postprocessing/NodePass.js
  72. 2 2
      examples/jsm/nodes/postprocessing/NodePostProcessing.js
  73. 8 8
      examples/jsm/nodes/procedural/CheckerNode.js
  74. 5 5
      examples/jsm/nodes/procedural/NoiseNode.js
  75. 1 1
      examples/jsm/nodes/utils/BypassNode.js
  76. 77 77
      examples/jsm/nodes/utils/ColorSpaceNode.js
  77. 1 1
      examples/jsm/nodes/utils/JoinNode.js
  78. 1 1
      examples/jsm/nodes/utils/MaxMIPLevelNode.js
  79. 8 8
      examples/jsm/nodes/utils/SpecularMIPLevelNode.js
  80. 1 1
      examples/jsm/nodes/utils/SubSlotNode.js
  81. 1 1
      examples/jsm/nodes/utils/SwitchNode.js
  82. 1 1
      examples/jsm/nodes/utils/TimerNode.js
  83. 4 4
      examples/jsm/nodes/utils/UVTransformNode.js
  84. 4 4
      examples/jsm/nodes/utils/VelocityNode.js
  85. 51 51
      examples/jsm/utils/GeometryCompressionUtils.js
  86. 1 1
      examples/jsm/webxr/XRControllerModelFactory.js

+ 1 - 1
examples/js/exporters/GLTFExporter.js

@@ -1700,7 +1700,7 @@ THREE.GLTFExporter.prototype = {
 				joints.push( nodeMap.get( skeleton.bones[ i ] ) );
 				joints.push( nodeMap.get( skeleton.bones[ i ] ) );
 
 
 				temporaryBoneInverse.copy( skeleton.boneInverses[ i ] );
 				temporaryBoneInverse.copy( skeleton.boneInverses[ i ] );
-				
+
 				temporaryBoneInverse.multiply( object.bindMatrix ).toArray( inverseBindMatrices, i * 16 );
 				temporaryBoneInverse.multiply( object.bindMatrix ).toArray( inverseBindMatrices, i * 16 );
 
 
 			}
 			}

+ 1 - 1
examples/jsm/exporters/GLTFExporter.js

@@ -1724,7 +1724,7 @@ GLTFExporter.prototype = {
 				joints.push( nodeMap.get( skeleton.bones[ i ] ) );
 				joints.push( nodeMap.get( skeleton.bones[ i ] ) );
 
 
 				temporaryBoneInverse.copy( skeleton.boneInverses[ i ] );
 				temporaryBoneInverse.copy( skeleton.boneInverses[ i ] );
-				
+
 				temporaryBoneInverse.multiply( object.bindMatrix ).toArray( inverseBindMatrices, i * 16 );
 				temporaryBoneInverse.multiply( object.bindMatrix ).toArray( inverseBindMatrices, i * 16 );
 
 
 			}
 			}

+ 1 - 1
examples/jsm/loaders/3DMLoader.js

@@ -626,7 +626,7 @@ Rhino3dmLoader.prototype = Object.assign( Object.create( Loader.prototype ), {
 
 
 				} else if ( geometry.isLinearLight ) {
 				} else if ( geometry.isLinearLight ) {
 
 
-					console.warn( `THREE.3DMLoader:  No conversion exists for linear lights.` );
+					console.warn( 'THREE.3DMLoader:  No conversion exists for linear lights.' );
 
 
 					return;
 					return;
 
 

+ 8 - 8
examples/jsm/loaders/NodeMaterialLoader.js

@@ -23,9 +23,9 @@ var NodeMaterialLoaderUtils = {
 
 
 		recursive = recursive !== undefined ? recursive : true;
 		recursive = recursive !== undefined ? recursive : true;
 
 
-		if ( typeof uuid === "object" ) uuid = uuid.uuid;
+		if ( typeof uuid === 'object' ) uuid = uuid.uuid;
 
 
-		if ( typeof object === "object" ) {
+		if ( typeof object === 'object' ) {
 
 
 			var keys = Object.keys( object );
 			var keys = Object.keys( object );
 
 
@@ -116,7 +116,7 @@ Object.assign( NodeMaterialLoader.prototype, {
 
 
 		if ( ! object ) {
 		if ( ! object ) {
 
 
-			console.warn( "Node \"" + uuid + "\" not found." );
+			console.warn( 'Node "' + uuid + '" not found.' );
 
 
 		}
 		}
 
 
@@ -128,12 +128,12 @@ Object.assign( NodeMaterialLoader.prototype, {
 
 
 		switch ( typeof json ) {
 		switch ( typeof json ) {
 
 
-			case "boolean":
-			case "number":
+			case 'boolean':
+			case 'number':
 
 
 				return json;
 				return json;
 
 
-			case "string":
+			case 'string':
 
 
 				if ( /^\w{8}-\w{4}-\w{4}-\w{4}-\w{12}$/i.test( json ) || this.library[ json ] ) {
 				if ( /^\w{8}-\w{4}-\w{4}-\w{4}-\w{12}$/i.test( json ) || this.library[ json ] ) {
 
 
@@ -157,7 +157,7 @@ Object.assign( NodeMaterialLoader.prototype, {
 
 
 					for ( var prop in json ) {
 					for ( var prop in json ) {
 
 
-						if ( prop === "uuid" ) continue;
+						if ( prop === 'uuid' ) continue;
 
 
 						json[ prop ] = this.resolve( json[ prop ] );
 						json[ prop ] = this.resolve( json[ prop ] );
 
 
@@ -179,7 +179,7 @@ Object.assign( NodeMaterialLoader.prototype, {
 
 
 			node = json.nodes[ uuid ];
 			node = json.nodes[ uuid ];
 
 
-			object = new Nodes[ node.nodeType + "Node" ]();
+			object = new Nodes[ node.nodeType + 'Node' ]();
 
 
 			if ( node.name ) {
 			if ( node.name ) {
 
 

+ 1 - 1
examples/jsm/loaders/OBJLoader2.js

@@ -299,7 +299,7 @@ OBJLoader2.prototype = Object.assign( Object.create( Loader.prototype ), {
 		this.setCallbackOnMeshAlter( onMeshAlter );
 		this.setCallbackOnMeshAlter( onMeshAlter );
 		const fileLoaderOnLoad = function ( content ) {
 		const fileLoaderOnLoad = function ( content ) {
 
 
-			scope.parser.callbacks.onLoad( scope.parse( content ), "OBJLoader2#load: Parsing completed" );
+			scope.parser.callbacks.onLoad( scope.parse( content ), 'OBJLoader2#load: Parsing completed' );
 
 
 		};
 		};
 
 

+ 2 - 2
examples/jsm/loaders/OBJLoader2Parallel.js

@@ -73,7 +73,7 @@ OBJLoader2Parallel.prototype = Object.assign( Object.create( OBJLoader2.prototyp
 
 
 		if ( jsmWorkerUrl === undefined || jsmWorkerUrl === null ) {
 		if ( jsmWorkerUrl === undefined || jsmWorkerUrl === null ) {
 
 
-			throw "The url to the jsm worker is not valid. Aborting...";
+			throw 'The url to the jsm worker is not valid. Aborting...';
 
 
 		}
 		}
 
 
@@ -165,7 +165,7 @@ OBJLoader2Parallel.prototype = Object.assign( Object.create( OBJLoader2.prototyp
 
 
 			if ( this.parser.callbacks.onLoad === this.parser._onLoad ) {
 			if ( this.parser.callbacks.onLoad === this.parser._onLoad ) {
 
 
-				throw "No callback other than the default callback was provided! Aborting!";
+				throw 'No callback other than the default callback was provided! Aborting!';
 
 
 			}
 			}
 
 

+ 10 - 10
examples/jsm/loaders/lwo/IFFParser.js

@@ -93,7 +93,7 @@ IFFParser.prototype = {
 
 
 		if ( topForm !== 'FORM' ) {
 		if ( topForm !== 'FORM' ) {
 
 
-			console.warn( "LWOLoader: Top-level FORM missing." );
+			console.warn( 'LWOLoader: Top-level FORM missing.' );
 			return;
 			return;
 
 
 		}
 		}
@@ -577,7 +577,7 @@ IFFParser.prototype = {
 
 
 		var texture = {
 		var texture = {
 			index: this.reader.getUint32(),
 			index: this.reader.getUint32(),
-			fileName: ""
+			fileName: ''
 		};
 		};
 
 
 		// seach STIL block
 		// seach STIL block
@@ -1137,27 +1137,27 @@ Debugger.prototype = {
 		switch ( this.node ) {
 		switch ( this.node ) {
 
 
 			case 0:
 			case 0:
-				nodeType = "FORM";
+				nodeType = 'FORM';
 				break;
 				break;
 
 
 			case 1:
 			case 1:
-				nodeType = "CHK";
+				nodeType = 'CHK';
 				break;
 				break;
 
 
 			case 2:
 			case 2:
-				nodeType = "S-CHK";
+				nodeType = 'S-CHK';
 				break;
 				break;
 
 
 		}
 		}
 
 
 		console.log(
 		console.log(
-			"| ".repeat( this.depth ) +
+			'| '.repeat( this.depth ) +
 			nodeType,
 			nodeType,
 			this.nodeID,
 			this.nodeID,
 			`( ${this.offset} ) -> ( ${this.dataOffset + this.length} )`,
 			`( ${this.offset} ) -> ( ${this.dataOffset + this.length} )`,
-			( ( this.node == 0 ) ? " {" : "" ),
-			( ( this.skipped ) ? "SKIPPED" : "" ),
-			( ( this.node == 0 && this.skipped ) ? "}" : "" )
+			( ( this.node == 0 ) ? ' {' : '' ),
+			( ( this.skipped ) ? 'SKIPPED' : '' ),
+			( ( this.node == 0 && this.skipped ) ? '}' : '' )
 		);
 		);
 
 
 		if ( this.node == 0 && ! this.skipped ) {
 		if ( this.node == 0 && ! this.skipped ) {
@@ -1180,7 +1180,7 @@ Debugger.prototype = {
 			if ( this.offset >= this.formList[ i ] ) {
 			if ( this.offset >= this.formList[ i ] ) {
 
 
 				this.depth -= 1;
 				this.depth -= 1;
-				console.log( "| ".repeat( this.depth ) + "}" );
+				console.log( '| '.repeat( this.depth ) + '}' );
 				this.formList.splice( - 1, 1 );
 				this.formList.splice( - 1, 1 );
 
 
 			}
 			}

+ 2 - 2
examples/jsm/loaders/obj2/OBJLoader2Parser.js

@@ -285,7 +285,7 @@ OBJLoader2Parser.prototype = {
 
 
 	_onLoad: function ( object3d, message ) {
 	_onLoad: function ( object3d, message ) {
 
 
-		console.log( "You reached parser default onLoad callback: " + message );
+		console.log( 'You reached parser default onLoad callback: ' + message );
 
 
 	},
 	},
 
 
@@ -629,7 +629,7 @@ OBJLoader2Parser.prototype = {
 		let smoothingGroupInt = parseInt( smoothingGroup );
 		let smoothingGroupInt = parseInt( smoothingGroup );
 		if ( isNaN( smoothingGroupInt ) ) {
 		if ( isNaN( smoothingGroupInt ) ) {
 
 
-			smoothingGroupInt = smoothingGroup === "off" ? 0 : 1;
+			smoothingGroupInt = smoothingGroup === 'off' ? 0 : 1;
 
 
 		}
 		}
 
 

+ 1 - 1
examples/jsm/loaders/obj2/shared/MaterialHandler.js

@@ -96,7 +96,7 @@ MaterialHandler.prototype = {
 		if ( materialCloneInstructions !== undefined && materialCloneInstructions !== null ) {
 		if ( materialCloneInstructions !== undefined && materialCloneInstructions !== null ) {
 
 
 			let materialNameOrg = materialCloneInstructions.materialNameOrg;
 			let materialNameOrg = materialCloneInstructions.materialNameOrg;
-			materialNameOrg = ( materialNameOrg !== undefined && materialNameOrg !== null ) ? materialNameOrg : "";
+			materialNameOrg = ( materialNameOrg !== undefined && materialNameOrg !== null ) ? materialNameOrg : '';
 			const materialOrg = this.materials[ materialNameOrg ];
 			const materialOrg = this.materials[ materialNameOrg ];
 			if ( materialOrg ) {
 			if ( materialOrg ) {
 
 

+ 1 - 1
examples/jsm/loaders/obj2/utils/CodeSerializer.js

@@ -100,7 +100,7 @@ const CodeSerializer = {
 				} else if ( typeof objectPart === 'object' ) {
 				} else if ( typeof objectPart === 'object' ) {
 
 
 					console.log( 'Omitting object "' + funcInstructions.getName() + '" and replace it with empty object.' );
 					console.log( 'Omitting object "' + funcInstructions.getName() + '" and replace it with empty object.' );
-					funcInstructions.setCode( "{}" );
+					funcInstructions.setCode( '{}' );
 
 
 				} else {
 				} else {
 
 

+ 6 - 6
examples/jsm/loaders/obj2/worker/main/WorkerExecutionSupport.js

@@ -119,9 +119,9 @@ CodeBuilderInstructions.prototype = {
 const WorkerExecutionSupport = function () {
 const WorkerExecutionSupport = function () {
 
 
 	// check worker support first
 	// check worker support first
-	if ( window.Worker === undefined ) throw "This browser does not support web workers!";
-	if ( window.Blob === undefined ) throw "This browser does not support Blob!";
-	if ( typeof window.URL.createObjectURL !== 'function' ) throw "This browser does not support Object creation from URL!";
+	if ( window.Worker === undefined ) throw 'This browser does not support web workers!';
+	if ( window.Blob === undefined ) throw 'This browser does not support Blob!';
+	if ( typeof window.URL.createObjectURL !== 'function' ) throw 'This browser does not support Object creation from URL!';
 
 
 	this._reset();
 	this._reset();
 
 
@@ -296,7 +296,7 @@ WorkerExecutionSupport.prototype = {
 
 
 			try {
 			try {
 
 
-				const worker = new Worker( codeBuilderInstructions.jsmWorkerUrl.href, { type: "module" } );
+				const worker = new Worker( codeBuilderInstructions.jsmWorkerUrl.href, { type: 'module' } );
 				this._configureWorkerCommunication( worker, true, codeBuilderInstructions.defaultGeometryType, timeLabel );
 				this._configureWorkerCommunication( worker, true, codeBuilderInstructions.defaultGeometryType, timeLabel );
 
 
 			} catch ( e ) {
 			} catch ( e ) {
@@ -305,7 +305,7 @@ WorkerExecutionSupport.prototype = {
 				// Chrome throws this exception, but Firefox currently does not complain, but can't execute the worker afterwards
 				// Chrome throws this exception, but Firefox currently does not complain, but can't execute the worker afterwards
 				if ( e instanceof TypeError || e instanceof SyntaxError ) {
 				if ( e instanceof TypeError || e instanceof SyntaxError ) {
 
 
-					console.error( "Modules are not supported in workers." );
+					console.error( 'Modules are not supported in workers.' );
 
 
 				}
 				}
 
 
@@ -426,7 +426,7 @@ WorkerExecutionSupport.prototype = {
 	_receiveWorkerMessage: function ( event ) {
 	_receiveWorkerMessage: function ( event ) {
 
 
 		// fast-fail in case of error
 		// fast-fail in case of error
-		if ( event.type === "error" ) {
+		if ( event.type === 'error' ) {
 
 
 			console.error( event );
 			console.error( event );
 			return;
 			return;

+ 4 - 4
examples/jsm/modifiers/CurveModifier.js

@@ -132,13 +132,13 @@ export function modifyShader( material, uniforms, numberOfCurves = 1 ) {
 		${shader.vertexShader}
 		${shader.vertexShader}
 		`
 		`
 		// chunk import moved in front of modified shader below
 		// chunk import moved in front of modified shader below
-			.replace( '#include <beginnormal_vertex>', `` )
+			.replace( '#include <beginnormal_vertex>', '' )
 
 
 			// vec3 transformedNormal declaration overriden below
 			// vec3 transformedNormal declaration overriden below
-			.replace( '#include <defaultnormal_vertex>', `` )
+			.replace( '#include <defaultnormal_vertex>', '' )
 
 
 			// vec3 transformed declaration overriden below
 			// vec3 transformed declaration overriden below
-			.replace( '#include <begin_vertex>', `` )
+			.replace( '#include <begin_vertex>', '' )
 
 
 			// shader override
 			// shader override
 			.replace(
 			.replace(
@@ -315,7 +315,7 @@ export class InstancedFlow extends Flow {
 	 */
 	 */
 	setCurve( index, curveNo ) {
 	setCurve( index, curveNo ) {
 
 
-		if ( isNaN( curveNo ) ) throw Error( "curve index being set is Not a Number (NaN)" );
+		if ( isNaN( curveNo ) ) throw Error( 'curve index being set is Not a Number (NaN)' );
 		this.whichCurve[ index ] = curveNo;
 		this.whichCurve[ index ] = curveNo;
 		this.writeChanges( index );
 		this.writeChanges( index );
 
 

+ 10 - 10
examples/jsm/nodes/accessors/CameraNode.js

@@ -15,22 +15,22 @@ function CameraNode( scope, camera ) {
 CameraNode.Nodes = ( function () {
 CameraNode.Nodes = ( function () {
 
 
 	var depthColor = new FunctionNode( [
 	var depthColor = new FunctionNode( [
-		"float depthColor( float mNear, float mFar ) {",
+		'float depthColor( float mNear, float mFar ) {',
 
 
-		"	#ifdef USE_LOGDEPTHBUF_EXT",
+		'	#ifdef USE_LOGDEPTHBUF_EXT',
 
 
-		"		float depth = gl_FragDepthEXT / gl_FragCoord.w;",
+		'		float depth = gl_FragDepthEXT / gl_FragCoord.w;',
 
 
-		"	#else",
+		'	#else',
 
 
-		"		float depth = gl_FragCoord.z / gl_FragCoord.w;",
+		'		float depth = gl_FragCoord.z / gl_FragCoord.w;',
 
 
-		"	#endif",
+		'	#endif',
 
 
-		"	return 1.0 - smoothstep( mNear, mFar, depth );",
+		'	return 1.0 - smoothstep( mNear, mFar, depth );',
 
 
-		"}"
-	].join( "\n" ) );
+		'}'
+	].join( '\n' ) );
 
 
 	return {
 	return {
 		depthColor: depthColor
 		depthColor: depthColor
@@ -44,7 +44,7 @@ CameraNode.TO_VERTEX = 'toVertex';
 
 
 CameraNode.prototype = Object.create( TempNode.prototype );
 CameraNode.prototype = Object.create( TempNode.prototype );
 CameraNode.prototype.constructor = CameraNode;
 CameraNode.prototype.constructor = CameraNode;
-CameraNode.prototype.nodeType = "Camera";
+CameraNode.prototype.nodeType = 'Camera';
 
 
 CameraNode.prototype.setCamera = function ( camera ) {
 CameraNode.prototype.setCamera = function ( camera ) {
 
 

+ 1 - 1
examples/jsm/nodes/accessors/ColorsNode.js

@@ -13,7 +13,7 @@ function ColorsNode( index ) {
 
 
 ColorsNode.prototype = Object.create( TempNode.prototype );
 ColorsNode.prototype = Object.create( TempNode.prototype );
 ColorsNode.prototype.constructor = ColorsNode;
 ColorsNode.prototype.constructor = ColorsNode;
-ColorsNode.prototype.nodeType = "Colors";
+ColorsNode.prototype.nodeType = 'Colors';
 
 
 ColorsNode.prototype.generate = function ( builder, output ) {
 ColorsNode.prototype.generate = function ( builder, output ) {
 
 

+ 2 - 2
examples/jsm/nodes/accessors/LightNode.js

@@ -12,7 +12,7 @@ LightNode.TOTAL = 'total';
 
 
 LightNode.prototype = Object.create( TempNode.prototype );
 LightNode.prototype = Object.create( TempNode.prototype );
 LightNode.prototype.constructor = LightNode;
 LightNode.prototype.constructor = LightNode;
-LightNode.prototype.nodeType = "Light";
+LightNode.prototype.nodeType = 'Light';
 
 
 LightNode.prototype.generate = function ( builder, output ) {
 LightNode.prototype.generate = function ( builder, output ) {
 
 
@@ -22,7 +22,7 @@ LightNode.prototype.generate = function ( builder, output ) {
 
 
 	} else {
 	} else {
 
 
-		console.warn( "THREE.LightNode is only compatible in \"light\" channel." );
+		console.warn( 'THREE.LightNode is only compatible in "light" channel.' );
 
 
 		return builder.format( 'vec3( 0.0 )', this.type, output );
 		return builder.format( 'vec3( 0.0 )', this.type, output );
 
 

+ 1 - 1
examples/jsm/nodes/accessors/NormalNode.js

@@ -15,7 +15,7 @@ NormalNode.VIEW = 'view';
 
 
 NormalNode.prototype = Object.create( TempNode.prototype );
 NormalNode.prototype = Object.create( TempNode.prototype );
 NormalNode.prototype.constructor = NormalNode;
 NormalNode.prototype.constructor = NormalNode;
-NormalNode.prototype.nodeType = "Normal";
+NormalNode.prototype.nodeType = 'Normal';
 
 
 NormalNode.prototype.getShared = function () {
 NormalNode.prototype.getShared = function () {
 
 

+ 1 - 1
examples/jsm/nodes/accessors/PositionNode.js

@@ -16,7 +16,7 @@ PositionNode.PROJECTION = 'projection';
 
 
 PositionNode.prototype = Object.create( TempNode.prototype );
 PositionNode.prototype = Object.create( TempNode.prototype );
 PositionNode.prototype.constructor = PositionNode;
 PositionNode.prototype.constructor = PositionNode;
-PositionNode.prototype.nodeType = "Position";
+PositionNode.prototype.nodeType = 'Position';
 
 
 PositionNode.prototype.getType = function ( ) {
 PositionNode.prototype.getType = function ( ) {
 
 

+ 2 - 2
examples/jsm/nodes/accessors/ReflectNode.js

@@ -16,7 +16,7 @@ ReflectNode.VECTOR = 'vector';
 
 
 ReflectNode.prototype = Object.create( TempNode.prototype );
 ReflectNode.prototype = Object.create( TempNode.prototype );
 ReflectNode.prototype.constructor = ReflectNode;
 ReflectNode.prototype.constructor = ReflectNode;
-ReflectNode.prototype.nodeType = "Reflect";
+ReflectNode.prototype.nodeType = 'Reflect';
 
 
 ReflectNode.prototype.getUnique = function ( builder ) {
 ReflectNode.prototype.getUnique = function ( builder ) {
 
 
@@ -128,7 +128,7 @@ ReflectNode.prototype.generate = function ( builder, output ) {
 
 
 	} else {
 	} else {
 
 
-		console.warn( "THREE.ReflectNode is not compatible with " + builder.shader + " shader." );
+		console.warn( 'THREE.ReflectNode is not compatible with ' + builder.shader + ' shader.' );
 
 
 		return builder.format( 'vec3( 0.0 )', this.type, output );
 		return builder.format( 'vec3( 0.0 )', this.type, output );
 
 

+ 2 - 2
examples/jsm/nodes/accessors/ResolutionNode.js

@@ -12,7 +12,7 @@ function ResolutionNode() {
 
 
 ResolutionNode.prototype = Object.create( Vector2Node.prototype );
 ResolutionNode.prototype = Object.create( Vector2Node.prototype );
 ResolutionNode.prototype.constructor = ResolutionNode;
 ResolutionNode.prototype.constructor = ResolutionNode;
-ResolutionNode.prototype.nodeType = "Resolution";
+ResolutionNode.prototype.nodeType = 'Resolution';
 
 
 ResolutionNode.prototype.updateFrame = function ( frame ) {
 ResolutionNode.prototype.updateFrame = function ( frame ) {
 
 
@@ -27,7 +27,7 @@ ResolutionNode.prototype.updateFrame = function ( frame ) {
 
 
 	} else {
 	} else {
 
 
-		console.warn( "ResolutionNode need a renderer in NodeFrame" );
+		console.warn( 'ResolutionNode need a renderer in NodeFrame' );
 
 
 	}
 	}
 
 

+ 2 - 2
examples/jsm/nodes/accessors/ScreenUVNode.js

@@ -11,7 +11,7 @@ function ScreenUVNode( resolution ) {
 
 
 ScreenUVNode.prototype = Object.create( TempNode.prototype );
 ScreenUVNode.prototype = Object.create( TempNode.prototype );
 ScreenUVNode.prototype.constructor = ScreenUVNode;
 ScreenUVNode.prototype.constructor = ScreenUVNode;
-ScreenUVNode.prototype.nodeType = "ScreenUV";
+ScreenUVNode.prototype.nodeType = 'ScreenUV';
 
 
 ScreenUVNode.prototype.generate = function ( builder, output ) {
 ScreenUVNode.prototype.generate = function ( builder, output ) {
 
 
@@ -23,7 +23,7 @@ ScreenUVNode.prototype.generate = function ( builder, output ) {
 
 
 	} else {
 	} else {
 
 
-		console.warn( "THREE.ScreenUVNode is not compatible with " + builder.shader + " shader." );
+		console.warn( 'THREE.ScreenUVNode is not compatible with ' + builder.shader + ' shader.' );
 
 
 		result = 'vec2( 0.0 )';
 		result = 'vec2( 0.0 )';
 
 

+ 1 - 1
examples/jsm/nodes/accessors/UVNode.js

@@ -11,7 +11,7 @@ function UVNode( index ) {
 
 
 UVNode.prototype = Object.create( TempNode.prototype );
 UVNode.prototype = Object.create( TempNode.prototype );
 UVNode.prototype.constructor = UVNode;
 UVNode.prototype.constructor = UVNode;
-UVNode.prototype.nodeType = "UV";
+UVNode.prototype.nodeType = 'UV';
 
 
 UVNode.prototype.generate = function ( builder, output ) {
 UVNode.prototype.generate = function ( builder, output ) {
 
 

+ 1 - 1
examples/jsm/nodes/core/AttributeNode.js

@@ -10,7 +10,7 @@ function AttributeNode( name, type ) {
 
 
 AttributeNode.prototype = Object.create( Node.prototype );
 AttributeNode.prototype = Object.create( Node.prototype );
 AttributeNode.prototype.constructor = AttributeNode;
 AttributeNode.prototype.constructor = AttributeNode;
-AttributeNode.prototype.nodeType = "Attribute";
+AttributeNode.prototype.nodeType = 'Attribute';
 
 
 AttributeNode.prototype.getAttributeType = function ( builder ) {
 AttributeNode.prototype.getAttributeType = function ( builder ) {
 
 

+ 2 - 2
examples/jsm/nodes/core/ConstNode.js

@@ -19,7 +19,7 @@ ConstNode.EPSILON = 'EPSILON';
 
 
 ConstNode.prototype = Object.create( TempNode.prototype );
 ConstNode.prototype = Object.create( TempNode.prototype );
 ConstNode.prototype.constructor = ConstNode;
 ConstNode.prototype.constructor = ConstNode;
-ConstNode.prototype.nodeType = "Const";
+ConstNode.prototype.nodeType = 'Const';
 
 
 ConstNode.prototype.getType = function ( builder ) {
 ConstNode.prototype.getType = function ( builder ) {
 
 
@@ -31,7 +31,7 @@ ConstNode.prototype.parse = function ( src, useDefine ) {
 
 
 	this.src = src || '';
 	this.src = src || '';
 
 
-	var name, type, value = "";
+	var name, type, value = '';
 
 
 	var match = this.src.match( declarationRegexp );
 	var match = this.src.match( declarationRegexp );
 
 

+ 1 - 1
examples/jsm/nodes/core/ExpressionNode.js

@@ -8,6 +8,6 @@ function ExpressionNode( src, type, keywords, extensions, includes ) {
 
 
 ExpressionNode.prototype = Object.create( FunctionNode.prototype );
 ExpressionNode.prototype = Object.create( FunctionNode.prototype );
 ExpressionNode.prototype.constructor = ExpressionNode;
 ExpressionNode.prototype.constructor = ExpressionNode;
-ExpressionNode.prototype.nodeType = "Expression";
+ExpressionNode.prototype.nodeType = 'Expression';
 
 
 export { ExpressionNode };
 export { ExpressionNode };

+ 1 - 1
examples/jsm/nodes/core/FunctionCallNode.js

@@ -10,7 +10,7 @@ function FunctionCallNode( func, inputs ) {
 
 
 FunctionCallNode.prototype = Object.create( TempNode.prototype );
 FunctionCallNode.prototype = Object.create( TempNode.prototype );
 FunctionCallNode.prototype.constructor = FunctionCallNode;
 FunctionCallNode.prototype.constructor = FunctionCallNode;
-FunctionCallNode.prototype.nodeType = "FunctionCall";
+FunctionCallNode.prototype.nodeType = 'FunctionCall';
 
 
 FunctionCallNode.prototype.setFunction = function ( func, inputs ) {
 FunctionCallNode.prototype.setFunction = function ( func, inputs ) {
 
 

+ 1 - 1
examples/jsm/nodes/core/FunctionNode.js

@@ -17,7 +17,7 @@ function FunctionNode( src, includes, extensions, keywords, type ) {
 
 
 FunctionNode.prototype = Object.create( TempNode.prototype );
 FunctionNode.prototype = Object.create( TempNode.prototype );
 FunctionNode.prototype.constructor = FunctionNode;
 FunctionNode.prototype.constructor = FunctionNode;
-FunctionNode.prototype.nodeType = "Function";
+FunctionNode.prototype.nodeType = 'Function';
 
 
 FunctionNode.prototype.useKeywords = true;
 FunctionNode.prototype.useKeywords = true;
 
 

+ 1 - 1
examples/jsm/nodes/core/InputNode.js

@@ -18,7 +18,7 @@ InputNode.prototype.setReadonly = function ( value ) {
 
 
 	this.readonly = value;
 	this.readonly = value;
 
 
-	this.hashProperties = this.readonly ? [ "value" ] : undefined;
+	this.hashProperties = this.readonly ? [ 'value' ] : undefined;
 
 
 	return this;
 	return this;
 
 

+ 3 - 3
examples/jsm/nodes/core/Node.js

@@ -4,7 +4,7 @@ function Node( type ) {
 
 
 	this.uuid = MathUtils.generateUUID();
 	this.uuid = MathUtils.generateUUID();
 
 
-	this.name = "";
+	this.name = '';
 
 
 	this.type = type;
 	this.type = type;
 
 
@@ -197,12 +197,12 @@ Node.prototype = {
 
 
 		var data = {};
 		var data = {};
 
 
-		if ( typeof this.nodeType !== "string" ) throw new Error( "Node does not allow serialization." );
+		if ( typeof this.nodeType !== 'string' ) throw new Error( 'Node does not allow serialization.' );
 
 
 		data.uuid = this.uuid;
 		data.uuid = this.uuid;
 		data.nodeType = this.nodeType;
 		data.nodeType = this.nodeType;
 
 
-		if ( this.name !== "" ) data.name = this.name;
+		if ( this.name !== '' ) data.name = this.name;
 
 
 		if ( JSON.stringify( this.userData ) !== '{}' ) data.userData = this.userData;
 		if ( JSON.stringify( this.userData ) !== '{}' ) data.userData = this.userData;
 
 

+ 18 - 18
examples/jsm/nodes/core/NodeBuilder.js

@@ -74,28 +74,28 @@ function NodeBuilder() {
 	this.attributes = {};
 	this.attributes = {};
 
 
 	this.prefixCode = [
 	this.prefixCode = [
-		"#ifdef TEXTURE_LOD_EXT",
+		'#ifdef TEXTURE_LOD_EXT',
 
 
-		"	#define texCube(a, b) textureCube(a, b)",
-		"	#define texCubeBias(a, b, c) textureCubeLodEXT(a, b, c)",
+		'	#define texCube(a, b) textureCube(a, b)',
+		'	#define texCubeBias(a, b, c) textureCubeLodEXT(a, b, c)',
 
 
-		"	#define tex2D(a, b) texture2D(a, b)",
-		"	#define tex2DBias(a, b, c) texture2DLodEXT(a, b, c)",
+		'	#define tex2D(a, b) texture2D(a, b)',
+		'	#define tex2DBias(a, b, c) texture2DLodEXT(a, b, c)',
 
 
-		"#else",
+		'#else',
 
 
-		"	#define texCube(a, b) textureCube(a, b)",
-		"	#define texCubeBias(a, b, c) textureCube(a, b, c)",
+		'	#define texCube(a, b) textureCube(a, b)',
+		'	#define texCubeBias(a, b, c) textureCube(a, b, c)',
 
 
-		"	#define tex2D(a, b) texture2D(a, b)",
-		"	#define tex2DBias(a, b, c) texture2D(a, b, c)",
+		'	#define tex2D(a, b) texture2D(a, b)',
+		'	#define tex2DBias(a, b, c) texture2D(a, b, c)',
 
 
-		"#endif",
+		'#endif',
 
 
-		"#include <packing>",
-		"#include <common>"
+		'#include <packing>',
+		'#include <common>'
 
 
-	].join( "\n" );
+	].join( '\n' );
 
 
 	this.parsCode = {
 	this.parsCode = {
 		vertex: '',
 		vertex: '',
@@ -522,7 +522,7 @@ NodeBuilder.prototype = {
 			this.resultCode[ shader ],
 			this.resultCode[ shader ],
 			this.finalCode[ shader ],
 			this.finalCode[ shader ],
 			'}'
 			'}'
-		].join( "\n" );
+		].join( '\n' );
 
 
 	},
 	},
 
 
@@ -542,7 +542,7 @@ NodeBuilder.prototype = {
 
 
 			if ( formatType === undefined ) {
 			if ( formatType === undefined ) {
 
 
-				throw new Error( "Node pars " + formatType + " not found." );
+				throw new Error( 'Node pars ' + formatType + ' not found.' );
 
 
 			}
 			}
 
 
@@ -677,7 +677,7 @@ NodeBuilder.prototype = {
 
 
 		} else {
 		} else {
 
 
-			throw new Error( "Include not found." );
+			throw new Error( 'Include not found.' );
 
 
 		}
 		}
 
 
@@ -964,7 +964,7 @@ NodeBuilder.prototype = {
 
 
 		} else if ( map.isWebGLRenderTarget ) {
 		} else if ( map.isWebGLRenderTarget ) {
 
 
-			console.warn( "THREE.WebGLPrograms.getTextureEncodingFromMap: don't use render targets as textures. Use their .texture property instead." );
+			console.warn( 'THREE.WebGLPrograms.getTextureEncodingFromMap: don\'t use render targets as textures. Use their .texture property instead.' );
 			encoding = map.texture.encoding;
 			encoding = map.texture.encoding;
 
 
 		}
 		}

+ 1 - 1
examples/jsm/nodes/core/NodeUtils.js

@@ -52,7 +52,7 @@ var NodeUtils = {
 
 
 			for ( var i = 0; i < list.length; ++ i ) {
 			for ( var i = 0; i < list.length; ++ i ) {
 
 
-				var data = list[ i ].split( "." ),
+				var data = list[ i ].split( '.' ),
 					property = data[ 0 ],
 					property = data[ 0 ],
 					subProperty = data[ 1 ];
 					subProperty = data[ 1 ];
 
 

+ 1 - 1
examples/jsm/nodes/core/StructNode.js

@@ -13,7 +13,7 @@ function StructNode( src ) {
 
 
 StructNode.prototype = Object.create( TempNode.prototype );
 StructNode.prototype = Object.create( TempNode.prototype );
 StructNode.prototype.constructor = StructNode;
 StructNode.prototype.constructor = StructNode;
-StructNode.prototype.nodeType = "Struct";
+StructNode.prototype.nodeType = 'Struct';
 
 
 StructNode.prototype.getType = function ( builder ) {
 StructNode.prototype.getType = function ( builder ) {
 
 

+ 2 - 2
examples/jsm/nodes/core/TempNode.js

@@ -114,7 +114,7 @@ TempNode.prototype.getUuid = function ( unique ) {
 
 
 	var uuid = unique || unique == undefined ? this.constructor.uuid || this.uuid : this.uuid;
 	var uuid = unique || unique == undefined ? this.constructor.uuid || this.uuid : this.uuid;
 
 
-	if ( typeof this.scope === "string" ) uuid = this.scope + '-' + uuid;
+	if ( typeof this.scope === 'string' ) uuid = this.scope + '-' + uuid;
 
 
 	return uuid;
 	return uuid;
 
 
@@ -132,7 +132,7 @@ TempNode.prototype.getTemp = function ( builder, uuid ) {
 
 
 TempNode.prototype.generate = function ( builder, output, uuid, type, ns ) {
 TempNode.prototype.generate = function ( builder, output, uuid, type, ns ) {
 
 
-	if ( ! this.getShared( builder, output ) ) console.error( "THREE.TempNode is not shared!" );
+	if ( ! this.getShared( builder, output ) ) console.error( 'THREE.TempNode is not shared!' );
 
 
 	uuid = uuid || this.uuid;
 	uuid = uuid || this.uuid;
 
 

+ 1 - 1
examples/jsm/nodes/core/VarNode.js

@@ -10,7 +10,7 @@ function VarNode( type, value ) {
 
 
 VarNode.prototype = Object.create( Node.prototype );
 VarNode.prototype = Object.create( Node.prototype );
 VarNode.prototype.constructor = VarNode;
 VarNode.prototype.constructor = VarNode;
-VarNode.prototype.nodeType = "Var";
+VarNode.prototype.nodeType = 'Var';
 
 
 VarNode.prototype.getType = function ( builder ) {
 VarNode.prototype.getType = function ( builder ) {
 
 

+ 31 - 31
examples/jsm/nodes/effects/BlurNode.js

@@ -27,36 +27,36 @@ function BlurNode( value, uv, radius, size ) {
 BlurNode.Nodes = ( function () {
 BlurNode.Nodes = ( function () {
 
 
 	var blurX = new FunctionNode( [
 	var blurX = new FunctionNode( [
-		"vec4 blurX( sampler2D tex, vec2 uv, float s ) {",
-		"	vec4 sum = vec4( 0.0 );",
-		"	sum += texture2D( tex, vec2( uv.x - 4.0 * s, uv.y ) ) * 0.051;",
-		"	sum += texture2D( tex, vec2( uv.x - 3.0 * s, uv.y ) ) * 0.0918;",
-		"	sum += texture2D( tex, vec2( uv.x - 2.0 * s, uv.y ) ) * 0.12245;",
-		"	sum += texture2D( tex, vec2( uv.x - 1.0 * s, uv.y ) ) * 0.1531;",
-		"	sum += texture2D( tex, vec2( uv.x, uv.y ) ) * 0.1633;",
-		"	sum += texture2D( tex, vec2( uv.x + 1.0 * s, uv.y ) ) * 0.1531;",
-		"	sum += texture2D( tex, vec2( uv.x + 2.0 * s, uv.y ) ) * 0.12245;",
-		"	sum += texture2D( tex, vec2( uv.x + 3.0 * s, uv.y ) ) * 0.0918;",
-		"	sum += texture2D( tex, vec2( uv.x + 4.0 * s, uv.y ) ) * 0.051;",
-		"	return sum * .667;",
-		"}"
-	].join( "\n" ) );
+		'vec4 blurX( sampler2D tex, vec2 uv, float s ) {',
+		'	vec4 sum = vec4( 0.0 );',
+		'	sum += texture2D( tex, vec2( uv.x - 4.0 * s, uv.y ) ) * 0.051;',
+		'	sum += texture2D( tex, vec2( uv.x - 3.0 * s, uv.y ) ) * 0.0918;',
+		'	sum += texture2D( tex, vec2( uv.x - 2.0 * s, uv.y ) ) * 0.12245;',
+		'	sum += texture2D( tex, vec2( uv.x - 1.0 * s, uv.y ) ) * 0.1531;',
+		'	sum += texture2D( tex, vec2( uv.x, uv.y ) ) * 0.1633;',
+		'	sum += texture2D( tex, vec2( uv.x + 1.0 * s, uv.y ) ) * 0.1531;',
+		'	sum += texture2D( tex, vec2( uv.x + 2.0 * s, uv.y ) ) * 0.12245;',
+		'	sum += texture2D( tex, vec2( uv.x + 3.0 * s, uv.y ) ) * 0.0918;',
+		'	sum += texture2D( tex, vec2( uv.x + 4.0 * s, uv.y ) ) * 0.051;',
+		'	return sum * .667;',
+		'}'
+	].join( '\n' ) );
 
 
 	var blurY = new FunctionNode( [
 	var blurY = new FunctionNode( [
-		"vec4 blurY( sampler2D tex, vec2 uv, float s ) {",
-		"	vec4 sum = vec4( 0.0 );",
-		"	sum += texture2D( tex, vec2( uv.x, uv.y - 4.0 * s ) ) * 0.051;",
-		"	sum += texture2D( tex, vec2( uv.x, uv.y - 3.0 * s ) ) * 0.0918;",
-		"	sum += texture2D( tex, vec2( uv.x, uv.y - 2.0 * s ) ) * 0.12245;",
-		"	sum += texture2D( tex, vec2( uv.x, uv.y - 1.0 * s ) ) * 0.1531;",
-		"	sum += texture2D( tex, vec2( uv.x, uv.y ) ) * 0.1633;",
-		"	sum += texture2D( tex, vec2( uv.x, uv.y + 1.0 * s ) ) * 0.1531;",
-		"	sum += texture2D( tex, vec2( uv.x, uv.y + 2.0 * s ) ) * 0.12245;",
-		"	sum += texture2D( tex, vec2( uv.x, uv.y + 3.0 * s ) ) * 0.0918;",
-		"	sum += texture2D( tex, vec2( uv.x, uv.y + 4.0 * s ) ) * 0.051;",
-		"	return sum * .667;",
-		"}"
-	].join( "\n" ) );
+		'vec4 blurY( sampler2D tex, vec2 uv, float s ) {',
+		'	vec4 sum = vec4( 0.0 );',
+		'	sum += texture2D( tex, vec2( uv.x, uv.y - 4.0 * s ) ) * 0.051;',
+		'	sum += texture2D( tex, vec2( uv.x, uv.y - 3.0 * s ) ) * 0.0918;',
+		'	sum += texture2D( tex, vec2( uv.x, uv.y - 2.0 * s ) ) * 0.12245;',
+		'	sum += texture2D( tex, vec2( uv.x, uv.y - 1.0 * s ) ) * 0.1531;',
+		'	sum += texture2D( tex, vec2( uv.x, uv.y ) ) * 0.1633;',
+		'	sum += texture2D( tex, vec2( uv.x, uv.y + 1.0 * s ) ) * 0.1531;',
+		'	sum += texture2D( tex, vec2( uv.x, uv.y + 2.0 * s ) ) * 0.12245;',
+		'	sum += texture2D( tex, vec2( uv.x, uv.y + 3.0 * s ) ) * 0.0918;',
+		'	sum += texture2D( tex, vec2( uv.x, uv.y + 4.0 * s ) ) * 0.051;',
+		'	return sum * .667;',
+		'}'
+	].join( '\n' ) );
 
 
 	return {
 	return {
 		blurX: blurX,
 		blurX: blurX,
@@ -68,8 +68,8 @@ BlurNode.Nodes = ( function () {
 
 
 BlurNode.prototype = Object.create( TempNode.prototype );
 BlurNode.prototype = Object.create( TempNode.prototype );
 BlurNode.prototype.constructor = BlurNode;
 BlurNode.prototype.constructor = BlurNode;
-BlurNode.prototype.nodeType = "Blur";
-BlurNode.prototype.hashProperties = [ "blurX", "blurY" ];
+BlurNode.prototype.nodeType = 'Blur';
+BlurNode.prototype.hashProperties = [ 'blurX', 'blurY' ];
 
 
 BlurNode.prototype.updateFrame = function ( /* frame */ ) {
 BlurNode.prototype.updateFrame = function ( /* frame */ ) {
 
 
@@ -118,7 +118,7 @@ BlurNode.prototype.generate = function ( builder, output ) {
 
 
 	} else {
 	} else {
 
 
-		console.warn( "THREE.BlurNode is not compatible with " + builder.shader + " shader." );
+		console.warn( 'THREE.BlurNode is not compatible with ' + builder.shader + ' shader.' );
 
 
 		return builder.format( 'vec4( 0.0 )', this.getType( builder ), output );
 		return builder.format( 'vec4( 0.0 )', this.getType( builder ), output );
 
 

+ 23 - 23
examples/jsm/nodes/effects/ColorAdjustmentNode.js

@@ -16,45 +16,45 @@ function ColorAdjustmentNode( rgb, adjustment, method ) {
 ColorAdjustmentNode.Nodes = ( function () {
 ColorAdjustmentNode.Nodes = ( function () {
 
 
 	var hue = new FunctionNode( [
 	var hue = new FunctionNode( [
-		"vec3 hue(vec3 rgb, float adjustment) {",
+		'vec3 hue(vec3 rgb, float adjustment) {',
 
 
-		"	const mat3 RGBtoYIQ = mat3(0.299, 0.587, 0.114, 0.595716, -0.274453, -0.321263, 0.211456, -0.522591, 0.311135);",
-		"	const mat3 YIQtoRGB = mat3(1.0, 0.9563, 0.6210, 1.0, -0.2721, -0.6474, 1.0, -1.107, 1.7046);",
+		'	const mat3 RGBtoYIQ = mat3(0.299, 0.587, 0.114, 0.595716, -0.274453, -0.321263, 0.211456, -0.522591, 0.311135);',
+		'	const mat3 YIQtoRGB = mat3(1.0, 0.9563, 0.6210, 1.0, -0.2721, -0.6474, 1.0, -1.107, 1.7046);',
 
 
-		"	vec3 yiq = RGBtoYIQ * rgb;",
+		'	vec3 yiq = RGBtoYIQ * rgb;',
 
 
-		"	float hue = atan(yiq.z, yiq.y) + adjustment;",
-		"	float chroma = sqrt(yiq.z * yiq.z + yiq.y * yiq.y);",
+		'	float hue = atan(yiq.z, yiq.y) + adjustment;',
+		'	float chroma = sqrt(yiq.z * yiq.z + yiq.y * yiq.y);',
 
 
-		"	return YIQtoRGB * vec3(yiq.x, chroma * cos(hue), chroma * sin(hue));",
+		'	return YIQtoRGB * vec3(yiq.x, chroma * cos(hue), chroma * sin(hue));',
 
 
-		"}"
-	].join( "\n" ) );
+		'}'
+	].join( '\n' ) );
 
 
 	var saturation = new FunctionNode( [
 	var saturation = new FunctionNode( [
 		// Algorithm from Chapter 16 of OpenGL Shading Language
 		// Algorithm from Chapter 16 of OpenGL Shading Language
-		"vec3 saturation(vec3 rgb, float adjustment) {",
+		'vec3 saturation(vec3 rgb, float adjustment) {',
 
 
-		"	vec3 intensity = vec3( luminance( rgb ) );",
+		'	vec3 intensity = vec3( luminance( rgb ) );',
 
 
-		"	return mix( intensity, rgb, adjustment );",
+		'	return mix( intensity, rgb, adjustment );',
 
 
-		"}"
-	].join( "\n" ), [ LuminanceNode.Nodes.luminance ] ); // include LuminanceNode function
+		'}'
+	].join( '\n' ), [ LuminanceNode.Nodes.luminance ] ); // include LuminanceNode function
 
 
 	var vibrance = new FunctionNode( [
 	var vibrance = new FunctionNode( [
 		// Shader by Evan Wallace adapted by @lo-th
 		// Shader by Evan Wallace adapted by @lo-th
-		"vec3 vibrance(vec3 rgb, float adjustment) {",
+		'vec3 vibrance(vec3 rgb, float adjustment) {',
 
 
-		"	float average = (rgb.r + rgb.g + rgb.b) / 3.0;",
+		'	float average = (rgb.r + rgb.g + rgb.b) / 3.0;',
 
 
-		"	float mx = max(rgb.r, max(rgb.g, rgb.b));",
-		"	float amt = (mx - average) * (-3.0 * adjustment);",
+		'	float mx = max(rgb.r, max(rgb.g, rgb.b));',
+		'	float amt = (mx - average) * (-3.0 * adjustment);',
 
 
-		"	return mix(rgb.rgb, vec3(mx), amt);",
+		'	return mix(rgb.rgb, vec3(mx), amt);',
 
 
-		"}"
-	].join( "\n" ) );
+		'}'
+	].join( '\n' ) );
 
 
 	return {
 	return {
 		hue: hue,
 		hue: hue,
@@ -72,8 +72,8 @@ ColorAdjustmentNode.CONTRAST = 'contrast';
 
 
 ColorAdjustmentNode.prototype = Object.create( TempNode.prototype );
 ColorAdjustmentNode.prototype = Object.create( TempNode.prototype );
 ColorAdjustmentNode.prototype.constructor = ColorAdjustmentNode;
 ColorAdjustmentNode.prototype.constructor = ColorAdjustmentNode;
-ColorAdjustmentNode.prototype.nodeType = "ColorAdjustment";
-ColorAdjustmentNode.prototype.hashProperties = [ "method" ];
+ColorAdjustmentNode.prototype.nodeType = 'ColorAdjustment';
+ColorAdjustmentNode.prototype.hashProperties = [ 'method' ];
 
 
 ColorAdjustmentNode.prototype.generate = function ( builder, output ) {
 ColorAdjustmentNode.prototype.generate = function ( builder, output ) {
 
 

+ 6 - 6
examples/jsm/nodes/effects/LuminanceNode.js

@@ -12,16 +12,16 @@ function LuminanceNode( rgb ) {
 
 
 LuminanceNode.Nodes = ( function () {
 LuminanceNode.Nodes = ( function () {
 
 
-	var LUMA = new ConstNode( "vec3 LUMA vec3( 0.2125, 0.7154, 0.0721 )" );
+	var LUMA = new ConstNode( 'vec3 LUMA vec3( 0.2125, 0.7154, 0.0721 )' );
 
 
 	var luminance = new FunctionNode( [
 	var luminance = new FunctionNode( [
 		// Algorithm from Chapter 10 of Graphics Shaders
 		// Algorithm from Chapter 10 of Graphics Shaders
-		"float luminance( vec3 rgb ) {",
+		'float luminance( vec3 rgb ) {',
 
 
-		"	return dot( rgb, LUMA );",
+		'	return dot( rgb, LUMA );',
 
 
-		"}"
-	].join( "\n" ), [ LUMA ] );
+		'}'
+	].join( '\n' ), [ LUMA ] );
 
 
 	return {
 	return {
 		LUMA: LUMA,
 		LUMA: LUMA,
@@ -32,7 +32,7 @@ LuminanceNode.Nodes = ( function () {
 
 
 LuminanceNode.prototype = Object.create( TempNode.prototype );
 LuminanceNode.prototype = Object.create( TempNode.prototype );
 LuminanceNode.prototype.constructor = LuminanceNode;
 LuminanceNode.prototype.constructor = LuminanceNode;
-LuminanceNode.prototype.nodeType = "Luminance";
+LuminanceNode.prototype.nodeType = 'Luminance';
 
 
 LuminanceNode.prototype.generate = function ( builder, output ) {
 LuminanceNode.prototype.generate = function ( builder, output ) {
 
 

+ 1 - 1
examples/jsm/nodes/inputs/BoolNode.js

@@ -10,7 +10,7 @@ function BoolNode( value ) {
 
 
 BoolNode.prototype = Object.create( InputNode.prototype );
 BoolNode.prototype = Object.create( InputNode.prototype );
 BoolNode.prototype.constructor = BoolNode;
 BoolNode.prototype.constructor = BoolNode;
-BoolNode.prototype.nodeType = "Bool";
+BoolNode.prototype.nodeType = 'Bool';
 
 
 BoolNode.prototype.generateReadonly = function ( builder, output, uuid, type/*, ns, needsUpdate */ ) {
 BoolNode.prototype.generateReadonly = function ( builder, output, uuid, type/*, ns, needsUpdate */ ) {
 
 

+ 2 - 2
examples/jsm/nodes/inputs/ColorNode.js

@@ -13,13 +13,13 @@ function ColorNode( color, g, b ) {
 
 
 ColorNode.prototype = Object.create( InputNode.prototype );
 ColorNode.prototype = Object.create( InputNode.prototype );
 ColorNode.prototype.constructor = ColorNode;
 ColorNode.prototype.constructor = ColorNode;
-ColorNode.prototype.nodeType = "Color";
+ColorNode.prototype.nodeType = 'Color';
 
 
 NodeUtils.addShortcuts( ColorNode.prototype, 'value', [ 'r', 'g', 'b' ] );
 NodeUtils.addShortcuts( ColorNode.prototype, 'value', [ 'r', 'g', 'b' ] );
 
 
 ColorNode.prototype.generateReadonly = function ( builder, output, uuid, type/*, ns, needsUpdate */ ) {
 ColorNode.prototype.generateReadonly = function ( builder, output, uuid, type/*, ns, needsUpdate */ ) {
 
 
-	return builder.format( "vec3( " + this.r + ", " + this.g + ", " + this.b + " )", type, output );
+	return builder.format( 'vec3( ' + this.r + ', ' + this.g + ', ' + this.b + ' )', type, output );
 
 
 };
 };
 
 

+ 1 - 1
examples/jsm/nodes/inputs/CubeTextureNode.js

@@ -15,7 +15,7 @@ function CubeTextureNode( value, uv, bias ) {
 
 
 CubeTextureNode.prototype = Object.create( InputNode.prototype );
 CubeTextureNode.prototype = Object.create( InputNode.prototype );
 CubeTextureNode.prototype.constructor = CubeTextureNode;
 CubeTextureNode.prototype.constructor = CubeTextureNode;
-CubeTextureNode.prototype.nodeType = "CubeTexture";
+CubeTextureNode.prototype.nodeType = 'CubeTexture';
 
 
 CubeTextureNode.prototype.getTexture = function ( builder, output ) {
 CubeTextureNode.prototype.getTexture = function ( builder, output ) {
 
 

+ 1 - 1
examples/jsm/nodes/inputs/FloatNode.js

@@ -10,7 +10,7 @@ function FloatNode( value ) {
 
 
 FloatNode.prototype = Object.create( InputNode.prototype );
 FloatNode.prototype = Object.create( InputNode.prototype );
 FloatNode.prototype.constructor = FloatNode;
 FloatNode.prototype.constructor = FloatNode;
-FloatNode.prototype.nodeType = "Float";
+FloatNode.prototype.nodeType = 'Float';
 
 
 FloatNode.prototype.generateReadonly = function ( builder, output, uuid, type/*, ns, needsUpdate */ ) {
 FloatNode.prototype.generateReadonly = function ( builder, output, uuid, type/*, ns, needsUpdate */ ) {
 
 

+ 1 - 1
examples/jsm/nodes/inputs/IntNode.js

@@ -10,7 +10,7 @@ function IntNode( value ) {
 
 
 IntNode.prototype = Object.create( InputNode.prototype );
 IntNode.prototype = Object.create( InputNode.prototype );
 IntNode.prototype.constructor = IntNode;
 IntNode.prototype.constructor = IntNode;
-IntNode.prototype.nodeType = "Int";
+IntNode.prototype.nodeType = 'Int';
 
 
 IntNode.prototype.generateReadonly = function ( builder, output, uuid, type/*, ns, needsUpdate */ ) {
 IntNode.prototype.generateReadonly = function ( builder, output, uuid, type/*, ns, needsUpdate */ ) {
 
 

+ 2 - 2
examples/jsm/nodes/inputs/Matrix3Node.js

@@ -12,7 +12,7 @@ function Matrix3Node( matrix ) {
 
 
 Matrix3Node.prototype = Object.create( InputNode.prototype );
 Matrix3Node.prototype = Object.create( InputNode.prototype );
 Matrix3Node.prototype.constructor = Matrix3Node;
 Matrix3Node.prototype.constructor = Matrix3Node;
-Matrix3Node.prototype.nodeType = "Matrix3";
+Matrix3Node.prototype.nodeType = 'Matrix3';
 
 
 Object.defineProperties( Matrix3Node.prototype, {
 Object.defineProperties( Matrix3Node.prototype, {
 
 
@@ -36,7 +36,7 @@ Object.defineProperties( Matrix3Node.prototype, {
 
 
 Matrix3Node.prototype.generateReadonly = function ( builder, output, uuid, type/*, ns, needsUpdate */ ) {
 Matrix3Node.prototype.generateReadonly = function ( builder, output, uuid, type/*, ns, needsUpdate */ ) {
 
 
-	return builder.format( "mat3( " + this.value.elements.join( ", " ) + " )", type, output );
+	return builder.format( 'mat3( ' + this.value.elements.join( ', ' ) + ' )', type, output );
 
 
 };
 };
 
 

+ 2 - 2
examples/jsm/nodes/inputs/Matrix4Node.js

@@ -12,7 +12,7 @@ function Matrix4Node( matrix ) {
 
 
 Matrix4Node.prototype = Object.create( InputNode.prototype );
 Matrix4Node.prototype = Object.create( InputNode.prototype );
 Matrix4Node.prototype.constructor = Matrix4Node;
 Matrix4Node.prototype.constructor = Matrix4Node;
-Matrix4Node.prototype.nodeType = "Matrix4";
+Matrix4Node.prototype.nodeType = 'Matrix4';
 
 
 Object.defineProperties( Matrix4Node.prototype, {
 Object.defineProperties( Matrix4Node.prototype, {
 
 
@@ -36,7 +36,7 @@ Object.defineProperties( Matrix4Node.prototype, {
 
 
 Matrix4Node.prototype.generateReadonly = function ( builder, output, uuid, type /*, ns, needsUpdate */ ) {
 Matrix4Node.prototype.generateReadonly = function ( builder, output, uuid, type /*, ns, needsUpdate */ ) {
 
 
-	return builder.format( "mat4( " + this.value.elements.join( ", " ) + " )", type, output );
+	return builder.format( 'mat4( ' + this.value.elements.join( ', ' ) + ' )', type, output );
 
 
 };
 };
 
 

+ 1 - 1
examples/jsm/nodes/inputs/PropertyNode.js

@@ -11,7 +11,7 @@ function PropertyNode( object, property, type ) {
 
 
 PropertyNode.prototype = Object.create( InputNode.prototype );
 PropertyNode.prototype = Object.create( InputNode.prototype );
 PropertyNode.prototype.constructor = PropertyNode;
 PropertyNode.prototype.constructor = PropertyNode;
-PropertyNode.prototype.nodeType = "Property";
+PropertyNode.prototype.nodeType = 'Property';
 
 
 Object.defineProperties( PropertyNode.prototype, {
 Object.defineProperties( PropertyNode.prototype, {
 
 

+ 2 - 2
examples/jsm/nodes/inputs/RTTNode.js

@@ -37,7 +37,7 @@ function RTTNode( width, height, input, options ) {
 
 
 RTTNode.prototype = Object.create( TextureNode.prototype );
 RTTNode.prototype = Object.create( TextureNode.prototype );
 RTTNode.prototype.constructor = RTTNode;
 RTTNode.prototype.constructor = RTTNode;
-RTTNode.prototype.nodeType = "RTT";
+RTTNode.prototype.nodeType = 'RTT';
 
 
 RTTNode.prototype.build = function ( builder, output, uuid ) {
 RTTNode.prototype.build = function ( builder, output, uuid ) {
 
 
@@ -119,7 +119,7 @@ RTTNode.prototype.updateFrame = function ( frame ) {
 
 
 	} else {
 	} else {
 
 
-		console.warn( "RTTNode need a renderer in NodeFrame" );
+		console.warn( 'RTTNode need a renderer in NodeFrame' );
 
 
 	}
 	}
 
 

+ 2 - 2
examples/jsm/nodes/inputs/ReflectorNode.js

@@ -15,7 +15,7 @@ function ReflectorNode( mirror ) {
 
 
 ReflectorNode.prototype = Object.create( TempNode.prototype );
 ReflectorNode.prototype = Object.create( TempNode.prototype );
 ReflectorNode.prototype.constructor = ReflectorNode;
 ReflectorNode.prototype.constructor = ReflectorNode;
-ReflectorNode.prototype.nodeType = "Reflector";
+ReflectorNode.prototype.nodeType = 'Reflector';
 
 
 ReflectorNode.prototype.setMirror = function ( mirror ) {
 ReflectorNode.prototype.setMirror = function ( mirror ) {
 
 
@@ -49,7 +49,7 @@ ReflectorNode.prototype.generate = function ( builder, output ) {
 
 
 	} else {
 	} else {
 
 
-		console.warn( "THREE.ReflectorNode is not compatible with " + builder.shader + " shader." );
+		console.warn( 'THREE.ReflectorNode is not compatible with ' + builder.shader + ' shader.' );
 
 
 		return builder.format( 'vec4( 0.0 )', this.type, output );
 		return builder.format( 'vec4( 0.0 )', this.type, output );
 
 

+ 1 - 1
examples/jsm/nodes/inputs/ScreenNode.js

@@ -9,7 +9,7 @@ function ScreenNode( uv ) {
 
 
 ScreenNode.prototype = Object.create( TextureNode.prototype );
 ScreenNode.prototype = Object.create( TextureNode.prototype );
 ScreenNode.prototype.constructor = ScreenNode;
 ScreenNode.prototype.constructor = ScreenNode;
-ScreenNode.prototype.nodeType = "Screen";
+ScreenNode.prototype.nodeType = 'Screen';
 
 
 ScreenNode.prototype.getUnique = function () {
 ScreenNode.prototype.getUnique = function () {
 
 

+ 1 - 1
examples/jsm/nodes/inputs/TextureNode.js

@@ -16,7 +16,7 @@ function TextureNode( value, uv, bias, project ) {
 
 
 TextureNode.prototype = Object.create( InputNode.prototype );
 TextureNode.prototype = Object.create( InputNode.prototype );
 TextureNode.prototype.constructor = TextureNode;
 TextureNode.prototype.constructor = TextureNode;
-TextureNode.prototype.nodeType = "Texture";
+TextureNode.prototype.nodeType = 'Texture';
 
 
 TextureNode.prototype.getTexture = function ( builder, output ) {
 TextureNode.prototype.getTexture = function ( builder, output ) {
 
 

+ 2 - 2
examples/jsm/nodes/inputs/Vector2Node.js

@@ -13,13 +13,13 @@ function Vector2Node( x, y ) {
 
 
 Vector2Node.prototype = Object.create( InputNode.prototype );
 Vector2Node.prototype = Object.create( InputNode.prototype );
 Vector2Node.prototype.constructor = Vector2Node;
 Vector2Node.prototype.constructor = Vector2Node;
-Vector2Node.prototype.nodeType = "Vector2";
+Vector2Node.prototype.nodeType = 'Vector2';
 
 
 NodeUtils.addShortcuts( Vector2Node.prototype, 'value', [ 'x', 'y' ] );
 NodeUtils.addShortcuts( Vector2Node.prototype, 'value', [ 'x', 'y' ] );
 
 
 Vector2Node.prototype.generateReadonly = function ( builder, output, uuid, type/*, ns, needsUpdate*/ ) {
 Vector2Node.prototype.generateReadonly = function ( builder, output, uuid, type/*, ns, needsUpdate*/ ) {
 
 
-	return builder.format( "vec2( " + this.x + ", " + this.y + " )", type, output );
+	return builder.format( 'vec2( ' + this.x + ', ' + this.y + ' )', type, output );
 
 
 };
 };
 
 

+ 2 - 2
examples/jsm/nodes/inputs/Vector3Node.js

@@ -13,13 +13,13 @@ function Vector3Node( x, y, z ) {
 
 
 Vector3Node.prototype = Object.create( InputNode.prototype );
 Vector3Node.prototype = Object.create( InputNode.prototype );
 Vector3Node.prototype.constructor = Vector3Node;
 Vector3Node.prototype.constructor = Vector3Node;
-Vector3Node.prototype.nodeType = "Vector3";
+Vector3Node.prototype.nodeType = 'Vector3';
 
 
 NodeUtils.addShortcuts( Vector3Node.prototype, 'value', [ 'x', 'y', 'z' ] );
 NodeUtils.addShortcuts( Vector3Node.prototype, 'value', [ 'x', 'y', 'z' ] );
 
 
 Vector3Node.prototype.generateReadonly = function ( builder, output, uuid, type/*, ns, needsUpdate*/ ) {
 Vector3Node.prototype.generateReadonly = function ( builder, output, uuid, type/*, ns, needsUpdate*/ ) {
 
 
-	return builder.format( "vec3( " + this.x + ", " + this.y + ", " + this.z + " )", type, output );
+	return builder.format( 'vec3( ' + this.x + ', ' + this.y + ', ' + this.z + ' )', type, output );
 
 
 };
 };
 
 

+ 2 - 2
examples/jsm/nodes/inputs/Vector4Node.js

@@ -13,13 +13,13 @@ function Vector4Node( x, y, z, w ) {
 
 
 Vector4Node.prototype = Object.create( InputNode.prototype );
 Vector4Node.prototype = Object.create( InputNode.prototype );
 Vector4Node.prototype.constructor = Vector4Node;
 Vector4Node.prototype.constructor = Vector4Node;
-Vector4Node.prototype.nodeType = "Vector4";
+Vector4Node.prototype.nodeType = 'Vector4';
 
 
 NodeUtils.addShortcuts( Vector4Node.prototype, 'value', [ 'x', 'y', 'z', 'w' ] );
 NodeUtils.addShortcuts( Vector4Node.prototype, 'value', [ 'x', 'y', 'z', 'w' ] );
 
 
 Vector4Node.prototype.generateReadonly = function ( builder, output, uuid, type/*, ns, needsUpdate*/ ) {
 Vector4Node.prototype.generateReadonly = function ( builder, output, uuid, type/*, ns, needsUpdate*/ ) {
 
 
-	return builder.format( "vec4( " + this.x + ", " + this.y + ", " + this.z + ", " + this.w + " )", type, output );
+	return builder.format( 'vec4( ' + this.x + ', ' + this.y + ', ' + this.z + ', ' + this.w + ' )', type, output );
 
 
 };
 };
 
 

+ 1 - 1
examples/jsm/nodes/materials/BasicNodeMaterial.js

@@ -8,7 +8,7 @@ function BasicNodeMaterial() {
 
 
 	NodeMaterial.call( this, node, node );
 	NodeMaterial.call( this, node, node );
 
 
-	this.type = "BasicNodeMaterial";
+	this.type = 'BasicNodeMaterial';
 
 
 }
 }
 
 

+ 10 - 10
examples/jsm/nodes/materials/MeshStandardNodeMaterial.js

@@ -8,7 +8,7 @@ function MeshStandardNodeMaterial() {
 
 
 	NodeMaterial.call( this, node, node );
 	NodeMaterial.call( this, node, node );
 
 
-	this.type = "MeshStandardNodeMaterial";
+	this.type = 'MeshStandardNodeMaterial';
 
 
 }
 }
 
 
@@ -16,15 +16,15 @@ MeshStandardNodeMaterial.prototype = Object.create( NodeMaterial.prototype );
 MeshStandardNodeMaterial.prototype.constructor = MeshStandardNodeMaterial;
 MeshStandardNodeMaterial.prototype.constructor = MeshStandardNodeMaterial;
 
 
 NodeUtils.addShortcuts( MeshStandardNodeMaterial.prototype, 'properties', [
 NodeUtils.addShortcuts( MeshStandardNodeMaterial.prototype, 'properties', [
-	"color",
-	"roughness",
-	"metalness",
-	"map",
-	"normalMap",
-	"normalScale",
-	"metalnessMap",
-	"roughnessMap",
-	"envMap"
+	'color',
+	'roughness',
+	'metalness',
+	'map',
+	'normalMap',
+	'normalScale',
+	'metalnessMap',
+	'roughnessMap',
+	'envMap'
 ] );
 ] );
 
 
 export { MeshStandardNodeMaterial };
 export { MeshStandardNodeMaterial };

+ 2 - 2
examples/jsm/nodes/materials/NodeMaterial.js

@@ -24,7 +24,7 @@ function NodeMaterial( vertex, fragment ) {
 
 
 NodeMaterial.prototype = Object.create( ShaderMaterial.prototype );
 NodeMaterial.prototype = Object.create( ShaderMaterial.prototype );
 NodeMaterial.prototype.constructor = NodeMaterial;
 NodeMaterial.prototype.constructor = NodeMaterial;
-NodeMaterial.prototype.type = "NodeMaterial";
+NodeMaterial.prototype.type = 'NodeMaterial';
 
 
 NodeMaterial.prototype.isNodeMaterial = true;
 NodeMaterial.prototype.isNodeMaterial = true;
 
 
@@ -177,7 +177,7 @@ NodeMaterial.prototype.toJSON = function ( meta ) {
 
 
 		meta.materials[ data.uuid ] = data;
 		meta.materials[ data.uuid ] = data;
 
 
-		if ( this.name !== "" ) data.name = this.name;
+		if ( this.name !== '' ) data.name = this.name;
 
 
 		if ( this.size !== undefined ) data.size = this.size;
 		if ( this.size !== undefined ) data.size = this.size;
 		if ( this.sizeAttenuation !== undefined ) data.sizeAttenuation = this.sizeAttenuation;
 		if ( this.sizeAttenuation !== undefined ) data.sizeAttenuation = this.sizeAttenuation;

+ 1 - 1
examples/jsm/nodes/materials/PhongNodeMaterial.js

@@ -8,7 +8,7 @@ function PhongNodeMaterial() {
 
 
 	NodeMaterial.call( this, node, node );
 	NodeMaterial.call( this, node, node );
 
 
-	this.type = "PhongNodeMaterial";
+	this.type = 'PhongNodeMaterial';
 
 
 }
 }
 
 

+ 1 - 1
examples/jsm/nodes/materials/SpriteNodeMaterial.js

@@ -8,7 +8,7 @@ function SpriteNodeMaterial() {
 
 
 	NodeMaterial.call( this, node, node );
 	NodeMaterial.call( this, node, node );
 
 
-	this.type = "SpriteNodeMaterial";
+	this.type = 'SpriteNodeMaterial';
 
 
 }
 }
 
 

+ 1 - 1
examples/jsm/nodes/materials/StandardNodeMaterial.js

@@ -8,7 +8,7 @@ function StandardNodeMaterial() {
 
 
 	NodeMaterial.call( this, node, node );
 	NodeMaterial.call( this, node, node );
 
 
-	this.type = "StandardNodeMaterial";
+	this.type = 'StandardNodeMaterial';
 
 
 }
 }
 
 

+ 32 - 32
examples/jsm/nodes/materials/nodes/BasicNode.js

@@ -11,7 +11,7 @@ function BasicNode() {
 
 
 BasicNode.prototype = Object.create( Node.prototype );
 BasicNode.prototype = Object.create( Node.prototype );
 BasicNode.prototype.constructor = BasicNode;
 BasicNode.prototype.constructor = BasicNode;
-BasicNode.prototype.nodeType = "Basic";
+BasicNode.prototype.nodeType = 'Basic';
 
 
 BasicNode.prototype.generate = function ( builder ) {
 BasicNode.prototype.generate = function ( builder ) {
 
 
@@ -22,52 +22,52 @@ BasicNode.prototype.generate = function ( builder ) {
 		var position = this.position ? this.position.analyzeAndFlow( builder, 'v3', { cache: 'position' } ) : undefined;
 		var position = this.position ? this.position.analyzeAndFlow( builder, 'v3', { cache: 'position' } ) : undefined;
 
 
 		builder.addParsCode( [
 		builder.addParsCode( [
-			"varying vec3 vViewPosition;",
+			'varying vec3 vViewPosition;',
 
 
-			"#ifndef FLAT_SHADED",
+			'#ifndef FLAT_SHADED',
 
 
-			" varying vec3 vNormal;",
+			' varying vec3 vNormal;',
 
 
-			"#endif",
-		].join( "\n" ) );
+			'#endif',
+		].join( '\n' ) );
 
 
 		var output = [
 		var output = [
-			"#include <beginnormal_vertex>",
-			"#include <defaultnormal_vertex>",
+			'#include <beginnormal_vertex>',
+			'#include <defaultnormal_vertex>',
 
 
-			"#ifndef FLAT_SHADED", // Normal computed with derivatives when FLAT_SHADED
+			'#ifndef FLAT_SHADED', // Normal computed with derivatives when FLAT_SHADED
 
 
-			" vNormal = normalize( transformedNormal );",
+			' vNormal = normalize( transformedNormal );',
 
 
-			"#endif",
+			'#endif',
 
 
-			"#include <begin_vertex>",
+			'#include <begin_vertex>',
 		];
 		];
 
 
 		if ( position ) {
 		if ( position ) {
 
 
 			output.push(
 			output.push(
 				position.code,
 				position.code,
-				position.result ? "transformed = " + position.result + ";" : ''
+				position.result ? 'transformed = ' + position.result + ';' : ''
 			);
 			);
 
 
 		}
 		}
 
 
 		output.push(
 		output.push(
-			"#include <morphtarget_vertex>",
-			"#include <skinning_vertex>",
-			"#include <project_vertex>",
-			"#include <fog_vertex>",
-			"#include <logdepthbuf_vertex>",
-			"#include <clipping_planes_vertex>",
+			'#include <morphtarget_vertex>',
+			'#include <skinning_vertex>',
+			'#include <project_vertex>',
+			'#include <fog_vertex>',
+			'#include <logdepthbuf_vertex>',
+			'#include <clipping_planes_vertex>',
 
 
-			"	vViewPosition = - mvPosition.xyz;",
+			'	vViewPosition = - mvPosition.xyz;',
 
 
-			"#include <worldpos_vertex>",
-			"#include <shadowmap_vertex>"
+			'#include <worldpos_vertex>',
+			'#include <shadowmap_vertex>'
 		);
 		);
 
 
-		code = output.join( "\n" );
+		code = output.join( '\n' );
 
 
 	} else {
 	} else {
 
 
@@ -85,18 +85,18 @@ BasicNode.prototype.generate = function ( builder ) {
 		builder.requires.transparent = alpha !== undefined;
 		builder.requires.transparent = alpha !== undefined;
 
 
 		builder.addParsCode( [
 		builder.addParsCode( [
-			"varying vec3 vViewPosition;",
+			'varying vec3 vViewPosition;',
 
 
-			"#ifndef FLAT_SHADED",
+			'#ifndef FLAT_SHADED',
 
 
-			" varying vec3 vNormal;",
+			' varying vec3 vNormal;',
 
 
-			"#endif",
-		].join( "\n" ) );
+			'#endif',
+		].join( '\n' ) );
 
 
 		var output = [
 		var output = [
 			// add before: prevent undeclared normal
 			// add before: prevent undeclared normal
-			"#include <normal_fragment_begin>",
+			'#include <normal_fragment_begin>',
 
 
 			color.code,
 			color.code,
 		];
 		];
@@ -125,15 +125,15 @@ BasicNode.prototype.generate = function ( builder ) {
 
 
 		if ( alpha ) {
 		if ( alpha ) {
 
 
-			output.push( "gl_FragColor = vec4(" + color.result + ", " + alpha.result + " );" );
+			output.push( 'gl_FragColor = vec4(' + color.result + ', ' + alpha.result + ' );' );
 
 
 		} else {
 		} else {
 
 
-			output.push( "gl_FragColor = vec4(" + color.result + ", 1.0 );" );
+			output.push( 'gl_FragColor = vec4(' + color.result + ', 1.0 );' );
 
 
 		}
 		}
 
 
-		code = output.join( "\n" );
+		code = output.join( '\n' );
 
 
 	}
 	}
 
 

+ 4 - 4
examples/jsm/nodes/materials/nodes/MeshStandardNode.js

@@ -31,7 +31,7 @@ function MeshStandardNode() {
 
 
 MeshStandardNode.prototype = Object.create( StandardNode.prototype );
 MeshStandardNode.prototype = Object.create( StandardNode.prototype );
 MeshStandardNode.prototype.constructor = MeshStandardNode;
 MeshStandardNode.prototype.constructor = MeshStandardNode;
-MeshStandardNode.prototype.nodeType = "MeshStandard";
+MeshStandardNode.prototype.nodeType = 'MeshStandard';
 
 
 MeshStandardNode.prototype.build = function ( builder ) {
 MeshStandardNode.prototype.build = function ( builder ) {
 
 
@@ -56,7 +56,7 @@ MeshStandardNode.prototype.build = function ( builder ) {
 		var roughness = builder.findNode( props.roughness, inputs.roughness ),
 		var roughness = builder.findNode( props.roughness, inputs.roughness ),
 			roughnessMap = builder.resolve( props.roughnessMap );
 			roughnessMap = builder.resolve( props.roughnessMap );
 
 
-		this.roughness = roughnessMap ? new OperatorNode( roughness, new SwitchNode( roughnessMap, "g" ), OperatorNode.MUL ) : roughness;
+		this.roughness = roughnessMap ? new OperatorNode( roughness, new SwitchNode( roughnessMap, 'g' ), OperatorNode.MUL ) : roughness;
 
 
 		// slots
 		// slots
 		// * metalness
 		// * metalness
@@ -65,7 +65,7 @@ MeshStandardNode.prototype.build = function ( builder ) {
 		var metalness = builder.findNode( props.metalness, inputs.metalness ),
 		var metalness = builder.findNode( props.metalness, inputs.metalness ),
 			metalnessMap = builder.resolve( props.metalnessMap );
 			metalnessMap = builder.resolve( props.metalnessMap );
 
 
-		this.metalness = metalnessMap ? new OperatorNode( metalness, new SwitchNode( metalnessMap, "b" ), OperatorNode.MUL ) : metalness;
+		this.metalness = metalnessMap ? new OperatorNode( metalness, new SwitchNode( metalnessMap, 'b' ), OperatorNode.MUL ) : metalness;
 
 
 		// slots
 		// slots
 		// * normalMap
 		// * normalMap
@@ -103,7 +103,7 @@ MeshStandardNode.prototype.toJSON = function ( meta ) {
 
 
 		data = this.createJSONNode( meta );
 		data = this.createJSONNode( meta );
 
 
-		console.warn( ".toJSON not implemented in", this );
+		console.warn( '.toJSON not implemented in', this );
 
 
 	}
 	}
 
 

+ 70 - 70
examples/jsm/nodes/materials/nodes/PhongNode.js

@@ -19,7 +19,7 @@ function PhongNode() {
 
 
 PhongNode.prototype = Object.create( Node.prototype );
 PhongNode.prototype = Object.create( Node.prototype );
 PhongNode.prototype.constructor = PhongNode;
 PhongNode.prototype.constructor = PhongNode;
-PhongNode.prototype.nodeType = "Phong";
+PhongNode.prototype.nodeType = 'Phong';
 
 
 PhongNode.prototype.build = function ( builder ) {
 PhongNode.prototype.build = function ( builder ) {
 
 
@@ -41,64 +41,64 @@ PhongNode.prototype.build = function ( builder ) {
 		] ) );
 		] ) );
 
 
 		builder.addParsCode( [
 		builder.addParsCode( [
-			"varying vec3 vViewPosition;",
+			'varying vec3 vViewPosition;',
 
 
-			"#ifndef FLAT_SHADED",
+			'#ifndef FLAT_SHADED',
 
 
-			"	varying vec3 vNormal;",
+			'	varying vec3 vNormal;',
 
 
-			"#endif",
+			'#endif',
 
 
 			//"#include <encodings_pars_fragment>", // encoding functions
 			//"#include <encodings_pars_fragment>", // encoding functions
-			"#include <fog_pars_vertex>",
-			"#include <morphtarget_pars_vertex>",
-			"#include <skinning_pars_vertex>",
-			"#include <shadowmap_pars_vertex>",
-			"#include <logdepthbuf_pars_vertex>",
-			"#include <clipping_planes_pars_vertex>"
-		].join( "\n" ) );
+			'#include <fog_pars_vertex>',
+			'#include <morphtarget_pars_vertex>',
+			'#include <skinning_pars_vertex>',
+			'#include <shadowmap_pars_vertex>',
+			'#include <logdepthbuf_pars_vertex>',
+			'#include <clipping_planes_pars_vertex>'
+		].join( '\n' ) );
 
 
 		var output = [
 		var output = [
-			"#include <beginnormal_vertex>",
-			"#include <morphnormal_vertex>",
-			"#include <skinbase_vertex>",
-			"#include <skinnormal_vertex>",
-			"#include <defaultnormal_vertex>",
+			'#include <beginnormal_vertex>',
+			'#include <morphnormal_vertex>',
+			'#include <skinbase_vertex>',
+			'#include <skinnormal_vertex>',
+			'#include <defaultnormal_vertex>',
 
 
-			"#ifndef FLAT_SHADED", // normal computed with derivatives when FLAT_SHADED
+			'#ifndef FLAT_SHADED', // normal computed with derivatives when FLAT_SHADED
 
 
-			"	vNormal = normalize( transformedNormal );",
+			'	vNormal = normalize( transformedNormal );',
 
 
-			"#endif",
+			'#endif',
 
 
-			"#include <begin_vertex>"
+			'#include <begin_vertex>'
 		];
 		];
 
 
 		if ( position ) {
 		if ( position ) {
 
 
 			output.push(
 			output.push(
 				position.code,
 				position.code,
-				position.result ? "transformed = " + position.result + ";" : ''
+				position.result ? 'transformed = ' + position.result + ';' : ''
 			);
 			);
 
 
 		}
 		}
 
 
 		output.push(
 		output.push(
-			"	#include <morphtarget_vertex>",
-			"	#include <skinning_vertex>",
-			"	#include <project_vertex>",
-			"	#include <fog_vertex>",
-			"	#include <logdepthbuf_vertex>",
-			"	#include <clipping_planes_vertex>",
-
-			"	vViewPosition = - mvPosition.xyz;",
-
-			"	#include <worldpos_vertex>",
-			"	#include <shadowmap_vertex>",
-			"	#include <fog_vertex>"
+			'	#include <morphtarget_vertex>',
+			'	#include <skinning_vertex>',
+			'	#include <project_vertex>',
+			'	#include <fog_vertex>',
+			'	#include <logdepthbuf_vertex>',
+			'	#include <clipping_planes_vertex>',
+
+			'	vViewPosition = - mvPosition.xyz;',
+
+			'	#include <worldpos_vertex>',
+			'	#include <shadowmap_vertex>',
+			'	#include <fog_vertex>'
 		);
 		);
 
 
-		code = output.join( "\n" );
+		code = output.join( '\n' );
 
 
 	} else {
 	} else {
 
 
@@ -149,20 +149,20 @@ PhongNode.prototype.build = function ( builder ) {
 		builder.requires.transparent = alpha !== undefined;
 		builder.requires.transparent = alpha !== undefined;
 
 
 		builder.addParsCode( [
 		builder.addParsCode( [
-			"#include <fog_pars_fragment>",
-			"#include <bsdfs>",
-			"#include <lights_pars_begin>",
-			"#include <lights_phong_pars_fragment>",
-			"#include <shadowmap_pars_fragment>",
-			"#include <logdepthbuf_pars_fragment>"
-		].join( "\n" ) );
+			'#include <fog_pars_fragment>',
+			'#include <bsdfs>',
+			'#include <lights_pars_begin>',
+			'#include <lights_phong_pars_fragment>',
+			'#include <shadowmap_pars_fragment>',
+			'#include <logdepthbuf_pars_fragment>'
+		].join( '\n' ) );
 
 
 		var output = [
 		var output = [
 			// prevent undeclared normal
 			// prevent undeclared normal
-			"#include <normal_fragment_begin>",
+			'#include <normal_fragment_begin>',
 
 
 			// prevent undeclared material
 			// prevent undeclared material
-			"	BlinnPhongMaterial material;"
+			'	BlinnPhongMaterial material;'
 		];
 		];
 
 
 		if ( mask ) {
 		if ( mask ) {
@@ -176,18 +176,18 @@ PhongNode.prototype.build = function ( builder ) {
 
 
 		output.push(
 		output.push(
 			color.code,
 			color.code,
-			"	vec3 diffuseColor = " + color.result + ";",
-			"	ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );",
+			'	vec3 diffuseColor = ' + color.result + ';',
+			'	ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );',
 
 
-			"#include <logdepthbuf_fragment>",
+			'#include <logdepthbuf_fragment>',
 
 
 			specular.code,
 			specular.code,
-			"	vec3 specular = " + specular.result + ";",
+			'	vec3 specular = ' + specular.result + ';',
 
 
 			shininess.code,
 			shininess.code,
-			"	float shininess = max( 0.0001, " + shininess.result + " );",
+			'	float shininess = max( 0.0001, ' + shininess.result + ' );',
 
 
-			"	float specularStrength = 1.0;" // Ignored in MaterialNode ( replace to specular )
+			'	float specularStrength = 1.0;' // Ignored in MaterialNode ( replace to specular )
 		);
 		);
 
 
 		if ( alpha ) {
 		if ( alpha ) {
@@ -222,22 +222,22 @@ PhongNode.prototype.build = function ( builder ) {
 			'material.specularShininess = shininess;',
 			'material.specularShininess = shininess;',
 			'material.specularStrength = specularStrength;',
 			'material.specularStrength = specularStrength;',
 
 
-			"#include <lights_fragment_begin>",
-			"#include <lights_fragment_end>"
+			'#include <lights_fragment_begin>',
+			'#include <lights_fragment_end>'
 		);
 		);
 
 
 		if ( light ) {
 		if ( light ) {
 
 
 			output.push(
 			output.push(
 				light.code,
 				light.code,
-				"reflectedLight.directDiffuse = " + light.result + ";"
+				'reflectedLight.directDiffuse = ' + light.result + ';'
 			);
 			);
 
 
 			// apply color
 			// apply color
 
 
 			output.push(
 			output.push(
-				"reflectedLight.directDiffuse *= diffuseColor;",
-				"reflectedLight.indirectDiffuse *= diffuseColor;"
+				'reflectedLight.directDiffuse *= diffuseColor;',
+				'reflectedLight.indirectDiffuse *= diffuseColor;'
 			);
 			);
 
 
 		}
 		}
@@ -246,7 +246,7 @@ PhongNode.prototype.build = function ( builder ) {
 
 
 			output.push(
 			output.push(
 				ao.code,
 				ao.code,
-				"reflectedLight.indirectDiffuse *= " + ao.result + ";"
+				'reflectedLight.indirectDiffuse *= ' + ao.result + ';'
 			);
 			);
 
 
 		}
 		}
@@ -255,7 +255,7 @@ PhongNode.prototype.build = function ( builder ) {
 
 
 			output.push(
 			output.push(
 				ambient.code,
 				ambient.code,
-				"reflectedLight.indirectDiffuse += " + ambient.result + ";"
+				'reflectedLight.indirectDiffuse += ' + ambient.result + ';'
 			);
 			);
 
 
 		}
 		}
@@ -264,8 +264,8 @@ PhongNode.prototype.build = function ( builder ) {
 
 
 			output.push(
 			output.push(
 				shadow.code,
 				shadow.code,
-				"reflectedLight.directDiffuse *= " + shadow.result + ";",
-				"reflectedLight.directSpecular *= " + shadow.result + ";"
+				'reflectedLight.directDiffuse *= ' + shadow.result + ';',
+				'reflectedLight.directSpecular *= ' + shadow.result + ';'
 			);
 			);
 
 
 		}
 		}
@@ -274,12 +274,12 @@ PhongNode.prototype.build = function ( builder ) {
 
 
 			output.push(
 			output.push(
 				emissive.code,
 				emissive.code,
-				"reflectedLight.directDiffuse += " + emissive.result + ";"
+				'reflectedLight.directDiffuse += ' + emissive.result + ';'
 			);
 			);
 
 
 		}
 		}
 
 
-		output.push( "vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular;" );
+		output.push( 'vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular;' );
 
 
 		if ( environment ) {
 		if ( environment ) {
 
 
@@ -289,12 +289,12 @@ PhongNode.prototype.build = function ( builder ) {
 
 
 				output.push(
 				output.push(
 					environmentAlpha.code,
 					environmentAlpha.code,
-					"outgoingLight = mix( outgoingLight, " + environment.result + ", " + environmentAlpha.result + " );"
+					'outgoingLight = mix( outgoingLight, ' + environment.result + ', ' + environmentAlpha.result + ' );'
 				);
 				);
 
 
 			} else {
 			} else {
 
 
-				output.push( "outgoingLight = " + environment.result + ";" );
+				output.push( 'outgoingLight = ' + environment.result + ';' );
 
 
 			}
 			}
 
 
@@ -315,22 +315,22 @@ PhongNode.prototype.build = function ( builder ) {
 
 
 		if ( alpha ) {
 		if ( alpha ) {
 
 
-			output.push( "gl_FragColor = vec4( outgoingLight, " + alpha.result + " );" );
+			output.push( 'gl_FragColor = vec4( outgoingLight, ' + alpha.result + ' );' );
 
 
 		} else {
 		} else {
 
 
-			output.push( "gl_FragColor = vec4( outgoingLight, 1.0 );" );
+			output.push( 'gl_FragColor = vec4( outgoingLight, 1.0 );' );
 
 
 		}
 		}
 
 
 		output.push(
 		output.push(
-			"#include <tonemapping_fragment>",
-			"#include <encodings_fragment>",
-			"#include <fog_fragment>",
-			"#include <premultiplied_alpha_fragment>"
+			'#include <tonemapping_fragment>',
+			'#include <encodings_fragment>',
+			'#include <fog_fragment>',
+			'#include <premultiplied_alpha_fragment>'
 		);
 		);
 
 
-		code = output.join( "\n" );
+		code = output.join( '\n' );
 
 
 	}
 	}
 
 

+ 1 - 1
examples/jsm/nodes/materials/nodes/RawNode.js

@@ -10,7 +10,7 @@ function RawNode( value ) {
 
 
 RawNode.prototype = Object.create( Node.prototype );
 RawNode.prototype = Object.create( Node.prototype );
 RawNode.prototype.constructor = RawNode;
 RawNode.prototype.constructor = RawNode;
-RawNode.prototype.nodeType = "Raw";
+RawNode.prototype.nodeType = 'Raw';
 
 
 RawNode.prototype.generate = function ( builder ) {
 RawNode.prototype.generate = function ( builder ) {
 
 

+ 27 - 27
examples/jsm/nodes/materials/nodes/SpriteNode.js

@@ -17,7 +17,7 @@ function SpriteNode() {
 
 
 SpriteNode.prototype = Object.create( Node.prototype );
 SpriteNode.prototype = Object.create( Node.prototype );
 SpriteNode.prototype.constructor = SpriteNode;
 SpriteNode.prototype.constructor = SpriteNode;
-SpriteNode.prototype.nodeType = "Sprite";
+SpriteNode.prototype.nodeType = 'Sprite';
 
 
 SpriteNode.prototype.build = function ( builder ) {
 SpriteNode.prototype.build = function ( builder ) {
 
 
@@ -37,28 +37,28 @@ SpriteNode.prototype.build = function ( builder ) {
 		] ) );
 		] ) );
 
 
 		builder.addParsCode( [
 		builder.addParsCode( [
-			"#include <fog_pars_vertex>",
-			"#include <logdepthbuf_pars_vertex>",
-			"#include <clipping_planes_pars_vertex>"
-		].join( "\n" ) );
+			'#include <fog_pars_vertex>',
+			'#include <logdepthbuf_pars_vertex>',
+			'#include <clipping_planes_pars_vertex>'
+		].join( '\n' ) );
 
 
 		output = [
 		output = [
-			"#include <clipping_planes_fragment>",
-			"#include <begin_vertex>"
+			'#include <clipping_planes_fragment>',
+			'#include <begin_vertex>'
 		];
 		];
 
 
 		if ( position ) {
 		if ( position ) {
 
 
 			output.push(
 			output.push(
 				position.code,
 				position.code,
-				position.result ? "transformed = " + position.result + ";" : ''
+				position.result ? 'transformed = ' + position.result + ';' : ''
 			);
 			);
 
 
 		}
 		}
 
 
 		output.push(
 		output.push(
-			"#include <project_vertex>",
-			"#include <fog_vertex>",
+			'#include <project_vertex>',
+			'#include <fog_vertex>',
 
 
 			'mat4 modelViewMtx = modelViewMatrix;',
 			'mat4 modelViewMtx = modelViewMatrix;',
 			'mat4 modelMtx = modelMatrix;',
 			'mat4 modelMtx = modelMatrix;',
@@ -102,25 +102,25 @@ SpriteNode.prototype.build = function ( builder ) {
 			'modelViewMtx[2][1] = 0.0;',
 			'modelViewMtx[2][1] = 0.0;',
 			'modelViewMtx[2][2] = 1.0;',
 			'modelViewMtx[2][2] = 1.0;',
 
 
-			"gl_Position = projectionMatrix * modelViewMtx * modelMtx * vec4( transformed, 1.0 );",
+			'gl_Position = projectionMatrix * modelViewMtx * modelMtx * vec4( transformed, 1.0 );',
 
 
-			"#include <logdepthbuf_vertex>",
-			"#include <clipping_planes_vertex>",
-			"#include <fog_vertex>"
+			'#include <logdepthbuf_vertex>',
+			'#include <clipping_planes_vertex>',
+			'#include <fog_vertex>'
 		);
 		);
 
 
 	} else {
 	} else {
 
 
 		builder.addParsCode( [
 		builder.addParsCode( [
-			"#include <fog_pars_fragment>",
-			"#include <logdepthbuf_pars_fragment>",
-			"#include <clipping_planes_pars_fragment>"
-		].join( "\n" ) );
+			'#include <fog_pars_fragment>',
+			'#include <logdepthbuf_pars_fragment>',
+			'#include <clipping_planes_pars_fragment>'
+		].join( '\n' ) );
 
 
 		builder.addCode( [
 		builder.addCode( [
-			"#include <clipping_planes_fragment>",
-			"#include <logdepthbuf_fragment>"
-		].join( "\n" ) );
+			'#include <clipping_planes_fragment>',
+			'#include <logdepthbuf_fragment>'
+		].join( '\n' ) );
 
 
 		// analyze all nodes to reuse generate codes
 		// analyze all nodes to reuse generate codes
 
 
@@ -156,27 +156,27 @@ SpriteNode.prototype.build = function ( builder ) {
 
 
 				'#endif',
 				'#endif',
 				color.code,
 				color.code,
-				"gl_FragColor = vec4( " + color.result + ", " + alpha.result + " );"
+				'gl_FragColor = vec4( ' + color.result + ', ' + alpha.result + ' );'
 			);
 			);
 
 
 		} else {
 		} else {
 
 
 			output.push(
 			output.push(
 				color.code,
 				color.code,
-				"gl_FragColor = vec4( " + color.result + ", 1.0 );"
+				'gl_FragColor = vec4( ' + color.result + ', 1.0 );'
 			);
 			);
 
 
 		}
 		}
 
 
 		output.push(
 		output.push(
-			"#include <tonemapping_fragment>",
-			"#include <encodings_fragment>",
-			"#include <fog_fragment>"
+			'#include <tonemapping_fragment>',
+			'#include <encodings_fragment>',
+			'#include <fog_fragment>'
 		);
 		);
 
 
 	}
 	}
 
 
-	return output.join( "\n" );
+	return output.join( '\n' );
 
 
 };
 };
 
 

+ 79 - 79
examples/jsm/nodes/materials/nodes/StandardNode.js

@@ -21,7 +21,7 @@ function StandardNode() {
 
 
 StandardNode.prototype = Object.create( Node.prototype );
 StandardNode.prototype = Object.create( Node.prototype );
 StandardNode.prototype.constructor = StandardNode;
 StandardNode.prototype.constructor = StandardNode;
-StandardNode.prototype.nodeType = "Standard";
+StandardNode.prototype.nodeType = 'Standard';
 
 
 StandardNode.prototype.build = function ( builder ) {
 StandardNode.prototype.build = function ( builder ) {
 
 
@@ -63,64 +63,64 @@ StandardNode.prototype.build = function ( builder ) {
 		}
 		}
 
 
 		builder.addParsCode( [
 		builder.addParsCode( [
-			"varying vec3 vViewPosition;",
+			'varying vec3 vViewPosition;',
 
 
-			"#ifndef FLAT_SHADED",
+			'#ifndef FLAT_SHADED',
 
 
-			"	varying vec3 vNormal;",
+			'	varying vec3 vNormal;',
 
 
-			"#endif",
+			'#endif',
 
 
 			//"#include <encodings_pars_fragment>", // encoding functions
 			//"#include <encodings_pars_fragment>", // encoding functions
-			"#include <fog_pars_vertex>",
-			"#include <morphtarget_pars_vertex>",
-			"#include <skinning_pars_vertex>",
-			"#include <shadowmap_pars_vertex>",
-			"#include <logdepthbuf_pars_vertex>",
-			"#include <clipping_planes_pars_vertex>"
+			'#include <fog_pars_vertex>',
+			'#include <morphtarget_pars_vertex>',
+			'#include <skinning_pars_vertex>',
+			'#include <shadowmap_pars_vertex>',
+			'#include <logdepthbuf_pars_vertex>',
+			'#include <clipping_planes_pars_vertex>'
 
 
-		].join( "\n" ) );
+		].join( '\n' ) );
 
 
 		var output = [
 		var output = [
-			"#include <beginnormal_vertex>",
-			"#include <morphnormal_vertex>",
-			"#include <skinbase_vertex>",
-			"#include <skinnormal_vertex>",
-			"#include <defaultnormal_vertex>",
+			'#include <beginnormal_vertex>',
+			'#include <morphnormal_vertex>',
+			'#include <skinbase_vertex>',
+			'#include <skinnormal_vertex>',
+			'#include <defaultnormal_vertex>',
 
 
-			"#ifndef FLAT_SHADED", // Normal computed with derivatives when FLAT_SHADED
+			'#ifndef FLAT_SHADED', // Normal computed with derivatives when FLAT_SHADED
 
 
-			"	vNormal = normalize( transformedNormal );",
+			'	vNormal = normalize( transformedNormal );',
 
 
-			"#endif",
+			'#endif',
 
 
-			"#include <begin_vertex>"
+			'#include <begin_vertex>'
 		];
 		];
 
 
 		if ( position ) {
 		if ( position ) {
 
 
 			output.push(
 			output.push(
 				position.code,
 				position.code,
-				position.result ? "transformed = " + position.result + ";" : ''
+				position.result ? 'transformed = ' + position.result + ';' : ''
 			);
 			);
 
 
 		}
 		}
 
 
 		output.push(
 		output.push(
-			"#include <morphtarget_vertex>",
-			"#include <skinning_vertex>",
-			"#include <project_vertex>",
-			"#include <fog_vertex>",
-			"#include <logdepthbuf_vertex>",
-			"#include <clipping_planes_vertex>",
+			'#include <morphtarget_vertex>',
+			'#include <skinning_vertex>',
+			'#include <project_vertex>',
+			'#include <fog_vertex>',
+			'#include <logdepthbuf_vertex>',
+			'#include <clipping_planes_vertex>',
 
 
-			"	vViewPosition = - mvPosition.xyz;",
+			'	vViewPosition = - mvPosition.xyz;',
 
 
-			"#include <worldpos_vertex>",
-			"#include <shadowmap_vertex>"
+			'#include <worldpos_vertex>',
+			'#include <shadowmap_vertex>'
 		);
 		);
 
 
-		code = output.join( "\n" );
+		code = output.join( '\n' );
 
 
 	} else {
 	} else {
 
 
@@ -237,33 +237,33 @@ StandardNode.prototype.build = function ( builder ) {
 		builder.requires.transparent = alpha !== undefined;
 		builder.requires.transparent = alpha !== undefined;
 
 
 		builder.addParsCode( [
 		builder.addParsCode( [
-			"varying vec3 vViewPosition;",
+			'varying vec3 vViewPosition;',
 
 
-			"#ifndef FLAT_SHADED",
+			'#ifndef FLAT_SHADED',
 
 
-			"	varying vec3 vNormal;",
+			'	varying vec3 vNormal;',
 
 
-			"#endif",
+			'#endif',
 
 
-			"#include <dithering_pars_fragment>",
-			"#include <fog_pars_fragment>",
-			"#include <bsdfs>",
-			"#include <lights_pars_begin>",
-			"#include <lights_physical_pars_fragment>",
-			"#include <shadowmap_pars_fragment>",
-			"#include <logdepthbuf_pars_fragment>"
-		].join( "\n" ) );
+			'#include <dithering_pars_fragment>',
+			'#include <fog_pars_fragment>',
+			'#include <bsdfs>',
+			'#include <lights_pars_begin>',
+			'#include <lights_physical_pars_fragment>',
+			'#include <shadowmap_pars_fragment>',
+			'#include <logdepthbuf_pars_fragment>'
+		].join( '\n' ) );
 
 
 		var output = [
 		var output = [
-			"#include <clipping_planes_fragment>",
+			'#include <clipping_planes_fragment>',
 
 
 			// add before: prevent undeclared normal
 			// add before: prevent undeclared normal
-			"	#include <normal_fragment_begin>",
-			"	#include <clearcoat_normal_fragment_begin>",
+			'	#include <normal_fragment_begin>',
+			'	#include <clearcoat_normal_fragment_begin>',
 
 
 			// add before: prevent undeclared material
 			// add before: prevent undeclared material
-			"	PhysicalMaterial material;",
-			"	material.diffuseColor = vec3( 1.0 );"
+			'	PhysicalMaterial material;',
+			'	material.diffuseColor = vec3( 1.0 );'
 		];
 		];
 
 
 		if ( mask ) {
 		if ( mask ) {
@@ -277,16 +277,16 @@ StandardNode.prototype.build = function ( builder ) {
 
 
 		output.push(
 		output.push(
 			color.code,
 			color.code,
-			"	vec3 diffuseColor = " + color.result + ";",
-			"	ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );",
+			'	vec3 diffuseColor = ' + color.result + ';',
+			'	ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );',
 
 
-			"#include <logdepthbuf_fragment>",
+			'#include <logdepthbuf_fragment>',
 
 
 			roughness.code,
 			roughness.code,
-			"	float roughnessFactor = " + roughness.result + ";",
+			'	float roughnessFactor = ' + roughness.result + ';',
 
 
 			metalness.code,
 			metalness.code,
-			"	float metalnessFactor = " + metalness.result + ";"
+			'	float metalnessFactor = ' + metalness.result + ';'
 		);
 		);
 
 
 		if ( alpha ) {
 		if ( alpha ) {
@@ -389,23 +389,23 @@ StandardNode.prototype.build = function ( builder ) {
 		}
 		}
 
 
 		output.push(
 		output.push(
-			"#include <lights_fragment_begin>"
+			'#include <lights_fragment_begin>'
 		);
 		);
 
 
 		if ( light ) {
 		if ( light ) {
 
 
 			output.push(
 			output.push(
 				light.code,
 				light.code,
-				"reflectedLight.directDiffuse = " + light.result + ";"
+				'reflectedLight.directDiffuse = ' + light.result + ';'
 			);
 			);
 
 
 			// apply color
 			// apply color
 
 
 			output.push(
 			output.push(
-				"diffuseColor *= 1.0 - metalnessFactor;",
+				'diffuseColor *= 1.0 - metalnessFactor;',
 
 
-				"reflectedLight.directDiffuse *= diffuseColor;",
-				"reflectedLight.indirectDiffuse *= diffuseColor;"
+				'reflectedLight.directDiffuse *= diffuseColor;',
+				'reflectedLight.indirectDiffuse *= diffuseColor;'
 			);
 			);
 
 
 		}
 		}
@@ -414,9 +414,9 @@ StandardNode.prototype.build = function ( builder ) {
 
 
 			output.push(
 			output.push(
 				ao.code,
 				ao.code,
-				"reflectedLight.indirectDiffuse *= " + ao.result + ";",
-				"float dotNV = saturate( dot( geometry.normal, geometry.viewDir ) );",
-				"reflectedLight.indirectSpecular *= computeSpecularOcclusion( dotNV, " + ao.result + ", material.specularRoughness );"
+				'reflectedLight.indirectDiffuse *= ' + ao.result + ';',
+				'float dotNV = saturate( dot( geometry.normal, geometry.viewDir ) );',
+				'reflectedLight.indirectSpecular *= computeSpecularOcclusion( dotNV, ' + ao.result + ', material.specularRoughness );'
 			);
 			);
 
 
 		}
 		}
@@ -425,7 +425,7 @@ StandardNode.prototype.build = function ( builder ) {
 
 
 			output.push(
 			output.push(
 				ambient.code,
 				ambient.code,
-				"reflectedLight.indirectDiffuse += " + ambient.result + ";"
+				'reflectedLight.indirectDiffuse += ' + ambient.result + ';'
 			);
 			);
 
 
 		}
 		}
@@ -434,8 +434,8 @@ StandardNode.prototype.build = function ( builder ) {
 
 
 			output.push(
 			output.push(
 				shadow.code,
 				shadow.code,
-				"reflectedLight.directDiffuse *= " + shadow.result + ";",
-				"reflectedLight.directSpecular *= " + shadow.result + ";"
+				'reflectedLight.directDiffuse *= ' + shadow.result + ';',
+				'reflectedLight.directSpecular *= ' + shadow.result + ';'
 			);
 			);
 
 
 		}
 		}
@@ -444,7 +444,7 @@ StandardNode.prototype.build = function ( builder ) {
 
 
 			output.push(
 			output.push(
 				emissive.code,
 				emissive.code,
-				"reflectedLight.directDiffuse += " + emissive.result + ";"
+				'reflectedLight.directDiffuse += ' + emissive.result + ';'
 			);
 			);
 
 
 		}
 		}
@@ -463,46 +463,46 @@ StandardNode.prototype.build = function ( builder ) {
 
 
 				output.push(
 				output.push(
 					clearcoatEnv.code,
 					clearcoatEnv.code,
-					"clearcoatRadiance += " + clearcoatEnv.result + ";"
+					'clearcoatRadiance += ' + clearcoatEnv.result + ';'
 				);
 				);
 
 
 			}
 			}
 
 
-			output.push( "radiance += " + environment.radiance.result + ";" );
+			output.push( 'radiance += ' + environment.radiance.result + ';' );
 
 
 			if ( builder.requires.irradiance ) {
 			if ( builder.requires.irradiance ) {
 
 
-				output.push( "iblIrradiance += PI * " + environment.irradiance.result + ";" );
+				output.push( 'iblIrradiance += PI * ' + environment.irradiance.result + ';' );
 
 
 			}
 			}
 
 
 		}
 		}
 
 
 		output.push(
 		output.push(
-			"#include <lights_fragment_end>"
+			'#include <lights_fragment_end>'
 		);
 		);
 
 
-		output.push( "vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular;" );
+		output.push( 'vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular;' );
 
 
 		if ( alpha ) {
 		if ( alpha ) {
 
 
-			output.push( "gl_FragColor = vec4( outgoingLight, " + alpha.result + " );" );
+			output.push( 'gl_FragColor = vec4( outgoingLight, ' + alpha.result + ' );' );
 
 
 		} else {
 		} else {
 
 
-			output.push( "gl_FragColor = vec4( outgoingLight, 1.0 );" );
+			output.push( 'gl_FragColor = vec4( outgoingLight, 1.0 );' );
 
 
 		}
 		}
 
 
 		output.push(
 		output.push(
-			"#include <tonemapping_fragment>",
-			"#include <encodings_fragment>",
-			"#include <fog_fragment>",
-			"#include <premultiplied_alpha_fragment>",
-			"#include <dithering_fragment>"
+			'#include <tonemapping_fragment>',
+			'#include <encodings_fragment>',
+			'#include <fog_fragment>',
+			'#include <premultiplied_alpha_fragment>',
+			'#include <dithering_fragment>'
 		);
 		);
 
 
-		code = output.join( "\n" );
+		code = output.join( '\n' );
 
 
 	}
 	}
 
 

+ 1 - 1
examples/jsm/nodes/math/CondNode.js

@@ -25,7 +25,7 @@ CondNode.OR = '||';
 
 
 CondNode.prototype = Object.create( TempNode.prototype );
 CondNode.prototype = Object.create( TempNode.prototype );
 CondNode.prototype.constructor = CondNode;
 CondNode.prototype.constructor = CondNode;
-CondNode.prototype.nodeType = "Cond";
+CondNode.prototype.nodeType = 'Cond';
 
 
 CondNode.prototype.getType = function ( builder ) {
 CondNode.prototype.getType = function ( builder ) {
 
 

+ 2 - 2
examples/jsm/nodes/math/MathNode.js

@@ -61,8 +61,8 @@ MathNode.FACEFORWARD = 'faceforward';
 
 
 MathNode.prototype = Object.create( TempNode.prototype );
 MathNode.prototype = Object.create( TempNode.prototype );
 MathNode.prototype.constructor = MathNode;
 MathNode.prototype.constructor = MathNode;
-MathNode.prototype.nodeType = "Math";
-MathNode.prototype.hashProperties = [ "method" ];
+MathNode.prototype.nodeType = 'Math';
+MathNode.prototype.hashProperties = [ 'method' ];
 
 
 MathNode.prototype.getNumInputs = function ( /*builder*/ ) {
 MathNode.prototype.getNumInputs = function ( /*builder*/ ) {
 
 

+ 1 - 1
examples/jsm/nodes/math/OperatorNode.js

@@ -17,7 +17,7 @@ OperatorNode.DIV = '/';
 
 
 OperatorNode.prototype = Object.create( TempNode.prototype );
 OperatorNode.prototype = Object.create( TempNode.prototype );
 OperatorNode.prototype.constructor = OperatorNode;
 OperatorNode.prototype.constructor = OperatorNode;
-OperatorNode.prototype.nodeType = "Operator";
+OperatorNode.prototype.nodeType = 'Operator';
 
 
 OperatorNode.prototype.getType = function ( builder ) {
 OperatorNode.prototype.getType = function ( builder ) {
 
 

+ 33 - 33
examples/jsm/nodes/misc/BumpMapNode.js

@@ -24,62 +24,62 @@ BumpMapNode.Nodes = ( function () {
 
 
 		// Evaluate the derivative of the height w.r.t. screen-space using forward differencing (listing 2)
 		// Evaluate the derivative of the height w.r.t. screen-space using forward differencing (listing 2)
 
 
-		"vec2 dHdxy_fwd( sampler2D bumpMap, vec2 vUv, float bumpScale ) {",
+		'vec2 dHdxy_fwd( sampler2D bumpMap, vec2 vUv, float bumpScale ) {',
 
 
 		// Workaround for Adreno 3XX dFd*( vec3 ) bug. See #9988
 		// Workaround for Adreno 3XX dFd*( vec3 ) bug. See #9988
 
 
-		"	vec2 dSTdx = dFdx( vUv );",
-		"	vec2 dSTdy = dFdy( vUv );",
+		'	vec2 dSTdx = dFdx( vUv );',
+		'	vec2 dSTdy = dFdy( vUv );',
 
 
-		"	float Hll = bumpScale * texture2D( bumpMap, vUv ).x;",
-		"	float dBx = bumpScale * texture2D( bumpMap, vUv + dSTdx ).x - Hll;",
-		"	float dBy = bumpScale * texture2D( bumpMap, vUv + dSTdy ).x - Hll;",
+		'	float Hll = bumpScale * texture2D( bumpMap, vUv ).x;',
+		'	float dBx = bumpScale * texture2D( bumpMap, vUv + dSTdx ).x - Hll;',
+		'	float dBy = bumpScale * texture2D( bumpMap, vUv + dSTdy ).x - Hll;',
 
 
-		"	return vec2( dBx, dBy );",
+		'	return vec2( dBx, dBy );',
 
 
-		"}"
+		'}'
 
 
-	].join( "\n" ), null, { derivatives: true } );
+	].join( '\n' ), null, { derivatives: true } );
 
 
 	var perturbNormalArb = new FunctionNode( [
 	var perturbNormalArb = new FunctionNode( [
 
 
-		"vec3 perturbNormalArb( vec3 surf_pos, vec3 surf_norm, vec2 dHdxy ) {",
+		'vec3 perturbNormalArb( vec3 surf_pos, vec3 surf_norm, vec2 dHdxy ) {',
 
 
 		// Workaround for Adreno 3XX dFd*( vec3 ) bug. See #9988
 		// Workaround for Adreno 3XX dFd*( vec3 ) bug. See #9988
 
 
-		"	vec3 vSigmaX = vec3( dFdx( surf_pos.x ), dFdx( surf_pos.y ), dFdx( surf_pos.z ) );",
-		"	vec3 vSigmaY = vec3( dFdy( surf_pos.x ), dFdy( surf_pos.y ), dFdy( surf_pos.z ) );",
-		"	vec3 vN = surf_norm;", // normalized
+		'	vec3 vSigmaX = vec3( dFdx( surf_pos.x ), dFdx( surf_pos.y ), dFdx( surf_pos.z ) );',
+		'	vec3 vSigmaY = vec3( dFdy( surf_pos.x ), dFdy( surf_pos.y ), dFdy( surf_pos.z ) );',
+		'	vec3 vN = surf_norm;', // normalized
 
 
-		"	vec3 R1 = cross( vSigmaY, vN );",
-		"	vec3 R2 = cross( vN, vSigmaX );",
+		'	vec3 R1 = cross( vSigmaY, vN );',
+		'	vec3 R2 = cross( vN, vSigmaX );',
 
 
-		"	float fDet = dot( vSigmaX, R1 );",
+		'	float fDet = dot( vSigmaX, R1 );',
 
 
-		"	fDet *= ( float( gl_FrontFacing ) * 2.0 - 1.0 );",
+		'	fDet *= ( float( gl_FrontFacing ) * 2.0 - 1.0 );',
 
 
-		"	vec3 vGrad = sign( fDet ) * ( dHdxy.x * R1 + dHdxy.y * R2 );",
+		'	vec3 vGrad = sign( fDet ) * ( dHdxy.x * R1 + dHdxy.y * R2 );',
 
 
-		"	return normalize( abs( fDet ) * surf_norm - vGrad );",
+		'	return normalize( abs( fDet ) * surf_norm - vGrad );',
 
 
-		"}"
+		'}'
 
 
-	].join( "\n" ), [ dHdxy_fwd ], { derivatives: true } );
+	].join( '\n' ), [ dHdxy_fwd ], { derivatives: true } );
 
 
 	var bumpToNormal = new FunctionNode( [
 	var bumpToNormal = new FunctionNode( [
-		"vec3 bumpToNormal( sampler2D bumpMap, vec2 uv, float scale ) {",
+		'vec3 bumpToNormal( sampler2D bumpMap, vec2 uv, float scale ) {',
 
 
-		"	vec2 dSTdx = dFdx( uv );",
-		"	vec2 dSTdy = dFdy( uv );",
+		'	vec2 dSTdx = dFdx( uv );',
+		'	vec2 dSTdy = dFdy( uv );',
 
 
-		"	float Hll = texture2D( bumpMap, uv ).x;",
-		"	float dBx = texture2D( bumpMap, uv + dSTdx ).x - Hll;",
-		"	float dBy = texture2D( bumpMap, uv + dSTdy ).x - Hll;",
+		'	float Hll = texture2D( bumpMap, uv ).x;',
+		'	float dBx = texture2D( bumpMap, uv + dSTdx ).x - Hll;',
+		'	float dBy = texture2D( bumpMap, uv + dSTdy ).x - Hll;',
 
 
-		"	return vec3( .5 - ( dBx * scale ), .5 - ( dBy * scale ), 1.0 );",
+		'	return vec3( .5 - ( dBx * scale ), .5 - ( dBy * scale ), 1.0 );',
 
 
-		"}"
-	].join( "\n" ), null, { derivatives: true } );
+		'}'
+	].join( '\n' ), null, { derivatives: true } );
 
 
 	return {
 	return {
 		dHdxy_fwd: dHdxy_fwd,
 		dHdxy_fwd: dHdxy_fwd,
@@ -91,8 +91,8 @@ BumpMapNode.Nodes = ( function () {
 
 
 BumpMapNode.prototype = Object.create( TempNode.prototype );
 BumpMapNode.prototype = Object.create( TempNode.prototype );
 BumpMapNode.prototype.constructor = BumpMapNode;
 BumpMapNode.prototype.constructor = BumpMapNode;
-BumpMapNode.prototype.nodeType = "BumpMap";
-BumpMapNode.prototype.hashProperties = [ "toNormalMap" ];
+BumpMapNode.prototype.nodeType = 'BumpMap';
+BumpMapNode.prototype.hashProperties = [ 'toNormalMap' ];
 
 
 BumpMapNode.prototype.generate = function ( builder, output ) {
 BumpMapNode.prototype.generate = function ( builder, output ) {
 
 
@@ -126,7 +126,7 @@ BumpMapNode.prototype.generate = function ( builder, output ) {
 
 
 	} else {
 	} else {
 
 
-		console.warn( "THREE.BumpMapNode is not compatible with " + builder.shader + " shader." );
+		console.warn( 'THREE.BumpMapNode is not compatible with ' + builder.shader + ' shader.' );
 
 
 		return builder.format( 'vec3( 0.0 )', this.getType( builder ), output );
 		return builder.format( 'vec3( 0.0 )', this.getType( builder ), output );
 
 

+ 2 - 2
examples/jsm/nodes/misc/NormalMapNode.js

@@ -69,7 +69,7 @@ NormalMapNode.Nodes = ( function () {
 
 
 NormalMapNode.prototype = Object.create( TempNode.prototype );
 NormalMapNode.prototype = Object.create( TempNode.prototype );
 NormalMapNode.prototype.constructor = NormalMapNode;
 NormalMapNode.prototype.constructor = NormalMapNode;
-NormalMapNode.prototype.nodeType = "NormalMap";
+NormalMapNode.prototype.nodeType = 'NormalMap';
 
 
 NormalMapNode.prototype.generate = function ( builder, output ) {
 NormalMapNode.prototype.generate = function ( builder, output ) {
 
 
@@ -97,7 +97,7 @@ NormalMapNode.prototype.generate = function ( builder, output ) {
 
 
 	} else {
 	} else {
 
 
-		console.warn( "THREE.NormalMapNode is not compatible with " + builder.shader + " shader." );
+		console.warn( 'THREE.NormalMapNode is not compatible with ' + builder.shader + ' shader.' );
 
 
 		return builder.format( 'vec3( 0.0 )', this.getType( builder ), output );
 		return builder.format( 'vec3( 0.0 )', this.getType( builder ), output );
 
 

+ 2 - 2
examples/jsm/nodes/misc/TextureCubeNode.js

@@ -27,7 +27,7 @@ function TextureCubeNode( value, uv, bias ) {
 
 
 TextureCubeNode.prototype = Object.create( TempNode.prototype );
 TextureCubeNode.prototype = Object.create( TempNode.prototype );
 TextureCubeNode.prototype.constructor = TextureCubeNode;
 TextureCubeNode.prototype.constructor = TextureCubeNode;
-TextureCubeNode.prototype.nodeType = "TextureCube";
+TextureCubeNode.prototype.nodeType = 'TextureCube';
 
 
 TextureCubeNode.prototype.generate = function ( builder, output ) {
 TextureCubeNode.prototype.generate = function ( builder, output ) {
 
 
@@ -47,7 +47,7 @@ TextureCubeNode.prototype.generate = function ( builder, output ) {
 
 
 	} else {
 	} else {
 
 
-		console.warn( "THREE.TextureCubeNode is not compatible with " + builder.shader + " shader." );
+		console.warn( 'THREE.TextureCubeNode is not compatible with ' + builder.shader + ' shader.' );
 
 
 		return builder.format( 'vec4( 0.0 )', this.getType( builder ), output );
 		return builder.format( 'vec4( 0.0 )', this.getType( builder ), output );
 
 

+ 22 - 22
examples/jsm/nodes/misc/TextureCubeUVNode.js

@@ -30,10 +30,10 @@ TextureCubeUVNode.Nodes = ( function () {
 			vec2 f;
 			vec2 f;
 		}` );
 		}` );
 
 
-	var cubeUV_maxMipLevel = new ConstNode( `float cubeUV_maxMipLevel 8.0`, true );
-	var cubeUV_minMipLevel = new ConstNode( `float cubeUV_minMipLevel 4.0`, true );
-	var cubeUV_maxTileSize = new ConstNode( `float cubeUV_maxTileSize 256.0`, true );
-	var cubeUV_minTileSize = new ConstNode( `float cubeUV_minTileSize 16.0`, true );
+	var cubeUV_maxMipLevel = new ConstNode( 'float cubeUV_maxMipLevel 8.0', true );
+	var cubeUV_minMipLevel = new ConstNode( 'float cubeUV_minMipLevel 4.0', true );
+	var cubeUV_maxTileSize = new ConstNode( 'float cubeUV_maxTileSize 256.0', true );
+	var cubeUV_minTileSize = new ConstNode( 'float cubeUV_minTileSize 16.0', true );
 
 
 	// These shader functions convert between the UV coordinates of a single face of
 	// These shader functions convert between the UV coordinates of a single face of
 	// a cubemap, the 0-5 integer index of a cube face, and the direction vector for
 	// a cubemap, the 0-5 integer index of a cube face, and the direction vector for
@@ -117,21 +117,21 @@ TextureCubeUVNode.Nodes = ( function () {
 
 
 	// These defines must match with PMREMGenerator
 	// These defines must match with PMREMGenerator
 
 
-	var r0 = new ConstNode( `float r0 1.0`, true );
-	var v0 = new ConstNode( `float v0 0.339`, true );
-	var m0 = new ConstNode( `float m0 -2.0`, true );
-	var r1 = new ConstNode( `float r1 0.8`, true );
-	var v1 = new ConstNode( `float v1 0.276`, true );
-	var m1 = new ConstNode( `float m1 -1.0`, true );
-	var r4 = new ConstNode( `float r4 0.4`, true );
-	var v4 = new ConstNode( `float v4 0.046`, true );
-	var m4 = new ConstNode( `float m4 2.0`, true );
-	var r5 = new ConstNode( `float r5 0.305`, true );
-	var v5 = new ConstNode( `float v5 0.016`, true );
-	var m5 = new ConstNode( `float m5 3.0`, true );
-	var r6 = new ConstNode( `float r6 0.21`, true );
-	var v6 = new ConstNode( `float v6 0.0038`, true );
-	var m6 = new ConstNode( `float m6 4.0`, true );
+	var r0 = new ConstNode( 'float r0 1.0', true );
+	var v0 = new ConstNode( 'float v0 0.339', true );
+	var m0 = new ConstNode( 'float m0 -2.0', true );
+	var r1 = new ConstNode( 'float r1 0.8', true );
+	var v1 = new ConstNode( 'float v1 0.276', true );
+	var m1 = new ConstNode( 'float m1 -1.0', true );
+	var r4 = new ConstNode( 'float r4 0.4', true );
+	var v4 = new ConstNode( 'float v4 0.046', true );
+	var m4 = new ConstNode( 'float m4 2.0', true );
+	var r5 = new ConstNode( 'float r5 0.305', true );
+	var v5 = new ConstNode( 'float v5 0.016', true );
+	var m5 = new ConstNode( 'float m5 3.0', true );
+	var r6 = new ConstNode( 'float r6 0.21', true );
+	var v6 = new ConstNode( 'float v6 0.0038', true );
+	var m6 = new ConstNode( 'float m6 4.0', true );
 
 
 	var defines = [ r0, v0, m0, r1, v1, m1, r4, v4, m4, r5, v5, m5, r6, v6, m6 ];
 	var defines = [ r0, v0, m0, r1, v1, m1, r4, v4, m4, r5, v5, m5, r6, v6, m6 ];
 
 
@@ -163,7 +163,7 @@ TextureCubeUVNode.Nodes = ( function () {
 
 
 TextureCubeUVNode.prototype = Object.create( TempNode.prototype );
 TextureCubeUVNode.prototype = Object.create( TempNode.prototype );
 TextureCubeUVNode.prototype.constructor = TextureCubeUVNode;
 TextureCubeUVNode.prototype.constructor = TextureCubeUVNode;
-TextureCubeUVNode.prototype.nodeType = "TextureCubeUV";
+TextureCubeUVNode.prototype.nodeType = 'TextureCubeUV';
 
 
 TextureCubeUVNode.prototype.bilinearCubeUV = function ( builder, texture, uv, mipInt ) {
 TextureCubeUVNode.prototype.bilinearCubeUV = function ( builder, texture, uv, mipInt ) {
 
 
@@ -205,7 +205,7 @@ TextureCubeUVNode.prototype.bilinearCubeUV = function ( builder, texture, uv, mi
 
 
 	// --
 	// --
 
 
-	var output = new ExpressionNode( `mix( mix( cubeUV_TL, cubeUV_TR, cubeUV.f.x ), mix( cubeUV_BL, cubeUV_BR, cubeUV.f.x ), cubeUV.f.y )`, 'v4' );
+	var output = new ExpressionNode( 'mix( mix( cubeUV_TL, cubeUV_TR, cubeUV.f.x ), mix( cubeUV_BL, cubeUV_BR, cubeUV.f.x ), cubeUV.f.y )', 'v4' );
 	output.keywords[ 'cubeUV_TL' ] = this.colorSpaceTLExp;
 	output.keywords[ 'cubeUV_TL' ] = this.colorSpaceTLExp;
 	output.keywords[ 'cubeUV_TR' ] = this.colorSpaceTRExp;
 	output.keywords[ 'cubeUV_TR' ] = this.colorSpaceTRExp;
 	output.keywords[ 'cubeUV_BL' ] = this.colorSpaceBLExp;
 	output.keywords[ 'cubeUV_BL' ] = this.colorSpaceBLExp;
@@ -252,7 +252,7 @@ TextureCubeUVNode.prototype.generate = function ( builder, output ) {
 
 
 	} else {
 	} else {
 
 
-		console.warn( "THREE.TextureCubeUVNode is not compatible with " + builder.shader + " shader." );
+		console.warn( 'THREE.TextureCubeUVNode is not compatible with ' + builder.shader + ' shader.' );
 
 
 		return builder.format( 'vec4( 0.0 )', this.getType( builder ), output );
 		return builder.format( 'vec4( 0.0 )', this.getType( builder ), output );
 
 

+ 3 - 3
examples/jsm/nodes/postprocessing/NodePass.js

@@ -8,7 +8,7 @@ function NodePass() {
 
 
 	ShaderPass.call( this );
 	ShaderPass.call( this );
 
 
-	this.name = "";
+	this.name = '';
 	this.uuid = MathUtils.generateUUID();
 	this.uuid = MathUtils.generateUUID();
 
 
 	this.userData = {};
 	this.userData = {};
@@ -71,11 +71,11 @@ NodePass.prototype.toJSON = function ( meta ) {
 		var data = {};
 		var data = {};
 
 
 		data.uuid = this.uuid;
 		data.uuid = this.uuid;
-		data.type = "NodePass";
+		data.type = 'NodePass';
 
 
 		meta.passes[ this.uuid ] = data;
 		meta.passes[ this.uuid ] = data;
 
 
-		if ( this.name !== "" ) data.name = this.name;
+		if ( this.name !== '' ) data.name = this.name;
 
 
 		if ( JSON.stringify( this.userData ) !== '{}' ) data.userData = this.userData;
 		if ( JSON.stringify( this.userData ) !== '{}' ) data.userData = this.userData;
 
 

+ 2 - 2
examples/jsm/nodes/postprocessing/NodePostProcessing.js

@@ -127,11 +127,11 @@ NodePostProcessing.prototype = {
 			var data = {};
 			var data = {};
 
 
 			data.uuid = this.uuid;
 			data.uuid = this.uuid;
-			data.type = "NodePostProcessing";
+			data.type = 'NodePostProcessing';
 
 
 			meta.post[ this.uuid ] = data;
 			meta.post[ this.uuid ] = data;
 
 
-			if ( this.name !== "" ) data.name = this.name;
+			if ( this.name !== '' ) data.name = this.name;
 
 
 			if ( JSON.stringify( this.userData ) !== '{}' ) data.userData = this.userData;
 			if ( JSON.stringify( this.userData ) !== '{}' ) data.userData = this.userData;
 
 

+ 8 - 8
examples/jsm/nodes/procedural/CheckerNode.js

@@ -12,23 +12,23 @@ function CheckerNode( uv ) {
 
 
 CheckerNode.prototype = Object.create( TempNode.prototype );
 CheckerNode.prototype = Object.create( TempNode.prototype );
 CheckerNode.prototype.constructor = CheckerNode;
 CheckerNode.prototype.constructor = CheckerNode;
-CheckerNode.prototype.nodeType = "Noise";
+CheckerNode.prototype.nodeType = 'Noise';
 
 
 CheckerNode.Nodes = ( function () {
 CheckerNode.Nodes = ( function () {
 
 
 	// https://github.com/mattdesl/glsl-checker/blob/master/index.glsl
 	// https://github.com/mattdesl/glsl-checker/blob/master/index.glsl
 
 
 	var checker = new FunctionNode( [
 	var checker = new FunctionNode( [
-		"float checker( vec2 uv ) {",
+		'float checker( vec2 uv ) {',
 
 
-		"	float cx = floor( uv.x );",
-		"	float cy = floor( uv.y ); ",
-		"	float result = mod( cx + cy, 2.0 );",
+		'	float cx = floor( uv.x );',
+		'	float cy = floor( uv.y ); ',
+		'	float result = mod( cx + cy, 2.0 );',
 
 
-		"	return sign( result );",
+		'	return sign( result );',
 
 
-		"}"
-	].join( "\n" ) );
+		'}'
+	].join( '\n' ) );
 
 
 	return {
 	return {
 		checker: checker
 		checker: checker

+ 5 - 5
examples/jsm/nodes/procedural/NoiseNode.js

@@ -12,17 +12,17 @@ function NoiseNode( uv ) {
 
 
 NoiseNode.prototype = Object.create( TempNode.prototype );
 NoiseNode.prototype = Object.create( TempNode.prototype );
 NoiseNode.prototype.constructor = NoiseNode;
 NoiseNode.prototype.constructor = NoiseNode;
-NoiseNode.prototype.nodeType = "Noise";
+NoiseNode.prototype.nodeType = 'Noise';
 
 
 NoiseNode.Nodes = ( function () {
 NoiseNode.Nodes = ( function () {
 
 
 	var snoise = new FunctionNode( [
 	var snoise = new FunctionNode( [
-		"float snoise(vec2 co) {",
+		'float snoise(vec2 co) {',
 
 
-		"	return fract( sin( dot( co.xy, vec2( 12.9898, 78.233 ) ) ) * 43758.5453 );",
+		'	return fract( sin( dot( co.xy, vec2( 12.9898, 78.233 ) ) ) * 43758.5453 );',
 
 
-		"}"
-	].join( "\n" ) );
+		'}'
+	].join( '\n' ) );
 
 
 	return {
 	return {
 		snoise: snoise
 		snoise: snoise

+ 1 - 1
examples/jsm/nodes/utils/BypassNode.js

@@ -11,7 +11,7 @@ function BypassNode( code, value ) {
 
 
 BypassNode.prototype = Object.create( Node.prototype );
 BypassNode.prototype = Object.create( Node.prototype );
 BypassNode.prototype.constructor = BypassNode;
 BypassNode.prototype.constructor = BypassNode;
-BypassNode.prototype.nodeType = "Bypass";
+BypassNode.prototype.nodeType = 'Bypass';
 
 
 BypassNode.prototype.getType = function ( builder ) {
 BypassNode.prototype.getType = function ( builder ) {
 
 

+ 77 - 77
examples/jsm/nodes/utils/ColorSpaceNode.js

@@ -29,145 +29,145 @@ ColorSpaceNode.Nodes = ( function () {
 	// For a discussion of what this is, please read this: http://lousodrome.net/blog/light/2013/05/26/gamma-correct-and-hdr-rendering-in-a-32-bits-buffer/
 	// For a discussion of what this is, please read this: http://lousodrome.net/blog/light/2013/05/26/gamma-correct-and-hdr-rendering-in-a-32-bits-buffer/
 
 
 	var LinearToLinear = new FunctionNode( [
 	var LinearToLinear = new FunctionNode( [
-		"vec4 LinearToLinear( in vec4 value ) {",
+		'vec4 LinearToLinear( in vec4 value ) {',
 
 
-		"	return value;",
+		'	return value;',
 
 
-		"}"
-	].join( "\n" ) );
+		'}'
+	].join( '\n' ) );
 
 
 	var GammaToLinear = new FunctionNode( [
 	var GammaToLinear = new FunctionNode( [
-		"vec4 GammaToLinear( in vec4 value, in float gammaFactor ) {",
+		'vec4 GammaToLinear( in vec4 value, in float gammaFactor ) {',
 
 
-		"	return vec4( pow( value.xyz, vec3( gammaFactor ) ), value.w );",
+		'	return vec4( pow( value.xyz, vec3( gammaFactor ) ), value.w );',
 
 
-		"}"
-	].join( "\n" ) );
+		'}'
+	].join( '\n' ) );
 
 
 	var LinearToGamma = new FunctionNode( [
 	var LinearToGamma = new FunctionNode( [
-		"vec4 LinearToGamma( in vec4 value, in float gammaFactor ) {",
+		'vec4 LinearToGamma( in vec4 value, in float gammaFactor ) {',
 
 
-		"	return vec4( pow( value.xyz, vec3( 1.0 / gammaFactor ) ), value.w );",
+		'	return vec4( pow( value.xyz, vec3( 1.0 / gammaFactor ) ), value.w );',
 
 
-		"}"
-	].join( "\n" ) );
+		'}'
+	].join( '\n' ) );
 
 
 	var sRGBToLinear = new FunctionNode( [
 	var sRGBToLinear = new FunctionNode( [
-		"vec4 sRGBToLinear( in vec4 value ) {",
+		'vec4 sRGBToLinear( in vec4 value ) {',
 
 
-		"	return vec4( mix( pow( value.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), value.rgb * 0.0773993808, vec3( lessThanEqual( value.rgb, vec3( 0.04045 ) ) ) ), value.w );",
+		'	return vec4( mix( pow( value.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), value.rgb * 0.0773993808, vec3( lessThanEqual( value.rgb, vec3( 0.04045 ) ) ) ), value.w );',
 
 
-		"}"
-	].join( "\n" ) );
+		'}'
+	].join( '\n' ) );
 
 
 	var LinearTosRGB = new FunctionNode( [
 	var LinearTosRGB = new FunctionNode( [
-		"vec4 LinearTosRGB( in vec4 value ) {",
+		'vec4 LinearTosRGB( in vec4 value ) {',
 
 
-		"	return vec4( mix( pow( value.rgb, vec3( 0.41666 ) ) * 1.055 - vec3( 0.055 ), value.rgb * 12.92, vec3( lessThanEqual( value.rgb, vec3( 0.0031308 ) ) ) ), value.w );",
+		'	return vec4( mix( pow( value.rgb, vec3( 0.41666 ) ) * 1.055 - vec3( 0.055 ), value.rgb * 12.92, vec3( lessThanEqual( value.rgb, vec3( 0.0031308 ) ) ) ), value.w );',
 
 
-		"}"
-	].join( "\n" ) );
+		'}'
+	].join( '\n' ) );
 
 
 	var RGBEToLinear = new FunctionNode( [
 	var RGBEToLinear = new FunctionNode( [
-		"vec4 RGBEToLinear( in vec4 value ) {",
+		'vec4 RGBEToLinear( in vec4 value ) {',
 
 
-		"	return vec4( value.rgb * exp2( value.a * 255.0 - 128.0 ), 1.0 );",
+		'	return vec4( value.rgb * exp2( value.a * 255.0 - 128.0 ), 1.0 );',
 
 
-		"}"
-	].join( "\n" ) );
+		'}'
+	].join( '\n' ) );
 
 
 	var LinearToRGBE = new FunctionNode( [
 	var LinearToRGBE = new FunctionNode( [
-		"vec4 LinearToRGBE( in vec4 value ) {",
+		'vec4 LinearToRGBE( in vec4 value ) {',
 
 
-		"	float maxComponent = max( max( value.r, value.g ), value.b );",
-		"	float fExp = clamp( ceil( log2( maxComponent ) ), -128.0, 127.0 );",
-		"	return vec4( value.rgb / exp2( fExp ), ( fExp + 128.0 ) / 255.0 );",
+		'	float maxComponent = max( max( value.r, value.g ), value.b );',
+		'	float fExp = clamp( ceil( log2( maxComponent ) ), -128.0, 127.0 );',
+		'	return vec4( value.rgb / exp2( fExp ), ( fExp + 128.0 ) / 255.0 );',
 		//  return vec4( value.brg, ( 3.0 + 128.0 ) / 256.0 );
 		//  return vec4( value.brg, ( 3.0 + 128.0 ) / 256.0 );
 
 
-		"}"
-	].join( "\n" ) );
+		'}'
+	].join( '\n' ) );
 
 
 	// reference: http://iwasbeingirony.blogspot.ca/2010/06/difference-between-rgbm-and-rgbd.html
 	// reference: http://iwasbeingirony.blogspot.ca/2010/06/difference-between-rgbm-and-rgbd.html
 
 
 	var RGBMToLinear = new FunctionNode( [
 	var RGBMToLinear = new FunctionNode( [
-		"vec3 RGBMToLinear( in vec4 value, in float maxRange ) {",
+		'vec3 RGBMToLinear( in vec4 value, in float maxRange ) {',
 
 
-		"	return vec4( value.xyz * value.w * maxRange, 1.0 );",
+		'	return vec4( value.xyz * value.w * maxRange, 1.0 );',
 
 
-		"}"
-	].join( "\n" ) );
+		'}'
+	].join( '\n' ) );
 
 
 	var LinearToRGBM = new FunctionNode( [
 	var LinearToRGBM = new FunctionNode( [
-		"vec3 LinearToRGBM( in vec4 value, in float maxRange ) {",
+		'vec3 LinearToRGBM( in vec4 value, in float maxRange ) {',
 
 
-		"	float maxRGB = max( value.x, max( value.g, value.b ) );",
-		"	float M      = clamp( maxRGB / maxRange, 0.0, 1.0 );",
-		"	M            = ceil( M * 255.0 ) / 255.0;",
-		"	return vec4( value.rgb / ( M * maxRange ), M );",
+		'	float maxRGB = max( value.x, max( value.g, value.b ) );',
+		'	float M      = clamp( maxRGB / maxRange, 0.0, 1.0 );',
+		'	M            = ceil( M * 255.0 ) / 255.0;',
+		'	return vec4( value.rgb / ( M * maxRange ), M );',
 
 
-		"}"
-	].join( "\n" ) );
+		'}'
+	].join( '\n' ) );
 
 
 	// reference: http://iwasbeingirony.blogspot.ca/2010/06/difference-between-rgbm-and-rgbd.html
 	// reference: http://iwasbeingirony.blogspot.ca/2010/06/difference-between-rgbm-and-rgbd.html
 
 
 	var RGBDToLinear = new FunctionNode( [
 	var RGBDToLinear = new FunctionNode( [
-		"vec3 RGBDToLinear( in vec4 value, in float maxRange ) {",
+		'vec3 RGBDToLinear( in vec4 value, in float maxRange ) {',
 
 
-		"	return vec4( value.rgb * ( ( maxRange / 255.0 ) / value.a ), 1.0 );",
+		'	return vec4( value.rgb * ( ( maxRange / 255.0 ) / value.a ), 1.0 );',
 
 
-		"}"
-	].join( "\n" ) );
+		'}'
+	].join( '\n' ) );
 
 
 
 
 	var LinearToRGBD = new FunctionNode( [
 	var LinearToRGBD = new FunctionNode( [
-		"vec3 LinearToRGBD( in vec4 value, in float maxRange ) {",
+		'vec3 LinearToRGBD( in vec4 value, in float maxRange ) {',
 
 
-		"	float maxRGB = max( value.x, max( value.g, value.b ) );",
-		"	float D      = max( maxRange / maxRGB, 1.0 );",
-		"	D            = clamp( floor( D ) / 255.0, 0.0, 1.0 );",
-		"	return vec4( value.rgb * ( D * ( 255.0 / maxRange ) ), D );",
+		'	float maxRGB = max( value.x, max( value.g, value.b ) );',
+		'	float D      = max( maxRange / maxRGB, 1.0 );',
+		'	D            = clamp( floor( D ) / 255.0, 0.0, 1.0 );',
+		'	return vec4( value.rgb * ( D * ( 255.0 / maxRange ) ), D );',
 
 
-		"}"
-	].join( "\n" ) );
+		'}'
+	].join( '\n' ) );
 
 
 	// LogLuv reference: http://graphicrants.blogspot.ca/2009/04/rgbm-color-encoding.html
 	// LogLuv reference: http://graphicrants.blogspot.ca/2009/04/rgbm-color-encoding.html
 
 
 	// M matrix, for encoding
 	// M matrix, for encoding
 
 
-	var cLogLuvM = new ConstNode( "const mat3 cLogLuvM = mat3( 0.2209, 0.3390, 0.4184, 0.1138, 0.6780, 0.7319, 0.0102, 0.1130, 0.2969 );" );
+	var cLogLuvM = new ConstNode( 'const mat3 cLogLuvM = mat3( 0.2209, 0.3390, 0.4184, 0.1138, 0.6780, 0.7319, 0.0102, 0.1130, 0.2969 );' );
 
 
 	var LinearToLogLuv = new FunctionNode( [
 	var LinearToLogLuv = new FunctionNode( [
-		"vec4 LinearToLogLuv( in vec4 value ) {",
+		'vec4 LinearToLogLuv( in vec4 value ) {',
 
 
-		"	vec3 Xp_Y_XYZp = cLogLuvM * value.rgb;",
-		"	Xp_Y_XYZp = max(Xp_Y_XYZp, vec3(1e-6, 1e-6, 1e-6));",
-		"	vec4 vResult;",
-		"	vResult.xy = Xp_Y_XYZp.xy / Xp_Y_XYZp.z;",
-		"	float Le = 2.0 * log2(Xp_Y_XYZp.y) + 127.0;",
-		"	vResult.w = fract(Le);",
-		"	vResult.z = (Le - (floor(vResult.w*255.0))/255.0)/255.0;",
-		"	return vResult;",
+		'	vec3 Xp_Y_XYZp = cLogLuvM * value.rgb;',
+		'	Xp_Y_XYZp = max(Xp_Y_XYZp, vec3(1e-6, 1e-6, 1e-6));',
+		'	vec4 vResult;',
+		'	vResult.xy = Xp_Y_XYZp.xy / Xp_Y_XYZp.z;',
+		'	float Le = 2.0 * log2(Xp_Y_XYZp.y) + 127.0;',
+		'	vResult.w = fract(Le);',
+		'	vResult.z = (Le - (floor(vResult.w*255.0))/255.0)/255.0;',
+		'	return vResult;',
 
 
-		"}"
-	].join( "\n" ), [ cLogLuvM ] );
+		'}'
+	].join( '\n' ), [ cLogLuvM ] );
 
 
 	// Inverse M matrix, for decoding
 	// Inverse M matrix, for decoding
 
 
-	var cLogLuvInverseM = new ConstNode( "const mat3 cLogLuvInverseM = mat3( 6.0014, -2.7008, -1.7996, -1.3320, 3.1029, -5.7721, 0.3008, -1.0882, 5.6268 );" );
+	var cLogLuvInverseM = new ConstNode( 'const mat3 cLogLuvInverseM = mat3( 6.0014, -2.7008, -1.7996, -1.3320, 3.1029, -5.7721, 0.3008, -1.0882, 5.6268 );' );
 
 
 	var LogLuvToLinear = new FunctionNode( [
 	var LogLuvToLinear = new FunctionNode( [
-		"vec4 LogLuvToLinear( in vec4 value ) {",
+		'vec4 LogLuvToLinear( in vec4 value ) {',
 
 
-		"	float Le = value.z * 255.0 + value.w;",
-		"	vec3 Xp_Y_XYZp;",
-		"	Xp_Y_XYZp.y = exp2((Le - 127.0) / 2.0);",
-		"	Xp_Y_XYZp.z = Xp_Y_XYZp.y / value.y;",
-		"	Xp_Y_XYZp.x = value.x * Xp_Y_XYZp.z;",
-		"	vec3 vRGB = cLogLuvInverseM * Xp_Y_XYZp.rgb;",
-		"	return vec4( max(vRGB, 0.0), 1.0 );",
+		'	float Le = value.z * 255.0 + value.w;',
+		'	vec3 Xp_Y_XYZp;',
+		'	Xp_Y_XYZp.y = exp2((Le - 127.0) / 2.0);',
+		'	Xp_Y_XYZp.z = Xp_Y_XYZp.y / value.y;',
+		'	Xp_Y_XYZp.x = value.x * Xp_Y_XYZp.z;',
+		'	vec3 vRGB = cLogLuvInverseM * Xp_Y_XYZp.rgb;',
+		'	return vec4( max(vRGB, 0.0), 1.0 );',
 
 
-		"}"
-	].join( "\n" ), [ cLogLuvInverseM ] );
+		'}'
+	].join( '\n' ), [ cLogLuvInverseM ] );
 
 
 	return {
 	return {
 		LinearToLinear: LinearToLinear,
 		LinearToLinear: LinearToLinear,
@@ -234,8 +234,8 @@ ColorSpaceNode.getEncodingComponents = function ( encoding ) {
 
 
 ColorSpaceNode.prototype = Object.create( TempNode.prototype );
 ColorSpaceNode.prototype = Object.create( TempNode.prototype );
 ColorSpaceNode.prototype.constructor = ColorSpaceNode;
 ColorSpaceNode.prototype.constructor = ColorSpaceNode;
-ColorSpaceNode.prototype.nodeType = "ColorSpace";
-ColorSpaceNode.prototype.hashProperties = [ "method" ];
+ColorSpaceNode.prototype.nodeType = 'ColorSpace';
+ColorSpaceNode.prototype.hashProperties = [ 'method' ];
 
 
 ColorSpaceNode.prototype.generate = function ( builder, output ) {
 ColorSpaceNode.prototype.generate = function ( builder, output ) {
 
 

+ 1 - 1
examples/jsm/nodes/utils/JoinNode.js

@@ -16,7 +16,7 @@ function JoinNode( x, y, z, w ) {
 
 
 JoinNode.prototype = Object.create( TempNode.prototype );
 JoinNode.prototype = Object.create( TempNode.prototype );
 JoinNode.prototype.constructor = JoinNode;
 JoinNode.prototype.constructor = JoinNode;
-JoinNode.prototype.nodeType = "Join";
+JoinNode.prototype.nodeType = 'Join';
 
 
 JoinNode.prototype.getNumElements = function () {
 JoinNode.prototype.getNumElements = function () {
 
 

+ 1 - 1
examples/jsm/nodes/utils/MaxMIPLevelNode.js

@@ -12,7 +12,7 @@ function MaxMIPLevelNode( texture ) {
 
 
 MaxMIPLevelNode.prototype = Object.create( FloatNode.prototype );
 MaxMIPLevelNode.prototype = Object.create( FloatNode.prototype );
 MaxMIPLevelNode.prototype.constructor = MaxMIPLevelNode;
 MaxMIPLevelNode.prototype.constructor = MaxMIPLevelNode;
-MaxMIPLevelNode.prototype.nodeType = "MaxMIPLevel";
+MaxMIPLevelNode.prototype.nodeType = 'MaxMIPLevel';
 
 
 Object.defineProperties( MaxMIPLevelNode.prototype, {
 Object.defineProperties( MaxMIPLevelNode.prototype, {
 
 

+ 8 - 8
examples/jsm/nodes/utils/SpecularMIPLevelNode.js

@@ -17,16 +17,16 @@ SpecularMIPLevelNode.Nodes = ( function () {
 
 
 	var getSpecularMIPLevel = new FunctionNode( [
 	var getSpecularMIPLevel = new FunctionNode( [
 		// taken from here: http://casual-effects.blogspot.ca/2011/08/plausible-environment-lighting-in-two.html
 		// taken from here: http://casual-effects.blogspot.ca/2011/08/plausible-environment-lighting-in-two.html
-		"float getSpecularMIPLevel( const in float roughness, const in float maxMIPLevelScalar ) {",
+		'float getSpecularMIPLevel( const in float roughness, const in float maxMIPLevelScalar ) {',
 
 
-		"	float sigma = PI * roughness * roughness / ( 1.0 + roughness );",
-		"	float desiredMIPLevel = maxMIPLevelScalar + log2( sigma );",
+		'	float sigma = PI * roughness * roughness / ( 1.0 + roughness );',
+		'	float desiredMIPLevel = maxMIPLevelScalar + log2( sigma );',
 
 
 		// clamp to allowable LOD ranges.
 		// clamp to allowable LOD ranges.
-		"	return clamp( desiredMIPLevel, 0.0, maxMIPLevelScalar );",
+		'	return clamp( desiredMIPLevel, 0.0, maxMIPLevelScalar );',
 
 
-		"}"
-	].join( "\n" ) );
+		'}'
+	].join( '\n' ) );
 
 
 	return {
 	return {
 		getSpecularMIPLevel: getSpecularMIPLevel
 		getSpecularMIPLevel: getSpecularMIPLevel
@@ -36,7 +36,7 @@ SpecularMIPLevelNode.Nodes = ( function () {
 
 
 SpecularMIPLevelNode.prototype = Object.create( TempNode.prototype );
 SpecularMIPLevelNode.prototype = Object.create( TempNode.prototype );
 SpecularMIPLevelNode.prototype.constructor = SpecularMIPLevelNode;
 SpecularMIPLevelNode.prototype.constructor = SpecularMIPLevelNode;
-SpecularMIPLevelNode.prototype.nodeType = "SpecularMIPLevel";
+SpecularMIPLevelNode.prototype.nodeType = 'SpecularMIPLevel';
 
 
 SpecularMIPLevelNode.prototype.setTexture = function ( texture ) {
 SpecularMIPLevelNode.prototype.setTexture = function ( texture ) {
 
 
@@ -59,7 +59,7 @@ SpecularMIPLevelNode.prototype.generate = function ( builder, output ) {
 
 
 	} else {
 	} else {
 
 
-		console.warn( "THREE.SpecularMIPLevelNode is not compatible with " + builder.shader + " shader." );
+		console.warn( 'THREE.SpecularMIPLevelNode is not compatible with ' + builder.shader + ' shader.' );
 
 
 		return builder.format( '0.0', this.type, output );
 		return builder.format( '0.0', this.type, output );
 
 

+ 1 - 1
examples/jsm/nodes/utils/SubSlotNode.js

@@ -10,7 +10,7 @@ function SubSlotNode( slots ) {
 
 
 SubSlotNode.prototype = Object.create( TempNode.prototype );
 SubSlotNode.prototype = Object.create( TempNode.prototype );
 SubSlotNode.prototype.constructor = SubSlotNode;
 SubSlotNode.prototype.constructor = SubSlotNode;
-SubSlotNode.prototype.nodeType = "SubSlot";
+SubSlotNode.prototype.nodeType = 'SubSlot';
 
 
 SubSlotNode.prototype.getType = function ( builder, output ) {
 SubSlotNode.prototype.getType = function ( builder, output ) {
 
 

+ 1 - 1
examples/jsm/nodes/utils/SwitchNode.js

@@ -11,7 +11,7 @@ function SwitchNode( node, components ) {
 
 
 SwitchNode.prototype = Object.create( Node.prototype );
 SwitchNode.prototype = Object.create( Node.prototype );
 SwitchNode.prototype.constructor = SwitchNode;
 SwitchNode.prototype.constructor = SwitchNode;
-SwitchNode.prototype.nodeType = "Switch";
+SwitchNode.prototype.nodeType = 'Switch';
 
 
 SwitchNode.prototype.getType = function ( builder ) {
 SwitchNode.prototype.getType = function ( builder ) {
 
 

+ 1 - 1
examples/jsm/nodes/utils/TimerNode.js

@@ -18,7 +18,7 @@ TimerNode.DELTA = 'delta';
 
 
 TimerNode.prototype = Object.create( FloatNode.prototype );
 TimerNode.prototype = Object.create( FloatNode.prototype );
 TimerNode.prototype.constructor = TimerNode;
 TimerNode.prototype.constructor = TimerNode;
-TimerNode.prototype.nodeType = "Timer";
+TimerNode.prototype.nodeType = 'Timer';
 
 
 TimerNode.prototype.getReadonly = function () {
 TimerNode.prototype.getReadonly = function () {
 
 

+ 4 - 4
examples/jsm/nodes/utils/UVTransformNode.js

@@ -4,7 +4,7 @@ import { UVNode } from '../accessors/UVNode.js';
 
 
 function UVTransformNode( uv, position ) {
 function UVTransformNode( uv, position ) {
 
 
-	ExpressionNode.call( this, "( uvTransform * vec3( uvNode, 1 ) ).xy", "vec2" );
+	ExpressionNode.call( this, '( uvTransform * vec3( uvNode, 1 ) ).xy', 'vec2' );
 
 
 	this.uv = uv || new UVNode();
 	this.uv = uv || new UVNode();
 	this.position = position || new Matrix3Node();
 	this.position = position || new Matrix3Node();
@@ -13,12 +13,12 @@ function UVTransformNode( uv, position ) {
 
 
 UVTransformNode.prototype = Object.create( ExpressionNode.prototype );
 UVTransformNode.prototype = Object.create( ExpressionNode.prototype );
 UVTransformNode.prototype.constructor = UVTransformNode;
 UVTransformNode.prototype.constructor = UVTransformNode;
-UVTransformNode.prototype.nodeType = "UVTransform";
+UVTransformNode.prototype.nodeType = 'UVTransform';
 
 
 UVTransformNode.prototype.generate = function ( builder, output ) {
 UVTransformNode.prototype.generate = function ( builder, output ) {
 
 
-	this.keywords[ "uvNode" ] = this.uv;
-	this.keywords[ "uvTransform" ] = this.position;
+	this.keywords[ 'uvNode' ] = this.uv;
+	this.keywords[ 'uvTransform' ] = this.position;
 
 
 	return ExpressionNode.prototype.generate.call( this, builder, output );
 	return ExpressionNode.prototype.generate.call( this, builder, output );
 
 

+ 4 - 4
examples/jsm/nodes/utils/VelocityNode.js

@@ -17,7 +17,7 @@ function VelocityNode( target, params ) {
 
 
 VelocityNode.prototype = Object.create( Vector3Node.prototype );
 VelocityNode.prototype = Object.create( Vector3Node.prototype );
 VelocityNode.prototype.constructor = VelocityNode;
 VelocityNode.prototype.constructor = VelocityNode;
-VelocityNode.prototype.nodeType = "Velocity";
+VelocityNode.prototype.nodeType = 'Velocity';
 
 
 VelocityNode.prototype.getReadonly = function ( /*builder*/ ) {
 VelocityNode.prototype.getReadonly = function ( /*builder*/ ) {
 
 
@@ -29,7 +29,7 @@ VelocityNode.prototype.setParams = function ( params ) {
 
 
 	switch ( this.params.type ) {
 	switch ( this.params.type ) {
 
 
-		case "elastic":
+		case 'elastic':
 
 
 			delete this.moment;
 			delete this.moment;
 
 
@@ -46,7 +46,7 @@ VelocityNode.prototype.setParams = function ( params ) {
 
 
 	switch ( this.params.type ) {
 	switch ( this.params.type ) {
 
 
-		case "elastic":
+		case 'elastic':
 
 
 			this.moment = new Vector3();
 			this.moment = new Vector3();
 
 
@@ -99,7 +99,7 @@ VelocityNode.prototype.updateFrame = function ( frame ) {
 
 
 	switch ( this.params.type ) {
 	switch ( this.params.type ) {
 
 
-		case "elastic":
+		case 'elastic':
 
 
 			// convert to real scale: 0 at 1 values
 			// convert to real scale: 0 at 1 values
 			var deltaFps = frame.delta * ( this.params.fps || 60 );
 			var deltaFps = frame.delta * ( this.params.fps || 60 );

+ 51 - 51
examples/jsm/utils/GeometryCompressionUtils.js

@@ -30,7 +30,7 @@ var GeometryCompressionUtils = {
 
 
 		if ( ! mesh.geometry ) {
 		if ( ! mesh.geometry ) {
 
 
-			console.error( "Mesh must contain geometry. " );
+			console.error( 'Mesh must contain geometry. ' );
 
 
 		}
 		}
 
 
@@ -38,7 +38,7 @@ var GeometryCompressionUtils = {
 
 
 		if ( ! normal ) {
 		if ( ! normal ) {
 
 
-			console.error( "Geometry must contain normal attribute. " );
+			console.error( 'Geometry must contain normal attribute. ' );
 
 
 		}
 		}
 
 
@@ -46,7 +46,7 @@ var GeometryCompressionUtils = {
 
 
 		if ( normal.itemSize != 3 ) {
 		if ( normal.itemSize != 3 ) {
 
 
-			console.error( "normal.itemSize is not 3, which cannot be encoded. " );
+			console.error( 'normal.itemSize is not 3, which cannot be encoded. ' );
 
 
 		}
 		}
 
 
@@ -54,7 +54,7 @@ var GeometryCompressionUtils = {
 		const count = normal.count;
 		const count = normal.count;
 
 
 		let result;
 		let result;
-		if ( encodeMethod == "DEFAULT" ) {
+		if ( encodeMethod == 'DEFAULT' ) {
 
 
 			// TODO: Add 1 byte to the result, making the encoded length to be 4 bytes.
 			// TODO: Add 1 byte to the result, making the encoded length to be 4 bytes.
 			result = new Uint8Array( count * 3 );
 			result = new Uint8Array( count * 3 );
@@ -72,7 +72,7 @@ var GeometryCompressionUtils = {
 			mesh.geometry.setAttribute( 'normal', new BufferAttribute( result, 3, true ) );
 			mesh.geometry.setAttribute( 'normal', new BufferAttribute( result, 3, true ) );
 			mesh.geometry.attributes.normal.bytes = result.length * 1;
 			mesh.geometry.attributes.normal.bytes = result.length * 1;
 
 
-		} else if ( encodeMethod == "OCT1Byte" ) {
+		} else if ( encodeMethod == 'OCT1Byte' ) {
 
 
 			/**
 			/**
 			* It is not recommended to use 1-byte octahedron normals encoding unless you want to extremely reduce the memory usage
 			* It is not recommended to use 1-byte octahedron normals encoding unless you want to extremely reduce the memory usage
@@ -94,7 +94,7 @@ var GeometryCompressionUtils = {
 			mesh.geometry.setAttribute( 'normal', new BufferAttribute( result, 2, true ) );
 			mesh.geometry.setAttribute( 'normal', new BufferAttribute( result, 2, true ) );
 			mesh.geometry.attributes.normal.bytes = result.length * 1;
 			mesh.geometry.attributes.normal.bytes = result.length * 1;
 
 
-		} else if ( encodeMethod == "OCT2Byte" ) {
+		} else if ( encodeMethod == 'OCT2Byte' ) {
 
 
 			result = new Int16Array( count * 2 );
 			result = new Int16Array( count * 2 );
 
 
@@ -110,7 +110,7 @@ var GeometryCompressionUtils = {
 			mesh.geometry.setAttribute( 'normal', new BufferAttribute( result, 2, true ) );
 			mesh.geometry.setAttribute( 'normal', new BufferAttribute( result, 2, true ) );
 			mesh.geometry.attributes.normal.bytes = result.length * 2;
 			mesh.geometry.attributes.normal.bytes = result.length * 2;
 
 
-		} else if ( encodeMethod == "ANGLES" ) {
+		} else if ( encodeMethod == 'ANGLES' ) {
 
 
 			result = new Uint16Array( count * 2 );
 			result = new Uint16Array( count * 2 );
 
 
@@ -128,7 +128,7 @@ var GeometryCompressionUtils = {
 
 
 		} else {
 		} else {
 
 
-			console.error( "Unrecognized encoding method, should be `DEFAULT` or `ANGLES` or `OCT`. " );
+			console.error( 'Unrecognized encoding method, should be `DEFAULT` or `ANGLES` or `OCT`. ' );
 
 
 		}
 		}
 
 
@@ -143,25 +143,25 @@ var GeometryCompressionUtils = {
 
 
 		}
 		}
 
 
-		if ( encodeMethod == "ANGLES" ) {
+		if ( encodeMethod == 'ANGLES' ) {
 
 
 			mesh.material.defines.USE_PACKED_NORMAL = 0;
 			mesh.material.defines.USE_PACKED_NORMAL = 0;
 
 
 		}
 		}
 
 
-		if ( encodeMethod == "OCT1Byte" ) {
+		if ( encodeMethod == 'OCT1Byte' ) {
 
 
 			mesh.material.defines.USE_PACKED_NORMAL = 1;
 			mesh.material.defines.USE_PACKED_NORMAL = 1;
 
 
 		}
 		}
 
 
-		if ( encodeMethod == "OCT2Byte" ) {
+		if ( encodeMethod == 'OCT2Byte' ) {
 
 
 			mesh.material.defines.USE_PACKED_NORMAL = 1;
 			mesh.material.defines.USE_PACKED_NORMAL = 1;
 
 
 		}
 		}
 
 
-		if ( encodeMethod == "DEFAULT" ) {
+		if ( encodeMethod == 'DEFAULT' ) {
 
 
 			mesh.material.defines.USE_PACKED_NORMAL = 2;
 			mesh.material.defines.USE_PACKED_NORMAL = 2;
 
 
@@ -181,7 +181,7 @@ var GeometryCompressionUtils = {
 
 
 		if ( ! mesh.geometry ) {
 		if ( ! mesh.geometry ) {
 
 
-			console.error( "Mesh must contain geometry. " );
+			console.error( 'Mesh must contain geometry. ' );
 
 
 		}
 		}
 
 
@@ -189,7 +189,7 @@ var GeometryCompressionUtils = {
 
 
 		if ( ! position ) {
 		if ( ! position ) {
 
 
-			console.error( "Geometry must contain position attribute. " );
+			console.error( 'Geometry must contain position attribute. ' );
 
 
 		}
 		}
 
 
@@ -197,7 +197,7 @@ var GeometryCompressionUtils = {
 
 
 		if ( position.itemSize != 3 ) {
 		if ( position.itemSize != 3 ) {
 
 
-			console.error( "position.itemSize is not 3, which cannot be packed. " );
+			console.error( 'position.itemSize is not 3, which cannot be packed. ' );
 
 
 		}
 		}
 
 
@@ -243,7 +243,7 @@ var GeometryCompressionUtils = {
 
 
 		if ( ! mesh.geometry ) {
 		if ( ! mesh.geometry ) {
 
 
-			console.error( "Mesh must contain geometry property. " );
+			console.error( 'Mesh must contain geometry property. ' );
 
 
 		}
 		}
 
 
@@ -251,7 +251,7 @@ var GeometryCompressionUtils = {
 
 
 		if ( ! uvs ) {
 		if ( ! uvs ) {
 
 
-			console.error( "Geometry must contain uv attribute. " );
+			console.error( 'Geometry must contain uv attribute. ' );
 
 
 		}
 		}
 
 
@@ -342,7 +342,7 @@ var GeometryCompressionUtils = {
 
 
 			} else {
 			} else {
 
 
-				console.error( "number of bytes must be 1 or 2" );
+				console.error( 'number of bytes must be 1 or 2' );
 
 
 			}
 			}
 
 
@@ -368,7 +368,7 @@ var GeometryCompressionUtils = {
 
 
 			} else {
 			} else {
 
 
-				console.error( "number of bytes must be 1 or 2" );
+				console.error( 'number of bytes must be 1 or 2' );
 
 
 			}
 			}
 
 
@@ -390,11 +390,11 @@ var GeometryCompressionUtils = {
 
 
 			// Test various combinations of ceil and floor
 			// Test various combinations of ceil and floor
 			// to minimize rounding errors
 			// to minimize rounding errors
-			best = oct = octEncodeVec3( x, y, z, "floor", "floor" );
+			best = oct = octEncodeVec3( x, y, z, 'floor', 'floor' );
 			dec = octDecodeVec2( oct );
 			dec = octDecodeVec2( oct );
 			bestCos = dot( x, y, z, dec );
 			bestCos = dot( x, y, z, dec );
 
 
-			oct = octEncodeVec3( x, y, z, "ceil", "floor" );
+			oct = octEncodeVec3( x, y, z, 'ceil', 'floor' );
 			dec = octDecodeVec2( oct );
 			dec = octDecodeVec2( oct );
 			currentCos = dot( x, y, z, dec );
 			currentCos = dot( x, y, z, dec );
 
 
@@ -405,7 +405,7 @@ var GeometryCompressionUtils = {
 
 
 			}
 			}
 
 
-			oct = octEncodeVec3( x, y, z, "floor", "ceil" );
+			oct = octEncodeVec3( x, y, z, 'floor', 'ceil' );
 			dec = octDecodeVec2( oct );
 			dec = octDecodeVec2( oct );
 			currentCos = dot( x, y, z, dec );
 			currentCos = dot( x, y, z, dec );
 
 
@@ -416,7 +416,7 @@ var GeometryCompressionUtils = {
 
 
 			}
 			}
 
 
-			oct = octEncodeVec3( x, y, z, "ceil", "ceil" );
+			oct = octEncodeVec3( x, y, z, 'ceil', 'ceil' );
 			dec = octDecodeVec2( oct );
 			dec = octDecodeVec2( oct );
 			currentCos = dot( x, y, z, dec );
 			currentCos = dot( x, y, z, dec );
 
 
@@ -535,7 +535,7 @@ var GeometryCompressionUtils = {
 
 
 			} else {
 			} else {
 
 
-				console.error( "number of bytes error! " );
+				console.error( 'number of bytes error! ' );
 
 
 			}
 			}
 
 
@@ -609,7 +609,7 @@ var GeometryCompressionUtils = {
 
 
 			} else {
 			} else {
 
 
-				console.error( "number of bytes error! " );
+				console.error( 'number of bytes error! ' );
 
 
 			}
 			}
 
 
@@ -687,13 +687,13 @@ function PackedPhongMaterial( parameters ) {
 	] );
 	] );
 
 
 	this.vertexShader = [
 	this.vertexShader = [
-		"#define PHONG",
+		'#define PHONG',
 
 
-		"varying vec3 vViewPosition;",
+		'varying vec3 vViewPosition;',
 
 
-		"#ifndef FLAT_SHADED",
-		"varying vec3 vNormal;",
-		"#endif",
+		'#ifndef FLAT_SHADED',
+		'varying vec3 vNormal;',
+		'#endif',
 
 
 		ShaderChunk.common,
 		ShaderChunk.common,
 		ShaderChunk.uv_pars_vertex,
 		ShaderChunk.uv_pars_vertex,
@@ -771,7 +771,7 @@ function PackedPhongMaterial( parameters ) {
 			#endif
 			#endif
 		#endif`,
 		#endif`,
 
 
-		"void main() {",
+		'void main() {',
 
 
 		ShaderChunk.uv_vertex,
 		ShaderChunk.uv_vertex,
 
 
@@ -799,9 +799,9 @@ function PackedPhongMaterial( parameters ) {
 		ShaderChunk.skinnormal_vertex,
 		ShaderChunk.skinnormal_vertex,
 		ShaderChunk.defaultnormal_vertex,
 		ShaderChunk.defaultnormal_vertex,
 
 
-		"#ifndef FLAT_SHADED",
-		"	vNormal = normalize( transformedNormal );",
-		"#endif",
+		'#ifndef FLAT_SHADED',
+		'	vNormal = normalize( transformedNormal );',
+		'#endif',
 
 
 		ShaderChunk.begin_vertex,
 		ShaderChunk.begin_vertex,
 
 
@@ -818,25 +818,25 @@ function PackedPhongMaterial( parameters ) {
 		ShaderChunk.logdepthbuf_vertex,
 		ShaderChunk.logdepthbuf_vertex,
 		ShaderChunk.clipping_planes_vertex,
 		ShaderChunk.clipping_planes_vertex,
 
 
-		"vViewPosition = - mvPosition.xyz;",
+		'vViewPosition = - mvPosition.xyz;',
 
 
 		ShaderChunk.worldpos_vertex,
 		ShaderChunk.worldpos_vertex,
 		ShaderChunk.envmap_vertex,
 		ShaderChunk.envmap_vertex,
 		ShaderChunk.shadowmap_vertex,
 		ShaderChunk.shadowmap_vertex,
 		ShaderChunk.fog_vertex,
 		ShaderChunk.fog_vertex,
 
 
-		"}",
-	].join( "\n" );
+		'}',
+	].join( '\n' );
 
 
 	// Use the original MeshPhongMaterial's fragmentShader.
 	// Use the original MeshPhongMaterial's fragmentShader.
 	this.fragmentShader = [
 	this.fragmentShader = [
-		"#define PHONG",
+		'#define PHONG',
 
 
-		"uniform vec3 diffuse;",
-		"uniform vec3 emissive;",
-		"uniform vec3 specular;",
-		"uniform float shininess;",
-		"uniform float opacity;",
+		'uniform vec3 diffuse;',
+		'uniform vec3 emissive;',
+		'uniform vec3 specular;',
+		'uniform float shininess;',
+		'uniform float opacity;',
 
 
 		ShaderChunk.common,
 		ShaderChunk.common,
 		ShaderChunk.packing,
 		ShaderChunk.packing,
@@ -863,13 +863,13 @@ function PackedPhongMaterial( parameters ) {
 		ShaderChunk.logdepthbuf_pars_fragment,
 		ShaderChunk.logdepthbuf_pars_fragment,
 		ShaderChunk.clipping_planes_pars_fragment,
 		ShaderChunk.clipping_planes_pars_fragment,
 
 
-		"void main() {",
+		'void main() {',
 
 
 		ShaderChunk.clipping_planes_fragment,
 		ShaderChunk.clipping_planes_fragment,
 
 
-		"vec4 diffuseColor = vec4( diffuse, opacity );",
-		"ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );",
-		"vec3 totalEmissiveRadiance = emissive;",
+		'vec4 diffuseColor = vec4( diffuse, opacity );',
+		'ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );',
+		'vec3 totalEmissiveRadiance = emissive;',
 
 
 		ShaderChunk.logdepthbuf_fragment,
 		ShaderChunk.logdepthbuf_fragment,
 		ShaderChunk.map_fragment,
 		ShaderChunk.map_fragment,
@@ -890,19 +890,19 @@ function PackedPhongMaterial( parameters ) {
 		// modulation
 		// modulation
 		ShaderChunk.aomap_fragment,
 		ShaderChunk.aomap_fragment,
 
 
-		"vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveRadiance;",
+		'vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveRadiance;',
 
 
 		ShaderChunk.envmap_fragment,
 		ShaderChunk.envmap_fragment,
 
 
-		"gl_FragColor = vec4( outgoingLight, diffuseColor.a );",
+		'gl_FragColor = vec4( outgoingLight, diffuseColor.a );',
 
 
 		ShaderChunk.tonemapping_fragment,
 		ShaderChunk.tonemapping_fragment,
 		ShaderChunk.encodings_fragment,
 		ShaderChunk.encodings_fragment,
 		ShaderChunk.fog_fragment,
 		ShaderChunk.fog_fragment,
 		ShaderChunk.premultiplied_alpha_fragment,
 		ShaderChunk.premultiplied_alpha_fragment,
 		ShaderChunk.dithering_fragment,
 		ShaderChunk.dithering_fragment,
-		"}",
-	].join( "\n" );
+		'}',
+	].join( '\n' );
 
 
 	this.setValues( parameters );
 	this.setValues( parameters );
 
 

+ 1 - 1
examples/jsm/webxr/XRControllerModelFactory.js

@@ -259,7 +259,7 @@ var XRControllerModelFactory = ( function () {
 
 
 						if ( ! this.gltfLoader ) {
 						if ( ! this.gltfLoader ) {
 
 
-							throw new Error( `GLTFLoader not set.` );
+							throw new Error( 'GLTFLoader not set.' );
 
 
 						}
 						}