docs: @Override
      public Scriptable construct(Context cx, Scriptable scope, Object[] args)
      {
          Scriptable myDelegee = getDelegee();
          if (myDelegee == null) {
              //this little trick allows us to declare prototype objects for Delegators
              Delegator n = newInstance();
              Scriptable delegee;
              if (args.length == 0) {
                  delegee = new NativeObject();
              } else {
                  delegee = ScriptRuntime.toObject(cx, scope, args[0]);
              }
              n.setDelegee(delegee);
              return n;
          }
          return ((Function)myDelegee).construct(cx, scope, args);
      }