string_decoder: don't cache Buffer.isEncoding
authorBrian White <mscdex@mscdex.net>
Tue, 28 Apr 2015 14:53:06 +0000 (10:53 -0400)
committerBrian White <mscdex@mscdex.net>
Tue, 28 Apr 2015 15:13:39 +0000 (11:13 -0400)
Some modules are monkey-patching Buffer.isEncoding, so without this
they cannot do that.

Fixes: https://github.com/iojs/io.js/issues/1547
PR-URL: https://github.com/iojs/io.js/pull/1548
Reviewed-By: Evan Lucas <evanlucas@me.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
lib/string_decoder.js

index 61a3bb2..62ea38e 100644 (file)
@@ -1,9 +1,9 @@
 'use strict';
 
-const isEncoding = Buffer.isEncoding;
-
 function assertEncoding(encoding) {
-  if (encoding && !isEncoding(encoding)) {
+  // Do not cache `Buffer.isEncoding`, some modules monkey-patch it to support
+  // additional encodings
+  if (encoding && !Buffer.isEncoding(encoding)) {
     throw new Error('Unknown encoding: ' + encoding);
   }
 }