Mercurial > scratch
view pydershell/test.py @ 27:7f12db104246
Added evaluate, new_array, and new_object functions to JsSandbox class.
author | Atul Varma <varmaa@toolness.com> |
---|---|
date | Tue, 08 Sep 2009 09:38:46 -0700 |
parents | b7037cd0f375 |
children |
line wrap: on
line source
#! /usr/bin/env python # Trivial embedding of pydershell. import sys import pydermonkey from pydershell import JsSandbox, JsExposedObject, jsexposed if __name__ == '__main__': sandbox = JsSandbox() class Baz(JsExposedObject): __jsprops__ = ['moose'] def __init__(self): self._moose = 0 def get_moose(self): self._moose += 1 return self._moose def set_moose(self, value): self._moose = value moose = property(get_moose, set_moose) @jsexposed def woozle(self, blap): return blap + 5 @jsexposed(on=sandbox.root) def baz(): return Baz() @jsexposed(on=sandbox.root) def bar(obj): print obj.bar() @jsexposed(on=sandbox.root) def foo(callback): return callback() @jsexposed(on=sandbox.root) def ensureBaz(baz): if not isinstance(baz, Baz): print "Uhoh" else: print "ok" @jsexposed(name="print", on=sandbox.root) def jsprint(string): print string retval = sandbox.run_script('test.js') sandbox.finish() del sandbox import gc gc.collect() if pydermonkey.get_debug_info()['runtime_count']: print "WARNING: JS runtime was not destroyed." sys.exit(retval)