Skip to content

Commit 6ff1bbe

Browse files
Merge pull request #6597 from plantain-00/use_const_rather_than_var_when_target_es6
Use const rather than var when target es6
2 parents f947f6a + d06d66c commit 6ff1bbe

11 files changed

+34
-31
lines changed

src/compiler/emitter.ts

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6100,14 +6100,17 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
61006100
if (contains(externalImports, node)) {
61016101
const isExportedImport = node.kind === SyntaxKind.ImportEqualsDeclaration && (node.flags & NodeFlags.Export) !== 0;
61026102
const namespaceDeclaration = getNamespaceDeclarationNode(node);
6103+
const varOrConst = (languageVersion <= ScriptTarget.ES5) ? "var " : "const ";
61036104

61046105
if (modulekind !== ModuleKind.AMD) {
61056106
emitLeadingComments(node);
61066107
emitStart(node);
61076108
if (namespaceDeclaration && !isDefaultImport(node)) {
61086109
// import x = require("foo")
61096110
// import * as x from "foo"
6110-
if (!isExportedImport) write("var ");
6111+
if (!isExportedImport) {
6112+
write(varOrConst);
6113+
};
61116114
emitModuleMemberName(namespaceDeclaration);
61126115
write(" = ");
61136116
}
@@ -6119,7 +6122,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
61196122
// import d, { x, y } from "foo"
61206123
const isNakedImport = SyntaxKind.ImportDeclaration && !(<ImportDeclaration>node).importClause;
61216124
if (!isNakedImport) {
6122-
write("var ");
6125+
write(varOrConst);
61236126
write(getGeneratedNameForNode(<ImportDeclaration>node));
61246127
write(" = ");
61256128
}
@@ -6146,7 +6149,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
61466149
}
61476150
else if (namespaceDeclaration && isDefaultImport(node)) {
61486151
// import d, * as x from "foo"
6149-
write("var ");
6152+
write(varOrConst);
61506153
emitModuleMemberName(namespaceDeclaration);
61516154
write(" = ");
61526155
write(getGeneratedNameForNode(<ImportDeclaration>node));

tests/baselines/reference/asyncImportedPromise_es6.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
2424
step((generator = generator.call(thisArg, _arguments)).next());
2525
});
2626
};
27-
var task_1 = require("./task");
27+
const task_1 = require("./task");
2828
class Test {
2929
example() {
3030
return __awaiter(this, void 0, task_1.Task, function* () { return; });

tests/baselines/reference/es6ImportDefaultBindingFollowedWithNamedImport.js

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -31,16 +31,16 @@ Object.defineProperty(exports, "__esModule", { value: true });
3131
exports.default = {};
3232
//// [es6ImportDefaultBindingFollowedWithNamedImport_1.js]
3333
"use strict";
34-
var es6ImportDefaultBindingFollowedWithNamedImport_0_1 = require("./es6ImportDefaultBindingFollowedWithNamedImport_0");
34+
const es6ImportDefaultBindingFollowedWithNamedImport_0_1 = require("./es6ImportDefaultBindingFollowedWithNamedImport_0");
3535
var x1 = es6ImportDefaultBindingFollowedWithNamedImport_0_1.a;
36-
var es6ImportDefaultBindingFollowedWithNamedImport_0_2 = require("./es6ImportDefaultBindingFollowedWithNamedImport_0");
36+
const es6ImportDefaultBindingFollowedWithNamedImport_0_2 = require("./es6ImportDefaultBindingFollowedWithNamedImport_0");
3737
var x1 = es6ImportDefaultBindingFollowedWithNamedImport_0_2.a;
38-
var es6ImportDefaultBindingFollowedWithNamedImport_0_3 = require("./es6ImportDefaultBindingFollowedWithNamedImport_0");
38+
const es6ImportDefaultBindingFollowedWithNamedImport_0_3 = require("./es6ImportDefaultBindingFollowedWithNamedImport_0");
3939
var x1 = es6ImportDefaultBindingFollowedWithNamedImport_0_3.x;
4040
var x1 = es6ImportDefaultBindingFollowedWithNamedImport_0_3.a;
41-
var es6ImportDefaultBindingFollowedWithNamedImport_0_4 = require("./es6ImportDefaultBindingFollowedWithNamedImport_0");
41+
const es6ImportDefaultBindingFollowedWithNamedImport_0_4 = require("./es6ImportDefaultBindingFollowedWithNamedImport_0");
4242
var x1 = es6ImportDefaultBindingFollowedWithNamedImport_0_4.x;
43-
var es6ImportDefaultBindingFollowedWithNamedImport_0_5 = require("./es6ImportDefaultBindingFollowedWithNamedImport_0");
43+
const es6ImportDefaultBindingFollowedWithNamedImport_0_5 = require("./es6ImportDefaultBindingFollowedWithNamedImport_0");
4444
var x1 = es6ImportDefaultBindingFollowedWithNamedImport_0_5.m;
4545

4646

tests/baselines/reference/es6ImportNameSpaceImport.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ import * as nameSpaceBinding2 from "./es6ImportNameSpaceImport_0"; // elide this
1515
exports.a = 10;
1616
//// [es6ImportNameSpaceImport_1.js]
1717
"use strict";
18-
var nameSpaceBinding = require("./es6ImportNameSpaceImport_0");
18+
const nameSpaceBinding = require("./es6ImportNameSpaceImport_0");
1919
var x = nameSpaceBinding.a;
2020

2121

tests/baselines/reference/es6ImportNamedImport.js

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -53,26 +53,26 @@ exports.z2 = 10;
5353
exports.aaaa = 10;
5454
//// [es6ImportNamedImport_1.js]
5555
"use strict";
56-
var es6ImportNamedImport_0_1 = require("./es6ImportNamedImport_0");
56+
const es6ImportNamedImport_0_1 = require("./es6ImportNamedImport_0");
5757
var xxxx = es6ImportNamedImport_0_1.a;
58-
var es6ImportNamedImport_0_2 = require("./es6ImportNamedImport_0");
58+
const es6ImportNamedImport_0_2 = require("./es6ImportNamedImport_0");
5959
var xxxx = es6ImportNamedImport_0_2.a;
60-
var es6ImportNamedImport_0_3 = require("./es6ImportNamedImport_0");
60+
const es6ImportNamedImport_0_3 = require("./es6ImportNamedImport_0");
6161
var xxxx = es6ImportNamedImport_0_3.x;
6262
var xxxx = es6ImportNamedImport_0_3.a;
63-
var es6ImportNamedImport_0_4 = require("./es6ImportNamedImport_0");
63+
const es6ImportNamedImport_0_4 = require("./es6ImportNamedImport_0");
6464
var xxxx = es6ImportNamedImport_0_4.x;
65-
var es6ImportNamedImport_0_5 = require("./es6ImportNamedImport_0");
65+
const es6ImportNamedImport_0_5 = require("./es6ImportNamedImport_0");
6666
var xxxx = es6ImportNamedImport_0_5.m;
67-
var es6ImportNamedImport_0_6 = require("./es6ImportNamedImport_0");
67+
const es6ImportNamedImport_0_6 = require("./es6ImportNamedImport_0");
6868
var xxxx = es6ImportNamedImport_0_6.a1;
6969
var xxxx = es6ImportNamedImport_0_6.x1;
70-
var es6ImportNamedImport_0_7 = require("./es6ImportNamedImport_0");
70+
const es6ImportNamedImport_0_7 = require("./es6ImportNamedImport_0");
7171
var xxxx = es6ImportNamedImport_0_7.a1;
7272
var xxxx = es6ImportNamedImport_0_7.x1;
73-
var es6ImportNamedImport_0_8 = require("./es6ImportNamedImport_0");
73+
const es6ImportNamedImport_0_8 = require("./es6ImportNamedImport_0");
7474
var z111 = es6ImportNamedImport_0_8.z1;
75-
var es6ImportNamedImport_0_9 = require("./es6ImportNamedImport_0");
75+
const es6ImportNamedImport_0_9 = require("./es6ImportNamedImport_0");
7676
var z2 = es6ImportNamedImport_0_9.z2; // z2 shouldn't give redeclare error
7777

7878

tests/baselines/reference/es6ImportNamedImportInExportAssignment.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ export = a;
1313
exports.a = 10;
1414
//// [es6ImportNamedImportInExportAssignment_1.js]
1515
"use strict";
16-
var es6ImportNamedImportInExportAssignment_0_1 = require("./es6ImportNamedImportInExportAssignment_0");
16+
const es6ImportNamedImportInExportAssignment_0_1 = require("./es6ImportNamedImportInExportAssignment_0");
1717
module.exports = es6ImportNamedImportInExportAssignment_0_1.a;
1818

1919

tests/baselines/reference/exportsAndImports1-es6.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ exports.M = t1_1.M;
6767
exports.a = t1_1.a;
6868
//// [t3.js]
6969
"use strict";
70-
var t1_1 = require("./t1");
70+
const t1_1 = require("./t1");
7171
exports.v = t1_1.v;
7272
exports.f = t1_1.f;
7373
exports.C = t1_1.C;

tests/baselines/reference/exportsAndImports2-es6.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,6 @@ exports.y = t1_1.x;
2424
exports.x = t1_1.y;
2525
//// [t3.js]
2626
"use strict";
27-
var t1_1 = require("./t1");
27+
const t1_1 = require("./t1");
2828
exports.y = t1_1.x;
2929
exports.x = t1_1.y;

tests/baselines/reference/exportsAndImports3-es6.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ exports.M = t1_1.M1;
6969
exports.a = t1_1.a1;
7070
//// [t3.js]
7171
"use strict";
72-
var t1_1 = require("./t1");
72+
const t1_1 = require("./t1");
7373
exports.v = t1_1.v1;
7474
exports.f = t1_1.f1;
7575
exports.C = t1_1.C1;

tests/baselines/reference/exportsAndImports4-es6.js

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -45,24 +45,24 @@ Object.defineProperty(exports, "__esModule", { value: true });
4545
exports.default = "hello";
4646
//// [t3.js]
4747
"use strict";
48-
var a = require("./t1");
48+
const a = require("./t1");
4949
exports.a = a;
5050
a.default;
51-
var t1_1 = require("./t1");
51+
const t1_1 = require("./t1");
5252
exports.b = t1_1.default;
5353
t1_1.default;
54-
var c = require("./t1");
54+
const c = require("./t1");
5555
exports.c = c;
5656
c.default;
57-
var t1_2 = require("./t1");
57+
const t1_2 = require("./t1");
5858
exports.d = t1_2.default;
5959
t1_2.default;
60-
var t1_3 = require("./t1"), e2 = t1_3;
60+
const t1_3 = require("./t1"), e2 = t1_3;
6161
exports.e1 = t1_3.default;
6262
exports.e2 = e2;
6363
t1_3.default;
6464
e2.default;
65-
var t1_4 = require("./t1");
65+
const t1_4 = require("./t1");
6666
exports.f1 = t1_4.default;
6767
exports.f2 = t1_4.default;
6868
t1_4.default;

0 commit comments

Comments
 (0)