[pypy-svn] r19620 - in pypy/dist/pypy/translator/js: . test
ericvrp at codespeak.net
ericvrp at codespeak.net
Mon Nov 7 22:18:19 CET 2005
Author: ericvrp
Date: Mon Nov 7 22:18:17 2005
New Revision: 19620
Modified:
pypy/dist/pypy/translator/js/codewriter.py
pypy/dist/pypy/translator/js/funcnode.py
pypy/dist/pypy/translator/js/opwriter.py
pypy/dist/pypy/translator/js/test/browsertest.py
pypy/dist/pypy/translator/js/test/runtest.py
pypy/dist/pypy/translator/js/test/test_exception.py
pypy/dist/pypy/translator/js/test/test_snippet.py
Log:
Few more tests pass because etype_ and evalue_ variables
are carried around more correctly and ignoring calls to
external function ll_stack_check.
At least until stackless Javascript is a fact!
Modified: pypy/dist/pypy/translator/js/codewriter.py
==============================================================================
--- pypy/dist/pypy/translator/js/codewriter.py (original)
+++ pypy/dist/pypy/translator/js/codewriter.py Mon Nov 7 22:18:17 2005
@@ -88,7 +88,9 @@
src = 'true'
elif src == 'None':
src = 'undefined'
- if dest != src:
+ if dest != src and not dest.startswith('etype_'):
+ if dest.startswith('evalue_') and src.startswith('last_exc_value_'):
+ src = 'e' #i.e. the caught exception
self.append('%s = %s' % (dest, src))
def br_uncond(self, block, exit):
Modified: pypy/dist/pypy/translator/js/funcnode.py
==============================================================================
--- pypy/dist/pypy/translator/js/funcnode.py (original)
+++ pypy/dist/pypy/translator/js/funcnode.py Mon Nov 7 22:18:17 2005
@@ -43,8 +43,6 @@
def writeimpl(self, codewriter):
graph = self.graph
log.writeimpl(graph.name)
- nextblock = graph.startblock
- args = graph.startblock.inputargs
blocks = [x for x in flatten(graph) if isinstance(x, Block)]
self.blockindex= {}
for i, block in enumerate(blocks):
Modified: pypy/dist/pypy/translator/js/opwriter.py
==============================================================================
--- pypy/dist/pypy/translator/js/opwriter.py (original)
+++ pypy/dist/pypy/translator/js/opwriter.py Mon Nov 7 22:18:17 2005
@@ -241,6 +241,9 @@
targetvar = self.db.repr_arg(op.result)
functionref = self.db.repr_arg(op_args[0])
argrefs = self.db.repr_arg_multi(op_args[1:])
+ if functionref == 'll_stack_check': #XXX what to do here?
+ self.codewriter.comment('Skipping: %s = %s()' % (targetvar, functionref))
+ return
self.codewriter.call(targetvar, functionref, argrefs)
def invoke(self, op):
@@ -306,7 +309,8 @@
struct = self.db.repr_arg(op.args[0])
targetvar = self.db.repr_arg(op.result)
targettype = 'undefined' #self.db.repr_arg_type(op.result)
- if targettype != "void":
+ if targettype != "void" and \
+ not targetvar.startswith('etype_'):
self.codewriter.append('%s = %s.%s' % (targetvar, struct, op.args[1].value)) #XXX move to codewriter
else:
self._skipped(op)
Modified: pypy/dist/pypy/translator/js/test/browsertest.py
==============================================================================
--- pypy/dist/pypy/translator/js/test/browsertest.py (original)
+++ pypy/dist/pypy/translator/js/test/browsertest.py Mon Nov 7 22:18:17 2005
@@ -22,7 +22,7 @@
try {
result = %(jstestcase)s;
} catch (e) {
- result = 'Exception("' + e + '")'
+ result = "Exception('" + e.toSource() + "')"
}
var resultform = document.forms['resultform'];
resultform.result.value = result;
Modified: pypy/dist/pypy/translator/js/test/runtest.py
==============================================================================
--- pypy/dist/pypy/translator/js/test/runtest.py (original)
+++ pypy/dist/pypy/translator/js/test/runtest.py Mon Nov 7 22:18:17 2005
@@ -49,5 +49,6 @@
elif s == 'undefined':
res = None
else:
+ log('javascript result:', s)
res = eval(s)
return res
Modified: pypy/dist/pypy/translator/js/test/test_exception.py
==============================================================================
--- pypy/dist/pypy/translator/js/test/test_exception.py (original)
+++ pypy/dist/pypy/translator/js/test/test_exception.py Mon Nov 7 22:18:17 2005
@@ -22,7 +22,7 @@
raise IndexError
return l[i]
-def DONTtest_simple1():
+def test_simple1():
def raise_(i):
if i:
raise TestException()
Modified: pypy/dist/pypy/translator/js/test/test_snippet.py
==============================================================================
--- pypy/dist/pypy/translator/js/test/test_snippet.py (original)
+++ pypy/dist/pypy/translator/js/test/test_snippet.py Mon Nov 7 22:18:17 2005
@@ -53,11 +53,11 @@
f = compile_function(test.int_id, [int])
assert f(1027) == 1027
- def DONTtest_factorial2(self):
+ def test_factorial2(self):
factorial2 = compile_function(test.factorial2, [int])
assert factorial2(5) == 120
- def DONTtest_factorial(self):
+ def test_factorial(self):
factorial = compile_function(test.factorial, [int])
assert factorial(5) == 120
More information about the Pypy-commit
mailing list