text: // @allowJs: true
  // @checkJs: true
  // @noEmit: true
  // @filename: index.js
  function C1() {
      if (!(this instanceof C1)) return new C1();
      this.x = 1;
  }
  const c1_v1 = C1();
  const c1_v2 = new C1();
  var C2 = function() {
      if (!(this instanceof C2)) return new C2();
      this.x = 1;
  };
  const c2_v1 = C2();
  const c2_v2 = new C2();
  /** @class */ function C3() {
      if (!(this instanceof C3)) return new C3();
  }
  const c3_v1 = C3(); // error: @class tag requires 'new'
  const c3_v2 = new C3();
  /** @class */ var C4 = function() {
      if (!(this instanceof C4)) return new C4();
  };
  const c4_v1 = C4(); // error: @class tag requires 'new'
  const c4_v2 = new C4();
  var c5_v1;
  c5_v1 = function f() {};
  new c5_v1();
  var c5_v2;
  c5_v2 = class {
  };
  new c5_v2();
  /** @class */ function C6() {
      this.functions = [
          (x)=>x,
          (x)=>x + 1,
          (x)=>x - 1
      ];
  }
  var c6_v1 = new C6();
  /**
   * @constructor
   * @param {number} num
   */ function C7(num) {}
  var c7_v1 = new C7();
  