Is there a way to check if two JavaScript ArrayBuffers are equal? I would like to write a test for the message composition method. The only way I found is to convert the ArrayBuffer to a string and then compare. Did I miss something?
The following code gives false, even if I think this should be true:
(function() {
'use strict';
var buf_pos = 0;
var name_len = 6
var message_len = 4 + 1 + 1 + 1 + name_len + 1;
var buf = new ArrayBuffer(message_len);
var view = new DataView(buf);
view.setUint8(buf_pos, 1 << 4);
buf_pos += 2;
view.setUint16(buf_pos, message_len);
buf_pos += 2;
buf_pos = 0;
var buf2 = new ArrayBuffer(message_len);
var view2 = new DataView(buf);
view2.setUint8(buf_pos, 1 << 4);
buf_pos += 2;
view2.setUint16(buf_pos, message_len);
buf_pos += 2;
if(buf == buf2){
console.log('true');
}
else{
console.log('false');
}
}());
If I try to compare view and view2, it will again be false.
source
share