[pypy-svn] r28937 - in pypy/dist/pypy/translator/js: . modules modules/test test

fijal at codespeak.net fijal at codespeak.net
Mon Jun 19 10:40:22 CEST 2006


Author: fijal
Date: Mon Jun 19 10:40:20 2006
New Revision: 28937

Modified:
   pypy/dist/pypy/translator/js/jsbuiltin.py
   pypy/dist/pypy/translator/js/modules/test/test_dom.py
   pypy/dist/pypy/translator/js/modules/xmlhttp.py
   pypy/dist/pypy/translator/js/test/runtest.py
Log:
Fixed ExternalBuiltin code rendering.


Modified: pypy/dist/pypy/translator/js/jsbuiltin.py
==============================================================================
--- pypy/dist/pypy/translator/js/jsbuiltin.py	(original)
+++ pypy/dist/pypy/translator/js/jsbuiltin.py	Mon Jun 19 10:40:20 2006
@@ -22,6 +22,7 @@
             'll_strconcat' : InstructionList([PushAllArgs, '+']),
             'll_int' : CallBuiltin('parseInt'),
             'alert' : CallBuiltin('alert'),
+            'seval' : CallBuiltin('seval'),
         }
         self.builtin_obj_map = {
             ootype.String.__class__: {

Modified: pypy/dist/pypy/translator/js/modules/test/test_dom.py
==============================================================================
--- pypy/dist/pypy/translator/js/modules/test/test_dom.py	(original)
+++ pypy/dist/pypy/translator/js/modules/test/test_dom.py	Mon Jun 19 10:40:20 2006
@@ -7,6 +7,8 @@
 from pypy.translator.js.modules.dom import Node, get_document, setTimeout, alert
 from pypy.translator.js.modules.xmlhttp import XMLHttpRequest
 from pypy.translator.js import conftest
+#from pypy.rpython.rjs import jseval
+from pypy.translator.js.modules.seval import seval
 
 import time
 
@@ -83,7 +85,36 @@
         xml.open('GET', 'http://localhost:8080/get_some_info?info=dupa', True)
         xml.onreadystatechange = t_xml_fun
         #return xml.readyState
-        xml.send_finish()
+        xml.send(None)
     
     fn = compile_function(xml_fun, [])
     fn()
+
+##def ping_fun():
+##    if xml.readyState == 4:
+##        null = None
+##        if xml.responseText:
+##            data = seval(xml.responseText)
+##            alert(data['message'])
+##        #for i in data:
+##        #    alert(i)
+##        send_ping_request()
+##
+##def send_ping_request():
+##    xml.open('GET', 'http://localhost:8080/ping', True)
+##    xml.onreadystatechange = ping_fun
+##    xml.send(None)
+
+def send_ping_request():
+    pass
+
+def test_bnb():
+    """ Higher level XMLHttpRequest
+    """
+    def bnb_fun():
+        from pypy.translator.js.proxy.testme.controllers import RootInstance
+        RootInstance.ping(send_ping_request)
+    
+    from pypy.translator.js.proxy.testme.controllers import Root
+    fn = compile_function(bnb_fun, [], root = Root)
+    fn()

Modified: pypy/dist/pypy/translator/js/modules/xmlhttp.py
==============================================================================
--- pypy/dist/pypy/translator/js/modules/xmlhttp.py	(original)
+++ pypy/dist/pypy/translator/js/modules/xmlhttp.py	Mon Jun 19 10:40:20 2006
@@ -5,22 +5,25 @@
 from pypy.rpython.ootypesystem.bltregistry import BasicExternal
 from pypy.rpython.ootypesystem.ootype import String, Signed, StaticMethod, Bool, Void
 
+import types
+
 class XMLHttpRequest(BasicExternal):
     _fields = {
-        'readyState' : int
+        'readyState' : 3,
+        'responseText': "",
     }
     
     _methods = {
-        'open' : ((str, str, bool), None),
-        'send' : ((str,), None),
-        'send_finish' : ((), None),
+        'open' : (("", "", False), None),
+        'send' : ((None,), None),
+#        'send_finish' : ((), None),
         #'onreadystatechange' : ([], Void),
     }
     
-    _method_mapping = {
-        # this is neede because we've got some method duplications
-        'send_finish' : 'send'
-    }
+    #_method_mapping = {
+    #    # this is neede because we've got some method duplications
+    #    'send_finish' : 'send'
+    #}
 
 ##class XMLHttpRequest(object):
 ##    _rpython_hints = {'_suggested_external' : True}

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 Jun 19 10:40:20 2006
@@ -23,7 +23,7 @@
     return True
 
 class compile_function(object):
-    def __init__(self, function, annotation, stackless=False, view=False, html=None, is_interactive=False):
+    def __init__(self, function, annotation, stackless=False, view=False, html=None, is_interactive=False, root = None):
         if not use_browsertest and not _CLI_is_on_path():
             py.test.skip('Javascript CLI (js) not found')
 
@@ -42,6 +42,7 @@
         #self.js = JS(t, [function, callback_function], stackless)
         self.js = JS(t, [function], stackless)
         self.js.write_source()
+        self.root = root
 
     def _conv(self, v):
         #if isinstance(v, str):
@@ -62,7 +63,7 @@
                 output = jstest(self.js.filename, function_call, use_browsertest, self.html, self.is_interactive)
             else:
                 from pypy.translator.js.test.tgtest import run_tgtest
-                out = run_tgtest(self, None).results
+                out = run_tgtest(self, tg_root = self.root).results
                 assert out[1] == 'undefined'
                 output = out[0]
         else:



More information about the Pypy-commit mailing list