[Checkins] SVN: Sandbox/J1m/customdoctests/src/zc/customdoctests/js.py Added work around for python-spidermonkey problem when exceptions are

Jim Fulton jim at zope.com
Tue Feb 15 13:44:56 EST 2011


Log message for revision 120350:
  Added work around for python-spidermonkey problem when exceptions are
  raised while loading when load is caled from JS code.
  

Changed:
  U   Sandbox/J1m/customdoctests/src/zc/customdoctests/js.py

-=-
Modified: Sandbox/J1m/customdoctests/src/zc/customdoctests/js.py
===================================================================
--- Sandbox/J1m/customdoctests/src/zc/customdoctests/js.py	2011-02-15 17:37:08 UTC (rev 120349)
+++ Sandbox/J1m/customdoctests/src/zc/customdoctests/js.py	2011-02-15 18:44:56 UTC (rev 120350)
@@ -47,7 +47,22 @@
     globs['add_js_global'] = cx.add_global
 
     # Rhino & spidermonkey/js compatability functions
-    cx.add_global('load', lambda name: JS(open(name).read(), name))
+    cx.add_global('load_',
+                  lambda name: JS(load_template % open(name).read(), name))
+    JS(load_js)
     cx.add_global('print',
                   lambda *s: sys.stdout.write('%s\n' % ' '.join(map(str, s)))
                   )
+    cx.add_global('printe',
+                  lambda *s: sys.stderr.write('%s\n' % ' '.join(map(str, s)))
+                  )
+
+load_template = "try { %s } catch (e) {spidermonkey_error = e;}"
+
+load_js = """
+function load(p) {
+    spidermonkey_error = undefined;
+    load_(p);
+    if (spidermonkey_error) throw spidermonkey_error;
+}
+"""



More information about the checkins mailing list