From dd9624d35aecab54b8e477d074c5299ba5020418 Mon Sep 17 00:00:00 2001 From: Jo-Philipp Wich Date: Fri, 29 May 2020 09:56:06 +0200 Subject: [PATCH] luci-base: luci.js: properly skip comments when finding require tokens Fixes: #4020, #4022, #4111 Signed-off-by: Jo-Philipp Wich (cherry picked from commit 6be8f8dbaee90a8a7e8bc87350f21793b9aed35c) --- .../luci-base/htdocs/luci-static/resources/luci.js | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/modules/luci-base/htdocs/luci-static/resources/luci.js b/modules/luci-base/htdocs/luci-static/resources/luci.js index 657983210..2ec96dd67 100644 --- a/modules/luci-base/htdocs/luci-static/resources/luci.js +++ b/modules/luci-base/htdocs/luci-static/resources/luci.js @@ -2443,12 +2443,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; } @@ -2472,6 +2479,8 @@ off = i + 1; quote = chr; } + + prev = chr; } /* load dependencies and instantiate class */ -- 2.25.1