From 6be8f8dbaee90a8a7e8bc87350f21793b9aed35c Mon Sep 17 00:00:00 2001 From: Jo-Philipp Wich Date: Fri, 29 May 2020 09:56:06 +0200 Subject: luci-base: luci.js: properly skip comments when finding require tokens Fixes: #4020, #4022, #4111 Signed-off-by: Jo-Philipp Wich --- modules/luci-base/htdocs/luci-static/resources/luci.js | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) (limited to 'modules/luci-base') diff --git a/modules/luci-base/htdocs/luci-static/resources/luci.js b/modules/luci-base/htdocs/luci-static/resources/luci.js index 4b6894c080..83c2807d77 100644 --- a/modules/luci-base/htdocs/luci-static/resources/luci.js +++ b/modules/luci-base/htdocs/luci-static/resources/luci.js @@ -2462,12 +2462,19 @@ args = ''; /* find require statements in source */ - for (var i = 0, off = -1, quote = -1, esc = false; i < source.length; i++) { + for (var i = 0, off = -1, prev = -1, quote = -1, comment = -1, esc = false; i < source.length; i++) { var chr = source.charCodeAt(i); if (esc) { esc = false; } + else if (comment != -1) { + if ((comment == 47 && chr == 10) || (comment == 42 && prev == 42 && chr == 47)) + comment = -1; + } + else if ((chr == 42 || chr == 47) && prev == 47) { + comment = chr; + } else if (chr == 92) { esc = true; } @@ -2491,6 +2498,8 @@ off = i + 1; quote = chr; } + + prev = chr; } /* load dependencies and instantiate class */ -- cgit v1.2.3