Author: Stephan <[email protected]>
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
[email protected]
http://mail.python.org/mailman/listinfo/pypy-commit