luci-base: luci.js: properly skip comments when finding require tokens
Fixes: #4020, #4022, #4111 Signed-off-by: Jo-Philipp Wich <jo@mein.io>
This commit is contained in:
parent
80580d7238
commit
6be8f8dbae
1 changed files with 10 additions and 1 deletions
|
@ -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 */
|
||||
|
|
Loading…
Reference in a new issue