parseOperand function
dynamic
parseOperand(
- dynamic parser,
- dynamic b0
Implementation
parseOperand(parser, b0) {
var b1;
var b2;
var b3;
var b4;
if (b0 == 28) {
b1 = parser.parseByte();
b2 = parser.parseByte();
return b1 << 8 | b2;
}
if (b0 == 29) {
b1 = parser.parseByte();
b2 = parser.parseByte();
b3 = parser.parseByte();
b4 = parser.parseByte();
return b1 << 24 | b2 << 16 | b3 << 8 | b4;
}
if (b0 == 30) {
return parseFloatOperand(parser);
}
if (b0 >= 32 && b0 <= 246) {
return b0 - 139;
}
if (b0 >= 247 && b0 <= 250) {
b1 = parser.parseByte();
return (b0 - 247) * 256 + b1 + 108;
}
if (b0 >= 251 && b0 <= 254) {
b1 = parser.parseByte();
return -(b0 - 251) * 256 - b1 - 108;
}
throw ('Invalid b0 ' + b0);
}