@Override
		public Object get(final String name, Scriptable start)
		{
			if (super.has(name, start))
				return super.get(name, start);
			if (methH.containsKey(name) || funcH.containsKey(name)
			|| (name.endsWith("$")&&(funcH.containsKey(name.substring(0,name.length()-1)))))
			{
				return new Function()
				{
					@Override
					public Object call(Context cx, Scriptable scope, Scriptable thisObj, Object[] args)
					{
						if(methH.containsKey(name))
						{
							final StringBuilder strb=new StringBuilder(name);
							if(args.length==1)
								strb.append(" ").append(String.valueOf(args[0]));
							else
							for(int i=0;i<args.length;i++)
							{
								if(i==args.length-1)
									strb.append(" ").append(String.valueOf(args[i]));
								else
									strb.append(" ").append("'"+String.valueOf(args[i])+"'");
							}
							final DVector DV=new DVector(2);
							DV.addElement("JS_PROG",null);
							DV.addElement(strb.toString(),null);
							return c.execute(h,s,t,m,pi,si,DV,message,objs);
						}
						if(name.endsWith("$"))
						{
							final StringBuilder strb=new StringBuilder(name.substring(0,name.length()-1)).append("(");
							if(args.length==1)
								strb.append(" ").append(String.valueOf(args[0]));
							else
							for(int i=0;i<args.length;i++)
							{
								if(i==args.length-1)
									strb.append(" ").append(String.valueOf(args[i]));
								else
									strb.append(" ").append("'"+String.valueOf(args[i])+"'");
							}
							strb.append(" ) ");
							return c.functify(h,s,t,m,pi,si,message,objs,strb.toString());
						}
						final String[] sargs=new String[args.length+3];
						sargs[0]=name;
						sargs[1]="(";
						for(int i=0;i<args.length;i++)
							sargs[i+2]=String.valueOf(args[i]);
						sargs[sargs.length-1]=")";
						final String[][] EVAL={sargs};
						return Boolean.valueOf(c.eval(h,s,t,m,pi,si,message,objs,EVAL,0));
					}

					@Override
					public void delete(String arg0)
					{
					}

					@Override
					public void delete(int arg0)
					{
					}

					@Override
					public Object get(String arg0, Scriptable arg1)
					{
						return null;
					}

					@Override
					public Object get(int arg0, Scriptable arg1)
					{
						return null;
					}

					@Override
					public String getClassName()
					{
						return null;
					}

					@Override
					public Object getDefaultValue(Class<?> arg0)
					{
						return null;
					}

					@Override
					public Object[] getIds()
					{
						return null;
					}

					@Override
					public Scriptable getParentScope()
					{
						return null;
					}

					@Override
					public Scriptable getPrototype()
					{
						return null;
					}

					@Override
					public boolean has(String arg0, Scriptable arg1)
					{
						return false;
					}

					@Override
					public boolean has(int arg0, Scriptable arg1)
					{
						return false;
					}

					@Override
					public boolean hasInstance(Scriptable arg0)
					{
						return false;
					}

					@Override
					public void put(String arg0, Scriptable arg1, Object arg2)
					{
					}

					@Override
					public void put(int arg0, Scriptable arg1, Object arg2)
					{
					}

					@Override
					public void setParentScope(Scriptable arg0)
					{
					}

					@Override
					public void setPrototype(Scriptable arg0)
					{
					}

					@Override
					public Scriptable construct(Context arg0, Scriptable arg1, Object[] arg2)
					{
						return null;
					}
				};
			}
			return super.get(name, start);
		}