Mercurial Hosting > luan
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 } |