Clazz.declarePackage("JS");
Clazz.load(null, "JS.ScriptContext", ["java.util.Hashtable", "JS.SV"], function(){
var c$ = Clazz.decorateAsClass(function(){
this.aatoken = null;
this.allowJSThreads = false;
this.chk = false;
this.contextPath = " >> ";
this.vars = null;
this.displayLoadErrorsSave = false;
this.errorMessage = null;
this.errorMessageUntranslated = null;
this.errorType = null;
this.executionPaused = false;
this.executionStepping = false;
this.isEditor = false;
this.isEditorScript = false;
this.functionName = null;
this.iCommandError = -1;
this.id = 0;
this.isComplete = true;
this.isFunction = false;
this.isJSThread = false;
this.isStateScript = false;
this.isTryCatch = false;
this.forVars = null;
this.iToken = 0;
this.lineEnd = 2147483647;
this.lineIndices = null;
this.lineNumbers = null;
this.mustResumeEval = false;
this.outputBuffer = null;
this.parallelProcessor = null;
this.parentContext = null;
this.pc = 0;
this.pc0 = 0;
this.pcEnd = 2147483647;
this.script = null;
this.scriptExtensions = null;
this.scriptFileName = null;
this.scriptLevel = 0;
this.statement = null;
this.htFileCache = null;
this.statementLength = 0;
this.token = null;
this.tryPt = 0;
this.theToken = null;
this.theTok = 0;
this.pointers = null;
this.why = null;
this.privateFuncs = null;
Clazz.instantialize(this, arguments);}, JS, "ScriptContext", null);
Clazz.makeConstructor(c$, 
function(){
this.id = ++JS.ScriptContext.contextCount;
});
Clazz.defineMethod(c$, "setMustResume", 
function(){
var sc = this;
while (sc != null) {
sc.mustResumeEval = true;
sc.pc = sc.pc0;
sc = sc.parentContext;
}
});
Clazz.defineMethod(c$, "getVariable", 
function($var){
var context = this;
var v;
while (context != null && !context.isFunction) {
if (context.vars != null && (v = context.vars.get($var)) != null) return v;
context = context.parentContext;
}
return null;
}, "~S");
Clazz.defineMethod(c$, "getFullMap", 
function(){
var ht =  new java.util.Hashtable();
var context = this;
if (this.contextPath != null) ht.put("_path", JS.SV.newS(this.contextPath));
while (context != null && !context.isFunction) {
if (context.vars != null) for (var key, $key = context.vars.keySet().iterator (); $key.hasNext()&& ((key = $key.next ()) || true);) if (!ht.containsKey(key)) {
var val = context.vars.get(key);
if (val.tok != 2 || val.intValue != 2147483647) ht.put(key, val);
}
context = context.parentContext;
}
return ht;
});
Clazz.defineMethod(c$, "saveTokens", 
function(aa){
this.aatoken = aa;
if (aa == null) {
this.pointers = null;
return;
}this.pointers =  Clazz.newIntArray (aa.length, 0);
for (var i = this.pointers.length; --i >= 0; ) this.pointers[i] = (aa[i] == null ? -1 : aa[i][0].intValue);

}, "~A");
Clazz.defineMethod(c$, "restoreTokens", 
function(){
if (this.pointers != null) for (var i = this.pointers.length; --i >= 0; ) if (this.aatoken[i] != null) this.aatoken[i][0].intValue = this.pointers[i];

return this.aatoken;
});
Clazz.defineMethod(c$, "getTokenCount", 
function(){
return (this.aatoken == null ? -1 : this.aatoken.length);
});
Clazz.defineMethod(c$, "getToken", 
function(i){
return this.aatoken[i];
}, "~N");
c$.contextCount = 0;
});
;//5.0.1-v2 Tue Jul 23 17:25:20 CDT 2024
