Index: sdk/lib/io/websocket_impl.dart |
diff --git a/sdk/lib/io/websocket_impl.dart b/sdk/lib/io/websocket_impl.dart |
index 810808444560813d0015c896a5f72fc35a577786..b59c7758968a1783b9e63f7c18356bdeeca6dca3 100644 |
--- a/sdk/lib/io/websocket_impl.dart |
+++ b/sdk/lib/io/websocket_impl.dart |
@@ -532,8 +532,17 @@ class _WebSocketOutgoingTransformer extends StreamEventTransformer { |
index += 4; |
if (data != null) { |
var list = new Uint8List(data.length); |
Anders Johnsen
2013/06/12 06:13:58
If we check if it's a string here, we could just a
Søren Gjesse
2013/06/12 08:34:00
Good point. Done.
|
- for (int i = 0; i < data.length; i++) { |
- list[i] = data[i] ^ maskBytes[i % 4]; |
+ if (data is Uint8List) { |
+ for (int i = 0; i < data.length; i++) { |
+ list[i] = data[i] ^ maskBytes[i % 4]; |
+ } |
+ } else { |
+ for (int i = 0; i < data.length; i++) { |
+ if (data[i] < 0 || 255 < data[0]) { |
Anders Johnsen
2013/06/12 06:13:58
This reads odd, as you have two '<'. Also, second
Søren Gjesse
2013/06/12 08:34:00
This reads nicely :-) data[i] is outside the inter
|
+ throw new ArgumentError("Illegal byte value ${data[0]}"); |
+ } |
+ list[i] = data[i] ^ maskBytes[i % 4]; |
+ } |
} |
data = list; |
} |