From 64431a99093c7c51d0dc8535ccdd5baccc9d862e Mon Sep 17 00:00:00 2001
From: Nicholas Nethercote <nnethercote@mozilla.com>
Date: Mon, 3 Mar 2014 17:17:37 -0800
Subject: [PATCH] Avoid extra allocations in ensureBuffer() caused by an
 off-by-one error.

---
 src/core/stream.js | 12 +++++++++---
 1 file changed, 9 insertions(+), 3 deletions(-)

diff --git a/src/core/stream.js b/src/core/stream.js
index 696833f2e..eac6b3c05 100644
--- a/src/core/stream.js
+++ b/src/core/stream.js
@@ -108,9 +108,15 @@ var DecodeStream = (function DecodeStreamClosure() {
   DecodeStream.prototype = {
     ensureBuffer: function DecodeStream_ensureBuffer(requested) {
       var buffer = this.buffer;
-      var current = buffer ? buffer.byteLength : 0;
-      if (requested < current)
-        return buffer;
+      var current;
+      if (buffer) {
+        current = buffer.byteLength;
+        if (requested <= current) {
+          return buffer;
+        }
+      } else {
+        current = 0;
+      }
       var size = 512;
       while (size < requested)
         size <<= 1;