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