comparison src/luan/modules/BasicLuan.java @ 1794:04ac5f2771c8

minor
author Franklin Schmidt <fschmidt@gmail.com>
date Sat, 30 Dec 2023 18:41:35 -0700
parents 164c6ea53147
children ca98dee04e08
comparison
equal deleted inserted replaced
1793:a55a891a4f67 1794:04ac5f2771c8
57 Ipairs(LuanTable t) { 57 Ipairs(LuanTable t) {
58 list = t.asList(); 58 list = t.asList();
59 size = list.size(); 59 size = list.size();
60 } 60 }
61 61
62 @Override public Object[] call(Luan luan,Object[] args) { 62 @Override public Object[] call(Luan luan,Object[] args) throws LuanException {
63 if( i >= size ) 63 if( i >= size )
64 return LuanFunction.NOTHING; 64 return LuanFunction.NOTHING;
65 Object val = list.get(i++); 65 try {
66 return new Object[]{i,val}; 66 Object val = list.get(i++);
67 return new Object[]{i,val};
68 } catch(IndexOutOfBoundsException e) {
69 if( size != list.size() )
70 throw new LuanException("list was modified during ipairs iteration");
71 throw e;
72 }
67 } 73 }
68 74
69 @Override public boolean isImmutable() { 75 @Override public boolean isImmutable() {
70 return false; 76 return false;
71 } 77 }