text: // @noEmit: true
  // @allowJs: true
  // @checkJs: true
  // @target: es6
  // @Filename: module.js
  var Outer = Outer || {};
  Outer.app = Outer.app || {};
  // @Filename: someview.js
  Outer.app.SomeView = function() {
      var SomeView = function() {
          var me = this;
      };
      return SomeView;
  }();
  Outer.app.Inner = class {
      constructor(){
          /** @type {number} */ this.y = 12;
      }
  };
  var example = new Outer.app.Inner();
  example.y;
  /** @param {number} k */ Outer.app.statische = function(k) {
      return Math.pow(k, k);
  };
  // @Filename: application.js
  Outer.app.Application = function() {
      /**
       * Application main class.
       * Will be instantiated & initialized by HTML page
       */ var Application = function() {
          var me = this;
          me.view = new Outer.app.SomeView();
      };
      return Application;
  }();
  // @Filename: main.js
  var app = new Outer.app.Application();
  var inner = new Outer.app.Inner();
  inner.y;
  /** @type {Outer.app.Inner} */ var x;
  x.y;
  Outer.app.statische(101); // Infinity, duh
  