confnodes/python/modules/svgui/pyjs/lib/sys.py
changeset 721 ecf4d203c4d4
parent 720 6be032177e2a
child 722 a94f361fc42e
equal deleted inserted replaced
720:6be032177e2a 721:ecf4d203c4d4
     1 # the platform name (PyV8, smjs, Mozilla, IE6, Opera, Safari etc.)
       
     2 platform = '' # to be updated by app, on compile
       
     3 
       
     4 # a dictionary of module override names (platform-specific)
       
     5 overrides = None # to be updated by app, on compile
       
     6 
       
     7 # the remote path for loading modules
       
     8 loadpath = None 
       
     9 
       
    10 stacktrace = None 
       
    11 
       
    12 appname = None 
       
    13 
       
    14 def setloadpath(lp):
       
    15     global loadpath
       
    16     loadpath = lp
       
    17 
       
    18 def setappname(an):
       
    19     global appname
       
    20     appname = an
       
    21 
       
    22 def getloadpath():
       
    23     global loadpath
       
    24     return loadpath
       
    25 
       
    26 def addoverride(module_name, path):
       
    27     global overrides
       
    28     overrides[module_name] = path
       
    29 
       
    30 def addstack(linedebug):
       
    31     JS("""
       
    32         if (pyjslib.bool((sys.stacktrace === null))) {
       
    33             sys.stacktrace = new pyjslib.List([]);
       
    34         }
       
    35         sys.stacktrace.append(linedebug);
       
    36     """)
       
    37 def popstack():
       
    38     JS("""
       
    39         sys.stacktrace.pop()
       
    40     """)
       
    41 
       
    42 def printstack():
       
    43     JS("""
       
    44         var res = '';
       
    45 
       
    46         var __l = sys.stacktrace.__iter__();
       
    47         try {
       
    48             while (true) {
       
    49                 var l = __l.next();
       
    50                 res +=  ( l + '\\n' ) ;
       
    51             }
       
    52         } catch (e) {
       
    53             if (e != pyjslib.StopIteration) {
       
    54                 throw e;
       
    55             }
       
    56         }
       
    57 
       
    58         return res;
       
    59     """)