in src/scanner.ts [688:721]
private scanBinaryLiteral(start: number): RawToken {
let num = '';
let ch;
while (!this.eof()) {
ch = this.source[this.index];
if (ch !== '0' && ch !== '1') {
break;
}
num += this.source[this.index++];
}
if (num.length === 0) {
// only 0b or 0B
this.throwUnexpectedToken();
}
if (!this.eof()) {
ch = this.source.charCodeAt(this.index);
/* istanbul ignore else */
if (Character.isIdentifierStart(ch) || Character.isDecimalDigit(ch)) {
this.throwUnexpectedToken();
}
}
return {
type: Token.NumericLiteral,
value: parseInt(num, 2),
lineNumber: this.lineNumber,
lineStart: this.lineStart,
start: start,
end: this.index
};
}