public class Static extends JSObject {
public static Static getStatic(String resourcename) {
- Static ret = (Static)cache.get(resourcename);
- if (ret == null) {
- Template t = Template.getTemplate(resourcename, null);
-
- // FIXME: ugly
- if (t == null) return new Static(resourcename, true);
+ Template t = Template.getTemplate(resourcename, null);
+ if (t != null) t.link();
+ return (Static)cache.get(resourcename);
+ }
- ret = new Static(resourcename, false);
- t.link();
- return ret;
- }
+ public static Static createStatic(String resourcename, boolean isPackage) {
+ Static ret = (Static)cache.get(resourcename);
+ if (ret != null) return ret;
+ if (resourcename.indexOf('.') != -1)
+ createStatic(resourcename.substring(0, resourcename.lastIndexOf('.')), true);
+ ret = new Static(resourcename, isPackage);
return ret;
}
for(Scriptable cur = Context.enter().currentFunction; cur != null; cur = cur.getParentScope())
if (cur == this) return XWT.singleton;
- System.out.println("casc up " + (resourcename + (resourcename.length() == 0 ? "" : ".") + name));
-
if (!ispackage) return super.get(name, start);
return getStatic(resourcename + (resourcename.length() == 0 ? "" : ".") + name);
}
+ static { createStatic("", true); }
+
}