public static object GetValue(ExecutionContext GLOBAL, object reference) { Reference refer = reference as Reference; if (refer == null) { return(reference); } JSObjectBase baseOb = refer.GetBase(); if (baseOb == null) { baseOb = GLOBAL.jobject; } JSProperty prop = baseOb.GetItem(GLOBAL, refer.GetPropertyName()); if (prop == null && baseOb == GLOBAL.jobject) { throw new ReferenceError(baseOb.ToString() + " of type " + baseOb.Class + " doesn't have a " + (refer != null ? refer.GetPropertyName() : reference.ToString()) + " property."); } else if (prop == null) { return(JSUndefined.Undefined); } else { return(prop.GetValue(GLOBAL)); } }
public override string ToString() { return("{ base: " + (mBase == null ? "(null)" : mBase.ToString()) + ", propName: " + GetPropertyName() + " }"); }