Rhino.BaseFunction.FindInstanceIdInfo C# (CSharp) Method

FindInstanceIdInfo() protected method

protected FindInstanceIdInfo ( string s ) : int
s string
return int
		protected internal override int FindInstanceIdInfo(string s)
		{
			int id;
			// #generated# Last update: 2007-05-09 08:15:15 EDT
			id = 0;
			string X = null;
			int c;
			switch (s.Length)
			{
				case 4:
				{
					X = "name";
					id = Id_name;
					goto L_break;
				}

				case 5:
				{
					X = "arity";
					id = Id_arity;
					goto L_break;
				}

				case 6:
				{
					X = "length";
					id = Id_length;
					goto L_break;
				}

				case 9:
				{
					c = s[0];
					if (c == 'a')
					{
						X = "arguments";
						id = Id_arguments;
					}
					else
					{
						if (c == 'p')
						{
							X = "prototype";
							id = Id_prototype;
						}
					}
					goto L_break;
				}
			}
L_break: ;
			if (X != null && X != s && !X.Equals(s))
			{
				id = 0;
			}
			goto L0_break;
L0_break: ;
			// #/generated#
			// #/string_id_map#
			if (id == 0)
			{
				return base.FindInstanceIdInfo(s);
			}
			int attr;
			switch (id)
			{
				case Id_length:
				case Id_arity:
				case Id_name:
				{
					attr = DONTENUM | READONLY | PERMANENT;
					break;
				}

				case Id_prototype:
				{
					// some functions such as built-ins don't have a prototype property
					if (!HasPrototypeProperty())
					{
						return 0;
					}
					attr = prototypePropertyAttributes;
					break;
				}

				case Id_arguments:
				{
					attr = DONTENUM | PERMANENT;
					break;
				}

				default:
				{
					throw new InvalidOperationException();
				}
			}
			return InstanceIdInfo(attr, id);
		}