Server : nginx/1.18.0 System : Linux localhost 6.14.3-x86_64-linode168 #1 SMP PREEMPT_DYNAMIC Mon Apr 21 19:47:55 EDT 2025 x86_64 User : www-data ( 33) PHP Version : 8.0.16 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare, Directory : /var/www/ecommerce/node_modules/clean-css/lib/utils/ |
var Marker = require('../tokenizer/marker');
function split(value, separator) {
var openLevel = Marker.OPEN_ROUND_BRACKET;
var closeLevel = Marker.CLOSE_ROUND_BRACKET;
var level = 0;
var cursor = 0;
var lastStart = 0;
var lastValue;
var lastCharacter;
var len = value.length;
var parts = [];
if (value.indexOf(separator) == -1) {
return [value];
}
if (value.indexOf(openLevel) == -1) {
return value.split(separator);
}
while (cursor < len) {
if (value[cursor] == openLevel) {
level++;
} else if (value[cursor] == closeLevel) {
level--;
}
if (level === 0 && cursor > 0 && cursor + 1 < len && value[cursor] == separator) {
parts.push(value.substring(lastStart, cursor));
lastStart = cursor + 1;
}
cursor++;
}
if (lastStart < cursor + 1) {
lastValue = value.substring(lastStart);
lastCharacter = lastValue[lastValue.length - 1];
if (lastCharacter == separator) {
lastValue = lastValue.substring(0, lastValue.length - 1);
}
parts.push(lastValue);
}
return parts;
}
module.exports = split;