()
| 930 | func (l *State) execute() { l.executeFunctionTable() } |
| 931 | |
| 932 | func (l *State) executeFunctionTable() { |
| 933 | ci := l.callInfo |
| 934 | closure, _ := l.stack[ci.function].(*luaClosure) |
| 935 | e := engine{callInfo: ci, frame: ci.frame, closure: closure, constants: closure.prototype.constants, l: l} |
| 936 | if l.hookMask&(MaskLine|MaskCount) != 0 { |
| 937 | if l.hookCount--; l.hookCount == 0 || l.hookMask&MaskLine != 0 { |
| 938 | l.traceExecution() |
| 939 | e.frame = e.callInfo.frame |
| 940 | } |
| 941 | } |
| 942 | i := e.callInfo.step() |
| 943 | f := jumpTable[i.opCode()] |
| 944 | for f, i = f(&e, i); f != nil; f, i = f(&e, i) { |
| 945 | } |
| 946 | } |
| 947 | |
| 948 | func k(field int, constants []value, frame []value) value { |
| 949 | if 0 != field&bitRK { // OPT: Inline isConstant(field). |
no test coverage detected