Jelajahi Sumber

Merge pull request #12 from dennwc/lazy_eval_vm

compiler: create eval vm lazily
Dmitry Panov 8 tahun lalu
induk
melakukan
64f863c4eb
2 mengubah file dengan 3 tambahan dan 1 penghapusan
  1. 0 1
      compiler.go
  2. 3 0
      compiler_expr.go

+ 0 - 1
compiler.go

@@ -129,7 +129,6 @@ func newCompiler() *compiler {
 
 	c.newScope()
 	c.scope.dynamic = true
-	c.evalVM = New().vm
 	return c
 }
 

+ 3 - 0
compiler_expr.go

@@ -995,6 +995,9 @@ func (c *compiler) evalConst(expr compiledExpr) (Value, *Exception) {
 	if expr, ok := expr.(*compiledLiteral); ok {
 		return expr.val, nil
 	}
+	if c.evalVM == nil {
+		c.evalVM = New().vm
+	}
 	var savedPrg *Program
 	createdPrg := false
 	if c.evalVM.prg == nil {