From 6dfc73a5da34197e13ea1ca120be0880bfe2b8c1 Mon Sep 17 00:00:00 2001
From: Jonas Jenwald <jonas.jenwald@gmail.com>
Date: Fri, 9 Jan 2015 18:15:17 +0100
Subject: [PATCH] Modify |getUint16| to correctly handle missing data in
 Stream, DecodeStream and ChunkedStream

---
 src/core/chunked_stream.js | 3 +++
 src/core/stream.js         | 6 ++++++
 2 files changed, 9 insertions(+)

diff --git a/src/core/chunked_stream.js b/src/core/chunked_stream.js
index 3bc293a4f..e760f18c9 100644
--- a/src/core/chunked_stream.js
+++ b/src/core/chunked_stream.js
@@ -170,6 +170,9 @@ var ChunkedStream = (function ChunkedStreamClosure() {
     getUint16: function ChunkedStream_getUint16() {
       var b0 = this.getByte();
       var b1 = this.getByte();
+      if (b0 === -1 || b1 === -1) {
+        return -1;
+      }
       return (b0 << 8) + b1;
     },
 
diff --git a/src/core/stream.js b/src/core/stream.js
index e08114ad5..687c7c96f 100644
--- a/src/core/stream.js
+++ b/src/core/stream.js
@@ -47,6 +47,9 @@ var Stream = (function StreamClosure() {
     getUint16: function Stream_getUint16() {
       var b0 = this.getByte();
       var b1 = this.getByte();
+      if (b0 === -1 || b1 === -1) {
+        return -1;
+      }
       return (b0 << 8) + b1;
     },
     getInt32: function Stream_getInt32() {
@@ -174,6 +177,9 @@ var DecodeStream = (function DecodeStreamClosure() {
     getUint16: function DecodeStream_getUint16() {
       var b0 = this.getByte();
       var b1 = this.getByte();
+      if (b0 === -1 || b1 === -1) {
+        return -1;
+      }
       return (b0 << 8) + b1;
     },
     getInt32: function DecodeStream_getInt32() {