Parse binary number literals
This commit is contained in:
parent
0a4270b358
commit
a4d6ed076a
|
|
@ -59,6 +59,8 @@ var OPERATOR_CHARS = makePredicate(characters("+-*&%=<>!?|~^"));
|
||||||
|
|
||||||
var RE_HEX_NUMBER = /^0x[0-9a-f]+$/i;
|
var RE_HEX_NUMBER = /^0x[0-9a-f]+$/i;
|
||||||
var RE_OCT_NUMBER = /^0[0-7]+$/;
|
var RE_OCT_NUMBER = /^0[0-7]+$/;
|
||||||
|
var RE_BIN_NUMBER = /^0b[01]+$/;
|
||||||
|
var RE_DEC_NUMBER = /^\d*\.?\d*(?:e[+-]?\d*(?:\d\.?|\.?\d)\d*)?$/i;
|
||||||
|
|
||||||
var OPERATORS = makePredicate([
|
var OPERATORS = makePredicate([
|
||||||
"in",
|
"in",
|
||||||
|
|
@ -181,9 +183,10 @@ function parse_js_number(num) {
|
||||||
return parseInt(num.substr(2), 16);
|
return parseInt(num.substr(2), 16);
|
||||||
} else if (RE_OCT_NUMBER.test(num)) {
|
} else if (RE_OCT_NUMBER.test(num)) {
|
||||||
return parseInt(num.substr(1), 8);
|
return parseInt(num.substr(1), 8);
|
||||||
} else {
|
} else if (RE_BIN_NUMBER.test(num)) {
|
||||||
var val = parseFloat(num);
|
return parseInt(num.substr(2), 2);
|
||||||
if (val == num) return val;
|
} else if (RE_DEC_NUMBER.test(num)) {
|
||||||
|
return parseFloat(num);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user