MCPcopy
hub / github.com/tdewolff/minify / minifyString

Function minifyString

js/util.go:939–1027  ·  view source on GitHub ↗
(b []byte, allowTemplate bool)

Source from the content-addressed store, hash-verified

937}
938
939func minifyString(b []byte, allowTemplate bool) []byte {
940 if len(b) < 3 {
941 return []byte("\"\"")
942 }
943
944 // switch quotes if more optimal
945 singleQuotes := 0
946 doubleQuotes := 0
947 backtickQuotes := 0
948 newlines := 0
949 dollarSigns := 0
950 for i := 1; i < len(b)-1; i++ {
951 if b[i] == '\'' {
952 singleQuotes++
953 } else if b[i] == '"' {
954 doubleQuotes++
955 } else if b[i] == '`' {
956 backtickQuotes++
957 } else if b[i] == '$' && i+1 < len(b) && b[i+1] == '{' {
958 dollarSigns++
959 } else if b[i] == '\\' && i+1 < len(b) {
960 if b[i+1] == 'n' {
961 newlines++
962 } else if '1' <= b[i+1] && b[i+1] <= '9' && i+2 < len(b) {
963 if b[i+1] == '1' && b[i+2] == '2' {
964 newlines++
965 } else if b[i+1] == '4' && b[i+2] == '2' {
966 doubleQuotes++
967 } else if b[i+1] == '4' && b[i+2] == '7' {
968 singleQuotes++
969 } else if i+3 < len(b) && b[i+1] == '1' && b[i+2] == '4' && b[i+3] == '0' {
970 backtickQuotes++
971 }
972 } else if b[i+1] == 'x' && i+3 < len(b) {
973 if b[i+2] == '0' && b[i+3]|0x20 == 'a' {
974 newlines++
975 } else if b[i+2] == '2' && b[i+3] == '2' {
976 doubleQuotes++
977 } else if b[i+2] == '2' && b[i+3] == '7' {
978 singleQuotes++
979 } else if b[i+2] == '6' && b[i+3] == '0' {
980 backtickQuotes++
981 }
982 } else if b[i+1] == 'u' && i+5 < len(b) && b[i+2] == '0' && b[i+3] == '0' {
983 if b[i+4] == '0' && b[i+5]|0x20 == 'a' {
984 newlines++
985 } else if b[i+4] == '2' && b[i+5] == '2' {
986 doubleQuotes++
987 } else if b[i+4] == '2' && b[i+5] == '7' {
988 singleQuotes++
989 } else if b[i+4] == '6' && b[i+5] == '0' {
990 backtickQuotes++
991 }
992 } else if b[i+1] == 'u' && i+4 < len(b) && b[i+2] == '{' {
993 j := i + 3
994 for j < len(b) && b[j] == '0' {
995 j++
996 }

Callers 5

minifyStmtMethod · 0.70
minifyAliasMethod · 0.70
minifyPropertyNameMethod · 0.70
minifyExprMethod · 0.70
TestStringFunction · 0.70

Calls 2

lenFunction · 0.85
replaceEscapesFunction · 0.85

Tested by 1

TestStringFunction · 0.56

Used in the wild real call sites across dependent graphs

searching dependent graphs…