if (protoName == null) { return null; }  TypeInfo info = (TypeInfo) prototypes.get(protoName);  if ((info != null) && (info.lastUpdate == 0)) { Prototype p = app.typemgr.getPrototype(protoName);  if (p != null) { app.typemgr.updatePrototype(p);  if (p.getLastUpdate() > info.lastUpdate) { evaluatePrototype(p, info); }     if (info.lastUpdate == 0) { info.lastUpdate = 1; } } }  return (info == null) ? null : info.objectPrototype;
TypeInfo info = getPrototypeInfo(protoName); return info == null ? null : info.objectPrototype;
    public Scriptable getPrototype(String protoName) {        if (protoName == null) {            return null;        }        TypeInfo info = (TypeInfo) prototypes.get(protoName);        if ((info != null) && (info.lastUpdate == 0)) {            Prototype p = app.typemgr.getPrototype(protoName);            if (p != null) {                app.typemgr.updatePrototype(p);                if (p.getLastUpdate() > info.lastUpdate) {                    evaluatePrototype(p, info);                }                // set info.lastUpdate to 1 if it is 0 so we know we                // have initialized this prototype already, even if                // it is empty (i.e. doesn't contain any scripts/skins/actions)                if (info.lastUpdate == 0) {                    info.lastUpdate = 1;                }            }        }        return (info == null) ? null : info.objectPrototype;    }