fix __Boolean__ and calcOr

This commit is contained in:
2023-06-21 00:18:52 +01:00
parent 40a1404534
commit 6495e7f9b9
4 changed files with 26 additions and 1 deletions

View File

@@ -589,6 +589,14 @@ func ArArray(arr []any) ArObject {
return false, ArErr{}
},
}
val.obj["__Boolean__"] = builtinFunc{
"__Boolean__",
func(args ...any) (any, ArErr) {
return len(
arr,
) > 0, ArErr{}
},
}
return val
}

View File

@@ -318,5 +318,17 @@ func Map(m anymap) ArObject {
return keys, ArErr{}
},
}
obj.obj["__Boolean__"] = builtinFunc{
"__Boolean__",
func(args ...any) (any, ArErr) {
mutex.RLock()
if len(m) == 0 {
mutex.RUnlock()
return false, ArErr{}
}
mutex.RUnlock()
return true, ArErr{}
},
}
return obj
}

View File

@@ -626,7 +626,7 @@ func calcOr(o operationType, stack stack, stacklevel int) (any, ArErr) {
return resp, ArErr{}
}
resp, err = runVal(
o.value1,
o.value2,
stack,
stacklevel+1,
)

View File

@@ -639,5 +639,10 @@ func ArString(str string) ArObject {
}
return ArArray(output), ArErr{}
}}
obj.obj["__Boolean__"] = builtinFunc{
"__Boolean__",
func(a ...any) (any, ArErr) {
return len(str) > 0, ArErr{}
}}
return obj
}