瀏覽代碼

Updated builds.

Mr.doob 3 年之前
父節點
當前提交
4d7e30672f
共有 4 個文件被更改,包括 9715 次插入7 次删除
  1. 9678 0
      build/three.cjs
  2. 17 4
      build/three.js
  3. 0 0
      build/three.min.js
  4. 20 3
      build/three.module.js

File diff suppressed because it is too large
+ 9678 - 0
build/three.cjs


+ 17 - 4
build/three.js

@@ -28434,7 +28434,10 @@
 				headers: new Headers(this.requestHeader),
 				credentials: this.withCredentials ? 'include' : 'same-origin' // An abort controller could be added within a future PR
 
-			}); // start the fetch
+			}); // record states ( avoid data race )
+
+			const mimeType = this.mimeType;
+			const responseType = this.responseType; // start the fetch
 
 			fetch(req).then(response => {
 				if (response.status === 200 || response.status === 0) {
@@ -28492,7 +28495,7 @@
 					throw Error(`fetch for "${response.url}" responded with ${response.status}: ${response.statusText}`);
 				}
 			}).then(response => {
-				switch (this.responseType) {
+				switch (responseType) {
 					case 'arraybuffer':
 						return response.arrayBuffer();
 
@@ -28502,14 +28505,24 @@
 					case 'document':
 						return response.text().then(text => {
 							const parser = new DOMParser();
-							return parser.parseFromString(text, this.mimeType);
+							return parser.parseFromString(text, mimeType);
 						});
 
 					case 'json':
 						return response.json();
 
 					default:
-						return response.text();
+						if (mimeType === undefined) {
+							return response.text();
+						} else {
+							// sniff encoding
+							const re = /charset="?([^;"\s]*)"?/i;
+							const exec = re.exec(mimeType);
+							const label = exec && exec[1] ? exec[1].toLowerCase() : undefined;
+							const decoder = new TextDecoder(label);
+							return response.arrayBuffer().then(ab => decoder.decode(ab));
+						}
+
 				}
 			}).then(data => {
 				// Add to cache only on HTTP success, so that we do not cache

File diff suppressed because it is too large
+ 0 - 0
build/three.min.js


+ 20 - 3
build/three.module.js

@@ -39264,6 +39264,10 @@ class FileLoader extends Loader {
 			// An abort controller could be added within a future PR
 		} );
 
+		// record states ( avoid data race )
+		const mimeType = this.mimeType;
+		const responseType = this.responseType;
+
 		// start the fetch
 		fetch( req )
 			.then( response => {
@@ -39342,7 +39346,7 @@ class FileLoader extends Loader {
 			} )
 			.then( response => {
 
-				switch ( this.responseType ) {
+				switch ( responseType ) {
 
 					case 'arraybuffer':
 
@@ -39358,7 +39362,7 @@ class FileLoader extends Loader {
 							.then( text => {
 
 								const parser = new DOMParser();
-								return parser.parseFromString( text, this.mimeType );
+								return parser.parseFromString( text, mimeType );
 
 							} );
 
@@ -39368,7 +39372,20 @@ class FileLoader extends Loader {
 
 					default:
 
-						return response.text();
+						if ( mimeType === undefined ) {
+
+							return response.text();
+
+						} else {
+
+							// sniff encoding
+							const re = /charset="?([^;"\s]*)"?/i;
+							const exec = re.exec( mimeType );
+							const label = exec && exec[ 1 ] ? exec[ 1 ].toLowerCase() : undefined;
+							const decoder = new TextDecoder( label );
+							return response.arrayBuffer().then( ab => decoder.decode( ab ) );
+
+						}
 
 				}
 

Some files were not shown because too many files changed in this diff