Author: Stephan <step...@stzal.com> Branch: Changeset: r328:ec9990b6a34c Date: 2012-12-28 11:08 +0100 http://bitbucket.org/pypy/lang-js/changeset/ec9990b6a34c/
Log: updated jit view tests diff --git a/js/test/jit.py b/js/test/jit_view.py rename from js/test/jit.py rename to js/test/jit_view.py --- a/js/test/jit.py +++ b/js/test/jit_view.py @@ -1,5 +1,6 @@ -import sys from pypy import conftest + + class o: view = False viewloops = True @@ -8,32 +9,146 @@ from pypy.jit.metainterp.test.support import LLJitMixin from js import interpreter -from js.jscode import jitdriver -class TestLLtype(LLJitMixin): - def test_append(self): - #code = """ - #var x = {i:0}; - #function f() { - #while(x.i < 100) { - #x = {i:x.i + 1}; - #} - #} - #f(); - #""" + +class TestJtTrace(LLJitMixin): + def test_simple_loop(self): code = """ + var i = 0; + while(i < 100) { + i += 1; + } + return i; + """ + jsint = interpreter.Interpreter() + + def interp_w(): + code_val = jsint.run_src(code) + return code_val.ToNumber() + assert self.meta_interp(interp_w, [], listcomp=True, backendopt=True, listops=True) == 100 + + def test_loop_in_func(self): + code = """ + function f() { var i = 0; while(i < 100) { i += 1; } return i; + } + return f(); """ jsint = interpreter.Interpreter() def interp_w(): - #jitdriver.set_param("inlining", True) code_val = jsint.run_src(code) return code_val.ToNumber() - #assert interp_w() == 100 assert self.meta_interp(interp_w, [], listcomp=True, backendopt=True, listops=True) == 100 + def test_prop_loop_in_func(self): + code = """ + function f() { + var x = {i: 0}; + while(x.i < 100) { + x.i += 1; + } + return x.i; + } + return f(); + """ + jsint = interpreter.Interpreter() + + def interp_w(): + code_val = jsint.run_src(code) + return code_val.ToNumber() + assert self.meta_interp(interp_w, [], listcomp=True, backendopt=True, listops=True) == 100 + + def test_object_alloc_loop_in_func_loop(self): + code = """ + function f() { + var x = {i: 0}; + while(x.i < 100) { + x = {i: x.i + 1}; + } + return x.i; + } + return f(); + """ + jsint = interpreter.Interpreter() + + def interp_w(): + code_val = jsint.run_src(code) + return code_val.ToNumber() + assert self.meta_interp(interp_w, [], listcomp=True, backendopt=True, listops=True) == 100 + + def test_func_call_in_loop(self): + code = """ + var i = 0; + function f(a) { + return a + 1; + } + while(i < 100) { + i = f(i); + } + return i; + """ + jsint = interpreter.Interpreter() + + def interp_w(): + code_val = jsint.run_src(code) + return code_val.ToNumber() + assert self.meta_interp(interp_w, [], listcomp=True, backendopt=True, listops=True) == 100 + + def test_loop_not_escapeing(self): + code = """ + function f() { + var a = 0; + for (var i = 0; i< 100; i++) { + a = 0; + } + return a; + } + f(); + """ + jsint = interpreter.Interpreter() + + def interp_w(): + code_val = jsint.run_src(code) + return code_val.ToNumber() + assert self.meta_interp(interp_w, [], listcomp=True, backendopt=True, listops=True) == 100 + + def test_loop_little_escapeing(self): + code = """ + function f() { + var a = 0; + for (var i = 0; i< 100; i++) { + a = i; + } + return a; + } + f(); + """ + jsint = interpreter.Interpreter() + + def interp_w(): + code_val = jsint.run_src(code) + return code_val.ToNumber() + assert self.meta_interp(interp_w, [], listcomp=True, backendopt=True, listops=True) == 100 + + def test_bitwise_and(self): + code = """ + function f() { + bitwiseAndValue = 4294967296; + for (var i = 0; i < 600000; i++) { + bitwiseAndValue = bitwiseAndValue & i; + } + } + f(); + 1; + """ + jsint = interpreter.Interpreter() + + def interp_w(): + code_val = jsint.run_src(code) + return code_val.ToNumber() + assert self.meta_interp(interp_w, [], listcomp=True, backendopt=True, listops=True) == 1 _______________________________________________ pypy-commit mailing list pypy-commit@python.org http://mail.python.org/mailman/listinfo/pypy-commit