docs: @Override
      public Object execIdCall(IdFunctionObject f, Context cx, Scriptable scope,
                               Scriptable thisObj, Object[] args)
      {
          if (!f.hasTag(getClassName())) {
              return super.execIdCall(f, cx, scope, thisObj, args);
          }
          int id = f.methodId();
          switch (id) {
          case Id_constructor:
              return js_constructor(args);
          case Id_getInt8:
              return realThis(thisObj, f).js_getInt(1, true, args);
          case Id_getUint8:
              return realThis(thisObj, f).js_getInt(1, false, args);
          case Id_getInt16:
              return realThis(thisObj, f).js_getInt(2, true, args);
          case Id_getUint16:
              return realThis(thisObj, f).js_getInt(2, false, args);
          case Id_getInt32:
              return realThis(thisObj, f).js_getInt(4, true, args);
          case Id_getUint32:
              return realThis(thisObj, f).js_getInt(4, false, args);
          case Id_getFloat32:
              return realThis(thisObj, f).js_getFloat(4, args);
          case Id_getFloat64:
              return realThis(thisObj, f).js_getFloat(8, args);
          case Id_setInt8:
              realThis(thisObj, f).js_setInt(1, true, args);
              return Undefined.instance;
          case Id_setUint8:
              realThis(thisObj, f).js_setInt(1, false, args);
              return Undefined.instance;
          case Id_setInt16:
              realThis(thisObj, f).js_setInt(2, true, args);
              return Undefined.instance;
          case Id_setUint16:
              realThis(thisObj, f).js_setInt(2, false, args);
              return Undefined.instance;
          case Id_setInt32:
              realThis(thisObj, f).js_setInt(4, true, args);
              return Undefined.instance;
          case Id_setUint32:
              realThis(thisObj, f).js_setInt(4, false, args);
              return Undefined.instance;
          case Id_setFloat32:
              realThis(thisObj, f).js_setFloat(4, args);
              return Undefined.instance;
          case Id_setFloat64:
              realThis(thisObj, f).js_setFloat(8, args);
              return Undefined.instance;
          }
          throw new IllegalArgumentException(String.valueOf(id));
      }