mirror of
https://github.com/Open-Argon/argon-v3.git
synced 2025-12-06 08:56:07 +00:00
fix getindex and add debug
This commit is contained in:
@@ -65,7 +65,7 @@ func parseCall(code UNPARSEcode, index int, codelines []UNPARSEcode) (any, bool,
|
||||
}
|
||||
|
||||
func runCall(c call, stack stack, stacklevel int) (any, ArErr) {
|
||||
var callable any
|
||||
var callable any = c.callable
|
||||
switch x := c.callable.(type) {
|
||||
case builtinFunc:
|
||||
callable = x
|
||||
|
||||
@@ -28,8 +28,7 @@ func mapGet(r ArMapGet, stack stack, stacklevel int) (any, ArErr) {
|
||||
}
|
||||
switch m := resp.(type) {
|
||||
case ArObject:
|
||||
if _, ok := m.obj["__getindex__"]; ok {
|
||||
callable := m.obj["__getindex__"]
|
||||
if callable, ok := m.obj["__getindex__"]; ok {
|
||||
resp, err := runCall(call{
|
||||
callable: callable,
|
||||
args: r.args,
|
||||
@@ -48,6 +47,13 @@ func mapGet(r ArMapGet, stack stack, stacklevel int) (any, ArErr) {
|
||||
}
|
||||
}
|
||||
|
||||
switch m := resp.(type) {
|
||||
case ArObject:
|
||||
if obj, ok := m.obj[r.args[0]]; ok {
|
||||
return obj, ArErr{}
|
||||
}
|
||||
}
|
||||
|
||||
key, err := runVal(r.args[0], stack, stacklevel+1)
|
||||
if err.EXISTS {
|
||||
return nil, err
|
||||
|
||||
Reference in New Issue
Block a user