mirror of
https://github.com/microsoft/TypeScript.git
synced 2026-02-05 16:38:05 -06:00
Es6 module emit for export VarDeclaration, export LexicalDeclaration
Conflicts: src/compiler/emitter.ts tests/baselines/reference/es6ExportAll.js tests/baselines/reference/es6ExportClauseWithoutModuleSpecifier.js tests/baselines/reference/es6ImportNamedImport.js
This commit is contained in:
parent
29b221430f
commit
05932fdddf
@ -4202,6 +4202,11 @@ module ts {
|
||||
if (!(node.flags & NodeFlags.Export)) {
|
||||
emitStartOfVariableDeclarationList(node.declarationList);
|
||||
}
|
||||
else if (languageVersion >= ScriptTarget.ES6 && node.parent.kind === SyntaxKind.SourceFile) {
|
||||
// Exported ES6 module member
|
||||
write("export ");
|
||||
emitStartOfVariableDeclarationList(node.declarationList);
|
||||
}
|
||||
emitCommaList(node.declarationList.declarations);
|
||||
write(";");
|
||||
if (languageVersion < ScriptTarget.ES6 && node.parent === currentSourceFile) {
|
||||
|
||||
@ -49,7 +49,7 @@ m.x.toString();
|
||||
|
||||
|
||||
//// [constDeclarations_access_1.js]
|
||||
x = 0;
|
||||
export const x = 0;
|
||||
//// [constDeclarations_access_2.js]
|
||||
// Errors
|
||||
m.x = 1;
|
||||
|
||||
@ -9,7 +9,7 @@ import defaultBinding from "es6ImportDefaultBinding_0";
|
||||
|
||||
|
||||
//// [es6ImportDefaultBinding_0.js]
|
||||
a = 10;
|
||||
export var a = 10;
|
||||
//// [es6ImportDefaultBinding_1.js]
|
||||
|
||||
|
||||
|
||||
@ -16,9 +16,9 @@ import defaultBinding, { m, } from "es6ImportDefaultBindingFollowedWithNamedImp
|
||||
|
||||
|
||||
//// [es6ImportDefaultBindingFollowedWithNamedImport_0.js]
|
||||
a = 10;
|
||||
x = a;
|
||||
m = a;
|
||||
export var a = 10;
|
||||
export var x = a;
|
||||
export var m = a;
|
||||
//// [es6ImportDefaultBindingFollowedWithNamedImport_1.js]
|
||||
|
||||
|
||||
|
||||
@ -9,7 +9,7 @@ import defaultBinding, * as nameSpaceBinding from "es6ImportDefaultBindingFollo
|
||||
var x: number = nameSpaceBinding.a;
|
||||
|
||||
//// [es6ImportDefaultBindingFollowedWithNamespaceBinding_0.js]
|
||||
a = 10;
|
||||
export var a = 10;
|
||||
//// [es6ImportDefaultBindingFollowedWithNamespaceBinding_1.js]
|
||||
import defaultBinding, * as nameSpaceBinding from "es6ImportDefaultBindingFollowedWithNamespaceBinding_0";
|
||||
var x = nameSpaceBinding.a;
|
||||
|
||||
@ -9,7 +9,7 @@ import * as nameSpaceBinding from "es6ImportNameSpaceImport_0";
|
||||
|
||||
|
||||
//// [es6ImportNameSpaceImport_0.js]
|
||||
a = 10;
|
||||
export var a = 10;
|
||||
//// [es6ImportNameSpaceImport_1.js]
|
||||
|
||||
|
||||
|
||||
@ -20,11 +20,11 @@ import { a1 as a11, x1 as x11 } from "es6ImportNamedImport_0";
|
||||
|
||||
|
||||
//// [es6ImportNamedImport_0.js]
|
||||
a = 10;
|
||||
x = a;
|
||||
m = a;
|
||||
a1 = 10;
|
||||
x1 = 10;
|
||||
export var a = 10;
|
||||
export var x = a;
|
||||
export var m = a;
|
||||
export var a1 = 10;
|
||||
export var x1 = 10;
|
||||
//// [es6ImportNamedImport_1.js]
|
||||
|
||||
|
||||
|
||||
@ -13,9 +13,9 @@ import , { a } from "es6ImportNamedImportParsingError_0";
|
||||
import { a }, from "es6ImportNamedImportParsingError_0";
|
||||
|
||||
//// [es6ImportNamedImportParsingError_0.js]
|
||||
a = 10;
|
||||
x = a;
|
||||
m = a;
|
||||
export var a = 10;
|
||||
export var x = a;
|
||||
export var m = a;
|
||||
//// [es6ImportNamedImportParsingError_1.js]
|
||||
from;
|
||||
"es6ImportNamedImportParsingError_0";
|
||||
|
||||
@ -9,7 +9,7 @@ import "es6ImportWithoutFromClause_0";
|
||||
|
||||
|
||||
//// [es6ImportWithoutFromClause_0.js]
|
||||
a = 10;
|
||||
export var a = 10;
|
||||
//// [es6ImportWithoutFromClause_1.js]
|
||||
import "es6ImportWithoutFromClause_0";
|
||||
|
||||
|
||||
37
tests/baselines/reference/es6ModuleConst.js
Normal file
37
tests/baselines/reference/es6ModuleConst.js
Normal file
@ -0,0 +1,37 @@
|
||||
//// [es6ModuleConst.ts]
|
||||
export const a = "hello";
|
||||
export const x: string = a, y = x;
|
||||
const b = y;
|
||||
const c: string = b, d = c;
|
||||
export module m1 {
|
||||
export const k = a;
|
||||
export const l: string = b, m = k;
|
||||
const n = m1.k;
|
||||
const o: string = n, p = k;
|
||||
}
|
||||
module m2 {
|
||||
export const k = a;
|
||||
export const l: string = b, m = k;
|
||||
const n = m1.k;
|
||||
const o: string = n, p = k;
|
||||
}
|
||||
|
||||
//// [es6ModuleConst.js]
|
||||
export const a = "hello";
|
||||
export const x = a, y = x;
|
||||
const b = y;
|
||||
const c = b, d = c;
|
||||
var m1;
|
||||
(function (m1) {
|
||||
m1.k = a;
|
||||
m1.l = b, m1.m = m1.k;
|
||||
const n = m1.k;
|
||||
const o = n, p = m1.k;
|
||||
})(m1 = m1 || (m1 = {}));
|
||||
var m2;
|
||||
(function (m2) {
|
||||
m2.k = a;
|
||||
m2.l = b, m2.m = m2.k;
|
||||
const n = m1.k;
|
||||
const o = n, p = m2.k;
|
||||
})(m2 || (m2 = {}));
|
||||
70
tests/baselines/reference/es6ModuleConst.types
Normal file
70
tests/baselines/reference/es6ModuleConst.types
Normal file
@ -0,0 +1,70 @@
|
||||
=== tests/cases/compiler/es6ModuleConst.ts ===
|
||||
export const a = "hello";
|
||||
>a : string
|
||||
|
||||
export const x: string = a, y = x;
|
||||
>x : string
|
||||
>a : string
|
||||
>y : string
|
||||
>x : string
|
||||
|
||||
const b = y;
|
||||
>b : string
|
||||
>y : string
|
||||
|
||||
const c: string = b, d = c;
|
||||
>c : string
|
||||
>b : string
|
||||
>d : string
|
||||
>c : string
|
||||
|
||||
export module m1 {
|
||||
>m1 : typeof m1
|
||||
|
||||
export const k = a;
|
||||
>k : string
|
||||
>a : string
|
||||
|
||||
export const l: string = b, m = k;
|
||||
>l : string
|
||||
>b : string
|
||||
>m : string
|
||||
>k : string
|
||||
|
||||
const n = m1.k;
|
||||
>n : string
|
||||
>m1.k : string
|
||||
>m1 : typeof m1
|
||||
>k : string
|
||||
|
||||
const o: string = n, p = k;
|
||||
>o : string
|
||||
>n : string
|
||||
>p : string
|
||||
>k : string
|
||||
}
|
||||
module m2 {
|
||||
>m2 : typeof m2
|
||||
|
||||
export const k = a;
|
||||
>k : string
|
||||
>a : string
|
||||
|
||||
export const l: string = b, m = k;
|
||||
>l : string
|
||||
>b : string
|
||||
>m : string
|
||||
>k : string
|
||||
|
||||
const n = m1.k;
|
||||
>n : string
|
||||
>m1.k : string
|
||||
>m1 : typeof m1
|
||||
>k : string
|
||||
|
||||
const o: string = n, p = k;
|
||||
>o : string
|
||||
>n : string
|
||||
>p : string
|
||||
>k : string
|
||||
}
|
||||
37
tests/baselines/reference/es6ModuleLet.js
Normal file
37
tests/baselines/reference/es6ModuleLet.js
Normal file
@ -0,0 +1,37 @@
|
||||
//// [es6ModuleLet.ts]
|
||||
export let a = "hello";
|
||||
export let x: string = a, y = x;
|
||||
let b = y;
|
||||
let c: string = b, d = c;
|
||||
export module m1 {
|
||||
export let k = a;
|
||||
export let l: string = b, m = k;
|
||||
let n = m1.k;
|
||||
let o: string = n, p = k;
|
||||
}
|
||||
module m2 {
|
||||
export let k = a;
|
||||
export let l: string = b, m = k;
|
||||
let n = m1.k;
|
||||
let o: string = n, p = k;
|
||||
}
|
||||
|
||||
//// [es6ModuleLet.js]
|
||||
export let a = "hello";
|
||||
export let x = a, y = x;
|
||||
let b = y;
|
||||
let c = b, d = c;
|
||||
var m1;
|
||||
(function (m1) {
|
||||
m1.k = a;
|
||||
m1.l = b, m1.m = m1.k;
|
||||
let n = m1.k;
|
||||
let o = n, p = m1.k;
|
||||
})(m1 = m1 || (m1 = {}));
|
||||
var m2;
|
||||
(function (m2) {
|
||||
m2.k = a;
|
||||
m2.l = b, m2.m = m2.k;
|
||||
let n = m1.k;
|
||||
let o = n, p = m2.k;
|
||||
})(m2 || (m2 = {}));
|
||||
70
tests/baselines/reference/es6ModuleLet.types
Normal file
70
tests/baselines/reference/es6ModuleLet.types
Normal file
@ -0,0 +1,70 @@
|
||||
=== tests/cases/compiler/es6ModuleLet.ts ===
|
||||
export let a = "hello";
|
||||
>a : string
|
||||
|
||||
export let x: string = a, y = x;
|
||||
>x : string
|
||||
>a : string
|
||||
>y : string
|
||||
>x : string
|
||||
|
||||
let b = y;
|
||||
>b : string
|
||||
>y : string
|
||||
|
||||
let c: string = b, d = c;
|
||||
>c : string
|
||||
>b : string
|
||||
>d : string
|
||||
>c : string
|
||||
|
||||
export module m1 {
|
||||
>m1 : typeof m1
|
||||
|
||||
export let k = a;
|
||||
>k : string
|
||||
>a : string
|
||||
|
||||
export let l: string = b, m = k;
|
||||
>l : string
|
||||
>b : string
|
||||
>m : string
|
||||
>k : string
|
||||
|
||||
let n = m1.k;
|
||||
>n : string
|
||||
>m1.k : string
|
||||
>m1 : typeof m1
|
||||
>k : string
|
||||
|
||||
let o: string = n, p = k;
|
||||
>o : string
|
||||
>n : string
|
||||
>p : string
|
||||
>k : string
|
||||
}
|
||||
module m2 {
|
||||
>m2 : typeof m2
|
||||
|
||||
export let k = a;
|
||||
>k : string
|
||||
>a : string
|
||||
|
||||
export let l: string = b, m = k;
|
||||
>l : string
|
||||
>b : string
|
||||
>m : string
|
||||
>k : string
|
||||
|
||||
let n = m1.k;
|
||||
>n : string
|
||||
>m1.k : string
|
||||
>m1 : typeof m1
|
||||
>k : string
|
||||
|
||||
let o: string = n, p = k;
|
||||
>o : string
|
||||
>n : string
|
||||
>p : string
|
||||
>k : string
|
||||
}
|
||||
37
tests/baselines/reference/es6ModuleVariableStatement.js
Normal file
37
tests/baselines/reference/es6ModuleVariableStatement.js
Normal file
@ -0,0 +1,37 @@
|
||||
//// [es6ModuleVariableStatement.ts]
|
||||
export var a = "hello";
|
||||
export var x: string = a, y = x;
|
||||
var b = y;
|
||||
var c: string = b, d = c;
|
||||
export module m1 {
|
||||
export var k = a;
|
||||
export var l: string = b, m = k;
|
||||
var n = m1.k;
|
||||
var o: string = n, p = k;
|
||||
}
|
||||
module m2 {
|
||||
export var k = a;
|
||||
export var l: string = b, m = k;
|
||||
var n = m1.k;
|
||||
var o: string = n, p = k;
|
||||
}
|
||||
|
||||
//// [es6ModuleVariableStatement.js]
|
||||
export var a = "hello";
|
||||
export var x = a, y = x;
|
||||
var b = y;
|
||||
var c = b, d = c;
|
||||
var m1;
|
||||
(function (m1) {
|
||||
m1.k = a;
|
||||
m1.l = b, m1.m = m1.k;
|
||||
var n = m1.k;
|
||||
var o = n, p = m1.k;
|
||||
})(m1 = m1 || (m1 = {}));
|
||||
var m2;
|
||||
(function (m2) {
|
||||
m2.k = a;
|
||||
m2.l = b, m2.m = m2.k;
|
||||
var n = m1.k;
|
||||
var o = n, p = m2.k;
|
||||
})(m2 || (m2 = {}));
|
||||
70
tests/baselines/reference/es6ModuleVariableStatement.types
Normal file
70
tests/baselines/reference/es6ModuleVariableStatement.types
Normal file
@ -0,0 +1,70 @@
|
||||
=== tests/cases/compiler/es6ModuleVariableStatement.ts ===
|
||||
export var a = "hello";
|
||||
>a : string
|
||||
|
||||
export var x: string = a, y = x;
|
||||
>x : string
|
||||
>a : string
|
||||
>y : string
|
||||
>x : string
|
||||
|
||||
var b = y;
|
||||
>b : string
|
||||
>y : string
|
||||
|
||||
var c: string = b, d = c;
|
||||
>c : string
|
||||
>b : string
|
||||
>d : string
|
||||
>c : string
|
||||
|
||||
export module m1 {
|
||||
>m1 : typeof m1
|
||||
|
||||
export var k = a;
|
||||
>k : string
|
||||
>a : string
|
||||
|
||||
export var l: string = b, m = k;
|
||||
>l : string
|
||||
>b : string
|
||||
>m : string
|
||||
>k : string
|
||||
|
||||
var n = m1.k;
|
||||
>n : string
|
||||
>m1.k : string
|
||||
>m1 : typeof m1
|
||||
>k : string
|
||||
|
||||
var o: string = n, p = k;
|
||||
>o : string
|
||||
>n : string
|
||||
>p : string
|
||||
>k : string
|
||||
}
|
||||
module m2 {
|
||||
>m2 : typeof m2
|
||||
|
||||
export var k = a;
|
||||
>k : string
|
||||
>a : string
|
||||
|
||||
export var l: string = b, m = k;
|
||||
>l : string
|
||||
>b : string
|
||||
>m : string
|
||||
>k : string
|
||||
|
||||
var n = m1.k;
|
||||
>n : string
|
||||
>m1.k : string
|
||||
>m1 : typeof m1
|
||||
>k : string
|
||||
|
||||
var o: string = n, p = k;
|
||||
>o : string
|
||||
>n : string
|
||||
>p : string
|
||||
>k : string
|
||||
}
|
||||
17
tests/cases/compiler/es6ModuleConst.ts
Normal file
17
tests/cases/compiler/es6ModuleConst.ts
Normal file
@ -0,0 +1,17 @@
|
||||
// @target: ES6
|
||||
export const a = "hello";
|
||||
export const x: string = a, y = x;
|
||||
const b = y;
|
||||
const c: string = b, d = c;
|
||||
export module m1 {
|
||||
export const k = a;
|
||||
export const l: string = b, m = k;
|
||||
const n = m1.k;
|
||||
const o: string = n, p = k;
|
||||
}
|
||||
module m2 {
|
||||
export const k = a;
|
||||
export const l: string = b, m = k;
|
||||
const n = m1.k;
|
||||
const o: string = n, p = k;
|
||||
}
|
||||
17
tests/cases/compiler/es6ModuleLet.ts
Normal file
17
tests/cases/compiler/es6ModuleLet.ts
Normal file
@ -0,0 +1,17 @@
|
||||
// @target: ES6
|
||||
export let a = "hello";
|
||||
export let x: string = a, y = x;
|
||||
let b = y;
|
||||
let c: string = b, d = c;
|
||||
export module m1 {
|
||||
export let k = a;
|
||||
export let l: string = b, m = k;
|
||||
let n = m1.k;
|
||||
let o: string = n, p = k;
|
||||
}
|
||||
module m2 {
|
||||
export let k = a;
|
||||
export let l: string = b, m = k;
|
||||
let n = m1.k;
|
||||
let o: string = n, p = k;
|
||||
}
|
||||
17
tests/cases/compiler/es6ModuleVariableStatement.ts
Normal file
17
tests/cases/compiler/es6ModuleVariableStatement.ts
Normal file
@ -0,0 +1,17 @@
|
||||
// @target: ES6
|
||||
export var a = "hello";
|
||||
export var x: string = a, y = x;
|
||||
var b = y;
|
||||
var c: string = b, d = c;
|
||||
export module m1 {
|
||||
export var k = a;
|
||||
export var l: string = b, m = k;
|
||||
var n = m1.k;
|
||||
var o: string = n, p = k;
|
||||
}
|
||||
module m2 {
|
||||
export var k = a;
|
||||
export var l: string = b, m = k;
|
||||
var n = m1.k;
|
||||
var o: string = n, p = k;
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user