Mercurial Hosting > luan
comparison core/src/luan/impl/TableExpr.java @ 427:dae264ad6a7b
fix LuanTable.put() to use metatables
author | Franklin Schmidt <fschmidt@gmail.com> |
---|---|
date | Fri, 01 May 2015 19:29:07 -0600 |
parents | 23b99a5039b5 |
children | b48cfa14ba60 |
comparison
equal
deleted
inserted
replaced
426:23a93c118042 | 427:dae264ad6a7b |
---|---|
28 } | 28 } |
29 | 29 |
30 @Override public Object eval(LuanStateImpl luan) throws LuanException { | 30 @Override public Object eval(LuanStateImpl luan) throws LuanException { |
31 LuanTable table = new LuanTable(); | 31 LuanTable table = new LuanTable(); |
32 for( Field field : fields ) { | 32 for( Field field : fields ) { |
33 table.put( field.key.eval(luan), field.value.eval(luan) ); | 33 table.rawPut( field.key.eval(luan), field.value.eval(luan) ); |
34 } | 34 } |
35 Object obj = expressions.eval(luan); | 35 Object obj = expressions.eval(luan); |
36 if( obj instanceof Object[] ) { | 36 if( obj instanceof Object[] ) { |
37 Object[] a = (Object[])obj; | 37 Object[] a = (Object[])obj; |
38 for( int i=0; i<a.length; i++ ) { | 38 for( int i=0; i<a.length; i++ ) { |
39 table.put( i+1, a[i] ); | 39 table.rawPut( i+1, a[i] ); |
40 } | 40 } |
41 } else { | 41 } else { |
42 table.put( 1, obj ); | 42 table.rawPut( 1, obj ); |
43 } | 43 } |
44 return table; | 44 return table; |
45 } | 45 } |
46 } | 46 } |