code: @Override
      public Object call(Context cx, Scriptable scope, Scriptable thisObj,
                         Object[] args)
      {
          if (!ScriptRuntime.hasTopCall(cx)) {
              return ScriptRuntime.doTopCall(this, cx, scope, thisObj, args, idata.isStrict);
          }
          return Interpreter.interpret(this, cx, scope, thisObj, args);
      }
docs: Calls the function.
  @param cx the current context
  @param scope the scope used for the call
  @param thisObj the value of "this"
  @param args function arguments. Must not be null. You can use
  {@link ScriptRuntime#emptyArgs} to pass empty arguments.
  @return the result of the function call.