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 }