Просмотр исходного кода

Fix range access overshadowing key access

MaximeBarniaudy 1 год назад
Родитель
Сommit
0bae1d68ba
1 измененных файлов: 9 добавлений и 9 удалений
  1. +9
    -9
      minproto.leg

+ 9
- 9
minproto.leg Просмотреть файл

@ -1931,16 +1931,16 @@ oop GetArray_eval(oop exp, oop env)
default: typeError("[]", "non-indexable object", obj);
}
}
if (getType(ind) == Object) {
switch (getType(obj)) {
case String: {
int start = integerValue(eval(Object_get(ind, sym_start), env), "[..]");
int end = integerValue(eval(Object_get(ind, sym_end ), env), "[..]");
oop slice = newStringLen(String_aref(obj, start), end - start);
return slice;
if (getType(ind) == Object && Object_get(ind, prop_name) == Object_get(pRange, prop_name)) {
switch (getType(obj)) {
case String: {
int start = integerValue(eval(Object_get(ind, sym_start), env), "[..]");
int end = integerValue(eval(Object_get(ind, sym_end ), env), "[..]");
oop slice = newStringLen(String_aref(obj, start), end - start);
return slice;
}
default: fatal("[]: %s is not range - indexable", storeString(obj, 0));
}
default: fatal("[]: %s is not range - indexable", storeString(obj, 0));
}
}
if (!is(Object, obj)) fatal("[]: %s is not an object", storeString(obj, 0));
return Object_getLocal(obj, ind);

Загрузка…
Отмена
Сохранить