Skip to content

Commit b1e9f43

Browse files
committed
Merge branch 'master' into controlFlowTypes
Conflicts: src/compiler/checker.ts tests/baselines/reference/typeAssertions.errors.txt
2 parents 560e768 + ac6224d commit b1e9f43

631 files changed

Lines changed: 21689 additions & 7007 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

Jakefile.js

Lines changed: 39 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -165,18 +165,47 @@ var harnessSources = harnessCoreSources.concat([
165165
return path.join(serverDirectory, f);
166166
}));
167167

168-
var librarySourceMap = [
169-
{ target: "lib.core.d.ts", sources: ["header.d.ts", "core.d.ts"] },
170-
{ target: "lib.dom.d.ts", sources: ["importcore.d.ts", "intl.d.ts", "dom.generated.d.ts"], },
171-
{ target: "lib.webworker.d.ts", sources: ["importcore.d.ts", "intl.d.ts", "webworker.generated.d.ts"], },
172-
{ target: "lib.scriptHost.d.ts", sources: ["importcore.d.ts", "scriptHost.d.ts"], },
173-
{ target: "lib.d.ts", sources: ["header.d.ts", "core.d.ts", "intl.d.ts", "dom.generated.d.ts", "webworker.importscripts.d.ts", "scriptHost.d.ts"], },
174-
{ target: "lib.core.es6.d.ts", sources: ["header.d.ts", "core.d.ts", "es6.d.ts"]},
175-
{ target: "lib.es6.d.ts", sources: ["header.d.ts", "es6.d.ts", "core.d.ts", "intl.d.ts", "dom.generated.d.ts", "dom.es6.d.ts", "webworker.importscripts.d.ts", "scriptHost.d.ts"] },
176-
{ target: "lib.core.es7.d.ts", sources: ["header.d.ts", "core.d.ts", "es6.d.ts", "es7.d.ts"]},
177-
{ target: "lib.es7.d.ts", sources: ["header.d.ts", "es6.d.ts", "es7.d.ts", "core.d.ts", "intl.d.ts", "dom.generated.d.ts", "dom.es6.d.ts", "webworker.importscripts.d.ts", "scriptHost.d.ts"] }
168+
var es2015LibrarySources = [
169+
"es2015.core.d.ts",
170+
"es2015.collection.d.ts",
171+
"es2015.generator.d.ts",
172+
"es2015.iterable.d.ts",
173+
"es2015.promise.d.ts",
174+
"es2015.proxy.d.ts",
175+
"es2015.reflect.d.ts",
176+
"es2015.symbol.d.ts",
177+
"es2015.symbol.wellknown.d.ts",
178178
];
179179

180+
var es2015LibrarySourceMap = es2015LibrarySources.map(function(source) {
181+
return { target: "lib." + source, sources: ["header.d.ts", source] };
182+
});
183+
184+
var es2016LibrarySource = [ "es2016.array.include.d.ts" ];
185+
186+
var es2016LibrarySourceMap = es2016LibrarySource.map(function(source) {
187+
return { target: "lib." + source, sources: ["header.d.ts", source] };
188+
})
189+
190+
var hostsLibrarySources = ["dom.generated.d.ts", "webworker.importscripts.d.ts", "scripthost.d.ts"]
191+
192+
var librarySourceMap = [
193+
// Host library
194+
{ target: "lib.dom.d.ts", sources: ["header.d.ts", "dom.generated.d.ts"], },
195+
{ target: "lib.dom.iterable.d.ts", sources: ["header.d.ts", "dom.iterable.d.ts"], },
196+
{ target: "lib.webworker.d.ts", sources: ["header.d.ts", "webworker.generated.d.ts"], },
197+
{ target: "lib.scripthost.d.ts", sources: ["header.d.ts", "scripthost.d.ts"], },
198+
199+
// JavaScript library
200+
{ target: "lib.es5.d.ts", sources: ["header.d.ts", "es5.d.ts"] },
201+
{ target: "lib.es2015.d.ts", sources: ["header.d.ts", "es2015.d.ts"] },
202+
{ target: "lib.es2016.d.ts", sources: ["header.d.ts", "es2016.d.ts"] },
203+
204+
// JavaScript + all host library
205+
{ target: "lib.d.ts", sources: ["header.d.ts", "es5.d.ts"].concat(hostsLibrarySources), },
206+
{ target: "lib.es6.d.ts", sources: ["header.d.ts", "es5.d.ts"].concat(es2015LibrarySources, hostsLibrarySources), },
207+
].concat(es2015LibrarySourceMap, es2016LibrarySourceMap);
208+
180209
var libraryTargets = librarySourceMap.map(function (f) {
181210
return path.join(builtLocalDirectory, f.target);
182211
});

src/compiler/binder.ts

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -117,6 +117,7 @@ namespace ts {
117117
let hasAsyncFunctions: boolean;
118118
let hasDecorators: boolean;
119119
let hasParameterDecorators: boolean;
120+
let hasJsxSpreadAttribute: boolean;
120121

121122
// If this file is an external module, then it is automatically in strict-mode according to
122123
// ES6. If it is not an external module, then we'll determine if it is in strict mode or
@@ -162,6 +163,7 @@ namespace ts {
162163
hasAsyncFunctions = false;
163164
hasDecorators = false;
164165
hasParameterDecorators = false;
166+
hasJsxSpreadAttribute = false;
165167
}
166168

167169
return bindSourceFile;
@@ -501,6 +503,9 @@ namespace ts {
501503
if (hasAsyncFunctions) {
502504
flags |= NodeFlags.HasAsyncFunctions;
503505
}
506+
if (hasJsxSpreadAttribute) {
507+
flags |= NodeFlags.HasJsxSpreadAttribute;
508+
}
504509
}
505510

506511
node.flags = flags;
@@ -1637,6 +1642,10 @@ namespace ts {
16371642
case SyntaxKind.EnumMember:
16381643
return bindPropertyOrMethodOrAccessor(<Declaration>node, SymbolFlags.EnumMember, SymbolFlags.EnumMemberExcludes);
16391644

1645+
case SyntaxKind.JsxSpreadAttribute:
1646+
hasJsxSpreadAttribute = true;
1647+
return;
1648+
16401649
case SyntaxKind.CallSignature:
16411650
case SyntaxKind.ConstructSignature:
16421651
case SyntaxKind.IndexSignature:

0 commit comments

Comments
 (0)