/** helper; retrieves the 'source code filename' (usually the nodeName) of the currently-executing function in this thread */
public static String getCurrentFunctionSourceName() {
- Function cf = Context.getCurrentContext().currentFunction;
+ Context cx = Context.getCurrentContext();
+ if (cx == null) {
+ if (Log.on) Log.log(JSObject.class, "Context.getCurrentContext() is null in getCurrentFunctionSourceName()");
+ return "unknown";
+ }
+ Function cf = cx.currentFunction;
if (cf == null) return null;
return (cf instanceof InterpretedFunction) ?
((InterpretedFunction)cf).getSourceName() : ((InterpretedScript)cf).getSourceName();
if (name.equals("Array")) return JSObject.defaultObjects.get("Array", null);
if (name.equals("Function")) return JSObject.defaultObjects.get("Function", null);
if (name.equals("TypeError")) return JSObject.defaultObjects.get("TypeError", null);
+ if (name.equals("ConversionError")) return JSObject.defaultObjects.get("ConversionError", null);
return ((JSObject)lastByThread.get(Thread.currentThread())).get(name, start);
}