Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
81 changes: 55 additions & 26 deletions lib/v8.js
Original file line number Diff line number Diff line change
Expand Up @@ -278,36 +278,65 @@ Deserializer.prototype.readRawBytes = function readRawBytes(length) {

function arrayBufferViewTypeToIndex(abView) {
const type = ObjectPrototypeToString(abView);
if (type === '[object Int8Array]') return 0;
if (type === '[object Uint8Array]') return 1;
if (type === '[object Uint8ClampedArray]') return 2;
if (type === '[object Int16Array]') return 3;
if (type === '[object Uint16Array]') return 4;
if (type === '[object Int32Array]') return 5;
if (type === '[object Uint32Array]') return 6;
if (type === '[object Float32Array]') return 7;
if (type === '[object Float64Array]') return 8;
if (type === '[object DataView]') return 9;
// Index 10 is FastBuffer.
if (type === '[object BigInt64Array]') return 11;
if (type === '[object BigUint64Array]') return 12;
switch (type) {
case '[object Int8Array]':
return 0;
case '[object Uint8Array]':
return 1;
case '[object Uint8ClampedArray]':
return 2;
case '[object Int16Array]':
return 3;
case '[object Uint16Array]':
return 4;
case '[object Int32Array]':
return 5;
case '[object Uint32Array]':
return 6;
case '[object Float32Array]':
return 7;
case '[object Float64Array]':
return 8;
case '[object DataView]':
return 9;
// Index 10 is FastBuffer.
case '[object BigInt64Array]':
return 11;
case '[object BigUint64Array]':
return 12;
}
return -1;
}

function arrayBufferViewIndexToType(index) {
if (index === 0) return Int8Array;
if (index === 1) return Uint8Array;
if (index === 2) return Uint8ClampedArray;
if (index === 3) return Int16Array;
if (index === 4) return Uint16Array;
if (index === 5) return Int32Array;
if (index === 6) return Uint32Array;
if (index === 7) return Float32Array;
if (index === 8) return Float64Array;
if (index === 9) return DataView;
if (index === 10) return FastBuffer;
if (index === 11) return BigInt64Array;
if (index === 12) return BigUint64Array;
switch (index) {
case 0:
return Int8Array;
case 1:
return Uint8Array;
case 2:
return Uint8ClampedArray;
case 3:
return Int16Array;
case 4:
return Uint16Array;
case 5:
return Int32Array;
case 6:
return Uint32Array;
case 7:
return Float32Array;
case 8:
return Float64Array;
case 9:
return DataView;
case 10:
return FastBuffer;
case 11:
return BigInt64Array;
case 12:
return BigUint64Array;
}
return undefined;
}

Expand Down