Skip to content

Commit 9286869

Browse files
[fix] Do not mutate the input upon packet encoding (#105)
Fixes #95
1 parent 70beb12 commit 9286869

File tree

2 files changed

+4
-9
lines changed

2 files changed

+4
-9
lines changed

lib/browser.js

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -158,8 +158,7 @@ function encodeBlobAsArrayBuffer(packet, supportsBinary, callback) {
158158

159159
var fr = new FileReader();
160160
fr.onload = function() {
161-
packet.data = fr.result;
162-
exports.encodePacket(packet, supportsBinary, true, callback);
161+
exports.encodePacket({ type: packet.type, data: fr.result }, supportsBinary, true, callback);
163162
};
164163
return fr.readAsArrayBuffer(packet.data);
165164
}

lib/index.js

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -66,8 +66,7 @@ exports.encodePacket = function (packet, supportsBinary, utf8encode, callback) {
6666
if (Buffer.isBuffer(packet.data)) {
6767
return encodeBuffer(packet, supportsBinary, callback);
6868
} else if (packet.data && (packet.data.buffer || packet.data) instanceof ArrayBuffer) {
69-
packet.data = arrayBufferToBuffer(packet.data);
70-
return encodeBuffer(packet, supportsBinary, callback);
69+
return encodeBuffer({ type: packet.type, data: arrayBufferToBuffer(packet.data) }, supportsBinary, callback);
7170
}
7271

7372
// Sending data as a utf-8 string
@@ -104,12 +103,9 @@ function encodeBuffer(packet, supportsBinary, callback) {
104103
*/
105104

106105
exports.encodeBase64Packet = function(packet, callback){
107-
if (!Buffer.isBuffer(packet.data)) {
108-
packet.data = arrayBufferToBuffer(packet.data);
109-
}
110-
106+
var data = Buffer.isBuffer(packet.data) ? packet.data : arrayBufferToBuffer(packet.data);
111107
var message = 'b' + packets[packet.type];
112-
message += packet.data.toString('base64');
108+
message += data.toString('base64');
113109
return callback(message);
114110
};
115111

0 commit comments

Comments
 (0)