.
This commit is contained in:
		
							
								
								
									
										20
									
								
								qwen/nodejs/node_modules/ajv/lib/compile/ucs2length.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								qwen/nodejs/node_modules/ajv/lib/compile/ucs2length.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,20 @@
 | 
			
		||||
'use strict';
 | 
			
		||||
 | 
			
		||||
// https://mathiasbynens.be/notes/javascript-encoding
 | 
			
		||||
// https://github.com/bestiejs/punycode.js - punycode.ucs2.decode
 | 
			
		||||
module.exports = function ucs2length(str) {
 | 
			
		||||
  var length = 0
 | 
			
		||||
    , len = str.length
 | 
			
		||||
    , pos = 0
 | 
			
		||||
    , value;
 | 
			
		||||
  while (pos < len) {
 | 
			
		||||
    length++;
 | 
			
		||||
    value = str.charCodeAt(pos++);
 | 
			
		||||
    if (value >= 0xD800 && value <= 0xDBFF && pos < len) {
 | 
			
		||||
      // high surrogate, and there is a next character
 | 
			
		||||
      value = str.charCodeAt(pos);
 | 
			
		||||
      if ((value & 0xFC00) == 0xDC00) pos++; // low surrogate
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
  return length;
 | 
			
		||||
};
 | 
			
		||||
		Reference in New Issue
	
	Block a user