Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  package org.dynjs.runtime;
  
  import java.io.File;
  import java.io.FileReader;
  import java.io.Reader;
  
 
 public class Runner {
 
     private ExecutionContext context;
     private String fileName;
     private Reader source;
     private boolean shouldClose = false;
     private boolean forceStrict = false;
     private boolean directEval = true;
 
     Runner(ExecutionContext context) {
         withContext(context);
     }
 
     public Runner forceStrict() {
         return forceStrict(true);
     }
 
     public Runner forceStrict(boolean forceStrict) {
         this. = forceStrict;
         return this;
     }
 
     public Runner directEval() {
         return directEval(true);
     }
 
     public Runner directEval(boolean directEval) {
         this. = directEval;
         return this;
     }
 
     public Runner withSource(String source) {
         this. = new StringReader(source);
         this. = true;
         return this;
     }
 
     public Runner withSource(Reader source) {
         this. = source;
         this. = false;
         return this;
     }
 
     public Runner withSource(File sourcethrows FileNotFoundException {
         this. = new FileReader(source);
         this. = true;
         this. = source.getName();
         return this;
     }
 
     public Runner withContext(ExecutionContext context) {
         this. = context;
         return this;
     }
 
     public Runner withFileName(String fileName) {
         this. = fileName;
         return this;
     }
 
     public Object execute() {
         try {
             ProgramTree tree = parseSourceCode();
             JSProgram program = compile(tree);
 
             Completion completion = this..execute(program);
             if (completion.type == .. || completion.type == ..) {
                 throw new ThrowException(this.this..createSyntaxError("illegal break or continue"));
             }
             Object v = completion.value;
             if (v instanceof Reference) {
                 return ((Referencev).getValue();
             }
             return v;
         } catch (SyntaxError e) {
             throw new ThrowException(this.this..createSyntaxError(e.getMessage()));
         } catch (ParserException e) {
             throw new ThrowException(this.e);
         }
     }
 
     public Object evaluate() {
         try {
            ProgramTree tree = parseSourceCode();
            JSProgram program = compile(tree);
            return this..eval(programthis.);
        } catch (SyntaxError e) {
            throw new ThrowException(this.this..createSyntaxError(e.getMessage()));
        } catch (ParserException e) {
            throw new ThrowException(this.e);
        }
    }
    private ProgramTree parseSourceCode() {
        JavascriptParser parser = new JavascriptParserthis. );
        try {
            return parser.parse(this.this.this. );
        } finally {
            if (this.) {
                try {
                    this..close();
                } catch (IOException e) {
                    throw new ParserException(e);
                }
            }
        }
    }
    private JSProgram compile(ProgramTree tree) {
        JSCompiler compiler = this..getCompiler();
        return compiler.compileProgram(this.treethis.);
    }
New to GrepCode? Check out our FAQ X