()
| 147 | } |
| 148 | |
| 149 | func (s *script) newState() (*lua.LState, error) { |
| 150 | L := lua.NewState(lua.Options{SkipOpenLibs: true}) |
| 151 | |
| 152 | for _, m := range s.load { |
| 153 | m.load(L) |
| 154 | } |
| 155 | |
| 156 | for _, m := range s.preload { |
| 157 | m.preload(L) |
| 158 | } |
| 159 | |
| 160 | L.Push(L.NewFunctionFromProto(s.proto)) |
| 161 | |
| 162 | err := L.PCall(0, lua.MultRet, nil) |
| 163 | if err != nil { |
| 164 | L.Close() |
| 165 | return nil, err |
| 166 | } |
| 167 | return L, nil |
| 168 | } |
| 169 | |
| 170 | func (s *script) initScript(modules, validSources []string) error { |
| 171 | // Compile |