33 lines
		
	
	
		
			627 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
		
		
			
		
	
	
			33 lines
		
	
	
		
			627 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| 
								 | 
							
								function hello(arg) {
							 | 
						||
| 
								 | 
							
								  this.arg=arg;
							 | 
						||
| 
								 | 
							
								  this.act = {
							 | 
						||
| 
								 | 
							
								    main : function () {
							 | 
						||
| 
								 | 
							
								      log('Hello',this.arg);
							 | 
						||
| 
								 | 
							
								    },
							 | 
						||
| 
								 | 
							
								    more : function () {
							 | 
						||
| 
								 | 
							
								      log('World');
							 | 
						||
| 
								 | 
							
								      // throw error
							 | 
						||
| 
								 | 
							
								      function foo() {
							 | 
						||
| 
								 | 
							
								        return {}.x()
							 | 
						||
| 
								 | 
							
								      }
							 | 
						||
| 
								 | 
							
								      // try { foo() } catch (e) { log(e.toString()) }
							 | 
						||
| 
								 | 
							
								      foo()
							 | 
						||
| 
								 | 
							
								    },
							 | 
						||
| 
								 | 
							
								    end : function () {
							 | 
						||
| 
								 | 
							
								      log('Terminate');
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								  this.trans = {
							 | 
						||
| 
								 | 
							
								    main : more,
							 | 
						||
| 
								 | 
							
								    more : end
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								  this.on = {
							 | 
						||
| 
								 | 
							
								    // w/o handler agent will be terminated on error
							 | 
						||
| 
								 | 
							
								    error : function (err) { log('error',err,this.next) }
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								  this.next='main';
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								compile(hello,{verbose:1});
							 | 
						||
| 
								 | 
							
								create('hello','You')
							 | 
						||
| 
								 | 
							
								start()
							 |