diff --git a/src/compiler/transformers/module/module.ts b/src/compiler/transformers/module/module.ts index f551f44dad1..51b03b43c94 100644 --- a/src/compiler/transformers/module/module.ts +++ b/src/compiler/transformers/module/module.ts @@ -792,12 +792,6 @@ namespace ts { function visitExpressionStatementForEnumOrNamespaceDeclaration(node: ExpressionStatement, original: EnumDeclaration | ModuleDeclaration): VisitResult { const statements: Statement[] = [node]; - // Preserve old behavior for enums in which a variable statement is emitted after the body itself. - if (hasModifier(original, ModifierFlags.Export) && - original.kind === SyntaxKind.EnumDeclaration && - isFirstDeclarationOfKind(original, SyntaxKind.EnumDeclaration)) { - addVarForExportedEnumOrNamespaceDeclaration(statements, original); - } addExportMemberAssignments(statements, original.name); diff --git a/src/compiler/transformers/module/system.ts b/src/compiler/transformers/module/system.ts index d2903ba927a..acd25a41a09 100644 --- a/src/compiler/transformers/module/system.ts +++ b/src/compiler/transformers/module/system.ts @@ -692,12 +692,6 @@ namespace ts { const originalNode = getOriginalNode(node); if ((originalNode.kind === SyntaxKind.ModuleDeclaration || originalNode.kind === SyntaxKind.EnumDeclaration) && hasModifier(originalNode, ModifierFlags.Export)) { const name = getDeclarationName(originalNode); - // We only need to hoistVariableDeclaration for EnumDeclaration - // as ModuleDeclaration is already hoisted when the transformer call visitVariableStatement - // which then call transformsVariable for each declaration in declarationList - if (originalNode.kind === SyntaxKind.EnumDeclaration) { - hoistVariableDeclaration(name); - } return [ node, createExportStatement(name, name) @@ -849,7 +843,7 @@ namespace ts { visitNode(node.statement, visitNestedNode, isStatement, /*optional*/ false, liftToBlock), node.expression ); - } + } /** * Visits the body of a WhileStatement to hoist declarations. @@ -862,7 +856,7 @@ namespace ts { node.expression, visitNode(node.statement, visitNestedNode, isStatement, /*optional*/ false, liftToBlock) ); - } + } /** * Visits the body of a LabeledStatement to hoist declarations. diff --git a/src/compiler/transformers/ts.ts b/src/compiler/transformers/ts.ts index 55e35106189..fdb3f7b208d 100644 --- a/src/compiler/transformers/ts.ts +++ b/src/compiler/transformers/ts.ts @@ -2517,29 +2517,6 @@ namespace ts { || compilerOptions.isolatedModules; } - function shouldEmitVarForEnumDeclaration(node: EnumDeclaration | ModuleDeclaration) { - return isFirstEmittedDeclarationInScope(node) - && (!hasModifier(node, ModifierFlags.Export) - || isES6ExportedDeclaration(node)); - } - - - /* - * Adds a trailing VariableStatement for an enum or module declaration. - */ - function addVarForEnumExportedFromNamespace(statements: Statement[], node: EnumDeclaration | ModuleDeclaration) { - const statement = createVariableStatement( - /*modifiers*/ undefined, - [createVariableDeclaration( - getDeclarationName(node), - /*type*/ undefined, - getExportName(node) - )] - ); - setSourceMapRange(statement, node); - statements.push(statement); - } - /** * Visits an enum declaration. * @@ -2562,7 +2539,7 @@ namespace ts { // a leading variable declaration, we should not emit leading comments for the // enum body. recordEmittedDeclarationInScope(node); - if (shouldEmitVarForEnumDeclaration(node)) { + if (isFirstEmittedDeclarationInScope(node)) { addVarForEnumOrModuleDeclaration(statements, node); // We should still emit the comments if we are emitting a system module. @@ -2580,6 +2557,25 @@ namespace ts { // `exportName` is the expression used within this node's container for any exported references. const exportName = getExportName(node); + // x || (x = {}) + // exports.x || (exports.x = {}) + let moduleArg = + createLogicalOr( + exportName, + createAssignment( + exportName, + createObjectLiteral() + ) + ); + + if (hasModifier(node, ModifierFlags.Export) && !isES6ExportedDeclaration(node)) { + // `localName` is the expression used within this node's containing scope for any local references. + const localName = getLocalName(node); + + // x = (exports.x || (exports.x = {})) + moduleArg = createAssignment(localName, moduleArg); + } + // (function (x) { // x[x["y"] = 0] = "y"; // ... @@ -2596,13 +2592,7 @@ namespace ts { transformEnumBody(node, containerName) ), /*typeArguments*/ undefined, - [createLogicalOr( - exportName, - createAssignment( - exportName, - createObjectLiteral() - ) - )] + [moduleArg] ), /*location*/ node ); @@ -2610,11 +2600,6 @@ namespace ts { setOriginalNode(enumStatement, node); setEmitFlags(enumStatement, emitFlags); statements.push(enumStatement); - - if (isNamespaceExport(node)) { - addVarForEnumExportedFromNamespace(statements, node); - } - return statements; } @@ -2739,10 +2724,6 @@ namespace ts { return false; } - function shouldEmitVarForModuleDeclaration(node: ModuleDeclaration) { - return isFirstEmittedDeclarationInScope(node); - } - /** * Adds a leading VariableStatement for a enum or module declaration. */ @@ -2817,7 +2798,7 @@ namespace ts { // a leading variable declaration, we should not emit leading comments for the // module body. recordEmittedDeclarationInScope(node); - if (shouldEmitVarForModuleDeclaration(node)) { + if (isFirstEmittedDeclarationInScope(node)) { addVarForEnumOrModuleDeclaration(statements, node); // We should still emit the comments if we are emitting a system module. if (moduleKind !== ModuleKind.System || currentScope !== currentSourceFile) { diff --git a/tests/baselines/reference/ModuleWithExportedAndNonExportedEnums.js b/tests/baselines/reference/ModuleWithExportedAndNonExportedEnums.js index 3cd522d3c2c..713d2ac7f18 100644 --- a/tests/baselines/reference/ModuleWithExportedAndNonExportedEnums.js +++ b/tests/baselines/reference/ModuleWithExportedAndNonExportedEnums.js @@ -14,11 +14,11 @@ var b = A.Day.Monday; //// [ModuleWithExportedAndNonExportedEnums.js] var A; (function (A) { + var Color; (function (Color) { Color[Color["Red"] = 0] = "Red"; Color[Color["Blue"] = 1] = "Blue"; - })(A.Color || (A.Color = {})); - var Color = A.Color; + })(Color = A.Color || (A.Color = {})); var Day; (function (Day) { Day[Day["Monday"] = 0] = "Monday"; diff --git a/tests/baselines/reference/amdImportAsPrimaryExpression.js b/tests/baselines/reference/amdImportAsPrimaryExpression.js index 1281b7f7f47..3c2e9c041fa 100644 --- a/tests/baselines/reference/amdImportAsPrimaryExpression.js +++ b/tests/baselines/reference/amdImportAsPrimaryExpression.js @@ -15,12 +15,12 @@ if(foo.E1.A === 0){ //// [foo_0.js] define(["require", "exports"], function (require, exports) { "use strict"; + var E1; (function (E1) { E1[E1["A"] = 0] = "A"; E1[E1["B"] = 1] = "B"; E1[E1["C"] = 2] = "C"; - })(exports.E1 || (exports.E1 = {})); - var E1 = exports.E1; + })(E1 = exports.E1 || (exports.E1 = {})); }); //// [foo_1.js] define(["require", "exports", "./foo_0"], function (require, exports, foo) { diff --git a/tests/baselines/reference/amdImportNotAsPrimaryExpression.js b/tests/baselines/reference/amdImportNotAsPrimaryExpression.js index b8e9f5346b0..efd1c2aa909 100644 --- a/tests/baselines/reference/amdImportNotAsPrimaryExpression.js +++ b/tests/baselines/reference/amdImportNotAsPrimaryExpression.js @@ -42,12 +42,12 @@ define(["require", "exports"], function (require, exports) { }()); exports.C1 = C1; C1.s1 = true; + var E1; (function (E1) { E1[E1["A"] = 0] = "A"; E1[E1["B"] = 1] = "B"; E1[E1["C"] = 2] = "C"; - })(exports.E1 || (exports.E1 = {})); - var E1 = exports.E1; + })(E1 = exports.E1 || (exports.E1 = {})); }); //// [foo_1.js] define(["require", "exports"], function (require, exports) { diff --git a/tests/baselines/reference/collisionExportsRequireAndEnum.js b/tests/baselines/reference/collisionExportsRequireAndEnum.js index 3935ee312fb..47d127e8a67 100644 --- a/tests/baselines/reference/collisionExportsRequireAndEnum.js +++ b/tests/baselines/reference/collisionExportsRequireAndEnum.js @@ -63,16 +63,16 @@ module m4 { //// [collisionExportsRequireAndEnum_externalmodule.js] define(["require", "exports"], function (require, exports) { "use strict"; + var require; (function (require) { require[require["_thisVal1"] = 0] = "_thisVal1"; require[require["_thisVal2"] = 1] = "_thisVal2"; - })(exports.require || (exports.require = {})); - var require = exports.require; + })(require = exports.require || (exports.require = {})); + var exports; (function (exports) { exports[exports["_thisVal1"] = 0] = "_thisVal1"; exports[exports["_thisVal2"] = 1] = "_thisVal2"; - })(exports.exports || (exports.exports = {})); - var exports = exports.exports; + })(exports = exports.exports || (exports.exports = {})); var m1; (function (m1) { var require; @@ -88,16 +88,16 @@ define(["require", "exports"], function (require, exports) { })(m1 || (m1 = {})); var m2; (function (m2) { + var require; (function (require) { require[require["_thisVal1"] = 0] = "_thisVal1"; require[require["_thisVal2"] = 1] = "_thisVal2"; - })(m2.require || (m2.require = {})); - var require = m2.require; + })(require = m2.require || (m2.require = {})); + var exports; (function (exports) { exports[exports["_thisVal1"] = 0] = "_thisVal1"; exports[exports["_thisVal2"] = 1] = "_thisVal2"; - })(m2.exports || (m2.exports = {})); - var exports = m2.exports; + })(exports = m2.exports || (m2.exports = {})); })(m2 || (m2 = {})); }); //// [collisionExportsRequireAndEnum_globalFile.js] @@ -126,14 +126,14 @@ var m3; })(m3 || (m3 = {})); var m4; (function (m4) { + var require; (function (require) { require[require["_thisVal1"] = 0] = "_thisVal1"; require[require["_thisVal2"] = 1] = "_thisVal2"; - })(m4.require || (m4.require = {})); - var require = m4.require; + })(require = m4.require || (m4.require = {})); + var exports; (function (exports) { exports[exports["_thisVal1"] = 0] = "_thisVal1"; exports[exports["_thisVal2"] = 1] = "_thisVal2"; - })(m4.exports || (m4.exports = {})); - var exports = m4.exports; + })(exports = m4.exports || (m4.exports = {})); })(m4 || (m4 = {})); diff --git a/tests/baselines/reference/commentOnExportEnumDeclaration.js b/tests/baselines/reference/commentOnExportEnumDeclaration.js index 6ded51456d8..61307b95b1c 100644 --- a/tests/baselines/reference/commentOnExportEnumDeclaration.js +++ b/tests/baselines/reference/commentOnExportEnumDeclaration.js @@ -11,9 +11,9 @@ export enum Color { /** * comment */ +var Color; (function (Color) { Color[Color["r"] = 0] = "r"; Color[Color["g"] = 1] = "g"; Color[Color["b"] = 2] = "b"; -})(exports.Color || (exports.Color = {})); -var Color = exports.Color; +})(Color = exports.Color || (exports.Color = {})); diff --git a/tests/baselines/reference/commonJSImportNotAsPrimaryExpression.js b/tests/baselines/reference/commonJSImportNotAsPrimaryExpression.js index e7496f3445f..a66d04a2dde 100644 --- a/tests/baselines/reference/commonJSImportNotAsPrimaryExpression.js +++ b/tests/baselines/reference/commonJSImportNotAsPrimaryExpression.js @@ -41,12 +41,12 @@ var C1 = (function () { }()); exports.C1 = C1; C1.s1 = true; +var E1; (function (E1) { E1[E1["A"] = 0] = "A"; E1[E1["B"] = 1] = "B"; E1[E1["C"] = 2] = "C"; -})(exports.E1 || (exports.E1 = {})); -var E1 = exports.E1; +})(E1 = exports.E1 || (exports.E1 = {})); //// [foo_1.js] "use strict"; var i; diff --git a/tests/baselines/reference/declFileTypeofInAnonymousType.js b/tests/baselines/reference/declFileTypeofInAnonymousType.js index 68db3d120cd..656cd49ebfa 100644 --- a/tests/baselines/reference/declFileTypeofInAnonymousType.js +++ b/tests/baselines/reference/declFileTypeofInAnonymousType.js @@ -31,12 +31,12 @@ var m1; return c; }()); m1.c = c; + var e; (function (e) { e[e["weekday"] = 0] = "weekday"; e[e["weekend"] = 1] = "weekend"; e[e["holiday"] = 2] = "holiday"; - })(m1.e || (m1.e = {})); - var e = m1.e; + })(e = m1.e || (m1.e = {})); })(m1 || (m1 = {})); var a; var b = { diff --git a/tests/baselines/reference/declarationEmitNameConflicts2.js b/tests/baselines/reference/declarationEmitNameConflicts2.js index 41dcec4690f..05529fbf5be 100644 --- a/tests/baselines/reference/declarationEmitNameConflicts2.js +++ b/tests/baselines/reference/declarationEmitNameConflicts2.js @@ -33,9 +33,9 @@ var X; var M; (function (M) { })(M = base.M || (base.M = {})); + var E; (function (E) { - })(base.E || (base.E = {})); - var E = base.E; + })(E = base.E || (base.E = {})); })(base = Y.base || (Y.base = {})); })(Y = X.Y || (X.Y = {})); })(X || (X = {})); diff --git a/tests/baselines/reference/declarationEmitNameConflicts3.js b/tests/baselines/reference/declarationEmitNameConflicts3.js index b0a87e64483..ffcfead83bf 100644 --- a/tests/baselines/reference/declarationEmitNameConflicts3.js +++ b/tests/baselines/reference/declarationEmitNameConflicts3.js @@ -68,10 +68,10 @@ var M; return E; }(C)); P.E = E; + var D; (function (D) { D[D["f"] = 0] = "f"; - })(P.D || (P.D = {})); - var D = P.D; + })(D = P.D || (P.D = {})); P.w = M.D.f; // error, should be typeof M.D.f P.x = M.C.f; // error, should be typeof M.C.f P.x = M.E.f; // error, should be typeof M.E.f diff --git a/tests/baselines/reference/disallowLineTerminatorBeforeArrow.js b/tests/baselines/reference/disallowLineTerminatorBeforeArrow.js index 1044146ccd0..0c6b98def4f 100644 --- a/tests/baselines/reference/disallowLineTerminatorBeforeArrow.js +++ b/tests/baselines/reference/disallowLineTerminatorBeforeArrow.js @@ -138,9 +138,9 @@ var m; } return City; }()); + var Enum; (function (Enum) { Enum[Enum["claw"] = (function () { return 10; })()] = "claw"; - })(m.Enum || (m.Enum = {})); - var Enum = m.Enum; + })(Enum = m.Enum || (m.Enum = {})); m.v = function (x) { return new City(Enum.claw); }; })(m || (m = {})); diff --git a/tests/baselines/reference/enumAssignmentCompat3.js b/tests/baselines/reference/enumAssignmentCompat3.js index 62f05c18b5f..accaaa7a99e 100644 --- a/tests/baselines/reference/enumAssignmentCompat3.js +++ b/tests/baselines/reference/enumAssignmentCompat3.js @@ -92,78 +92,77 @@ merged2 = abc; // ok //// [enumAssignmentCompat3.js] var First; (function (First) { + var E; (function (E) { E[E["a"] = 0] = "a"; E[E["b"] = 1] = "b"; E[E["c"] = 2] = "c"; - })(First.E || (First.E = {})); - var E = First.E; + })(E = First.E || (First.E = {})); })(First || (First = {})); var Abc; (function (Abc) { + var E; (function (E) { E[E["a"] = 0] = "a"; E[E["b"] = 1] = "b"; E[E["c"] = 2] = "c"; - })(Abc.E || (Abc.E = {})); - var E = Abc.E; + })(E = Abc.E || (Abc.E = {})); + var Nope; (function (Nope) { Nope[Nope["a"] = 0] = "a"; Nope[Nope["b"] = 1] = "b"; Nope[Nope["c"] = 2] = "c"; - })(Abc.Nope || (Abc.Nope = {})); - var Nope = Abc.Nope; + })(Nope = Abc.Nope || (Abc.Nope = {})); })(Abc || (Abc = {})); var Abcd; (function (Abcd) { + var E; (function (E) { E[E["a"] = 0] = "a"; E[E["b"] = 1] = "b"; E[E["c"] = 2] = "c"; E[E["d"] = 3] = "d"; - })(Abcd.E || (Abcd.E = {})); - var E = Abcd.E; + })(E = Abcd.E || (Abcd.E = {})); })(Abcd || (Abcd = {})); var Ab; (function (Ab) { + var E; (function (E) { E[E["a"] = 0] = "a"; E[E["b"] = 1] = "b"; - })(Ab.E || (Ab.E = {})); - var E = Ab.E; + })(E = Ab.E || (Ab.E = {})); })(Ab || (Ab = {})); var Cd; (function (Cd) { + var E; (function (E) { E[E["c"] = 0] = "c"; E[E["d"] = 1] = "d"; - })(Cd.E || (Cd.E = {})); - var E = Cd.E; + })(E = Cd.E || (Cd.E = {})); })(Cd || (Cd = {})); var Decl; (function (Decl) { })(Decl || (Decl = {})); var Merged; (function (Merged) { + var E; (function (E) { E[E["a"] = 0] = "a"; E[E["b"] = 1] = "b"; - })(Merged.E || (Merged.E = {})); - var E = Merged.E; + })(E = Merged.E || (Merged.E = {})); (function (E) { E[E["c"] = 3] = "c"; E[E["d"] = 4] = "d"; - })(Merged.E || (Merged.E = {})); - var E = Merged.E; + })(E = Merged.E || (Merged.E = {})); })(Merged || (Merged = {})); var Merged2; (function (Merged2) { + var E; (function (E) { E[E["a"] = 0] = "a"; E[E["b"] = 1] = "b"; E[E["c"] = 2] = "c"; - })(Merged2.E || (Merged2.E = {})); - var E = Merged2.E; + })(E = Merged2.E || (Merged2.E = {})); (function (E) { E.d = 5; })(E = Merged2.E || (Merged2.E = {})); diff --git a/tests/baselines/reference/enumAssignmentCompat4.js b/tests/baselines/reference/enumAssignmentCompat4.js index ad28324ce0f..35bc9319ce9 100644 --- a/tests/baselines/reference/enumAssignmentCompat4.js +++ b/tests/baselines/reference/enumAssignmentCompat4.js @@ -26,20 +26,20 @@ let broken = [ //// [enumAssignmentCompat4.js] var M; (function (M) { + var MyEnum; (function (MyEnum) { MyEnum[MyEnum["BAR"] = 0] = "BAR"; - })(M.MyEnum || (M.MyEnum = {})); - var MyEnum = M.MyEnum; + })(MyEnum = M.MyEnum || (M.MyEnum = {})); M.object2 = { foo: MyEnum.BAR }; })(M || (M = {})); var N; (function (N) { + var MyEnum; (function (MyEnum) { MyEnum[MyEnum["FOO"] = 0] = "FOO"; - })(N.MyEnum || (N.MyEnum = {})); - var MyEnum = N.MyEnum; + })(MyEnum = N.MyEnum || (N.MyEnum = {})); ; N.object1 = { foo: MyEnum.FOO diff --git a/tests/baselines/reference/enumFromExternalModule.js b/tests/baselines/reference/enumFromExternalModule.js index 77f0e643969..a6e9f6b6076 100644 --- a/tests/baselines/reference/enumFromExternalModule.js +++ b/tests/baselines/reference/enumFromExternalModule.js @@ -12,10 +12,10 @@ var x = f.Mode.Open; //// [enumFromExternalModule_0.js] "use strict"; +var Mode; (function (Mode) { Mode[Mode["Open"] = 0] = "Open"; -})(exports.Mode || (exports.Mode = {})); -var Mode = exports.Mode; +})(Mode = exports.Mode || (exports.Mode = {})); //// [enumFromExternalModule_1.js] "use strict"; /// diff --git a/tests/baselines/reference/enumLiteralAssignableToEnumInsideUnion.js b/tests/baselines/reference/enumLiteralAssignableToEnumInsideUnion.js index 8786745a504..077e5690dd8 100644 --- a/tests/baselines/reference/enumLiteralAssignableToEnumInsideUnion.js +++ b/tests/baselines/reference/enumLiteralAssignableToEnumInsideUnion.js @@ -32,35 +32,35 @@ const e5: Ka.Foo | boolean = Z.Foo.A; // ok //// [enumLiteralAssignableToEnumInsideUnion.js] var X; (function (X) { + var Foo; (function (Foo) { Foo[Foo["A"] = 0] = "A"; Foo[Foo["B"] = 1] = "B"; - })(X.Foo || (X.Foo = {})); - var Foo = X.Foo; + })(Foo = X.Foo || (X.Foo = {})); })(X || (X = {})); var Y; (function (Y) { + var Foo; (function (Foo) { Foo[Foo["A"] = 0] = "A"; Foo[Foo["B"] = 1] = "B"; - })(Y.Foo || (Y.Foo = {})); - var Foo = Y.Foo; + })(Foo = Y.Foo || (Y.Foo = {})); })(Y || (Y = {})); var Z; (function (Z) { + var Foo; (function (Foo) { Foo[Foo["A"] = 2] = "A"; Foo[Foo["B"] = 4] = "B"; - })(Z.Foo || (Z.Foo = {})); - var Foo = Z.Foo; + })(Foo = Z.Foo || (Z.Foo = {})); })(Z || (Z = {})); var Ka; (function (Ka) { + var Foo; (function (Foo) { Foo[Foo["A"] = 1024] = "A"; Foo[Foo["B"] = 2048] = "B"; - })(Ka.Foo || (Ka.Foo = {})); - var Foo = Ka.Foo; + })(Foo = Ka.Foo || (Ka.Foo = {})); })(Ka || (Ka = {})); var e0 = Y.Foo.A; // ok var e1 = Z.Foo.A; // not legal, Z is computed diff --git a/tests/baselines/reference/enumMerging.js b/tests/baselines/reference/enumMerging.js index d830b03cac9..c3fa7fffeb3 100644 --- a/tests/baselines/reference/enumMerging.js +++ b/tests/baselines/reference/enumMerging.js @@ -82,35 +82,33 @@ var M1; EImpl1[EImpl1["E"] = 2] = "E"; EImpl1[EImpl1["F"] = 3] = "F"; })(EImpl1 || (EImpl1 = {})); + var EConst1; (function (EConst1) { EConst1[EConst1["A"] = 3] = "A"; EConst1[EConst1["B"] = 2] = "B"; EConst1[EConst1["C"] = 1] = "C"; - })(M1.EConst1 || (M1.EConst1 = {})); - var EConst1 = M1.EConst1; + })(EConst1 = M1.EConst1 || (M1.EConst1 = {})); (function (EConst1) { EConst1[EConst1["D"] = 7] = "D"; EConst1[EConst1["E"] = 9] = "E"; EConst1[EConst1["F"] = 8] = "F"; - })(M1.EConst1 || (M1.EConst1 = {})); - var EConst1 = M1.EConst1; + })(EConst1 = M1.EConst1 || (M1.EConst1 = {})); var x = [EConst1.A, EConst1.B, EConst1.C, EConst1.D, EConst1.E, EConst1.F]; })(M1 || (M1 = {})); // Enum with only computed members across 2 declarations with the same root module var M2; (function (M2) { + var EComp2; (function (EComp2) { EComp2[EComp2["A"] = 'foo'.length] = "A"; EComp2[EComp2["B"] = 'foo'.length] = "B"; EComp2[EComp2["C"] = 'foo'.length] = "C"; - })(M2.EComp2 || (M2.EComp2 = {})); - var EComp2 = M2.EComp2; + })(EComp2 = M2.EComp2 || (M2.EComp2 = {})); (function (EComp2) { EComp2[EComp2["D"] = 'foo'.length] = "D"; EComp2[EComp2["E"] = 'foo'.length] = "E"; EComp2[EComp2["F"] = 'foo'.length] = "F"; - })(M2.EComp2 || (M2.EComp2 = {})); - var EComp2 = M2.EComp2; + })(EComp2 = M2.EComp2 || (M2.EComp2 = {})); var x = [EComp2.A, EComp2.B, EComp2.C, EComp2.D, EComp2.E, EComp2.F]; })(M2 || (M2 = {})); // Enum with initializer in only one of two declarations with constant members with the same root module @@ -130,41 +128,41 @@ var M3; // Enums with same name but different root module var M4; (function (M4) { + var Color; (function (Color) { Color[Color["Red"] = 0] = "Red"; Color[Color["Green"] = 1] = "Green"; Color[Color["Blue"] = 2] = "Blue"; - })(M4.Color || (M4.Color = {})); - var Color = M4.Color; + })(Color = M4.Color || (M4.Color = {})); })(M4 || (M4 = {})); var M5; (function (M5) { + var Color; (function (Color) { Color[Color["Red"] = 0] = "Red"; Color[Color["Green"] = 1] = "Green"; Color[Color["Blue"] = 2] = "Blue"; - })(M5.Color || (M5.Color = {})); - var Color = M5.Color; + })(Color = M5.Color || (M5.Color = {})); })(M5 || (M5 = {})); var M6; (function (M6) { var A; (function (A) { + var Color; (function (Color) { Color[Color["Red"] = 0] = "Red"; Color[Color["Green"] = 1] = "Green"; Color[Color["Blue"] = 2] = "Blue"; - })(A.Color || (A.Color = {})); - var Color = A.Color; + })(Color = A.Color || (A.Color = {})); })(A = M6.A || (M6.A = {})); })(M6 || (M6 = {})); (function (M6) { var A; (function (A) { + var Color; (function (Color) { Color[Color["Yellow"] = 1] = "Yellow"; - })(A.Color || (A.Color = {})); - var Color = A.Color; + })(Color = A.Color || (A.Color = {})); })(A = M6.A || (M6.A = {})); var t = A.Color.Yellow; t = A.Color.Red; diff --git a/tests/baselines/reference/enumMergingErrors.js b/tests/baselines/reference/enumMergingErrors.js index c9b4aaef754..05482f48377 100644 --- a/tests/baselines/reference/enumMergingErrors.js +++ b/tests/baselines/reference/enumMergingErrors.js @@ -46,84 +46,84 @@ module M2 { // Enum with constant, computed, constant members split across 3 declarations with the same root module var M; (function (M) { + var E1; (function (E1) { E1[E1["A"] = 0] = "A"; - })(M.E1 || (M.E1 = {})); - var E1 = M.E1; + })(E1 = M.E1 || (M.E1 = {})); + var E2; (function (E2) { E2[E2["C"] = 0] = "C"; - })(M.E2 || (M.E2 = {})); - var E2 = M.E2; + })(E2 = M.E2 || (M.E2 = {})); + var E3; (function (E3) { E3[E3["A"] = 0] = "A"; - })(M.E3 || (M.E3 = {})); - var E3 = M.E3; + })(E3 = M.E3 || (M.E3 = {})); })(M || (M = {})); (function (M) { + var E1; (function (E1) { E1[E1["B"] = 'foo'.length] = "B"; - })(M.E1 || (M.E1 = {})); - var E1 = M.E1; + })(E1 = M.E1 || (M.E1 = {})); + var E2; (function (E2) { E2[E2["B"] = 'foo'.length] = "B"; - })(M.E2 || (M.E2 = {})); - var E2 = M.E2; + })(E2 = M.E2 || (M.E2 = {})); + var E3; (function (E3) { E3[E3["C"] = 0] = "C"; - })(M.E3 || (M.E3 = {})); - var E3 = M.E3; + })(E3 = M.E3 || (M.E3 = {})); })(M || (M = {})); (function (M) { + var E1; (function (E1) { E1[E1["C"] = 0] = "C"; - })(M.E1 || (M.E1 = {})); - var E1 = M.E1; + })(E1 = M.E1 || (M.E1 = {})); + var E2; (function (E2) { E2[E2["A"] = 0] = "A"; - })(M.E2 || (M.E2 = {})); - var E2 = M.E2; + })(E2 = M.E2 || (M.E2 = {})); + var E3; (function (E3) { E3[E3["B"] = 'foo'.length] = "B"; - })(M.E3 || (M.E3 = {})); - var E3 = M.E3; + })(E3 = M.E3 || (M.E3 = {})); })(M || (M = {})); // Enum with no initializer in either declaration with constant members with the same root module var M1; (function (M1) { + var E1; (function (E1) { E1[E1["A"] = 0] = "A"; - })(M1.E1 || (M1.E1 = {})); - var E1 = M1.E1; + })(E1 = M1.E1 || (M1.E1 = {})); })(M1 || (M1 = {})); (function (M1) { + var E1; (function (E1) { E1[E1["B"] = 0] = "B"; - })(M1.E1 || (M1.E1 = {})); - var E1 = M1.E1; + })(E1 = M1.E1 || (M1.E1 = {})); })(M1 || (M1 = {})); (function (M1) { + var E1; (function (E1) { E1[E1["C"] = 0] = "C"; - })(M1.E1 || (M1.E1 = {})); - var E1 = M1.E1; + })(E1 = M1.E1 || (M1.E1 = {})); })(M1 || (M1 = {})); // Enum with initializer in only one of three declarations with constant members with the same root module var M2; (function (M2) { + var E1; (function (E1) { E1[E1["A"] = 0] = "A"; - })(M2.E1 || (M2.E1 = {})); - var E1 = M2.E1; + })(E1 = M2.E1 || (M2.E1 = {})); })(M2 || (M2 = {})); (function (M2) { + var E1; (function (E1) { E1[E1["B"] = 0] = "B"; - })(M2.E1 || (M2.E1 = {})); - var E1 = M2.E1; + })(E1 = M2.E1 || (M2.E1 = {})); })(M2 || (M2 = {})); (function (M2) { + var E1; (function (E1) { E1[E1["C"] = 0] = "C"; - })(M2.E1 || (M2.E1 = {})); - var E1 = M2.E1; + })(E1 = M2.E1 || (M2.E1 = {})); })(M2 || (M2 = {})); diff --git a/tests/baselines/reference/es5ModuleInternalNamedImports.js b/tests/baselines/reference/es5ModuleInternalNamedImports.js index 2fcbd5a53d8..cc596980889 100644 --- a/tests/baselines/reference/es5ModuleInternalNamedImports.js +++ b/tests/baselines/reference/es5ModuleInternalNamedImports.js @@ -59,9 +59,9 @@ define(["require", "exports"], function (require, exports) { function M_F() { } M.M_F = M_F; // enum + var M_E; (function (M_E) { - })(M.M_E || (M.M_E = {})); - var M_E = M.M_E; + })(M_E = M.M_E || (M.M_E = {})); // alias M.M_A = M_M; })(M = exports.M || (exports.M = {})); diff --git a/tests/baselines/reference/es6ModuleConstEnumDeclaration2.js b/tests/baselines/reference/es6ModuleConstEnumDeclaration2.js index 539ec121b6b..3e4475f2ffa 100644 --- a/tests/baselines/reference/es6ModuleConstEnumDeclaration2.js +++ b/tests/baselines/reference/es6ModuleConstEnumDeclaration2.js @@ -63,12 +63,12 @@ var x = 0 /* a */; var y = 0 /* x */; export var m1; (function (m1) { + var e3; (function (e3) { e3[e3["a"] = 0] = "a"; e3[e3["b"] = 1] = "b"; e3[e3["c"] = 2] = "c"; - })(m1.e3 || (m1.e3 = {})); - var e3 = m1.e3; + })(e3 = m1.e3 || (m1.e3 = {})); var e4; (function (e4) { e4[e4["x"] = 0] = "x"; @@ -82,12 +82,12 @@ export var m1; })(m1 || (m1 = {})); var m2; (function (m2) { + var e5; (function (e5) { e5[e5["a"] = 0] = "a"; e5[e5["b"] = 1] = "b"; e5[e5["c"] = 2] = "c"; - })(m2.e5 || (m2.e5 = {})); - var e5 = m2.e5; + })(e5 = m2.e5 || (m2.e5 = {})); var e6; (function (e6) { e6[e6["x"] = 0] = "x"; diff --git a/tests/baselines/reference/es6ModuleEnumDeclaration.js b/tests/baselines/reference/es6ModuleEnumDeclaration.js index 30c382a4508..91ba2efe8d3 100644 --- a/tests/baselines/reference/es6ModuleEnumDeclaration.js +++ b/tests/baselines/reference/es6ModuleEnumDeclaration.js @@ -62,12 +62,12 @@ var x = e1.a; var y = e2.x; export var m1; (function (m1) { + var e3; (function (e3) { e3[e3["a"] = 0] = "a"; e3[e3["b"] = 1] = "b"; e3[e3["c"] = 2] = "c"; - })(m1.e3 || (m1.e3 = {})); - var e3 = m1.e3; + })(e3 = m1.e3 || (m1.e3 = {})); var e4; (function (e4) { e4[e4["x"] = 0] = "x"; @@ -81,12 +81,12 @@ export var m1; })(m1 || (m1 = {})); var m2; (function (m2) { + var e5; (function (e5) { e5[e5["a"] = 0] = "a"; e5[e5["b"] = 1] = "b"; e5[e5["c"] = 2] = "c"; - })(m2.e5 || (m2.e5 = {})); - var e5 = m2.e5; + })(e5 = m2.e5 || (m2.e5 = {})); var e6; (function (e6) { e6[e6["x"] = 0] = "x"; diff --git a/tests/baselines/reference/es6ModuleInternalNamedImports.js b/tests/baselines/reference/es6ModuleInternalNamedImports.js index 22d15b9fd61..fe2e0217795 100644 --- a/tests/baselines/reference/es6ModuleInternalNamedImports.js +++ b/tests/baselines/reference/es6ModuleInternalNamedImports.js @@ -50,9 +50,9 @@ export var M; function M_F() { } M.M_F = M_F; // enum + var M_E; (function (M_E) { - })(M.M_E || (M.M_E = {})); - var M_E = M.M_E; + })(M_E = M.M_E || (M.M_E = {})); // alias M.M_A = M_M; })(M || (M = {})); diff --git a/tests/baselines/reference/es6ModuleInternalNamedImports2.js b/tests/baselines/reference/es6ModuleInternalNamedImports2.js index 35eabc9a65e..93d8f40c1d2 100644 --- a/tests/baselines/reference/es6ModuleInternalNamedImports2.js +++ b/tests/baselines/reference/es6ModuleInternalNamedImports2.js @@ -52,9 +52,9 @@ export var M; function M_F() { } M.M_F = M_F; // enum + var M_E; (function (M_E) { - })(M.M_E || (M.M_E = {})); - var M_E = M.M_E; + })(M_E = M.M_E || (M.M_E = {})); // alias M.M_A = M_M; })(M || (M = {})); diff --git a/tests/baselines/reference/exportAssignmentAndDeclaration.js b/tests/baselines/reference/exportAssignmentAndDeclaration.js index 9e87d733c6b..df1f2ef0d0a 100644 --- a/tests/baselines/reference/exportAssignmentAndDeclaration.js +++ b/tests/baselines/reference/exportAssignmentAndDeclaration.js @@ -13,12 +13,12 @@ export = C1; //// [foo_0.js] define(["require", "exports"], function (require, exports) { "use strict"; + var E1; (function (E1) { E1[E1["A"] = 0] = "A"; E1[E1["B"] = 1] = "B"; E1[E1["C"] = 2] = "C"; - })(exports.E1 || (exports.E1 = {})); - var E1 = exports.E1; + })(E1 = exports.E1 || (exports.E1 = {})); var C1 = (function () { function C1() { } diff --git a/tests/baselines/reference/exportCodeGen.js b/tests/baselines/reference/exportCodeGen.js index 41564c35d1a..d72c633731d 100644 --- a/tests/baselines/reference/exportCodeGen.js +++ b/tests/baselines/reference/exportCodeGen.js @@ -90,10 +90,10 @@ var D; // validate all exportable statements var E; (function (E) { + var Color; (function (Color) { Color[Color["Red"] = 0] = "Red"; - })(E.Color || (E.Color = {})); - var Color = E.Color; + })(Color = E.Color || (E.Color = {})); function fn() { } E.fn = fn; var C = (function () { diff --git a/tests/baselines/reference/exportsAndImports3-amd.js b/tests/baselines/reference/exportsAndImports3-amd.js index 0e315f1f18b..cbf30735182 100644 --- a/tests/baselines/reference/exportsAndImports3-amd.js +++ b/tests/baselines/reference/exportsAndImports3-amd.js @@ -49,12 +49,12 @@ define(["require", "exports"], function (require, exports) { }()); exports.C = C; exports.C1 = C; + var E; (function (E) { E[E["A"] = 0] = "A"; E[E["B"] = 1] = "B"; E[E["C"] = 2] = "C"; - })(exports.E || (exports.E = {})); - var E = exports.E; + })(E = exports.E || (exports.E = {})); exports.E1 = E; var M; (function (M) { diff --git a/tests/baselines/reference/exportsAndImports3-es6.js b/tests/baselines/reference/exportsAndImports3-es6.js index ea16836b1f2..85daa3f0f5c 100644 --- a/tests/baselines/reference/exportsAndImports3-es6.js +++ b/tests/baselines/reference/exportsAndImports3-es6.js @@ -45,12 +45,12 @@ class C { } exports.C = C; exports.C1 = C; +var E; (function (E) { E[E["A"] = 0] = "A"; E[E["B"] = 1] = "B"; E[E["C"] = 2] = "C"; -})(exports.E || (exports.E = {})); -var E = exports.E; +})(E = exports.E || (exports.E = {})); exports.E1 = E; var M; (function (M) { diff --git a/tests/baselines/reference/exportsAndImports3.js b/tests/baselines/reference/exportsAndImports3.js index 16115a192da..dbcd9486215 100644 --- a/tests/baselines/reference/exportsAndImports3.js +++ b/tests/baselines/reference/exportsAndImports3.js @@ -48,12 +48,12 @@ var C = (function () { }()); exports.C = C; exports.C1 = C; +var E; (function (E) { E[E["A"] = 0] = "A"; E[E["B"] = 1] = "B"; E[E["C"] = 2] = "C"; -})(exports.E || (exports.E = {})); -var E = exports.E; +})(E = exports.E || (exports.E = {})); exports.E1 = E; var M; (function (M) { diff --git a/tests/baselines/reference/genericRecursiveImplicitConstructorErrors2.js b/tests/baselines/reference/genericRecursiveImplicitConstructorErrors2.js index 6d65ee5531b..401a2e94b68 100644 --- a/tests/baselines/reference/genericRecursiveImplicitConstructorErrors2.js +++ b/tests/baselines/reference/genericRecursiveImplicitConstructorErrors2.js @@ -37,11 +37,11 @@ var TypeScript2; ; ; ; + var PullSymbolVisibility; (function (PullSymbolVisibility) { PullSymbolVisibility[PullSymbolVisibility["Private"] = 0] = "Private"; PullSymbolVisibility[PullSymbolVisibility["Public"] = 1] = "Public"; - })(TypeScript2.PullSymbolVisibility || (TypeScript2.PullSymbolVisibility = {})); - var PullSymbolVisibility = TypeScript2.PullSymbolVisibility; + })(PullSymbolVisibility = TypeScript2.PullSymbolVisibility || (TypeScript2.PullSymbolVisibility = {})); var PullSymbol = (function () { function PullSymbol(name, declKind) { } diff --git a/tests/baselines/reference/instantiatedModule.js b/tests/baselines/reference/instantiatedModule.js index d8ef427619a..8e7027d5fd7 100644 --- a/tests/baselines/reference/instantiatedModule.js +++ b/tests/baselines/reference/instantiatedModule.js @@ -101,11 +101,11 @@ var p2 = new m2.Point(); var p2 = new M2.Point(); var M3; (function (M3) { + var Color; (function (Color) { Color[Color["Blue"] = 0] = "Blue"; Color[Color["Red"] = 1] = "Red"; - })(M3.Color || (M3.Color = {})); - var Color = M3.Color; + })(Color = M3.Color || (M3.Color = {})); })(M3 || (M3 = {})); var m3; var m3 = M3; diff --git a/tests/baselines/reference/interfaceAssignmentCompat.js b/tests/baselines/reference/interfaceAssignmentCompat.js index edaebbd38a2..98586da24e5 100644 --- a/tests/baselines/reference/interfaceAssignmentCompat.js +++ b/tests/baselines/reference/interfaceAssignmentCompat.js @@ -55,12 +55,12 @@ M.test(); //// [interfaceAssignmentCompat.js] var M; (function (M) { + var Color; (function (Color) { Color[Color["Green"] = 0] = "Green"; Color[Color["Blue"] = 1] = "Blue"; Color[Color["Brown"] = 2] = "Brown"; - })(M.Color || (M.Color = {})); - var Color = M.Color; + })(Color = M.Color || (M.Color = {})); function CompareEyes(a, b) { return a.color - b.color; } diff --git a/tests/baselines/reference/internalAliasEnum.js b/tests/baselines/reference/internalAliasEnum.js index 6400cf26ddc..40fac82eb4d 100644 --- a/tests/baselines/reference/internalAliasEnum.js +++ b/tests/baselines/reference/internalAliasEnum.js @@ -16,12 +16,12 @@ module c { //// [internalAliasEnum.js] var a; (function (a) { + var weekend; (function (weekend) { weekend[weekend["Friday"] = 0] = "Friday"; weekend[weekend["Saturday"] = 1] = "Saturday"; weekend[weekend["Sunday"] = 2] = "Sunday"; - })(a.weekend || (a.weekend = {})); - var weekend = a.weekend; + })(weekend = a.weekend || (a.weekend = {})); })(a || (a = {})); var c; (function (c) { diff --git a/tests/baselines/reference/internalAliasEnumInsideLocalModuleWithExport.js b/tests/baselines/reference/internalAliasEnumInsideLocalModuleWithExport.js index dd30dc814ae..c7b8bf2cacc 100644 --- a/tests/baselines/reference/internalAliasEnumInsideLocalModuleWithExport.js +++ b/tests/baselines/reference/internalAliasEnumInsideLocalModuleWithExport.js @@ -17,12 +17,12 @@ export module c { "use strict"; var a; (function (a) { + var weekend; (function (weekend) { weekend[weekend["Friday"] = 0] = "Friday"; weekend[weekend["Saturday"] = 1] = "Saturday"; weekend[weekend["Sunday"] = 2] = "Sunday"; - })(a.weekend || (a.weekend = {})); - var weekend = a.weekend; + })(weekend = a.weekend || (a.weekend = {})); })(a = exports.a || (exports.a = {})); var c; (function (c) { diff --git a/tests/baselines/reference/internalAliasEnumInsideLocalModuleWithoutExport.js b/tests/baselines/reference/internalAliasEnumInsideLocalModuleWithoutExport.js index 7f00d69a8d6..267fffc7b70 100644 --- a/tests/baselines/reference/internalAliasEnumInsideLocalModuleWithoutExport.js +++ b/tests/baselines/reference/internalAliasEnumInsideLocalModuleWithoutExport.js @@ -17,12 +17,12 @@ export module c { "use strict"; var a; (function (a) { + var weekend; (function (weekend) { weekend[weekend["Friday"] = 0] = "Friday"; weekend[weekend["Saturday"] = 1] = "Saturday"; weekend[weekend["Sunday"] = 2] = "Sunday"; - })(a.weekend || (a.weekend = {})); - var weekend = a.weekend; + })(weekend = a.weekend || (a.weekend = {})); })(a = exports.a || (exports.a = {})); var c; (function (c) { diff --git a/tests/baselines/reference/internalAliasEnumInsideLocalModuleWithoutExportAccessError.js b/tests/baselines/reference/internalAliasEnumInsideLocalModuleWithoutExportAccessError.js index 8612e74f829..a44298b6864 100644 --- a/tests/baselines/reference/internalAliasEnumInsideLocalModuleWithoutExportAccessError.js +++ b/tests/baselines/reference/internalAliasEnumInsideLocalModuleWithoutExportAccessError.js @@ -18,12 +18,12 @@ var happyFriday = c.b.Friday; "use strict"; var a; (function (a) { + var weekend; (function (weekend) { weekend[weekend["Friday"] = 0] = "Friday"; weekend[weekend["Saturday"] = 1] = "Saturday"; weekend[weekend["Sunday"] = 2] = "Sunday"; - })(a.weekend || (a.weekend = {})); - var weekend = a.weekend; + })(weekend = a.weekend || (a.weekend = {})); })(a = exports.a || (exports.a = {})); var c; (function (c) { diff --git a/tests/baselines/reference/internalAliasEnumInsideTopLevelModuleWithExport.js b/tests/baselines/reference/internalAliasEnumInsideTopLevelModuleWithExport.js index c7396fded2a..8e11f60dcc7 100644 --- a/tests/baselines/reference/internalAliasEnumInsideTopLevelModuleWithExport.js +++ b/tests/baselines/reference/internalAliasEnumInsideTopLevelModuleWithExport.js @@ -16,12 +16,12 @@ define(["require", "exports"], function (require, exports) { "use strict"; var a; (function (a) { + var weekend; (function (weekend) { weekend[weekend["Friday"] = 0] = "Friday"; weekend[weekend["Saturday"] = 1] = "Saturday"; weekend[weekend["Sunday"] = 2] = "Sunday"; - })(a.weekend || (a.weekend = {})); - var weekend = a.weekend; + })(weekend = a.weekend || (a.weekend = {})); })(a = exports.a || (exports.a = {})); exports.b = a.weekend; exports.bVal = exports.b.Sunday; diff --git a/tests/baselines/reference/internalAliasEnumInsideTopLevelModuleWithoutExport.js b/tests/baselines/reference/internalAliasEnumInsideTopLevelModuleWithoutExport.js index 1cf1b0b8b16..8ec0dcea815 100644 --- a/tests/baselines/reference/internalAliasEnumInsideTopLevelModuleWithoutExport.js +++ b/tests/baselines/reference/internalAliasEnumInsideTopLevelModuleWithoutExport.js @@ -16,12 +16,12 @@ define(["require", "exports"], function (require, exports) { "use strict"; var a; (function (a) { + var weekend; (function (weekend) { weekend[weekend["Friday"] = 0] = "Friday"; weekend[weekend["Saturday"] = 1] = "Saturday"; weekend[weekend["Sunday"] = 2] = "Sunday"; - })(a.weekend || (a.weekend = {})); - var weekend = a.weekend; + })(weekend = a.weekend || (a.weekend = {})); })(a = exports.a || (exports.a = {})); var b = a.weekend; exports.bVal = b.Sunday; diff --git a/tests/baselines/reference/localImportNameVsGlobalName.js b/tests/baselines/reference/localImportNameVsGlobalName.js index 45ecdc4745e..916bdcc2960 100644 --- a/tests/baselines/reference/localImportNameVsGlobalName.js +++ b/tests/baselines/reference/localImportNameVsGlobalName.js @@ -16,13 +16,13 @@ module App { //// [localImportNameVsGlobalName.js] var Keyboard; (function (Keyboard) { + var Key; (function (Key) { Key[Key["UP"] = 0] = "UP"; Key[Key["DOWN"] = 1] = "DOWN"; Key[Key["LEFT"] = 2] = "LEFT"; Key[Key["RIGHT"] = 3] = "RIGHT"; - })(Keyboard.Key || (Keyboard.Key = {})); - var Key = Keyboard.Key; + })(Key = Keyboard.Key || (Keyboard.Key = {})); })(Keyboard || (Keyboard = {})); var App; (function (App) { diff --git a/tests/baselines/reference/mergeWithImportedType.js b/tests/baselines/reference/mergeWithImportedType.js index 89fc353d395..e8dc5a3c2f3 100644 --- a/tests/baselines/reference/mergeWithImportedType.js +++ b/tests/baselines/reference/mergeWithImportedType.js @@ -10,9 +10,9 @@ export type E = E; //// [f1.js] "use strict"; +var E; (function (E) { E[E["X"] = 0] = "X"; -})(exports.E || (exports.E = {})); -var E = exports.E; +})(E = exports.E || (exports.E = {})); //// [f2.js] "use strict"; diff --git a/tests/baselines/reference/mergedDeclarations3.js b/tests/baselines/reference/mergedDeclarations3.js index ddf94b46e81..d3b4e8fc9d5 100644 --- a/tests/baselines/reference/mergedDeclarations3.js +++ b/tests/baselines/reference/mergedDeclarations3.js @@ -42,11 +42,11 @@ M.foo.z // error //// [mergedDeclarations3.js] var M; (function (M) { + var Color; (function (Color) { Color[Color["Red"] = 0] = "Red"; Color[Color["Green"] = 1] = "Green"; - })(M.Color || (M.Color = {})); - var Color = M.Color; + })(Color = M.Color || (M.Color = {})); })(M || (M = {})); (function (M) { var Color; diff --git a/tests/baselines/reference/mergedModuleDeclarationCodeGen5.js b/tests/baselines/reference/mergedModuleDeclarationCodeGen5.js index 11a4773d63a..8891dbf61e2 100644 --- a/tests/baselines/reference/mergedModuleDeclarationCodeGen5.js +++ b/tests/baselines/reference/mergedModuleDeclarationCodeGen5.js @@ -45,9 +45,9 @@ var M; return fudge; }()); plop_1.fudge = fudge; + var plop; (function (plop) { - })(plop_1.plop || (plop_1.plop = {})); - var plop = plop_1.plop; + })(plop = plop_1.plop || (plop_1.plop = {})); // Emit these references as follows var v1 = gunk; // gunk var v2 = buz; // buz diff --git a/tests/baselines/reference/moduleCodeGenTest5.js b/tests/baselines/reference/moduleCodeGenTest5.js index fa09b432ab7..6a7113c0368 100644 --- a/tests/baselines/reference/moduleCodeGenTest5.js +++ b/tests/baselines/reference/moduleCodeGenTest5.js @@ -43,10 +43,10 @@ var C2 = (function () { C2.prototype.p2 = function () { }; return C2; }()); +var E1; (function (E1) { E1[E1["A"] = 0] = "A"; -})(exports.E1 || (exports.E1 = {})); -var E1 = exports.E1; +})(E1 = exports.E1 || (exports.E1 = {})); var u = E1.A; var E2; (function (E2) { diff --git a/tests/baselines/reference/moduleDuplicateIdentifiers.js b/tests/baselines/reference/moduleDuplicateIdentifiers.js index 097192ac73c..64b82f82500 100644 --- a/tests/baselines/reference/moduleDuplicateIdentifiers.js +++ b/tests/baselines/reference/moduleDuplicateIdentifiers.js @@ -67,12 +67,12 @@ var Kettle = (function () { exports.Kettle = Kettle; exports.Pot = 2; exports.Pot = 42; // Shouldn't error +var Utensils; (function (Utensils) { Utensils[Utensils["Spoon"] = 0] = "Spoon"; Utensils[Utensils["Fork"] = 1] = "Fork"; Utensils[Utensils["Knife"] = 2] = "Knife"; -})(exports.Utensils || (exports.Utensils = {})); -var Utensils = exports.Utensils; +})(Utensils = exports.Utensils || (exports.Utensils = {})); (function (Utensils) { Utensils[Utensils["Spork"] = 3] = "Spork"; -})(exports.Utensils || (exports.Utensils = {})); +})(Utensils = exports.Utensils || (exports.Utensils = {})); diff --git a/tests/baselines/reference/moduleSameValueDuplicateExportedBindings2.js b/tests/baselines/reference/moduleSameValueDuplicateExportedBindings2.js index 99a09af149a..208e90c69d8 100644 --- a/tests/baselines/reference/moduleSameValueDuplicateExportedBindings2.js +++ b/tests/baselines/reference/moduleSameValueDuplicateExportedBindings2.js @@ -15,11 +15,11 @@ export enum Animals { //// [c.js] "use strict"; +var Animals; (function (Animals) { Animals[Animals["Cat"] = 0] = "Cat"; Animals[Animals["Dog"] = 1] = "Dog"; -})(exports.Animals || (exports.Animals = {})); -var Animals = exports.Animals; +})(Animals = exports.Animals || (exports.Animals = {})); ; //// [b.js] "use strict"; diff --git a/tests/baselines/reference/moduleVisibilityTest1.js b/tests/baselines/reference/moduleVisibilityTest1.js index 52afcf169d9..537ec23b393 100644 --- a/tests/baselines/reference/moduleVisibilityTest1.js +++ b/tests/baselines/reference/moduleVisibilityTest1.js @@ -86,12 +86,12 @@ var M; function someExportedInnerFunc() { return -2; } InnerMod.someExportedInnerFunc = someExportedInnerFunc; })(InnerMod = M.InnerMod || (M.InnerMod = {})); + var E; (function (E) { E[E["A"] = 0] = "A"; E[E["B"] = 1] = "B"; E[E["C"] = 2] = "C"; - })(M.E || (M.E = {})); - var E = M.E; + })(E = M.E || (M.E = {})); M.x = 5; var y = M.x + M.x; var B = (function () { diff --git a/tests/baselines/reference/moduleWithStatementsOfEveryKind.js b/tests/baselines/reference/moduleWithStatementsOfEveryKind.js index 1558ef742ab..4243c9849cf 100644 --- a/tests/baselines/reference/moduleWithStatementsOfEveryKind.js +++ b/tests/baselines/reference/moduleWithStatementsOfEveryKind.js @@ -151,11 +151,11 @@ var Y; return A; }()); })(Module = Y.Module || (Y.Module = {})); + var Color; (function (Color) { Color[Color["Blue"] = 0] = "Blue"; Color[Color["Red"] = 1] = "Red"; - })(Y.Color || (Y.Color = {})); - var Color = Y.Color; + })(Color = Y.Color || (Y.Color = {})); Y.x = 12; function F(s) { return 2; diff --git a/tests/baselines/reference/nameCollision.js b/tests/baselines/reference/nameCollision.js index e51bd5e7c69..bb4f4a092f9 100644 --- a/tests/baselines/reference/nameCollision.js +++ b/tests/baselines/reference/nameCollision.js @@ -85,11 +85,11 @@ var Y; (function (Y_2) { var Y; (function (Y_3) { + var Y; (function (Y) { Y[Y["Red"] = 0] = "Red"; Y[Y["Blue"] = 1] = "Blue"; - })(Y_3.Y || (Y_3.Y = {})); - var Y = Y_3.Y; + })(Y = Y_3.Y || (Y_3.Y = {})); })(Y = Y_2.Y || (Y_2.Y = {})); })(Y || (Y = {})); // no collision, since interface doesn't diff --git a/tests/baselines/reference/parserEnum1.js b/tests/baselines/reference/parserEnum1.js index e54fff50c73..d2c29d847cd 100644 --- a/tests/baselines/reference/parserEnum1.js +++ b/tests/baselines/reference/parserEnum1.js @@ -10,10 +10,10 @@ //// [parserEnum1.js] "use strict"; +var SignatureFlags; (function (SignatureFlags) { SignatureFlags[SignatureFlags["None"] = 0] = "None"; SignatureFlags[SignatureFlags["IsIndexer"] = 1] = "IsIndexer"; SignatureFlags[SignatureFlags["IsStringIndexer"] = 2] = "IsStringIndexer"; SignatureFlags[SignatureFlags["IsNumberIndexer"] = 4] = "IsNumberIndexer"; -})(exports.SignatureFlags || (exports.SignatureFlags = {})); -var SignatureFlags = exports.SignatureFlags; +})(SignatureFlags = exports.SignatureFlags || (exports.SignatureFlags = {})); diff --git a/tests/baselines/reference/parserEnum2.js b/tests/baselines/reference/parserEnum2.js index 8e7da5c73cd..f5888addf75 100644 --- a/tests/baselines/reference/parserEnum2.js +++ b/tests/baselines/reference/parserEnum2.js @@ -10,10 +10,10 @@ //// [parserEnum2.js] "use strict"; +var SignatureFlags; (function (SignatureFlags) { SignatureFlags[SignatureFlags["None"] = 0] = "None"; SignatureFlags[SignatureFlags["IsIndexer"] = 1] = "IsIndexer"; SignatureFlags[SignatureFlags["IsStringIndexer"] = 2] = "IsStringIndexer"; SignatureFlags[SignatureFlags["IsNumberIndexer"] = 4] = "IsNumberIndexer"; -})(exports.SignatureFlags || (exports.SignatureFlags = {})); -var SignatureFlags = exports.SignatureFlags; +})(SignatureFlags = exports.SignatureFlags || (exports.SignatureFlags = {})); diff --git a/tests/baselines/reference/parserEnum3.js b/tests/baselines/reference/parserEnum3.js index 1d0c445d3a0..602171e8d94 100644 --- a/tests/baselines/reference/parserEnum3.js +++ b/tests/baselines/reference/parserEnum3.js @@ -6,6 +6,6 @@ //// [parserEnum3.js] "use strict"; +var SignatureFlags; (function (SignatureFlags) { -})(exports.SignatureFlags || (exports.SignatureFlags = {})); -var SignatureFlags = exports.SignatureFlags; +})(SignatureFlags = exports.SignatureFlags || (exports.SignatureFlags = {})); diff --git a/tests/baselines/reference/parserEnum4.js b/tests/baselines/reference/parserEnum4.js index 1a207960714..6af07b0a1c7 100644 --- a/tests/baselines/reference/parserEnum4.js +++ b/tests/baselines/reference/parserEnum4.js @@ -7,6 +7,6 @@ //// [parserEnum4.js] "use strict"; +var SignatureFlags; (function (SignatureFlags) { -})(exports.SignatureFlags || (exports.SignatureFlags = {})); -var SignatureFlags = exports.SignatureFlags; +})(SignatureFlags = exports.SignatureFlags || (exports.SignatureFlags = {})); diff --git a/tests/baselines/reference/parserRealSource10.js b/tests/baselines/reference/parserRealSource10.js index 253f856a990..11cfbdfa1f2 100644 --- a/tests/baselines/reference/parserRealSource10.js +++ b/tests/baselines/reference/parserRealSource10.js @@ -466,6 +466,7 @@ var __extends = (this && this.__extends) || function (d, b) { /// var TypeScript; (function (TypeScript) { + var TokenID; (function (TokenID) { // Keywords TokenID[TokenID["Any"] = 0] = "Any"; @@ -584,8 +585,7 @@ var TypeScript; TokenID[TokenID["Lim"] = 112] = "Lim"; TokenID[TokenID["LimFixed"] = 105] = "LimFixed"; TokenID[TokenID["LimKeyword"] = 53] = "LimKeyword"; - })(TypeScript.TokenID || (TypeScript.TokenID = {})); - var TokenID = TypeScript.TokenID; + })(TokenID = TypeScript.TokenID || (TypeScript.TokenID = {})); TypeScript.tokenTable = new TokenInfo[]; TypeScript.nodeTypeTable = new string[]; TypeScript.nodeTypeToTokTable = new number[]; @@ -602,6 +602,7 @@ var TypeScript; TypeScript.noRegexTable[TokenID.CloseBrace] = true; TypeScript.noRegexTable[TokenID.True] = true; TypeScript.noRegexTable[TokenID.False] = true; + var OperatorPrecedence; (function (OperatorPrecedence) { OperatorPrecedence[OperatorPrecedence["None"] = 0] = "None"; OperatorPrecedence[OperatorPrecedence["Comma"] = 1] = "Comma"; @@ -619,8 +620,8 @@ var TypeScript; OperatorPrecedence[OperatorPrecedence["Multiplicative"] = 13] = "Multiplicative"; OperatorPrecedence[OperatorPrecedence["Unary"] = 14] = "Unary"; OperatorPrecedence[OperatorPrecedence["Lim"] = 15] = "Lim"; - })(TypeScript.OperatorPrecedence || (TypeScript.OperatorPrecedence = {})); - var OperatorPrecedence = TypeScript.OperatorPrecedence; + })(OperatorPrecedence = TypeScript.OperatorPrecedence || (TypeScript.OperatorPrecedence = {})); + var Reservation; (function (Reservation) { Reservation[Reservation["None"] = 0] = "None"; Reservation[Reservation["Javascript"] = 1] = "Javascript"; @@ -630,8 +631,7 @@ var TypeScript; Reservation[Reservation["TypeScriptAndJS"] = 5] = "TypeScriptAndJS"; Reservation[Reservation["TypeScriptAndJSFuture"] = 6] = "TypeScriptAndJSFuture"; Reservation[Reservation["TypeScriptAndJSFutureStrict"] = 12] = "TypeScriptAndJSFutureStrict"; - })(TypeScript.Reservation || (TypeScript.Reservation = {})); - var Reservation = TypeScript.Reservation; + })(Reservation = TypeScript.Reservation || (TypeScript.Reservation = {})); var TokenInfo = (function () { function TokenInfo(tokenId, reservation, binopPrecedence, binopNodeType, unopPrecedence, unopNodeType, text, ers) { this.tokenId = tokenId; @@ -773,6 +773,7 @@ var TypeScript; return TypeScript.tokenTable[tokenId]; } TypeScript.lookupToken = lookupToken; + var TokenClass; (function (TokenClass) { TokenClass[TokenClass["Punctuation"] = 0] = "Punctuation"; TokenClass[TokenClass["Keyword"] = 1] = "Keyword"; @@ -781,8 +782,7 @@ var TypeScript; TokenClass[TokenClass["Whitespace"] = 4] = "Whitespace"; TokenClass[TokenClass["Identifier"] = 5] = "Identifier"; TokenClass[TokenClass["Literal"] = 6] = "Literal"; - })(TypeScript.TokenClass || (TypeScript.TokenClass = {})); - var TokenClass = TypeScript.TokenClass; + })(TokenClass = TypeScript.TokenClass || (TypeScript.TokenClass = {})); var SavedToken = (function () { function SavedToken(tok, minChar, limChar) { this.tok = tok; diff --git a/tests/baselines/reference/parserRealSource14.js b/tests/baselines/reference/parserRealSource14.js index c31a9dd6c72..907efc6f26a 100644 --- a/tests/baselines/reference/parserRealSource14.js +++ b/tests/baselines/reference/parserRealSource14.js @@ -957,6 +957,7 @@ var TypeScript; return AstPathContext; }()); TypeScript.AstPathContext = AstPathContext; + var GetAstPathOptions; (function (GetAstPathOptions) { GetAstPathOptions[GetAstPathOptions["Default"] = 0] = "Default"; GetAstPathOptions[GetAstPathOptions["EdgeInclusive"] = 1] = "EdgeInclusive"; @@ -968,8 +969,7 @@ var TypeScript; // we don't find the "precomment" attached to the errorneous empty stmt. //TODO: It would be nice to be able to get rid of this. GetAstPathOptions[GetAstPathOptions["DontPruneSearchBasedOnPosition"] = 2] = "DontPruneSearchBasedOnPosition"; - })(TypeScript.GetAstPathOptions || (TypeScript.GetAstPathOptions = {})); - var GetAstPathOptions = TypeScript.GetAstPathOptions; + })(GetAstPathOptions = TypeScript.GetAstPathOptions || (TypeScript.GetAstPathOptions = {})); /// /// Return the stack of AST nodes containing "position" /// diff --git a/tests/baselines/reference/parserRealSource2.js b/tests/baselines/reference/parserRealSource2.js index c41f88bc9c2..2028cbd4efe 100644 --- a/tests/baselines/reference/parserRealSource2.js +++ b/tests/baselines/reference/parserRealSource2.js @@ -281,6 +281,7 @@ var TypeScript; return (val & flag) != 0; } TypeScript.hasFlag = hasFlag; + var ErrorRecoverySet; (function (ErrorRecoverySet) { ErrorRecoverySet[ErrorRecoverySet["None"] = 0] = "None"; ErrorRecoverySet[ErrorRecoverySet["Comma"] = 1] = "Comma"; @@ -320,8 +321,8 @@ var TypeScript; ErrorRecoverySet[ErrorRecoverySet["ExprStart"] = 520158210] = "ExprStart"; ErrorRecoverySet[ErrorRecoverySet["StmtStart"] = 1608580098] = "StmtStart"; ErrorRecoverySet[ErrorRecoverySet["Postfix"] = 49280] = "Postfix"; - })(TypeScript.ErrorRecoverySet || (TypeScript.ErrorRecoverySet = {})); - var ErrorRecoverySet = TypeScript.ErrorRecoverySet; + })(ErrorRecoverySet = TypeScript.ErrorRecoverySet || (TypeScript.ErrorRecoverySet = {})); + var AllowedElements; (function (AllowedElements) { AllowedElements[AllowedElements["None"] = 0] = "None"; AllowedElements[AllowedElements["ModuleDeclarations"] = 4] = "ModuleDeclarations"; @@ -331,8 +332,8 @@ var TypeScript; AllowedElements[AllowedElements["Properties"] = 2048] = "Properties"; AllowedElements[AllowedElements["Global"] = 1052] = "Global"; AllowedElements[AllowedElements["QuickParse"] = 3100] = "QuickParse"; - })(TypeScript.AllowedElements || (TypeScript.AllowedElements = {})); - var AllowedElements = TypeScript.AllowedElements; + })(AllowedElements = TypeScript.AllowedElements || (TypeScript.AllowedElements = {})); + var Modifiers; (function (Modifiers) { Modifiers[Modifiers["None"] = 0] = "None"; Modifiers[Modifiers["Private"] = 1] = "Private"; @@ -343,8 +344,8 @@ var TypeScript; Modifiers[Modifiers["Getter"] = 32] = "Getter"; Modifiers[Modifiers["Setter"] = 64] = "Setter"; Modifiers[Modifiers["Static"] = 128] = "Static"; - })(TypeScript.Modifiers || (TypeScript.Modifiers = {})); - var Modifiers = TypeScript.Modifiers; + })(Modifiers = TypeScript.Modifiers || (TypeScript.Modifiers = {})); + var ASTFlags; (function (ASTFlags) { ASTFlags[ASTFlags["None"] = 0] = "None"; ASTFlags[ASTFlags["ExplicitSemicolon"] = 1] = "ExplicitSemicolon"; @@ -362,8 +363,8 @@ var TypeScript; // The flag is used to communicate this piece of information to the calling parseTerm, which intern will remove it. // Once we have a better way to associate information with nodes, this flag should not be used. ASTFlags[ASTFlags["SkipNextRParen"] = 2048] = "SkipNextRParen"; - })(TypeScript.ASTFlags || (TypeScript.ASTFlags = {})); - var ASTFlags = TypeScript.ASTFlags; + })(ASTFlags = TypeScript.ASTFlags || (TypeScript.ASTFlags = {})); + var DeclFlags; (function (DeclFlags) { DeclFlags[DeclFlags["None"] = 0] = "None"; DeclFlags[DeclFlags["Exported"] = 1] = "Exported"; @@ -374,8 +375,8 @@ var TypeScript; DeclFlags[DeclFlags["LocalStatic"] = 32] = "LocalStatic"; DeclFlags[DeclFlags["GetAccessor"] = 64] = "GetAccessor"; DeclFlags[DeclFlags["SetAccessor"] = 128] = "SetAccessor"; - })(TypeScript.DeclFlags || (TypeScript.DeclFlags = {})); - var DeclFlags = TypeScript.DeclFlags; + })(DeclFlags = TypeScript.DeclFlags || (TypeScript.DeclFlags = {})); + var ModuleFlags; (function (ModuleFlags) { ModuleFlags[ModuleFlags["None"] = 0] = "None"; ModuleFlags[ModuleFlags["Exported"] = 1] = "Exported"; @@ -391,8 +392,8 @@ var TypeScript; ModuleFlags[ModuleFlags["IsWholeFile"] = 1024] = "IsWholeFile"; ModuleFlags[ModuleFlags["IsDynamic"] = 2048] = "IsDynamic"; ModuleFlags[ModuleFlags["MustCaptureThis"] = 4096] = "MustCaptureThis"; - })(TypeScript.ModuleFlags || (TypeScript.ModuleFlags = {})); - var ModuleFlags = TypeScript.ModuleFlags; + })(ModuleFlags = TypeScript.ModuleFlags || (TypeScript.ModuleFlags = {})); + var SymbolFlags; (function (SymbolFlags) { SymbolFlags[SymbolFlags["None"] = 0] = "None"; SymbolFlags[SymbolFlags["Exported"] = 1] = "Exported"; @@ -415,8 +416,8 @@ var TypeScript; SymbolFlags[SymbolFlags["RecursivelyReferenced"] = 131072] = "RecursivelyReferenced"; SymbolFlags[SymbolFlags["Bound"] = 262144] = "Bound"; SymbolFlags[SymbolFlags["CompilerGenerated"] = 524288] = "CompilerGenerated"; - })(TypeScript.SymbolFlags || (TypeScript.SymbolFlags = {})); - var SymbolFlags = TypeScript.SymbolFlags; + })(SymbolFlags = TypeScript.SymbolFlags || (TypeScript.SymbolFlags = {})); + var VarFlags; (function (VarFlags) { VarFlags[VarFlags["None"] = 0] = "None"; VarFlags[VarFlags["Exported"] = 1] = "Exported"; @@ -437,8 +438,8 @@ var TypeScript; VarFlags[VarFlags["ClassSuperMustBeFirstCallInConstructor"] = 32768] = "ClassSuperMustBeFirstCallInConstructor"; VarFlags[VarFlags["Constant"] = 65536] = "Constant"; VarFlags[VarFlags["MustCaptureThis"] = 131072] = "MustCaptureThis"; - })(TypeScript.VarFlags || (TypeScript.VarFlags = {})); - var VarFlags = TypeScript.VarFlags; + })(VarFlags = TypeScript.VarFlags || (TypeScript.VarFlags = {})); + var FncFlags; (function (FncFlags) { FncFlags[FncFlags["None"] = 0] = "None"; FncFlags[FncFlags["Exported"] = 1] = "Exported"; @@ -461,19 +462,19 @@ var TypeScript; FncFlags[FncFlags["IsFunctionExpression"] = 131072] = "IsFunctionExpression"; FncFlags[FncFlags["ClassMethod"] = 262144] = "ClassMethod"; FncFlags[FncFlags["ClassPropertyMethodExported"] = 524288] = "ClassPropertyMethodExported"; - })(TypeScript.FncFlags || (TypeScript.FncFlags = {})); - var FncFlags = TypeScript.FncFlags; + })(FncFlags = TypeScript.FncFlags || (TypeScript.FncFlags = {})); + var SignatureFlags; (function (SignatureFlags) { SignatureFlags[SignatureFlags["None"] = 0] = "None"; SignatureFlags[SignatureFlags["IsIndexer"] = 1] = "IsIndexer"; SignatureFlags[SignatureFlags["IsStringIndexer"] = 2] = "IsStringIndexer"; SignatureFlags[SignatureFlags["IsNumberIndexer"] = 4] = "IsNumberIndexer"; - })(TypeScript.SignatureFlags || (TypeScript.SignatureFlags = {})); - var SignatureFlags = TypeScript.SignatureFlags; + })(SignatureFlags = TypeScript.SignatureFlags || (TypeScript.SignatureFlags = {})); function ToDeclFlags(fncOrVarOrSymbolOrModuleFlags) { return fncOrVarOrSymbolOrModuleFlags; } TypeScript.ToDeclFlags = ToDeclFlags; + var TypeFlags; (function (TypeFlags) { TypeFlags[TypeFlags["None"] = 0] = "None"; TypeFlags[TypeFlags["HasImplementation"] = 1] = "HasImplementation"; @@ -484,8 +485,8 @@ var TypeScript; TypeFlags[TypeFlags["HasBaseType"] = 32] = "HasBaseType"; TypeFlags[TypeFlags["HasBaseTypeOfObject"] = 64] = "HasBaseTypeOfObject"; TypeFlags[TypeFlags["IsClass"] = 128] = "IsClass"; - })(TypeScript.TypeFlags || (TypeScript.TypeFlags = {})); - var TypeFlags = TypeScript.TypeFlags; + })(TypeFlags = TypeScript.TypeFlags || (TypeScript.TypeFlags = {})); + var TypeRelationshipFlags; (function (TypeRelationshipFlags) { TypeRelationshipFlags[TypeRelationshipFlags["SuccessfulComparison"] = 0] = "SuccessfulComparison"; TypeRelationshipFlags[TypeRelationshipFlags["SourceIsNullTargetIsVoidOrUndefined"] = 1] = "SourceIsNullTargetIsVoidOrUndefined"; @@ -495,19 +496,18 @@ var TypeScript; TypeRelationshipFlags[TypeRelationshipFlags["IncompatibleReturnTypes"] = 16] = "IncompatibleReturnTypes"; TypeRelationshipFlags[TypeRelationshipFlags["IncompatiblePropertyTypes"] = 32] = "IncompatiblePropertyTypes"; TypeRelationshipFlags[TypeRelationshipFlags["IncompatibleParameterTypes"] = 64] = "IncompatibleParameterTypes"; - })(TypeScript.TypeRelationshipFlags || (TypeScript.TypeRelationshipFlags = {})); - var TypeRelationshipFlags = TypeScript.TypeRelationshipFlags; + })(TypeRelationshipFlags = TypeScript.TypeRelationshipFlags || (TypeScript.TypeRelationshipFlags = {})); + var CodeGenTarget; (function (CodeGenTarget) { CodeGenTarget[CodeGenTarget["ES3"] = 0] = "ES3"; CodeGenTarget[CodeGenTarget["ES5"] = 1] = "ES5"; - })(TypeScript.CodeGenTarget || (TypeScript.CodeGenTarget = {})); - var CodeGenTarget = TypeScript.CodeGenTarget; + })(CodeGenTarget = TypeScript.CodeGenTarget || (TypeScript.CodeGenTarget = {})); + var ModuleGenTarget; (function (ModuleGenTarget) { ModuleGenTarget[ModuleGenTarget["Synchronous"] = 0] = "Synchronous"; ModuleGenTarget[ModuleGenTarget["Asynchronous"] = 1] = "Asynchronous"; ModuleGenTarget[ModuleGenTarget["Local"] = 2] = "Local"; - })(TypeScript.ModuleGenTarget || (TypeScript.ModuleGenTarget = {})); - var ModuleGenTarget = TypeScript.ModuleGenTarget; + })(ModuleGenTarget = TypeScript.ModuleGenTarget || (TypeScript.ModuleGenTarget = {})); // Compiler defaults to generating ES5-compliant code for // - getters and setters TypeScript.codeGenTarget = CodeGenTarget.ES3; diff --git a/tests/baselines/reference/parserRealSource3.js b/tests/baselines/reference/parserRealSource3.js index 38e9028297b..f0e22395cfe 100644 --- a/tests/baselines/reference/parserRealSource3.js +++ b/tests/baselines/reference/parserRealSource3.js @@ -126,6 +126,7 @@ module TypeScript { var TypeScript; (function (TypeScript) { // Note: Any addition to the NodeType should also be supported with addition to AstWalkerDetailCallback + var NodeType; (function (NodeType) { NodeType[NodeType["None"] = 0] = "None"; NodeType[NodeType["Empty"] = 1] = "Empty"; @@ -236,6 +237,5 @@ var TypeScript; NodeType[NodeType["Debugger"] = 106] = "Debugger"; NodeType[NodeType["GeneralNode"] = 71] = "GeneralNode"; NodeType[NodeType["LastAsg"] = 41] = "LastAsg"; - })(TypeScript.NodeType || (TypeScript.NodeType = {})); - var NodeType = TypeScript.NodeType; + })(NodeType = TypeScript.NodeType || (TypeScript.NodeType = {})); })(TypeScript || (TypeScript = {})); diff --git a/tests/baselines/reference/privacyLocalInternalReferenceImportWithExport.js b/tests/baselines/reference/privacyLocalInternalReferenceImportWithExport.js index 0ab6d3e531e..b328e8b3036 100644 --- a/tests/baselines/reference/privacyLocalInternalReferenceImportWithExport.js +++ b/tests/baselines/reference/privacyLocalInternalReferenceImportWithExport.js @@ -163,11 +163,11 @@ var m_private; return c_private; }()); m_private.c_private = c_private; + var e_private; (function (e_private) { e_private[e_private["Happy"] = 0] = "Happy"; e_private[e_private["Grumpy"] = 1] = "Grumpy"; - })(m_private.e_private || (m_private.e_private = {})); - var e_private = m_private.e_private; + })(e_private = m_private.e_private || (m_private.e_private = {})); function f_private() { return new c_private(); } @@ -192,11 +192,11 @@ var m_public; return c_public; }()); m_public.c_public = c_public; + var e_public; (function (e_public) { e_public[e_public["Happy"] = 0] = "Happy"; e_public[e_public["Grumpy"] = 1] = "Grumpy"; - })(m_public.e_public || (m_public.e_public = {})); - var e_public = m_public.e_public; + })(e_public = m_public.e_public || (m_public.e_public = {})); function f_public() { return new c_public(); } diff --git a/tests/baselines/reference/privacyLocalInternalReferenceImportWithoutExport.js b/tests/baselines/reference/privacyLocalInternalReferenceImportWithoutExport.js index 96f7b74b474..7d4a80a0d29 100644 --- a/tests/baselines/reference/privacyLocalInternalReferenceImportWithoutExport.js +++ b/tests/baselines/reference/privacyLocalInternalReferenceImportWithoutExport.js @@ -164,11 +164,11 @@ define(["require", "exports"], function (require, exports) { return c_private; }()); m_private.c_private = c_private; + var e_private; (function (e_private) { e_private[e_private["Happy"] = 0] = "Happy"; e_private[e_private["Grumpy"] = 1] = "Grumpy"; - })(m_private.e_private || (m_private.e_private = {})); - var e_private = m_private.e_private; + })(e_private = m_private.e_private || (m_private.e_private = {})); function f_private() { return new c_private(); } @@ -193,11 +193,11 @@ define(["require", "exports"], function (require, exports) { return c_public; }()); m_public.c_public = c_public; + var e_public; (function (e_public) { e_public[e_public["Happy"] = 0] = "Happy"; e_public[e_public["Grumpy"] = 1] = "Grumpy"; - })(m_public.e_public || (m_public.e_public = {})); - var e_public = m_public.e_public; + })(e_public = m_public.e_public || (m_public.e_public = {})); function f_public() { return new c_public(); } diff --git a/tests/baselines/reference/privacyTopLevelInternalReferenceImportWithExport.js b/tests/baselines/reference/privacyTopLevelInternalReferenceImportWithExport.js index 852ae4d3f19..a01f1ef611f 100644 --- a/tests/baselines/reference/privacyTopLevelInternalReferenceImportWithExport.js +++ b/tests/baselines/reference/privacyTopLevelInternalReferenceImportWithExport.js @@ -111,11 +111,11 @@ define(["require", "exports"], function (require, exports) { return c_private; }()); m_private.c_private = c_private; + var e_private; (function (e_private) { e_private[e_private["Happy"] = 0] = "Happy"; e_private[e_private["Grumpy"] = 1] = "Grumpy"; - })(m_private.e_private || (m_private.e_private = {})); - var e_private = m_private.e_private; + })(e_private = m_private.e_private || (m_private.e_private = {})); function f_private() { return new c_private(); } @@ -140,11 +140,11 @@ define(["require", "exports"], function (require, exports) { return c_public; }()); m_public.c_public = c_public; + var e_public; (function (e_public) { e_public[e_public["Happy"] = 0] = "Happy"; e_public[e_public["Grumpy"] = 1] = "Grumpy"; - })(m_public.e_public || (m_public.e_public = {})); - var e_public = m_public.e_public; + })(e_public = m_public.e_public || (m_public.e_public = {})); function f_public() { return new c_public(); } diff --git a/tests/baselines/reference/privacyTopLevelInternalReferenceImportWithoutExport.js b/tests/baselines/reference/privacyTopLevelInternalReferenceImportWithoutExport.js index 1241165a8dc..2554085b94b 100644 --- a/tests/baselines/reference/privacyTopLevelInternalReferenceImportWithoutExport.js +++ b/tests/baselines/reference/privacyTopLevelInternalReferenceImportWithoutExport.js @@ -112,11 +112,11 @@ define(["require", "exports"], function (require, exports) { return c_private; }()); m_private.c_private = c_private; + var e_private; (function (e_private) { e_private[e_private["Happy"] = 0] = "Happy"; e_private[e_private["Grumpy"] = 1] = "Grumpy"; - })(m_private.e_private || (m_private.e_private = {})); - var e_private = m_private.e_private; + })(e_private = m_private.e_private || (m_private.e_private = {})); function f_private() { return new c_private(); } @@ -141,11 +141,11 @@ define(["require", "exports"], function (require, exports) { return c_public; }()); m_public.c_public = c_public; + var e_public; (function (e_public) { e_public[e_public["Happy"] = 0] = "Happy"; e_public[e_public["Grumpy"] = 1] = "Grumpy"; - })(m_public.e_public || (m_public.e_public = {})); - var e_public = m_public.e_public; + })(e_public = m_public.e_public || (m_public.e_public = {})); function f_public() { return new c_public(); } diff --git a/tests/baselines/reference/scannerEnum1.js b/tests/baselines/reference/scannerEnum1.js index e785a07ace2..5d8b506e62f 100644 --- a/tests/baselines/reference/scannerEnum1.js +++ b/tests/baselines/reference/scannerEnum1.js @@ -6,8 +6,8 @@ //// [scannerEnum1.js] "use strict"; +var CodeGenTarget; (function (CodeGenTarget) { CodeGenTarget[CodeGenTarget["ES3"] = 0] = "ES3"; CodeGenTarget[CodeGenTarget["ES5"] = 1] = "ES5"; -})(exports.CodeGenTarget || (exports.CodeGenTarget = {})); -var CodeGenTarget = exports.CodeGenTarget; +})(CodeGenTarget = exports.CodeGenTarget || (exports.CodeGenTarget = {})); diff --git a/tests/baselines/reference/systemModuleConstEnumsSeparateCompilation.js b/tests/baselines/reference/systemModuleConstEnumsSeparateCompilation.js index 0cd6f472bdb..ca68d952ab3 100644 --- a/tests/baselines/reference/systemModuleConstEnumsSeparateCompilation.js +++ b/tests/baselines/reference/systemModuleConstEnumsSeparateCompilation.js @@ -29,10 +29,10 @@ System.register([], function (exports_1, context_1) { TopLevelConstEnum[TopLevelConstEnum["X"] = 0] = "X"; })(TopLevelConstEnum || (TopLevelConstEnum = {})); (function (M) { + var NonTopLevelConstEnum; (function (NonTopLevelConstEnum) { NonTopLevelConstEnum[NonTopLevelConstEnum["X"] = 0] = "X"; - })(M.NonTopLevelConstEnum || (M.NonTopLevelConstEnum = {})); - var NonTopLevelConstEnum = M.NonTopLevelConstEnum; + })(NonTopLevelConstEnum = M.NonTopLevelConstEnum || (M.NonTopLevelConstEnum = {})); })(M || (M = {})); } }; diff --git a/tests/baselines/reference/systemModuleDeclarationMerging.js b/tests/baselines/reference/systemModuleDeclarationMerging.js index 4dac69c2641..88b1b201495 100644 --- a/tests/baselines/reference/systemModuleDeclarationMerging.js +++ b/tests/baselines/reference/systemModuleDeclarationMerging.js @@ -34,7 +34,7 @@ System.register([], function (exports_1, context_1) { })(C = C || (C = {})); exports_1("C", C); (function (E) { - })(E || (E = {})); + })(E = E || (E = {})); exports_1("E", E); (function (E) { var x; diff --git a/tests/baselines/reference/systemModuleNonTopLevelModuleMembers.js b/tests/baselines/reference/systemModuleNonTopLevelModuleMembers.js index b0498b23f79..db907c49d91 100644 --- a/tests/baselines/reference/systemModuleNonTopLevelModuleMembers.js +++ b/tests/baselines/reference/systemModuleNonTopLevelModuleMembers.js @@ -34,7 +34,7 @@ System.register([], function (exports_1, context_1) { exports_1("TopLevelModule", TopLevelModule); (function (TopLevelEnum) { TopLevelEnum[TopLevelEnum["E"] = 0] = "E"; - })(TopLevelEnum || (TopLevelEnum = {})); + })(TopLevelEnum = TopLevelEnum || (TopLevelEnum = {})); exports_1("TopLevelEnum", TopLevelEnum); (function (TopLevelModule2) { var NonTopLevelClass = (function () { @@ -49,10 +49,10 @@ System.register([], function (exports_1, context_1) { })(NonTopLevelModule = TopLevelModule2.NonTopLevelModule || (TopLevelModule2.NonTopLevelModule = {})); function NonTopLevelFunction() { } TopLevelModule2.NonTopLevelFunction = NonTopLevelFunction; + var NonTopLevelEnum; (function (NonTopLevelEnum) { NonTopLevelEnum[NonTopLevelEnum["E"] = 0] = "E"; - })(TopLevelModule2.NonTopLevelEnum || (TopLevelModule2.NonTopLevelEnum = {})); - var NonTopLevelEnum = TopLevelModule2.NonTopLevelEnum; + })(NonTopLevelEnum = TopLevelModule2.NonTopLevelEnum || (TopLevelModule2.NonTopLevelEnum = {})); })(TopLevelModule2 = TopLevelModule2 || (TopLevelModule2 = {})); exports_1("TopLevelModule2", TopLevelModule2); } diff --git a/tests/baselines/reference/typeofAnExportedType.js b/tests/baselines/reference/typeofAnExportedType.js index 91b19d9bebd..69602d3e4c3 100644 --- a/tests/baselines/reference/typeofAnExportedType.js +++ b/tests/baselines/reference/typeofAnExportedType.js @@ -74,10 +74,10 @@ var M; M.C = C; })(M = exports.M || (exports.M = {})); exports.Z = M; +var E; (function (E) { E[E["A"] = 0] = "A"; -})(exports.E || (exports.E = {})); -var E = exports.E; +})(E = exports.E || (exports.E = {})); function foo() { } exports.foo = foo; (function (foo) {