docs: @SuppressWarnings({"unchecked"})
      public static void defineClass(Context cx, Scriptable thisObj,
                                     Object[] args, Function funObj)
          throws IllegalAccessException, InstantiationException,
                 InvocationTargetException
      {
          Class<?> clazz = getClass(args);
          if (!Scriptable.class.isAssignableFrom(clazz)) {
              throw reportRuntimeError("msg.must.implement.Scriptable");
          }
          ScriptableObject.defineClass(thisObj, (Class<? extends Scriptable>)clazz);
      }