diff --git a/lib/buffer.js b/lib/buffer.js index 8c16f07acebc5b..61ac7776d5cf52 100644 --- a/lib/buffer.js +++ b/lib/buffer.js @@ -505,41 +505,29 @@ function byteLength(string, encoding) { return (mustMatch ? -1 : byteLengthUtf8(string)); encoding += ''; + encoding = encoding.toLowerCase(); switch (encoding.length) { case 4: - if (encoding === 'utf8') return byteLengthUtf8(string); - if (encoding === 'ucs2') return len * 2; - encoding = encoding.toLowerCase(); if (encoding === 'utf8') return byteLengthUtf8(string); if (encoding === 'ucs2') return len * 2; break; case 5: - if (encoding === 'utf-8') return byteLengthUtf8(string); - if (encoding === 'ascii') return len; - if (encoding === 'ucs-2') return len * 2; - encoding = encoding.toLowerCase(); if (encoding === 'utf-8') return byteLengthUtf8(string); if (encoding === 'ascii') return len; if (encoding === 'ucs-2') return len * 2; break; case 7: - if (encoding === 'utf16le' || encoding.toLowerCase() === 'utf16le') - return len * 2; + if (encoding === 'utf16le') return len * 2; break; case 8: - if (encoding === 'utf-16le' || encoding.toLowerCase() === 'utf-16le') - return len * 2; + if (encoding === 'utf-16le') return len * 2; break; case 6: - if (encoding === 'latin1' || encoding === 'binary') return len; - if (encoding === 'base64') return base64ByteLength(string, len); - encoding = encoding.toLowerCase(); if (encoding === 'latin1' || encoding === 'binary') return len; if (encoding === 'base64') return base64ByteLength(string, len); break; case 3: - if (encoding === 'hex' || encoding.toLowerCase() === 'hex') - return len >>> 1; + if (encoding === 'hex') return len >>> 1; break; } return (mustMatch ? -1 : byteLengthUtf8(string)); @@ -568,43 +556,30 @@ Object.defineProperty(Buffer.prototype, 'offset', { function stringSlice(buf, encoding, start, end) { if (encoding === undefined) return buf.utf8Slice(start, end); encoding += ''; + encoding = encoding.toLowerCase(); switch (encoding.length) { case 4: - if (encoding === 'utf8') return buf.utf8Slice(start, end); - if (encoding === 'ucs2') return buf.ucs2Slice(start, end); - encoding = encoding.toLowerCase(); if (encoding === 'utf8') return buf.utf8Slice(start, end); if (encoding === 'ucs2') return buf.ucs2Slice(start, end); break; case 5: - if (encoding === 'utf-8') return buf.utf8Slice(start, end); - if (encoding === 'ascii') return buf.asciiSlice(start, end); - if (encoding === 'ucs-2') return buf.ucs2Slice(start, end); - encoding = encoding.toLowerCase(); if (encoding === 'utf-8') return buf.utf8Slice(start, end); if (encoding === 'ascii') return buf.asciiSlice(start, end); if (encoding === 'ucs-2') return buf.ucs2Slice(start, end); break; case 6: - if (encoding === 'latin1' || encoding === 'binary') - return buf.latin1Slice(start, end); - if (encoding === 'base64') return buf.base64Slice(start, end); - encoding = encoding.toLowerCase(); if (encoding === 'latin1' || encoding === 'binary') return buf.latin1Slice(start, end); if (encoding === 'base64') return buf.base64Slice(start, end); break; case 3: - if (encoding === 'hex' || encoding.toLowerCase() === 'hex') - return buf.hexSlice(start, end); + if (encoding === 'hex') return buf.hexSlice(start, end); break; case 7: - if (encoding === 'utf16le' || encoding.toLowerCase() === 'utf16le') - return buf.ucs2Slice(start, end); + if (encoding === 'utf16le') return buf.ucs2Slice(start, end); break; case 8: - if (encoding === 'utf-16le' || encoding.toLowerCase() === 'utf-16le') - return buf.ucs2Slice(start, end); + if (encoding === 'utf-16le') return buf.ucs2Slice(start, end); break; } throw new ERR_UNKNOWN_ENCODING(encoding); @@ -914,45 +889,32 @@ Buffer.prototype.write = function write(string, offset, length, encoding) { return this.utf8Write(string, offset, length); encoding += ''; + encoding = encoding.toLowerCase(); switch (encoding.length) { case 4: - if (encoding === 'utf8') return this.utf8Write(string, offset, length); - if (encoding === 'ucs2') return this.ucs2Write(string, offset, length); - encoding = encoding.toLowerCase(); if (encoding === 'utf8') return this.utf8Write(string, offset, length); if (encoding === 'ucs2') return this.ucs2Write(string, offset, length); break; case 5: - if (encoding === 'utf-8') return this.utf8Write(string, offset, length); - if (encoding === 'ascii') return this.asciiWrite(string, offset, length); - if (encoding === 'ucs-2') return this.ucs2Write(string, offset, length); - encoding = encoding.toLowerCase(); if (encoding === 'utf-8') return this.utf8Write(string, offset, length); if (encoding === 'ascii') return this.asciiWrite(string, offset, length); if (encoding === 'ucs-2') return this.ucs2Write(string, offset, length); break; case 7: - if (encoding === 'utf16le' || encoding.toLowerCase() === 'utf16le') - return this.ucs2Write(string, offset, length); + if (encoding === 'utf16le') return this.ucs2Write(string, offset, length); break; case 8: - if (encoding === 'utf-16le' || encoding.toLowerCase() === 'utf-16le') + if (encoding === 'utf-16le') return this.ucs2Write(string, offset, length); break; case 6: - if (encoding === 'latin1' || encoding === 'binary') - return this.latin1Write(string, offset, length); - if (encoding === 'base64') - return this.base64Write(string, offset, length); - encoding = encoding.toLowerCase(); if (encoding === 'latin1' || encoding === 'binary') return this.latin1Write(string, offset, length); if (encoding === 'base64') return this.base64Write(string, offset, length); break; case 3: - if (encoding === 'hex' || encoding.toLowerCase() === 'hex') - return this.hexWrite(string, offset, length); + if (encoding === 'hex') return this.hexWrite(string, offset, length); break; } throw new ERR_UNKNOWN_ENCODING(encoding);