public static SObject NameOf(ScriptProcessor processor, SObject instance, SObject This, SObject[] parameters) { if (parameters.Length == 0) return processor.Undefined; if (parameters[0] is SProtoObject) { var protoObj = (SProtoObject)parameters[0]; return processor.CreateString(protoObj.IsProtoInstance ? protoObj.Prototype.Name : protoObj.TypeOf()); } else { return processor.CreateString(parameters[0].TypeOf()); } }
public static SObject NameOf(ScriptProcessor processor, SObject instance, SObject This, SObject[] parameters) { if (parameters.Length == 0) { return(processor.Undefined); } if (parameters[0] is SProtoObject) { var protoObj = (SProtoObject)parameters[0]; return(processor.CreateString(protoObj.IsProtoInstance ? protoObj.Prototype.Name : protoObj.TypeOf())); } else { return(processor.CreateString(parameters[0].TypeOf())); } }
public static SObject ToPrimitive(ScriptProcessor processor, SObject instance, SObject This, SObject[] parameters) { if (parameters.Length == 0) { return(processor.Undefined); } if (parameters[0] is SString) { return(processor.CreateString(((SString)parameters[0]).Value)); } else if (parameters[0] is SNumber) { return(processor.CreateNumber(((SNumber)parameters[0]).Value)); } else if (parameters[0] is SBool) { return(processor.CreateBool(((SBool)parameters[0]).Value)); } else { return(parameters[0]); // returns the input object, if no conversion was conducted. } }
public static SObject ToPrimitive(ScriptProcessor processor, SObject instance, SObject This, SObject[] parameters) { if (parameters.Length == 0) return processor.Undefined; if (parameters[0] is SString) return processor.CreateString(((SString)parameters[0]).Value); else if (parameters[0] is SNumber) return processor.CreateNumber(((SNumber)parameters[0]).Value); else if (parameters[0] is SBool) return processor.CreateBool(((SBool)parameters[0]).Value); else return parameters[0]; // returns the input object, if no conversion was conducted. }
public static SObject TypeOf(ScriptProcessor processor, SObject instance, SObject This, SObject[] parameters) => parameters.Length == 0 ? processor.Undefined : processor.CreateString(parameters[0].TypeOf());
/// <summary> /// Throws an error with the given <see cref="ErrorType"/> and error message. /// </summary> public SObject ThrowError(ErrorType errorType, string message, params object[] messageArgs) { var strErrorType = errorType.ToString(); var formattedMessage = string.Format(message, messageArgs); var errorObject = _processor.Context.CreateInstance("Error", new SObject[] { _processor.CreateString(formattedMessage), _processor.CreateString(errorType.ToString()), _processor.CreateNumber(_processor.GetLineNumber()) }); return(ThrowError(errorObject)); }