}
    public void initRequestEvaluator (RequestEvaluator reval) {	ObjectPrototype op = null;	// get the prototype's prototype if possible and necessary	ObjectPrototype opp = null;	if (prototype != null)	    opp = reval.getPrototype (prototype.getName ());	if (!"global".equalsIgnoreCase (name) &&		!"hopobject".equalsIgnoreCase (name) && opp == null)	    opp = reval.esNodePrototype;	if ("user".equalsIgnoreCase (name)) {	    op = reval.esUserPrototype;	    op.setPrototype (opp);	} else if ("global".equalsIgnoreCase (name))	    op = reval.global;	else if ("hopobject".equalsIgnoreCase (name))	    op = reval.esNodePrototype;	else {	    op = new ObjectPrototype (opp, reval.evaluator);	    try {	        op.putProperty ("prototypename", new ESString (name), "prototypename".hashCode ());	    } catch (EcmaScriptException ignore) {}	}	reval.putPrototype (name, op);	// Register a constructor for all types except global.	// This will first create a node and then call the actual (scripted) constructor on it.	if (!"global".equalsIgnoreCase (name)) {	    try {	        FunctionPrototype fp = (FunctionPrototype) reval.evaluator.getFunctionPrototype();	        reval.global.putHiddenProperty (name, new NodeConstructor (name, fp, reval));	    } catch (EcmaScriptException ignore) {}	}	for (Iterator it = functions.values().iterator(); it.hasNext(); ) {	    FunctionFile ff = (FunctionFile) it.next ();	    ff.updateRequestEvaluator (reval);	}	for (Iterator it = templates.values().iterator(); it.hasNext(); ) {	    Template tmp = (Template) it.next ();	    try {	        tmp.updateRequestEvaluator (reval);	    } catch (EcmaScriptException ignore) {}	}	for (Iterator it = actions.values().iterator(); it.hasNext(); ) {	    Action act = (Action) it.next ();	    try {	        act.updateRequestEvaluator (reval);	    } catch (EcmaScriptException ignore) {}	}    }