44 lines
		
	
	
		
			899 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			44 lines
		
	
	
		
			899 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| module.exports = function arch () {
 | |
|   /**
 | |
|    * User agent strings that indicate a 64-bit OS.
 | |
|    * See: http://stackoverflow.com/a/13709431/292185
 | |
|    */
 | |
|   var userAgent = navigator.userAgent
 | |
|   if ([
 | |
|     'x86_64',
 | |
|     'x86-64',
 | |
|     'Win64',
 | |
|     'x64;',
 | |
|     'amd64',
 | |
|     'AMD64',
 | |
|     'WOW64',
 | |
|     'x64_64'
 | |
|   ].some(function (str) {
 | |
|     return userAgent.indexOf(str) > -1
 | |
|   })) {
 | |
|     return 'x64'
 | |
|   }
 | |
| 
 | |
|   /**
 | |
|    * Platform strings that indicate a 64-bit OS.
 | |
|    * See: http://stackoverflow.com/a/19883965/292185
 | |
|    */
 | |
|   var platform = navigator.platform
 | |
|   if (platform === 'MacIntel' || platform === 'Linux x86_64') {
 | |
|     return 'x64'
 | |
|   }
 | |
| 
 | |
|   /**
 | |
|    * CPU class strings that indicate a 64-bit OS.
 | |
|    * See: http://stackoverflow.com/a/6267019/292185
 | |
|    */
 | |
|   if (navigator.cpuClass === 'x64') {
 | |
|     return 'x64'
 | |
|   }
 | |
| 
 | |
|   /**
 | |
|    * If none of the above, assume the architecture is 32-bit.
 | |
|    */
 | |
|   return 'x86'
 | |
| }
 |