HoriSun / closure-compiler

Automatically exported from code.google.com/p/closure-compiler
0 stars 0 forks source link

Inappropriate property removal. #875

Closed GoogleCodeExporter closed 8 years ago

GoogleCodeExporter commented 8 years ago
As reported on the mailing list, repro'd with the 20121212 release.

Reprosteps:

// ==ClosureCompiler==
// @output_file_name default.js
// @compilation_level ADVANCED_OPTIMIZATIONS
// @formatting pretty_print
// ==/ClosureCompiler==
var ImageEditor;
(function (ImageEditor) {
    (function (View) {
        View.defaultLeftPaneWidth = 200;
        var Editor = (function () {
            function Editor(a, b) {
                return a + b;
            }
            return Editor;
        })();
        View.Editor = Editor;        
    })(ImageEditor.View || (ImageEditor.View = {}));
    var View = ImageEditor.View;
})(ImageEditor || (ImageEditor = {}));
window["ImageEditor"]['View']["Editor"] = ImageEditor.View.Editor;

I get this result:

  var a, b = a || (a = {});
  b.a || (b.a = {});
  window.ImageEditor.View.Editor = a.a.b;

But if i remeve line:

  View.defaultLeftPaneWidth = 200;

I get correct result:

  var a, b = a || (a = {});
  (b.a || (b.a = {})).b = function(c, d) {
    return c + d
  };
  window.ImageEditor.View.Editor = a.a.b;

Original issue reported on code.google.com by concavel...@gmail.com on 13 Dec 2012 at 10:10

GoogleCodeExporter commented 8 years ago

Original comment by concavel...@gmail.com on 13 Dec 2012 at 10:12