diff options
author | daurnimator <quae@daurnimator.com> | 2018-01-29 21:40:55 +1100 |
---|---|---|
committer | daurnimator <quae@daurnimator.com> | 2018-01-29 22:07:08 +1100 |
commit | 370fd190c38242d152525ad3ae38104620c3359f (patch) | |
tree | fdb9baff8200b37dcb98410179fc34fa19794d1e | |
parent | 51c6728620d5c6095a7581acff5bbc689c7f7eec (diff) | |
download | fengari-370fd190c38242d152525ad3ae38104620c3359f.tar.gz fengari-370fd190c38242d152525ad3ae38104620c3359f.tar.bz2 fengari-370fd190c38242d152525ad3ae38104620c3359f.zip |
src/lbaselib.js: Optimise b_str2int by using parseInt
-rw-r--r-- | src/lbaselib.js | 14 |
1 files changed, 3 insertions, 11 deletions
diff --git a/src/lbaselib.js b/src/lbaselib.js index e14d34d..f5af541 100644 --- a/src/lbaselib.js +++ b/src/lbaselib.js @@ -274,17 +274,9 @@ const b_str2int = function(s, base) { } let r = /^[\t\v\f \n\r]*([+-]?)0*([0-9A-Za-z]+)[\t\v\f \n\r]*$/.exec(s); if (!r) return null; - let neg = r[1] === "-"; - let digits = r[2]; - let n = 0; - for (let si=0; si<digits.length; si++) { - let digit = /\d/.test(digits[si]) - ? (digits.charCodeAt(si) - '0'.charCodeAt(0)) - : (digits[si].toUpperCase().charCodeAt(0) - 'A'.charCodeAt(0) + 10); - if (digit >= base) return null; /* invalid numeral */ - n = ((n * base)|0) + digit; - } - return (neg ? -n : n)|0; + let v = parseInt(r[1]+r[2], base); + if (isNaN(v)) return null; + return v|0; }; const luaB_tonumber = function(L) { |