Merge branch 'master' of https://github.com/Microsoft/TypeScript into esSymbols

This commit is contained in:
Jason Freeman 2015-02-12 11:03:35 -08:00
commit 486cebd224
26 changed files with 4919 additions and 4418 deletions

1
.gitignore vendored
View File

@ -44,3 +44,4 @@ scripts/ior.js
scripts/*.js.map
coverage/
internal/
**/.DS_Store

8486
bin/tsc.js

File diff suppressed because it is too large Load Diff

9
bin/typescript.d.ts vendored
View File

@ -686,7 +686,10 @@ declare module "typescript" {
endOfFileToken: Node;
fileName: string;
text: string;
amdDependencies: string[];
amdDependencies: {
path: string;
name: string;
}[];
amdModuleName: string;
referencedFiles: FileReference[];
hasNoDefaultLib: boolean;
@ -1367,7 +1370,7 @@ declare module "typescript" {
function createNode(kind: SyntaxKind): Node;
function forEachChild<T>(node: Node, cbNode: (node: Node) => T, cbNodeArray?: (nodes: Node[]) => T): T;
function modifierToFlag(token: SyntaxKind): NodeFlags;
function updateSourceFile(sourceFile: SourceFile, newText: string, textChangeRange: TextChangeRange): SourceFile;
function updateSourceFile(sourceFile: SourceFile, newText: string, textChangeRange: TextChangeRange, aggressiveChecks?: boolean): SourceFile;
function isEvalOrArgumentsIdentifier(node: Node): boolean;
function createSourceFile(fileName: string, sourceText: string, languageVersion: ScriptTarget, setParentNodes?: boolean): SourceFile;
function isLeftHandSideExpression(expr: Expression): boolean;
@ -1858,7 +1861,7 @@ declare module "typescript" {
}
function createLanguageServiceSourceFile(fileName: string, scriptSnapshot: IScriptSnapshot, scriptTarget: ScriptTarget, version: string, setNodeParents: boolean): SourceFile;
var disableIncrementalParsing: boolean;
function updateLanguageServiceSourceFile(sourceFile: SourceFile, scriptSnapshot: IScriptSnapshot, version: string, textChangeRange: TextChangeRange): SourceFile;
function updateLanguageServiceSourceFile(sourceFile: SourceFile, scriptSnapshot: IScriptSnapshot, version: string, textChangeRange: TextChangeRange, aggressiveChecks?: boolean): SourceFile;
function createDocumentRegistry(): DocumentRegistry;
function preProcessFile(sourceText: string, readImportFiles?: boolean): PreProcessedFileInfo;
function createLanguageService(host: LanguageServiceHost, documentRegistry?: DocumentRegistry): LanguageService;

View File

@ -686,7 +686,10 @@ declare module ts {
endOfFileToken: Node;
fileName: string;
text: string;
amdDependencies: string[];
amdDependencies: {
path: string;
name: string;
}[];
amdModuleName: string;
referencedFiles: FileReference[];
hasNoDefaultLib: boolean;
@ -1367,7 +1370,7 @@ declare module ts {
function createNode(kind: SyntaxKind): Node;
function forEachChild<T>(node: Node, cbNode: (node: Node) => T, cbNodeArray?: (nodes: Node[]) => T): T;
function modifierToFlag(token: SyntaxKind): NodeFlags;
function updateSourceFile(sourceFile: SourceFile, newText: string, textChangeRange: TextChangeRange): SourceFile;
function updateSourceFile(sourceFile: SourceFile, newText: string, textChangeRange: TextChangeRange, aggressiveChecks?: boolean): SourceFile;
function isEvalOrArgumentsIdentifier(node: Node): boolean;
function createSourceFile(fileName: string, sourceText: string, languageVersion: ScriptTarget, setParentNodes?: boolean): SourceFile;
function isLeftHandSideExpression(expr: Expression): boolean;
@ -1858,7 +1861,7 @@ declare module ts {
}
function createLanguageServiceSourceFile(fileName: string, scriptSnapshot: IScriptSnapshot, scriptTarget: ScriptTarget, version: string, setNodeParents: boolean): SourceFile;
var disableIncrementalParsing: boolean;
function updateLanguageServiceSourceFile(sourceFile: SourceFile, scriptSnapshot: IScriptSnapshot, version: string, textChangeRange: TextChangeRange): SourceFile;
function updateLanguageServiceSourceFile(sourceFile: SourceFile, scriptSnapshot: IScriptSnapshot, version: string, textChangeRange: TextChangeRange, aggressiveChecks?: boolean): SourceFile;
function createDocumentRegistry(): DocumentRegistry;
function preProcessFile(sourceText: string, readImportFiles?: boolean): PreProcessedFileInfo;
function createLanguageService(host: LanguageServiceHost, documentRegistry?: DocumentRegistry): LanguageService;

File diff suppressed because it is too large Load Diff

View File

@ -4061,11 +4061,25 @@ module ts {
}
});
}
function sortAMDModules(amdModules: {name: string; path: string}[]) {
// AMD modules with declared variable names go first
return amdModules.sort((moduleA, moduleB) => {
if (moduleA.name === moduleB.name) {
return 0;
} else if (!moduleA.name) {
return 1;
} else {
return -1;
}
});
}
function emitAMDModule(node: SourceFile, startIndex: number) {
var imports = getExternalImportDeclarations(node);
writeLine();
write("define(");
sortAMDModules(node.amdDependencies);
if (node.amdModuleName) {
write("\"" + node.amdModuleName + "\", ");
}
@ -4075,7 +4089,7 @@ module ts {
emitLiteral(<LiteralExpression>getExternalModuleImportDeclarationExpression(imp));
});
forEach(node.amdDependencies, amdDependency => {
var text = "\"" + amdDependency + "\"";
var text = "\"" + amdDependency.path + "\"";
write(", ");
write(text);
});
@ -4084,6 +4098,12 @@ module ts {
write(", ");
emit(imp.name);
});
forEach(node.amdDependencies, amdDependency => {
if (amdDependency.name) {
write(", ");
write(amdDependency.name);
}
});
write(") {");
increaseIndent();
emitCaptureThisForNodeIfNecessary(node);

View File

@ -4751,7 +4751,7 @@ module ts {
function processReferenceComments(sourceFile: SourceFile): void {
var triviaScanner = createScanner(sourceFile.languageVersion, /*skipTrivia*/false, sourceText);
var referencedFiles: FileReference[] = [];
var amdDependencies: string[] = [];
var amdDependencies: {path: string; name: string}[] = [];
var amdModuleName: string;
// Keep scanning all the leading trivia in the file until we get to something that
@ -4791,10 +4791,17 @@ module ts {
amdModuleName = amdModuleNameMatchResult[2];
}
var amdDependencyRegEx = /^\/\/\/\s*<amd-dependency\s+path\s*=\s*('|")(.+?)\1/gim;
var amdDependencyRegEx = /^\/\/\/\s*<amd-dependency\s/gim;
var pathRegex = /\spath\s*=\s*('|")(.+?)\1/gim;
var nameRegex = /\sname\s*=\s*('|")(.+?)\1/gim;
var amdDependencyMatchResult = amdDependencyRegEx.exec(comment);
if (amdDependencyMatchResult) {
amdDependencies.push(amdDependencyMatchResult[2]);
var pathMatchResult = pathRegex.exec(comment);
var nameMatchResult = nameRegex.exec(comment);
if (pathMatchResult) {
var amdDependency = {path: pathMatchResult[2], name: nameMatchResult ? nameMatchResult[2] : undefined };
amdDependencies.push(amdDependency);
}
}
}
}

View File

@ -888,7 +888,7 @@ module ts {
fileName: string;
text: string;
amdDependencies: string[];
amdDependencies: {path: string; name: string}[];
amdModuleName: string;
referencedFiles: FileReference[];

View File

@ -725,7 +725,7 @@ module ts {
public statements: NodeArray<Statement>;
public endOfFileToken: Node;
public amdDependencies: string[];
public amdDependencies: {name: string; path: string}[];
public amdModuleName: string;
public referencedFiles: FileReference[];

View File

@ -724,7 +724,10 @@ declare module "typescript" {
endOfFileToken: Node;
fileName: string;
text: string;
amdDependencies: string[];
amdDependencies: {
path: string;
name: string;
}[];
amdModuleName: string;
referencedFiles: FileReference[];
hasNoDefaultLib: boolean;

View File

@ -2198,9 +2198,16 @@ declare module "typescript" {
text: string;
>text : string
amdDependencies: string[];
>amdDependencies : string[]
amdDependencies: {
>amdDependencies : { path: string; name: string; }[]
path: string;
>path : string
name: string;
>name : string
}[];
amdModuleName: string;
>amdModuleName : string

View File

@ -755,7 +755,10 @@ declare module "typescript" {
endOfFileToken: Node;
fileName: string;
text: string;
amdDependencies: string[];
amdDependencies: {
path: string;
name: string;
}[];
amdModuleName: string;
referencedFiles: FileReference[];
hasNoDefaultLib: boolean;

View File

@ -2342,9 +2342,16 @@ declare module "typescript" {
text: string;
>text : string
amdDependencies: string[];
>amdDependencies : string[]
amdDependencies: {
>amdDependencies : { path: string; name: string; }[]
path: string;
>path : string
name: string;
>name : string
}[];
amdModuleName: string;
>amdModuleName : string

View File

@ -756,7 +756,10 @@ declare module "typescript" {
endOfFileToken: Node;
fileName: string;
text: string;
amdDependencies: string[];
amdDependencies: {
path: string;
name: string;
}[];
amdModuleName: string;
referencedFiles: FileReference[];
hasNoDefaultLib: boolean;

View File

@ -2294,9 +2294,16 @@ declare module "typescript" {
text: string;
>text : string
amdDependencies: string[];
>amdDependencies : string[]
amdDependencies: {
>amdDependencies : { path: string; name: string; }[]
path: string;
>path : string
name: string;
>name : string
}[];
amdModuleName: string;
>amdModuleName : string

View File

@ -793,7 +793,10 @@ declare module "typescript" {
endOfFileToken: Node;
fileName: string;
text: string;
amdDependencies: string[];
amdDependencies: {
path: string;
name: string;
}[];
amdModuleName: string;
referencedFiles: FileReference[];
hasNoDefaultLib: boolean;

View File

@ -2467,9 +2467,16 @@ declare module "typescript" {
text: string;
>text : string
amdDependencies: string[];
>amdDependencies : string[]
amdDependencies: {
>amdDependencies : { path: string; name: string; }[]
path: string;
>path : string
name: string;
>name : string
}[];
amdModuleName: string;
>amdModuleName : string

View File

@ -0,0 +1,10 @@
tests/cases/compiler/amdDependencyCommentName1.ts(3,21): error TS2307: Cannot find external module 'm2'.
==== tests/cases/compiler/amdDependencyCommentName1.ts (1 errors) ====
///<amd-dependency path='bar' name='b'/>
import m1 = require("m2")
~~~~
!!! error TS2307: Cannot find external module 'm2'.
m1.f();

View File

@ -0,0 +1,10 @@
//// [amdDependencyCommentName1.ts]
///<amd-dependency path='bar' name='b'/>
import m1 = require("m2")
m1.f();
//// [amdDependencyCommentName1.js]
///<amd-dependency path='bar' name='b'/>
var m1 = require("m2");
m1.f();

View File

@ -0,0 +1,10 @@
tests/cases/compiler/amdDependencyCommentName2.ts(3,21): error TS2307: Cannot find external module 'm2'.
==== tests/cases/compiler/amdDependencyCommentName2.ts (1 errors) ====
///<amd-dependency path='bar' name='b'/>
import m1 = require("m2")
~~~~
!!! error TS2307: Cannot find external module 'm2'.
m1.f();

View File

@ -0,0 +1,11 @@
//// [amdDependencyCommentName2.ts]
///<amd-dependency path='bar' name='b'/>
import m1 = require("m2")
m1.f();
//// [amdDependencyCommentName2.js]
///<amd-dependency path='bar' name='b'/>
define(["require", "exports", "m2", "bar"], function (require, exports, m1, b) {
m1.f();
});

View File

@ -0,0 +1,12 @@
tests/cases/compiler/amdDependencyCommentName3.ts(5,21): error TS2307: Cannot find external module 'm2'.
==== tests/cases/compiler/amdDependencyCommentName3.ts (1 errors) ====
///<amd-dependency path='bar' name='b'/>
///<amd-dependency path='foo'/>
///<amd-dependency path='goo' name='c'/>
import m1 = require("m2")
~~~~
!!! error TS2307: Cannot find external module 'm2'.
m1.f();

View File

@ -0,0 +1,15 @@
//// [amdDependencyCommentName3.ts]
///<amd-dependency path='bar' name='b'/>
///<amd-dependency path='foo'/>
///<amd-dependency path='goo' name='c'/>
import m1 = require("m2")
m1.f();
//// [amdDependencyCommentName3.js]
///<amd-dependency path='bar' name='b'/>
///<amd-dependency path='foo'/>
///<amd-dependency path='goo' name='c'/>
define(["require", "exports", "m2", "bar", "goo", "foo"], function (require, exports, m1, b, c) {
m1.f();
});

View File

@ -0,0 +1,5 @@
//@module: commonjs
///<amd-dependency path='bar' name='b'/>
import m1 = require("m2")
m1.f();

View File

@ -0,0 +1,5 @@
//@module: amd
///<amd-dependency path='bar' name='b'/>
import m1 = require("m2")
m1.f();

View File

@ -0,0 +1,7 @@
//@module: amd
///<amd-dependency path='bar' name='b'/>
///<amd-dependency path='foo'/>
///<amd-dependency path='goo' name='c'/>
import m1 = require("m2")
m1.f();