| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 | 'use strict'let list = {  split(string, separators, last) {    let array = []    let current = ''    let split = false    let func = 0    let inQuote = false    let prevQuote = ''    let escape = false    for (let letter of string) {      if (escape) {        escape = false      } else if (letter === '\\') {        escape = true      } else if (inQuote) {        if (letter === prevQuote) {          inQuote = false        }      } else if (letter === '"' || letter === "'") {        inQuote = true        prevQuote = letter      } else if (letter === '(') {        func += 1      } else if (letter === ')') {        if (func > 0) func -= 1      } else if (func === 0) {        if (separators.includes(letter)) split = true      }      if (split) {        if (current !== '') array.push(current.trim())        current = ''        split = false      } else {        current += letter      }    }    if (last || current !== '') array.push(current.trim())    return array  },  space(string) {    let spaces = [' ', '\n', '\t']    return list.split(string, spaces)  },  comma(string) {    return list.split(string, [','], true)  }}module.exports = listlist.default = list
 |