code: function getSuperPropCallBinding(thisEnvFn, propName) {
    return getBinding(thisEnvFn, `superprop_call:${propName || ""}`, () => {
      const argsBinding = thisEnvFn.scope.generateUidIdentifier("args");
      const argsList = [t.restElement(argsBinding)];
  
      let fnBody;
      if (propName) {
        // (...args) => super.foo(...args)
        fnBody = t.callExpression(
          t.memberExpression(t.super(), t.identifier(propName)),
          [t.spreadElement(t.identifier(argsBinding.name))],
        );
      } else {
        const method = thisEnvFn.scope.generateUidIdentifier("prop");
        // (method, ...args) => super[method](...args)
        argsList.unshift(method);
        fnBody = t.callExpression(
          t.memberExpression(
            t.super(),
            t.identifier(method.name),
            true /* computed */,
          ),
          [t.spreadElement(t.identifier(argsBinding.name))],
        );
      }
  
      return t.arrowFunctionExpression(argsList, fnBody);
    });
  }
docs: Create a binding for a function that will call "super.foo()" or "super[foo]()".