| 
					
				 | 
			
			
				@@ -28,7 +28,6 @@ type Mjs struct { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 func (s *Mjs) program(name string) (prog *jsProgram, err error) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	res, check := s.cache.GetCheck(name, func(key, val interface{}, exists bool) (rKey, rVal interface{}, needUpdate bool) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		log.Println("OK") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		if exists { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			// check update need 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			prog := val.(*jsProgram) 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -202,7 +201,6 @@ func (s *Mjs) Exec(name string, data map[string]interface{}) (modified int64, er 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				vm.Set(k, v) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			log.Println("SUBPROGRAM_START") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			if _, sErr := vm.RunProgram(prog.prog); sErr == nil { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				for k, _ := range params { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					if c, check := current[k]; check { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -216,29 +214,19 @@ func (s *Mjs) Exec(name string, data map[string]interface{}) (modified int64, er 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				err = sErr 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				vm.Interrupt(nil) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			log.Println("SUBPROGRAM FINISHED", err) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		} else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			err = fmt.Errorf("%v in module %v", err, currentMod) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			vm.Interrupt(err) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	}) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	vm.Set("exit", func(vals ...interface{}) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		log.Println("I START") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		vm.Interrupt(err) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		log.Println("I FINISH") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	}) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	vm.Set("sleep", func(msec int) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		log.Println("sleep") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		time.Sleep(time.Millisecond * time.Duration(msec)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	}) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	if _, exErr := vm.RunProgram(prog.prog); exErr != nil && exErr.Error() != "<nil>" && err == nil { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		err = exErr 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		log.Println("EXERR", exErr) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	log.Println("PROGRAM FINISHED", err) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 |