comparison core/src/luan/impl/LuanStateImpl.java @ 663:b438a47196bc

finish compiling function blocks
author Franklin Schmidt <fschmidt@gmail.com>
date Thu, 07 Apr 2016 00:01:10 -0600
parents f1150518c467
children 58ebfec6178b
comparison
equal deleted inserted replaced
662:ee00a619eec1 663:b438a47196bc
51 return downValues[index]; 51 return downValues[index];
52 } 52 }
53 } 53 }
54 54
55 private Frame frame = null; 55 private Frame frame = null;
56 public Object returnValues;
57 56
58 LuanStateImpl() {} 57 LuanStateImpl() {}
59 58
60 private LuanStateImpl(LuanStateImpl luan) { 59 private LuanStateImpl(LuanStateImpl luan) {
61 super(luan); 60 super(luan);
67 return new LuanStateImpl(this); 66 return new LuanStateImpl(this);
68 } 67 }
69 68
70 // returns stack 69 // returns stack
71 Object[] newFrame(Closure closure, int stackSize, Object[] varArgs) { 70 Object[] newFrame(Closure closure, int stackSize, Object[] varArgs) {
72 returnValues = LuanFunction.NOTHING;
73 frame = new Frame(frame,closure,stackSize,varArgs); 71 frame = new Frame(frame,closure,stackSize,varArgs);
74 return frame.stack; 72 return frame.stack;
75 } 73 }
76 74
77 void popFrame() { 75 void popFrame() {
78 returnValues = LuanFunction.NOTHING;
79 frame = frame.previousFrame; 76 frame = frame.previousFrame;
80 } 77 }
81 78
82 Object stackGet(int index) { 79 Object stackGet(int index) {
83 return frame.stack[index]; 80 return frame.stack[index];