Mercurial Hosting > luan
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]; |