[pypy-commit] lang-js default: removed Interpreter.run_file
stepahn
noreply at buildbot.pypy.org
Fri Dec 28 11:35:44 CET 2012
Author: Stephan <stephan at stzal.com>
Branch:
Changeset: r322:dad77daeb611
Date: 2012-12-21 18:45 +0100
http://bitbucket.org/pypy/lang-js/changeset/dad77daeb611/
Log: removed Interpreter.run_file
diff --git a/js/builtins_interpreter.py b/js/builtins_interpreter.py
--- a/js/builtins_interpreter.py
+++ b/js/builtins_interpreter.py
@@ -20,8 +20,10 @@
@w_return
def js_load(this, args):
from js.object_space import object_space
+ from js.interpreter import load_file
filename = args[0].to_string()
- object_space.interpreter.run_file(str(filename))
+ src = load_file(str(filename))
+ object_space.interpreter.run_src(src)
@w_return
diff --git a/js/interpreter.py b/js/interpreter.py
--- a/js/interpreter.py
+++ b/js/interpreter.py
@@ -2,16 +2,9 @@
def load_file(filename):
- from js.astbuilder import parse_to_ast
- from runistr import decode_str_utf8
-
f = open_file_as_stream(str(filename))
src = f.readall()
- usrc = decode_str_utf8(src)
- assert usrc is not None
- ast = parse_to_ast(usrc)
- f.close()
- return ast
+ return src
class InterpreterConfig(object):
@@ -38,10 +31,6 @@
object_space.assign_proto(self.global_object)
- def run_file(self, filename):
- ast = load_file(filename)
- return self.run_ast(ast)
-
def run_ast(self, ast):
symbol_map = ast.symbol_map
diff --git a/js/py-js.py b/js/py-js.py
--- a/js/py-js.py
+++ b/js/py-js.py
@@ -19,18 +19,26 @@
def run(files, opts):
- from js.interpreter import Interpreter
+ from js.interpreter import Interpreter, load_file
interactive = len(files) == 0
inspect = opts.get('inspect', False)
interp = Interpreter(opts)
- for f in files:
+ for filename in files:
+ src = load_file(filename)
+
try:
- interp.run_file(f)
+ interp.run_src(src)
+ except ParseError as exc:
+ printsyntaxerror(unicode(filename), exc, src)
+ raise SystemExit
+ except LexerError as e:
+ printlexererror(unicode(filename), e, src)
+ raise SystemExit
except JsException as e:
- printerrormessage(unicode(f), e._msg())
+ printerrormessage(unicode(filename), e._msg())
raise SystemExit
if inspect or interactive:
diff --git a/js/test/ecma/conftest.py b/js/test/ecma/conftest.py
--- a/js/test/ecma/conftest.py
+++ b/js/test/ecma/conftest.py
@@ -1,7 +1,7 @@
import pytest
import py
-from js.interpreter import Interpreter
+from js.interpreter import Interpreter, load_file
from _pytest.runner import Failed
from js.jsobj import _w
from js.execution import JsException
@@ -222,8 +222,10 @@
def f(testfile):
interp = Interpreter({'no-exception-jseval': True})
- interp.run_file(str(shellpath))
- interp.run_file(testfile)
+ shell_src = load_file(str(shellpath))
+ interp.run_src(shell_src)
+ test_src = load_file(testfile)
+ interp.run_src(test_src)
global_object = interp.global_object
testcases = global_object.get(u'testcases')
More information about the pypy-commit
mailing list