public static void sleep(final int i) throws JSExn {
try {
final JS.UnpauseCallback callback = JS.pause();
- final long currentTime = System.currentTimeMillis();
// FEATURE use a single sleeper thread
new Thread() { public void run() {
try { Thread.sleep(i); } catch (InterruptedException e) { }
}
}
- // FEATURE: move this into builtin.ibex
+ // FEATURE: move this into builtin.xwar
public Blessing bless(JS b) { return new Ibex.Blessing((JS.Cloneable)b, this, null, null); }
public static class Blessing extends JS.Clone {
private Ibex ibex;
public JSScope getStatic() {
try {
// FIXME background?
- if (t == null) t = Template.buildTemplate(Stream.getInputStream(parent.get(parentkey + ".ixt")), ibex);
+ if (t == null)
+ t = Template.buildTemplate(parentkey + ".t", Stream.getInputStream(parent.get(parentkey + ".t")), ibex);
return t.staticScope;
} catch (Exception e) {
Log.error(this, e);
if (nargs == 9999) return t;
if (nargs != 1) throw new JSExn("FIXME can only call with one arg");
getStatic();
+ if (t == null) throw new JSExn("No such template " + parentkey);
t.apply((Box)a);
return a;
}