comparison src/luan/impl/LuanParser.java @ 1133:ba4daf107e07

fix security bug
author Franklin Schmidt <fschmidt@gmail.com>
date Wed, 17 Jan 2018 20:59:42 -0700
parents 46732cc0ab87
children 9fa8b8389578
comparison
equal deleted inserted replaced
1132:b70102bab110 1133:ba4daf107e07
2010 return "" 2010 return ""
2011 +"package luan.impl; " 2011 +"package luan.impl; "
2012 +"import luan.Luan; " 2012 +"import luan.Luan; "
2013 +"import luan.LuanFunction; " 2013 +"import luan.LuanFunction; "
2014 +"import luan.LuanState; " 2014 +"import luan.LuanState; "
2015 +"import luan.LuanJava; " 2015 +"import luan.LuanJavaOk; "
2016 +"import luan.LuanException; " 2016 +"import luan.LuanException; "
2017 +"import luan.modules.PackageLuan; " 2017 +"import luan.modules.PackageLuan; "
2018 2018
2019 +"public class " + className +" extends Closure { " 2019 +"public class " + className +" extends Closure { "
2020 +"public "+className+"(LuanJava java) throws LuanException { " 2020 +"public "+className+"(LuanJavaOk java) throws LuanException { "
2021 +"super("+upValueSymbols.size()+",java); " 2021 +"super("+upValueSymbols.size()+",java); "
2022 + init(upValueSymbols) 2022 + init(upValueSymbols)
2023 +"} " 2023 +"} "
2024 2024
2025 +"@Override public Object doCall(LuanState luan,Object[] args) throws LuanException { " 2025 +"@Override public Object doCall(LuanState luan,Object[] args) throws LuanException { "
2036 stmt.addNewLines(); 2036 stmt.addNewLines();
2037 if( !stmt.hasReturn ) 2037 if( !stmt.hasReturn )
2038 stmt.add( "return LuanFunction.NOTHING; " ); 2038 stmt.add( "return LuanFunction.NOTHING; " );
2039 Expr exp = new Expr(Val.SINGLE,false); 2039 Expr exp = new Expr(Val.SINGLE,false);
2040 exp.add( "" 2040 exp.add( ""
2041 +"new Closure("+upValueSymbols.size()+",ljava) { " 2041 +"new Closure("+upValueSymbols.size()+",javaOk) { "
2042 +"{ " 2042 +"{ "
2043 + init(upValueSymbols) 2043 + init(upValueSymbols)
2044 +"} " 2044 +"} "
2045 +"@Override public Object doCall(LuanState luan,Object[] args) throws LuanException { " 2045 +"@Override public Object doCall(LuanState luan,Object[] args) throws LuanException { "
2046 ); 2046 );