]> zoso.dev Git - buffer.git/commitdiff
utf8Slice: don't replace the replacement character
authorJesse Tane <jesse.tane@gmail.com>
Sun, 16 Aug 2015 22:33:56 +0000 (18:33 -0400)
committerJesse Tane <jesse.tane@gmail.com>
Sun, 16 Aug 2015 22:33:56 +0000 (18:33 -0400)
index.js

index 896ca4cc28dd251532743ea7f75b7e7b237db1f7..fe70d22a7d01e398503481693cf69d51d501e615 100644 (file)
--- a/index.js
+++ b/index.js
@@ -629,7 +629,7 @@ function utf8Slice (buf, start, end) {
   var i = start
   while (i < end) {
     var firstByte = buf[i]
-    var codePoint = 0xFFFD
+    var codePoint = null
     var bytesPerSequence = (firstByte > 0xEF) ? 4
       : (firstByte > 0xDF) ? 3
       : (firstByte > 0xBF) ? 2
@@ -676,8 +676,10 @@ function utf8Slice (buf, start, end) {
       }
     }
 
-    if (codePoint === 0xFFFD) {
-      // we generated an invalid codePoint so make sure to only advance by 1 byte
+    if (codePoint === null) {
+      // we did not generate a valid codePoint so insert a
+      // replacement char (U+FFFD) and advance only 1 byte
+      codePoint = 0xFFFD
       bytesPerSequence = 1
     } else if (codePoint > 0xFFFF) {
       // encode to utf16 (surrogate pair dance)