From e0089c7adee8e313f7ff7b5d84ff0ea892c05287 Mon Sep 17 00:00:00 2001 From: daurnimator Date: Sun, 7 Jan 2018 04:39:00 +1100 Subject: src/lobject.js: Optimise l_str2d + removing use of spread operator (IE compat) --- src/lobject.js | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) (limited to 'src/lobject.js') diff --git a/src/lobject.js b/src/lobject.js index 824fc88..641473e 100644 --- a/src/lobject.js +++ b/src/lobject.js @@ -448,17 +448,25 @@ const l_str2dloc = function(s, mode) { return (result.i === s.length || s[result.i] === 0) ? result : null; /* OK if no trailing characters */ }; +const SIGILS = [char["."], char["x"], char["X"], char["n"], char["N"]]; +const modes = {[char["."]]: ".", [char["x"]]: "x", [char["X"]]: "x", [char["n"]]: "n", [char["N"]]: "n"}; const l_str2d = function(s) { - let pidx = /[.xXnN]/g.exec(String.fromCharCode(...s)); - pidx = pidx ? pidx.index : null; - let pmode = pidx ? s[pidx] : null; - let mode = pmode ? String.fromCharCode(pmode).toLowerCase() : 0; + let l = s.length; + let pmode = 0; + for (let i=0; i