MCPcopy Create free account
hub / github.com/dop251/goja / filterKeys

Method filterKeys

proxy.go:971–1015  ·  view source on GitHub ↗
(vals []Value, all, symbols bool)

Source from the content-addressed store, hash-verified

969}
970
971func (p *proxyObject) filterKeys(vals []Value, all, symbols bool) []Value {
972 if !all {
973 k := 0
974 for i, val := range vals {
975 var prop Value
976 if symbols {
977 if s, ok := val.(*Symbol); ok {
978 prop = p.getOwnPropSym(s)
979 } else {
980 continue
981 }
982 } else {
983 if _, ok := val.(*Symbol); !ok {
984 prop = p.getOwnPropStr(val.string())
985 } else {
986 continue
987 }
988 }
989 if prop == nil {
990 continue
991 }
992 if prop, ok := prop.(*valueProperty); ok && !prop.enumerable {
993 continue
994 }
995 if k != i {
996 vals[k] = vals[i]
997 }
998 k++
999 }
1000 vals = vals[:k]
1001 } else {
1002 k := 0
1003 for i, val := range vals {
1004 if _, ok := val.(*Symbol); ok != symbols {
1005 continue
1006 }
1007 if k != i {
1008 vals[k] = vals[i]
1009 }
1010 k++
1011 }
1012 vals = vals[:k]
1013 }
1014 return vals
1015}
1016
1017func (p *proxyObject) stringKeys(all bool, _ []Value) []Value { // we can assume accum is empty
1018 var keys []Value

Callers 2

stringKeysMethod · 0.95
symbolsMethod · 0.95

Calls 3

getOwnPropSymMethod · 0.95
getOwnPropStrMethod · 0.95
stringMethod · 0.65

Tested by

no test coverage detected