code: function getSuperPropBinding(thisEnvFn, isAssignment, propName) {
    const op = isAssignment ? "set" : "get";
  
    return getBinding(thisEnvFn, `superprop_${op}:${propName || ""}`, () => {
      const argsList = [];
  
      let fnBody;
      if (propName) {
        // () => super.foo
        fnBody = t.memberExpression(t.super(), t.identifier(propName));
      } else {
        const method = thisEnvFn.scope.generateUidIdentifier("prop");
        // (method) => super[method]
        argsList.unshift(method);
        fnBody = t.memberExpression(
          t.super(),
          t.identifier(method.name),
          true /* computed */,
        );
      }
  
      if (isAssignment) {
        const valueIdent = thisEnvFn.scope.generateUidIdentifier("value");
        argsList.push(valueIdent);
  
        fnBody = t.assignmentExpression(
          "=",
          fnBody,
          t.identifier(valueIdent.name),
        );
      }
  
      return t.arrowFunctionExpression(argsList, fnBody);
    });
  }
docs: Create a binding for a function that will call "super.foo" or "super[foo]".