code: function AssignmentExpression(node, print, parent) {
    // Somewhere inside a for statement `init` node but doesn't usually
    // needs a paren except for `in` expressions: `for (a in b ? a : b;;)`
    var parens = this._inForStatementInit && node.operator === "in" && !_node2["default"].needsParens(node, parent);
  
    if (parens) {
      this.push("(");
    }
  
    // todo: add cases where the spaces can be dropped when in compact mode
    print.plain(node.left);
  
    var spaces = node.operator === "in" || node.operator === "instanceof";
    spaces = true; // todo: https://github.com/babel/babel/issues/1835
    this.space(spaces);
  
    this.push(node.operator);
  
    if (!spaces) {
      // space is mandatory to avoid outputting <!--
      // http://javascript.spec.whatwg.org/#comment-syntax
      spaces = node.operator === "<" && t.isUnaryExpression(node.right, { prefix: true, operator: "!" }) && t.isUnaryExpression(node.right.argument, { prefix: true, operator: "--" });
    }
  
    this.space(spaces);
  
    print.plain(node.right);
  
    if (parens) {
      this.push(")");
    }
  }
docs: Prints AssignmentExpression, prints left, operator, and right.