home *** CD-ROM | disk | FTP | other *** search
- import java.io.PrintStream;
- import java.net.MalformedURLException;
- import java.net.URL;
- import java.util.Vector;
- import stardiv.security.JScript2Java;
- import stardiv.security.JScript2JavaInterface;
- import stardiv.tools.HoldJavaEnvironment;
- import stardiv.tools.SjCallBackAction;
-
- public class JScriptManager extends SJMTObject implements SjCallBackAction {
- private static Vector aJSManagerList = new Vector(3);
- private static Vector aManagerThreadRelationList = new Vector(3);
- public static final int JS_NOERROR = 0;
- public static final int JS_ERROR_RUNTIMEERR = -1;
- public static final int JS_ERROR_IN_FIRST_STATEMENT = -2;
- public static final int JS_ERROR_NO_MANAGER = -3;
- public static final int JS_ERROR_EMPTY_SCRIPT = -4;
- public static final int JS_ERROR_SINGLE_IDENTIFIER = -5;
- public static final int JS_ERROR_SINGLE_FUNCTION = -6;
- public static final int JS_ERROR_COMPILEERR = -7;
- public static final int JS_ERROR_BUSY = -8;
- public static final int JS_ERROR_NO_THREAD = -9;
- public static final int JS_ERROR_USERBREAK = -10;
- public static final int JS_ERROR_NO_RUNINFOS = -11;
- private static final String MANAGER_THREADGROUP_NAME = "JSM-ThreadGroup-";
- private static int nJSM_Count;
- private boolean bDebugSessionDone;
- private JSbxObject aRootObject;
- private String[] aArgs;
- private ThreadGroup aManagerThreadGroup;
- private ThreadGroup aParentThreadGroup;
- private JScriptCompiler aCompiler;
- private JScriptDebugger aDebugger;
- private JScriptBrowser aBrowser;
- private String aBrowserStrg;
- private JSbxVector aModVector;
- private int nNoOfActModule;
- private JScriptModule aActEventModule;
- private String aLastError;
- private Vector aJobList;
- private int nActJobID;
- private boolean bStartIDE;
- private boolean bSysExitAllowed;
- private static JScriptIDEWindow aWindowInterface = null;
- private PrintStream aDebugOutputStream;
- private JScriptErrorLog aErrorLog;
- private JavaScript aJavaScriptObj;
- private Vector aRTIList;
- private JScript2JavaInterface pJScript2JavaInterface;
- PrintStream aDebugOutStream;
-
- private static void AddNewJScriptManager(JScriptManager var0) {
- aJSManagerList.addElement(var0);
- }
-
- private static void RemoveJScriptManager(JScriptManager var0) {
- aJSManagerList.removeElement(var0);
- }
-
- public static int GetNoOfJScriptManagers() {
- return aJSManagerList.size();
- }
-
- public static void SelectJScriptManager(int var0) {
- JScriptManager var1 = null;
-
- try {
- var1 = (JScriptManager)aJSManagerList.elementAt(var0);
- } catch (ArrayIndexOutOfBoundsException var2) {
- }
-
- if (var1 != null) {
- var1.CreateUpDateIDEWindow();
- }
-
- }
-
- public static void AddRelation(JScriptManager var0) {
- Thread var1 = Thread.currentThread();
- aManagerThreadRelationList.addElement(new JScriptManagerThreadRelation(var0, var1));
- }
-
- public static void RemoveRelation(JScriptManager var0) {
- Thread var1 = Thread.currentThread();
- Vector var2 = aManagerThreadRelationList;
- synchronized(var2){}
-
- try {
- int var4 = aManagerThreadRelationList.size();
-
- for(int var5 = var4 - 1; var5 >= 0; --var5) {
- JScriptManagerThreadRelation var6 = (JScriptManagerThreadRelation)aManagerThreadRelationList.elementAt(var5);
- if (var6.aManager == var0 && var6.aThread == var1) {
- aManagerThreadRelationList.removeElement(var6);
- return;
- }
- }
-
- } catch (Throwable var8) {
- throw var8;
- }
- }
-
- private final synchronized void BlockCallingThread() {
- this.bDebugSessionDone = false;
-
- try {
- while(!this.bDebugSessionDone) {
- this.wait();
- }
-
- } catch (InterruptedException var1) {
- }
- }
-
- private final synchronized void UnBlockCallingThread() {
- this.bDebugSessionDone = true;
- this.notifyAll();
- }
-
- public final void SetLastError(String var1) {
- this.aLastError = var1;
- }
-
- public final String GetLastError() {
- return this.aLastError;
- }
-
- public final boolean IsUsedAsIDE() {
- return this.bStartIDE;
- }
-
- public final void WaitFor_IDEClosed() {
- if (aWindowInterface != null) {
- aWindowInterface.WaitForIDEClosed();
- }
-
- }
-
- public final boolean IsSysExitAllowed() {
- return this.bSysExitAllowed;
- }
-
- public final void SetSysExitFlag(boolean var1) {
- this.bSysExitAllowed = var1;
- }
-
- public final PrintStream GetOutputPtrintStream() {
- return this.aDebugOutputStream;
- }
-
- public JavaScript GetJavaScriptObj() {
- return this.aJavaScriptObj;
- }
-
- public void UpdateNativeInterface(JavaScript var1) {
- this.aJavaScriptObj = var1;
- }
-
- private final synchronized void AddRTI(JScriptRuntimeInstance var1) {
- this.aRTIList.addElement(var1);
- }
-
- private final synchronized void RemoveRTI(JScriptRuntimeInstance var1) {
- this.aRTIList.removeElement(var1);
- this.notifyAll();
- }
-
- private final JScriptRuntimeInstance GetActJScriptRuntimeInstance() {
- Vector var1 = this.aRTIList;
- synchronized(var1){}
-
- try {
- for(int var3 = 0; var3 < this.aRTIList.size(); ++var3) {
- JScriptRuntimeInstance var4 = (JScriptRuntimeInstance)this.aRTIList.elementAt(var3);
- if (var4.GetThread() == Thread.currentThread()) {
- JScriptRuntimeInstance var5 = var4;
- return var5;
- }
- }
-
- return null;
- } catch (Throwable var7) {
- throw var7;
- }
- }
-
- public final int GetNoOfRTI() {
- return this.aRTIList.size();
- }
-
- public final synchronized void WaitFor_NoRTI() {
- try {
- while(this.GetNoOfRTI() > 0) {
- this.wait();
- }
-
- } catch (InterruptedException var1) {
- }
- }
-
- public JScript2JavaInterface getSecureJScriptCalling() {
- if (this.pJScript2JavaInterface == null) {
- try {
- URL var1 = new URL("http:");
- this.pJScript2JavaInterface = new JScript2Java(var1);
- } catch (MalformedURLException var2) {
- HoldJavaEnvironment.AddToProtocol(((Throwable)var2).toString());
- }
- }
-
- return this.pJScript2JavaInterface;
- }
-
- public void ClrJScriptCalling() {
- this.pJScript2JavaInterface = null;
- }
-
- public JScriptManager(ThreadGroup var1, JSbxObject var2, boolean var3) {
- this((String[])null, var1, false, var2, var3);
- this.SetSysExitFlag(false);
- ((SJMTObject)this).DoStartThread();
- }
-
- public JScriptManager(String[] var1, ThreadGroup var2, JSbxObject var3) {
- this(var1, var2, true, var3, true);
- }
-
- private JScriptManager(String[] var1, ThreadGroup var2, boolean var3, JSbxObject var4, boolean var5) {
- super(var3, "JavaScript Manager (IDE) " + nJSM_Count, var2);
- this.aRootObject = var4;
- this.InitData();
- this.bStartIDE = var5;
- this.aArgs = var1;
- this.aErrorLog = new JScriptErrorLog();
- this.aParentThreadGroup = var2;
- if (this.aParentThreadGroup != null) {
- this.aManagerThreadGroup = new ThreadGroup(this.aParentThreadGroup, "JSM-ThreadGroup-" + nJSM_Count);
- }
-
- this.aCompiler = new JScriptCompiler(this);
- AddNewJScriptManager(this);
- this.SetDebug(true, true, this.aDebugOutputStream);
- }
-
- public void finalize() {
- super.finalize();
- }
-
- void RemoveAllReferences() {
- RemoveJScriptManager(this);
- HoldJavaEnvironment.RemoveCallBackListener(this);
- this.UpdateNativeInterface((JavaScript)null);
- this.aCompiler = null;
- this.aModVector = new JSbxVector(1);
- }
-
- public static void NotImplemented(String var0) {
- PrintStream var1 = GetMyJScriptManager().GetOutputStream();
- var1.println("SORRY: Feature >" + var0 + "< not implemented yet.");
- }
-
- public static void ShowWarning(String var0) {
- PrintStream var1 = GetMyJScriptManager().GetOutputStream();
- var1.println("WARNING: " + var0);
- }
-
- public static void ShowAlertBox(String var0) {
- GetMyJScriptManager();
- JScriptIDEWindow var1 = aWindowInterface;
- if (var1 != null) {
- SJModalMessageBox var2 = new SJModalMessageBox(var1, "(Star)JavaScript Alert", var0);
- var2.ShowIt();
- } else {
- System.out.println("Warning: " + var0);
- }
- }
-
- public static boolean ShowConfirmBox(String var0) {
- GetMyJScriptManager();
- JScriptIDEWindow var1 = aWindowInterface;
- if (var1 != null) {
- SJModalMessageBox var2 = new SJModalMessageBox(var1, "(Star)JavaScript Confirm", var0, true);
- return var2.ShowIt();
- } else {
- System.out.println("ConfirmQuestion: " + var0);
- return false;
- }
- }
-
- public static boolean ShowQuestionBox(String var0) {
- SJModalQuestionBox var1 = new SJModalQuestionBox("Question", var0);
- return var1.ShowIt();
- }
-
- public static JSbxValue ShowPromptBox(String var0, String var1) {
- GetMyJScriptManager();
- JScriptIDEWindow var2 = aWindowInterface;
- if (var2 != null) {
- SJModalPromptBox var3 = new SJModalPromptBox(var2, "(Star)JavaScript Prompt", var0, var1);
- String var4 = var3.ShowIt();
-
- try {
- Double var5 = new Double(var4);
- return new JSbxValue(var5);
- } catch (NumberFormatException var6) {
- return new JSbxValue(var4);
- }
- } else {
- System.out.println("Prompt: " + var0 + " value: " + var1);
- return new JSbxValue();
- }
- }
-
- public void StopManager() {
- if (this.aCompiler != null) {
- this.aCompiler.StopMessageLoop();
- }
-
- if (this.aDebugger != null) {
- this.aDebugger.StopMessageLoop();
- }
-
- if (this.aBrowser != null) {
- this.aBrowser.StopMessageLoop();
- }
-
- ((SJMTObject)this).StopMessageLoop();
- }
-
- public void CheckAllClients() {
- SJMessage var1 = new SJMessage(10030, this);
- var1.JOB_SetNotifyObject(this);
- this.NotifyBrowser(var1);
- }
-
- JScriptArrayObject CreateArrayObject(String var1) {
- return new JScriptArrayObject(this.GetConstructorObject("Array"), var1);
- }
-
- public static JSbxObject CreateClassObject(String var0) {
- Object var1 = null;
- JScriptManager var2 = GetMyJScriptManager();
- if (var0.equals("String")) {
- var1 = new JScriptStringObject(var2.GetConstructorObject(var0));
- } else if (var0.equals("Date")) {
- var1 = new JScriptDateObject(var2.GetConstructorObject(var0));
- } else if (var0.equals("Array")) {
- var1 = new JScriptArrayObject(var2.GetConstructorObject(var0));
- } else if (var0.equals("Function")) {
- var1 = new JScriptFunctionObject(var2.GetConstructorObject(var0));
- } else if (var0.equals("Image")) {
- var1 = new JScriptImageObject(var2.GetConstructorObject(var0));
- } else if (var0.equals("Option")) {
- var1 = new JScriptOptionObject(var2.GetConstructorObject(var0));
- } else if (var0.equals("Boolean")) {
- var1 = new JScriptBooleanObject(var2.GetConstructorObject(var0));
- } else if (var0.equals("Number")) {
- var1 = new JScriptNumberObject(var2.GetConstructorObject(var0));
- } else if (var0.equals("Object")) {
- var1 = new JSbxObject(var2.GetConstructorObject(var0));
- }
-
- return (JSbxObject)var1;
- }
-
- public static JScriptConstructor GetConstructorObjectForMe(String var0) {
- if (var0.equals("DefaultConstructor")) {
- return new JScriptObjectConstructor();
- } else {
- JScriptManager var1 = GetMyJScriptManager();
- return (JScriptConstructor)(var1 != null ? var1.GetConstructorObject(var0) : new JScriptObjectConstructor());
- }
- }
-
- public JScriptConstructor GetConstructorObject(String var1) {
- if (this.aRootObject != null) {
- JSbxProperty var2 = this.aRootObject.Get(var1);
- if (var2 != null) {
- JSbxValue var3 = new JSbxValue();
-
- try {
- var2.Get(var3);
- if (var3.GetType() == 2) {
- return (JScriptConstructor)var3.GetObject();
- }
- } catch (JSbxException var4) {
- }
- }
- }
-
- return null;
- }
-
- public final void NotifyObservers(JScriptAction var1) {
- this.NotifyDebugger(var1);
- this.NotifyCompiler(var1);
- this.NotifyBrowser(var1);
- }
-
- public final void NotifyCompiler(SJMessage var1) {
- if (this.aCompiler != null) {
- this.aCompiler.HandleMessage(var1);
- }
-
- }
-
- public final void NotifyDebugger(SJMessage var1) {
- if (this.aDebugger != null) {
- this.aDebugger.HandleMessage(var1);
- }
-
- }
-
- public final void NotifyBrowser(SJMessage var1) {
- if (this.aBrowser != null) {
- this.aBrowser.HandleMessage(var1);
- }
-
- }
-
- public final JScriptModule MakeModule(String var1) {
- Object var2 = null;
- JScriptModule var4 = new JScriptModule(this);
- var4.SetSource(var1);
- this.aModVector.Add(var4);
- this.SetLastModuleAsActive();
- JSbxObject var3 = this.GetRootObject();
- if (var3 != null) {
- var3.CheckAndPushSearchObject(var4);
- }
-
- if (aWindowInterface != null) {
- aWindowInterface.UpDateIDE();
- }
-
- return var4;
- }
-
- public final String GetModuleName(int var1) {
- return this.GetModule(var1).GetName();
- }
-
- public final JScriptRuntimeInstance GetRTIForBrowser() {
- return this.aRTIList.size() < 1 ? null : (JScriptRuntimeInstance)this.aRTIList.elementAt(0);
- }
-
- public final JScriptCallLevelInstance GetActCallLevelInstForBrowser() {
- JScriptRuntimeInstance var1 = this.GetRTIForBrowser();
- return var1 == null ? null : var1.GetActualCallLevelInst();
- }
-
- public final void Browser_DirectShowInfos() {
- if (this.aBrowser != null) {
- this.aBrowser.ShowInfos();
- }
-
- }
-
- public final void Browser_SetEnable(boolean var1) {
- if (var1) {
- this.NotifyBrowser(new JScriptAction(3012));
- } else {
- this.NotifyBrowser(new JScriptAction(3013));
- }
- }
-
- public final void Browser_UpDateInfos() {
- this.NotifyBrowser(new JScriptAction(3006));
- }
-
- public final void Browser_SetMode(int var1) {
- JScriptAction var2 = new JScriptAction(3007);
- var2.SetInteger(var1);
- this.NotifyBrowser(var2);
- }
-
- public final void Browser_NextMode() {
- JScriptAction var1 = new JScriptAction(3010);
- this.NotifyBrowser(var1);
- }
-
- public final void Browser_SetSpecialName(String var1) {
- this.NotifyBrowser(new JScriptAction(3008, var1));
- }
-
- public final void Browser_AddWatch(String var1) {
- this.NotifyBrowser(new JScriptAction(3004, var1));
- }
-
- public final void Browser_RemoveAllWatches() {
- this.NotifyBrowser(new JScriptAction(3009));
- }
-
- public final void Browser_SetVar(String var1) {
- this.NotifyBrowser(new JScriptAction(3011, var1));
- }
-
- private final void StartJob(SJJob var1) {
- this.aJobList.addElement(var1);
- var1.StartProcessJob();
- }
-
- private final void SetObjectsAtMessage(SJJob var1, SJMessage var2, JScriptModule var3) {
- if (var1 != null) {
- var2.SetNoOfObjects(2);
- var2.SetObject(0, var3);
- var2.SetObject(1, var1);
- }
-
- }
-
- public final void ResetRuntimeInstance() {
- this.aRTIList.removeAllElements();
- }
-
- private final SJJob GetJobWithID(int var1) {
- for(int var2 = 0; var2 < this.aJobList.size(); ++var2) {
- SJJob var3 = (SJJob)this.aJobList.elementAt(var2);
- if (var3.GetID() == var1) {
- return var3;
- }
- }
-
- return null;
- }
-
- public final void DoKillAllJobs() {
- for(int var1 = 0; var1 < this.aJobList.size(); ++var1) {
- SJJob var2 = (SJJob)this.aJobList.elementAt(var1);
- var2.KillProcessJob();
- }
-
- }
-
- public final boolean DoKillJobWithID(int var1) {
- SJJob var2 = this.GetJobWithID(var1);
- if (var2 != null) {
- var2.KillProcessJob();
- return true;
- } else {
- return false;
- }
- }
-
- public final boolean DoSuspendJobWithID(int var1) {
- SJJob var2 = this.GetJobWithID(var1);
- if (var2 != null) {
- var2.SuspendProcessJob();
- return true;
- } else {
- return false;
- }
- }
-
- public final boolean DoResumeJobWithID(int var1) {
- SJJob var2 = this.GetJobWithID(var1);
- if (var2 != null) {
- var2.ResumeProcessJob();
- return true;
- } else {
- return false;
- }
- }
-
- private final SJJob DoRunMod(JScriptModule var1, boolean var2) {
- Object var3 = null;
- SJJob var4 = new SJJob(this, this.nActJobID++);
- JScriptAction var5;
- if (var2) {
- var5 = new JScriptAction(216, var1);
- } else {
- var5 = new JScriptAction(215, var1);
- }
-
- this.SetObjectsAtMessage(var4, var5, var1);
- var4.AddMessage(var5, this);
- this.StartJob(var4);
- return var4;
- }
-
- private final SJJob DoCompileAndRunMod(JScriptModule var1, boolean var2) {
- Object var3 = null;
- var1.ClrForCompile();
- SJJob var4 = new SJJob(this, this.nActJobID++);
- Object var5 = null;
- JScriptAction var6;
- SJCondition var7;
- if (var2) {
- var7 = this.AddBackgroundCompileToJob(var4, var1);
- var6 = new JScriptAction(216, var1);
- } else {
- var7 = this.AddCompileToJob(var4, var1);
- var6 = new JScriptAction(215, var1);
- }
-
- this.SetObjectsAtMessage(var4, var6, var1);
- var4.AddCondMessage(var6, this, var7);
- this.StartJob(var4);
- return var4;
- }
-
- public final int DoCompileAndRunModAsync(JScriptModule var1, boolean var2) {
- SJJob var3 = this.DoCompileAndRunMod(var1, var2);
- return var3.GetID();
- }
-
- public final void DoCompileAndRunModSync(JScriptModule var1, boolean var2) {
- SJJob var3 = this.DoCompileAndRunMod(var1, var2);
- ((SJEventSemaphore)var3).WaitForEvent();
- }
-
- public final int DoRunModAsync(JScriptModule var1, boolean var2) {
- SJJob var3 = this.DoRunMod(var1, var2);
- return var3.GetID();
- }
-
- public final void DoRunModSync(JScriptModule var1, boolean var2) {
- SJJob var3 = this.DoRunMod(var1, var2);
- ((SJEventSemaphore)var3).WaitForEvent();
- }
-
- public final int DoRunModSync_CTOJ(JScriptRunParam var1) {
- JScriptRuntimeInstance var2 = this.DoRunModSyncRTI_CTOJ(var1);
- return var2.GetErrorCode();
- }
-
- public final JScriptRuntimeInstance DoRunModSyncRTI_CTOJ(JScriptRunParam var1) {
- JScriptRuntimeInstance var2 = null;
- AddRelation(this);
- if (!var1.bDbgFlag && !HoldJavaEnvironment.getGlobalDbgFlag()) {
- var2 = this.SyncAsyncRun(var1);
- } else {
- this.aActEventModule = var1.aModule;
- this.CreateUpDateIDEWindow();
- Thread var3 = Thread.currentThread();
- String var4 = var3.getName();
- var3.setName("*** DBG calling thread ***");
- this.DoCompileAndDebugMod(var1.aModule, var1.aThisObj);
- this.BlockCallingThread();
- var3.setName(var4);
- this.aActEventModule = null;
- this.NotifyDebugger(new JScriptAction(1010));
- }
-
- RemoveRelation(this);
- return var2;
- }
-
- public final int DoCompileAndRunModSync_CTOJ(JScriptRunParam var1) {
- AddRelation(this);
- if (this.DoCompileModSync(var1.aModule, true)) {
- RemoveRelation(this);
- return -7;
- } else {
- JScriptRuntimeInstance var2 = this.DoRunModSyncRTI_CTOJ(var1);
- RemoveRelation(this);
- int var3 = 0;
- if (var2 != null) {
- var3 = var2.GetErrorCode();
- }
-
- if (var1.aRetStrg != null) {
- JSbxValue var4 = var2.GetReturnValue();
- if (var4 != null) {
- try {
- var1.aRetStrg.SetValue(var4.GetString());
- } catch (JSbxException var5) {
- }
- }
- }
-
- if (var1.aErrInFirstStmt != null) {
- var1.aErrInFirstStmt.SetValue(var3 != 0 && var2.GetStatementCount() == 1);
- }
-
- return var3;
- }
- }
-
- public int CreateAndRunModule_CTOJ(String var1, String var2, JScriptRunParam var3) {
- JScriptModule var4 = this.MakeModule(var1);
- var4.SetName(var2);
- var3.aModule = var4;
- var3.bRunAsThread = true;
- return this.DoCompileAndRunModSync_CTOJ(var3);
- }
-
- public Object DoRunScriptSync_CTOJ(String var1, JScriptRunParam var2) {
- AddRelation(this);
- JScriptModule var3 = new JScriptModule("(JavaScript Event)", var1);
- var2.aModule = var3;
- var2.bRunAsThread = true;
- int var4 = this.DoCompileAndRunModSync_CTOJ(var2);
- if (var2.aErrCode != null) {
- var2.aErrCode.SetValue(var4);
- }
-
- RemoveRelation(this);
- return var3;
- }
-
- private final SJJob DoCompileMod(JScriptModule var1, boolean var2) {
- var1.ClrForCompile();
- SJJob var3 = new SJJob(this, this.nActJobID++);
- if (var2) {
- this.AddBackgroundCompileToJob(var3, var1);
- } else {
- this.AddCompileToJob(var3, var1);
- }
-
- this.StartJob(var3);
- return var3;
- }
-
- private final boolean DoCompileModSync(JScriptModule var1, boolean var2) {
- var1.ClrForCompile();
-
- try {
- this.aCompiler.Compile(var1, true);
- } catch (JScriptTokenizerException var6) {
- JScriptTokenPosition var4 = var6.GetErrorPosition();
- String var5;
- if (var4 != null) {
- var5 = " --> line=" + var4.GetLine() + " col=" + var4.GetCol();
- } else {
- var5 = " --> no valid position";
- }
-
- HoldJavaEnvironment.AddToProtocol("Compiler-Error: " + var6);
- HoldJavaEnvironment.AddToProtocol("-->" + var5);
- this.SetLastError(var6 + var5);
- return true;
- } catch (Throwable var7) {
- HoldJavaEnvironment.AddToProtocol("Compiler-Error: " + var7);
- }
-
- return false;
- }
-
- public final void DoCompileActMod() {
- this.DoCompileModSync(this.GetActModule(), false);
- if (aWindowInterface != null) {
- aWindowInterface.UpDateIDE();
- }
-
- }
-
- public final void DoRunActMod() {
- SJJob var1 = new SJJob(this, this.nActJobID++);
- JScriptAction var2 = new JScriptAction(211);
- this.SetObjectsAtMessage(var1, var2, (JScriptModule)null);
- var1.AddMessage(var2, this);
- this.StartJob(var1);
- }
-
- public final void DoCompileAndRunActMod() {
- this.GetActModule().ClrForCompile();
- this.CheckMTCompiler();
- SJJob var1 = new SJJob(this, this.nActJobID++);
- SJCondition var2 = this.AddCompileToJob(var1, this.GetActModule());
- JScriptAction var3 = new JScriptAction(211);
- this.SetObjectsAtMessage(var1, var3, (JScriptModule)null);
- var1.AddCondMessage(var3, this, var2);
- this.StartJob(var1);
- }
-
- public final void DoDebugActMod() {
- SJJob var1 = new SJJob(this, this.nActJobID++);
- var1.AddMessage(new JScriptAction(214), this);
- this.StartJob(var1);
- }
-
- public final void DoCompileAndDebugActMod() {
- this.DoCompileAndDebugMod(this.GetActModule(), (JSbxObject)null);
- }
-
- private final void DoCompileAndDebugMod(JScriptModule var1, JSbxObject var2) {
- var1.ClrForCompile();
- this.CheckMTCompiler();
- SJJob var3 = new SJJob(this, this.nActJobID++);
- SJCondition var4 = this.AddCompileToJob(var3, var1);
- var3.AddCondMessage(new JScriptAction(214, var2), this, var4);
- this.StartJob(var3);
- }
-
- public final void CreateUpDateIDEWindow(String var1) {
- this.CreateUpDateIDEWindow();
- if (this.aDebugOutputStream != null) {
- this.aDebugOutputStream.println(var1);
- }
-
- }
-
- public final void CreateUpDateIDEWindow() {
- if (aWindowInterface == null) {
- aWindowInterface = new JScriptIDEWindow(this);
- } else {
- aWindowInterface.SetJScriptManager(this);
- aWindowInterface.ShowStatus("Manager changed...");
- }
-
- this.bStartIDE = true;
- aWindowInterface.StartIDE();
- this.aDebugOutputStream = new SJDbgPrintStream(aWindowInterface.GetOutputField());
- this.SetDebug(true, true, this.aDebugOutputStream);
- }
-
- protected void ProcessMessage(SJMessage var1) {
- if (var1 instanceof JScriptAction) {
- JScriptAction var2 = (JScriptAction)var1;
- switch (((SJMessage)var2).GetID()) {
- case 202:
- if (aWindowInterface != null) {
- aWindowInterface.UpDateIDE();
- }
- break;
- case 203:
- this.ClearRuntimeInfos();
- this.RemoveRTI((JScriptRuntimeInstance)((SJMessage)var2).GetObject(0));
- if (aWindowInterface != null) {
- aWindowInterface.DebugActionFinished();
- aWindowInterface.DoRunDone();
- }
- break;
- case 206:
- if (aWindowInterface != null) {
- aWindowInterface.DoCompileStart();
- }
-
- var1.Acknowledge();
- break;
- case 207:
- if (aWindowInterface != null) {
- aWindowInterface.DoCompileDone();
- }
-
- var1.Acknowledge();
- break;
- case 208:
- if (aWindowInterface != null) {
- aWindowInterface.DoCompileError();
- }
-
- var1.Acknowledge();
- break;
- case 211:
- if (aWindowInterface != null) {
- aWindowInterface.DoRunStart();
- }
-
- this.AsyncRunModule(this.GetActModule(), var1);
- break;
- case 213:
- if (aWindowInterface != null) {
- aWindowInterface.SetCodeBlock((JScriptCodeBlock)((SJMessage)var2).GetObject(0));
- }
- break;
- case 214:
- if (aWindowInterface != null) {
- aWindowInterface.DoDebugStart();
- }
-
- this.Browser_SetEnable(true);
- JSbxObject var3 = null;
- if (((SJMessage)var2).GetNoOfObjects() > 0) {
- var3 = (JSbxObject)((SJMessage)var2).GetObject(0);
- }
-
- this.StartDebuggerInstance(var3);
- var1.Acknowledge();
- break;
- case 215:
- this.AsyncRunModule((JScriptModule)((SJMessage)var2).GetObject(0), var1);
- break;
- case 216:
- this.AsyncRunThread((JScriptModule)((SJMessage)var2).GetObject(0), var1);
- case 217:
- default:
- break;
- case 218:
- this.RemoveRTI((JScriptRuntimeInstance)((SJMessage)var2).GetObject(0));
- break;
- case 220:
- this.UnBlockCallingThread();
- break;
- case 221:
- aWindowInterface.DebugActionFinished();
- break;
- case 5000:
- if (aWindowInterface != null) {
- aWindowInterface.ShowExpressionStackString((String)((SJMessage)var2).GetObject(1));
- aWindowInterface.ShowCallLevelStackString((String)((SJMessage)var2).GetObject(2));
- aWindowInterface.CheckAndSetSourceFromModule((JScriptModule)((SJMessage)var2).GetObject(4));
- aWindowInterface.CheckAndSetCodeBlock((JScriptCodeBlock)((SJMessage)var2).GetObject(5));
- aWindowInterface.ShowPCodePos(var2.GetInteger());
- aWindowInterface.ShowSourcePos((JScriptTokenPosition)((SJMessage)var2).GetObject(3));
- aWindowInterface.DebugActionFinished();
- }
- break;
- case 5002:
- if (aWindowInterface != null) {
- aWindowInterface.ClrPCodePos();
- aWindowInterface.ClrSourcePos();
- }
- break;
- case 5003:
- if (aWindowInterface != null) {
- if (((SJMessage)var2).GetNoOfObjects() > 0) {
- aWindowInterface.ShowStatus((String)((SJMessage)var2).GetObject(0));
- } else {
- aWindowInterface.ShowStatus(var2.GetInteger());
- }
- }
-
- var1.Acknowledge();
- break;
- case 5004:
- if (aWindowInterface != null) {
- aWindowInterface.ShowBrowserInfo((String)((SJMessage)var2).GetObject(0));
- }
- break;
- case 5005:
- if (aWindowInterface != null) {
- aWindowInterface.ShowBrowserWatch((String)((SJMessage)var2).GetObject(0));
- }
- break;
- case 5007:
- if (aWindowInterface != null) {
- aWindowInterface.ShowBrowserTitle((String)((SJMessage)var2).GetObject(0));
- }
- }
- }
-
- if (var1.GetNoOfObjects() > 0 && aWindowInterface != null) {
- Object var4 = var1.GetObject(0);
- switch (var1.GetID()) {
- case 10021:
- if (var4 instanceof JScriptDebugger) {
- aWindowInterface.UpDateIDE();
- }
-
- if (var4 instanceof JScriptCompiler) {
- aWindowInterface.UpDateIDE();
- }
- case 10022:
- default:
- break;
- case 10023:
- if (var4 instanceof JScriptDebugger) {
- this.Browser_SetEnable(false);
- aWindowInterface.DoDebugDone();
- this.aDebugger = null;
- }
-
- if (var4 instanceof JScriptCompiler) {
- this.aCompiler = null;
- aWindowInterface.UpDateIDE();
- }
- }
- }
-
- switch (var1.GetID()) {
- case 10011:
- case 10012:
- this.aJobList.removeElement(var1.GetObject(0));
- return;
- case 10031:
- aWindowInterface.ShowStatus("PING notified ");
- return;
- default:
- }
- }
-
- public void HandleAction(int var1) {
- switch (var1) {
- case 1:
- this.CreateUpDateIDEWindow();
- return;
- case 2:
- String var2 = JavaObjectHolder.DumpMemory();
- HoldJavaEnvironment.AddToProtocol(var2);
- return;
- case 3:
- HoldJavaEnvironment.setGlobalDbgFlag(true);
- HoldJavaEnvironment.AddToProtocol("global dbg-Flag SET");
- if (aWindowInterface != null) {
- aWindowInterface.ShowStatus("global dbg-Flag: " + HoldJavaEnvironment.getGlobalDbgFlag());
- return;
- }
- break;
- case 4:
- HoldJavaEnvironment.setGlobalDbgFlag(false);
- HoldJavaEnvironment.AddToProtocol("global dbg-Flag CLEARED");
- if (aWindowInterface != null) {
- aWindowInterface.ShowStatus("global dbg-Flag: " + HoldJavaEnvironment.getGlobalDbgFlag());
- return;
- }
- }
-
- }
-
- public void run() {
- if (this.bStartIDE) {
- this.CreateUpDateIDEWindow();
- } else {
- this.aDebugOutputStream = System.out;
- }
-
- this.SetDebug(true, true, this.aDebugOutputStream);
- if (this.aArgs != null) {
- for(int var1 = 0; var1 < this.aArgs.length; ++var1) {
- aWindowInterface.LoadFile(this.aArgs[var1]);
- }
- }
-
- super.run();
- this.RemoveAllReferences();
- }
-
- private final JScriptRuntimeInstance AsyncRunModule(JScriptModule var1, SJMessage var2) {
- JScriptRunParam var3 = new JScriptRunParam();
- var3.aModule = var1;
- var3.aMsg = var2;
- var3.bCreateThread = true;
- return this.SyncAsyncRun(var3);
- }
-
- private final JScriptRuntimeInstance AsyncRunThread(JScriptModule var1, SJMessage var2) {
- JScriptRunParam var3 = new JScriptRunParam();
- var3.aModule = var1;
- var3.aMsg = var2;
- var3.bRunAsThread = true;
- var3.bCreateThread = true;
- return this.SyncAsyncRun(var3);
- }
-
- private final JScriptRuntimeInstance SyncAsyncRun(JScriptRunParam var1) {
- if (var1 == null) {
- return null;
- } else {
- JScriptRuntimeInstance var2 = this.CreateNewRTI(false, var1.aThisObj != null, var1.aTask, var1);
- var1.aRTI = var2;
- var2.SetThisObj(var1.aThisObj);
- var2.SetModule(var1.aModule);
- var2.SetMessageToAcknowledge(var1.aMsg);
- if (var1.bRunAsThread) {
- var2.SetRTIAsThread();
- } else {
- var2.SetRTIAsProcess();
- }
-
- if (this.aDebugger != null) {
- var2.SetDebugInterface(this.aDebugger);
- }
-
- Object var3 = null;
- Object var4 = null;
- String var6;
- if (var1.aModule != null) {
- var6 = var1.aModule.GetName();
- } else {
- var6 = "module_is_empty";
- }
-
- if (var1.bCreateThread) {
- Thread var5 = new Thread(this.aManagerThreadGroup, var2, new String("RT-Instance (started from: " + var6 + ")"));
- if (var1.aMsg.GetNoOfObjects() > 1 && var1.aMsg.GetObject(1) instanceof SJJob) {
- ((SJJob)var1.aMsg.GetObject(1)).NewThreadCreated(var5);
- }
-
- var5.start();
- } else {
- var2.run();
- this.DestroyRTI(var2);
- }
-
- return var2;
- }
- }
-
- public final JScriptRuntimeInstance CreateNewRTI(boolean var1, boolean var2, JScriptScheduler var3, JScriptRunParam var4) {
- JScriptRuntimeInstance var5 = new JScriptRuntimeInstance(this, var1, var2, var3, var4);
- var5.SetDebugStream(this.aDebugOutStream);
- var5.SetMessageHandlerInterface(this);
- this.AddRTI(var5);
- return var5;
- }
-
- public final void DestroyRTI(JScriptRuntimeInstance var1) {
- this.RemoveRTI(var1);
- }
-
- private final void CompileModule(JScriptModule var1, boolean var2) {
- var1.ClrForCompile();
- this.NotifyCompiler(new JScriptAction(2002, var1));
- }
-
- public static void RuntimeCompile(String var0, JScriptModule var1, JScriptCodeBlock var2, JScriptMethod var3, boolean var4) {
- JScriptCompiler var5 = GetMyJScriptManager().GetMTCompiler();
-
- try {
- var5.RuntimeCompile(var0, var1, var2, var3, var4);
- } catch (JScriptParserException var7) {
- System.out.println("Error in RuntimeCompile(): " + ((Throwable)var7).getMessage());
- }
- }
-
- private final JScriptCompiler GetMTCompiler() {
- return this.aCompiler;
- }
-
- private final void CheckMTCompiler() {
- if (this.aCompiler == null || !this.aCompiler.IsRunningInOwnThread()) {
- this.aCompiler = new JScriptCompiler(this, this.aManagerThreadGroup);
- this.aCompiler.SetDebug(true, true, this.aDebugOutputStream);
- }
-
- }
-
- private final void StartDebuggerInstance(JSbxObject var1) {
- if (this.aDebugger == null) {
- this.StartDebugger(var1);
- }
-
- }
-
- private final void StartDebugger(JSbxObject var1) {
- if (this.aBrowser == null) {
- this.aBrowser = new JScriptBrowser(this, this.aManagerThreadGroup);
- this.aBrowserStrg = "<empty>";
- }
-
- this.Browser_SetEnable(true);
- String var2 = new String("JavaScript Debugger ID=" + 1);
- JScriptRuntimeInstance var3 = this.CreateNewRTI(true, var1 != null, (JScriptScheduler)null, (JScriptRunParam)null);
- var3.SetThisObj(var1);
- this.aDebugger = new JScriptDebugger(this, var3, var2, this.aManagerThreadGroup);
- }
-
- public PrintStream GetOutputStream() {
- return this.aDebugOutputStream;
- }
-
- public void SetDebug(boolean var1, boolean var2, PrintStream var3) {
- this.aDebugOutStream = var3;
- JScriptCompiler var4 = this.GetMTCompiler();
- if (var4 != null) {
- var4.SetDebug(var1, var2, var3);
- }
-
- }
-
- private final JScriptAction GenShowStatusMsg(String var1) {
- return new JScriptAction(5003, var1);
- }
-
- private final SJCondition AddCompileToJob(SJJob var1, JScriptModule var2) {
- SJCondition var3 = var1.AddMessage(new JScriptAction(206), this);
- var3 = var1.AddCondMessage(new JScriptAction(2002, var2), this.GetMTCompiler(), var3);
- var3 = var1.AddCondMessage(new JScriptAction(207), this, var3);
- return var3;
- }
-
- private final SJCondition AddBackgroundCompileToJob(SJJob var1, JScriptModule var2) {
- SJCondition var3 = var1.AddMessage(new JScriptAction(2002, var2), this.GetMTCompiler());
- return var3;
- }
-
- private final void ClearRuntimeInfos() {
- if (aWindowInterface != null) {
- aWindowInterface.ShowExpressionStackString((String)null);
- aWindowInterface.ShowCallLevelStackString((String)null);
- }
-
- }
-
- private final void InitData() {
- HoldJavaEnvironment.AddCallBackListener(1, this, "start IDE");
- HoldJavaEnvironment.AddCallBackListener(2, this, "dump C++ memory");
- HoldJavaEnvironment.AddCallBackListener(3, this, "set dbg-Flag");
- HoldJavaEnvironment.AddCallBackListener(4, this, "clear dbg-Flag");
- this.nNoOfActModule = 0;
- this.aActEventModule = null;
- this.aCompiler = null;
- this.aDebugger = null;
- this.aBrowser = null;
- this.aBrowserStrg = null;
- this.aArgs = null;
- this.bStartIDE = true;
- this.aModVector = new JSbxVector(5);
- this.aJobList = new Vector(3);
- this.nActJobID = 0;
- this.aRTIList = new Vector(3);
- ++nJSM_Count;
- this.SetSysExitFlag(true);
- this.UpdateNativeInterface((JavaScript)null);
- }
-
- public static final JScriptManager GetMyJScriptManager() {
- Thread var0 = Thread.currentThread();
- Vector var1 = aManagerThreadRelationList;
- synchronized(var1){}
-
- try {
- int var3 = aManagerThreadRelationList.size();
-
- for(int var4 = var3 - 1; var4 >= 0; --var4) {
- JScriptManagerThreadRelation var5 = (JScriptManagerThreadRelation)aManagerThreadRelationList.elementAt(var4);
- if (var5.aThread == var0) {
- JScriptManager var6 = var5.aManager;
- return var6;
- }
- }
- } catch (Throwable var13) {
- throw var13;
- }
-
- ThreadGroup var14 = var0.getThreadGroup();
- Vector var2 = aJSManagerList;
- synchronized(var2){}
-
- try {
- int var15 = aJSManagerList.size();
-
- for(int var16 = 0; var16 < var15; ++var16) {
- JScriptManager var17 = (JScriptManager)aJSManagerList.elementAt(var16);
- if (var17.GetThreadGroup() == var14) {
- JScriptManager var7 = var17;
- return var7;
- }
- }
-
- return null;
- } catch (Throwable var12) {
- throw var12;
- }
- }
-
- public static JSbxObject GetMyRootObject() {
- JScriptManager var0 = GetMyJScriptManager();
- return var0 == null ? null : var0.GetRootObject();
- }
-
- public static JSbxObject GetMyDocumentObject() {
- JScriptManager var0 = GetMyJScriptManager();
- return var0 == null ? null : var0.GetDocumentObject();
- }
-
- public static JSbxObject GetMyFormObject(JSbxObject var0) {
- JScriptManager var1 = GetMyJScriptManager();
- return var1 == null ? null : var1.GetFormObject(var0);
- }
-
- public static JSbxObject GetMyTopObject() {
- JScriptManager var0 = GetMyJScriptManager();
- return var0 == null ? null : var0.GetTopObject(GetMyRootObject());
- }
-
- public static JScriptRuntimeInstance GetMyActRuntimeInstance() {
- JScriptManager var0 = GetMyJScriptManager();
- return var0 == null ? null : var0.GetActJScriptRuntimeInstance();
- }
-
- public static JScriptCallLevelInstance GetMyActCallLevelInst() {
- JScriptRuntimeInstance var0 = GetMyActRuntimeInstance();
- return var0 == null ? null : var0.GetActualCallLevelInst();
- }
-
- public final void SetRootObject(JSbxObject var1) {
- this.aRootObject = var1;
- this.aRootObject.setLifeConnectManager(this);
- }
-
- public final JSbxObject GetRootObject() {
- return this.aRootObject;
- }
-
- public final JSbxObject GetDocumentObject() {
- return this.GetNamedObjectFromObject("document", this.aRootObject);
- }
-
- public final JSbxObject GetFormObject(JSbxObject var1) {
- return this.GetNamedObjectFromObject("form", var1);
- }
-
- public final JSbxObject GetTopObject(JSbxObject var1) {
- JSbxObject var2 = this.GetNamedObjectFromObject("top", var1);
- return var2;
- }
-
- private final JSbxObject GetNamedObjectFromObject(String var1, JSbxObject var2) {
- if (var2 != null) {
- JSbxProperty var3 = var2.Get(var1, false);
- if (var3 != null) {
- JSbxValue var4 = new JSbxValue();
-
- try {
- var3.Get(var4);
- if (var4 != null) {
- JSbxBase var5 = var4.GetObject();
- if (var5 instanceof JSbxObject) {
- return (JSbxObject)var5;
- }
- }
- } catch (JSbxException var6) {
- return null;
- }
- }
- }
-
- return null;
- }
-
- public final ThreadGroup GetParentThreadGroup() {
- return this.aParentThreadGroup;
- }
-
- public final ThreadGroup GetThreadGroup() {
- return this.aManagerThreadGroup;
- }
-
- private final JScriptModule GetModule(int var1) {
- return (JScriptModule)this.aModVector.Get(var1);
- }
-
- public final JScriptModule GetActModule() {
- return this.aActEventModule != null ? this.aActEventModule : this.GetModule(this.nNoOfActModule);
- }
-
- public final void SetLastModuleAsActive() {
- this.nNoOfActModule = this.GetModuleCount() - 1;
- }
-
- public final void SetNextModule() {
- if (this.nNoOfActModule < this.GetModuleCount() - 1) {
- ++this.nNoOfActModule;
- } else {
- this.nNoOfActModule = 0;
- }
- }
-
- public final void SetActModuleNo(int var1) {
- if (var1 >= 0 && var1 < this.GetModuleCount()) {
- this.nNoOfActModule = var1;
- }
-
- }
-
- public final void SetAsActModule(JScriptModule var1) {
- this.SetAsActModuleChanged(var1);
- }
-
- private final boolean SetAsActModuleChanged(JScriptModule var1) {
- boolean var2 = true;
-
- for(int var3 = 0; var3 < this.GetModuleCount(); ++var3) {
- if (this.GetModule(var3) == var1) {
- if (var3 == this.nNoOfActModule) {
- var2 = false;
- }
-
- this.SetActModuleNo(var3);
- break;
- }
- }
-
- return var2;
- }
-
- public final int GetModuleCount() {
- return this.aModVector.GetSize();
- }
-
- public final void DeleteModule(JScriptModule var1) {
- this.aModVector.Delete(var1);
- }
-
- public final void DeleteAllModules() {
- this.aModVector.Clear();
- }
-
- private final void SetWindowInterface(JScriptIDEWindow var1) {
- aWindowInterface = var1;
- }
-
- private final JScriptIDEWindow GetWindowInterface() {
- return aWindowInterface;
- }
-
- public final JScriptErrorLog GetErrorLog() {
- return this.aErrorLog;
- }
-
- public final void ShowStatusMessage(String var1) {
- if (aWindowInterface != null) {
- aWindowInterface.ShowStatus(var1);
- }
-
- }
-
- public final void CloseIDEWindow() {
- if (aWindowInterface != null) {
- aWindowInterface.CloseIDE();
- }
-
- }
-
- public JScriptImageObject CreateImage(int var1, int var2) {
- return this.aJavaScriptObj != null ? this.aJavaScriptObj.CreateImage(var1, var2) : null;
- }
- }
-