home *** CD-ROM | disk | FTP | other *** search
/ PC Online 1997 August / PCO0897.ISO / filesbbs / os2 / fp1os2.arj / OS2 / DATA / 49 / C / 0 / F_26836 / JScriptBuildInFunctionHandler.class (.txt) < prev    next >
Encoding:
Java Class File  |  1997-05-15  |  7.3 KB  |  303 lines

  1. public class JScriptBuildInFunctionHandler implements JSbxPropertyInterface {
  2.    public static final int BUILD_IN_PARSEINT = 1;
  3.    public static final int BUILD_IN_PARSEFLOAT = 2;
  4.    public static final int BUILD_IN_ISNAN = 3;
  5.    public static final int BUILD_IN_EVAL = 4;
  6.    public static final int BUILD_IN_ALERT = 5;
  7.    public static final int BUILD_IN_PROMPT = 6;
  8.    public static final int BUILD_IN_SETTIMEOUT = 7;
  9.    public static final int BUILD_IN_CLEARTIMEOUT = 8;
  10.    public static final int BUILD_IN_CONFIRM = 9;
  11.    public static final int BUILD_IN_ESCAPE = 10;
  12.    public static final int BUILD_IN_TAINT = 11;
  13.    public static final int BUILD_IN_UNTAINT = 12;
  14.    public static final int BUILD_IN_UNESCAPE = 13;
  15.    public static final int BUILD_IN_THREAD = 128;
  16.    public static final int BUILD_IN_DELAY = 129;
  17.    public static final int BUILD_IN_DEBUG = 130;
  18.    public static final int BUILD_IN_AUTOREN = 131;
  19.    public static final int BUILD_IN_DBGDOCUMENT = 132;
  20.    public static final int BUILD_IN_SUSPENDTHREAD = 133;
  21.    public static final int BUILD_IN_RESUMETHREAD = 134;
  22.    public static final int BUILD_IN_STOPTHREAD = 135;
  23.    public static final int BUILD_IN_STARTIDE = 136;
  24.    public static final String BUILD_IN_THREAD_STRG = "_thread";
  25.    public static final String BUILD_IN_SUSPENDTHREAD_STRG = "_suspend_thread";
  26.    public static final String BUILD_IN_RESUMETHREAD_STRG = "_resume_thread";
  27.    public static final String BUILD_IN_STOPTHREAD_STRG = "_stop_thread";
  28.    public static final String BUILD_IN_DELAY_STRG = "_delay";
  29.    public static final String BUILD_IN_STARTIDE_STRG = "_startide";
  30.    private int nTimeoutNo = 0;
  31.  
  32.    public JSbxValue PropertyCallFunction(JSbxObjectProperty var1, JScriptCallParam var2) throws JSbxExceptionBase {
  33.       JSbxVector var3 = var2.GetParamVector();
  34.       int var4 = var3 != null ? var3.GetSize() : 0;
  35.       int var5 = var1.GetID();
  36.       JSbxValue var6 = new JSbxValue();
  37.       switch (var5) {
  38.          case 1:
  39.             String var21 = JScriptWindowObject.GetStringParam(var3, 0);
  40.             int var22 = 0;
  41.             int var35 = 0;
  42.             boolean var43 = true;
  43.             if (var4 > 1) {
  44.                var22 = (int)JScriptWindowObject.GetDoubleParam(var3, 1);
  45.             }
  46.  
  47.             while(var43 && var21.length() > 0) {
  48.                try {
  49.                   if (var4 == 1) {
  50.                      var35 = Integer.parseInt(var21);
  51.                   }
  52.  
  53.                   if (var4 > 1) {
  54.                      var35 = Integer.parseInt(var21, var22);
  55.                   }
  56.  
  57.                   var43 = false;
  58.                } catch (NumberFormatException var19) {
  59.                   var21 = var21.substring(0, var21.length() - 1);
  60.                }
  61.             }
  62.  
  63.             double var47 = Double.NaN;
  64.             if (!var43) {
  65.                var47 = (double)var35;
  66.             }
  67.  
  68.             var6 = new JSbxValue(var47);
  69.             break;
  70.          case 2:
  71.             boolean var20 = true;
  72.             double var8 = (double)0.0F;
  73.             if (var4 > 0) {
  74.                String var41 = JScriptWindowObject.GetStringParam(var3, 0);
  75.  
  76.                while(var20 && var41.length() > 0) {
  77.                   try {
  78.                      if (var4 > 0) {
  79.                         var8 = Double.valueOf(var41);
  80.                      }
  81.  
  82.                      var20 = false;
  83.                   } catch (NumberFormatException var18) {
  84.                      var41 = var41.substring(0, var41.length() - 1);
  85.                   }
  86.                }
  87.             }
  88.  
  89.             double var42 = Double.NaN;
  90.             if (!var20) {
  91.                var42 = var8;
  92.             }
  93.  
  94.             var6 = new JSbxValue(var42);
  95.             break;
  96.          case 3:
  97.             double var7 = JScriptWindowObject.GetDoubleParam(var3, 0);
  98.             var6 = new JSbxValue(Double.isNaN(var7));
  99.             break;
  100.          case 4:
  101.             if (var4 > 0) {
  102.                JSbxValue var34 = (JSbxValue)var3.Get(0);
  103.                if (var34 != null && var34.GetType() == 4) {
  104.                   String var40 = JScriptWindowObject.GetStringParam(var3, 0);
  105.                   var6 = EvaluateSourceCode(var40, var2.GetRuntimeParam().GetRuntimeInst());
  106.                }
  107.             }
  108.             break;
  109.          case 5:
  110.             String var33 = JScriptWindowObject.GetStringParam(var3, 0);
  111.             JScriptManager.ShowAlertBox(var33);
  112.             break;
  113.          case 6:
  114.             String var32 = "undefined";
  115.             String var39 = "undefined";
  116.             if (var4 > 0) {
  117.                var32 = JScriptWindowObject.GetStringParam(var3, 0);
  118.             }
  119.  
  120.             if (var4 > 1) {
  121.                var39 = JScriptWindowObject.GetStringParam(var3, 1);
  122.             }
  123.  
  124.             var6 = JScriptManager.ShowPromptBox(var32, var39);
  125.             break;
  126.          case 7:
  127.             if (var4 >= 2) {
  128.                String var31 = "_delay(" + JScriptWindowObject.GetStringParam(var3, 1) + "); " + JScriptWindowObject.GetStringParam(var3, 0);
  129.                JScriptModule var38 = new JScriptModule("(setTimeout-thread) no=" + this.nTimeoutNo++, var31);
  130.                JScriptManager var46 = JScriptManager.GetMyJScriptManager();
  131.                if (var46 == null) {
  132.                   throw new JSbxException(0, "bad arguments for setTimeout()");
  133.                }
  134.  
  135.                int var51 = var46.DoCompileAndRunModAsync(var38, true);
  136.                var6 = new JSbxValue((double)var51);
  137.                break;
  138.             }
  139.          case 8:
  140.             if (var4 < 1) {
  141.                throw new JSbxException(0, "bad arguments for clearTimeout()");
  142.             }
  143.  
  144.             JScriptManager var30 = JScriptManager.GetMyJScriptManager();
  145.             var30.DoKillJobWithID((int)JScriptWindowObject.GetDoubleParam(var3, 0));
  146.             break;
  147.          case 9:
  148.             String var29 = JScriptWindowObject.GetStringParam(var3, 0);
  149.             var6 = new JSbxValue(JScriptManager.ShowConfirmBox(var29));
  150.             break;
  151.          case 10:
  152.             if (var4 > 0) {
  153.                String var28 = JScriptWindowObject.GetStringParam(var3, 0);
  154.                StringBuffer var37 = new StringBuffer();
  155.                int var45 = var28.length();
  156.  
  157.                for(int var50 = 0; var50 < var45; ++var50) {
  158.                   char var52 = var28.charAt(var50);
  159.                   if ((var52 < 'a' || var52 > 'z') && (var52 < 'A' || var52 > 'Z') && (var52 < '0' || var52 > '9')) {
  160.                      var37.append("%" + Integer.toString(var52, 16));
  161.                   } else {
  162.                      var37.append(var52);
  163.                   }
  164.                }
  165.  
  166.                var6 = new JSbxValue(new String(var37));
  167.             }
  168.          case 11:
  169.          case 12:
  170.          case 132:
  171.          default:
  172.             break;
  173.          case 13:
  174.             if (var4 > 0) {
  175.                String var27 = JScriptWindowObject.GetStringParam(var3, 0);
  176.                String var36 = "";
  177.                int var44 = var27.length();
  178.                int var48 = 0;
  179.  
  180.                while(var48 < var44) {
  181.                   char var13;
  182.                   if ((var13 = var27.charAt(var48)) == '%') {
  183.                      ++var48;
  184.                      int var15 = var44 - var48;
  185.                      String var14;
  186.                      if (var15 > 1) {
  187.                         var14 = var27.substring(var48, var48 + 2);
  188.                         var48 += 2;
  189.                      } else {
  190.                         if (var15 != 1) {
  191.                            var36 = var36 + "" + var13;
  192.                            break;
  193.                         }
  194.  
  195.                         var14 = var27.substring(var48, var48 + 1);
  196.                         ++var48;
  197.                      }
  198.  
  199.                      try {
  200.                         var36 = var36 + "" + (char)Integer.parseInt(var14, 16);
  201.                      } catch (NumberFormatException var17) {
  202.                      }
  203.                   } else {
  204.                      var36 = var36 + "" + var13;
  205.                      ++var48;
  206.                   }
  207.                }
  208.  
  209.                var6 = new JSbxValue(var36);
  210.             } else {
  211.                var6 = new JSbxValue();
  212.             }
  213.             break;
  214.          case 128:
  215.             int var26 = -1;
  216.             String var10 = JScriptWindowObject.GetStringParam(var3, 0);
  217.             JScriptModule var11 = new JScriptModule("(thread)", var10);
  218.             JScriptManager var12 = JScriptManager.GetMyJScriptManager();
  219.             if (var12 != null) {
  220.                var26 = var12.DoCompileAndRunModAsync(var11, true);
  221.             }
  222.  
  223.             var6 = new JSbxValue((double)var26);
  224.             break;
  225.          case 129:
  226.             try {
  227.                System.currentTimeMillis();
  228.                Thread.sleep((long)((int)JScriptWindowObject.GetDoubleParam(var3, 0)));
  229.                System.currentTimeMillis();
  230.             } catch (InterruptedException var16) {
  231.             }
  232.             break;
  233.          case 130:
  234.             ThreadLister.listAllThreads(System.out);
  235.             break;
  236.          case 131:
  237.             var6 = new JSbxValue("(Star)JavaScript-Core wurde implementiert von Andreas Bregas und Michael Neuroth");
  238.             break;
  239.          case 133:
  240.             if (var4 < 1) {
  241.                throw new JSbxException(0, "bad arguments for _suspend_thread()");
  242.             }
  243.  
  244.             JScriptManager var25 = JScriptManager.GetMyJScriptManager();
  245.             var25.DoSuspendJobWithID((int)JScriptWindowObject.GetDoubleParam(var3, 0));
  246.             break;
  247.          case 134:
  248.             if (var4 < 1) {
  249.                throw new JSbxException(0, "bad arguments for _resume_thread()");
  250.             }
  251.  
  252.             JScriptManager var24 = JScriptManager.GetMyJScriptManager();
  253.             var24.DoResumeJobWithID((int)JScriptWindowObject.GetDoubleParam(var3, 0));
  254.             break;
  255.          case 135:
  256.             if (var4 < 1) {
  257.                throw new JSbxException(0, "bad arguments for _stop_thread()");
  258.             }
  259.  
  260.             JScriptManager var23 = JScriptManager.GetMyJScriptManager();
  261.             var23.DoKillJobWithID((int)JScriptWindowObject.GetDoubleParam(var3, 0));
  262.             break;
  263.          case 136:
  264.             JScriptManager var9 = JScriptManager.GetMyJScriptManager();
  265.             var9.CreateUpDateIDEWindow();
  266.       }
  267.  
  268.       var2.GetRuntimeParam().SetReturnValue(var6);
  269.       return var6;
  270.    }
  271.  
  272.    public static final JSbxValue EvaluateSourceCode(String var0, JScriptRuntimeInstance var1, boolean var2) throws JSbxExceptionBase {
  273.       JScriptModule var3 = new JScriptModule("(evaluate)", var0);
  274.       JScriptManager.RuntimeCompile(var0, var1.GetModule(), var3.GetCodeBlock(), (JScriptMethod)null, true);
  275.       var1.SetLastExpression((JSbxValue)null);
  276.       var1.ExecuteRuntimeCreatedModule(var3, var2);
  277.       JSbxValue var4 = var1.GetLastExpression();
  278.       if (var4 == null) {
  279.          var4 = new JSbxValue();
  280.       }
  281.  
  282.       return var4;
  283.    }
  284.  
  285.    public static final JSbxValue EvaluateSourceCode(String var0, JScriptRuntimeInstance var1) throws JSbxExceptionBase {
  286.       return EvaluateSourceCode(var0, var1, true);
  287.    }
  288.  
  289.    public void PropertyGet(JSbxObjectProperty var1, JSbxValue var2) throws JSbxException {
  290.    }
  291.  
  292.    public void PropertyPut(JSbxObjectProperty var1, JSbxValue var2) throws JSbxException {
  293.    }
  294.  
  295.    public String Property_GetJScript_typeofString(JSbxObjectProperty var1) {
  296.       return "function";
  297.    }
  298.  
  299.    public String GetJScript_typeofString() {
  300.       return "function";
  301.    }
  302. }
  303.