home *** CD-ROM | disk | FTP | other *** search
- class JScriptCallLevelInstance extends JSbxObject implements JSbxPropertyInterface {
- public static final String ARGUMENTS_NAME = "arguments";
- public static final String LENGTH_NAME = "length";
- private JSbxObject aLocalVarObject;
- private JScriptRuntimeInstance aRuntime;
- private JScriptMethod aMethod;
- private JSbxObject aThisObj;
- private JScriptArgumentsObject aArgObject;
- private JSbxProperty aArgObjectProp;
- private JSbxStack aForInStack;
- public int nCall;
-
- public JSbxObject GetLocalVarObject() {
- return this.aLocalVarObject;
- }
-
- public JScriptMethod GetMethod() {
- return this.aMethod;
- }
-
- public JSbxObject GetThisObj() {
- return this.aThisObj;
- }
-
- public JScriptArgumentsObject GetArgumentsObject() {
- return this.aArgObject;
- }
-
- public JSbxProperty GetArgumentsProperty() {
- return this.aArgObjectProp;
- }
-
- public JSbxStack GetForInStack() {
- if (this.aForInStack == null) {
- this.aForInStack = new JSbxStack(5);
- }
-
- return this.aForInStack;
- }
-
- public void InitForIn(JSbxProperty var1, JSbxObject var2) {
- JScriptForInRuntimeItem var3 = new JScriptForInRuntimeItem(var1, var2);
- this.GetForInStack().Push(var3);
- }
-
- public boolean NextForIn() throws JSbxException {
- JScriptForInRuntimeItem var1 = (JScriptForInRuntimeItem)this.GetForInStack().Peek();
- JSbxObject var2 = var1.aForInObj;
- if (var2 == null) {
- return false;
- } else {
- int var3 = var1.nNextPropIndex++;
- JSbxProperty var4 = var2.GetHistoryArrayEntry(var3);
- if (var4 != null) {
- JSbxValue var5 = new JSbxValue(var4.GetName());
- var1.aForInProp.Put(var5);
- return true;
- } else {
- return false;
- }
- }
- }
-
- public void ClrForIn() {
- this.GetForInStack().Pop();
- }
-
- public JScriptCallLevelInstance(JScriptRuntimeInstance var1, int var2) {
- this.aRuntime = var1;
- this.aArgObject = new JScriptArgumentsObject(this);
- this.aArgObjectProp = new JSbxValueProperty("arguments", (JSbxObject)null, new JSbxValue(this.aArgObject));
- this.nCall = var2;
- }
-
- public void DeInitCall() {
- super.aNameArray = null;
- super.aSearchObjectStack = null;
- super.aHistoryArray = null;
- this.aLocalVarObject = null;
- if (this.aMethod.pPropUser == this) {
- this.aMethod.pPropUser = null;
- }
-
- }
-
- public void InitCall(JScriptMethod var1, JScriptCallParam var2, boolean var3) throws JSbxException {
- JScriptManager var4 = this.aRuntime.GetJSManager();
- JSbxVector var5 = var2.GetParamVector();
- this.aMethod = var1;
- this.aThisObj = var2.GetThisObj();
- if (this.aThisObj == null) {
- this.aThisObj = var4.GetRootObject();
- }
-
- this.aLocalVarObject = new JSbxObject();
- int var6 = var5 != null ? var5.GetSize() : 0;
- if (var6 > 0) {
- for(int var7 = 0; var7 < var6; ++var7) {
- JSbxValue var8 = (JSbxValue)var5.Get(var7);
- JSbxValueProperty var9 = (JSbxValueProperty)((JSbxObject)this).GetIndexArray().Get(var7);
- if (var9 == null) {
- var9 = new JSbxValueProperty(String.valueOf(var7), this.aMethod, var8);
- ((JSbxObject)this).GetIndexArray().Put(var7, var9);
- } else {
- var9.SetValue(var8);
- this.aArgObjectProp.SetThisParentObj(this.aMethod);
- }
- }
- }
-
- boolean var15 = false;
- if (this.aMethod.pPropUser == null) {
- this.aMethod.pPropUser = this;
- var15 = true;
- }
-
- String[] var16 = this.aMethod.GetParameterList();
- if (var16 != null) {
- int var18 = var16.length;
-
- for(int var10 = 0; var10 < var18; ++var10) {
- Object var11;
- if (var10 < var6) {
- if (var15) {
- var11 = this.aMethod.aObjectPropBuffer[var10];
- ((JSbxObjectProperty)var11).SetValueInterface(this);
- } else {
- var11 = new JSbxObjectProperty(var16[var10], this.aMethod, this, var10);
- }
- } else if (var15) {
- var11 = this.aMethod.aValuePropBuffer[var10];
- ((JSbxValueProperty)var11).SetValue((JSbxValue)null);
- } else {
- var11 = new JSbxValueProperty(var16[var10], this.aMethod, new JSbxValue());
- }
-
- this.aLocalVarObject.GetNameArray().Put((JSbxProperty)var11);
- }
- }
-
- String[] var19 = this.aMethod.GetLocalVarList();
- if (var19 != null) {
- int var20 = var19.length;
-
- for(int var22 = 0; var22 < var20; ++var22) {
- JSbxValueProperty var12;
- if (var15) {
- var12 = this.aMethod.aLocalVarPropBuffer[var22];
- ((JSbxValueProperty)var12).SetValue((JSbxValue)null);
- } else {
- var12 = new JSbxValueProperty(var19[var22], this.aMethod, new JSbxValue());
- }
-
- try {
- this.aLocalVarObject.GetNameArray().Put(var12);
- } catch (JSbxException var14) {
- if (((JSbxExceptionBase)var14).GetError() != 4714) {
- throw var14;
- }
- }
- }
- }
-
- if (!this.aMethod.IsModuleCodeFunction()) {
- this.aArgObject.InitCall(var6, this.aMethod);
- this.aArgObjectProp.SetThisParentObj(this.aMethod);
- this.aLocalVarObject.GetNameArray().Put(this.aArgObjectProp);
- if (!this.aMethod.bHasLengthAsParam) {
- this.aLocalVarObject.GetNameArray().Put(this.aArgObject.GetParamCountProp());
- }
- }
-
- JSbxObject var21 = this.GetActualRootObject(this.aRuntime);
- ((JSbxObject)this).PushSearchObject(var21);
- if (var3) {
- JSbxObject var23 = var4.GetDocumentObject();
- if (var23 != this.aThisObj) {
- ((JSbxObject)this).PushSearchObject(var23);
- }
-
- JSbxObject var24 = var4.GetFormObject(this.aThisObj);
- if (var24 != null && var24 != this.aThisObj) {
- ((JSbxObject)this).PushSearchObject(var24);
- }
-
- if (this.aThisObj != var21) {
- ((JSbxObject)this).PushSearchObject(this.aThisObj);
- }
- }
-
- ((JSbxObject)this).PushSearchObject(this.aLocalVarObject);
- }
-
- public JSbxObject GetActualRootObject(JScriptRuntimeInstance var1) {
- JScriptManager var2 = var1.GetJSManager();
- if (this.aMethod instanceof JScriptFunctionObject) {
- return var2.GetRootObject();
- } else {
- JScriptModule var3 = this.aMethod.GetModule();
- JScriptManager var4 = null;
- JSbxObject var5 = null;
- if (var3 != null) {
- var4 = var3.GetJSManager();
- }
-
- if (var4 != null) {
- var5 = var4.GetRootObject();
- }
-
- return var5 != null ? var5 : var2.GetRootObject();
- }
- }
-
- public JSbxProperty Get(String var1, boolean var2) {
- return ((JSbxObject)this).SearchObjectStack(var1, var2);
- }
-
- public void PropertyGet(JSbxObjectProperty var1, JSbxValue var2) throws JSbxException {
- JSbxProperty var3 = ((JSbxObject)this).Get(var1.GetID());
- var3.Get(var2);
- }
-
- public void PropertyPut(JSbxObjectProperty var1, JSbxValue var2) throws JSbxException {
- JSbxProperty var3 = ((JSbxObject)this).Get(var1.GetID());
- var3.Put(var2);
- }
-
- public JSbxValue PropertyCallFunction(JSbxObjectProperty var1, JScriptCallParam var2) throws JSbxExceptionBase {
- JSbxProperty var3 = ((JSbxObject)this).Get(var1.GetID());
- return var3.CallFunction(var2);
- }
-
- public String Property_GetJScript_typeofString(JSbxObjectProperty var1) {
- JSbxProperty var2 = ((JSbxObject)this).Get(var1.GetID());
- return var2.GetJScript_typeofString();
- }
- }
-