# HG changeset patch # User Atul Varma # Date 1251139198 25200 # Node ID d08cb5a06c6647166850907cb953439547adbeca # Parent 1a982ee564585addd2fa9ad8540192a95c3979bb Added docs for Script, compile_script() and execute_script(). diff -r 1a982ee56458 -r d08cb5a06c66 docs/rendered/_sources/pymonkey.txt --- a/docs/rendered/_sources/pymonkey.txt Sun Aug 23 22:26:58 2009 -0700 +++ b/docs/rendered/_sources/pymonkey.txt Mon Aug 24 11:39:58 2009 -0700 @@ -54,6 +54,16 @@ This is the type of JavaScript functions, which is a subtype of :class:`Object`. +.. class:: Script + + This is the type of compiled JavaScript scripts; it's actually a + subtype of :class:`Object`, though when exposed to JS code it + doesn't provide access to any special data or functionality. + + Script instances have a read-only buffer interface that exposes + their bytecode. This can be accessed by passing an instance to + Python's built-in ``buffer()`` function. + .. class:: Context This is the type of JavaScript context objects. Contexts can only @@ -174,6 +184,33 @@ >>> cx.evaluate_script(obj, '5 * Math', '', 1) nan + .. method:: compile_script(obj, code, filename, lineno) + + Compiles the given string of code and returns a :class:`Script` + instance that can be executed via :meth:`execute_script()`. + + `filename` and `lineno` are used just as in + :meth:`evaluate_script()`. + + `obj` is defined in the SpiderMonkey documentation to be + the "object with which the script is associated", though it's + unclear what its actual role is. + + .. method:: execute_script(globalobj, script) + + Executes the code in the given :class:`Script` object, using + `globalobj` as the global object/scope, and returns the result. + + For example: + + >>> cx = pymonkey.Runtime().new_context() + >>> obj = cx.new_object() + >>> cx.init_standard_classes(obj) + >>> script = cx.compile_script(cx.new_object(), '5 * Math', + ... '', 1) + >>> cx.execute_script(obj, script) + nan + .. method:: call_function(thisobj, func, args) Calls a JavaScript function. diff -r 1a982ee56458 -r d08cb5a06c66 docs/rendered/genindex.html --- a/docs/rendered/genindex.html Sun Aug 23 22:26:58 2009 -0700 +++ b/docs/rendered/genindex.html Mon Aug 24 11:39:58 2009 -0700 @@ -53,7 +53,8 @@
call_function() (pymonkey.Context method)
-
clear_object_private() (pymonkey.Context method)
+
clear_object_private() (pymonkey.Context method)
+
compile_script() (pymonkey.Context method)
Context (class in pymonkey)
@@ -70,6 +71,7 @@
error
evaluate_script() (pymonkey.Context method)
+
execute_script() (pymonkey.Context method)

F

@@ -140,6 +142,7 @@
+
Script (class in pymonkey)
set_operation_callback() (pymonkey.Context method)
diff -r 1a982ee56458 -r d08cb5a06c66 docs/rendered/pymonkey.html --- a/docs/rendered/pymonkey.html Sun Aug 23 22:26:58 2009 -0700 +++ b/docs/rendered/pymonkey.html Mon Aug 24 11:39:58 2009 -0700 @@ -103,6 +103,18 @@ Object.
+
+ +class pymonkey.Script
+

This is the type of compiled JavaScript scripts; it’s actually a +subtype of Object, though when exposed to JS code it +doesn’t provide access to any special data or functionality.

+

Script instances have a read-only buffer interface that exposes +their bytecode. This can be accessed by passing an instance to +Python’s built-in buffer() function.

+
+ +
class pymonkey.Context
@@ -230,6 +242,35 @@
+
+compile_script(obj, code, filename, lineno)
+

Compiles the given string of code and returns a Script +instance that can be executed via execute_script().

+

filename and lineno are used just as in +evaluate_script().

+

obj is defined in the SpiderMonkey documentation to be +the “object with which the script is associated”, though it’s +unclear what its actual role is.

+
+ +
+
+execute_script(globalobj, script)
+

Executes the code in the given Script object, using +globalobj as the global object/scope, and returns the result.

+

For example:

+
>>> cx = pymonkey.Runtime().new_context()
+>>> obj = cx.new_object()
+>>> cx.init_standard_classes(obj)
+>>> script = cx.compile_script(cx.new_object(), '5 * Math',
+...                            '<string>', 1)
+>>> cx.execute_script(obj, script)
+nan
+
+
+
+ +
call_function(thisobj, func, args)

Calls a JavaScript function.

diff -r 1a982ee56458 -r d08cb5a06c66 docs/rendered/searchindex.js --- a/docs/rendered/searchindex.js Sun Aug 23 22:26:58 2009 -0700 +++ b/docs/rendered/searchindex.js Mon Aug 24 11:39:58 2009 -0700 @@ -1,1 +1,1 @@ -Search.setIndex({desctypes:{"0":"method","1":"exception","2":"class","3":"data"},terms:{spidermonkei:[0,1],represent:1,all:0,code:[0,1],untrust:0,lack:0,concept:0,sleep:1,get_object_priv:1,privat:1,depend:0,readabl:0,program:1,isinst:1,liter:1,string:1,veri:[0,1],retriev:1,vast:0,level:1,"try":[0,1],second:1,pass:1,casual:0,even:[],index:0,evaluate_script:1,abl:0,"while":1,access:[0,1],"new":1,objdir:[],method:1,metadata:1,define_properti:1,full:0,subtyp:1,never:0,onli:[0,1],here:0,objcec:[],path:[],sinc:1,valu:1,search:0,amount:1,has_properti:1,doctest:0,chang:1,tremend:0,via:[0,1],modul:[0,1],filenam:1,api:0,instal:0,test_pymonkei:[],from:[0,1],would:0,memori:0,init_standard_class:1,few:1,call:1,scope:1,type:1,more:[0,1],thisobj:1,mozilla:[0,1],line:1,ctype:0,known:0,actual:0,must:0,none:1,join:[],setup:0,work:0,conceptu:1,abort:1,can:[0,1],learn:0,akin:0,root:0,fetch:0,def:1,give:0,process:0,challeng:0,sudo:0,indic:0,carrot:1,want:[0,1],alwai:0,goal:0,secur:[0,1],write:0,how:0,verifi:1,map:1,product:0,referenc:1,clone:[],usabl:0,befor:0,mai:1,associ:1,third:[0,1],counter:1,inform:1,sandbox:0,environ:0,enter:[],callabl:1,becaus:0,intermediari:0,through:1,dynam:0,platform:0,window:0,bypass:1,easier:0,them:0,js_initstandardclass:1,"return":1,thei:[],python:[0,1],safe:1,now:1,xpcom:0,name:1,anyth:0,get_runtim:1,easili:0,trigger_operation_callback:1,trap:0,each:1,debug:[0,1],side:0,mean:0,compil:0,everyth:0,realli:0,ensur:0,"static":[],collector:0,out:0,safeti:1,path_to_objdir:[],profil:0,lineno:1,rational:0,print:1,forth:1,math:1,situat:0,free:[],standard:[0,1],reason:[],base:0,thrown:1,etern:1,thread:1,traceback:0,first:1,oper:1,singleton:1,obviou:0,pyrex:0,feel:[],onc:1,arrai:1,number:[0,1],get_properti:1,instruct:[],facil:0,given:1,script:[],interact:1,too:[0,1],"final":0,store:1,relationship:0,tool:[],huh:[],took:1,specifi:1,getter:1,than:0,wide:0,kind:[],target:1,provid:0,posit:1,browser:0,pre:1,comput:1,falsi:1,arg:1,ani:[0,1],packag:0,have:[0,1],tabl:0,need:0,"null":1,engin:[0,1],built:1,equival:1,callback:1,latter:[],client:0,note:[0,1],also:[0,1],ideal:0,exampl:1,build:0,which:[0,1],noth:[0,1],trace:1,object:[0,1],plai:0,"class":1,don:0,clear:1,later:1,doe:1,runtim:1,awesom:0,text:1,particularli:0,find:1,setter:1,involv:0,current:[0,1],new_object:1,execut:[0,1],solut:0,should:0,busi:0,contribut:0,get:1,stop:1,pave:0,increas:0,requir:0,enabl:0,yield:1,contain:1,where:0,set:1,new_context:1,see:1,stop_running_cod:1,disadvantag:0,best:1,detect:0,someth:0,state:1,won:0,outstand:0,between:0,atul:0,"import":1,call_funct:1,watchdog_thread:1,javascript:[0,1],weak:1,extens:0,preprocessor:0,complementari:0,come:1,expos:0,cycl:0,howev:0,blargh:[],instanc:[0,1],context:[0,1],logic:0,freeli:1,com:[],private_obj:1,simpli:[],sweep:0,wrap:1,header:0,assum:1,duplic:0,quit:0,java:0,evalu:1,three:1,been:1,mark:0,trigger:1,clear_object_priv:[0,1],argument:1,togeth:1,func:1,straight:0,properti:1,durat:1,defin:[0,1],invok:1,error:1,advantag:0,unintuit:[],readm:[],blah:[],itself:1,develop:0,perform:1,parti:0,make:0,belong:1,cross:0,same:1,complex:0,document:[0,1],http:[],wherea:0,effect:1,hand:0,fairli:0,moment:[],rais:1,stack:[0,1],pymonkei:[0,1],off:[],macro:0,without:0,thi:[0,1],undefin:1,programm:0,model:0,capi:0,new_funct:1,just:[],less:0,nan:1,obtain:[],yet:1,languag:0,web:0,easi:0,except:1,add:1,other:[0,1],take:1,around:0,read:0,swig:0,envis:0,know:[],world:0,bit:0,like:[0,1],vibrant:0,manual:0,resolv:0,server:0,collect:[0,1],either:[],docutil:1,page:0,right:[],some:0,back:[],global:1,mirror:[],librari:0,rhino:0,refer:0,run:[0,1],garbag:[0,1],broken:0,set_operation_callback:1,repositori:0,"throw":1,about:0,central:[],unfortun:[],within:1,due:0,serverj:0,contributor:0,watchdog:1,your:0,manag:[],span:1,wai:0,ergonom:0,support:1,"long":1,custom:0,avail:[0,1],start:1,interfac:1,low:1,lot:0,suit:0,beet:1,"function":[0,1],properli:0,offer:1,tupl:1,globalobj:1,eas:0,"true":1,count:0,made:0,possibl:[0,1],whether:1,similar:0,featur:0,creat:[0,1],runtm:1,doesn:[0,1],repres:1,exist:[0,1],file:[0,1],check:[],probabl:0,floor:1,boop:[],todo:[],when:1,field:0,valid:0,futur:1,test:0,you:[0,1],boof:[],matur:0,relat:1,eval:1,unbind:1,land:[0,1],sphinx:0,directori:[],obj:1,time:[0,1]},titles:["Pymonkey Documentation","pymonkey — Access SpiderMonkey from Python"],modules:{pymonkey:1},descrefs:{"pymonkey.Runtime":{new_context:[1,0]},"pymonkey.Object":{get_runtime:[1,0]},"pymonkey.Context":{get_property:[1,0],get_object_private:[1,0],new_object:[1,0],has_property:[1,0],call_function:[1,0],evaluate_script:[1,0],clear_object_private:[1,0],new_function:[1,0],get_runtime:[1,0],define_property:[1,0],trigger_operation_callback:[1,0],gc:[1,0],init_standard_classes:[1,0],set_operation_callback:[1,0]},pymonkey:{Function:[1,2],undefined:[1,3],Object:[1,2],Context:[1,2],error:[1,1],Runtime:[1,2]}},filenames:["index","pymonkey"]}) \ No newline at end of file +Search.setIndex({desctypes:{"0":"method","1":"class","2":"exception","3":"data"},terms:{spidermonkei:[0,1],represent:1,all:0,code:[0,1],untrust:0,lack:0,concept:0,sleep:1,get_object_priv:1,privat:1,depend:0,readabl:0,program:1,isinst:1,liter:1,string:1,veri:[0,1],join:[],vast:0,level:1,"try":[0,1],eas:0,second:1,pass:1,casual:0,even:[],index:0,what:1,conceptu:1,evaluate_script:1,abl:0,"while":1,access:[0,1],"new":1,objdir:[],method:1,metadata:1,involv:0,full:0,subtyp:1,never:0,new_object:1,here:0,objcec:[],path:[],sinc:1,valu:1,search:0,amount:1,has_properti:1,doctest:0,chang:1,tremend:0,via:[0,1],modul:[0,1],filenam:1,api:0,instal:0,test_pymonkei:[],from:[0,1],would:0,memori:0,init_standard_class:1,few:1,call:1,scope:1,type:1,more:[0,1],thisobj:1,mozilla:[0,1],ctype:0,known:0,central:[],must:0,none:1,retriev:1,setup:0,work:0,compile_script:1,abort:1,can:[0,1],learn:0,akin:0,root:0,fetch:0,def:1,give:0,process:0,challeng:0,sudo:0,indic:0,carrot:1,want:[0,1],alwai:0,goal:0,secur:[0,1],write:0,how:0,verifi:1,map:1,product:0,referenc:1,clone:[],usabl:0,befor:0,mai:1,data:1,third:[0,1],counter:1,callback:1,sandbox:0,environ:0,enter:[],callabl:1,becaus:0,intermediari:0,through:1,dynam:0,bytecod:1,platform:0,window:0,bypass:1,easier:0,them:0,within:1,"return":1,thei:[],python:[0,1],safe:1,now:1,xpcom:0,name:1,anyth:0,get_runtim:1,easili:0,trigger_operation_callback:1,trap:0,each:1,debug:[0,1],side:0,mean:0,compil:[0,1],realli:0,ensur:0,"static":[],collector:0,special:1,out:0,safeti:1,path_to_objdir:[],profil:0,lineno:1,rational:0,print:1,forth:1,math:1,model:0,situat:0,free:[],standard:[0,1],reason:[],base:0,thrown:1,etern:1,thread:1,traceback:0,first:1,oper:1,singleton:1,obviou:0,pyrex:0,feel:[],onc:1,arrai:1,number:[0,1],get_properti:1,instruct:[],facil:0,given:1,script:1,associ:1,interact:1,too:[0,1],"final":0,store:1,relationship:0,tool:[],huh:[],took:1,specifi:1,getter:1,than:0,wide:0,kind:[],target:1,provid:[0,1],posit:1,browser:0,pre:1,comput:1,falsi:1,arg:1,argument:1,packag:0,have:[0,1],tabl:0,need:0,"null":1,engin:[0,1],built:1,equival:1,inform:1,latter:[],client:0,note:[0,1],also:[0,1],ideal:0,exampl:1,build:0,which:[0,1],noth:[0,1],trace:1,though:1,buffer:1,object:[0,1],plai:0,"class":1,don:0,clear:1,later:1,doe:1,runtim:1,awesom:0,text:1,particularli:0,find:1,setter:1,define_properti:1,current:[0,1],onli:[0,1],just:1,solut:0,should:0,busi:0,contribut:0,get:1,stop:1,pave:0,increas:0,requir:0,enabl:0,yield:1,contain:1,where:0,set:1,new_context:1,see:1,result:1,stop_running_cod:1,disadvantag:0,best:1,page:0,detect:0,someth:0,state:1,won:0,outstand:0,between:0,atul:0,"import":1,call_funct:1,watchdog_thread:1,javascript:[0,1],weak:1,extens:0,preprocessor:0,complementari:0,come:1,easi:0,cycl:0,howev:0,blargh:[],instanc:[0,1],context:[0,1],logic:0,freeli:1,com:[],private_obj:1,unclear:1,simpli:[],sweep:0,header:0,assum:1,duplic:0,quit:0,java:0,creat:[0,1],three:1,been:1,mark:0,trigger:1,clear_object_priv:[0,1],ani:[0,1],togeth:1,func:1,ident:[],straight:0,properti:1,durat:1,defin:[0,1],invok:1,error:1,advantag:0,unintuit:[],readm:[],contributor:0,blah:[],itself:1,develop:0,perform:1,parti:0,make:0,belong:1,cross:0,same:1,complex:0,document:[0,1],http:[],wherea:0,effect:1,hand:0,fairli:0,moment:[],rais:1,stack:[0,1],pymonkei:[0,1],off:[],macro:0,without:0,thi:[0,1],undefin:1,programm:0,everyth:0,know:[],new_funct:1,execut:[0,1],less:0,when:1,obtain:[],yet:1,languag:0,web:0,expos:[0,1],except:1,add:1,valid:0,take:1,around:0,read:[0,1],swig:0,envis:0,capi:0,world:0,bit:0,like:[0,1],vibrant:0,manual:0,resolv:0,server:0,collect:[0,1],either:[],docutil:1,manag:[],right:[],some:0,back:[],global:1,mirror:[],librari:0,rhino:0,refer:0,run:[0,1],garbag:[0,1],broken:0,set_operation_callback:1,repositori:0,"throw":1,about:0,actual:[0,1],unfortun:[],js_initstandardclass:1,due:0,serverj:0,wrap:1,watchdog:1,your:0,execute_script:1,span:1,wai:0,ergonom:0,support:1,"long":1,custom:0,avail:[0,1],start:1,interfac:1,low:1,lot:0,suit:0,beet:1,"function":[0,1],properli:0,offer:1,tupl:1,globalobj:1,line:1,"true":1,count:0,made:0,possibl:[0,1],whether:1,similar:0,featur:0,evalu:1,runtm:1,doesn:[0,1],repres:1,exist:[0,1],file:[0,1],check:[],probabl:0,floor:1,boop:[],todo:[],nan:1,field:0,other:[0,1],role:1,futur:1,test:0,you:[0,1],boof:[],matur:0,relat:1,eval:1,unbind:1,land:[0,1],sphinx:0,directori:[],obj:1,time:[0,1]},titles:["Pymonkey Documentation","pymonkey — Access SpiderMonkey from Python"],modules:{pymonkey:1},descrefs:{"pymonkey.Runtime":{new_context:[1,0]},"pymonkey.Object":{get_runtime:[1,0]},"pymonkey.Context":{get_object_private:[1,0],get_property:[1,0],new_object:[1,0],has_property:[1,0],call_function:[1,0],trigger_operation_callback:[1,0],evaluate_script:[1,0],clear_object_private:[1,0],new_function:[1,0],get_runtime:[1,0],define_property:[1,0],compile_script:[1,0],set_operation_callback:[1,0],gc:[1,0],init_standard_classes:[1,0],execute_script:[1,0]},pymonkey:{Function:[1,1],undefined:[1,3],Script:[1,1],Object:[1,1],Context:[1,1],error:[1,2],Runtime:[1,1]}},filenames:["index","pymonkey"]}) \ No newline at end of file diff -r 1a982ee56458 -r d08cb5a06c66 docs/src/pymonkey.txt --- a/docs/src/pymonkey.txt Sun Aug 23 22:26:58 2009 -0700 +++ b/docs/src/pymonkey.txt Mon Aug 24 11:39:58 2009 -0700 @@ -54,6 +54,16 @@ This is the type of JavaScript functions, which is a subtype of :class:`Object`. +.. class:: Script + + This is the type of compiled JavaScript scripts; it's actually a + subtype of :class:`Object`, though when exposed to JS code it + doesn't provide access to any special data or functionality. + + Script instances have a read-only buffer interface that exposes + their bytecode. This can be accessed by passing an instance to + Python's built-in ``buffer()`` function. + .. class:: Context This is the type of JavaScript context objects. Contexts can only @@ -174,6 +184,33 @@ >>> cx.evaluate_script(obj, '5 * Math', '', 1) nan + .. method:: compile_script(obj, code, filename, lineno) + + Compiles the given string of code and returns a :class:`Script` + instance that can be executed via :meth:`execute_script()`. + + `filename` and `lineno` are used just as in + :meth:`evaluate_script()`. + + `obj` is defined in the SpiderMonkey documentation to be + the "object with which the script is associated", though it's + unclear what its actual role is. + + .. method:: execute_script(globalobj, script) + + Executes the code in the given :class:`Script` object, using + `globalobj` as the global object/scope, and returns the result. + + For example: + + >>> cx = pymonkey.Runtime().new_context() + >>> obj = cx.new_object() + >>> cx.init_standard_classes(obj) + >>> script = cx.compile_script(cx.new_object(), '5 * Math', + ... '', 1) + >>> cx.execute_script(obj, script) + nan + .. method:: call_function(thisobj, func, args) Calls a JavaScript function.