You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					18 lines
				
				620 B
			
		
		
			
		
	
	
					18 lines
				
				620 B
			| 
											3 years ago
										 | var toInteger = require('./_to-integer'); | ||
|  | var defined = require('./_defined'); | ||
|  | // true  -> String#at
 | ||
|  | // false -> String#codePointAt
 | ||
|  | module.exports = function (TO_STRING) { | ||
|  |   return function (that, pos) { | ||
|  |     var s = String(defined(that)); | ||
|  |     var i = toInteger(pos); | ||
|  |     var l = s.length; | ||
|  |     var a, b; | ||
|  |     if (i < 0 || i >= l) return TO_STRING ? '' : undefined; | ||
|  |     a = s.charCodeAt(i); | ||
|  |     return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff | ||
|  |       ? TO_STRING ? s.charAt(i) : a | ||
|  |       : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000; | ||
|  |   }; | ||
|  | }; |