home *** CD-ROM | disk | FTP | other *** search
/ PC Online 1999 November / PCONLINE_11_99.ISO / filesbbs / OS2 / APCHSSL2.ZIP / OS2HTTPD / jserv / com / netscape / javascript / NativeCall.class (.txt) < prev    next >
Encoding:
Java Class File  |  1999-04-09  |  2.9 KB  |  90 lines

  1. package com.netscape.javascript;
  2.  
  3. public final class NativeCall extends ScriptableObject {
  4.    NativeCall caller;
  5.    NativeFunction funObj;
  6.    Scriptable thisObj;
  7.    Object[] originalArgs;
  8.    public int debugPC;
  9.  
  10.    NativeCall getActivation(NativeFunction var1) {
  11.       NativeCall var2 = this;
  12.  
  13.       while(var2.funObj != var1) {
  14.          var2 = var2.caller;
  15.          if (var2 == null) {
  16.             return null;
  17.          }
  18.       }
  19.  
  20.       return var2;
  21.    }
  22.  
  23.    public NativeFunction getFunctionObject() {
  24.       return this.funObj;
  25.    }
  26.  
  27.    public Scriptable getThisObj() {
  28.       return this.thisObj;
  29.    }
  30.  
  31.    NativeCall(Context var1, Scriptable var2, NativeFunction var3, Scriptable var4, Object[] var5) {
  32.       this(var1, var2, var3, var4);
  33.       this.originalArgs = var5;
  34.       NativeFunction[] var6 = var3.nestedFunctions;
  35.       if (var6 != null) {
  36.          for(int var7 = 0; var7 < var6.length; ++var7) {
  37.             NativeFunction var8 = var6[var7];
  38.             if (var8.names != null) {
  39.                super.put(var8.names[0], this, var8);
  40.             }
  41.          }
  42.       }
  43.  
  44.       String[] var10 = var3.names;
  45.       if (var10 != null) {
  46.          for(int var11 = 0; var11 < var3.argCount; ++var11) {
  47.             Object var9 = var11 < var5.length ? var5[var11] : Undefined.instance;
  48.             super.put(var10[var11 + 1], this, var9);
  49.          }
  50.       }
  51.  
  52.       super.put("arguments", this, new Arguments(this));
  53.    }
  54.  
  55.    NativeCall(Context var1, Scriptable var2, NativeFunction var3, Scriptable var4) {
  56.       this.funObj = var3;
  57.       this.thisObj = var4;
  58.       ((ScriptableObject)this).setParentScope(var2);
  59.       this.caller = var1.currentActivation;
  60.       var1.currentActivation = this;
  61.    }
  62.  
  63.    private NativeCall() {
  64.    }
  65.  
  66.    public static Object js_Call(Context var0, Object[] var1, Function var2, boolean var3) {
  67.       if (!var3) {
  68.          Object[] var5 = new Object[]{"Call"};
  69.          throw Context.reportRuntimeError(Context.getMessage("msg.only.from.new", var5));
  70.       } else {
  71.          ScriptRuntime.checkDeprecated(var0, "Call");
  72.          NativeCall var4 = new NativeCall();
  73.          ((ScriptableObject)var4).setPrototype(ScriptableObject.getObjectPrototype(var2));
  74.          return var4;
  75.       }
  76.    }
  77.  
  78.    public NativeCall getCaller() {
  79.       return this.caller;
  80.    }
  81.  
  82.    public Object[] getOriginalArguments() {
  83.       return this.originalArgs;
  84.    }
  85.  
  86.    public String getClassName() {
  87.       return "Call";
  88.    }
  89. }
  90.