public IValue CallMethod(IValue target, string methodName, ScriptArray arguments = null) { var function = target.AsScriptObject().GetContextFunction(methodName); IValue retValue = ValueFactory.Create(); if (function != null) { retValue = ScriptInterpreter.Interpreter.FunctionCall(target.AsScriptObject(), function.Function); } return(retValue); }
public bool MethodExists(IValue target, string methodName) { var function = target.AsScriptObject().GetContextFunction(methodName); if (function != null) { return(true); } return(false); }
public bool ValueIsFilled(IValue value) { switch (value.BaseType) { case ValueTypeEnum.NULL: return(false); case ValueTypeEnum.BOOLEAN: return(true); case ValueTypeEnum.STRING: return(!String.IsNullOrWhiteSpace(value.AsString())); case ValueTypeEnum.NUMBER: return(value.AsNumber() != 0); case ValueTypeEnum.DATE: var emptyDate = new DateTime(1, 1, 1, 0, 0, 0); return(value.AsDate() != emptyDate); case ValueTypeEnum.SCRIPT_OBJECT: if (value.AsScriptObject().Instance != null) { if (typeof(IUniversalCollection).IsAssignableFrom(value.AsScriptObject().Instance.GetType())) { return((value.AsScriptObject().Instance as IUniversalCollection).Count() > 0); } else { return(false); } } else { return(false); } default: return(true); } }
public bool Equals(IValue other) { if (other is null) { return(false); } if (ReferenceEquals(this, other)) { return(true); } if (other.BaseType == ValueTypeEnum.SCRIPT_OBJECT) { return(_value.Module?.Name == other.AsScriptObject().Module?.Name&& _value.Instance == other.AsScriptObject().Instance); } return(false); }