[pypy-svn] r40004 - pypy/dist/pypy/lang/js

santagada at codespeak.net santagada at codespeak.net
Wed Mar 7 00:05:11 CET 2007


Author: santagada
Date: Wed Mar  7 00:05:10 2007
New Revision: 40004

Modified:
   pypy/dist/pypy/lang/js/jsparser.py
Log:
rpython modifications

Modified: pypy/dist/pypy/lang/js/jsparser.py
==============================================================================
--- pypy/dist/pypy/lang/js/jsparser.py	(original)
+++ pypy/dist/pypy/lang/js/jsparser.py	Wed Mar  7 00:05:10 2007
@@ -47,8 +47,20 @@
     f = open_file_as_stream(fname, 'w')
     f.write(jsdefs+jsparse+"print(parse('%s'));\n" % stripped_code)
     f.close()
-    pipe = os.popen("js -f "+fname, 'r')
-    retval = pipe.read()
+    c2pread, c2pwrite = os.pipe()
+    if os.fork() == 0:
+        #child
+        os.dup2(c2pwrite, 1)
+        for i in range(3, 256):
+            try:
+                os.close(i)
+            except OSError:
+                pass
+        cmd = ['/bin/sh', '-c', 'js -f '+fname]
+        os.execvp(cmd[0], cmd)
+    os.close(c2pwrite)
+    retval = os.read(c2pread, -1)
+    os.close(c2pread)
     if not retval.startswith("{"):
         raise JsSyntaxError(retval)
     if DEBUG:



More information about the Pypy-commit mailing list