Esempio n. 1
0
class JSInterpreter(code.InteractiveConsole):
    def __init__(self, locals=None, filename="<console>"):
        code.InteractiveConsole.__init__(self, locals, filename)
        self.interpreter = Interpreter()
        self.interpreter.w_Global.Put('quit', W_Builtin(quitjs))
        self.interpreter.w_Global.Put('load', W_Builtin(loadjs))
        self.interpreter.w_Global.Put('trace', W_Builtin(tracejs))

    def runcodefromfile(self, filename):
        f = open_file_as_stream(filename)
        self.runsource(f.readall(), filename)
        f.close()

    def runcode(self, ast):
        """Run the javascript code in the AST. All exceptions raised
        by javascript code must be caught and handled here. When an
        exception occurs, self.showtraceback() is called to display a
        traceback.
        """
        try:
            res = self.interpreter.run(ast)
            if res not in (None, w_Undefined):
                try:
                    print res.GetValue().ToString(self.interpreter.w_Global)
                except ThrowException, exc:
                    print exc.exception.ToString(self.interpreter.w_Global)
        except SystemExit:
            raise
        except ThrowException, exc:
            self.showtraceback(exc)
        else:
class JSInterpreter(code.InteractiveConsole):
    def __init__(self, locals=None, filename="<console>"):
        code.InteractiveConsole.__init__(self, locals, filename)
        self.interpreter = Interpreter()
        self.interpreter.w_Global.Put('quit', W_Builtin(quitjs))
        self.interpreter.w_Global.Put('load', W_Builtin(loadjs))
        self.interpreter.w_Global.Put('trace', W_Builtin(tracejs))


    def runcodefromfile(self, filename):
        f = open_file_as_stream(filename)
        self.runsource(f.readall(), filename)
        f.close()

    def runcode(self, ast):
        """Run the javascript code in the AST. All exceptions raised
        by javascript code must be caught and handled here. When an
        exception occurs, self.showtraceback() is called to display a
        traceback.
        """
        try:
            res = self.interpreter.run(ast)
            if res not in (None, w_Undefined):
                try:
                    print res.GetValue().ToString(self.interpreter.w_Global)
                except ThrowException, exc:
                    print exc.exception.ToString(self.interpreter.w_Global)
        except SystemExit:
            raise
        except ThrowException, exc:
            self.showtraceback(exc)
        else:
Esempio n. 3
0
 def __init__(self, locals=None, filename="<console>"):
     code.InteractiveConsole.__init__(self, locals, filename)
     self.interpreter = Interpreter()
     self.interpreter.w_Global.Put('quit', W_Builtin(quitjs))
     self.interpreter.w_Global.Put('load', W_Builtin(loadjs))
     self.interpreter.w_Global.Put('trace', W_Builtin(tracejs))
 def __init__(self, locals=None, filename="<console>"):
     code.InteractiveConsole.__init__(self, locals, filename)
     self.interpreter = Interpreter()
     self.interpreter.w_Global.Put('quit', W_Builtin(quitjs))
     self.interpreter.w_Global.Put('load', W_Builtin(loadjs))
     self.interpreter.w_Global.Put('trace', W_Builtin(tracejs))