From 3714f514793a190ac64b6f3c7d48e377749c7acb Mon Sep 17 00:00:00 2001 From: daurnimator Date: Fri, 20 Apr 2018 22:29:36 +1000 Subject: src/l{str,os}lib.js: Use luastring_eq where sensible --- src/loslib.js | 11 ++--------- src/lstrlib.js | 31 ++++++------------------------- 2 files changed, 8 insertions(+), 34 deletions(-) (limited to 'src') diff --git a/src/loslib.js b/src/loslib.js index 6419524..6e0a032 100644 --- a/src/loslib.js +++ b/src/loslib.js @@ -42,6 +42,7 @@ const { luaL_pushresult } = require('./lauxlib.js'); const { + luastring_eq, luastring_indexOf, to_jsstring, to_luastring @@ -101,14 +102,6 @@ const getfield = function(L, key, d, delta) { return res; }; -const array_cmp = function(a, ai, b, bi, len) { - for (let i=0; i= aj) - return false; - for (let j = 1; j < len; j++) { - if (a[ai+j] !== b[bi+j]) { - ai++; - continue loop; - } - } - return true; - } + return luastring_eq(a.subarray(ai, ai+len), b.subarray(bi, bi+len)); }; const match_capture = function(ms, s, l) { @@ -1249,17 +1236,11 @@ const find_subarray = function(arr, subarr, from_index) { if (sl === 0) return i; - loop: for (;;) { - i = arr.indexOf(subarr[0], i); - if (i === -1) break; - for (let j = 1; j < sl; j++) { - if (arr[i+j] !== subarr[j]) { - i++; - continue loop; - } - } - return i; + for (; (i = arr.indexOf(subarr[0], i)) !== -1; i++) { + if (luastring_eq(arr.subarray(i, i+sl), subarr)) + return i; } + return -1; }; -- cgit v1.2.3-54-g00ecf