public ESBase construct(Call call, int length) throws Throwable {
    ESBase callFun = hasProperty(CONSTRUCT);

    if (callFun != null) {
      call.setThis(this);
      return callFun.construct(call, length);
    }

    throw new ESNullException(toStr() + " is not a constructor");
  }
  public ESBase call(Call call, int length) throws Throwable {
    ESBase callFun = hasProperty(CALL);

    if (callFun != null) {
      call.setThis(this);
      return callFun.call(call, length);
    }

    throw new ESNullException(toStr() + " is not a function");
  }