diff --git a/lib/buffer.js b/lib/buffer.js index dec02ed8e70a6e..953ee6abb5f770 100644 --- a/lib/buffer.js +++ b/lib/buffer.js @@ -40,7 +40,7 @@ function alignPool() { } -function Buffer(arg) { +function Buffer(arg, encoding) { // Common case. if (typeof arg === 'number') { // If less than zero, or NaN. @@ -51,7 +51,11 @@ function Buffer(arg) { // Slightly less common case. if (typeof arg === 'string') { - return fromString(arg, arguments[1]); + encoding = encoding || ''; + if (typeof encoding !== 'string' || encoding === '') + encoding = 'utf8'; + + return fromString(arg, encoding); } // Unusual. @@ -103,9 +107,6 @@ function allocate(size) { function fromString(string, encoding) { - if (typeof encoding !== 'string' || encoding === '') - encoding = 'utf8'; - var length = byteLength(string, encoding); if (length >= (Buffer.poolSize >>> 1)) return binding.createFromString(string, encoding);