diff --git a/Jakefile.js b/Jakefile.js
index 7024ad2afdf..7b85aacaa89 100644
--- a/Jakefile.js
+++ b/Jakefile.js
@@ -169,7 +169,9 @@ var librarySourceMap = [
{ target: "lib.scriptHost.d.ts", sources: ["importcore.d.ts", "scriptHost.d.ts"], },
{ 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"], },
{ target: "lib.core.es6.d.ts", sources: ["header.d.ts", "core.d.ts", "es6.d.ts"]},
- { 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"] }
+ { 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"] },
+ { target: "lib.core.es7.d.ts", sources: ["header.d.ts", "core.d.ts", "es6.d.ts", "es7.d.ts"]},
+ { 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"] }
];
var libraryTargets = librarySourceMap.map(function (f) {
diff --git a/lib/lib.core.d.ts b/lib/lib.core.d.ts
index 50fd8a8e495..145564d7044 100644
--- a/lib/lib.core.d.ts
+++ b/lib/lib.core.d.ts
@@ -14,7 +14,6 @@ and limitations under the License.
***************************************************************************** */
///
-
/////////////////////////////
/// ECMAScript APIs
/////////////////////////////
diff --git a/lib/lib.core.es6.d.ts b/lib/lib.core.es6.d.ts
index 0470c4827cd..753c3bbf65f 100644
--- a/lib/lib.core.es6.d.ts
+++ b/lib/lib.core.es6.d.ts
@@ -14,7 +14,6 @@ and limitations under the License.
***************************************************************************** */
///
-
/////////////////////////////
/// ECMAScript APIs
/////////////////////////////
@@ -5121,15 +5120,15 @@ interface PromiseConstructor {
* @param values An array of Promises.
* @returns A new Promise.
*/
- all(values: [T1 | PromiseLike, T2 | PromiseLike]): Promise<[T1, T2]>;
- all(values: [T1 | PromiseLike, T2 | PromiseLike, T3 | PromiseLike]): Promise<[T1, T2, T3]>;
- all(values: [T1 | PromiseLike, T2 | PromiseLike, T3 | PromiseLike, T4 | PromiseLike ]): Promise<[T1, T2, T3, T4]>;
- all(values: [T1 | PromiseLike, T2 | PromiseLike, T3 | PromiseLike, T4 | PromiseLike , T5 | PromiseLike]): Promise<[T1, T2, T3, T4, T5]>;
- all(values: [T1 | PromiseLike, T2 | PromiseLike, T3 | PromiseLike, T4 | PromiseLike , T5 | PromiseLike, T6 | PromiseLike]): Promise<[T1, T2, T3, T4, T5, T6]>;
- all(values: [T1 | PromiseLike, T2 | PromiseLike, T3 | PromiseLike, T4 | PromiseLike , T5 | PromiseLike, T6 | PromiseLike, T7 | PromiseLike]): Promise<[T1, T2, T3, T4, T5, T6, T7]>;
- all(values: [T1 | PromiseLike, T2 | PromiseLike, T3 | PromiseLike, T4 | PromiseLike , T5 | PromiseLike, T6 | PromiseLike, T7 | PromiseLike, T8 | PromiseLike]): Promise<[T1, T2, T3, T4, T5, T6, T7, T8]>;
- all(values: [T1 | PromiseLike, T2 | PromiseLike, T3 | PromiseLike, T4 | PromiseLike , T5 | PromiseLike, T6 | PromiseLike, T7 | PromiseLike, T8 | PromiseLike, T9 | PromiseLike]): Promise<[T1, T2, T3, T4, T5, T6, T7, T8, T9]>;
all(values: [T1 | PromiseLike, T2 | PromiseLike, T3 | PromiseLike, T4 | PromiseLike , T5 | PromiseLike, T6 | PromiseLike, T7 | PromiseLike, T8 | PromiseLike, T9 | PromiseLike, T10 | PromiseLike]): Promise<[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10]>;
+ all(values: [T1 | PromiseLike, T2 | PromiseLike, T3 | PromiseLike, T4 | PromiseLike , T5 | PromiseLike, T6 | PromiseLike, T7 | PromiseLike, T8 | PromiseLike, T9 | PromiseLike]): Promise<[T1, T2, T3, T4, T5, T6, T7, T8, T9]>;
+ all(values: [T1 | PromiseLike, T2 | PromiseLike, T3 | PromiseLike, T4 | PromiseLike , T5 | PromiseLike, T6 | PromiseLike, T7 | PromiseLike, T8 | PromiseLike]): Promise<[T1, T2, T3, T4, T5, T6, T7, T8]>;
+ all(values: [T1 | PromiseLike, T2 | PromiseLike, T3 | PromiseLike, T4 | PromiseLike , T5 | PromiseLike, T6 | PromiseLike, T7 | PromiseLike]): Promise<[T1, T2, T3, T4, T5, T6, T7]>;
+ all(values: [T1 | PromiseLike, T2 | PromiseLike, T3 | PromiseLike, T4 | PromiseLike , T5 | PromiseLike, T6 | PromiseLike]): Promise<[T1, T2, T3, T4, T5, T6]>;
+ all(values: [T1 | PromiseLike, T2 | PromiseLike, T3 | PromiseLike, T4 | PromiseLike , T5 | PromiseLike]): Promise<[T1, T2, T3, T4, T5]>;
+ all(values: [T1 | PromiseLike, T2 | PromiseLike, T3 | PromiseLike, T4 | PromiseLike ]): Promise<[T1, T2, T3, T4]>;
+ all(values: [T1 | PromiseLike, T2 | PromiseLike, T3 | PromiseLike]): Promise<[T1, T2, T3]>;
+ all(values: [T1 | PromiseLike, T2 | PromiseLike]): Promise<[T1, T2]>;
all(values: Iterable>): Promise;
/**
diff --git a/lib/lib.d.ts b/lib/lib.d.ts
index 155d864619e..5b2c53c7cc1 100644
--- a/lib/lib.d.ts
+++ b/lib/lib.d.ts
@@ -14,7 +14,6 @@ and limitations under the License.
***************************************************************************** */
///
-
/////////////////////////////
/// ECMAScript APIs
/////////////////////////////
@@ -5296,7 +5295,7 @@ interface Console {
select(element: Element): void;
time(timerName?: string): void;
timeEnd(timerName?: string): void;
- trace(): void;
+ trace(message?: any, ...optionalParams: any[]): void;
warn(message?: any, ...optionalParams: any[]): void;
}
@@ -5555,9 +5554,9 @@ interface DataTransferItemList {
length: number;
add(data: File): DataTransferItem;
clear(): void;
- item(index: number): File;
+ item(index: number): DataTransferItem;
remove(index: number): void;
- [index: number]: File;
+ [index: number]: DataTransferItem;
}
declare var DataTransferItemList: {
@@ -6610,6 +6609,8 @@ interface Document extends Node, GlobalEventHandlers, NodeSelector, DocumentEven
* @param content The text and HTML tags to write.
*/
writeln(...content: string[]): void;
+ createElement(tagName: "picture"): HTMLPictureElement;
+ getElementsByTagName(tagname: "picture"): NodeListOf;
addEventListener(type: "MSContentZoom", listener: (ev: UIEvent) => any, useCapture?: boolean): void;
addEventListener(type: "MSGestureChange", listener: (ev: MSGestureEvent) => any, useCapture?: boolean): void;
addEventListener(type: "MSGestureDoubleTap", listener: (ev: MSGestureEvent) => any, useCapture?: boolean): void;
@@ -7022,6 +7023,7 @@ interface Element extends Node, GlobalEventHandlers, ElementTraversal, NodeSelec
webkitRequestFullscreen(): void;
getElementsByClassName(classNames: string): NodeListOf;
matches(selector: string): boolean;
+ getElementsByTagName(tagname: "picture"): NodeListOf;
addEventListener(type: "MSGestureChange", listener: (ev: MSGestureEvent) => any, useCapture?: boolean): void;
addEventListener(type: "MSGestureDoubleTap", listener: (ev: MSGestureEvent) => any, useCapture?: boolean): void;
addEventListener(type: "MSGestureEnd", listener: (ev: MSGestureEvent) => any, useCapture?: boolean): void;
@@ -7811,6 +7813,7 @@ interface HTMLCanvasElement extends HTMLElement {
* @param type The standard MIME type for the image format to return. If you do not specify this parameter, the default value is a PNG format image.
*/
toDataURL(type?: string, ...args: any[]): string;
+ toBlob(): Blob;
}
declare var HTMLCanvasElement: {
@@ -10965,7 +10968,7 @@ interface IDBDatabase extends EventTarget {
objectStoreNames: DOMStringList;
onabort: (ev: Event) => any;
onerror: (ev: Event) => any;
- version: string;
+ version: number;
close(): void;
createObjectStore(name: string, optionalParameters?: IDBObjectStoreParameters): IDBObjectStore;
deleteObjectStore(name: string): void;
@@ -11681,7 +11684,7 @@ declare var MediaQueryList: {
interface MediaSource extends EventTarget {
activeSourceBuffers: SourceBufferList;
duration: number;
- readyState: number;
+ readyState: string;
sourceBuffers: SourceBufferList;
addSourceBuffer(type: string): SourceBuffer;
endOfStream(error?: number): void;
@@ -14410,17 +14413,16 @@ declare var Storage: {
}
interface StorageEvent extends Event {
- key: string;
- newValue: any;
- oldValue: any;
- storageArea: Storage;
url: string;
- initStorageEvent(typeArg: string, canBubbleArg: boolean, cancelableArg: boolean, keyArg: string, oldValueArg: any, newValueArg: any, urlArg: string, storageAreaArg: Storage): void;
+ key?: string;
+ oldValue?: string;
+ newValue?: string;
+ storageArea?: Storage;
}
declare var StorageEvent: {
prototype: StorageEvent;
- new(): StorageEvent;
+ new (type: string, eventInitDict?: StorageEventInit): StorageEvent;
}
interface StyleMedia {
@@ -16018,7 +16020,7 @@ interface Window extends EventTarget, WindowTimers, WindowSessionStorage, Window
msMatchMedia(mediaQuery: string): MediaQueryList;
msRequestAnimationFrame(callback: FrameRequestCallback): number;
msWriteProfilerMark(profilerMarkName: string): void;
- open(url?: string, target?: string, features?: string, replace?: boolean): any;
+ open(url?: string, target?: string, features?: string, replace?: boolean): Window;
postMessage(message: any, targetOrigin: string, ports?: any): void;
print(): void;
prompt(message?: string, _default?: string): string;
@@ -16620,6 +16622,14 @@ interface XMLHttpRequestEventTarget {
addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;
}
+interface StorageEventInit extends EventInit {
+ key?: string;
+ oldValue?: string;
+ newValue?: string;
+ url: string;
+ storageArea?: Storage;
+}
+
interface IDBObjectStoreParameters {
keyPath?: string | string[];
autoIncrement?: boolean;
@@ -16674,6 +16684,14 @@ declare var HTMLTemplateElement: {
new(): HTMLTemplateElement;
}
+interface HTMLPictureElement extends HTMLElement {
+}
+
+declare var HTMLPictureElement: {
+ prototype: HTMLPictureElement;
+ new(): HTMLPictureElement;
+}
+
declare type EventListenerOrEventListenerObject = EventListener | EventListenerObject;
interface ErrorEventHandler {
@@ -16870,7 +16888,7 @@ declare function msCancelRequestAnimationFrame(handle: number): void;
declare function msMatchMedia(mediaQuery: string): MediaQueryList;
declare function msRequestAnimationFrame(callback: FrameRequestCallback): number;
declare function msWriteProfilerMark(profilerMarkName: string): void;
-declare function open(url?: string, target?: string, features?: string, replace?: boolean): any;
+declare function open(url?: string, target?: string, features?: string, replace?: boolean): Window;
declare function postMessage(message: any, targetOrigin: string, ports?: any): void;
declare function print(): void;
declare function prompt(message?: string, _default?: string): string;
diff --git a/lib/lib.dom.d.ts b/lib/lib.dom.d.ts
index b2ad2c73df6..542149d7719 100644
--- a/lib/lib.dom.d.ts
+++ b/lib/lib.dom.d.ts
@@ -1472,7 +1472,7 @@ interface Console {
select(element: Element): void;
time(timerName?: string): void;
timeEnd(timerName?: string): void;
- trace(): void;
+ trace(message?: any, ...optionalParams: any[]): void;
warn(message?: any, ...optionalParams: any[]): void;
}
@@ -1731,9 +1731,9 @@ interface DataTransferItemList {
length: number;
add(data: File): DataTransferItem;
clear(): void;
- item(index: number): File;
+ item(index: number): DataTransferItem;
remove(index: number): void;
- [index: number]: File;
+ [index: number]: DataTransferItem;
}
declare var DataTransferItemList: {
@@ -2786,6 +2786,8 @@ interface Document extends Node, GlobalEventHandlers, NodeSelector, DocumentEven
* @param content The text and HTML tags to write.
*/
writeln(...content: string[]): void;
+ createElement(tagName: "picture"): HTMLPictureElement;
+ getElementsByTagName(tagname: "picture"): NodeListOf;
addEventListener(type: "MSContentZoom", listener: (ev: UIEvent) => any, useCapture?: boolean): void;
addEventListener(type: "MSGestureChange", listener: (ev: MSGestureEvent) => any, useCapture?: boolean): void;
addEventListener(type: "MSGestureDoubleTap", listener: (ev: MSGestureEvent) => any, useCapture?: boolean): void;
@@ -3198,6 +3200,7 @@ interface Element extends Node, GlobalEventHandlers, ElementTraversal, NodeSelec
webkitRequestFullscreen(): void;
getElementsByClassName(classNames: string): NodeListOf;
matches(selector: string): boolean;
+ getElementsByTagName(tagname: "picture"): NodeListOf;
addEventListener(type: "MSGestureChange", listener: (ev: MSGestureEvent) => any, useCapture?: boolean): void;
addEventListener(type: "MSGestureDoubleTap", listener: (ev: MSGestureEvent) => any, useCapture?: boolean): void;
addEventListener(type: "MSGestureEnd", listener: (ev: MSGestureEvent) => any, useCapture?: boolean): void;
@@ -3987,6 +3990,7 @@ interface HTMLCanvasElement extends HTMLElement {
* @param type The standard MIME type for the image format to return. If you do not specify this parameter, the default value is a PNG format image.
*/
toDataURL(type?: string, ...args: any[]): string;
+ toBlob(): Blob;
}
declare var HTMLCanvasElement: {
@@ -7141,7 +7145,7 @@ interface IDBDatabase extends EventTarget {
objectStoreNames: DOMStringList;
onabort: (ev: Event) => any;
onerror: (ev: Event) => any;
- version: string;
+ version: number;
close(): void;
createObjectStore(name: string, optionalParameters?: IDBObjectStoreParameters): IDBObjectStore;
deleteObjectStore(name: string): void;
@@ -7857,7 +7861,7 @@ declare var MediaQueryList: {
interface MediaSource extends EventTarget {
activeSourceBuffers: SourceBufferList;
duration: number;
- readyState: number;
+ readyState: string;
sourceBuffers: SourceBufferList;
addSourceBuffer(type: string): SourceBuffer;
endOfStream(error?: number): void;
@@ -10586,17 +10590,16 @@ declare var Storage: {
}
interface StorageEvent extends Event {
- key: string;
- newValue: any;
- oldValue: any;
- storageArea: Storage;
url: string;
- initStorageEvent(typeArg: string, canBubbleArg: boolean, cancelableArg: boolean, keyArg: string, oldValueArg: any, newValueArg: any, urlArg: string, storageAreaArg: Storage): void;
+ key?: string;
+ oldValue?: string;
+ newValue?: string;
+ storageArea?: Storage;
}
declare var StorageEvent: {
prototype: StorageEvent;
- new(): StorageEvent;
+ new (type: string, eventInitDict?: StorageEventInit): StorageEvent;
}
interface StyleMedia {
@@ -12194,7 +12197,7 @@ interface Window extends EventTarget, WindowTimers, WindowSessionStorage, Window
msMatchMedia(mediaQuery: string): MediaQueryList;
msRequestAnimationFrame(callback: FrameRequestCallback): number;
msWriteProfilerMark(profilerMarkName: string): void;
- open(url?: string, target?: string, features?: string, replace?: boolean): any;
+ open(url?: string, target?: string, features?: string, replace?: boolean): Window;
postMessage(message: any, targetOrigin: string, ports?: any): void;
print(): void;
prompt(message?: string, _default?: string): string;
@@ -12796,6 +12799,14 @@ interface XMLHttpRequestEventTarget {
addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;
}
+interface StorageEventInit extends EventInit {
+ key?: string;
+ oldValue?: string;
+ newValue?: string;
+ url: string;
+ storageArea?: Storage;
+}
+
interface IDBObjectStoreParameters {
keyPath?: string | string[];
autoIncrement?: boolean;
@@ -12850,6 +12861,14 @@ declare var HTMLTemplateElement: {
new(): HTMLTemplateElement;
}
+interface HTMLPictureElement extends HTMLElement {
+}
+
+declare var HTMLPictureElement: {
+ prototype: HTMLPictureElement;
+ new(): HTMLPictureElement;
+}
+
declare type EventListenerOrEventListenerObject = EventListener | EventListenerObject;
interface ErrorEventHandler {
@@ -13046,7 +13065,7 @@ declare function msCancelRequestAnimationFrame(handle: number): void;
declare function msMatchMedia(mediaQuery: string): MediaQueryList;
declare function msRequestAnimationFrame(callback: FrameRequestCallback): number;
declare function msWriteProfilerMark(profilerMarkName: string): void;
-declare function open(url?: string, target?: string, features?: string, replace?: boolean): any;
+declare function open(url?: string, target?: string, features?: string, replace?: boolean): Window;
declare function postMessage(message: any, targetOrigin: string, ports?: any): void;
declare function print(): void;
declare function prompt(message?: string, _default?: string): string;
diff --git a/lib/lib.es6.d.ts b/lib/lib.es6.d.ts
index ef3399ba804..70f464ad48e 100644
--- a/lib/lib.es6.d.ts
+++ b/lib/lib.es6.d.ts
@@ -13,6 +13,7 @@ See the Apache Version 2.0 License for specific language governing permissions
and limitations under the License.
***************************************************************************** */
+///
declare type PropertyKey = string | number | symbol;
interface Symbol {
@@ -1296,15 +1297,15 @@ interface PromiseConstructor {
* @param values An array of Promises.
* @returns A new Promise.
*/
- all(values: [T1 | PromiseLike, T2 | PromiseLike]): Promise<[T1, T2]>;
- all(values: [T1 | PromiseLike, T2 | PromiseLike, T3 | PromiseLike]): Promise<[T1, T2, T3]>;
- all(values: [T1 | PromiseLike, T2 | PromiseLike, T3 | PromiseLike, T4 | PromiseLike ]): Promise<[T1, T2, T3, T4]>;
- all(values: [T1 | PromiseLike, T2 | PromiseLike, T3 | PromiseLike, T4 | PromiseLike , T5 | PromiseLike]): Promise<[T1, T2, T3, T4, T5]>;
- all(values: [T1 | PromiseLike, T2 | PromiseLike, T3 | PromiseLike, T4 | PromiseLike , T5 | PromiseLike, T6 | PromiseLike]): Promise<[T1, T2, T3, T4, T5, T6]>;
- all(values: [T1 | PromiseLike, T2 | PromiseLike, T3 | PromiseLike, T4 | PromiseLike , T5 | PromiseLike, T6 | PromiseLike, T7 | PromiseLike]): Promise<[T1, T2, T3, T4, T5, T6, T7]>;
- all(values: [T1 | PromiseLike, T2 | PromiseLike, T3 | PromiseLike, T4 | PromiseLike , T5 | PromiseLike, T6 | PromiseLike, T7 | PromiseLike, T8 | PromiseLike]): Promise<[T1, T2, T3, T4, T5, T6, T7, T8]>;
- all(values: [T1 | PromiseLike, T2 | PromiseLike, T3 | PromiseLike, T4 | PromiseLike , T5 | PromiseLike, T6 | PromiseLike, T7 | PromiseLike, T8 | PromiseLike, T9 | PromiseLike]): Promise<[T1, T2, T3, T4, T5, T6, T7, T8, T9]>;
all(values: [T1 | PromiseLike, T2 | PromiseLike, T3 | PromiseLike, T4 | PromiseLike , T5 | PromiseLike, T6 | PromiseLike, T7 | PromiseLike, T8 | PromiseLike, T9 | PromiseLike, T10 | PromiseLike]): Promise<[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10]>;
+ all(values: [T1 | PromiseLike, T2 | PromiseLike, T3 | PromiseLike, T4 | PromiseLike , T5 | PromiseLike, T6 | PromiseLike, T7 | PromiseLike, T8 | PromiseLike, T9 | PromiseLike]): Promise<[T1, T2, T3, T4, T5, T6, T7, T8, T9]>;
+ all(values: [T1 | PromiseLike, T2 | PromiseLike, T3 | PromiseLike, T4 | PromiseLike , T5 | PromiseLike, T6 | PromiseLike, T7 | PromiseLike, T8 | PromiseLike]): Promise<[T1, T2, T3, T4, T5, T6, T7, T8]>;
+ all(values: [T1 | PromiseLike, T2 | PromiseLike, T3 | PromiseLike, T4 | PromiseLike , T5 | PromiseLike, T6 | PromiseLike, T7 | PromiseLike]): Promise<[T1, T2, T3, T4, T5, T6, T7]>;
+ all(values: [T1 | PromiseLike, T2 | PromiseLike, T3 | PromiseLike, T4 | PromiseLike , T5 | PromiseLike, T6 | PromiseLike]): Promise<[T1, T2, T3, T4, T5, T6]>;
+ all(values: [T1 | PromiseLike, T2 | PromiseLike, T3 | PromiseLike, T4 | PromiseLike , T5 | PromiseLike]): Promise<[T1, T2, T3, T4, T5]>;
+ all(values: [T1 | PromiseLike, T2 | PromiseLike, T3 | PromiseLike, T4 | PromiseLike ]): Promise<[T1, T2, T3, T4]>;
+ all(values: [T1 | PromiseLike, T2 | PromiseLike, T3 | PromiseLike]): Promise<[T1, T2, T3]>;
+ all(values: [T1 | PromiseLike, T2 | PromiseLike]): Promise<[T1, T2]>;
all(values: Iterable>): Promise;
/**
@@ -1346,8 +1347,6 @@ interface PromiseConstructor {
}
declare var Promise: PromiseConstructor;
-///
-
/////////////////////////////
/// ECMAScript APIs
/////////////////////////////
@@ -6629,7 +6628,7 @@ interface Console {
select(element: Element): void;
time(timerName?: string): void;
timeEnd(timerName?: string): void;
- trace(): void;
+ trace(message?: any, ...optionalParams: any[]): void;
warn(message?: any, ...optionalParams: any[]): void;
}
@@ -6888,9 +6887,9 @@ interface DataTransferItemList {
length: number;
add(data: File): DataTransferItem;
clear(): void;
- item(index: number): File;
+ item(index: number): DataTransferItem;
remove(index: number): void;
- [index: number]: File;
+ [index: number]: DataTransferItem;
}
declare var DataTransferItemList: {
@@ -7943,6 +7942,8 @@ interface Document extends Node, GlobalEventHandlers, NodeSelector, DocumentEven
* @param content The text and HTML tags to write.
*/
writeln(...content: string[]): void;
+ createElement(tagName: "picture"): HTMLPictureElement;
+ getElementsByTagName(tagname: "picture"): NodeListOf;
addEventListener(type: "MSContentZoom", listener: (ev: UIEvent) => any, useCapture?: boolean): void;
addEventListener(type: "MSGestureChange", listener: (ev: MSGestureEvent) => any, useCapture?: boolean): void;
addEventListener(type: "MSGestureDoubleTap", listener: (ev: MSGestureEvent) => any, useCapture?: boolean): void;
@@ -8355,6 +8356,7 @@ interface Element extends Node, GlobalEventHandlers, ElementTraversal, NodeSelec
webkitRequestFullscreen(): void;
getElementsByClassName(classNames: string): NodeListOf;
matches(selector: string): boolean;
+ getElementsByTagName(tagname: "picture"): NodeListOf;
addEventListener(type: "MSGestureChange", listener: (ev: MSGestureEvent) => any, useCapture?: boolean): void;
addEventListener(type: "MSGestureDoubleTap", listener: (ev: MSGestureEvent) => any, useCapture?: boolean): void;
addEventListener(type: "MSGestureEnd", listener: (ev: MSGestureEvent) => any, useCapture?: boolean): void;
@@ -9144,6 +9146,7 @@ interface HTMLCanvasElement extends HTMLElement {
* @param type The standard MIME type for the image format to return. If you do not specify this parameter, the default value is a PNG format image.
*/
toDataURL(type?: string, ...args: any[]): string;
+ toBlob(): Blob;
}
declare var HTMLCanvasElement: {
@@ -12298,7 +12301,7 @@ interface IDBDatabase extends EventTarget {
objectStoreNames: DOMStringList;
onabort: (ev: Event) => any;
onerror: (ev: Event) => any;
- version: string;
+ version: number;
close(): void;
createObjectStore(name: string, optionalParameters?: IDBObjectStoreParameters): IDBObjectStore;
deleteObjectStore(name: string): void;
@@ -13014,7 +13017,7 @@ declare var MediaQueryList: {
interface MediaSource extends EventTarget {
activeSourceBuffers: SourceBufferList;
duration: number;
- readyState: number;
+ readyState: string;
sourceBuffers: SourceBufferList;
addSourceBuffer(type: string): SourceBuffer;
endOfStream(error?: number): void;
@@ -15743,17 +15746,16 @@ declare var Storage: {
}
interface StorageEvent extends Event {
- key: string;
- newValue: any;
- oldValue: any;
- storageArea: Storage;
url: string;
- initStorageEvent(typeArg: string, canBubbleArg: boolean, cancelableArg: boolean, keyArg: string, oldValueArg: any, newValueArg: any, urlArg: string, storageAreaArg: Storage): void;
+ key?: string;
+ oldValue?: string;
+ newValue?: string;
+ storageArea?: Storage;
}
declare var StorageEvent: {
prototype: StorageEvent;
- new(): StorageEvent;
+ new (type: string, eventInitDict?: StorageEventInit): StorageEvent;
}
interface StyleMedia {
@@ -17351,7 +17353,7 @@ interface Window extends EventTarget, WindowTimers, WindowSessionStorage, Window
msMatchMedia(mediaQuery: string): MediaQueryList;
msRequestAnimationFrame(callback: FrameRequestCallback): number;
msWriteProfilerMark(profilerMarkName: string): void;
- open(url?: string, target?: string, features?: string, replace?: boolean): any;
+ open(url?: string, target?: string, features?: string, replace?: boolean): Window;
postMessage(message: any, targetOrigin: string, ports?: any): void;
print(): void;
prompt(message?: string, _default?: string): string;
@@ -17953,6 +17955,14 @@ interface XMLHttpRequestEventTarget {
addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;
}
+interface StorageEventInit extends EventInit {
+ key?: string;
+ oldValue?: string;
+ newValue?: string;
+ url: string;
+ storageArea?: Storage;
+}
+
interface IDBObjectStoreParameters {
keyPath?: string | string[];
autoIncrement?: boolean;
@@ -18007,6 +18017,14 @@ declare var HTMLTemplateElement: {
new(): HTMLTemplateElement;
}
+interface HTMLPictureElement extends HTMLElement {
+}
+
+declare var HTMLPictureElement: {
+ prototype: HTMLPictureElement;
+ new(): HTMLPictureElement;
+}
+
declare type EventListenerOrEventListenerObject = EventListener | EventListenerObject;
interface ErrorEventHandler {
@@ -18203,7 +18221,7 @@ declare function msCancelRequestAnimationFrame(handle: number): void;
declare function msMatchMedia(mediaQuery: string): MediaQueryList;
declare function msRequestAnimationFrame(callback: FrameRequestCallback): number;
declare function msWriteProfilerMark(profilerMarkName: string): void;
-declare function open(url?: string, target?: string, features?: string, replace?: boolean): any;
+declare function open(url?: string, target?: string, features?: string, replace?: boolean): Window;
declare function postMessage(message: any, targetOrigin: string, ports?: any): void;
declare function print(): void;
declare function prompt(message?: string, _default?: string): string;
diff --git a/lib/lib.webworker.d.ts b/lib/lib.webworker.d.ts
index 1138538a1b8..33e0d0f9ded 100644
--- a/lib/lib.webworker.d.ts
+++ b/lib/lib.webworker.d.ts
@@ -286,7 +286,7 @@ interface Console {
select(element: any): void;
time(timerName?: string): void;
timeEnd(timerName?: string): void;
- trace(): void;
+ trace(message?: any, ...optionalParams: any[]): void;
warn(message?: any, ...optionalParams: any[]): void;
}
@@ -526,7 +526,7 @@ interface IDBDatabase extends EventTarget {
objectStoreNames: DOMStringList;
onabort: (ev: Event) => any;
onerror: (ev: Event) => any;
- version: string;
+ version: number;
close(): void;
createObjectStore(name: string, optionalParameters?: IDBObjectStoreParameters): IDBObjectStore;
deleteObjectStore(name: string): void;
diff --git a/lib/tsc.js b/lib/tsc.js
index 543deadb433..2208201fef0 100644
--- a/lib/tsc.js
+++ b/lib/tsc.js
@@ -19,7 +19,7 @@ var ts;
function OperationCanceledException() {
}
return OperationCanceledException;
- })();
+ }());
ts.OperationCanceledException = OperationCanceledException;
(function (ExitStatus) {
ExitStatus[ExitStatus["Success"] = 0] = "Success";
@@ -636,7 +636,8 @@ var ts;
if (directoryComponents.length > 1 && lastOrUndefined(directoryComponents) === "") {
directoryComponents.length--;
}
- for (var joinStartIndex = 0; joinStartIndex < pathComponents.length && joinStartIndex < directoryComponents.length; joinStartIndex++) {
+ var joinStartIndex;
+ for (joinStartIndex = 0; joinStartIndex < pathComponents.length && joinStartIndex < directoryComponents.length; joinStartIndex++) {
if (getCanonicalFileName(directoryComponents[joinStartIndex]) !== getCanonicalFileName(pathComponents[joinStartIndex])) {
break;
}
@@ -773,6 +774,12 @@ var ts;
return copiedList;
}
ts.copyListRemovingItem = copyListRemovingItem;
+ function createGetCanonicalFileName(useCaseSensitivefileNames) {
+ return useCaseSensitivefileNames
+ ? (function (fileName) { return fileName; })
+ : (function (fileName) { return fileName.toLowerCase(); });
+ }
+ ts.createGetCanonicalFileName = createGetCanonicalFileName;
})(ts || (ts = {}));
var ts;
(function (ts) {
@@ -911,7 +918,7 @@ var ts;
var _fs = require("fs");
var _path = require("path");
var _os = require("os");
- function createWatchedFileSet(interval, chunkSize) {
+ function createPollingWatchedFileSet(interval, chunkSize) {
if (interval === void 0) { interval = 2500; }
if (chunkSize === void 0) { chunkSize = 30; }
var watchedFiles = [];
@@ -925,13 +932,13 @@ var ts;
if (!watchedFile) {
return;
}
- _fs.stat(watchedFile.fileName, function (err, stats) {
+ _fs.stat(watchedFile.filePath, function (err, stats) {
if (err) {
- watchedFile.callback(watchedFile.fileName);
+ watchedFile.callback(watchedFile.filePath);
}
else if (watchedFile.mtime.getTime() !== stats.mtime.getTime()) {
- watchedFile.mtime = getModifiedTime(watchedFile.fileName);
- watchedFile.callback(watchedFile.fileName, watchedFile.mtime.getTime() === 0);
+ watchedFile.mtime = getModifiedTime(watchedFile.filePath);
+ watchedFile.callback(watchedFile.filePath, watchedFile.mtime.getTime() === 0);
}
});
}
@@ -954,11 +961,11 @@ var ts;
nextFileToCheck = nextToCheck;
}, interval);
}
- function addFile(fileName, callback) {
+ function addFile(filePath, callback) {
var file = {
- fileName: fileName,
+ filePath: filePath,
callback: callback,
- mtime: getModifiedTime(fileName)
+ mtime: getModifiedTime(filePath)
};
watchedFiles.push(file);
if (watchedFiles.length === 1) {
@@ -977,7 +984,77 @@ var ts;
removeFile: removeFile
};
}
+ function createWatchedFileSet() {
+ var dirWatchers = ts.createFileMap();
+ var fileWatcherCallbacks = ts.createFileMap();
+ return { addFile: addFile, removeFile: removeFile };
+ function reduceDirWatcherRefCountForFile(filePath) {
+ var dirPath = ts.getDirectoryPath(filePath);
+ if (dirWatchers.contains(dirPath)) {
+ var watcher = dirWatchers.get(dirPath);
+ watcher.referenceCount -= 1;
+ if (watcher.referenceCount <= 0) {
+ watcher.close();
+ dirWatchers.remove(dirPath);
+ }
+ }
+ }
+ function addDirWatcher(dirPath) {
+ if (dirWatchers.contains(dirPath)) {
+ var watcher_1 = dirWatchers.get(dirPath);
+ watcher_1.referenceCount += 1;
+ return;
+ }
+ var watcher = _fs.watch(dirPath, { persistent: true }, function (eventName, relativeFileName) { return fileEventHandler(eventName, relativeFileName, dirPath); });
+ watcher.referenceCount = 1;
+ dirWatchers.set(dirPath, watcher);
+ return;
+ }
+ function addFileWatcherCallback(filePath, callback) {
+ if (fileWatcherCallbacks.contains(filePath)) {
+ fileWatcherCallbacks.get(filePath).push(callback);
+ }
+ else {
+ fileWatcherCallbacks.set(filePath, [callback]);
+ }
+ }
+ function addFile(filePath, callback) {
+ addFileWatcherCallback(filePath, callback);
+ addDirWatcher(ts.getDirectoryPath(filePath));
+ return { filePath: filePath, callback: callback };
+ }
+ function removeFile(watchedFile) {
+ removeFileWatcherCallback(watchedFile.filePath, watchedFile.callback);
+ reduceDirWatcherRefCountForFile(watchedFile.filePath);
+ }
+ function removeFileWatcherCallback(filePath, callback) {
+ if (fileWatcherCallbacks.contains(filePath)) {
+ var newCallbacks = ts.copyListRemovingItem(callback, fileWatcherCallbacks.get(filePath));
+ if (newCallbacks.length === 0) {
+ fileWatcherCallbacks.remove(filePath);
+ }
+ else {
+ fileWatcherCallbacks.set(filePath, newCallbacks);
+ }
+ }
+ }
+ function fileEventHandler(eventName, relativeFileName, baseDirPath) {
+ var filePath = typeof relativeFileName !== "string"
+ ? undefined
+ : ts.toPath(relativeFileName, baseDirPath, ts.createGetCanonicalFileName(ts.sys.useCaseSensitiveFileNames));
+ if (eventName === "change" && fileWatcherCallbacks.contains(filePath)) {
+ for (var _i = 0, _a = fileWatcherCallbacks.get(filePath); _i < _a.length; _i++) {
+ var fileCallback = _a[_i];
+ fileCallback(filePath);
+ }
+ }
+ }
+ }
+ var pollingWatchedFileSet = createPollingWatchedFileSet();
var watchedFileSet = createWatchedFileSet();
+ function isNode4OrLater() {
+ return parseInt(process.version.charAt(1)) >= 4;
+ }
var platform = _os.platform();
var useCaseSensitiveFileNames = platform !== "win32" && platform !== "win64" && platform !== "darwin";
function readFile(fileName, encoding) {
@@ -1019,7 +1096,7 @@ var ts;
}
}
function getCanonicalPath(path) {
- return useCaseSensitiveFileNames ? path.toLowerCase() : path;
+ return useCaseSensitiveFileNames ? path : path.toLowerCase();
}
function readDirectory(path, extension, exclude) {
var result = [];
@@ -1059,14 +1136,22 @@ var ts;
},
readFile: readFile,
writeFile: writeFile,
- watchFile: function (fileName, callback) {
- var watchedFile = watchedFileSet.addFile(fileName, callback);
+ watchFile: function (filePath, callback) {
+ var watchSet = isNode4OrLater() ? watchedFileSet : pollingWatchedFileSet;
+ var watchedFile = watchSet.addFile(filePath, callback);
return {
- close: function () { return watchedFileSet.removeFile(watchedFile); }
+ close: function () { return watchSet.removeFile(watchedFile); }
};
},
watchDirectory: function (path, callback, recursive) {
- return _fs.watch(path, { persistent: true, recursive: !!recursive }, function (eventName, relativeFileName) {
+ var options;
+ if (isNode4OrLater() && (process.platform === "win32" || process.platform === "darwin")) {
+ options = { persistent: true, recursive: !!recursive };
+ }
+ else {
+ options = { persistent: true };
+ }
+ return _fs.watch(path, options, function (eventName, relativeFileName) {
if (eventName === "rename") {
callback(!relativeFileName ? relativeFileName : ts.normalizePath(ts.combinePaths(path, relativeFileName)));
}
@@ -1325,7 +1410,6 @@ var ts;
Cannot_find_parameter_0: { code: 1225, category: ts.DiagnosticCategory.Error, key: "Cannot_find_parameter_0_1225", message: "Cannot find parameter '{0}'." },
Type_predicate_0_is_not_assignable_to_1: { code: 1226, category: ts.DiagnosticCategory.Error, key: "Type_predicate_0_is_not_assignable_to_1_1226", message: "Type predicate '{0}' is not assignable to '{1}'." },
Parameter_0_is_not_in_the_same_position_as_parameter_1: { code: 1227, category: ts.DiagnosticCategory.Error, key: "Parameter_0_is_not_in_the_same_position_as_parameter_1_1227", message: "Parameter '{0}' is not in the same position as parameter '{1}'." },
- A_type_predicate_is_only_allowed_in_return_type_position_for_functions_and_methods: { code: 1228, category: ts.DiagnosticCategory.Error, key: "A_type_predicate_is_only_allowed_in_return_type_position_for_functions_and_methods_1228", message: "A type predicate is only allowed in return type position for functions and methods." },
A_type_predicate_cannot_reference_a_rest_parameter: { code: 1229, category: ts.DiagnosticCategory.Error, key: "A_type_predicate_cannot_reference_a_rest_parameter_1229", message: "A type predicate cannot reference a rest parameter." },
A_type_predicate_cannot_reference_element_0_in_a_binding_pattern: { code: 1230, category: ts.DiagnosticCategory.Error, key: "A_type_predicate_cannot_reference_element_0_in_a_binding_pattern_1230", message: "A type predicate cannot reference element '{0}' in a binding pattern." },
An_export_assignment_can_only_be_used_in_a_module: { code: 1231, category: ts.DiagnosticCategory.Error, key: "An_export_assignment_can_only_be_used_in_a_module_1231", message: "An export assignment can only be used in a module." },
@@ -1561,7 +1645,6 @@ var ts;
All_declarations_of_an_abstract_method_must_be_consecutive: { code: 2516, category: ts.DiagnosticCategory.Error, key: "All_declarations_of_an_abstract_method_must_be_consecutive_2516", message: "All declarations of an abstract method must be consecutive." },
Cannot_assign_an_abstract_constructor_type_to_a_non_abstract_constructor_type: { code: 2517, category: ts.DiagnosticCategory.Error, key: "Cannot_assign_an_abstract_constructor_type_to_a_non_abstract_constructor_type_2517", message: "Cannot assign an abstract constructor type to a non-abstract constructor type." },
A_this_based_type_guard_is_not_compatible_with_a_parameter_based_type_guard: { code: 2518, category: ts.DiagnosticCategory.Error, key: "A_this_based_type_guard_is_not_compatible_with_a_parameter_based_type_guard_2518", message: "A 'this'-based type guard is not compatible with a parameter-based type guard." },
- A_this_based_type_predicate_is_only_allowed_within_a_class_or_interface_s_members_get_accessors_or_return_type_positions_for_functions_and_methods: { code: 2519, category: ts.DiagnosticCategory.Error, key: "A_this_based_type_predicate_is_only_allowed_within_a_class_or_interface_s_members_get_accessors_or_r_2519", message: "A 'this'-based type predicate is only allowed within a class or interface's members, get accessors, or return type positions for functions and methods." },
Duplicate_identifier_0_Compiler_uses_declaration_1_to_support_async_functions: { code: 2520, category: ts.DiagnosticCategory.Error, key: "Duplicate_identifier_0_Compiler_uses_declaration_1_to_support_async_functions_2520", message: "Duplicate identifier '{0}'. Compiler uses declaration '{1}' to support async functions." },
Expression_resolves_to_variable_declaration_0_that_compiler_uses_to_support_async_functions: { code: 2521, category: ts.DiagnosticCategory.Error, key: "Expression_resolves_to_variable_declaration_0_that_compiler_uses_to_support_async_functions_2521", message: "Expression resolves to variable declaration '{0}' that compiler uses to support async functions." },
The_arguments_object_cannot_be_referenced_in_an_async_arrow_function_Consider_using_a_standard_async_function_expression: { code: 2522, category: ts.DiagnosticCategory.Error, key: "The_arguments_object_cannot_be_referenced_in_an_async_arrow_function_Consider_using_a_standard_async_2522", message: "The 'arguments' object cannot be referenced in an async arrow function. Consider using a standard async function expression." },
@@ -1590,6 +1673,16 @@ var ts;
Type_0_provides_no_match_for_the_signature_1: { code: 2658, category: ts.DiagnosticCategory.Error, key: "Type_0_provides_no_match_for_the_signature_1_2658", message: "Type '{0}' provides no match for the signature '{1}'" },
super_is_only_allowed_in_members_of_object_literal_expressions_when_option_target_is_ES2015_or_higher: { code: 2659, category: ts.DiagnosticCategory.Error, key: "super_is_only_allowed_in_members_of_object_literal_expressions_when_option_target_is_ES2015_or_highe_2659", message: "'super' is only allowed in members of object literal expressions when option 'target' is 'ES2015' or higher." },
super_can_only_be_referenced_in_members_of_derived_classes_or_object_literal_expressions: { code: 2660, category: ts.DiagnosticCategory.Error, key: "super_can_only_be_referenced_in_members_of_derived_classes_or_object_literal_expressions_2660", message: "'super' can only be referenced in members of derived classes or object literal expressions." },
+ Cannot_re_export_name_that_is_not_defined_in_the_module: { code: 2661, category: ts.DiagnosticCategory.Error, key: "Cannot_re_export_name_that_is_not_defined_in_the_module_2661", message: "Cannot re-export name that is not defined in the module." },
+ Cannot_find_name_0_Did_you_mean_the_static_member_1_0: { code: 2662, category: ts.DiagnosticCategory.Error, key: "Cannot_find_name_0_Did_you_mean_the_static_member_1_0_2662", message: "Cannot find name '{0}'. Did you mean the static member '{1}.{0}'?" },
+ Cannot_find_name_0_Did_you_mean_the_instance_member_this_0: { code: 2663, category: ts.DiagnosticCategory.Error, key: "Cannot_find_name_0_Did_you_mean_the_instance_member_this_0_2663", message: "Cannot find name '{0}'. Did you mean the instance member 'this.{0}'?" },
+ Invalid_module_name_in_augmentation_module_0_cannot_be_found: { code: 2664, category: ts.DiagnosticCategory.Error, key: "Invalid_module_name_in_augmentation_module_0_cannot_be_found_2664", message: "Invalid module name in augmentation, module '{0}' cannot be found." },
+ Module_augmentation_cannot_introduce_new_names_in_the_top_level_scope: { code: 2665, category: ts.DiagnosticCategory.Error, key: "Module_augmentation_cannot_introduce_new_names_in_the_top_level_scope_2665", message: "Module augmentation cannot introduce new names in the top level scope." },
+ Exports_and_export_assignments_are_not_permitted_in_module_augmentations: { code: 2666, category: ts.DiagnosticCategory.Error, key: "Exports_and_export_assignments_are_not_permitted_in_module_augmentations_2666", message: "Exports and export assignments are not permitted in module augmentations." },
+ Imports_are_not_permitted_in_module_augmentations_Consider_moving_them_to_the_enclosing_external_module: { code: 2667, category: ts.DiagnosticCategory.Error, key: "Imports_are_not_permitted_in_module_augmentations_Consider_moving_them_to_the_enclosing_external_mod_2667", message: "Imports are not permitted in module augmentations. Consider moving them to the enclosing external module." },
+ export_modifier_cannot_be_applied_to_ambient_modules_and_module_augmentations_since_they_are_always_visible: { code: 2668, category: ts.DiagnosticCategory.Error, key: "export_modifier_cannot_be_applied_to_ambient_modules_and_module_augmentations_since_they_are_always__2668", message: "'export' modifier cannot be applied to ambient modules and module augmentations since they are always visible." },
+ Augmentations_for_the_global_scope_can_only_be_directly_nested_in_external_modules_or_ambient_module_declarations: { code: 2669, category: ts.DiagnosticCategory.Error, key: "Augmentations_for_the_global_scope_can_only_be_directly_nested_in_external_modules_or_ambient_module_2669", message: "Augmentations for the global scope can only be directly nested in external modules or ambient module declarations." },
+ Augmentations_for_the_global_scope_should_have_declare_modifier_unless_they_appear_in_already_ambient_context: { code: 2670, category: ts.DiagnosticCategory.Error, key: "Augmentations_for_the_global_scope_should_have_declare_modifier_unless_they_appear_in_already_ambien_2670", message: "Augmentations for the global scope should have 'declare' modifier unless they appear in already ambient context." },
Import_declaration_0_is_using_private_name_1: { code: 4000, category: ts.DiagnosticCategory.Error, key: "Import_declaration_0_is_using_private_name_1_4000", message: "Import declaration '{0}' is using private name '{1}'." },
Type_parameter_0_of_exported_class_has_or_is_using_private_name_1: { code: 4002, category: ts.DiagnosticCategory.Error, key: "Type_parameter_0_of_exported_class_has_or_is_using_private_name_1_4002", message: "Type parameter '{0}' of exported class has or is using private name '{1}'." },
Type_parameter_0_of_exported_interface_has_or_is_using_private_name_1: { code: 4004, category: ts.DiagnosticCategory.Error, key: "Type_parameter_0_of_exported_interface_has_or_is_using_private_name_1_4004", message: "Type parameter '{0}' of exported interface has or is using private name '{1}'." },
@@ -1754,6 +1847,7 @@ var ts;
_0_which_lacks_return_type_annotation_implicitly_has_an_1_return_type: { code: 7010, category: ts.DiagnosticCategory.Error, key: "_0_which_lacks_return_type_annotation_implicitly_has_an_1_return_type_7010", message: "'{0}', which lacks return-type annotation, implicitly has an '{1}' return type." },
Function_expression_which_lacks_return_type_annotation_implicitly_has_an_0_return_type: { code: 7011, category: ts.DiagnosticCategory.Error, key: "Function_expression_which_lacks_return_type_annotation_implicitly_has_an_0_return_type_7011", message: "Function expression, which lacks return-type annotation, implicitly has an '{0}' return type." },
Construct_signature_which_lacks_return_type_annotation_implicitly_has_an_any_return_type: { code: 7013, category: ts.DiagnosticCategory.Error, key: "Construct_signature_which_lacks_return_type_annotation_implicitly_has_an_any_return_type_7013", message: "Construct signature, which lacks return-type annotation, implicitly has an 'any' return type." },
+ Element_implicitly_has_an_any_type_because_index_expression_is_not_of_type_number: { code: 7015, category: ts.DiagnosticCategory.Error, key: "Element_implicitly_has_an_any_type_because_index_expression_is_not_of_type_number_7015", message: "Element implicitly has an 'any' type because index expression is not of type 'number'." },
Property_0_implicitly_has_type_any_because_its_set_accessor_lacks_a_type_annotation: { code: 7016, category: ts.DiagnosticCategory.Error, key: "Property_0_implicitly_has_type_any_because_its_set_accessor_lacks_a_type_annotation_7016", message: "Property '{0}' implicitly has type 'any', because its 'set' accessor lacks a type annotation." },
Index_signature_of_object_type_implicitly_has_an_any_type: { code: 7017, category: ts.DiagnosticCategory.Error, key: "Index_signature_of_object_type_implicitly_has_an_any_type_7017", message: "Index signature of object type implicitly has an 'any' type." },
Object_literal_s_property_0_implicitly_has_an_1_type: { code: 7018, category: ts.DiagnosticCategory.Error, key: "Object_literal_s_property_0_implicitly_has_an_1_type_7018", message: "Object literal's property '{0}' implicitly has an '{1}' type." },
@@ -1849,6 +1943,7 @@ var ts;
"protected": 111,
"public": 112,
"require": 127,
+ "global": 134,
"return": 94,
"set": 129,
"static": 113,
@@ -1869,7 +1964,7 @@ var ts;
"yield": 114,
"async": 118,
"await": 119,
- "of": 134,
+ "of": 135,
"{": 15,
"}": 16,
"(": 17,
@@ -3130,7 +3225,7 @@ var ts;
break;
}
}
- return token = 238;
+ return token = 239;
}
function scanJsxIdentifier() {
if (tokenIsIdentifierOrKeyword(token)) {
@@ -3296,7 +3391,7 @@ var ts;
}
}
function getSourceFileOfNode(node) {
- while (node && node.kind !== 250) {
+ while (node && node.kind !== 251) {
node = node.parent;
}
return node;
@@ -3380,6 +3475,28 @@ var ts;
isCatchClauseVariableDeclaration(declaration);
}
ts.isBlockOrCatchScoped = isBlockOrCatchScoped;
+ function isAmbientModule(node) {
+ return node && node.kind === 221 &&
+ (node.name.kind === 9 || isGlobalScopeAugmentation(node));
+ }
+ ts.isAmbientModule = isAmbientModule;
+ function isGlobalScopeAugmentation(module) {
+ return !!(module.flags & 2097152);
+ }
+ ts.isGlobalScopeAugmentation = isGlobalScopeAugmentation;
+ function isExternalModuleAugmentation(node) {
+ if (!node || !isAmbientModule(node)) {
+ return false;
+ }
+ switch (node.parent.kind) {
+ case 251:
+ return isExternalModule(node.parent);
+ case 222:
+ return isAmbientModule(node.parent.parent) && !isExternalModule(node.parent.parent.parent);
+ }
+ return false;
+ }
+ ts.isExternalModuleAugmentation = isExternalModuleAugmentation;
function getEnclosingBlockScopeContainer(node) {
var current = node.parent;
while (current) {
@@ -3387,15 +3504,15 @@ var ts;
return current;
}
switch (current.kind) {
- case 250:
- case 222:
- case 246:
- case 220:
- case 201:
+ case 251:
+ case 223:
+ case 247:
+ case 221:
case 202:
case 203:
+ case 204:
return current;
- case 194:
+ case 195:
if (!isFunctionLike(current.parent)) {
return current;
}
@@ -3406,9 +3523,9 @@ var ts;
ts.getEnclosingBlockScopeContainer = getEnclosingBlockScopeContainer;
function isCatchClauseVariableDeclaration(declaration) {
return declaration &&
- declaration.kind === 213 &&
+ declaration.kind === 214 &&
declaration.parent &&
- declaration.parent.kind === 246;
+ declaration.parent.kind === 247;
}
ts.isCatchClauseVariableDeclaration = isCatchClauseVariableDeclaration;
function declarationNameToString(name) {
@@ -3444,23 +3561,24 @@ var ts;
function getErrorSpanForNode(sourceFile, node) {
var errorNode = node;
switch (node.kind) {
- case 250:
+ case 251:
var pos_1 = ts.skipTrivia(sourceFile.text, 0, false);
if (pos_1 === sourceFile.text.length) {
return ts.createTextSpan(0, 0);
}
return getSpanOfTokenAtPosition(sourceFile, pos_1);
- case 213:
- case 165:
- case 216:
- case 188:
+ case 214:
+ case 166:
case 217:
+ case 189:
+ case 218:
+ case 221:
case 220:
+ case 250:
+ case 216:
+ case 176:
+ case 144:
case 219:
- case 249:
- case 215:
- case 175:
- case 143:
errorNode = node.name;
break;
}
@@ -3486,11 +3604,11 @@ var ts;
}
ts.isDeclarationFile = isDeclarationFile;
function isConstEnumDeclaration(node) {
- return node.kind === 219 && isConst(node);
+ return node.kind === 220 && isConst(node);
}
ts.isConstEnumDeclaration = isConstEnumDeclaration;
function walkUpBindingElementsAndPatterns(node) {
- while (node && (node.kind === 165 || isBindingPattern(node))) {
+ while (node && (node.kind === 166 || isBindingPattern(node))) {
node = node.parent;
}
return node;
@@ -3498,14 +3616,14 @@ var ts;
function getCombinedNodeFlags(node) {
node = walkUpBindingElementsAndPatterns(node);
var flags = node.flags;
- if (node.kind === 213) {
+ if (node.kind === 214) {
node = node.parent;
}
- if (node && node.kind === 214) {
+ if (node && node.kind === 215) {
flags |= node.flags;
node = node.parent;
}
- if (node && node.kind === 195) {
+ if (node && node.kind === 196) {
flags |= node.flags;
}
return flags;
@@ -3520,7 +3638,7 @@ var ts;
}
ts.isLet = isLet;
function isPrologueDirective(node) {
- return node.kind === 197 && node.expression.kind === 9;
+ return node.kind === 198 && node.expression.kind === 9;
}
ts.isPrologueDirective = isPrologueDirective;
function getLeadingCommentRangesOfNode(node, sourceFileOfNode) {
@@ -3536,7 +3654,7 @@ var ts;
}
ts.getJsDocComments = getJsDocComments;
function getJsDocCommentsFromText(node, text) {
- var commentRanges = (node.kind === 138 || node.kind === 137) ?
+ var commentRanges = (node.kind === 139 || node.kind === 138) ?
ts.concatenate(ts.getTrailingCommentRanges(text, node.pos), ts.getLeadingCommentRanges(text, node.pos)) :
getLeadingCommentRangesOfNodeFromText(node, text);
return ts.filter(commentRanges, isJsDocComment);
@@ -3550,7 +3668,7 @@ var ts;
ts.fullTripleSlashReferencePathRegEx = /^(\/\/\/\s*/;
ts.fullTripleSlashAMDReferencePathRegEx = /^(\/\/\/\s*/;
function isTypeNode(node) {
- if (150 <= node.kind && node.kind <= 162) {
+ if (151 <= node.kind && node.kind <= 163) {
return true;
}
switch (node.kind) {
@@ -3561,56 +3679,56 @@ var ts;
case 131:
return true;
case 103:
- return node.parent.kind !== 179;
- case 190:
+ return node.parent.kind !== 180;
+ case 191:
return !isExpressionWithTypeArgumentsInClassExtendsClause(node);
case 69:
- if (node.parent.kind === 135 && node.parent.right === node) {
+ if (node.parent.kind === 136 && node.parent.right === node) {
node = node.parent;
}
- else if (node.parent.kind === 168 && node.parent.name === node) {
+ else if (node.parent.kind === 169 && node.parent.name === node) {
node = node.parent;
}
- ts.Debug.assert(node.kind === 69 || node.kind === 135 || node.kind === 168, "'node' was expected to be a qualified name, identifier or property access in 'isTypeNode'.");
- case 135:
- case 168:
+ ts.Debug.assert(node.kind === 69 || node.kind === 136 || node.kind === 169, "'node' was expected to be a qualified name, identifier or property access in 'isTypeNode'.");
+ case 136:
+ case 169:
case 97:
var parent_1 = node.parent;
- if (parent_1.kind === 154) {
+ if (parent_1.kind === 155) {
return false;
}
- if (150 <= parent_1.kind && parent_1.kind <= 162) {
+ if (151 <= parent_1.kind && parent_1.kind <= 163) {
return true;
}
switch (parent_1.kind) {
- case 190:
+ case 191:
return !isExpressionWithTypeArgumentsInClassExtendsClause(parent_1);
- case 137:
- return node === parent_1.constraint;
- case 141:
- case 140:
case 138:
- case 213:
+ return node === parent_1.constraint;
+ case 142:
+ case 141:
+ case 139:
+ case 214:
return node === parent_1.type;
- case 215:
- case 175:
+ case 216:
case 176:
+ case 177:
+ case 145:
case 144:
case 143:
- case 142:
- case 145:
case 146:
- return node === parent_1.type;
case 147:
+ return node === parent_1.type;
case 148:
case 149:
+ case 150:
return node === parent_1.type;
- case 173:
+ case 174:
return node === parent_1.type;
- case 170:
case 171:
- return parent_1.typeArguments && ts.indexOf(parent_1.typeArguments, node) >= 0;
case 172:
+ return parent_1.typeArguments && ts.indexOf(parent_1.typeArguments, node) >= 0;
+ case 173:
return false;
}
}
@@ -3621,23 +3739,23 @@ var ts;
return traverse(body);
function traverse(node) {
switch (node.kind) {
- case 206:
+ case 207:
return visitor(node);
- case 222:
- case 194:
- case 198:
+ case 223:
+ case 195:
case 199:
case 200:
case 201:
case 202:
case 203:
- case 207:
+ case 204:
case 208:
- case 243:
- case 244:
case 209:
- case 211:
- case 246:
+ case 244:
+ case 245:
+ case 210:
+ case 212:
+ case 247:
return ts.forEachChild(node, traverse);
}
}
@@ -3647,23 +3765,23 @@ var ts;
return traverse(body);
function traverse(node) {
switch (node.kind) {
- case 186:
+ case 187:
visitor(node);
var operand = node.expression;
if (operand) {
traverse(operand);
}
- case 219:
- case 217:
case 220:
case 218:
- case 216:
- case 188:
+ case 221:
+ case 219:
+ case 217:
+ case 189:
return;
default:
if (isFunctionLike(node)) {
var name_5 = node.name;
- if (name_5 && name_5.kind === 136) {
+ if (name_5 && name_5.kind === 137) {
traverse(name_5.expression);
return;
}
@@ -3678,14 +3796,14 @@ var ts;
function isVariableLike(node) {
if (node) {
switch (node.kind) {
- case 165:
- case 249:
- case 138:
- case 247:
- case 141:
- case 140:
+ case 166:
+ case 250:
+ case 139:
case 248:
- case 213:
+ case 142:
+ case 141:
+ case 249:
+ case 214:
return true;
}
}
@@ -3693,11 +3811,11 @@ var ts;
}
ts.isVariableLike = isVariableLike;
function isAccessor(node) {
- return node && (node.kind === 145 || node.kind === 146);
+ return node && (node.kind === 146 || node.kind === 147);
}
ts.isAccessor = isAccessor;
function isClassLike(node) {
- return node && (node.kind === 216 || node.kind === 188);
+ return node && (node.kind === 217 || node.kind === 189);
}
ts.isClassLike = isClassLike;
function isFunctionLike(node) {
@@ -3706,32 +3824,32 @@ var ts;
ts.isFunctionLike = isFunctionLike;
function isFunctionLikeKind(kind) {
switch (kind) {
- case 144:
- case 175:
- case 215:
- case 176:
- case 143:
- case 142:
case 145:
+ case 176:
+ case 216:
+ case 177:
+ case 144:
+ case 143:
case 146:
case 147:
case 148:
case 149:
- case 152:
+ case 150:
case 153:
+ case 154:
return true;
}
}
ts.isFunctionLikeKind = isFunctionLikeKind;
function introducesArgumentsExoticObject(node) {
switch (node.kind) {
- case 143:
- case 142:
case 144:
+ case 143:
case 145:
case 146:
- case 215:
- case 175:
+ case 147:
+ case 216:
+ case 176:
return true;
}
return false;
@@ -3739,24 +3857,24 @@ var ts;
ts.introducesArgumentsExoticObject = introducesArgumentsExoticObject;
function isIterationStatement(node, lookInLabeledStatements) {
switch (node.kind) {
- case 201:
case 202:
case 203:
- case 199:
+ case 204:
case 200:
+ case 201:
return true;
- case 209:
+ case 210:
return lookInLabeledStatements && isIterationStatement(node.statement, lookInLabeledStatements);
}
return false;
}
ts.isIterationStatement = isIterationStatement;
function isFunctionBlock(node) {
- return node && node.kind === 194 && isFunctionLike(node.parent);
+ return node && node.kind === 195 && isFunctionLike(node.parent);
}
ts.isFunctionBlock = isFunctionBlock;
function isObjectLiteralMethod(node) {
- return node && node.kind === 143 && node.parent.kind === 167;
+ return node && node.kind === 144 && node.parent.kind === 168;
}
ts.isObjectLiteralMethod = isObjectLiteralMethod;
function isIdentifierTypePredicate(predicate) {
@@ -3788,39 +3906,39 @@ var ts;
return undefined;
}
switch (node.kind) {
- case 136:
+ case 137:
if (isClassLike(node.parent.parent)) {
return node;
}
node = node.parent;
break;
- case 139:
- if (node.parent.kind === 138 && isClassElement(node.parent.parent)) {
+ case 140:
+ if (node.parent.kind === 139 && isClassElement(node.parent.parent)) {
node = node.parent.parent;
}
else if (isClassElement(node.parent)) {
node = node.parent;
}
break;
- case 176:
+ case 177:
if (!includeArrowFunctions) {
continue;
}
- case 215:
- case 175:
- case 220:
- case 141:
- case 140:
- case 143:
+ case 216:
+ case 176:
+ case 221:
case 142:
+ case 141:
case 144:
+ case 143:
case 145:
case 146:
case 147:
case 148:
case 149:
- case 219:
- case 250:
+ case 150:
+ case 220:
+ case 251:
return node;
}
}
@@ -3833,25 +3951,25 @@ var ts;
return node;
}
switch (node.kind) {
- case 136:
+ case 137:
node = node.parent;
break;
- case 215:
- case 175:
+ case 216:
case 176:
+ case 177:
if (!stopOnFunctions) {
continue;
}
- case 141:
- case 140:
- case 143:
case 142:
+ case 141:
case 144:
+ case 143:
case 145:
case 146:
+ case 147:
return node;
- case 139:
- if (node.parent.kind === 138 && isClassElement(node.parent.parent)) {
+ case 140:
+ if (node.parent.kind === 139 && isClassElement(node.parent.parent)) {
node = node.parent.parent;
}
else if (isClassElement(node.parent)) {
@@ -3865,12 +3983,12 @@ var ts;
function getEntityNameFromTypeNode(node) {
if (node) {
switch (node.kind) {
- case 151:
+ case 152:
return node.typeName;
- case 190:
+ case 191:
return node.expression;
case 69:
- case 135:
+ case 136:
return node;
}
}
@@ -3878,7 +3996,7 @@ var ts;
}
ts.getEntityNameFromTypeNode = getEntityNameFromTypeNode;
function getInvokedExpression(node) {
- if (node.kind === 172) {
+ if (node.kind === 173) {
return node.tag;
}
return node.expression;
@@ -3886,54 +4004,36 @@ var ts;
ts.getInvokedExpression = getInvokedExpression;
function nodeCanBeDecorated(node) {
switch (node.kind) {
- case 216:
+ case 217:
return true;
- case 141:
- return node.parent.kind === 216;
- case 138:
- return node.parent.body && node.parent.parent.kind === 216;
- case 145:
+ case 142:
+ return node.parent.kind === 217;
case 146:
- case 143:
- return node.body && node.parent.kind === 216;
+ case 147:
+ case 144:
+ return node.body !== undefined
+ && node.parent.kind === 217;
+ case 139:
+ return node.parent.body !== undefined
+ && (node.parent.kind === 145
+ || node.parent.kind === 144
+ || node.parent.kind === 147)
+ && node.parent.parent.kind === 217;
}
return false;
}
ts.nodeCanBeDecorated = nodeCanBeDecorated;
function nodeIsDecorated(node) {
- switch (node.kind) {
- case 216:
- if (node.decorators) {
- return true;
- }
- return false;
- case 141:
- case 138:
- if (node.decorators) {
- return true;
- }
- return false;
- case 145:
- if (node.body && node.decorators) {
- return true;
- }
- return false;
- case 143:
- case 146:
- if (node.body && node.decorators) {
- return true;
- }
- return false;
- }
- return false;
+ return node.decorators !== undefined
+ && nodeCanBeDecorated(node);
}
ts.nodeIsDecorated = nodeIsDecorated;
function isPropertyAccessExpression(node) {
- return node.kind === 168;
+ return node.kind === 169;
}
ts.isPropertyAccessExpression = isPropertyAccessExpression;
function isElementAccessExpression(node) {
- return node.kind === 169;
+ return node.kind === 170;
}
ts.isElementAccessExpression = isElementAccessExpression;
function isExpression(node) {
@@ -3943,42 +4043,42 @@ var ts;
case 99:
case 84:
case 10:
- case 166:
case 167:
case 168:
case 169:
case 170:
case 171:
case 172:
- case 191:
case 173:
+ case 192:
case 174:
case 175:
- case 188:
case 176:
- case 179:
+ case 189:
case 177:
+ case 180:
case 178:
- case 181:
+ case 179:
case 182:
case 183:
case 184:
- case 187:
case 185:
- case 11:
- case 189:
- case 235:
- case 236:
+ case 188:
case 186:
- case 180:
+ case 11:
+ case 190:
+ case 236:
+ case 237:
+ case 187:
+ case 181:
return true;
- case 135:
- while (node.parent.kind === 135) {
+ case 136:
+ while (node.parent.kind === 136) {
node = node.parent;
}
- return node.parent.kind === 154;
+ return node.parent.kind === 155;
case 69:
- if (node.parent.kind === 154) {
+ if (node.parent.kind === 155) {
return true;
}
case 8:
@@ -3986,47 +4086,47 @@ var ts;
case 97:
var parent_2 = node.parent;
switch (parent_2.kind) {
- case 213:
- case 138:
+ case 214:
+ case 139:
+ case 142:
case 141:
- case 140:
- case 249:
- case 247:
- case 165:
+ case 250:
+ case 248:
+ case 166:
return parent_2.initializer === node;
- case 197:
case 198:
case 199:
case 200:
- case 206:
+ case 201:
case 207:
case 208:
- case 243:
- case 210:
- case 208:
+ case 209:
+ case 244:
+ case 211:
+ case 209:
return parent_2.expression === node;
- case 201:
+ case 202:
var forStatement = parent_2;
- return (forStatement.initializer === node && forStatement.initializer.kind !== 214) ||
+ return (forStatement.initializer === node && forStatement.initializer.kind !== 215) ||
forStatement.condition === node ||
forStatement.incrementor === node;
- case 202:
case 203:
+ case 204:
var forInStatement = parent_2;
- return (forInStatement.initializer === node && forInStatement.initializer.kind !== 214) ||
+ return (forInStatement.initializer === node && forInStatement.initializer.kind !== 215) ||
forInStatement.expression === node;
- case 173:
- case 191:
- return node === parent_2.expression;
+ case 174:
case 192:
return node === parent_2.expression;
- case 136:
+ case 193:
return node === parent_2.expression;
- case 139:
+ case 137:
+ return node === parent_2.expression;
+ case 140:
+ case 243:
case 242:
- case 241:
return true;
- case 190:
+ case 191:
return parent_2.expression === node && isExpressionWithTypeArgumentsInClassExtendsClause(parent_2);
default:
if (isExpression(parent_2)) {
@@ -4048,7 +4148,7 @@ var ts;
}
ts.isInstantiatedModule = isInstantiatedModule;
function isExternalModuleImportEqualsDeclaration(node) {
- return node.kind === 223 && node.moduleReference.kind === 234;
+ return node.kind === 224 && node.moduleReference.kind === 235;
}
ts.isExternalModuleImportEqualsDeclaration = isExternalModuleImportEqualsDeclaration;
function getExternalModuleImportEqualsDeclarationExpression(node) {
@@ -4057,7 +4157,7 @@ var ts;
}
ts.getExternalModuleImportEqualsDeclarationExpression = getExternalModuleImportEqualsDeclarationExpression;
function isInternalModuleImportEqualsDeclaration(node) {
- return node.kind === 223 && node.moduleReference.kind !== 234;
+ return node.kind === 224 && node.moduleReference.kind !== 235;
}
ts.isInternalModuleImportEqualsDeclaration = isInternalModuleImportEqualsDeclaration;
function isSourceFileJavaScript(file) {
@@ -4069,7 +4169,7 @@ var ts;
}
ts.isInJavaScriptFile = isInJavaScriptFile;
function isRequireCall(expression) {
- return expression.kind === 170 &&
+ return expression.kind === 171 &&
expression.expression.kind === 69 &&
expression.expression.text === "require" &&
expression.arguments.length === 1 &&
@@ -4077,11 +4177,11 @@ var ts;
}
ts.isRequireCall = isRequireCall;
function getSpecialPropertyAssignmentKind(expression) {
- if (expression.kind !== 183) {
+ if (expression.kind !== 184) {
return 0;
}
var expr = expression;
- if (expr.operatorToken.kind !== 56 || expr.left.kind !== 168) {
+ if (expr.operatorToken.kind !== 56 || expr.left.kind !== 169) {
return 0;
}
var lhs = expr.left;
@@ -4097,7 +4197,7 @@ var ts;
else if (lhs.expression.kind === 97) {
return 4;
}
- else if (lhs.expression.kind === 168) {
+ else if (lhs.expression.kind === 169) {
var innerPropertyAccess = lhs.expression;
if (innerPropertyAccess.expression.kind === 69 && innerPropertyAccess.name.text === "prototype") {
return 3;
@@ -4107,30 +4207,33 @@ var ts;
}
ts.getSpecialPropertyAssignmentKind = getSpecialPropertyAssignmentKind;
function getExternalModuleName(node) {
- if (node.kind === 224) {
+ if (node.kind === 225) {
return node.moduleSpecifier;
}
- if (node.kind === 223) {
+ if (node.kind === 224) {
var reference = node.moduleReference;
- if (reference.kind === 234) {
+ if (reference.kind === 235) {
return reference.expression;
}
}
- if (node.kind === 230) {
+ if (node.kind === 231) {
return node.moduleSpecifier;
}
+ if (node.kind === 221 && node.name.kind === 9) {
+ return node.name;
+ }
}
ts.getExternalModuleName = getExternalModuleName;
function hasQuestionToken(node) {
if (node) {
switch (node.kind) {
- case 138:
+ case 139:
+ case 144:
case 143:
- case 142:
+ case 249:
case 248:
- case 247:
+ case 142:
case 141:
- case 140:
return node.questionToken !== undefined;
}
}
@@ -4138,9 +4241,9 @@ var ts;
}
ts.hasQuestionToken = hasQuestionToken;
function isJSDocConstructSignature(node) {
- return node.kind === 263 &&
+ return node.kind === 264 &&
node.parameters.length > 0 &&
- node.parameters[0].type.kind === 265;
+ node.parameters[0].type.kind === 266;
}
ts.isJSDocConstructSignature = isJSDocConstructSignature;
function getJSDocTag(node, kind) {
@@ -4154,15 +4257,15 @@ var ts;
}
}
function getJSDocTypeTag(node) {
- return getJSDocTag(node, 271);
+ return getJSDocTag(node, 272);
}
ts.getJSDocTypeTag = getJSDocTypeTag;
function getJSDocReturnTag(node) {
- return getJSDocTag(node, 270);
+ return getJSDocTag(node, 271);
}
ts.getJSDocReturnTag = getJSDocReturnTag;
function getJSDocTemplateTag(node) {
- return getJSDocTag(node, 272);
+ return getJSDocTag(node, 273);
}
ts.getJSDocTemplateTag = getJSDocTemplateTag;
function getCorrespondingJSDocParameterTag(parameter) {
@@ -4171,7 +4274,7 @@ var ts;
var docComment = parameter.parent.jsDocComment;
if (docComment) {
return ts.forEach(docComment.tags, function (t) {
- if (t.kind === 269) {
+ if (t.kind === 270) {
var parameterTag = t;
var name_6 = parameterTag.preParameterName || parameterTag.postParameterName;
if (name_6.text === parameterName) {
@@ -4190,12 +4293,12 @@ var ts;
function isRestParameter(node) {
if (node) {
if (node.parserContextFlags & 32) {
- if (node.type && node.type.kind === 264) {
+ if (node.type && node.type.kind === 265) {
return true;
}
var paramTag = getCorrespondingJSDocParameterTag(node);
if (paramTag && paramTag.typeExpression) {
- return paramTag.typeExpression.type.kind === 264;
+ return paramTag.typeExpression.type.kind === 265;
}
}
return node.dotDotDotToken !== undefined;
@@ -4216,7 +4319,7 @@ var ts;
}
ts.isTemplateLiteralKind = isTemplateLiteralKind;
function isBindingPattern(node) {
- return !!node && (node.kind === 164 || node.kind === 163);
+ return !!node && (node.kind === 165 || node.kind === 164);
}
ts.isBindingPattern = isBindingPattern;
function isNodeDescendentOf(node, ancestor) {
@@ -4240,34 +4343,34 @@ var ts;
ts.isInAmbientContext = isInAmbientContext;
function isDeclaration(node) {
switch (node.kind) {
- case 176:
- case 165:
- case 216:
- case 188:
- case 144:
- case 219:
- case 249:
- case 232:
- case 215:
- case 175:
- case 145:
- case 225:
- case 223:
- case 228:
+ case 177:
+ case 166:
case 217:
- case 143:
- case 142:
+ case 189:
+ case 145:
case 220:
- case 226:
- case 138:
- case 247:
- case 141:
- case 140:
+ case 250:
+ case 233:
+ case 216:
+ case 176:
case 146:
- case 248:
+ case 226:
+ case 224:
+ case 229:
case 218:
- case 137:
- case 213:
+ case 144:
+ case 143:
+ case 221:
+ case 227:
+ case 139:
+ case 248:
+ case 142:
+ case 141:
+ case 147:
+ case 249:
+ case 219:
+ case 138:
+ case 214:
return true;
}
return false;
@@ -4275,25 +4378,25 @@ var ts;
ts.isDeclaration = isDeclaration;
function isStatement(n) {
switch (n.kind) {
- case 205:
- case 204:
- case 212:
- case 199:
- case 197:
- case 196:
- case 202:
- case 203:
- case 201:
- case 198:
- case 209:
case 206:
- case 208:
- case 210:
- case 211:
- case 195:
+ case 205:
+ case 213:
case 200:
+ case 198:
+ case 197:
+ case 203:
+ case 204:
+ case 202:
+ case 199:
+ case 210:
case 207:
- case 229:
+ case 209:
+ case 211:
+ case 212:
+ case 196:
+ case 201:
+ case 208:
+ case 230:
return true;
default:
return false;
@@ -4302,13 +4405,13 @@ var ts;
ts.isStatement = isStatement;
function isClassElement(n) {
switch (n.kind) {
- case 144:
- case 141:
- case 143:
case 145:
- case 146:
case 142:
- case 149:
+ case 144:
+ case 146:
+ case 147:
+ case 143:
+ case 150:
return true;
default:
return false;
@@ -4320,7 +4423,7 @@ var ts;
return false;
}
var parent = name.parent;
- if (parent.kind === 228 || parent.kind === 232) {
+ if (parent.kind === 229 || parent.kind === 233) {
if (parent.propertyName) {
return true;
}
@@ -4334,40 +4437,40 @@ var ts;
function isIdentifierName(node) {
var parent = node.parent;
switch (parent.kind) {
- case 141:
- case 140:
- case 143:
case 142:
- case 145:
+ case 141:
+ case 144:
+ case 143:
case 146:
- case 249:
- case 247:
- case 168:
+ case 147:
+ case 250:
+ case 248:
+ case 169:
return parent.name === node;
- case 135:
+ case 136:
if (parent.right === node) {
- while (parent.kind === 135) {
+ while (parent.kind === 136) {
parent = parent.parent;
}
- return parent.kind === 154;
+ return parent.kind === 155;
}
return false;
- case 165:
- case 228:
+ case 166:
+ case 229:
return parent.propertyName === node;
- case 232:
+ case 233:
return true;
}
return false;
}
ts.isIdentifierName = isIdentifierName;
function isAliasSymbolDeclaration(node) {
- return node.kind === 223 ||
- node.kind === 225 && !!node.name ||
- node.kind === 226 ||
- node.kind === 228 ||
- node.kind === 232 ||
- node.kind === 229 && node.expression.kind === 69;
+ return node.kind === 224 ||
+ node.kind === 226 && !!node.name ||
+ node.kind === 227 ||
+ node.kind === 229 ||
+ node.kind === 233 ||
+ node.kind === 230 && node.expression.kind === 69;
}
ts.isAliasSymbolDeclaration = isAliasSymbolDeclaration;
function getClassExtendsHeritageClauseElement(node) {
@@ -4449,7 +4552,7 @@ var ts;
}
ts.getFileReferenceFromReferencePath = getFileReferenceFromReferencePath;
function isKeyword(token) {
- return 70 <= token && token <= 134;
+ return 70 <= token && token <= 135;
}
ts.isKeyword = isKeyword;
function isTrivia(token) {
@@ -4469,7 +4572,7 @@ var ts;
}
ts.hasDynamicName = hasDynamicName;
function isDynamicName(name) {
- return name.kind === 136 &&
+ return name.kind === 137 &&
!isStringOrNumericLiteral(name.expression.kind) &&
!isWellKnownSymbolSyntactically(name.expression);
}
@@ -4482,7 +4585,7 @@ var ts;
if (name.kind === 69 || name.kind === 9 || name.kind === 8) {
return name.text;
}
- if (name.kind === 136) {
+ if (name.kind === 137) {
var nameExpression = name.expression;
if (isWellKnownSymbolSyntactically(nameExpression)) {
var rightHandSideName = nameExpression.name.text;
@@ -4519,18 +4622,18 @@ var ts;
ts.isModifierKind = isModifierKind;
function isParameterDeclaration(node) {
var root = getRootDeclaration(node);
- return root.kind === 138;
+ return root.kind === 139;
}
ts.isParameterDeclaration = isParameterDeclaration;
function getRootDeclaration(node) {
- while (node.kind === 165) {
+ while (node.kind === 166) {
node = node.parent.parent;
}
return node;
}
ts.getRootDeclaration = getRootDeclaration;
function nodeStartsNewLexicalEnvironment(n) {
- return isFunctionLike(n) || n.kind === 220 || n.kind === 250;
+ return isFunctionLike(n) || n.kind === 221 || n.kind === 251;
}
ts.nodeStartsNewLexicalEnvironment = nodeStartsNewLexicalEnvironment;
function cloneNode(node, location, flags, parent) {
@@ -4563,7 +4666,7 @@ var ts;
}
ts.cloneEntityName = cloneEntityName;
function isQualifiedName(node) {
- return node.kind === 135;
+ return node.kind === 136;
}
ts.isQualifiedName = isQualifiedName;
function nodeIsSynthesized(node) {
@@ -4876,7 +4979,7 @@ var ts;
ts.getLineOfLocalPositionFromLineMap = getLineOfLocalPositionFromLineMap;
function getFirstConstructorWithBody(node) {
return ts.forEach(node.members, function (member) {
- if (member.kind === 144 && nodeIsPresent(member.body)) {
+ if (member.kind === 145 && nodeIsPresent(member.body)) {
return member;
}
});
@@ -4893,10 +4996,10 @@ var ts;
var setAccessor;
if (hasDynamicName(accessor)) {
firstAccessor = accessor;
- if (accessor.kind === 145) {
+ if (accessor.kind === 146) {
getAccessor = accessor;
}
- else if (accessor.kind === 146) {
+ else if (accessor.kind === 147) {
setAccessor = accessor;
}
else {
@@ -4905,7 +5008,7 @@ var ts;
}
else {
ts.forEach(declarations, function (member) {
- if ((member.kind === 145 || member.kind === 146)
+ if ((member.kind === 146 || member.kind === 147)
&& (member.flags & 64) === (accessor.flags & 64)) {
var memberName = getPropertyNameForPropertyNameNode(member.name);
var accessorName = getPropertyNameForPropertyNameNode(accessor.name);
@@ -4916,10 +5019,10 @@ var ts;
else if (!secondAccessor) {
secondAccessor = member;
}
- if (member.kind === 145 && !getAccessor) {
+ if (member.kind === 146 && !getAccessor) {
getAccessor = member;
}
- if (member.kind === 146 && !setAccessor) {
+ if (member.kind === 147 && !setAccessor) {
setAccessor = member;
}
}
@@ -5085,24 +5188,24 @@ var ts;
function isLeftHandSideExpression(expr) {
if (expr) {
switch (expr.kind) {
- case 168:
case 169:
- case 171:
case 170:
- case 235:
- case 236:
case 172:
- case 166:
- case 174:
+ case 171:
+ case 236:
+ case 237:
+ case 173:
case 167:
- case 188:
case 175:
+ case 168:
+ case 189:
+ case 176:
case 69:
case 10:
case 8:
case 9:
case 11:
- case 185:
+ case 186:
case 84:
case 93:
case 97:
@@ -5119,7 +5222,7 @@ var ts;
}
ts.isAssignmentOperator = isAssignmentOperator;
function isExpressionWithTypeArgumentsInClassExtendsClause(node) {
- return node.kind === 190 &&
+ return node.kind === 191 &&
node.parent.token === 83 &&
isClassLike(node.parent.parent);
}
@@ -5140,16 +5243,16 @@ var ts;
}
}
function isRightSideOfQualifiedNameOrPropertyAccess(node) {
- return (node.parent.kind === 135 && node.parent.right === node) ||
- (node.parent.kind === 168 && node.parent.name === node);
+ return (node.parent.kind === 136 && node.parent.right === node) ||
+ (node.parent.kind === 169 && node.parent.name === node);
}
ts.isRightSideOfQualifiedNameOrPropertyAccess = isRightSideOfQualifiedNameOrPropertyAccess;
function isEmptyObjectLiteralOrArrayLiteral(expression) {
var kind = expression.kind;
- if (kind === 167) {
+ if (kind === 168) {
return expression.properties.length === 0;
}
- if (kind === 166) {
+ if (kind === 167) {
return expression.elements.length === 0;
}
return false;
@@ -5393,9 +5496,9 @@ var ts;
}
ts.collapseTextChangeRangesAcrossMultipleVersions = collapseTextChangeRangesAcrossMultipleVersions;
function getTypeParameterOwner(d) {
- if (d && d.kind === 137) {
+ if (d && d.kind === 138) {
for (var current = d; current; current = current.parent) {
- if (ts.isFunctionLike(current) || ts.isClassLike(current) || current.kind === 217) {
+ if (ts.isFunctionLike(current) || ts.isClassLike(current) || current.kind === 218) {
return current;
}
}
@@ -5403,7 +5506,7 @@ var ts;
}
ts.getTypeParameterOwner = getTypeParameterOwner;
function isParameterPropertyDeclaration(node) {
- return node.flags & 56 && node.parent.kind === 144 && ts.isClassLike(node.parent.parent);
+ return node.flags & 56 && node.parent.kind === 145 && ts.isClassLike(node.parent.parent);
}
ts.isParameterPropertyDeclaration = isParameterPropertyDeclaration;
})(ts || (ts = {}));
@@ -5413,7 +5516,7 @@ var ts;
var NodeConstructor;
var SourceFileConstructor;
function createNode(kind, pos, end) {
- if (kind === 250) {
+ if (kind === 251) {
return new (SourceFileConstructor || (SourceFileConstructor = ts.objectAllocator.getSourceFileConstructor()))(kind, pos, end);
}
else {
@@ -5449,26 +5552,26 @@ var ts;
var visitNodes = cbNodeArray ? visitNodeArray : visitEachNode;
var cbNodes = cbNodeArray || cbNode;
switch (node.kind) {
- case 135:
+ case 136:
return visitNode(cbNode, node.left) ||
visitNode(cbNode, node.right);
- case 137:
+ case 138:
return visitNode(cbNode, node.name) ||
visitNode(cbNode, node.constraint) ||
visitNode(cbNode, node.expression);
- case 248:
+ case 249:
return visitNodes(cbNodes, node.decorators) ||
visitNodes(cbNodes, node.modifiers) ||
visitNode(cbNode, node.name) ||
visitNode(cbNode, node.questionToken) ||
visitNode(cbNode, node.equalsToken) ||
visitNode(cbNode, node.objectAssignmentInitializer);
- case 138:
+ case 139:
+ case 142:
case 141:
- case 140:
- case 247:
- case 213:
- case 165:
+ case 248:
+ case 214:
+ case 166:
return visitNodes(cbNodes, node.decorators) ||
visitNodes(cbNodes, node.modifiers) ||
visitNode(cbNode, node.propertyName) ||
@@ -5477,24 +5580,24 @@ var ts;
visitNode(cbNode, node.questionToken) ||
visitNode(cbNode, node.type) ||
visitNode(cbNode, node.initializer);
- case 152:
case 153:
- case 147:
+ case 154:
case 148:
case 149:
+ case 150:
return visitNodes(cbNodes, node.decorators) ||
visitNodes(cbNodes, node.modifiers) ||
visitNodes(cbNodes, node.typeParameters) ||
visitNodes(cbNodes, node.parameters) ||
visitNode(cbNode, node.type);
- case 143:
- case 142:
case 144:
+ case 143:
case 145:
case 146:
- case 175:
- case 215:
+ case 147:
case 176:
+ case 216:
+ case 177:
return visitNodes(cbNodes, node.decorators) ||
visitNodes(cbNodes, node.modifiers) ||
visitNode(cbNode, node.asteriskToken) ||
@@ -5505,160 +5608,153 @@ var ts;
visitNode(cbNode, node.type) ||
visitNode(cbNode, node.equalsGreaterThanToken) ||
visitNode(cbNode, node.body);
- case 151:
+ case 152:
return visitNode(cbNode, node.typeName) ||
visitNodes(cbNodes, node.typeArguments);
- case 150:
+ case 151:
return visitNode(cbNode, node.parameterName) ||
visitNode(cbNode, node.type);
- case 154:
- return visitNode(cbNode, node.exprName);
case 155:
- return visitNodes(cbNodes, node.members);
+ return visitNode(cbNode, node.exprName);
case 156:
- return visitNode(cbNode, node.elementType);
+ return visitNodes(cbNodes, node.members);
case 157:
- return visitNodes(cbNodes, node.elementTypes);
+ return visitNode(cbNode, node.elementType);
case 158:
+ return visitNodes(cbNodes, node.elementTypes);
case 159:
- return visitNodes(cbNodes, node.types);
case 160:
+ return visitNodes(cbNodes, node.types);
+ case 161:
return visitNode(cbNode, node.type);
- case 163:
case 164:
- return visitNodes(cbNodes, node.elements);
- case 166:
+ case 165:
return visitNodes(cbNodes, node.elements);
case 167:
- return visitNodes(cbNodes, node.properties);
+ return visitNodes(cbNodes, node.elements);
case 168:
+ return visitNodes(cbNodes, node.properties);
+ case 169:
return visitNode(cbNode, node.expression) ||
visitNode(cbNode, node.dotToken) ||
visitNode(cbNode, node.name);
- case 169:
+ case 170:
return visitNode(cbNode, node.expression) ||
visitNode(cbNode, node.argumentExpression);
- case 170:
case 171:
+ case 172:
return visitNode(cbNode, node.expression) ||
visitNodes(cbNodes, node.typeArguments) ||
visitNodes(cbNodes, node.arguments);
- case 172:
+ case 173:
return visitNode(cbNode, node.tag) ||
visitNode(cbNode, node.template);
- case 173:
+ case 174:
return visitNode(cbNode, node.type) ||
visitNode(cbNode, node.expression);
- case 174:
- return visitNode(cbNode, node.expression);
- case 177:
+ case 175:
return visitNode(cbNode, node.expression);
case 178:
return visitNode(cbNode, node.expression);
case 179:
return visitNode(cbNode, node.expression);
- case 181:
- return visitNode(cbNode, node.operand);
- case 186:
- return visitNode(cbNode, node.asteriskToken) ||
- visitNode(cbNode, node.expression);
case 180:
return visitNode(cbNode, node.expression);
case 182:
return visitNode(cbNode, node.operand);
+ case 187:
+ return visitNode(cbNode, node.asteriskToken) ||
+ visitNode(cbNode, node.expression);
+ case 181:
+ return visitNode(cbNode, node.expression);
case 183:
+ return visitNode(cbNode, node.operand);
+ case 184:
return visitNode(cbNode, node.left) ||
visitNode(cbNode, node.operatorToken) ||
visitNode(cbNode, node.right);
- case 191:
+ case 192:
return visitNode(cbNode, node.expression) ||
visitNode(cbNode, node.type);
- case 184:
+ case 185:
return visitNode(cbNode, node.condition) ||
visitNode(cbNode, node.questionToken) ||
visitNode(cbNode, node.whenTrue) ||
visitNode(cbNode, node.colonToken) ||
visitNode(cbNode, node.whenFalse);
- case 187:
+ case 188:
return visitNode(cbNode, node.expression);
- case 194:
- case 221:
+ case 195:
+ case 222:
return visitNodes(cbNodes, node.statements);
- case 250:
+ case 251:
return visitNodes(cbNodes, node.statements) ||
visitNode(cbNode, node.endOfFileToken);
- case 195:
+ case 196:
return visitNodes(cbNodes, node.decorators) ||
visitNodes(cbNodes, node.modifiers) ||
visitNode(cbNode, node.declarationList);
- case 214:
+ case 215:
return visitNodes(cbNodes, node.declarations);
- case 197:
- return visitNode(cbNode, node.expression);
case 198:
+ return visitNode(cbNode, node.expression);
+ case 199:
return visitNode(cbNode, node.expression) ||
visitNode(cbNode, node.thenStatement) ||
visitNode(cbNode, node.elseStatement);
- case 199:
+ case 200:
return visitNode(cbNode, node.statement) ||
visitNode(cbNode, node.expression);
- case 200:
- return visitNode(cbNode, node.expression) ||
- visitNode(cbNode, node.statement);
case 201:
- return visitNode(cbNode, node.initializer) ||
- visitNode(cbNode, node.condition) ||
- visitNode(cbNode, node.incrementor) ||
+ return visitNode(cbNode, node.expression) ||
visitNode(cbNode, node.statement);
case 202:
return visitNode(cbNode, node.initializer) ||
- visitNode(cbNode, node.expression) ||
+ visitNode(cbNode, node.condition) ||
+ visitNode(cbNode, node.incrementor) ||
visitNode(cbNode, node.statement);
case 203:
return visitNode(cbNode, node.initializer) ||
visitNode(cbNode, node.expression) ||
visitNode(cbNode, node.statement);
case 204:
- case 205:
- return visitNode(cbNode, node.label);
- case 206:
- return visitNode(cbNode, node.expression);
- case 207:
- return visitNode(cbNode, node.expression) ||
+ return visitNode(cbNode, node.initializer) ||
+ visitNode(cbNode, node.expression) ||
visitNode(cbNode, node.statement);
+ case 205:
+ case 206:
+ return visitNode(cbNode, node.label);
+ case 207:
+ return visitNode(cbNode, node.expression);
case 208:
+ return visitNode(cbNode, node.expression) ||
+ visitNode(cbNode, node.statement);
+ case 209:
return visitNode(cbNode, node.expression) ||
visitNode(cbNode, node.caseBlock);
- case 222:
+ case 223:
return visitNodes(cbNodes, node.clauses);
- case 243:
+ case 244:
return visitNode(cbNode, node.expression) ||
visitNodes(cbNodes, node.statements);
- case 244:
+ case 245:
return visitNodes(cbNodes, node.statements);
- case 209:
+ case 210:
return visitNode(cbNode, node.label) ||
visitNode(cbNode, node.statement);
- case 210:
- return visitNode(cbNode, node.expression);
case 211:
+ return visitNode(cbNode, node.expression);
+ case 212:
return visitNode(cbNode, node.tryBlock) ||
visitNode(cbNode, node.catchClause) ||
visitNode(cbNode, node.finallyBlock);
- case 246:
+ case 247:
return visitNode(cbNode, node.variableDeclaration) ||
visitNode(cbNode, node.block);
- case 139:
+ case 140:
return visitNode(cbNode, node.expression);
- case 216:
- case 188:
- return visitNodes(cbNodes, node.decorators) ||
- visitNodes(cbNodes, node.modifiers) ||
- visitNode(cbNode, node.name) ||
- visitNodes(cbNodes, node.typeParameters) ||
- visitNodes(cbNodes, node.heritageClauses) ||
- visitNodes(cbNodes, node.members);
case 217:
+ case 189:
return visitNodes(cbNodes, node.decorators) ||
visitNodes(cbNodes, node.modifiers) ||
visitNode(cbNode, node.name) ||
@@ -5670,125 +5766,132 @@ var ts;
visitNodes(cbNodes, node.modifiers) ||
visitNode(cbNode, node.name) ||
visitNodes(cbNodes, node.typeParameters) ||
- visitNode(cbNode, node.type);
+ visitNodes(cbNodes, node.heritageClauses) ||
+ visitNodes(cbNodes, node.members);
case 219:
return visitNodes(cbNodes, node.decorators) ||
visitNodes(cbNodes, node.modifiers) ||
visitNode(cbNode, node.name) ||
- visitNodes(cbNodes, node.members);
- case 249:
- return visitNode(cbNode, node.name) ||
- visitNode(cbNode, node.initializer);
+ visitNodes(cbNodes, node.typeParameters) ||
+ visitNode(cbNode, node.type);
case 220:
+ return visitNodes(cbNodes, node.decorators) ||
+ visitNodes(cbNodes, node.modifiers) ||
+ visitNode(cbNode, node.name) ||
+ visitNodes(cbNodes, node.members);
+ case 250:
+ return visitNode(cbNode, node.name) ||
+ visitNode(cbNode, node.initializer);
+ case 221:
return visitNodes(cbNodes, node.decorators) ||
visitNodes(cbNodes, node.modifiers) ||
visitNode(cbNode, node.name) ||
visitNode(cbNode, node.body);
- case 223:
+ case 224:
return visitNodes(cbNodes, node.decorators) ||
visitNodes(cbNodes, node.modifiers) ||
visitNode(cbNode, node.name) ||
visitNode(cbNode, node.moduleReference);
- case 224:
+ case 225:
return visitNodes(cbNodes, node.decorators) ||
visitNodes(cbNodes, node.modifiers) ||
visitNode(cbNode, node.importClause) ||
visitNode(cbNode, node.moduleSpecifier);
- case 225:
+ case 226:
return visitNode(cbNode, node.name) ||
visitNode(cbNode, node.namedBindings);
- case 226:
- return visitNode(cbNode, node.name);
case 227:
- case 231:
+ return visitNode(cbNode, node.name);
+ case 228:
+ case 232:
return visitNodes(cbNodes, node.elements);
- case 230:
+ case 231:
return visitNodes(cbNodes, node.decorators) ||
visitNodes(cbNodes, node.modifiers) ||
visitNode(cbNode, node.exportClause) ||
visitNode(cbNode, node.moduleSpecifier);
- case 228:
- case 232:
+ case 229:
+ case 233:
return visitNode(cbNode, node.propertyName) ||
visitNode(cbNode, node.name);
- case 229:
+ case 230:
return visitNodes(cbNodes, node.decorators) ||
visitNodes(cbNodes, node.modifiers) ||
visitNode(cbNode, node.expression);
- case 185:
+ case 186:
return visitNode(cbNode, node.head) || visitNodes(cbNodes, node.templateSpans);
- case 192:
+ case 193:
return visitNode(cbNode, node.expression) || visitNode(cbNode, node.literal);
- case 136:
+ case 137:
return visitNode(cbNode, node.expression);
- case 245:
+ case 246:
return visitNodes(cbNodes, node.types);
- case 190:
+ case 191:
return visitNode(cbNode, node.expression) ||
visitNodes(cbNodes, node.typeArguments);
- case 234:
- return visitNode(cbNode, node.expression);
- case 233:
- return visitNodes(cbNodes, node.decorators);
case 235:
+ return visitNode(cbNode, node.expression);
+ case 234:
+ return visitNodes(cbNodes, node.decorators);
+ case 236:
return visitNode(cbNode, node.openingElement) ||
visitNodes(cbNodes, node.children) ||
visitNode(cbNode, node.closingElement);
- case 236:
case 237:
+ case 238:
return visitNode(cbNode, node.tagName) ||
visitNodes(cbNodes, node.attributes);
- case 240:
+ case 241:
return visitNode(cbNode, node.name) ||
visitNode(cbNode, node.initializer);
- case 241:
- return visitNode(cbNode, node.expression);
case 242:
return visitNode(cbNode, node.expression);
- case 239:
+ case 243:
+ return visitNode(cbNode, node.expression);
+ case 240:
return visitNode(cbNode, node.tagName);
- case 251:
+ case 252:
return visitNode(cbNode, node.type);
- case 255:
- return visitNodes(cbNodes, node.types);
case 256:
return visitNodes(cbNodes, node.types);
- case 254:
+ case 257:
+ return visitNodes(cbNodes, node.types);
+ case 255:
return visitNode(cbNode, node.elementType);
+ case 259:
+ return visitNode(cbNode, node.type);
case 258:
return visitNode(cbNode, node.type);
- case 257:
- return visitNode(cbNode, node.type);
- case 259:
+ case 260:
return visitNodes(cbNodes, node.members);
- case 261:
+ case 262:
return visitNode(cbNode, node.name) ||
visitNodes(cbNodes, node.typeArguments);
- case 262:
- return visitNode(cbNode, node.type);
case 263:
+ return visitNode(cbNode, node.type);
+ case 264:
return visitNodes(cbNodes, node.parameters) ||
visitNode(cbNode, node.type);
- case 264:
- return visitNode(cbNode, node.type);
case 265:
return visitNode(cbNode, node.type);
case 266:
return visitNode(cbNode, node.type);
- case 260:
+ case 267:
+ return visitNode(cbNode, node.type);
+ case 261:
return visitNode(cbNode, node.name) ||
visitNode(cbNode, node.type);
- case 267:
+ case 268:
return visitNodes(cbNodes, node.tags);
- case 269:
+ case 270:
return visitNode(cbNode, node.preParameterName) ||
visitNode(cbNode, node.typeExpression) ||
visitNode(cbNode, node.postParameterName);
- case 270:
- return visitNode(cbNode, node.typeExpression);
case 271:
return visitNode(cbNode, node.typeExpression);
case 272:
+ return visitNode(cbNode, node.typeExpression);
+ case 273:
return visitNodes(cbNodes, node.typeParameters);
}
}
@@ -5895,9 +5998,9 @@ var ts;
return;
function visit(node) {
switch (node.kind) {
- case 195:
- case 215:
- case 138:
+ case 196:
+ case 216:
+ case 139:
addJSDocComment(node);
}
forEachChild(node, visit);
@@ -5931,7 +6034,7 @@ var ts;
}
Parser.fixupParentReferences = fixupParentReferences;
function createSourceFile(fileName, languageVersion) {
- var sourceFile = new SourceFileConstructor(250, 0, sourceText.length);
+ var sourceFile = new SourceFileConstructor(251, 0, sourceText.length);
nodeCount++;
sourceFile.text = sourceText;
sourceFile.bindDiagnostics = [];
@@ -6222,7 +6325,7 @@ var ts;
return token === 9 || token === 8 || ts.tokenIsIdentifierOrKeyword(token);
}
function parseComputedPropertyName() {
- var node = createNode(136);
+ var node = createNode(137);
parseExpected(19);
node.expression = allowInAnd(parseExpression);
parseExpected(20);
@@ -6521,14 +6624,14 @@ var ts;
function isReusableClassMember(node) {
if (node) {
switch (node.kind) {
- case 144:
- case 149:
case 145:
+ case 150:
case 146:
- case 141:
- case 193:
+ case 147:
+ case 142:
+ case 194:
return true;
- case 143:
+ case 144:
var methodDeclaration = node;
var nameIsConstructor = methodDeclaration.name.kind === 69 &&
methodDeclaration.name.originalKeywordKind === 121;
@@ -6540,8 +6643,8 @@ var ts;
function isReusableSwitchClause(node) {
if (node) {
switch (node.kind) {
- case 243:
case 244:
+ case 245:
return true;
}
}
@@ -6550,65 +6653,65 @@ var ts;
function isReusableStatement(node) {
if (node) {
switch (node.kind) {
- case 215:
+ case 216:
+ case 196:
case 195:
- case 194:
+ case 199:
case 198:
- case 197:
- case 210:
+ case 211:
+ case 207:
+ case 209:
case 206:
- case 208:
case 205:
+ case 203:
case 204:
case 202:
- case 203:
case 201:
- case 200:
- case 207:
- case 196:
- case 211:
- case 209:
- case 199:
+ case 208:
+ case 197:
case 212:
+ case 210:
+ case 200:
+ case 213:
+ case 225:
case 224:
- case 223:
+ case 231:
case 230:
- case 229:
- case 220:
- case 216:
+ case 221:
case 217:
- case 219:
case 218:
+ case 220:
+ case 219:
return true;
}
}
return false;
}
function isReusableEnumMember(node) {
- return node.kind === 249;
+ return node.kind === 250;
}
function isReusableTypeMember(node) {
if (node) {
switch (node.kind) {
- case 148:
- case 142:
case 149:
- case 140:
- case 147:
+ case 143:
+ case 150:
+ case 141:
+ case 148:
return true;
}
}
return false;
}
function isReusableVariableDeclaration(node) {
- if (node.kind !== 213) {
+ if (node.kind !== 214) {
return false;
}
var variableDeclarator = node;
return variableDeclarator.initializer === undefined;
}
function isReusableParameter(node) {
- if (node.kind !== 138) {
+ if (node.kind !== 139) {
return false;
}
var parameter = node;
@@ -6708,7 +6811,7 @@ var ts;
function parseEntityName(allowReservedWords, diagnosticMessage) {
var entity = parseIdentifier(diagnosticMessage);
while (parseOptional(21)) {
- var node = createNode(135, entity.pos);
+ var node = createNode(136, entity.pos);
node.left = entity;
node.right = parseRightSideOfDot(allowReservedWords);
entity = finishNode(node);
@@ -6725,7 +6828,7 @@ var ts;
return allowIdentifierNames ? parseIdentifierName() : parseIdentifier();
}
function parseTemplateExpression() {
- var template = createNode(185);
+ var template = createNode(186);
template.head = parseTemplateLiteralFragment();
ts.Debug.assert(template.head.kind === 12, "Template head has wrong token kind");
var templateSpans = [];
@@ -6738,7 +6841,7 @@ var ts;
return finishNode(template);
}
function parseTemplateSpan() {
- var span = createNode(192);
+ var span = createNode(193);
span.expression = allowInAnd(parseExpression);
var literal;
if (token === 16) {
@@ -6752,7 +6855,7 @@ var ts;
return finishNode(span);
}
function parseStringLiteralTypeNode() {
- return parseLiteralLikeNode(162, true);
+ return parseLiteralLikeNode(163, true);
}
function parseLiteralNode(internName) {
return parseLiteralLikeNode(token, internName);
@@ -6780,12 +6883,9 @@ var ts;
}
return node;
}
- function parseTypeReferenceOrTypePredicate() {
+ function parseTypeReference() {
var typeName = parseEntityName(false, ts.Diagnostics.Type_expected);
- if (typeName.kind === 69 && token === 124 && !scanner.hasPrecedingLineBreak()) {
- return parseTypePredicate(typeName);
- }
- var node = createNode(151, typeName.pos);
+ var node = createNode(152, typeName.pos);
node.typeName = typeName;
if (!scanner.hasPrecedingLineBreak() && token === 25) {
node.typeArguments = parseBracketedList(18, parseType, 25, 27);
@@ -6794,24 +6894,24 @@ var ts;
}
function parseTypePredicate(lhs) {
nextToken();
- var node = createNode(150, lhs.pos);
+ var node = createNode(151, lhs.pos);
node.parameterName = lhs;
node.type = parseType();
return finishNode(node);
}
function parseThisTypeNode() {
- var node = createNode(161);
+ var node = createNode(162);
nextToken();
return finishNode(node);
}
function parseTypeQuery() {
- var node = createNode(154);
+ var node = createNode(155);
parseExpected(101);
node.exprName = parseEntityName(true);
return finishNode(node);
}
function parseTypeParameter() {
- var node = createNode(137);
+ var node = createNode(138);
node.name = parseIdentifier();
if (parseOptional(83)) {
if (isStartOfType() || !isStartOfExpression()) {
@@ -6844,7 +6944,7 @@ var ts;
}
}
function parseParameter() {
- var node = createNode(138);
+ var node = createNode(139);
node.decorators = parseDecorators();
setModifiers(node, parseModifiers());
node.dotDotDotToken = parseOptionalToken(22);
@@ -6869,10 +6969,10 @@ var ts;
signature.parameters = parseParameterList(yieldContext, awaitContext, requireCompleteParameterList);
if (returnTokenRequired) {
parseExpected(returnToken);
- signature.type = parseType();
+ signature.type = parseTypeOrTypePredicate();
}
else if (parseOptional(returnToken)) {
- signature.type = parseType();
+ signature.type = parseTypeOrTypePredicate();
}
}
function parseParameterList(yieldContext, awaitContext, requireCompleteParameterList) {
@@ -6899,7 +6999,7 @@ var ts;
}
function parseSignatureMember(kind) {
var node = createNode(kind);
- if (kind === 148) {
+ if (kind === 149) {
parseExpected(92);
}
fillSignature(54, false, false, false, node);
@@ -6939,7 +7039,7 @@ var ts;
return token === 54 || token === 24 || token === 20;
}
function parseIndexSignatureDeclaration(fullStart, decorators, modifiers) {
- var node = createNode(149, fullStart);
+ var node = createNode(150, fullStart);
node.decorators = decorators;
setModifiers(node, modifiers);
node.parameters = parseBracketedList(16, parseParameter, 19, 20);
@@ -6952,7 +7052,7 @@ var ts;
var name = parsePropertyName();
var questionToken = parseOptionalToken(53);
if (token === 17 || token === 25) {
- var method = createNode(142, fullStart);
+ var method = createNode(143, fullStart);
method.name = name;
method.questionToken = questionToken;
fillSignature(54, false, false, false, method);
@@ -6960,7 +7060,7 @@ var ts;
return finishNode(method);
}
else {
- var property = createNode(140, fullStart);
+ var property = createNode(141, fullStart);
property.name = name;
property.questionToken = questionToken;
property.type = parseTypeAnnotation();
@@ -7005,14 +7105,14 @@ var ts;
switch (token) {
case 17:
case 25:
- return parseSignatureMember(147);
+ return parseSignatureMember(148);
case 19:
return isIndexSignature()
? parseIndexSignatureDeclaration(scanner.getStartPos(), undefined, undefined)
: parsePropertyOrMethodSignature();
case 92:
if (lookAhead(isStartOfConstructSignature)) {
- return parseSignatureMember(148);
+ return parseSignatureMember(149);
}
case 9:
case 8:
@@ -7042,7 +7142,7 @@ var ts;
return token === 17 || token === 25;
}
function parseTypeLiteral() {
- var node = createNode(155);
+ var node = createNode(156);
node.members = parseObjectTypeMembers();
return finishNode(node);
}
@@ -7058,12 +7158,12 @@ var ts;
return members;
}
function parseTupleType() {
- var node = createNode(157);
+ var node = createNode(158);
node.elementTypes = parseBracketedList(19, parseType, 19, 20);
return finishNode(node);
}
function parseParenthesizedType() {
- var node = createNode(160);
+ var node = createNode(161);
parseExpected(17);
node.type = parseType();
parseExpected(18);
@@ -7071,7 +7171,7 @@ var ts;
}
function parseFunctionOrConstructorType(kind) {
var node = createNode(kind);
- if (kind === 153) {
+ if (kind === 154) {
parseExpected(92);
}
fillSignature(34, false, false, false, node);
@@ -7089,7 +7189,7 @@ var ts;
case 120:
case 131:
var node = tryParse(parseKeywordAndNoDot);
- return node || parseTypeReferenceOrTypePredicate();
+ return node || parseTypeReference();
case 9:
return parseStringLiteralTypeNode();
case 103:
@@ -7112,7 +7212,7 @@ var ts;
case 17:
return parseParenthesizedType();
default:
- return parseTypeReferenceOrTypePredicate();
+ return parseTypeReference();
}
}
function isStartOfType() {
@@ -7145,7 +7245,7 @@ var ts;
var type = parseNonArrayType();
while (!scanner.hasPrecedingLineBreak() && parseOptional(19)) {
parseExpected(20);
- var node = createNode(156, type.pos);
+ var node = createNode(157, type.pos);
node.elementType = type;
type = finishNode(node);
}
@@ -7167,10 +7267,10 @@ var ts;
return type;
}
function parseIntersectionTypeOrHigher() {
- return parseUnionOrIntersectionType(159, parseArrayTypeOrHigher, 46);
+ return parseUnionOrIntersectionType(160, parseArrayTypeOrHigher, 46);
}
function parseUnionTypeOrHigher() {
- return parseUnionOrIntersectionType(158, parseIntersectionTypeOrHigher, 47);
+ return parseUnionOrIntersectionType(159, parseIntersectionTypeOrHigher, 47);
}
function isStartOfFunctionType() {
if (token === 25) {
@@ -7199,15 +7299,35 @@ var ts;
}
return false;
}
+ function parseTypeOrTypePredicate() {
+ var typePredicateVariable = isIdentifier() && tryParse(parseTypePredicatePrefix);
+ var type = parseType();
+ if (typePredicateVariable) {
+ var node = createNode(151, typePredicateVariable.pos);
+ node.parameterName = typePredicateVariable;
+ node.type = type;
+ return finishNode(node);
+ }
+ else {
+ return type;
+ }
+ }
+ function parseTypePredicatePrefix() {
+ var id = parseIdentifier();
+ if (token === 124 && !scanner.hasPrecedingLineBreak()) {
+ nextToken();
+ return id;
+ }
+ }
function parseType() {
return doOutsideOfContext(10, parseTypeWorker);
}
function parseTypeWorker() {
if (isStartOfFunctionType()) {
- return parseFunctionOrConstructorType(152);
+ return parseFunctionOrConstructorType(153);
}
if (token === 92) {
- return parseFunctionOrConstructorType(153);
+ return parseFunctionOrConstructorType(154);
}
return parseUnionTypeOrHigher();
}
@@ -7326,7 +7446,7 @@ var ts;
return !scanner.hasPrecedingLineBreak() && isIdentifier();
}
function parseYieldExpression() {
- var node = createNode(186);
+ var node = createNode(187);
nextToken();
if (!scanner.hasPrecedingLineBreak() &&
(token === 37 || isStartOfExpression())) {
@@ -7340,8 +7460,8 @@ var ts;
}
function parseSimpleArrowFunctionExpression(identifier) {
ts.Debug.assert(token === 34, "parseSimpleArrowFunctionExpression should only have been called if we had a =>");
- var node = createNode(176, identifier.pos);
- var parameter = createNode(138, identifier.pos);
+ var node = createNode(177, identifier.pos);
+ var parameter = createNode(139, identifier.pos);
parameter.name = identifier;
finishNode(parameter);
node.parameters = [parameter];
@@ -7452,7 +7572,7 @@ var ts;
return parseParenthesizedArrowFunctionExpressionHead(false);
}
function parseParenthesizedArrowFunctionExpressionHead(allowAmbiguity) {
- var node = createNode(176);
+ var node = createNode(177);
setModifiers(node, parseModifiersForArrowFunction());
var isAsync = !!(node.flags & 256);
fillSignature(54, false, isAsync, !allowAmbiguity, node);
@@ -7484,7 +7604,7 @@ var ts;
if (!questionToken) {
return leftOperand;
}
- var node = createNode(184, leftOperand.pos);
+ var node = createNode(185, leftOperand.pos);
node.condition = leftOperand;
node.questionToken = questionToken;
node.whenTrue = doOutsideOfContext(disallowInAndDecoratorContext, parseAssignmentExpressionOrHigher);
@@ -7497,7 +7617,7 @@ var ts;
return parseBinaryExpressionRest(precedence, leftOperand);
}
function isInOrOfKeyword(t) {
- return t === 90 || t === 134;
+ return t === 90 || t === 135;
}
function parseBinaryExpressionRest(precedence, leftOperand) {
while (true) {
@@ -7575,43 +7695,43 @@ var ts;
return -1;
}
function makeBinaryExpression(left, operatorToken, right) {
- var node = createNode(183, left.pos);
+ var node = createNode(184, left.pos);
node.left = left;
node.operatorToken = operatorToken;
node.right = right;
return finishNode(node);
}
function makeAsExpression(left, right) {
- var node = createNode(191, left.pos);
+ var node = createNode(192, left.pos);
node.expression = left;
node.type = right;
return finishNode(node);
}
function parsePrefixUnaryExpression() {
- var node = createNode(181);
+ var node = createNode(182);
node.operator = token;
nextToken();
node.operand = parseSimpleUnaryExpression();
return finishNode(node);
}
function parseDeleteExpression() {
- var node = createNode(177);
- nextToken();
- node.expression = parseSimpleUnaryExpression();
- return finishNode(node);
- }
- function parseTypeOfExpression() {
var node = createNode(178);
nextToken();
node.expression = parseSimpleUnaryExpression();
return finishNode(node);
}
- function parseVoidExpression() {
+ function parseTypeOfExpression() {
var node = createNode(179);
nextToken();
node.expression = parseSimpleUnaryExpression();
return finishNode(node);
}
+ function parseVoidExpression() {
+ var node = createNode(180);
+ nextToken();
+ node.expression = parseSimpleUnaryExpression();
+ return finishNode(node);
+ }
function isAwaitExpression() {
if (token === 119) {
if (inAwaitContext()) {
@@ -7622,7 +7742,7 @@ var ts;
return false;
}
function parseAwaitExpression() {
- var node = createNode(180);
+ var node = createNode(181);
nextToken();
node.expression = parseSimpleUnaryExpression();
return finishNode(node);
@@ -7641,7 +7761,7 @@ var ts;
var simpleUnaryExpression = parseSimpleUnaryExpression();
if (token === 38) {
var start = ts.skipTrivia(sourceText, simpleUnaryExpression.pos);
- if (simpleUnaryExpression.kind === 173) {
+ if (simpleUnaryExpression.kind === 174) {
parseErrorAtPosition(start, simpleUnaryExpression.end - start, ts.Diagnostics.A_type_assertion_expression_is_not_allowed_in_the_left_hand_side_of_an_exponentiation_expression_Consider_enclosing_the_expression_in_parentheses);
}
else {
@@ -7689,7 +7809,7 @@ var ts;
}
function parseIncrementExpression() {
if (token === 41 || token === 42) {
- var node = createNode(181);
+ var node = createNode(182);
node.operator = token;
nextToken();
node.operand = parseLeftHandSideExpressionOrHigher();
@@ -7701,7 +7821,7 @@ var ts;
var expression = parseLeftHandSideExpressionOrHigher();
ts.Debug.assert(ts.isLeftHandSideExpression(expression));
if ((token === 41 || token === 42) && !scanner.hasPrecedingLineBreak()) {
- var node = createNode(182, expression.pos);
+ var node = createNode(183, expression.pos);
node.operand = expression;
node.operator = token;
nextToken();
@@ -7724,7 +7844,7 @@ var ts;
if (token === 17 || token === 21 || token === 19) {
return expression;
}
- var node = createNode(168, expression.pos);
+ var node = createNode(169, expression.pos);
node.expression = expression;
node.dotToken = parseExpectedToken(21, false, ts.Diagnostics.super_must_be_followed_by_an_argument_list_or_member_access);
node.name = parseRightSideOfDot(true);
@@ -7743,8 +7863,8 @@ var ts;
function parseJsxElementOrSelfClosingElement(inExpressionContext) {
var opening = parseJsxOpeningOrSelfClosingElement(inExpressionContext);
var result;
- if (opening.kind === 237) {
- var node = createNode(235, opening.pos);
+ if (opening.kind === 238) {
+ var node = createNode(236, opening.pos);
node.openingElement = opening;
node.children = parseJsxChildren(node.openingElement.tagName);
node.closingElement = parseJsxClosingElement(inExpressionContext);
@@ -7754,14 +7874,14 @@ var ts;
result = finishNode(node);
}
else {
- ts.Debug.assert(opening.kind === 236);
+ ts.Debug.assert(opening.kind === 237);
result = opening;
}
if (inExpressionContext && token === 25) {
var invalidElement = tryParse(function () { return parseJsxElementOrSelfClosingElement(true); });
if (invalidElement) {
parseErrorAtCurrentToken(ts.Diagnostics.JSX_expressions_must_have_one_parent_element);
- var badNode = createNode(183, result.pos);
+ var badNode = createNode(184, result.pos);
badNode.end = invalidElement.end;
badNode.left = result;
badNode.right = invalidElement;
@@ -7773,13 +7893,13 @@ var ts;
return result;
}
function parseJsxText() {
- var node = createNode(238, scanner.getStartPos());
+ var node = createNode(239, scanner.getStartPos());
token = scanner.scanJsxToken();
return finishNode(node);
}
function parseJsxChild() {
switch (token) {
- case 238:
+ case 239:
return parseJsxText();
case 15:
return parseJsxExpression(false);
@@ -7815,7 +7935,7 @@ var ts;
var attributes = parseList(13, parseJsxAttribute);
var node;
if (token === 27) {
- node = createNode(237, fullStart);
+ node = createNode(238, fullStart);
scanJsxText();
}
else {
@@ -7827,7 +7947,7 @@ var ts;
parseExpected(27, undefined, false);
scanJsxText();
}
- node = createNode(236, fullStart);
+ node = createNode(237, fullStart);
}
node.tagName = tagName;
node.attributes = attributes;
@@ -7838,7 +7958,7 @@ var ts;
var elementName = parseIdentifierName();
while (parseOptional(21)) {
scanJsxIdentifier();
- var node = createNode(135, elementName.pos);
+ var node = createNode(136, elementName.pos);
node.left = elementName;
node.right = parseIdentifierName();
elementName = finishNode(node);
@@ -7846,7 +7966,7 @@ var ts;
return elementName;
}
function parseJsxExpression(inExpressionContext) {
- var node = createNode(242);
+ var node = createNode(243);
parseExpected(15);
if (token !== 16) {
node.expression = parseAssignmentExpressionOrHigher();
@@ -7865,7 +7985,7 @@ var ts;
return parseJsxSpreadAttribute();
}
scanJsxIdentifier();
- var node = createNode(240);
+ var node = createNode(241);
node.name = parseIdentifierName();
if (parseOptional(56)) {
switch (token) {
@@ -7880,7 +8000,7 @@ var ts;
return finishNode(node);
}
function parseJsxSpreadAttribute() {
- var node = createNode(241);
+ var node = createNode(242);
parseExpected(15);
parseExpected(22);
node.expression = parseExpression();
@@ -7888,7 +8008,7 @@ var ts;
return finishNode(node);
}
function parseJsxClosingElement(inExpressionContext) {
- var node = createNode(239);
+ var node = createNode(240);
parseExpected(26);
node.tagName = parseJsxElementName();
if (inExpressionContext) {
@@ -7901,7 +8021,7 @@ var ts;
return finishNode(node);
}
function parseTypeAssertion() {
- var node = createNode(173);
+ var node = createNode(174);
parseExpected(25);
node.type = parseType();
parseExpected(27);
@@ -7912,7 +8032,7 @@ var ts;
while (true) {
var dotToken = parseOptionalToken(21);
if (dotToken) {
- var propertyAccess = createNode(168, expression.pos);
+ var propertyAccess = createNode(169, expression.pos);
propertyAccess.expression = expression;
propertyAccess.dotToken = dotToken;
propertyAccess.name = parseRightSideOfDot(true);
@@ -7920,7 +8040,7 @@ var ts;
continue;
}
if (!inDecoratorContext() && parseOptional(19)) {
- var indexedAccess = createNode(169, expression.pos);
+ var indexedAccess = createNode(170, expression.pos);
indexedAccess.expression = expression;
if (token !== 20) {
indexedAccess.argumentExpression = allowInAnd(parseExpression);
@@ -7934,7 +8054,7 @@ var ts;
continue;
}
if (token === 11 || token === 12) {
- var tagExpression = createNode(172, expression.pos);
+ var tagExpression = createNode(173, expression.pos);
tagExpression.tag = expression;
tagExpression.template = token === 11
? parseLiteralNode()
@@ -7953,7 +8073,7 @@ var ts;
if (!typeArguments) {
return expression;
}
- var callExpr = createNode(170, expression.pos);
+ var callExpr = createNode(171, expression.pos);
callExpr.expression = expression;
callExpr.typeArguments = typeArguments;
callExpr.arguments = parseArgumentList();
@@ -7961,7 +8081,7 @@ var ts;
continue;
}
else if (token === 17) {
- var callExpr = createNode(170, expression.pos);
+ var callExpr = createNode(171, expression.pos);
callExpr.expression = expression;
callExpr.arguments = parseArgumentList();
expression = finishNode(callExpr);
@@ -8056,28 +8176,28 @@ var ts;
return parseIdentifier(ts.Diagnostics.Expression_expected);
}
function parseParenthesizedExpression() {
- var node = createNode(174);
+ var node = createNode(175);
parseExpected(17);
node.expression = allowInAnd(parseExpression);
parseExpected(18);
return finishNode(node);
}
function parseSpreadElement() {
- var node = createNode(187);
+ var node = createNode(188);
parseExpected(22);
node.expression = parseAssignmentExpressionOrHigher();
return finishNode(node);
}
function parseArgumentOrArrayLiteralElement() {
return token === 22 ? parseSpreadElement() :
- token === 24 ? createNode(189) :
+ token === 24 ? createNode(190) :
parseAssignmentExpressionOrHigher();
}
function parseArgumentExpression() {
return doOutsideOfContext(disallowInAndDecoratorContext, parseArgumentOrArrayLiteralElement);
}
function parseArrayLiteralExpression() {
- var node = createNode(166);
+ var node = createNode(167);
parseExpected(19);
if (scanner.hasPrecedingLineBreak())
node.flags |= 1024;
@@ -8087,10 +8207,10 @@ var ts;
}
function tryParseAccessorDeclaration(fullStart, decorators, modifiers) {
if (parseContextualModifier(123)) {
- return parseAccessorDeclaration(145, fullStart, decorators, modifiers);
+ return parseAccessorDeclaration(146, fullStart, decorators, modifiers);
}
else if (parseContextualModifier(129)) {
- return parseAccessorDeclaration(146, fullStart, decorators, modifiers);
+ return parseAccessorDeclaration(147, fullStart, decorators, modifiers);
}
return undefined;
}
@@ -8111,7 +8231,7 @@ var ts;
}
var isShorthandPropertyAssignment = tokenIsIdentifier && (token === 24 || token === 16 || token === 56);
if (isShorthandPropertyAssignment) {
- var shorthandDeclaration = createNode(248, fullStart);
+ var shorthandDeclaration = createNode(249, fullStart);
shorthandDeclaration.name = propertyName;
shorthandDeclaration.questionToken = questionToken;
var equalsToken = parseOptionalToken(56);
@@ -8122,7 +8242,7 @@ var ts;
return finishNode(shorthandDeclaration);
}
else {
- var propertyAssignment = createNode(247, fullStart);
+ var propertyAssignment = createNode(248, fullStart);
propertyAssignment.modifiers = modifiers;
propertyAssignment.name = propertyName;
propertyAssignment.questionToken = questionToken;
@@ -8132,7 +8252,7 @@ var ts;
}
}
function parseObjectLiteralExpression() {
- var node = createNode(167);
+ var node = createNode(168);
parseExpected(15);
if (scanner.hasPrecedingLineBreak()) {
node.flags |= 1024;
@@ -8146,7 +8266,7 @@ var ts;
if (saveDecoratorContext) {
setDecoratorContext(false);
}
- var node = createNode(175);
+ var node = createNode(176);
setModifiers(node, parseModifiers());
parseExpected(87);
node.asteriskToken = parseOptionalToken(37);
@@ -8168,7 +8288,7 @@ var ts;
return isIdentifier() ? parseIdentifier() : undefined;
}
function parseNewExpression() {
- var node = createNode(171);
+ var node = createNode(172);
parseExpected(92);
node.expression = parseMemberExpressionOrHigher();
node.typeArguments = tryParse(parseTypeArgumentsInExpression);
@@ -8178,7 +8298,7 @@ var ts;
return finishNode(node);
}
function parseBlock(ignoreMissingOpenBrace, diagnosticMessage) {
- var node = createNode(194);
+ var node = createNode(195);
if (parseExpected(15, diagnosticMessage) || ignoreMissingOpenBrace) {
node.statements = parseList(1, parseStatement);
parseExpected(16);
@@ -8206,12 +8326,12 @@ var ts;
return block;
}
function parseEmptyStatement() {
- var node = createNode(196);
+ var node = createNode(197);
parseExpected(23);
return finishNode(node);
}
function parseIfStatement() {
- var node = createNode(198);
+ var node = createNode(199);
parseExpected(88);
parseExpected(17);
node.expression = allowInAnd(parseExpression);
@@ -8221,7 +8341,7 @@ var ts;
return finishNode(node);
}
function parseDoStatement() {
- var node = createNode(199);
+ var node = createNode(200);
parseExpected(79);
node.statement = parseStatement();
parseExpected(104);
@@ -8232,7 +8352,7 @@ var ts;
return finishNode(node);
}
function parseWhileStatement() {
- var node = createNode(200);
+ var node = createNode(201);
parseExpected(104);
parseExpected(17);
node.expression = allowInAnd(parseExpression);
@@ -8255,21 +8375,21 @@ var ts;
}
var forOrForInOrForOfStatement;
if (parseOptional(90)) {
- var forInStatement = createNode(202, pos);
+ var forInStatement = createNode(203, pos);
forInStatement.initializer = initializer;
forInStatement.expression = allowInAnd(parseExpression);
parseExpected(18);
forOrForInOrForOfStatement = forInStatement;
}
- else if (parseOptional(134)) {
- var forOfStatement = createNode(203, pos);
+ else if (parseOptional(135)) {
+ var forOfStatement = createNode(204, pos);
forOfStatement.initializer = initializer;
forOfStatement.expression = allowInAnd(parseAssignmentExpressionOrHigher);
parseExpected(18);
forOrForInOrForOfStatement = forOfStatement;
}
else {
- var forStatement = createNode(201, pos);
+ var forStatement = createNode(202, pos);
forStatement.initializer = initializer;
parseExpected(23);
if (token !== 23 && token !== 18) {
@@ -8287,7 +8407,7 @@ var ts;
}
function parseBreakOrContinueStatement(kind) {
var node = createNode(kind);
- parseExpected(kind === 205 ? 70 : 75);
+ parseExpected(kind === 206 ? 70 : 75);
if (!canParseSemicolon()) {
node.label = parseIdentifier();
}
@@ -8295,7 +8415,7 @@ var ts;
return finishNode(node);
}
function parseReturnStatement() {
- var node = createNode(206);
+ var node = createNode(207);
parseExpected(94);
if (!canParseSemicolon()) {
node.expression = allowInAnd(parseExpression);
@@ -8304,7 +8424,7 @@ var ts;
return finishNode(node);
}
function parseWithStatement() {
- var node = createNode(207);
+ var node = createNode(208);
parseExpected(105);
parseExpected(17);
node.expression = allowInAnd(parseExpression);
@@ -8313,7 +8433,7 @@ var ts;
return finishNode(node);
}
function parseCaseClause() {
- var node = createNode(243);
+ var node = createNode(244);
parseExpected(71);
node.expression = allowInAnd(parseExpression);
parseExpected(54);
@@ -8321,7 +8441,7 @@ var ts;
return finishNode(node);
}
function parseDefaultClause() {
- var node = createNode(244);
+ var node = createNode(245);
parseExpected(77);
parseExpected(54);
node.statements = parseList(3, parseStatement);
@@ -8331,12 +8451,12 @@ var ts;
return token === 71 ? parseCaseClause() : parseDefaultClause();
}
function parseSwitchStatement() {
- var node = createNode(208);
+ var node = createNode(209);
parseExpected(96);
parseExpected(17);
node.expression = allowInAnd(parseExpression);
parseExpected(18);
- var caseBlock = createNode(222, scanner.getStartPos());
+ var caseBlock = createNode(223, scanner.getStartPos());
parseExpected(15);
caseBlock.clauses = parseList(2, parseCaseOrDefaultClause);
parseExpected(16);
@@ -8344,14 +8464,14 @@ var ts;
return finishNode(node);
}
function parseThrowStatement() {
- var node = createNode(210);
+ var node = createNode(211);
parseExpected(98);
node.expression = scanner.hasPrecedingLineBreak() ? undefined : allowInAnd(parseExpression);
parseSemicolon();
return finishNode(node);
}
function parseTryStatement() {
- var node = createNode(211);
+ var node = createNode(212);
parseExpected(100);
node.tryBlock = parseBlock(false);
node.catchClause = token === 72 ? parseCatchClause() : undefined;
@@ -8362,7 +8482,7 @@ var ts;
return finishNode(node);
}
function parseCatchClause() {
- var result = createNode(246);
+ var result = createNode(247);
parseExpected(72);
if (parseExpected(17)) {
result.variableDeclaration = parseVariableDeclaration();
@@ -8372,7 +8492,7 @@ var ts;
return finishNode(result);
}
function parseDebuggerStatement() {
- var node = createNode(212);
+ var node = createNode(213);
parseExpected(76);
parseSemicolon();
return finishNode(node);
@@ -8381,13 +8501,13 @@ var ts;
var fullStart = scanner.getStartPos();
var expression = allowInAnd(parseExpression);
if (expression.kind === 69 && parseOptional(54)) {
- var labeledStatement = createNode(209, fullStart);
+ var labeledStatement = createNode(210, fullStart);
labeledStatement.label = expression;
labeledStatement.statement = parseStatement();
return finishNode(labeledStatement);
}
else {
- var expressionStatement = createNode(197, fullStart);
+ var expressionStatement = createNode(198, fullStart);
expressionStatement.expression = expression;
parseSemicolon();
return finishNode(expressionStatement);
@@ -8432,6 +8552,8 @@ var ts;
return false;
}
continue;
+ case 134:
+ return nextToken() === 15;
case 89:
nextToken();
return token === 9 || token === 37 ||
@@ -8489,6 +8611,7 @@ var ts;
case 125:
case 126:
case 132:
+ case 134:
return true;
case 112:
case 110:
@@ -8532,9 +8655,9 @@ var ts;
case 86:
return parseForOrForInOrForOfStatement();
case 75:
- return parseBreakOrContinueStatement(204);
- case 70:
return parseBreakOrContinueStatement(205);
+ case 70:
+ return parseBreakOrContinueStatement(206);
case 94:
return parseReturnStatement();
case 105:
@@ -8566,6 +8689,7 @@ var ts;
case 112:
case 115:
case 113:
+ case 134:
if (isStartOfDeclaration()) {
return parseDeclaration();
}
@@ -8592,6 +8716,7 @@ var ts;
return parseTypeAliasDeclaration(fullStart, decorators, modifiers);
case 81:
return parseEnumDeclaration(fullStart, decorators, modifiers);
+ case 134:
case 125:
case 126:
return parseModuleDeclaration(fullStart, decorators, modifiers);
@@ -8604,7 +8729,7 @@ var ts;
parseExportDeclaration(fullStart, decorators, modifiers);
default:
if (decorators || modifiers) {
- var node = createMissingNode(233, true, ts.Diagnostics.Declaration_expected);
+ var node = createMissingNode(234, true, ts.Diagnostics.Declaration_expected);
node.pos = fullStart;
node.decorators = decorators;
setModifiers(node, modifiers);
@@ -8625,16 +8750,16 @@ var ts;
}
function parseArrayBindingElement() {
if (token === 24) {
- return createNode(189);
+ return createNode(190);
}
- var node = createNode(165);
+ var node = createNode(166);
node.dotDotDotToken = parseOptionalToken(22);
node.name = parseIdentifierOrPattern();
node.initializer = parseBindingElementInitializer(false);
return finishNode(node);
}
function parseObjectBindingElement() {
- var node = createNode(165);
+ var node = createNode(166);
var tokenIsIdentifier = isIdentifier();
var propertyName = parsePropertyName();
if (tokenIsIdentifier && token !== 54) {
@@ -8649,14 +8774,14 @@ var ts;
return finishNode(node);
}
function parseObjectBindingPattern() {
- var node = createNode(163);
+ var node = createNode(164);
parseExpected(15);
node.elements = parseDelimitedList(9, parseObjectBindingElement);
parseExpected(16);
return finishNode(node);
}
function parseArrayBindingPattern() {
- var node = createNode(164);
+ var node = createNode(165);
parseExpected(19);
node.elements = parseDelimitedList(10, parseArrayBindingElement);
parseExpected(20);
@@ -8675,7 +8800,7 @@ var ts;
return parseIdentifier();
}
function parseVariableDeclaration() {
- var node = createNode(213);
+ var node = createNode(214);
node.name = parseIdentifierOrPattern();
node.type = parseTypeAnnotation();
if (!isInOrOfKeyword(token)) {
@@ -8684,7 +8809,7 @@ var ts;
return finishNode(node);
}
function parseVariableDeclarationList(inForStatementInitializer) {
- var node = createNode(214);
+ var node = createNode(215);
switch (token) {
case 102:
break;
@@ -8698,7 +8823,7 @@ var ts;
ts.Debug.fail();
}
nextToken();
- if (token === 134 && lookAhead(canFollowContextualOfKeyword)) {
+ if (token === 135 && lookAhead(canFollowContextualOfKeyword)) {
node.declarations = createMissingList();
}
else {
@@ -8713,7 +8838,7 @@ var ts;
return nextTokenIsIdentifier() && nextToken() === 18;
}
function parseVariableStatement(fullStart, decorators, modifiers) {
- var node = createNode(195, fullStart);
+ var node = createNode(196, fullStart);
node.decorators = decorators;
setModifiers(node, modifiers);
node.declarationList = parseVariableDeclarationList(false);
@@ -8721,7 +8846,7 @@ var ts;
return finishNode(node);
}
function parseFunctionDeclaration(fullStart, decorators, modifiers) {
- var node = createNode(215, fullStart);
+ var node = createNode(216, fullStart);
node.decorators = decorators;
setModifiers(node, modifiers);
parseExpected(87);
@@ -8734,7 +8859,7 @@ var ts;
return finishNode(node);
}
function parseConstructorDeclaration(pos, decorators, modifiers) {
- var node = createNode(144, pos);
+ var node = createNode(145, pos);
node.decorators = decorators;
setModifiers(node, modifiers);
parseExpected(121);
@@ -8743,7 +8868,7 @@ var ts;
return finishNode(node);
}
function parseMethodDeclaration(fullStart, decorators, modifiers, asteriskToken, name, questionToken, diagnosticMessage) {
- var method = createNode(143, fullStart);
+ var method = createNode(144, fullStart);
method.decorators = decorators;
setModifiers(method, modifiers);
method.asteriskToken = asteriskToken;
@@ -8756,7 +8881,7 @@ var ts;
return finishNode(method);
}
function parsePropertyDeclaration(fullStart, decorators, modifiers, name, questionToken) {
- var property = createNode(141, fullStart);
+ var property = createNode(142, fullStart);
property.decorators = decorators;
setModifiers(property, modifiers);
property.name = name;
@@ -8852,7 +8977,7 @@ var ts;
decorators = [];
decorators.pos = decoratorStart;
}
- var decorator = createNode(139, decoratorStart);
+ var decorator = createNode(140, decoratorStart);
decorator.expression = doInDecoratorContext(parseLeftHandSideExpressionOrHigher);
decorators.push(finishNode(decorator));
}
@@ -8908,7 +9033,7 @@ var ts;
}
function parseClassElement() {
if (token === 23) {
- var result = createNode(193);
+ var result = createNode(194);
nextToken();
return finishNode(result);
}
@@ -8939,10 +9064,10 @@ var ts;
ts.Debug.fail("Should not have attempted to parse class member declaration.");
}
function parseClassExpression() {
- return parseClassDeclarationOrExpression(scanner.getStartPos(), undefined, undefined, 188);
+ return parseClassDeclarationOrExpression(scanner.getStartPos(), undefined, undefined, 189);
}
function parseClassDeclaration(fullStart, decorators, modifiers) {
- return parseClassDeclarationOrExpression(fullStart, decorators, modifiers, 216);
+ return parseClassDeclarationOrExpression(fullStart, decorators, modifiers, 217);
}
function parseClassDeclarationOrExpression(fullStart, decorators, modifiers, kind) {
var node = createNode(kind, fullStart);
@@ -8977,7 +9102,7 @@ var ts;
}
function parseHeritageClause() {
if (token === 83 || token === 106) {
- var node = createNode(245);
+ var node = createNode(246);
node.token = token;
nextToken();
node.types = parseDelimitedList(7, parseExpressionWithTypeArguments);
@@ -8986,7 +9111,7 @@ var ts;
return undefined;
}
function parseExpressionWithTypeArguments() {
- var node = createNode(190);
+ var node = createNode(191);
node.expression = parseLeftHandSideExpressionOrHigher();
if (token === 25) {
node.typeArguments = parseBracketedList(18, parseType, 25, 27);
@@ -9000,7 +9125,7 @@ var ts;
return parseList(5, parseClassElement);
}
function parseInterfaceDeclaration(fullStart, decorators, modifiers) {
- var node = createNode(217, fullStart);
+ var node = createNode(218, fullStart);
node.decorators = decorators;
setModifiers(node, modifiers);
parseExpected(107);
@@ -9011,7 +9136,7 @@ var ts;
return finishNode(node);
}
function parseTypeAliasDeclaration(fullStart, decorators, modifiers) {
- var node = createNode(218, fullStart);
+ var node = createNode(219, fullStart);
node.decorators = decorators;
setModifiers(node, modifiers);
parseExpected(132);
@@ -9023,13 +9148,13 @@ var ts;
return finishNode(node);
}
function parseEnumMember() {
- var node = createNode(249, scanner.getStartPos());
+ var node = createNode(250, scanner.getStartPos());
node.name = parsePropertyName();
node.initializer = allowInAnd(parseNonParameterInitializer);
return finishNode(node);
}
function parseEnumDeclaration(fullStart, decorators, modifiers) {
- var node = createNode(219, fullStart);
+ var node = createNode(220, fullStart);
node.decorators = decorators;
setModifiers(node, modifiers);
parseExpected(81);
@@ -9044,7 +9169,7 @@ var ts;
return finishNode(node);
}
function parseModuleBlock() {
- var node = createNode(221, scanner.getStartPos());
+ var node = createNode(222, scanner.getStartPos());
if (parseExpected(15)) {
node.statements = parseList(1, parseStatement);
parseExpected(16);
@@ -9055,7 +9180,7 @@ var ts;
return finishNode(node);
}
function parseModuleOrNamespaceDeclaration(fullStart, decorators, modifiers, flags) {
- var node = createNode(220, fullStart);
+ var node = createNode(221, fullStart);
var namespaceFlag = flags & 65536;
node.decorators = decorators;
setModifiers(node, modifiers);
@@ -9067,16 +9192,25 @@ var ts;
return finishNode(node);
}
function parseAmbientExternalModuleDeclaration(fullStart, decorators, modifiers) {
- var node = createNode(220, fullStart);
+ var node = createNode(221, fullStart);
node.decorators = decorators;
setModifiers(node, modifiers);
- node.name = parseLiteralNode(true);
+ if (token === 134) {
+ node.name = parseIdentifier();
+ node.flags |= 2097152;
+ }
+ else {
+ node.name = parseLiteralNode(true);
+ }
node.body = parseModuleBlock();
return finishNode(node);
}
function parseModuleDeclaration(fullStart, decorators, modifiers) {
var flags = modifiers ? modifiers.flags : 0;
- if (parseOptional(126)) {
+ if (token === 134) {
+ return parseAmbientExternalModuleDeclaration(fullStart, decorators, modifiers);
+ }
+ else if (parseOptional(126)) {
flags |= 65536;
}
else {
@@ -9104,7 +9238,7 @@ var ts;
if (isIdentifier()) {
identifier = parseIdentifier();
if (token !== 24 && token !== 133) {
- var importEqualsDeclaration = createNode(223, fullStart);
+ var importEqualsDeclaration = createNode(224, fullStart);
importEqualsDeclaration.decorators = decorators;
setModifiers(importEqualsDeclaration, modifiers);
importEqualsDeclaration.name = identifier;
@@ -9114,7 +9248,7 @@ var ts;
return finishNode(importEqualsDeclaration);
}
}
- var importDeclaration = createNode(224, fullStart);
+ var importDeclaration = createNode(225, fullStart);
importDeclaration.decorators = decorators;
setModifiers(importDeclaration, modifiers);
if (identifier ||
@@ -9128,13 +9262,13 @@ var ts;
return finishNode(importDeclaration);
}
function parseImportClause(identifier, fullStart) {
- var importClause = createNode(225, fullStart);
+ var importClause = createNode(226, fullStart);
if (identifier) {
importClause.name = identifier;
}
if (!importClause.name ||
parseOptional(24)) {
- importClause.namedBindings = token === 37 ? parseNamespaceImport() : parseNamedImportsOrExports(227);
+ importClause.namedBindings = token === 37 ? parseNamespaceImport() : parseNamedImportsOrExports(228);
}
return finishNode(importClause);
}
@@ -9144,7 +9278,7 @@ var ts;
: parseEntityName(false);
}
function parseExternalModuleReference() {
- var node = createNode(234);
+ var node = createNode(235);
parseExpected(127);
parseExpected(17);
node.expression = parseModuleSpecifier();
@@ -9162,7 +9296,7 @@ var ts;
}
}
function parseNamespaceImport() {
- var namespaceImport = createNode(226);
+ var namespaceImport = createNode(227);
parseExpected(37);
parseExpected(116);
namespaceImport.name = parseIdentifier();
@@ -9170,14 +9304,14 @@ var ts;
}
function parseNamedImportsOrExports(kind) {
var node = createNode(kind);
- node.elements = parseBracketedList(21, kind === 227 ? parseImportSpecifier : parseExportSpecifier, 15, 16);
+ node.elements = parseBracketedList(21, kind === 228 ? parseImportSpecifier : parseExportSpecifier, 15, 16);
return finishNode(node);
}
function parseExportSpecifier() {
- return parseImportOrExportSpecifier(232);
+ return parseImportOrExportSpecifier(233);
}
function parseImportSpecifier() {
- return parseImportOrExportSpecifier(228);
+ return parseImportOrExportSpecifier(229);
}
function parseImportOrExportSpecifier(kind) {
var node = createNode(kind);
@@ -9196,13 +9330,13 @@ var ts;
else {
node.name = identifierName;
}
- if (kind === 228 && checkIdentifierIsKeyword) {
+ if (kind === 229 && checkIdentifierIsKeyword) {
parseErrorAtPosition(checkIdentifierStart, checkIdentifierEnd - checkIdentifierStart, ts.Diagnostics.Identifier_expected);
}
return finishNode(node);
}
function parseExportDeclaration(fullStart, decorators, modifiers) {
- var node = createNode(230, fullStart);
+ var node = createNode(231, fullStart);
node.decorators = decorators;
setModifiers(node, modifiers);
if (parseOptional(37)) {
@@ -9210,7 +9344,7 @@ var ts;
node.moduleSpecifier = parseModuleSpecifier();
}
else {
- node.exportClause = parseNamedImportsOrExports(231);
+ node.exportClause = parseNamedImportsOrExports(232);
if (token === 133 || (token === 9 && !scanner.hasPrecedingLineBreak())) {
parseExpected(133);
node.moduleSpecifier = parseModuleSpecifier();
@@ -9220,7 +9354,7 @@ var ts;
return finishNode(node);
}
function parseExportAssignment(fullStart, decorators, modifiers) {
- var node = createNode(229, fullStart);
+ var node = createNode(230, fullStart);
node.decorators = decorators;
setModifiers(node, modifiers);
if (parseOptional(56)) {
@@ -9292,10 +9426,10 @@ var ts;
function setExternalModuleIndicator(sourceFile) {
sourceFile.externalModuleIndicator = ts.forEach(sourceFile.statements, function (node) {
return node.flags & 2
- || node.kind === 223 && node.moduleReference.kind === 234
- || node.kind === 224
- || node.kind === 229
+ || node.kind === 224 && node.moduleReference.kind === 235
+ || node.kind === 225
|| node.kind === 230
+ || node.kind === 231
? node
: undefined;
});
@@ -9330,7 +9464,7 @@ var ts;
function parseJSDocTypeExpression(start, length) {
scanner.setText(sourceText, start, length);
token = nextToken();
- var result = createNode(251);
+ var result = createNode(252);
parseExpected(15);
result.type = parseJSDocTopLevelType();
parseExpected(16);
@@ -9341,12 +9475,12 @@ var ts;
function parseJSDocTopLevelType() {
var type = parseJSDocType();
if (token === 47) {
- var unionType = createNode(255, type.pos);
+ var unionType = createNode(256, type.pos);
unionType.types = parseJSDocTypeList(type);
type = finishNode(unionType);
}
if (token === 56) {
- var optionalType = createNode(262, type.pos);
+ var optionalType = createNode(263, type.pos);
nextToken();
optionalType.type = type;
type = finishNode(optionalType);
@@ -9357,20 +9491,20 @@ var ts;
var type = parseBasicTypeExpression();
while (true) {
if (token === 19) {
- var arrayType = createNode(254, type.pos);
+ var arrayType = createNode(255, type.pos);
arrayType.elementType = type;
nextToken();
parseExpected(20);
type = finishNode(arrayType);
}
else if (token === 53) {
- var nullableType = createNode(257, type.pos);
+ var nullableType = createNode(258, type.pos);
nullableType.type = type;
nextToken();
type = finishNode(nullableType);
}
else if (token === 49) {
- var nonNullableType = createNode(258, type.pos);
+ var nonNullableType = createNode(259, type.pos);
nonNullableType.type = type;
nextToken();
type = finishNode(nonNullableType);
@@ -9414,27 +9548,27 @@ var ts;
return parseJSDocTypeReference();
}
function parseJSDocThisType() {
- var result = createNode(266);
+ var result = createNode(267);
nextToken();
parseExpected(54);
result.type = parseJSDocType();
return finishNode(result);
}
function parseJSDocConstructorType() {
- var result = createNode(265);
+ var result = createNode(266);
nextToken();
parseExpected(54);
result.type = parseJSDocType();
return finishNode(result);
}
function parseJSDocVariadicType() {
- var result = createNode(264);
+ var result = createNode(265);
nextToken();
result.type = parseJSDocType();
return finishNode(result);
}
function parseJSDocFunctionType() {
- var result = createNode(263);
+ var result = createNode(264);
nextToken();
parseExpected(17);
result.parameters = parseDelimitedList(22, parseJSDocParameter);
@@ -9447,12 +9581,12 @@ var ts;
return finishNode(result);
}
function parseJSDocParameter() {
- var parameter = createNode(138);
+ var parameter = createNode(139);
parameter.type = parseJSDocType();
return finishNode(parameter);
}
function parseJSDocTypeReference() {
- var result = createNode(261);
+ var result = createNode(262);
result.name = parseSimplePropertyName();
while (parseOptional(21)) {
if (token === 25) {
@@ -9481,13 +9615,13 @@ var ts;
}
}
function parseQualifiedName(left) {
- var result = createNode(135, left.pos);
+ var result = createNode(136, left.pos);
result.left = left;
result.right = parseIdentifierName();
return finishNode(result);
}
function parseJSDocRecordType() {
- var result = createNode(259);
+ var result = createNode(260);
nextToken();
result.members = parseDelimitedList(24, parseJSDocRecordMember);
checkForTrailingComma(result.members);
@@ -9495,7 +9629,7 @@ var ts;
return finishNode(result);
}
function parseJSDocRecordMember() {
- var result = createNode(260);
+ var result = createNode(261);
result.name = parseSimplePropertyName();
if (token === 54) {
nextToken();
@@ -9504,13 +9638,13 @@ var ts;
return finishNode(result);
}
function parseJSDocNonNullableType() {
- var result = createNode(258);
+ var result = createNode(259);
nextToken();
result.type = parseJSDocType();
return finishNode(result);
}
function parseJSDocTupleType() {
- var result = createNode(256);
+ var result = createNode(257);
nextToken();
result.types = parseDelimitedList(25, parseJSDocType);
checkForTrailingComma(result.types);
@@ -9524,7 +9658,7 @@ var ts;
}
}
function parseJSDocUnionType() {
- var result = createNode(255);
+ var result = createNode(256);
nextToken();
result.types = parseJSDocTypeList(parseJSDocType());
parseExpected(18);
@@ -9542,7 +9676,7 @@ var ts;
return types;
}
function parseJSDocAllType() {
- var result = createNode(252);
+ var result = createNode(253);
nextToken();
return finishNode(result);
}
@@ -9555,11 +9689,11 @@ var ts;
token === 27 ||
token === 56 ||
token === 47) {
- var result = createNode(253, pos);
+ var result = createNode(254, pos);
return finishNode(result);
}
else {
- var result = createNode(257, pos);
+ var result = createNode(258, pos);
result.type = parseJSDocType();
return finishNode(result);
}
@@ -9630,7 +9764,7 @@ var ts;
if (!tags) {
return undefined;
}
- var result = createNode(267, start);
+ var result = createNode(268, start);
result.tags = tags;
return finishNode(result, end);
}
@@ -9667,7 +9801,7 @@ var ts;
return undefined;
}
function handleUnknownTag(atToken, tagName) {
- var result = createNode(268, atToken.pos);
+ var result = createNode(269, atToken.pos);
result.atToken = atToken;
result.tagName = tagName;
return finishNode(result, pos);
@@ -9718,7 +9852,7 @@ var ts;
if (!typeExpression) {
typeExpression = tryParseTypeExpression();
}
- var result = createNode(269, atToken.pos);
+ var result = createNode(270, atToken.pos);
result.atToken = atToken;
result.tagName = tagName;
result.preParameterName = preName;
@@ -9728,16 +9862,6 @@ var ts;
return finishNode(result, pos);
}
function handleReturnTag(atToken, tagName) {
- if (ts.forEach(tags, function (t) { return t.kind === 270; })) {
- parseErrorAtPosition(tagName.pos, pos - tagName.pos, ts.Diagnostics._0_tag_already_specified, tagName.text);
- }
- var result = createNode(270, atToken.pos);
- result.atToken = atToken;
- result.tagName = tagName;
- result.typeExpression = tryParseTypeExpression();
- return finishNode(result, pos);
- }
- function handleTypeTag(atToken, tagName) {
if (ts.forEach(tags, function (t) { return t.kind === 271; })) {
parseErrorAtPosition(tagName.pos, pos - tagName.pos, ts.Diagnostics._0_tag_already_specified, tagName.text);
}
@@ -9747,10 +9871,20 @@ var ts;
result.typeExpression = tryParseTypeExpression();
return finishNode(result, pos);
}
- function handleTemplateTag(atToken, tagName) {
+ function handleTypeTag(atToken, tagName) {
if (ts.forEach(tags, function (t) { return t.kind === 272; })) {
parseErrorAtPosition(tagName.pos, pos - tagName.pos, ts.Diagnostics._0_tag_already_specified, tagName.text);
}
+ var result = createNode(272, atToken.pos);
+ result.atToken = atToken;
+ result.tagName = tagName;
+ result.typeExpression = tryParseTypeExpression();
+ return finishNode(result, pos);
+ }
+ function handleTemplateTag(atToken, tagName) {
+ if (ts.forEach(tags, function (t) { return t.kind === 273; })) {
+ parseErrorAtPosition(tagName.pos, pos - tagName.pos, ts.Diagnostics._0_tag_already_specified, tagName.text);
+ }
var typeParameters = [];
typeParameters.pos = pos;
while (true) {
@@ -9761,7 +9895,7 @@ var ts;
parseErrorAtPosition(startPos, 0, ts.Diagnostics.Identifier_expected);
return undefined;
}
- var typeParameter = createNode(137, name_8.pos);
+ var typeParameter = createNode(138, name_8.pos);
typeParameter.name = name_8;
finishNode(typeParameter, pos);
typeParameters.push(typeParameter);
@@ -9772,7 +9906,7 @@ var ts;
pos++;
}
typeParameters.end = pos;
- var result = createNode(272, atToken.pos);
+ var result = createNode(273, atToken.pos);
result.atToken = atToken;
result.tagName = tagName;
result.typeParameters = typeParameters;
@@ -10094,16 +10228,16 @@ var ts;
: 4;
}
function getModuleInstanceState(node) {
- if (node.kind === 217 || node.kind === 218) {
+ if (node.kind === 218 || node.kind === 219) {
return 0;
}
else if (ts.isConstEnumDeclaration(node)) {
return 2;
}
- else if ((node.kind === 224 || node.kind === 223) && !(node.flags & 2)) {
+ else if ((node.kind === 225 || node.kind === 224) && !(node.flags & 2)) {
return 0;
}
- else if (node.kind === 221) {
+ else if (node.kind === 222) {
var state = 0;
ts.forEachChild(node, function (n) {
switch (getModuleInstanceState(n)) {
@@ -10119,7 +10253,7 @@ var ts;
});
return state;
}
- else if (node.kind === 220) {
+ else if (node.kind === 221) {
return getModuleInstanceState(node.body);
}
else {
@@ -10147,6 +10281,10 @@ var ts;
var labelStack;
var labelIndexMap;
var implicitLabels;
+ var hasClassExtends;
+ var hasAsyncFunctions;
+ var hasDecorators;
+ var hasParameterDecorators;
var inStrictMode;
var symbolCount = 0;
var Symbol;
@@ -10173,6 +10311,10 @@ var ts;
labelStack = undefined;
labelIndexMap = undefined;
implicitLabels = undefined;
+ hasClassExtends = false;
+ hasAsyncFunctions = false;
+ hasDecorators = false;
+ hasParameterDecorators = false;
}
return bindSourceFile;
function createSymbol(flags, name) {
@@ -10195,17 +10337,17 @@ var ts;
if (symbolFlags & 107455) {
var valueDeclaration = symbol.valueDeclaration;
if (!valueDeclaration ||
- (valueDeclaration.kind !== node.kind && valueDeclaration.kind === 220)) {
+ (valueDeclaration.kind !== node.kind && valueDeclaration.kind === 221)) {
symbol.valueDeclaration = node;
}
}
}
function getDeclarationName(node) {
if (node.name) {
- if (node.kind === 220 && node.name.kind === 9) {
- return "\"" + node.name.text + "\"";
+ if (ts.isAmbientModule(node)) {
+ return ts.isGlobalScopeAugmentation(node) ? "__global" : "\"" + node.name.text + "\"";
}
- if (node.name.kind === 136) {
+ if (node.name.kind === 137) {
var nameExpression = node.name.expression;
if (ts.isStringOrNumericLiteral(nameExpression.kind)) {
return nameExpression.text;
@@ -10216,21 +10358,21 @@ var ts;
return node.name.text;
}
switch (node.kind) {
- case 144:
+ case 145:
return "__constructor";
- case 152:
- case 147:
- return "__call";
case 153:
case 148:
- return "__new";
+ return "__call";
+ case 154:
case 149:
+ return "__new";
+ case 150:
return "__index";
- case 230:
+ case 231:
return "__export";
- case 229:
+ case 230:
return node.isExportEquals ? "export=" : "default";
- case 183:
+ case 184:
switch (ts.getSpecialPropertyAssignmentKind(node)) {
case 2:
return "export=";
@@ -10242,8 +10384,8 @@ var ts;
}
ts.Debug.fail("Unknown binary declaration kind");
break;
- case 215:
case 216:
+ case 217:
return node.flags & 512 ? "default" : undefined;
}
}
@@ -10291,7 +10433,7 @@ var ts;
function declareModuleMember(node, symbolFlags, symbolExcludes) {
var hasExportModifier = ts.getCombinedNodeFlags(node) & 2;
if (symbolFlags & 8388608) {
- if (node.kind === 232 || (node.kind === 223 && hasExportModifier)) {
+ if (node.kind === 233 || (node.kind === 224 && hasExportModifier)) {
return declareSymbol(container.symbol.exports, container.symbol, node, symbolFlags, symbolExcludes);
}
else {
@@ -10299,7 +10441,7 @@ var ts;
}
}
else {
- if (hasExportModifier || container.flags & 131072) {
+ if (!ts.isAmbientModule(node) && (hasExportModifier || container.flags & 131072)) {
var exportKind = (symbolFlags & 107455 ? 1048576 : 0) |
(symbolFlags & 793056 ? 2097152 : 0) |
(symbolFlags & 1536 ? 4194304 : 0);
@@ -10338,10 +10480,11 @@ var ts;
var kind = node.kind;
var flags = node.flags;
flags &= ~1572864;
- if (kind === 217) {
+ flags &= ~62914560;
+ if (kind === 218) {
seenThisKeyword = false;
}
- var saveState = kind === 250 || kind === 221 || ts.isFunctionLikeKind(kind);
+ var saveState = kind === 251 || kind === 222 || ts.isFunctionLikeKind(kind);
if (saveState) {
savedReachabilityState = currentReachabilityState;
savedLabelStack = labelStack;
@@ -10359,9 +10502,23 @@ var ts;
flags |= 1048576;
}
}
- if (kind === 217) {
+ if (kind === 218) {
flags = seenThisKeyword ? flags | 262144 : flags & ~262144;
}
+ if (kind === 251) {
+ if (hasClassExtends) {
+ flags |= 4194304;
+ }
+ if (hasDecorators) {
+ flags |= 8388608;
+ }
+ if (hasParameterDecorators) {
+ flags |= 16777216;
+ }
+ if (hasAsyncFunctions) {
+ flags |= 33554432;
+ }
+ }
node.flags = flags;
if (saveState) {
hasExplicitReturn = savedHasExplicitReturn;
@@ -10380,40 +10537,40 @@ var ts;
return;
}
switch (node.kind) {
- case 200:
+ case 201:
bindWhileStatement(node);
break;
- case 199:
+ case 200:
bindDoStatement(node);
break;
- case 201:
+ case 202:
bindForStatement(node);
break;
- case 202:
case 203:
+ case 204:
bindForInOrForOfStatement(node);
break;
- case 198:
+ case 199:
bindIfStatement(node);
break;
- case 206:
- case 210:
+ case 207:
+ case 211:
bindReturnOrThrow(node);
break;
+ case 206:
case 205:
- case 204:
bindBreakOrContinueStatement(node);
break;
- case 211:
+ case 212:
bindTryStatement(node);
break;
- case 208:
+ case 209:
bindSwitchStatement(node);
break;
- case 222:
+ case 223:
bindCaseBlock(node);
break;
- case 209:
+ case 210:
bindLabeledStatement(node);
break;
default:
@@ -10475,14 +10632,14 @@ var ts;
}
function bindReturnOrThrow(n) {
bind(n.expression);
- if (n.kind === 206) {
+ if (n.kind === 207) {
hasExplicitReturn = true;
}
currentReachabilityState = 4;
}
function bindBreakOrContinueStatement(n) {
bind(n.label);
- var isValidJump = jumpToLabel(n.label, n.kind === 205 ? currentReachabilityState : 4);
+ var isValidJump = jumpToLabel(n.label, n.kind === 206 ? currentReachabilityState : 4);
if (isValidJump) {
currentReachabilityState = 4;
}
@@ -10503,7 +10660,7 @@ var ts;
var postSwitchLabel = pushImplicitLabel();
bind(n.expression);
bind(n.caseBlock);
- var hasDefault = ts.forEach(n.caseBlock.clauses, function (c) { return c.kind === 244; });
+ var hasDefault = ts.forEach(n.caseBlock.clauses, function (c) { return c.kind === 245; });
var postSwitchState = hasDefault && currentReachabilityState !== 2 ? 4 : preSwitchState;
popImplicitLabel(postSwitchLabel, postSwitchState);
}
@@ -10528,37 +10685,37 @@ var ts;
}
function getContainerFlags(node) {
switch (node.kind) {
- case 188:
- case 216:
+ case 189:
case 217:
- case 219:
- case 155:
- case 167:
+ case 218:
+ case 220:
+ case 156:
+ case 168:
return 1;
- case 147:
case 148:
case 149:
- case 143:
- case 142:
- case 215:
+ case 150:
case 144:
+ case 143:
+ case 216:
case 145:
case 146:
- case 152:
+ case 147:
case 153:
- case 175:
+ case 154:
case 176:
- case 220:
- case 250:
- case 218:
+ case 177:
+ case 221:
+ case 251:
+ case 219:
return 5;
- case 246:
- case 201:
+ case 247:
case 202:
case 203:
- case 222:
+ case 204:
+ case 223:
return 2;
- case 194:
+ case 195:
return ts.isFunctionLike(node.parent) ? 0 : 2;
}
return 0;
@@ -10574,33 +10731,33 @@ var ts;
}
function declareSymbolAndAddToSymbolTableWorker(node, symbolFlags, symbolExcludes) {
switch (container.kind) {
- case 220:
+ case 221:
return declareModuleMember(node, symbolFlags, symbolExcludes);
- case 250:
+ case 251:
return declareSourceFileMember(node, symbolFlags, symbolExcludes);
- case 188:
- case 216:
- return declareClassMember(node, symbolFlags, symbolExcludes);
- case 219:
- return declareSymbol(container.symbol.exports, container.symbol, node, symbolFlags, symbolExcludes);
- case 155:
- case 167:
+ case 189:
case 217:
+ return declareClassMember(node, symbolFlags, symbolExcludes);
+ case 220:
+ return declareSymbol(container.symbol.exports, container.symbol, node, symbolFlags, symbolExcludes);
+ case 156:
+ case 168:
+ case 218:
return declareSymbol(container.symbol.members, container.symbol, node, symbolFlags, symbolExcludes);
- case 152:
case 153:
- case 147:
+ case 154:
case 148:
case 149:
- case 143:
- case 142:
+ case 150:
case 144:
+ case 143:
case 145:
case 146:
- case 215:
- case 175:
+ case 147:
+ case 216:
case 176:
- case 218:
+ case 177:
+ case 219:
return declareSymbol(container.locals, undefined, node, symbolFlags, symbolExcludes);
}
}
@@ -10615,11 +10772,11 @@ var ts;
: declareSymbol(file.locals, undefined, node, symbolFlags, symbolExcludes);
}
function hasExportDeclarations(node) {
- var body = node.kind === 250 ? node : node.body;
- if (body.kind === 250 || body.kind === 221) {
+ var body = node.kind === 251 ? node : node.body;
+ if (body.kind === 251 || body.kind === 222) {
for (var _i = 0, _a = body.statements; _i < _a.length; _i++) {
var stat = _a[_i];
- if (stat.kind === 230 || stat.kind === 229) {
+ if (stat.kind === 231 || stat.kind === 230) {
return true;
}
}
@@ -10636,7 +10793,10 @@ var ts;
}
function bindModuleDeclaration(node) {
setExportContextFlag(node);
- if (node.name.kind === 9) {
+ if (ts.isAmbientModule(node)) {
+ if (node.flags & 2) {
+ errorOnFirstToken(node, ts.Diagnostics.export_modifier_cannot_be_applied_to_ambient_modules_and_module_augmentations_since_they_are_always_visible);
+ }
declareSymbolAndAddToSymbolTable(node, 512, 106639);
}
else {
@@ -10678,7 +10838,7 @@ var ts;
continue;
}
var identifier = prop.name;
- var currentKind = prop.kind === 247 || prop.kind === 248 || prop.kind === 143
+ var currentKind = prop.kind === 248 || prop.kind === 249 || prop.kind === 144
? 1
: 2;
var existingKind = seen[identifier.text];
@@ -10700,10 +10860,10 @@ var ts;
}
function bindBlockScopedDeclaration(node, symbolFlags, symbolExcludes) {
switch (blockScopeContainer.kind) {
- case 220:
+ case 221:
declareModuleMember(node, symbolFlags, symbolExcludes);
break;
- case 250:
+ case 251:
if (ts.isExternalModule(container)) {
declareModuleMember(node, symbolFlags, symbolExcludes);
break;
@@ -10825,17 +10985,17 @@ var ts;
}
function updateStrictMode(node) {
switch (node.kind) {
- case 250:
- case 221:
+ case 251:
+ case 222:
updateStrictModeStatementList(node.statements);
return;
- case 194:
+ case 195:
if (ts.isFunctionLike(node.parent)) {
updateStrictModeStatementList(node.statements);
}
return;
- case 216:
- case 188:
+ case 217:
+ case 189:
inStrictMode = true;
return;
}
@@ -10860,7 +11020,7 @@ var ts;
switch (node.kind) {
case 69:
return checkStrictModeIdentifier(node);
- case 183:
+ case 184:
if (ts.isInJavaScriptFile(node)) {
var specialKind = ts.getSpecialPropertyAssignmentKind(node);
switch (specialKind) {
@@ -10883,94 +11043,91 @@ var ts;
}
}
return checkStrictModeBinaryExpression(node);
- case 246:
+ case 247:
return checkStrictModeCatchClause(node);
- case 177:
+ case 178:
return checkStrictModeDeleteExpression(node);
case 8:
return checkStrictModeNumericLiteral(node);
- case 182:
+ case 183:
return checkStrictModePostfixUnaryExpression(node);
- case 181:
+ case 182:
return checkStrictModePrefixUnaryExpression(node);
- case 207:
+ case 208:
return checkStrictModeWithStatement(node);
- case 161:
+ case 162:
seenThisKeyword = true;
return;
- case 150:
+ case 151:
return checkTypePredicate(node);
- case 137:
- return declareSymbolAndAddToSymbolTable(node, 262144, 530912);
case 138:
+ return declareSymbolAndAddToSymbolTable(node, 262144, 530912);
+ case 139:
return bindParameter(node);
- case 213:
- case 165:
+ case 214:
+ case 166:
return bindVariableDeclarationOrBindingElement(node);
+ case 142:
case 141:
- case 140:
return bindPropertyOrMethodOrAccessor(node, 4 | (node.questionToken ? 536870912 : 0), 107455);
- case 247:
case 248:
- return bindPropertyOrMethodOrAccessor(node, 4, 107455);
case 249:
+ return bindPropertyOrMethodOrAccessor(node, 4, 107455);
+ case 250:
return bindPropertyOrMethodOrAccessor(node, 8, 107455);
- case 147:
case 148:
case 149:
+ case 150:
return declareSymbolAndAddToSymbolTable(node, 131072, 0);
- case 143:
- case 142:
- return bindPropertyOrMethodOrAccessor(node, 8192 | (node.questionToken ? 536870912 : 0), ts.isObjectLiteralMethod(node) ? 107455 : 99263);
- case 215:
- checkStrictModeFunctionName(node);
- return declareSymbolAndAddToSymbolTable(node, 16, 106927);
case 144:
- return declareSymbolAndAddToSymbolTable(node, 16384, 0);
+ case 143:
+ return bindPropertyOrMethodOrAccessor(node, 8192 | (node.questionToken ? 536870912 : 0), ts.isObjectLiteralMethod(node) ? 107455 : 99263);
+ case 216:
+ return bindFunctionDeclaration(node);
case 145:
- return bindPropertyOrMethodOrAccessor(node, 32768, 41919);
+ return declareSymbolAndAddToSymbolTable(node, 16384, 0);
case 146:
+ return bindPropertyOrMethodOrAccessor(node, 32768, 41919);
+ case 147:
return bindPropertyOrMethodOrAccessor(node, 65536, 74687);
- case 152:
case 153:
+ case 154:
return bindFunctionOrConstructorType(node);
- case 155:
+ case 156:
return bindAnonymousDeclaration(node, 2048, "__type");
- case 167:
+ case 168:
return bindObjectLiteralExpression(node);
- case 175:
case 176:
- checkStrictModeFunctionName(node);
- var bindingName = node.name ? node.name.text : "__function";
- return bindAnonymousDeclaration(node, 16, bindingName);
- case 170:
+ case 177:
+ return bindFunctionExpression(node);
+ case 171:
if (ts.isInJavaScriptFile(node)) {
bindCallExpression(node);
}
break;
- case 188:
- case 216:
- return bindClassLikeDeclaration(node);
+ case 189:
case 217:
- return bindBlockScopedDeclaration(node, 64, 792960);
+ return bindClassLikeDeclaration(node);
case 218:
- return bindBlockScopedDeclaration(node, 524288, 793056);
+ return bindBlockScopedDeclaration(node, 64, 792960);
case 219:
- return bindEnumDeclaration(node);
+ return bindBlockScopedDeclaration(node, 524288, 793056);
case 220:
+ return bindEnumDeclaration(node);
+ case 221:
return bindModuleDeclaration(node);
- case 223:
- case 226:
- case 228:
- case 232:
- return declareSymbolAndAddToSymbolTable(node, 8388608, 8388608);
- case 225:
- return bindImportClause(node);
- case 230:
- return bindExportDeclaration(node);
+ case 224:
+ case 227:
case 229:
+ case 233:
+ return declareSymbolAndAddToSymbolTable(node, 8388608, 8388608);
+ case 226:
+ return bindImportClause(node);
+ case 231:
+ return bindExportDeclaration(node);
+ case 230:
return bindExportAssignment(node);
- case 250:
+ case 251:
return bindSourceFileIfExternalModule();
}
}
@@ -10979,7 +11136,7 @@ var ts;
if (parameterName && parameterName.kind === 69) {
checkStrictModeIdentifier(parameterName);
}
- if (parameterName && parameterName.kind === 161) {
+ if (parameterName && parameterName.kind === 162) {
seenThisKeyword = true;
}
bind(type);
@@ -10994,7 +11151,7 @@ var ts;
bindAnonymousDeclaration(file, 512, "\"" + ts.removeFileExtension(file.fileName) + "\"");
}
function bindExportAssignment(node) {
- var boundExpression = node.kind === 229 ? node.expression : node.right;
+ var boundExpression = node.kind === 230 ? node.expression : node.right;
if (!container.symbol || !container.symbol.exports) {
bindAnonymousDeclaration(node, 8388608, getDeclarationName(node));
}
@@ -11033,7 +11190,7 @@ var ts;
bindExportAssignment(node);
}
function bindThisPropertyAssignment(node) {
- if (container.kind === 175 || container.kind === 215) {
+ if (container.kind === 176 || container.kind === 216) {
container.symbol.members = container.symbol.members || {};
declareSymbol(container.symbol.members, container.symbol, node, 4, 107455);
}
@@ -11055,7 +11212,15 @@ var ts;
}
}
function bindClassLikeDeclaration(node) {
- if (node.kind === 216) {
+ if (!ts.isDeclarationFile(file) && !ts.isInAmbientContext(node)) {
+ if (ts.getClassExtendsHeritageClauseElement(node) !== undefined) {
+ hasClassExtends = true;
+ }
+ if (ts.nodeIsDecorated(node)) {
+ hasDecorators = true;
+ }
+ }
+ if (node.kind === 217) {
bindBlockScopedDeclaration(node, 32, 899519);
}
else {
@@ -11098,6 +11263,12 @@ var ts;
}
}
function bindParameter(node) {
+ if (!ts.isDeclarationFile(file) &&
+ !ts.isInAmbientContext(node) &&
+ ts.nodeIsDecorated(node)) {
+ hasDecorators = true;
+ hasParameterDecorators = true;
+ }
if (inStrictMode) {
checkStrictModeEvalOrArguments(node, node.name);
}
@@ -11112,7 +11283,34 @@ var ts;
declareSymbol(classDeclaration.symbol.members, classDeclaration.symbol, node, 4, 107455);
}
}
+ function bindFunctionDeclaration(node) {
+ if (!ts.isDeclarationFile(file) && !ts.isInAmbientContext(node)) {
+ if (ts.isAsyncFunctionLike(node)) {
+ hasAsyncFunctions = true;
+ }
+ }
+ checkStrictModeFunctionName(node);
+ return declareSymbolAndAddToSymbolTable(node, 16, 106927);
+ }
+ function bindFunctionExpression(node) {
+ if (!ts.isDeclarationFile(file) && !ts.isInAmbientContext(node)) {
+ if (ts.isAsyncFunctionLike(node)) {
+ hasAsyncFunctions = true;
+ }
+ }
+ checkStrictModeFunctionName(node);
+ var bindingName = node.name ? node.name.text : "__function";
+ return bindAnonymousDeclaration(node, 16, bindingName);
+ }
function bindPropertyOrMethodOrAccessor(node, symbolFlags, symbolExcludes) {
+ if (!ts.isDeclarationFile(file) && !ts.isInAmbientContext(node)) {
+ if (ts.isAsyncFunctionLike(node)) {
+ hasAsyncFunctions = true;
+ }
+ if (ts.nodeIsDecorated(node)) {
+ hasDecorators = true;
+ }
+ }
return ts.hasDynamicName(node)
? bindAnonymousDeclaration(node, symbolFlags, "__computed")
: declareSymbolAndAddToSymbolTable(node, symbolFlags, symbolExcludes);
@@ -11172,15 +11370,15 @@ var ts;
function checkUnreachable(node) {
switch (currentReachabilityState) {
case 4:
- var reportError = (ts.isStatement(node) && node.kind !== 196) ||
- node.kind === 216 ||
- (node.kind === 220 && shouldReportErrorOnModuleDeclaration(node)) ||
- (node.kind === 219 && (!ts.isConstEnumDeclaration(node) || options.preserveConstEnums));
+ var reportError = (ts.isStatement(node) && node.kind !== 197) ||
+ node.kind === 217 ||
+ (node.kind === 221 && shouldReportErrorOnModuleDeclaration(node)) ||
+ (node.kind === 220 && (!ts.isConstEnumDeclaration(node) || options.preserveConstEnums));
if (reportError) {
currentReachabilityState = 8;
var reportUnreachableCode = !options.allowUnreachableCode &&
!ts.isInAmbientContext(node) &&
- (node.kind !== 195 ||
+ (node.kind !== 196 ||
ts.getCombinedNodeFlags(node.declarationList) & 24576 ||
ts.forEach(node.declarationList.declarations, function (d) { return d.initializer; }));
if (reportUnreachableCode) {
@@ -11254,6 +11452,7 @@ var ts;
getTypeCount: function () { return typeCount; },
isUndefinedSymbol: function (symbol) { return symbol === undefinedSymbol; },
isArgumentsSymbol: function (symbol) { return symbol === argumentsSymbol; },
+ isUnknownSymbol: function (symbol) { return symbol === unknownSymbol; },
getDiagnostics: getDiagnostics,
getGlobalDiagnostics: getGlobalDiagnostics,
getTypeOfSymbolAtLocation: getNarrowedTypeOfSymbol,
@@ -11268,6 +11467,7 @@ var ts;
getSymbolsInScope: getSymbolsInScope,
getSymbolAtLocation: getSymbolAtLocation,
getShorthandAssignmentValueSymbol: getShorthandAssignmentValueSymbol,
+ getExportSpecifierLocalTargetSymbol: getExportSpecifierLocalTargetSymbol,
getTypeAtLocation: getTypeOfNode,
typeToString: typeToString,
getSymbolDisplayBuilder: getSymbolDisplayBuilder,
@@ -11341,11 +11541,6 @@ var ts;
var unionTypes = {};
var intersectionTypes = {};
var stringLiteralTypes = {};
- var emitExtends = false;
- var emitDecorate = false;
- var emitParam = false;
- var emitAwaiter = false;
- var emitGenerator = false;
var resolutionTargets = [];
var resolutionResults = [];
var resolutionPropertyNames = [];
@@ -11478,7 +11673,7 @@ var ts;
target.flags |= source.flags;
if (source.valueDeclaration &&
(!target.valueDeclaration ||
- (target.valueDeclaration.kind === 220 && source.valueDeclaration.kind !== 220))) {
+ (target.valueDeclaration.kind === 221 && source.valueDeclaration.kind !== 221))) {
target.valueDeclaration = source.valueDeclaration;
}
ts.forEach(source.declarations, function (node) {
@@ -11532,6 +11727,24 @@ var ts;
}
}
}
+ function mergeModuleAugmentation(moduleName) {
+ var moduleAugmentation = moduleName.parent;
+ if (moduleAugmentation.symbol.valueDeclaration !== moduleAugmentation) {
+ ts.Debug.assert(moduleAugmentation.symbol.declarations.length > 1);
+ return;
+ }
+ if (ts.isGlobalScopeAugmentation(moduleAugmentation)) {
+ mergeSymbolTable(globals, moduleAugmentation.symbol.exports);
+ }
+ else {
+ var mainModule = resolveExternalModuleNameWorker(moduleName, moduleName, ts.Diagnostics.Invalid_module_name_in_augmentation_module_0_cannot_be_found);
+ if (!mainModule) {
+ return;
+ }
+ mainModule = mainModule.flags & 33554432 ? mainModule : cloneSymbol(mainModule);
+ mergeSymbol(mainModule, moduleAugmentation.symbol);
+ }
+ }
function addToSymbolTable(target, source, message) {
for (var id in source) {
if (ts.hasProperty(source, id)) {
@@ -11557,17 +11770,8 @@ var ts;
var nodeId = getNodeId(node);
return nodeLinks[nodeId] || (nodeLinks[nodeId] = {});
}
- function getSourceFile(node) {
- return ts.getAncestor(node, 250);
- }
function isGlobalSourceFile(node) {
- return node.kind === 250 && !ts.isExternalOrCommonJsModule(node);
- }
- function isPrimitiveApparentType(type) {
- return type === globalStringType ||
- type === globalNumberType ||
- type === globalBooleanType ||
- type === globalESSymbolType;
+ return node.kind === 251 && !ts.isExternalOrCommonJsModule(node);
}
function getSymbol(symbols, name, meaning) {
if (meaning && ts.hasProperty(symbols, name)) {
@@ -11605,18 +11809,18 @@ var ts;
return ts.indexOf(sourceFiles, declarationFile) <= ts.indexOf(sourceFiles, useFile);
}
if (declaration.pos <= usage.pos) {
- return declaration.kind !== 213 ||
+ return declaration.kind !== 214 ||
!isImmediatelyUsedInInitializerOfBlockScopedVariable(declaration, usage);
}
return isUsedInFunctionOrNonStaticProperty(declaration, usage);
function isImmediatelyUsedInInitializerOfBlockScopedVariable(declaration, usage) {
var container = ts.getEnclosingBlockScopeContainer(declaration);
- if (declaration.parent.parent.kind === 195 ||
- declaration.parent.parent.kind === 201) {
+ if (declaration.parent.parent.kind === 196 ||
+ declaration.parent.parent.kind === 202) {
return isSameScopeDescendentOf(usage, declaration, container);
}
- else if (declaration.parent.parent.kind === 203 ||
- declaration.parent.parent.kind === 202) {
+ else if (declaration.parent.parent.kind === 204 ||
+ declaration.parent.parent.kind === 203) {
var expression = declaration.parent.parent.expression;
return isSameScopeDescendentOf(usage, expression, container);
}
@@ -11632,7 +11836,7 @@ var ts;
return true;
}
var initializerOfNonStaticProperty = current.parent &&
- current.parent.kind === 141 &&
+ current.parent.kind === 142 &&
(current.parent.flags & 64) === 0 &&
current.parent.initializer === current;
if (initializerOfNonStaticProperty) {
@@ -11657,15 +11861,15 @@ var ts;
if (meaning & result.flags & 793056) {
useResult = result.flags & 262144
? lastLocation === location.type ||
- lastLocation.kind === 138 ||
- lastLocation.kind === 137
+ lastLocation.kind === 139 ||
+ lastLocation.kind === 138
: false;
}
if (meaning & 107455 && result.flags & 1) {
useResult =
- lastLocation.kind === 138 ||
+ lastLocation.kind === 139 ||
(lastLocation === location.type &&
- result.valueDeclaration.kind === 138);
+ result.valueDeclaration.kind === 139);
}
}
if (useResult) {
@@ -11677,13 +11881,12 @@ var ts;
}
}
switch (location.kind) {
- case 250:
+ case 251:
if (!ts.isExternalOrCommonJsModule(location))
break;
- case 220:
+ case 221:
var moduleExports = getSymbolOfNode(location).exports;
- if (location.kind === 250 ||
- (location.kind === 220 && location.name.kind === 9)) {
+ if (location.kind === 251 || ts.isAmbientModule(location)) {
if (result = moduleExports["default"]) {
var localSymbol = ts.getLocalSymbolForExportDefault(result);
if (localSymbol && (result.flags & meaning) && localSymbol.name === name) {
@@ -11693,7 +11896,7 @@ var ts;
}
if (ts.hasProperty(moduleExports, name) &&
moduleExports[name].flags === 8388608 &&
- ts.getDeclarationOfKind(moduleExports[name], 232)) {
+ ts.getDeclarationOfKind(moduleExports[name], 233)) {
break;
}
}
@@ -11701,13 +11904,13 @@ var ts;
break loop;
}
break;
- case 219:
+ case 220:
if (result = getSymbol(getSymbolOfNode(location).exports, name, meaning & 8)) {
break loop;
}
break;
+ case 142:
case 141:
- case 140:
if (ts.isClassLike(location.parent) && !(location.flags & 64)) {
var ctor = findConstructorDeclaration(location.parent);
if (ctor && ctor.locals) {
@@ -11717,9 +11920,9 @@ var ts;
}
}
break;
- case 216:
- case 188:
case 217:
+ case 189:
+ case 218:
if (result = getSymbol(getSymbolOfNode(location).members, name, meaning & 793056)) {
if (lastLocation && lastLocation.flags & 64) {
error(errorLocation, ts.Diagnostics.Static_members_cannot_reference_class_type_parameters);
@@ -11727,7 +11930,7 @@ var ts;
}
break loop;
}
- if (location.kind === 188 && meaning & 32) {
+ if (location.kind === 189 && meaning & 32) {
var className = location.name;
if (className && name === className.text) {
result = location.symbol;
@@ -11735,28 +11938,28 @@ var ts;
}
}
break;
- case 136:
+ case 137:
grandparent = location.parent.parent;
- if (ts.isClassLike(grandparent) || grandparent.kind === 217) {
+ if (ts.isClassLike(grandparent) || grandparent.kind === 218) {
if (result = getSymbol(getSymbolOfNode(grandparent).members, name, meaning & 793056)) {
error(errorLocation, ts.Diagnostics.A_computed_property_name_cannot_reference_a_type_parameter_from_its_containing_type);
return undefined;
}
}
break;
- case 143:
- case 142:
case 144:
+ case 143:
case 145:
case 146:
- case 215:
- case 176:
+ case 147:
+ case 216:
+ case 177:
if (meaning & 3 && name === "arguments") {
result = argumentsSymbol;
break loop;
}
break;
- case 175:
+ case 176:
if (meaning & 3 && name === "arguments") {
result = argumentsSymbol;
break loop;
@@ -11769,8 +11972,8 @@ var ts;
}
}
break;
- case 139:
- if (location.parent && location.parent.kind === 138) {
+ case 140:
+ if (location.parent && location.parent.kind === 139) {
location = location.parent;
}
if (location.parent && ts.isClassElement(location.parent)) {
@@ -11786,7 +11989,9 @@ var ts;
}
if (!result) {
if (nameNotFoundMessage) {
- error(errorLocation, nameNotFoundMessage, typeof nameArg === "string" ? nameArg : ts.declarationNameToString(nameArg));
+ if (!checkAndReportErrorForMissingPrefix(errorLocation, name, nameArg)) {
+ error(errorLocation, nameNotFoundMessage, typeof nameArg === "string" ? nameArg : ts.declarationNameToString(nameArg));
+ }
}
return undefined;
}
@@ -11805,11 +12010,40 @@ var ts;
}
return result;
}
+ function checkAndReportErrorForMissingPrefix(errorLocation, name, nameArg) {
+ if (!errorLocation || (errorLocation.kind === 69 && (isTypeReferenceIdentifier(errorLocation)) || isInTypeQuery(errorLocation))) {
+ return false;
+ }
+ var container = ts.getThisContainer(errorLocation, true);
+ var location = container;
+ while (location) {
+ if (ts.isClassLike(location.parent)) {
+ var classSymbol = getSymbolOfNode(location.parent);
+ if (!classSymbol) {
+ break;
+ }
+ var constructorType = getTypeOfSymbol(classSymbol);
+ if (getPropertyOfType(constructorType, name)) {
+ error(errorLocation, ts.Diagnostics.Cannot_find_name_0_Did_you_mean_the_static_member_1_0, typeof nameArg === "string" ? nameArg : ts.declarationNameToString(nameArg), symbolToString(classSymbol));
+ return true;
+ }
+ if (location === container && !(location.flags & 64)) {
+ var instanceType = getDeclaredTypeOfSymbol(classSymbol).thisType;
+ if (getPropertyOfType(instanceType, name)) {
+ error(errorLocation, ts.Diagnostics.Cannot_find_name_0_Did_you_mean_the_instance_member_this_0, typeof nameArg === "string" ? nameArg : ts.declarationNameToString(nameArg));
+ return true;
+ }
+ }
+ }
+ location = location.parent;
+ }
+ return false;
+ }
function checkResolvedBlockScopedVariable(result, errorLocation) {
ts.Debug.assert((result.flags & 2) !== 0);
var declaration = ts.forEach(result.declarations, function (d) { return ts.isBlockOrCatchScoped(d) ? d : undefined; });
ts.Debug.assert(declaration !== undefined, "Block-scoped variable declaration is undefined");
- if (!isBlockScopedNameDeclaredBeforeUse(ts.getAncestor(declaration, 213), errorLocation)) {
+ if (!isBlockScopedNameDeclaredBeforeUse(ts.getAncestor(declaration, 214), errorLocation)) {
error(errorLocation, ts.Diagnostics.Block_scoped_variable_0_used_before_its_declaration, ts.declarationNameToString(declaration.name));
}
}
@@ -11826,10 +12060,10 @@ var ts;
}
function getAnyImportSyntax(node) {
if (ts.isAliasSymbolDeclaration(node)) {
- if (node.kind === 223) {
+ if (node.kind === 224) {
return node;
}
- while (node && node.kind !== 224) {
+ while (node && node.kind !== 225) {
node = node.parent;
}
return node;
@@ -11839,7 +12073,7 @@ var ts;
return ts.forEach(symbol.declarations, function (d) { return ts.isAliasSymbolDeclaration(d) ? d : undefined; });
}
function getTargetOfImportEqualsDeclaration(node) {
- if (node.moduleReference.kind === 234) {
+ if (node.moduleReference.kind === 235) {
return resolveExternalModuleSymbol(resolveExternalModuleName(node, ts.getExternalModuleImportEqualsDeclarationExpression(node)));
}
return getSymbolOfPartOfRightHandSideOfImportEquals(node.moduleReference, node);
@@ -11923,17 +12157,17 @@ var ts;
}
function getTargetOfAliasDeclaration(node) {
switch (node.kind) {
- case 223:
+ case 224:
return getTargetOfImportEqualsDeclaration(node);
- case 225:
- return getTargetOfImportClause(node);
case 226:
+ return getTargetOfImportClause(node);
+ case 227:
return getTargetOfNamespaceImport(node);
- case 228:
- return getTargetOfImportSpecifier(node);
- case 232:
- return getTargetOfExportSpecifier(node);
case 229:
+ return getTargetOfImportSpecifier(node);
+ case 233:
+ return getTargetOfExportSpecifier(node);
+ case 230:
return getTargetOfExportAssignment(node);
}
}
@@ -11975,10 +12209,10 @@ var ts;
if (!links.referenced) {
links.referenced = true;
var node = getDeclarationOfAliasSymbol(symbol);
- if (node.kind === 229) {
+ if (node.kind === 230) {
checkExpressionCached(node.expression);
}
- else if (node.kind === 232) {
+ else if (node.kind === 233) {
checkExpressionCached(node.propertyName || node.name);
}
else if (ts.isInternalModuleImportEqualsDeclaration(node)) {
@@ -11988,17 +12222,17 @@ var ts;
}
function getSymbolOfPartOfRightHandSideOfImportEquals(entityName, importDeclaration) {
if (!importDeclaration) {
- importDeclaration = ts.getAncestor(entityName, 223);
+ importDeclaration = ts.getAncestor(entityName, 224);
ts.Debug.assert(importDeclaration !== undefined);
}
if (entityName.kind === 69 && ts.isRightSideOfQualifiedNameOrPropertyAccess(entityName)) {
entityName = entityName.parent;
}
- if (entityName.kind === 69 || entityName.parent.kind === 135) {
+ if (entityName.kind === 69 || entityName.parent.kind === 136) {
return resolveEntityName(entityName, 1536);
}
else {
- ts.Debug.assert(entityName.parent.kind === 223);
+ ts.Debug.assert(entityName.parent.kind === 224);
return resolveEntityName(entityName, 107455 | 793056 | 1536);
}
}
@@ -12017,9 +12251,9 @@ var ts;
return undefined;
}
}
- else if (name.kind === 135 || name.kind === 168) {
- var left = name.kind === 135 ? name.left : name.expression;
- var right = name.kind === 135 ? name.right : name.name;
+ else if (name.kind === 136 || name.kind === 169) {
+ var left = name.kind === 136 ? name.left : name.expression;
+ var right = name.kind === 136 ? name.right : name.name;
var namespace = resolveEntityName(left, 1536, ignoreErrors);
if (!namespace || namespace === unknownSymbol || ts.nodeIsMissing(right)) {
return undefined;
@@ -12039,6 +12273,9 @@ var ts;
return symbol.flags & meaning ? symbol : resolveAlias(symbol);
}
function resolveExternalModuleName(location, moduleReferenceExpression) {
+ return resolveExternalModuleNameWorker(location, moduleReferenceExpression, ts.Diagnostics.Cannot_find_module_0);
+ }
+ function resolveExternalModuleNameWorker(location, moduleReferenceExpression, moduleNotFoundError) {
if (moduleReferenceExpression.kind !== 9) {
return;
}
@@ -12051,19 +12288,24 @@ var ts;
if (!isRelative) {
var symbol = getSymbol(globals, "\"" + moduleName + "\"", 512);
if (symbol) {
- return symbol;
+ return getMergedSymbol(symbol);
}
}
- var resolvedModule = ts.getResolvedModule(getSourceFile(location), moduleReferenceLiteral.text);
+ var resolvedModule = ts.getResolvedModule(ts.getSourceFileOfNode(location), moduleReferenceLiteral.text);
var sourceFile = resolvedModule && host.getSourceFile(resolvedModule.resolvedFileName);
if (sourceFile) {
if (sourceFile.symbol) {
- return sourceFile.symbol;
+ return getMergedSymbol(sourceFile.symbol);
}
- error(moduleReferenceLiteral, ts.Diagnostics.File_0_is_not_a_module, sourceFile.fileName);
- return;
+ if (moduleNotFoundError) {
+ error(moduleReferenceLiteral, ts.Diagnostics.File_0_is_not_a_module, sourceFile.fileName);
+ }
+ return undefined;
}
- error(moduleReferenceLiteral, ts.Diagnostics.Cannot_find_module_0, moduleName);
+ if (moduleNotFoundError) {
+ error(moduleReferenceLiteral, moduleNotFoundError, moduleName);
+ }
+ return undefined;
}
function resolveExternalModuleSymbol(moduleSymbol) {
return moduleSymbol && resolveSymbol(moduleSymbol.exports["export="]) || moduleSymbol;
@@ -12174,7 +12416,7 @@ var ts;
var members = node.members;
for (var _i = 0, members_1 = members; _i < members_1.length; _i++) {
var member = members_1[_i];
- if (member.kind === 144 && ts.nodeIsPresent(member.body)) {
+ if (member.kind === 145 && ts.nodeIsPresent(member.body)) {
return member;
}
}
@@ -12240,17 +12482,17 @@ var ts;
}
}
switch (location_1.kind) {
- case 250:
+ case 251:
if (!ts.isExternalOrCommonJsModule(location_1)) {
break;
}
- case 220:
+ case 221:
if (result = callback(getSymbolOfNode(location_1).exports)) {
return result;
}
break;
- case 216:
case 217:
+ case 218:
if (result = callback(getSymbolOfNode(location_1).members)) {
return result;
}
@@ -12283,7 +12525,7 @@ var ts;
return ts.forEachValue(symbols, function (symbolFromSymbolTable) {
if (symbolFromSymbolTable.flags & 8388608
&& symbolFromSymbolTable.name !== "export="
- && !ts.getDeclarationOfKind(symbolFromSymbolTable, 232)) {
+ && !ts.getDeclarationOfKind(symbolFromSymbolTable, 233)) {
if (!useOnlyExternalAliasing ||
ts.forEach(symbolFromSymbolTable.declarations, ts.isExternalModuleImportEqualsDeclaration)) {
var resolvedImportedSymbol = resolveAlias(symbolFromSymbolTable);
@@ -12312,7 +12554,7 @@ var ts;
if (symbolFromSymbolTable === symbol) {
return true;
}
- symbolFromSymbolTable = (symbolFromSymbolTable.flags & 8388608 && !ts.getDeclarationOfKind(symbolFromSymbolTable, 232)) ? resolveAlias(symbolFromSymbolTable) : symbolFromSymbolTable;
+ symbolFromSymbolTable = (symbolFromSymbolTable.flags & 8388608 && !ts.getDeclarationOfKind(symbolFromSymbolTable, 233)) ? resolveAlias(symbolFromSymbolTable) : symbolFromSymbolTable;
if (symbolFromSymbolTable.flags & meaning) {
qualify = true;
return true;
@@ -12367,8 +12609,7 @@ var ts;
}
}
function hasExternalModuleSymbol(declaration) {
- return (declaration.kind === 220 && declaration.name.kind === 9) ||
- (declaration.kind === 250 && ts.isExternalOrCommonJsModule(declaration));
+ return ts.isAmbientModule(declaration) || (declaration.kind === 251 && ts.isExternalOrCommonJsModule(declaration));
}
function hasVisibleDeclarations(symbol) {
var aliasesToMakeVisible;
@@ -12400,11 +12641,11 @@ var ts;
}
function isEntityNameVisible(entityName, enclosingDeclaration) {
var meaning;
- if (entityName.parent.kind === 154) {
+ if (entityName.parent.kind === 155) {
meaning = 107455 | 1048576;
}
- else if (entityName.kind === 135 || entityName.kind === 168 ||
- entityName.parent.kind === 223) {
+ else if (entityName.kind === 136 || entityName.kind === 169 ||
+ entityName.parent.kind === 224) {
meaning = 1536;
}
else {
@@ -12455,15 +12696,20 @@ var ts;
function getTypeAliasForTypeLiteral(type) {
if (type.symbol && type.symbol.flags & 2048) {
var node = type.symbol.declarations[0].parent;
- while (node.kind === 160) {
+ while (node.kind === 161) {
node = node.parent;
}
- if (node.kind === 218) {
+ if (node.kind === 219) {
return getSymbolOfNode(node);
}
}
return undefined;
}
+ function isTopLevelInExternalModuleAugmentation(node) {
+ return node && node.parent &&
+ node.parent.kind === 222 &&
+ ts.isExternalModuleAugmentation(node.parent.parent);
+ }
function getSymbolDisplayBuilder() {
function getNameOfSymbol(symbol) {
if (symbol.declarations && symbol.declarations.length) {
@@ -12472,10 +12718,10 @@ var ts;
return ts.declarationNameToString(declaration.name);
}
switch (declaration.kind) {
- case 188:
+ case 189:
return "(Anonymous class)";
- case 175:
case 176:
+ case 177:
return "(Anonymous function)";
}
}
@@ -12689,7 +12935,7 @@ var ts;
var isNonLocalFunctionSymbol = !!(symbol.flags & 16) &&
(symbol.parent ||
ts.forEach(symbol.declarations, function (declaration) {
- return declaration.parent.kind === 250 || declaration.parent.kind === 221;
+ return declaration.parent.kind === 251 || declaration.parent.kind === 222;
}));
if (isStaticMethodSymbol || isNonLocalFunctionSymbol) {
return !!(flags & 2) ||
@@ -12943,60 +13189,63 @@ var ts;
return false;
function determineIfDeclarationIsVisible() {
switch (node.kind) {
- case 165:
+ case 166:
return isDeclarationVisible(node.parent.parent);
- case 213:
+ case 214:
if (ts.isBindingPattern(node.name) &&
!node.name.elements.length) {
return false;
}
- case 220:
- case 216:
+ case 221:
case 217:
case 218:
- case 215:
case 219:
- case 223:
+ case 216:
+ case 220:
+ case 224:
+ if (ts.isExternalModuleAugmentation(node)) {
+ return true;
+ }
var parent_4 = getDeclarationContainer(node);
if (!(ts.getCombinedNodeFlags(node) & 2) &&
- !(node.kind !== 223 && parent_4.kind !== 250 && ts.isInAmbientContext(parent_4))) {
+ !(node.kind !== 224 && parent_4.kind !== 251 && ts.isInAmbientContext(parent_4))) {
return isGlobalSourceFile(parent_4);
}
return isDeclarationVisible(parent_4);
- case 141:
- case 140:
- case 145:
- case 146:
- case 143:
case 142:
+ case 141:
+ case 146:
+ case 147:
+ case 144:
+ case 143:
if (node.flags & (16 | 32)) {
return false;
}
- case 144:
- case 148:
- case 147:
+ case 145:
case 149:
- case 138:
- case 221:
- case 152:
+ case 148:
+ case 150:
+ case 139:
+ case 222:
case 153:
- case 155:
- case 151:
+ case 154:
case 156:
+ case 152:
case 157:
case 158:
case 159:
case 160:
+ case 161:
return isDeclarationVisible(node.parent);
- case 225:
case 226:
- case 228:
- return false;
- case 137:
- case 250:
- return true;
+ case 227:
case 229:
return false;
+ case 138:
+ case 251:
+ return true;
+ case 230:
+ return false;
default:
ts.Debug.fail("isDeclarationVisible unknown: SyntaxKind: " + node.kind);
}
@@ -13004,10 +13253,10 @@ var ts;
}
function collectLinkedAliases(node) {
var exportSymbol;
- if (node.parent && node.parent.kind === 229) {
+ if (node.parent && node.parent.kind === 230) {
exportSymbol = resolveName(node.parent, node.text, 107455 | 793056 | 1536 | 8388608, ts.Diagnostics.Cannot_find_name_0, node);
}
- else if (node.parent.kind === 232) {
+ else if (node.parent.kind === 233) {
var exportSpecifier = node.parent;
exportSymbol = exportSpecifier.parent.parent.moduleSpecifier ?
getExternalModuleMember(exportSpecifier.parent.parent, exportSpecifier) :
@@ -13029,7 +13278,9 @@ var ts;
var internalModuleReference = declaration.moduleReference;
var firstIdentifier = getFirstIdentifier(internalModuleReference);
var importSymbol = resolveName(declaration, firstIdentifier.text, 107455 | 793056 | 1536, ts.Diagnostics.Cannot_find_name_0, firstIdentifier);
- buildVisibleNodeList(importSymbol.declarations);
+ if (importSymbol) {
+ buildVisibleNodeList(importSymbol.declarations);
+ }
}
});
}
@@ -13082,10 +13333,10 @@ var ts;
}
function getDeclarationContainer(node) {
node = ts.getRootDeclaration(node);
- return node.kind === 213 ? node.parent.parent.parent : node.parent;
+ return node.kind === 214 ? node.parent.parent.parent : node.parent;
}
function getTypeOfPrototypeProperty(prototype) {
- var classType = getDeclaredTypeOfSymbol(prototype.parent);
+ var classType = getDeclaredTypeOfSymbol(getMergedSymbol(prototype.parent));
return classType.typeParameters ? createTypeReference(classType, ts.map(classType.typeParameters, function (_) { return anyType; })) : classType;
}
function getTypeOfPropertyOfType(type, name) {
@@ -13106,7 +13357,7 @@ var ts;
case 9:
case 8:
return name.text;
- case 136:
+ case 137:
if (ts.isStringOrNumericLiteral(name.expression.kind)) {
return name.expression.text;
}
@@ -13114,7 +13365,7 @@ var ts;
return undefined;
}
function isComputedNonLiteralName(name) {
- return name.kind === 136 && !ts.isStringOrNumericLiteral(name.expression.kind);
+ return name.kind === 137 && !ts.isStringOrNumericLiteral(name.expression.kind);
}
function getTypeForBindingElement(declaration) {
var pattern = declaration.parent;
@@ -13129,7 +13380,7 @@ var ts;
return parentType;
}
var type;
- if (pattern.kind === 163) {
+ if (pattern.kind === 164) {
var name_10 = declaration.propertyName || declaration.name;
if (isComputedNonLiteralName(name_10)) {
return anyType;
@@ -13167,10 +13418,10 @@ var ts;
return type;
}
function getTypeForVariableLikeDeclaration(declaration) {
- if (declaration.parent.parent.kind === 202) {
- return anyType;
- }
if (declaration.parent.parent.kind === 203) {
+ return stringType;
+ }
+ if (declaration.parent.parent.kind === 204) {
return checkRightHandSideOfForOf(declaration.parent.parent.expression) || anyType;
}
if (ts.isBindingPattern(declaration.parent)) {
@@ -13179,10 +13430,10 @@ var ts;
if (declaration.type) {
return getTypeFromTypeNode(declaration.type);
}
- if (declaration.kind === 138) {
+ if (declaration.kind === 139) {
var func = declaration.parent;
- if (func.kind === 146 && !ts.hasDynamicName(func)) {
- var getter = ts.getDeclarationOfKind(declaration.parent.symbol, 145);
+ if (func.kind === 147 && !ts.hasDynamicName(func)) {
+ var getter = ts.getDeclarationOfKind(declaration.parent.symbol, 146);
if (getter) {
return getReturnTypeOfSignature(getSignatureFromDeclaration(getter));
}
@@ -13195,7 +13446,7 @@ var ts;
if (declaration.initializer) {
return checkExpressionCached(declaration.initializer);
}
- if (declaration.kind === 248) {
+ if (declaration.kind === 249) {
return checkIdentifier(declaration.name);
}
if (ts.isBindingPattern(declaration.name)) {
@@ -13242,7 +13493,7 @@ var ts;
if (elements.length === 0 || elements[elements.length - 1].dotDotDotToken) {
return languageVersion >= 2 ? createIterableType(anyType) : anyArrayType;
}
- var elementTypes = ts.map(elements, function (e) { return e.kind === 189 ? anyType : getTypeFromBindingElement(e, includePatternInType); });
+ var elementTypes = ts.map(elements, function (e) { return e.kind === 190 ? anyType : getTypeFromBindingElement(e, includePatternInType); });
if (includePatternInType) {
var result = createNewTupleType(elementTypes);
result.pattern = pattern;
@@ -13251,7 +13502,7 @@ var ts;
return createTupleType(elementTypes);
}
function getTypeFromBindingPattern(pattern, includePatternInType) {
- return pattern.kind === 163
+ return pattern.kind === 164
? getTypeFromObjectBindingPattern(pattern, includePatternInType)
: getTypeFromArrayBindingPattern(pattern, includePatternInType);
}
@@ -13261,10 +13512,10 @@ var ts;
if (reportErrors) {
reportErrorsFromWidening(declaration, type);
}
- if (declaration.kind === 247) {
+ if (declaration.kind === 248) {
return type;
}
- if (type.flags & 134217728 && (declaration.kind === 141 || declaration.kind === 140)) {
+ if (type.flags & 134217728 && (declaration.kind === 142 || declaration.kind === 141)) {
return type;
}
return getWidenedType(type);
@@ -13272,7 +13523,7 @@ var ts;
type = declaration.dotDotDotToken ? anyArrayType : anyType;
if (reportErrors && compilerOptions.noImplicitAny) {
var root = ts.getRootDeclaration(declaration);
- if (!isPrivateWithinAmbient(root) && !(root.kind === 138 && isPrivateWithinAmbient(root.parent))) {
+ if (!isPrivateWithinAmbient(root) && !(root.kind === 139 && isPrivateWithinAmbient(root.parent))) {
reportImplicitAnyError(declaration, type);
}
}
@@ -13285,17 +13536,17 @@ var ts;
return links.type = getTypeOfPrototypeProperty(symbol);
}
var declaration = symbol.valueDeclaration;
- if (declaration.parent.kind === 246) {
+ if (declaration.parent.kind === 247) {
return links.type = anyType;
}
- if (declaration.kind === 229) {
+ if (declaration.kind === 230) {
return links.type = checkExpression(declaration.expression);
}
- if (declaration.kind === 183) {
+ if (declaration.kind === 184) {
return links.type = checkExpression(declaration.right);
}
- if (declaration.kind === 168) {
- if (declaration.parent.kind === 183) {
+ if (declaration.kind === 169) {
+ if (declaration.parent.kind === 184) {
return links.type = checkExpressionCached(declaration.parent.right);
}
}
@@ -13321,7 +13572,7 @@ var ts;
}
function getAnnotatedAccessorType(accessor) {
if (accessor) {
- if (accessor.kind === 145) {
+ if (accessor.kind === 146) {
return accessor.type && getTypeFromTypeNode(accessor.type);
}
else {
@@ -13337,8 +13588,8 @@ var ts;
if (!pushTypeResolution(symbol, 0)) {
return unknownType;
}
- var getter = ts.getDeclarationOfKind(symbol, 145);
- var setter = ts.getDeclarationOfKind(symbol, 146);
+ var getter = ts.getDeclarationOfKind(symbol, 146);
+ var setter = ts.getDeclarationOfKind(symbol, 147);
var type;
var getterReturnType = getAnnotatedAccessorType(getter);
if (getterReturnType) {
@@ -13364,7 +13615,7 @@ var ts;
if (!popTypeResolution()) {
type = anyType;
if (compilerOptions.noImplicitAny) {
- var getter_1 = ts.getDeclarationOfKind(symbol, 145);
+ var getter_1 = ts.getDeclarationOfKind(symbol, 146);
error(getter_1, ts.Diagnostics._0_implicitly_has_return_type_any_because_it_does_not_have_a_return_type_annotation_and_is_referenced_directly_or_indirectly_in_one_of_its_return_expressions, symbolToString(symbol));
}
}
@@ -13453,9 +13704,9 @@ var ts;
if (!node) {
return typeParameters;
}
- if (node.kind === 216 || node.kind === 188 ||
- node.kind === 215 || node.kind === 175 ||
- node.kind === 143 || node.kind === 176) {
+ if (node.kind === 217 || node.kind === 189 ||
+ node.kind === 216 || node.kind === 176 ||
+ node.kind === 144 || node.kind === 177) {
var declarations = node.typeParameters;
if (declarations) {
return appendTypeParameters(appendOuterTypeParameters(typeParameters, node), declarations);
@@ -13464,15 +13715,15 @@ var ts;
}
}
function getOuterTypeParametersOfClassOrInterface(symbol) {
- var declaration = symbol.flags & 32 ? symbol.valueDeclaration : ts.getDeclarationOfKind(symbol, 217);
+ var declaration = symbol.flags & 32 ? symbol.valueDeclaration : ts.getDeclarationOfKind(symbol, 218);
return appendOuterTypeParameters(undefined, declaration);
}
function getLocalTypeParametersOfClassOrInterfaceOrTypeAlias(symbol) {
var result;
for (var _i = 0, _a = symbol.declarations; _i < _a.length; _i++) {
var node = _a[_i];
- if (node.kind === 217 || node.kind === 216 ||
- node.kind === 188 || node.kind === 218) {
+ if (node.kind === 218 || node.kind === 217 ||
+ node.kind === 189 || node.kind === 219) {
var declaration = node;
if (declaration.typeParameters) {
result = appendTypeParameters(result, declaration.typeParameters);
@@ -13595,7 +13846,7 @@ var ts;
type.resolvedBaseTypes = type.resolvedBaseTypes || emptyArray;
for (var _i = 0, _a = type.symbol.declarations; _i < _a.length; _i++) {
var declaration = _a[_i];
- if (declaration.kind === 217 && ts.getInterfaceBaseTypeNodes(declaration)) {
+ if (declaration.kind === 218 && ts.getInterfaceBaseTypeNodes(declaration)) {
for (var _b = 0, _c = ts.getInterfaceBaseTypeNodes(declaration); _b < _c.length; _b++) {
var node = _c[_b];
var baseType = getTypeFromTypeNode(node);
@@ -13624,7 +13875,7 @@ var ts;
function isIndependentInterface(symbol) {
for (var _i = 0, _a = symbol.declarations; _i < _a.length; _i++) {
var declaration = _a[_i];
- if (declaration.kind === 217) {
+ if (declaration.kind === 218) {
if (declaration.flags & 262144) {
return false;
}
@@ -13673,7 +13924,7 @@ var ts;
if (!pushTypeResolution(symbol, 2)) {
return unknownType;
}
- var declaration = ts.getDeclarationOfKind(symbol, 218);
+ var declaration = ts.getDeclarationOfKind(symbol, 219);
var type = getTypeFromTypeNode(declaration.type);
if (popTypeResolution()) {
links.typeParameters = getLocalTypeParametersOfClassOrInterfaceOrTypeAlias(symbol);
@@ -13704,7 +13955,7 @@ var ts;
if (!links.declaredType) {
var type = createType(512);
type.symbol = symbol;
- if (!ts.getDeclarationOfKind(symbol, 137).constraint) {
+ if (!ts.getDeclarationOfKind(symbol, 138).constraint) {
type.constraint = noConstraintType;
}
links.declaredType = type;
@@ -13756,11 +14007,11 @@ var ts;
case 120:
case 131:
case 103:
- case 162:
+ case 163:
return true;
- case 156:
+ case 157:
return isIndependentType(node.elementType);
- case 151:
+ case 152:
return isIndependentTypeReference(node);
}
return false;
@@ -13769,7 +14020,7 @@ var ts;
return node.type && isIndependentType(node.type) || !node.type && !node.initializer;
}
function isIndependentFunctionLikeDeclaration(node) {
- if (node.kind !== 144 && (!node.type || !isIndependentType(node.type))) {
+ if (node.kind !== 145 && (!node.type || !isIndependentType(node.type))) {
return false;
}
for (var _i = 0, _a = node.parameters; _i < _a.length; _i++) {
@@ -13785,12 +14036,12 @@ var ts;
var declaration = symbol.declarations[0];
if (declaration) {
switch (declaration.kind) {
- case 141:
- case 140:
- return isIndependentVariableLikeDeclaration(declaration);
- case 143:
case 142:
+ case 141:
+ return isIndependentVariableLikeDeclaration(declaration);
case 144:
+ case 143:
+ case 145:
return isIndependentFunctionLikeDeclaration(declaration);
}
}
@@ -14303,7 +14554,7 @@ var ts;
function getSignatureFromDeclaration(declaration) {
var links = getNodeLinks(declaration);
if (!links.resolvedSignature) {
- var classType = declaration.kind === 144 ?
+ var classType = declaration.kind === 145 ?
getDeclaredTypeOfClassOrInterface(getMergedSymbol(declaration.parent.symbol))
: undefined;
var typeParameters = classType ? classType.localTypeParameters :
@@ -14319,7 +14570,7 @@ var ts;
paramSymbol = resolvedSymbol;
}
parameters.push(paramSymbol);
- if (param.type && param.type.kind === 162) {
+ if (param.type && param.type.kind === 163) {
hasStringLiterals = true;
}
if (param.initializer || param.questionToken || param.dotDotDotToken) {
@@ -14342,8 +14593,8 @@ var ts;
returnType = getTypeFromTypeNode(declaration.type);
}
else {
- if (declaration.kind === 145 && !ts.hasDynamicName(declaration)) {
- var setter = ts.getDeclarationOfKind(declaration.symbol, 146);
+ if (declaration.kind === 146 && !ts.hasDynamicName(declaration)) {
+ var setter = ts.getDeclarationOfKind(declaration.symbol, 147);
returnType = getAnnotatedAccessorType(setter);
}
if (!returnType && ts.nodeIsMissing(declaration.body)) {
@@ -14361,19 +14612,19 @@ var ts;
for (var i = 0, len = symbol.declarations.length; i < len; i++) {
var node = symbol.declarations[i];
switch (node.kind) {
- case 152:
case 153:
- case 215:
- case 143:
- case 142:
+ case 154:
+ case 216:
case 144:
- case 147:
+ case 143:
+ case 145:
case 148:
case 149:
- case 145:
+ case 150:
case 146:
- case 175:
+ case 147:
case 176:
+ case 177:
if (i > 0 && node.body) {
var previous = symbol.declarations[i - 1];
if (node.parent === previous.parent && node.kind === previous.kind && node.pos === previous.end) {
@@ -14453,7 +14704,7 @@ var ts;
}
function getOrCreateTypeFromSignature(signature) {
if (!signature.isolatedSignatureType) {
- var isConstructor = signature.declaration.kind === 144 || signature.declaration.kind === 148;
+ var isConstructor = signature.declaration.kind === 145 || signature.declaration.kind === 149;
var type = createObjectType(65536 | 262144);
type.members = emptySymbols;
type.properties = emptyArray;
@@ -14490,7 +14741,7 @@ var ts;
: undefined;
}
function getConstraintDeclaration(type) {
- return ts.getDeclarationOfKind(type.symbol, 137).constraint;
+ return ts.getDeclarationOfKind(type.symbol, 138).constraint;
}
function hasConstraintReferenceTo(type, target) {
var checked;
@@ -14523,7 +14774,7 @@ var ts;
return typeParameter.constraint === noConstraintType ? undefined : typeParameter.constraint;
}
function getParentSymbolOfTypeParameter(typeParameter) {
- return getSymbolOfNode(ts.getDeclarationOfKind(typeParameter.symbol, 137).parent);
+ return getSymbolOfNode(ts.getDeclarationOfKind(typeParameter.symbol, 138).parent);
}
function getTypeListId(types) {
if (types) {
@@ -14609,7 +14860,7 @@ var ts;
function getTypeFromTypeReference(node) {
var links = getNodeLinks(node);
if (!links.resolvedType) {
- var typeNameOrExpression = node.kind === 151 ? node.typeName :
+ var typeNameOrExpression = node.kind === 152 ? node.typeName :
ts.isSupportedExpressionWithTypeArguments(node) ? node.expression :
undefined;
var symbol = typeNameOrExpression && resolveEntityName(typeNameOrExpression, 793056) || unknownSymbol;
@@ -14635,9 +14886,9 @@ var ts;
for (var _i = 0, declarations_3 = declarations; _i < declarations_3.length; _i++) {
var declaration = declarations_3[_i];
switch (declaration.kind) {
- case 216:
case 217:
- case 219:
+ case 218:
+ case 220:
return declaration;
}
}
@@ -14853,9 +15104,9 @@ var ts;
function getThisType(node) {
var container = ts.getThisContainer(node, false);
var parent = container && container.parent;
- if (parent && (ts.isClassLike(parent) || parent.kind === 217)) {
+ if (parent && (ts.isClassLike(parent) || parent.kind === 218)) {
if (!(container.flags & 64) &&
- (container.kind !== 144 || ts.isNodeDescendentOf(node, container.body))) {
+ (container.kind !== 145 || ts.isNodeDescendentOf(node, container.body))) {
return getDeclaredTypeOfClassOrInterface(getSymbolOfNode(parent)).thisType;
}
}
@@ -14899,34 +15150,34 @@ var ts;
return esSymbolType;
case 103:
return voidType;
- case 161:
- return getTypeFromThisTypeNode(node);
case 162:
+ return getTypeFromThisTypeNode(node);
+ case 163:
return getTypeFromStringLiteralTypeNode(node);
- case 151:
- return getTypeFromTypeReference(node);
- case 150:
- return getTypeFromPredicateTypeNode(node);
- case 190:
- return getTypeFromTypeReference(node);
- case 154:
- return getTypeFromTypeQueryNode(node);
- case 156:
- return getTypeFromArrayTypeNode(node);
- case 157:
- return getTypeFromTupleTypeNode(node);
- case 158:
- return getTypeFromUnionTypeNode(node);
- case 159:
- return getTypeFromIntersectionTypeNode(node);
- case 160:
- return getTypeFromTypeNode(node.type);
case 152:
- case 153:
+ return getTypeFromTypeReference(node);
+ case 151:
+ return getTypeFromPredicateTypeNode(node);
+ case 191:
+ return getTypeFromTypeReference(node);
case 155:
+ return getTypeFromTypeQueryNode(node);
+ case 157:
+ return getTypeFromArrayTypeNode(node);
+ case 158:
+ return getTypeFromTupleTypeNode(node);
+ case 159:
+ return getTypeFromUnionTypeNode(node);
+ case 160:
+ return getTypeFromIntersectionTypeNode(node);
+ case 161:
+ return getTypeFromTypeNode(node.type);
+ case 153:
+ case 154:
+ case 156:
return getTypeFromTypeLiteralOrFunctionOrConstructorTypeNode(node);
case 69:
- case 135:
+ case 136:
var symbol = getSymbolAtLocation(node);
return symbol && getDeclaredTypeOfSymbol(symbol);
default:
@@ -15106,27 +15357,27 @@ var ts;
return type;
}
function isContextSensitive(node) {
- ts.Debug.assert(node.kind !== 143 || ts.isObjectLiteralMethod(node));
+ ts.Debug.assert(node.kind !== 144 || ts.isObjectLiteralMethod(node));
switch (node.kind) {
- case 175:
case 176:
+ case 177:
return isContextSensitiveFunctionLikeDeclaration(node);
- case 167:
+ case 168:
return ts.forEach(node.properties, isContextSensitive);
- case 166:
+ case 167:
return ts.forEach(node.elements, isContextSensitive);
- case 184:
+ case 185:
return isContextSensitive(node.whenTrue) ||
isContextSensitive(node.whenFalse);
- case 183:
+ case 184:
return node.operatorToken.kind === 52 &&
(isContextSensitive(node.left) || isContextSensitive(node.right));
- case 247:
+ case 248:
return isContextSensitive(node.initializer);
+ case 144:
case 143:
- case 142:
return isContextSensitiveFunctionLikeDeclaration(node);
- case 174:
+ case 175:
return isContextSensitive(node.expression);
}
return false;
@@ -15154,6 +15405,9 @@ var ts;
function compareTypesIdentical(source, target) {
return checkTypeRelatedTo(source, target, identityRelation, undefined) ? -1 : 0;
}
+ function compareTypesAssignable(source, target) {
+ return checkTypeRelatedTo(source, target, assignableRelation, undefined) ? -1 : 0;
+ }
function isTypeSubtypeOf(source, target) {
return checkTypeSubtypeOf(source, target, undefined);
}
@@ -15167,39 +15421,52 @@ var ts;
return checkTypeRelatedTo(source, target, assignableRelation, errorNode, headMessage, containingMessageChain);
}
function isSignatureAssignableTo(source, target, ignoreReturnTypes) {
+ return compareSignaturesRelated(source, target, ignoreReturnTypes, false, undefined, compareTypesAssignable) !== 0;
+ }
+ function compareSignaturesRelated(source, target, ignoreReturnTypes, reportErrors, errorReporter, compareTypes) {
if (source === target) {
- return true;
+ return -1;
}
if (!target.hasRestParameter && source.minArgumentCount > target.parameters.length) {
- return false;
+ return 0;
}
source = getErasedSignature(source);
target = getErasedSignature(target);
+ var result = -1;
var sourceMax = getNumNonRestParameters(source);
var targetMax = getNumNonRestParameters(target);
var checkCount = getNumParametersToCheckForSignatureRelatability(source, sourceMax, target, targetMax);
+ var sourceParams = source.parameters;
+ var targetParams = target.parameters;
for (var i = 0; i < checkCount; i++) {
- var s = i < sourceMax ? getTypeOfSymbol(source.parameters[i]) : getRestTypeOfSignature(source);
- var t = i < targetMax ? getTypeOfSymbol(target.parameters[i]) : getRestTypeOfSignature(target);
- var related = isTypeAssignableTo(t, s) || isTypeAssignableTo(s, t);
+ var s = i < sourceMax ? getTypeOfSymbol(sourceParams[i]) : getRestTypeOfSignature(source);
+ var t = i < targetMax ? getTypeOfSymbol(targetParams[i]) : getRestTypeOfSignature(target);
+ var related = compareTypes(t, s, false) || compareTypes(s, t, reportErrors);
if (!related) {
- return false;
+ if (reportErrors) {
+ errorReporter(ts.Diagnostics.Types_of_parameters_0_and_1_are_incompatible, sourceParams[i < sourceMax ? i : sourceMax].name, targetParams[i < targetMax ? i : targetMax].name);
+ }
+ return 0;
}
+ result &= related;
}
if (!ignoreReturnTypes) {
var targetReturnType = getReturnTypeOfSignature(target);
if (targetReturnType === voidType) {
- return true;
+ return result;
}
var sourceReturnType = getReturnTypeOfSignature(source);
if (targetReturnType.flags & 134217728 && targetReturnType.predicate.kind === 1) {
if (!(sourceReturnType.flags & 134217728)) {
- return false;
+ if (reportErrors) {
+ errorReporter(ts.Diagnostics.Signature_0_must_have_a_type_predicate, signatureToString(source));
+ }
+ return 0;
}
}
- return isTypeAssignableTo(sourceReturnType, targetReturnType);
+ result &= compareTypes(sourceReturnType, targetReturnType, reportErrors);
}
- return true;
+ return result;
}
function isImplementationCompatibleWithOverload(implementation, overload) {
var erasedSource = getErasedSignature(implementation);
@@ -15242,18 +15509,12 @@ var ts;
var expandingFlags;
var depth = 0;
var overflow = false;
- var elaborateErrors = false;
ts.Debug.assert(relation !== identityRelation || !errorNode, "no error reporting in identity checking");
- var result = isRelatedTo(source, target, errorNode !== undefined, headMessage);
+ var result = isRelatedTo(source, target, !!errorNode, headMessage);
if (overflow) {
error(errorNode, ts.Diagnostics.Excessive_stack_depth_comparing_types_0_and_1, typeToString(source), typeToString(target));
}
else if (errorInfo) {
- if (errorInfo.next === undefined) {
- errorInfo = undefined;
- elaborateErrors = true;
- isRelatedTo(source, target, errorNode !== undefined, headMessage);
- }
if (containingMessageChain) {
errorInfo = ts.concatenateDiagnosticMessageChains(containingMessageChain, errorInfo);
}
@@ -15261,6 +15522,7 @@ var ts;
}
return result !== 0;
function reportError(message, arg0, arg1, arg2) {
+ ts.Debug.assert(!!errorNode);
errorInfo = ts.chainDiagnosticMessages(errorInfo, message, arg0, arg1, arg2);
}
function reportRelationError(message, source, target) {
@@ -15381,10 +15643,10 @@ var ts;
return result;
}
}
- var apparentType = getApparentType(source);
- if (apparentType.flags & (80896 | 32768) && target.flags & 80896) {
- var reportStructuralErrors = reportErrors && errorInfo === saveErrorInfo;
- if (result = objectTypeRelatedTo(apparentType, source, target, reportStructuralErrors)) {
+ var apparentSource = getApparentType(source);
+ if (apparentSource.flags & (80896 | 32768) && target.flags & 80896) {
+ var reportStructuralErrors = reportErrors && errorInfo === saveErrorInfo && !(source.flags & 16777726);
+ if (result = objectTypeRelatedTo(apparentSource, source, target, reportStructuralErrors)) {
errorInfo = saveErrorInfo;
return result;
}
@@ -15439,6 +15701,7 @@ var ts;
var prop = _a[_i];
if (!isKnownProperty(target, prop.name)) {
if (reportErrors) {
+ ts.Debug.assert(!!errorNode);
errorNode = prop.valueDeclaration;
reportError(ts.Diagnostics.Object_literal_may_only_specify_known_properties_and_0_does_not_exist_in_type_1, symbolToString(prop), typeToString(target));
}
@@ -15531,7 +15794,7 @@ var ts;
var id = relation !== identityRelation || source.id < target.id ? source.id + "," + target.id : target.id + "," + source.id;
var related = relation[id];
if (related !== undefined) {
- if (elaborateErrors && related === 2) {
+ if (reportErrors && related === 2) {
relation[id] = 3;
}
else {
@@ -15725,7 +15988,7 @@ var ts;
shouldElaborateErrors = false;
}
}
- if (shouldElaborateErrors && !isPrimitiveApparentType(source)) {
+ if (shouldElaborateErrors) {
reportError(ts.Diagnostics.Type_0_provides_no_match_for_the_signature_1, typeToString(source), signatureToString(t, undefined, undefined, kind));
}
return 0;
@@ -15734,65 +15997,7 @@ var ts;
return result;
}
function signatureRelatedTo(source, target, reportErrors) {
- if (source === target) {
- return -1;
- }
- if (!target.hasRestParameter && source.minArgumentCount > target.parameters.length) {
- return 0;
- }
- var sourceMax = source.parameters.length;
- var targetMax = target.parameters.length;
- var checkCount;
- if (source.hasRestParameter && target.hasRestParameter) {
- checkCount = sourceMax > targetMax ? sourceMax : targetMax;
- sourceMax--;
- targetMax--;
- }
- else if (source.hasRestParameter) {
- sourceMax--;
- checkCount = targetMax;
- }
- else if (target.hasRestParameter) {
- targetMax--;
- checkCount = sourceMax;
- }
- else {
- checkCount = sourceMax < targetMax ? sourceMax : targetMax;
- }
- source = getErasedSignature(source);
- target = getErasedSignature(target);
- var result = -1;
- for (var i = 0; i < checkCount; i++) {
- var s = i < sourceMax ? getTypeOfSymbol(source.parameters[i]) : getRestTypeOfSignature(source);
- var t = i < targetMax ? getTypeOfSymbol(target.parameters[i]) : getRestTypeOfSignature(target);
- var saveErrorInfo = errorInfo;
- var related = isRelatedTo(s, t, reportErrors);
- if (!related) {
- related = isRelatedTo(t, s, false);
- if (!related) {
- if (reportErrors) {
- reportError(ts.Diagnostics.Types_of_parameters_0_and_1_are_incompatible, source.parameters[i < sourceMax ? i : sourceMax].name, target.parameters[i < targetMax ? i : targetMax].name);
- }
- return 0;
- }
- errorInfo = saveErrorInfo;
- }
- result &= related;
- }
- var targetReturnType = getReturnTypeOfSignature(target);
- if (targetReturnType === voidType) {
- return result;
- }
- var sourceReturnType = getReturnTypeOfSignature(source);
- if (targetReturnType.flags & 134217728 && targetReturnType.predicate.kind === 1) {
- if (!(sourceReturnType.flags & 134217728)) {
- if (reportErrors) {
- reportError(ts.Diagnostics.Signature_0_must_have_a_type_predicate, signatureToString(source));
- }
- return 0;
- }
- }
- return result & isRelatedTo(sourceReturnType, targetReturnType, reportErrors);
+ return compareSignaturesRelated(source, target, false, reportErrors, reportError, isRelatedTo);
}
function signaturesIdenticalTo(source, target, kind) {
var sourceSignatures = getSignaturesOfType(source, kind);
@@ -16155,22 +16360,22 @@ var ts;
var typeAsString = typeToString(getWidenedType(type));
var diagnostic;
switch (declaration.kind) {
+ case 142:
case 141:
- case 140:
diagnostic = ts.Diagnostics.Member_0_implicitly_has_an_1_type;
break;
- case 138:
+ case 139:
diagnostic = declaration.dotDotDotToken ?
ts.Diagnostics.Rest_parameter_0_implicitly_has_an_any_type :
ts.Diagnostics.Parameter_0_implicitly_has_an_1_type;
break;
- case 215:
+ case 216:
+ case 144:
case 143:
- case 142:
- case 145:
case 146:
- case 175:
+ case 147:
case 176:
+ case 177:
if (!declaration.name) {
error(declaration, ts.Diagnostics.Function_expression_which_lacks_return_type_annotation_implicitly_has_an_0_return_type, typeAsString);
return;
@@ -16459,10 +16664,10 @@ var ts;
function isInTypeQuery(node) {
while (node) {
switch (node.kind) {
- case 154:
+ case 155:
return true;
case 69:
- case 135:
+ case 136:
node = node.parent;
continue;
default:
@@ -16503,55 +16708,55 @@ var ts;
}
function isAssignedIn(node) {
switch (node.kind) {
- case 183:
+ case 184:
return isAssignedInBinaryExpression(node);
- case 213:
- case 165:
- return isAssignedInVariableDeclaration(node);
- case 163:
- case 164:
+ case 214:
case 166:
+ return isAssignedInVariableDeclaration(node);
+ case 164:
+ case 165:
case 167:
case 168:
case 169:
case 170:
case 171:
- case 173:
- case 191:
+ case 172:
case 174:
- case 181:
- case 177:
- case 180:
- case 178:
- case 179:
+ case 192:
+ case 175:
case 182:
- case 186:
- case 184:
+ case 178:
+ case 181:
+ case 179:
+ case 180:
+ case 183:
case 187:
- case 194:
+ case 185:
+ case 188:
case 195:
- case 197:
+ case 196:
case 198:
case 199:
case 200:
case 201:
case 202:
case 203:
- case 206:
+ case 204:
case 207:
case 208:
- case 243:
- case 244:
case 209:
+ case 244:
+ case 245:
case 210:
case 211:
- case 246:
- case 235:
+ case 212:
+ case 247:
case 236:
- case 240:
- case 241:
case 237:
+ case 241:
case 242:
+ case 238:
+ case 243:
return ts.forEachChild(node, isAssignedIn);
}
return false;
@@ -16561,7 +16766,7 @@ var ts;
var type = getTypeOfSymbol(symbol);
if (node && symbol.flags & 3) {
if (isTypeAny(type) || type.flags & (80896 | 16384 | 512)) {
- var declaration = ts.getDeclarationOfKind(symbol, 213);
+ var declaration = ts.getDeclarationOfKind(symbol, 214);
var top_1 = declaration && getDeclarationContainer(declaration);
var originalType = type;
var nodeStack = [];
@@ -16569,13 +16774,13 @@ var ts;
var child = node;
node = node.parent;
switch (node.kind) {
- case 198:
+ case 199:
+ case 185:
case 184:
- case 183:
nodeStack.push({ node: node, child: child });
break;
- case 250:
- case 220:
+ case 251:
+ case 221:
break loop;
}
if (node === top_1) {
@@ -16586,17 +16791,17 @@ var ts;
while (nodes = nodeStack.pop()) {
var node_1 = nodes.node, child = nodes.child;
switch (node_1.kind) {
- case 198:
+ case 199:
if (child !== node_1.expression) {
type = narrowType(type, node_1.expression, child === node_1.thenStatement);
}
break;
- case 184:
+ case 185:
if (child !== node_1.condition) {
type = narrowType(type, node_1.condition, child === node_1.whenTrue);
}
break;
- case 183:
+ case 184:
if (child === node_1.right) {
if (node_1.operatorToken.kind === 51) {
type = narrowType(type, node_1.left, true);
@@ -16620,7 +16825,7 @@ var ts;
}
return type;
function narrowTypeByEquality(type, expr, assumeTrue) {
- if (expr.left.kind !== 178 || expr.right.kind !== 9) {
+ if (expr.left.kind !== 179 || expr.right.kind !== 9) {
return type;
}
var left = expr.left;
@@ -16635,9 +16840,6 @@ var ts;
if (typeInfo && typeInfo.type === undefinedType) {
return type;
}
- if (!!(type.flags & 1) && typeInfo && assumeTrue) {
- return typeInfo.type;
- }
var flags;
if (typeInfo) {
flags = typeInfo.flags;
@@ -16647,6 +16849,9 @@ var ts;
flags = 132 | 258 | 16777216 | 8;
}
if (!(type.flags & 16384)) {
+ if (assumeTrue && typeInfo && isTypeSubtypeOf(typeInfo.type, type)) {
+ return typeInfo.type;
+ }
return filterUnion(type) ? type : emptyUnionType;
}
return getUnionType(ts.filter(type.types, filterUnion), true);
@@ -16761,7 +16966,7 @@ var ts;
return narrowTypeByThisTypePredicate(type, memberType.predicate, expr, assumeTrue);
}
function narrowTypeByThisTypePredicate(type, predicate, expression, assumeTrue) {
- if (expression.kind === 169 || expression.kind === 168) {
+ if (expression.kind === 170 || expression.kind === 169) {
var accessExpression = expression;
var possibleIdentifier = skipParenthesizedNodes(accessExpression.expression);
if (possibleIdentifier.kind === 69 && getSymbolAtTypePredicatePosition(possibleIdentifier) === symbol) {
@@ -16774,18 +16979,18 @@ var ts;
expr = skipParenthesizedNodes(expr);
switch (expr.kind) {
case 69:
- case 168:
- case 135:
+ case 169:
+ case 136:
return getSymbolOfEntityNameOrPropertyAccessExpression(expr);
}
}
function narrowType(type, expr, assumeTrue) {
switch (expr.kind) {
- case 170:
+ case 171:
return narrowTypeByTypePredicate(type, expr, assumeTrue);
- case 174:
+ case 175:
return narrowType(type, expr.expression, assumeTrue);
- case 183:
+ case 184:
var operator = expr.operatorToken.kind;
if (operator === 32 || operator === 33) {
return narrowTypeByEquality(type, expr, assumeTrue);
@@ -16800,20 +17005,20 @@ var ts;
return narrowTypeByInstanceof(type, expr, assumeTrue);
}
break;
- case 181:
+ case 182:
if (expr.operator === 49) {
return narrowType(type, expr.operand, !assumeTrue);
}
break;
+ case 170:
case 169:
- case 168:
return narrowTypeByTypePredicateMember(type, expr, assumeTrue);
}
return type;
}
}
function skipParenthesizedNodes(expression) {
- while (expression.kind === 174) {
+ while (expression.kind === 175) {
expression = expression.expression;
}
return expression;
@@ -16822,7 +17027,7 @@ var ts;
var symbol = getResolvedSymbol(node);
if (symbol === argumentsSymbol) {
var container = ts.getContainingFunction(node);
- if (container.kind === 176) {
+ if (container.kind === 177) {
if (languageVersion < 2) {
error(node, ts.Diagnostics.The_arguments_object_cannot_be_referenced_in_an_arrow_function_in_ES3_and_ES5_Consider_using_a_standard_function_expression);
}
@@ -16853,7 +17058,7 @@ var ts;
function checkBlockScopedBindingCapturedInLoop(node, symbol) {
if (languageVersion >= 2 ||
(symbol.flags & (2 | 32)) === 0 ||
- symbol.valueDeclaration.parent.kind === 246) {
+ symbol.valueDeclaration.parent.kind === 247) {
return;
}
var container;
@@ -16862,11 +17067,11 @@ var ts;
}
else {
container = symbol.valueDeclaration;
- while (container.kind !== 214) {
+ while (container.kind !== 215) {
container = container.parent;
}
container = container.parent;
- if (container.kind === 195) {
+ if (container.kind === 196) {
container = container.parent;
}
}
@@ -16885,7 +17090,7 @@ var ts;
}
function captureLexicalThis(node, container) {
getNodeLinks(node).flags |= 2;
- if (container.kind === 141 || container.kind === 144) {
+ if (container.kind === 142 || container.kind === 145) {
var classNode = container.parent;
getNodeLinks(classNode).flags |= 4;
}
@@ -16896,29 +17101,29 @@ var ts;
function checkThisExpression(node) {
var container = ts.getThisContainer(node, true);
var needToCaptureLexicalThis = false;
- if (container.kind === 176) {
+ if (container.kind === 177) {
container = ts.getThisContainer(container, false);
needToCaptureLexicalThis = (languageVersion < 2);
}
switch (container.kind) {
- case 220:
+ case 221:
error(node, ts.Diagnostics.this_cannot_be_referenced_in_a_module_or_namespace_body);
break;
- case 219:
+ case 220:
error(node, ts.Diagnostics.this_cannot_be_referenced_in_current_location);
break;
- case 144:
+ case 145:
if (isInConstructorArgumentInitializer(node, container)) {
error(node, ts.Diagnostics.this_cannot_be_referenced_in_constructor_arguments);
}
break;
+ case 142:
case 141:
- case 140:
if (container.flags & 64) {
error(node, ts.Diagnostics.this_cannot_be_referenced_in_a_static_property_initializer);
}
break;
- case 136:
+ case 137:
error(node, ts.Diagnostics.this_cannot_be_referenced_in_a_computed_property_name);
break;
}
@@ -16929,7 +17134,7 @@ var ts;
var symbol = getSymbolOfNode(container.parent);
return container.flags & 64 ? getTypeOfSymbol(symbol) : getDeclaredTypeOfSymbol(symbol).thisType;
}
- if (ts.isInJavaScriptFile(node) && container.kind === 175) {
+ if (ts.isInJavaScriptFile(node) && container.kind === 176) {
if (ts.getSpecialPropertyAssignmentKind(container.parent) === 3) {
var className = container.parent
.left
@@ -16945,18 +17150,18 @@ var ts;
}
function isInConstructorArgumentInitializer(node, constructorDecl) {
for (var n = node; n && n !== constructorDecl; n = n.parent) {
- if (n.kind === 138) {
+ if (n.kind === 139) {
return true;
}
}
return false;
}
function checkSuperExpression(node) {
- var isCallExpression = node.parent.kind === 170 && node.parent.expression === node;
+ var isCallExpression = node.parent.kind === 171 && node.parent.expression === node;
var container = ts.getSuperContainer(node, true);
var needToCaptureLexicalThis = false;
if (!isCallExpression) {
- while (container && container.kind === 176) {
+ while (container && container.kind === 177) {
container = ts.getSuperContainer(container, true);
needToCaptureLexicalThis = languageVersion < 2;
}
@@ -16965,16 +17170,16 @@ var ts;
var nodeCheckFlag = 0;
if (!canUseSuperExpression) {
var current = node;
- while (current && current !== container && current.kind !== 136) {
+ while (current && current !== container && current.kind !== 137) {
current = current.parent;
}
- if (current && current.kind === 136) {
+ if (current && current.kind === 137) {
error(node, ts.Diagnostics.super_cannot_be_referenced_in_a_computed_property_name);
}
else if (isCallExpression) {
error(node, ts.Diagnostics.Super_calls_are_not_permitted_outside_constructors_or_in_nested_functions_inside_constructors);
}
- else if (!container || !container.parent || !(ts.isClassLike(container.parent) || container.parent.kind === 167)) {
+ else if (!container || !container.parent || !(ts.isClassLike(container.parent) || container.parent.kind === 168)) {
error(node, ts.Diagnostics.super_can_only_be_referenced_in_members_of_derived_classes_or_object_literal_expressions);
}
else {
@@ -16992,7 +17197,7 @@ var ts;
if (needToCaptureLexicalThis) {
captureLexicalThis(node.parent, container);
}
- if (container.parent.kind === 167) {
+ if (container.parent.kind === 168) {
if (languageVersion < 2) {
error(node, ts.Diagnostics.super_is_only_allowed_in_members_of_object_literal_expressions_when_option_target_is_ES2015_or_higher);
return unknownType;
@@ -17010,7 +17215,7 @@ var ts;
}
return unknownType;
}
- if (container.kind === 144 && isInConstructorArgumentInitializer(node, container)) {
+ if (container.kind === 145 && isInConstructorArgumentInitializer(node, container)) {
error(node, ts.Diagnostics.super_cannot_be_referenced_in_constructor_arguments);
return unknownType;
}
@@ -17022,24 +17227,24 @@ var ts;
return false;
}
if (isCallExpression) {
- return container.kind === 144;
+ return container.kind === 145;
}
else {
- if (ts.isClassLike(container.parent) || container.parent.kind === 167) {
+ if (ts.isClassLike(container.parent) || container.parent.kind === 168) {
if (container.flags & 64) {
- return container.kind === 143 ||
- container.kind === 142 ||
- container.kind === 145 ||
- container.kind === 146;
+ return container.kind === 144 ||
+ container.kind === 143 ||
+ container.kind === 146 ||
+ container.kind === 147;
}
else {
- return container.kind === 143 ||
- container.kind === 142 ||
- container.kind === 145 ||
+ return container.kind === 144 ||
+ container.kind === 143 ||
container.kind === 146 ||
+ container.kind === 147 ||
+ container.kind === 142 ||
container.kind === 141 ||
- container.kind === 140 ||
- container.kind === 144;
+ container.kind === 145;
}
}
}
@@ -17074,7 +17279,7 @@ var ts;
if (declaration.type) {
return getTypeFromTypeNode(declaration.type);
}
- if (declaration.kind === 138) {
+ if (declaration.kind === 139) {
var type = getContextuallyTypedParameterType(declaration);
if (type) {
return type;
@@ -17107,7 +17312,7 @@ var ts;
}
function isInParameterInitializerBeforeContainingFunction(node) {
while (node.parent && !ts.isFunctionLike(node.parent)) {
- if (node.parent.kind === 138 && node.parent.initializer === node) {
+ if (node.parent.kind === 139 && node.parent.initializer === node) {
return true;
}
node = node.parent;
@@ -17116,8 +17321,8 @@ var ts;
}
function getContextualReturnType(functionDecl) {
if (functionDecl.type ||
- functionDecl.kind === 144 ||
- functionDecl.kind === 145 && ts.getSetAccessorTypeAnnotationNode(ts.getDeclarationOfKind(functionDecl.symbol, 146))) {
+ functionDecl.kind === 145 ||
+ functionDecl.kind === 146 && ts.getSetAccessorTypeAnnotationNode(ts.getDeclarationOfKind(functionDecl.symbol, 147))) {
return getReturnTypeOfSignature(getSignatureFromDeclaration(functionDecl));
}
var signature = getContextualSignatureForFunctionLikeDeclaration(functionDecl);
@@ -17136,7 +17341,7 @@ var ts;
return undefined;
}
function getContextualTypeForSubstitutionExpression(template, substitutionExpression) {
- if (template.parent.kind === 172) {
+ if (template.parent.kind === 173) {
return getContextualTypeForArgument(template.parent, substitutionExpression);
}
return undefined;
@@ -17247,13 +17452,13 @@ var ts;
var kind = attribute.kind;
var jsxElement = attribute.parent;
var attrsType = getJsxElementAttributesType(jsxElement);
- if (attribute.kind === 240) {
+ if (attribute.kind === 241) {
if (!attrsType || isTypeAny(attrsType)) {
return undefined;
}
return getTypeOfPropertyOfType(attrsType, attribute.name.text);
}
- else if (attribute.kind === 241) {
+ else if (attribute.kind === 242) {
return attrsType;
}
ts.Debug.fail("Expected JsxAttribute or JsxSpreadAttribute, got ts.SyntaxKind[" + kind + "]");
@@ -17271,40 +17476,40 @@ var ts;
}
var parent = node.parent;
switch (parent.kind) {
- case 213:
- case 138:
+ case 214:
+ case 139:
+ case 142:
case 141:
- case 140:
- case 165:
- return getContextualTypeForInitializerExpression(node);
- case 176:
- case 206:
- return getContextualTypeForReturnExpression(node);
- case 186:
- return getContextualTypeForYieldOperand(parent);
- case 170:
- case 171:
- return getContextualTypeForArgument(parent, node);
- case 173:
- case 191:
- return getTypeFromTypeNode(parent.type);
- case 183:
- return getContextualTypeForBinaryOperand(node);
- case 247:
- return getContextualTypeForObjectLiteralElement(parent);
case 166:
- return getContextualTypeForElementExpression(node);
- case 184:
- return getContextualTypeForConditionalOperand(node);
- case 192:
- ts.Debug.assert(parent.parent.kind === 185);
- return getContextualTypeForSubstitutionExpression(parent.parent, node);
+ return getContextualTypeForInitializerExpression(node);
+ case 177:
+ case 207:
+ return getContextualTypeForReturnExpression(node);
+ case 187:
+ return getContextualTypeForYieldOperand(parent);
+ case 171:
+ case 172:
+ return getContextualTypeForArgument(parent, node);
case 174:
+ case 192:
+ return getTypeFromTypeNode(parent.type);
+ case 184:
+ return getContextualTypeForBinaryOperand(node);
+ case 248:
+ return getContextualTypeForObjectLiteralElement(parent);
+ case 167:
+ return getContextualTypeForElementExpression(node);
+ case 185:
+ return getContextualTypeForConditionalOperand(node);
+ case 193:
+ ts.Debug.assert(parent.parent.kind === 186);
+ return getContextualTypeForSubstitutionExpression(parent.parent, node);
+ case 175:
return getContextualType(parent);
- case 242:
+ case 243:
return getContextualType(parent);
- case 240:
case 241:
+ case 242:
return getContextualTypeForJsxAttribute(parent);
}
return undefined;
@@ -17319,7 +17524,7 @@ var ts;
}
}
function isFunctionExpressionOrArrowFunction(node) {
- return node.kind === 175 || node.kind === 176;
+ return node.kind === 176 || node.kind === 177;
}
function getContextualSignatureForFunctionLikeDeclaration(node) {
return isFunctionExpressionOrArrowFunction(node) || ts.isObjectLiteralMethod(node)
@@ -17327,7 +17532,7 @@ var ts;
: undefined;
}
function getContextualSignature(node) {
- ts.Debug.assert(node.kind !== 143 || ts.isObjectLiteralMethod(node));
+ ts.Debug.assert(node.kind !== 144 || ts.isObjectLiteralMethod(node));
var type = ts.isObjectLiteralMethod(node)
? getContextualTypeForObjectLiteralMethod(node)
: getApparentTypeOfContextualType(node);
@@ -17367,13 +17572,13 @@ var ts;
}
function isAssignmentTarget(node) {
var parent = node.parent;
- if (parent.kind === 183 && parent.operatorToken.kind === 56 && parent.left === node) {
+ if (parent.kind === 184 && parent.operatorToken.kind === 56 && parent.left === node) {
return true;
}
- if (parent.kind === 247) {
+ if (parent.kind === 248) {
return isAssignmentTarget(parent.parent);
}
- if (parent.kind === 166) {
+ if (parent.kind === 167) {
return isAssignmentTarget(parent);
}
return false;
@@ -17383,8 +17588,8 @@ var ts;
return checkIteratedTypeOrElementType(arrayOrIterableType, node.expression, false);
}
function hasDefaultValue(node) {
- return (node.kind === 165 && !!node.initializer) ||
- (node.kind === 183 && node.operatorToken.kind === 56);
+ return (node.kind === 166 && !!node.initializer) ||
+ (node.kind === 184 && node.operatorToken.kind === 56);
}
function checkArrayLiteral(node, contextualMapper) {
var elements = node.elements;
@@ -17393,7 +17598,7 @@ var ts;
var inDestructuringPattern = isAssignmentTarget(node);
for (var _i = 0, elements_1 = elements; _i < elements_1.length; _i++) {
var e = elements_1[_i];
- if (inDestructuringPattern && e.kind === 187) {
+ if (inDestructuringPattern && e.kind === 188) {
var restArrayType = checkExpression(e.expression, contextualMapper);
var restElementType = getIndexTypeOfType(restArrayType, 1) ||
(languageVersion >= 2 ? getElementTypeOfIterable(restArrayType, undefined) : undefined);
@@ -17405,7 +17610,7 @@ var ts;
var type = checkExpression(e, contextualMapper);
elementTypes.push(type);
}
- hasSpreadElement = hasSpreadElement || e.kind === 187;
+ hasSpreadElement = hasSpreadElement || e.kind === 188;
}
if (!hasSpreadElement) {
if (inDestructuringPattern && elementTypes.length) {
@@ -17416,7 +17621,7 @@ var ts;
var contextualType = getApparentTypeOfContextualType(node);
if (contextualType && contextualTypeIsTupleLikeType(contextualType)) {
var pattern = contextualType.pattern;
- if (pattern && (pattern.kind === 164 || pattern.kind === 166)) {
+ if (pattern && (pattern.kind === 165 || pattern.kind === 167)) {
var patternElements = pattern.elements;
for (var i = elementTypes.length; i < patternElements.length; i++) {
var patternElement = patternElements[i];
@@ -17424,7 +17629,7 @@ var ts;
elementTypes.push(contextualType.elementTypes[i]);
}
else {
- if (patternElement.kind !== 189) {
+ if (patternElement.kind !== 190) {
error(patternElement, ts.Diagnostics.Initializer_provides_no_value_for_this_binding_element_and_the_binding_element_has_no_default_value);
}
elementTypes.push(unknownType);
@@ -17439,7 +17644,7 @@ var ts;
return createArrayType(elementTypes.length ? getUnionType(elementTypes) : undefinedType);
}
function isNumericName(name) {
- return name.kind === 136 ? isNumericComputedName(name) : isNumericLiteralName(name.text);
+ return name.kind === 137 ? isNumericComputedName(name) : isNumericLiteralName(name.text);
}
function isNumericComputedName(name) {
return isTypeAnyOrAllConstituentTypesHaveKind(checkComputedPropertyName(name), 132);
@@ -17470,31 +17675,31 @@ var ts;
var propertiesArray = [];
var contextualType = getApparentTypeOfContextualType(node);
var contextualTypeHasPattern = contextualType && contextualType.pattern &&
- (contextualType.pattern.kind === 163 || contextualType.pattern.kind === 167);
+ (contextualType.pattern.kind === 164 || contextualType.pattern.kind === 168);
var typeFlags = 0;
var patternWithComputedProperties = false;
for (var _i = 0, _a = node.properties; _i < _a.length; _i++) {
var memberDecl = _a[_i];
var member = memberDecl.symbol;
- if (memberDecl.kind === 247 ||
- memberDecl.kind === 248 ||
+ if (memberDecl.kind === 248 ||
+ memberDecl.kind === 249 ||
ts.isObjectLiteralMethod(memberDecl)) {
var type = void 0;
- if (memberDecl.kind === 247) {
+ if (memberDecl.kind === 248) {
type = checkPropertyAssignment(memberDecl, contextualMapper);
}
- else if (memberDecl.kind === 143) {
+ else if (memberDecl.kind === 144) {
type = checkObjectLiteralMethod(memberDecl, contextualMapper);
}
else {
- ts.Debug.assert(memberDecl.kind === 248);
+ ts.Debug.assert(memberDecl.kind === 249);
type = checkExpression(memberDecl.name, contextualMapper);
}
typeFlags |= type.flags;
var prop = createSymbol(4 | 67108864 | member.flags, member.name);
if (inDestructuringPattern) {
- var isOptional = (memberDecl.kind === 247 && hasDefaultValue(memberDecl.initializer)) ||
- (memberDecl.kind === 248 && memberDecl.objectAssignmentInitializer);
+ var isOptional = (memberDecl.kind === 248 && hasDefaultValue(memberDecl.initializer)) ||
+ (memberDecl.kind === 249 && memberDecl.objectAssignmentInitializer);
if (isOptional) {
prop.flags |= 536870912;
}
@@ -17521,7 +17726,7 @@ var ts;
member = prop;
}
else {
- ts.Debug.assert(memberDecl.kind === 145 || memberDecl.kind === 146);
+ ts.Debug.assert(memberDecl.kind === 146 || memberDecl.kind === 147);
checkAccessorDeclaration(memberDecl);
}
if (!ts.hasDynamicName(memberDecl)) {
@@ -17579,13 +17784,13 @@ var ts;
for (var _i = 0, _a = node.children; _i < _a.length; _i++) {
var child = _a[_i];
switch (child.kind) {
- case 242:
+ case 243:
checkJsxExpression(child);
break;
- case 235:
+ case 236:
checkJsxElement(child);
break;
- case 236:
+ case 237:
checkJsxSelfClosingElement(child);
break;
}
@@ -17596,7 +17801,7 @@ var ts;
return name.indexOf("-") < 0;
}
function isJsxIntrinsicIdentifier(tagName) {
- if (tagName.kind === 135) {
+ if (tagName.kind === 136) {
return false;
}
else {
@@ -17690,6 +17895,7 @@ var ts;
if (compilerOptions.noImplicitAny) {
error(node, ts.Diagnostics.JSX_element_implicitly_has_type_any_because_no_interface_JSX_0_exists, JsxNames.IntrinsicElements);
}
+ return unknownSymbol;
}
}
function lookupClassTag(node) {
@@ -17760,17 +17966,21 @@ var ts;
var sym = getJsxElementTagSymbol(node);
if (links.jsxFlags & 4) {
var elemInstanceType = getJsxElementInstanceType(node);
- var callSignature = getSingleCallSignature(getTypeOfSymbol(sym));
- var callReturnType = callSignature && getReturnTypeOfSignature(callSignature);
- var paramType = callReturnType && (callSignature.parameters.length === 0 ? emptyObjectType : getTypeOfSymbol(callSignature.parameters[0]));
- if (callReturnType && isTypeAssignableTo(callReturnType, jsxElementType) && (paramType.flags & 80896)) {
- var intrinsicAttributes = getJsxType(JsxNames.IntrinsicAttributes);
- if (intrinsicAttributes !== unknownType) {
- paramType = intersectTypes(intrinsicAttributes, paramType);
- }
- return paramType;
- }
var elemClassType = getJsxGlobalElementClassType();
+ if (!elemClassType || !isTypeAssignableTo(elemInstanceType, elemClassType)) {
+ var elemType = getTypeOfSymbol(sym);
+ var callSignatures = elemType && getSignaturesOfType(elemType, 0);
+ var callSignature = callSignatures && callSignatures.length > 0 && callSignatures[0];
+ var callReturnType = callSignature && getReturnTypeOfSignature(callSignature);
+ var paramType = callReturnType && (callSignature.parameters.length === 0 ? emptyObjectType : getTypeOfSymbol(callSignature.parameters[0]));
+ if (callReturnType && isTypeAssignableTo(callReturnType, jsxElementType)) {
+ var intrinsicAttributes = getJsxType(JsxNames.IntrinsicAttributes);
+ if (intrinsicAttributes !== unknownType) {
+ paramType = intersectTypes(intrinsicAttributes, paramType);
+ }
+ return links.resolvedJsxType = paramType;
+ }
+ }
if (elemClassType) {
checkTypeRelatedTo(elemInstanceType, elemClassType, assignableRelation, node, ts.Diagnostics.JSX_element_type_0_is_not_a_constructor_function_for_JSX_elements);
}
@@ -17868,11 +18078,11 @@ var ts;
var nameTable = {};
var sawSpreadedAny = false;
for (var i = node.attributes.length - 1; i >= 0; i--) {
- if (node.attributes[i].kind === 240) {
+ if (node.attributes[i].kind === 241) {
checkJsxAttribute((node.attributes[i]), targetAttributesType, nameTable);
}
else {
- ts.Debug.assert(node.attributes[i].kind === 241);
+ ts.Debug.assert(node.attributes[i].kind === 242);
var spreadType = checkJsxSpreadAttribute((node.attributes[i]), targetAttributesType, nameTable);
if (isTypeAny(spreadType)) {
sawSpreadedAny = true;
@@ -17898,7 +18108,7 @@ var ts;
}
}
function getDeclarationKindFromSymbol(s) {
- return s.valueDeclaration ? s.valueDeclaration.kind : 141;
+ return s.valueDeclaration ? s.valueDeclaration.kind : 142;
}
function getDeclarationFlagsFromSymbol(s) {
return s.valueDeclaration ? ts.getCombinedNodeFlags(s.valueDeclaration) : s.flags & 134217728 ? 8 | 64 : 0;
@@ -17907,10 +18117,10 @@ var ts;
var flags = getDeclarationFlagsFromSymbol(prop);
var declaringClass = getDeclaredTypeOfSymbol(prop.parent);
if (left.kind === 95) {
- var errorNode = node.kind === 168 ?
+ var errorNode = node.kind === 169 ?
node.name :
node.right;
- if (languageVersion < 2 && getDeclarationKindFromSymbol(prop) !== 143) {
+ if (languageVersion < 2 && getDeclarationKindFromSymbol(prop) !== 144) {
error(errorNode, ts.Diagnostics.Only_public_and_protected_methods_of_the_base_class_are_accessible_via_the_super_keyword);
return false;
}
@@ -17979,7 +18189,7 @@ var ts;
return getTypeOfSymbol(prop);
}
function isValidPropertyAccess(node, propertyName) {
- var left = node.kind === 168
+ var left = node.kind === 169
? node.expression
: node.left;
var type = checkExpression(left);
@@ -17991,10 +18201,47 @@ var ts;
}
return true;
}
+ function getForInVariableSymbol(node) {
+ var initializer = node.initializer;
+ if (initializer.kind === 215) {
+ var variable = initializer.declarations[0];
+ if (variable && !ts.isBindingPattern(variable.name)) {
+ return getSymbolOfNode(variable);
+ }
+ }
+ else if (initializer.kind === 69) {
+ return getResolvedSymbol(initializer);
+ }
+ return undefined;
+ }
+ function hasNumericPropertyNames(type) {
+ return getIndexTypeOfType(type, 1) && !getIndexTypeOfType(type, 0);
+ }
+ function isForInVariableForNumericPropertyNames(expr) {
+ var e = skipParenthesizedNodes(expr);
+ if (e.kind === 69) {
+ var symbol = getResolvedSymbol(e);
+ if (symbol.flags & 3) {
+ var child = expr;
+ var node = expr.parent;
+ while (node) {
+ if (node.kind === 203 &&
+ child === node.statement &&
+ getForInVariableSymbol(node) === symbol &&
+ hasNumericPropertyNames(checkExpression(node.expression))) {
+ return true;
+ }
+ child = node;
+ node = node.parent;
+ }
+ }
+ }
+ return false;
+ }
function checkIndexedAccess(node) {
if (!node.argumentExpression) {
- var sourceFile = getSourceFile(node);
- if (node.parent.kind === 171 && node.parent.expression === node) {
+ var sourceFile = ts.getSourceFileOfNode(node);
+ if (node.parent.kind === 172 && node.parent.expression === node) {
var start = ts.skipTrivia(sourceFile.text, node.expression.end);
var end = node.end;
grammarErrorAtPos(sourceFile, start, end - start, ts.Diagnostics.new_T_cannot_be_used_to_create_an_array_Use_new_Array_T_instead);
@@ -18031,7 +18278,7 @@ var ts;
}
}
if (isTypeAnyOrAllConstituentTypesHaveKind(indexType, 258 | 132 | 16777216)) {
- if (isTypeAnyOrAllConstituentTypesHaveKind(indexType, 132)) {
+ if (isTypeAnyOrAllConstituentTypesHaveKind(indexType, 132) || isForInVariableForNumericPropertyNames(node.argumentExpression)) {
var numberIndexType = getIndexTypeOfType(objectType, 1);
if (numberIndexType) {
return numberIndexType;
@@ -18042,7 +18289,9 @@ var ts;
return stringIndexType;
}
if (compilerOptions.noImplicitAny && !compilerOptions.suppressImplicitAnyIndexErrors && !isTypeAny(objectType)) {
- error(node, ts.Diagnostics.Index_signature_of_object_type_implicitly_has_an_any_type);
+ error(node, getIndexTypeOfType(objectType, 1) ?
+ ts.Diagnostics.Element_implicitly_has_an_any_type_because_index_expression_is_not_of_type_number :
+ ts.Diagnostics.Index_signature_of_object_type_implicitly_has_an_any_type);
}
return anyType;
}
@@ -18053,7 +18302,7 @@ var ts;
if (indexArgumentExpression.kind === 9 || indexArgumentExpression.kind === 8) {
return indexArgumentExpression.text;
}
- if (indexArgumentExpression.kind === 169 || indexArgumentExpression.kind === 168) {
+ if (indexArgumentExpression.kind === 170 || indexArgumentExpression.kind === 169) {
var value = getConstantValue(indexArgumentExpression);
if (value !== undefined) {
return value.toString();
@@ -18096,10 +18345,10 @@ var ts;
return true;
}
function resolveUntypedCall(node) {
- if (node.kind === 172) {
+ if (node.kind === 173) {
checkExpression(node.template);
}
- else if (node.kind !== 139) {
+ else if (node.kind !== 140) {
ts.forEach(node.arguments, function (argument) {
checkExpression(argument);
});
@@ -18150,7 +18399,7 @@ var ts;
function getSpreadArgumentIndex(args) {
for (var i = 0; i < args.length; i++) {
var arg = args[i];
- if (arg && arg.kind === 187) {
+ if (arg && arg.kind === 188) {
return i;
}
}
@@ -18162,11 +18411,11 @@ var ts;
var callIsIncomplete;
var isDecorator;
var spreadArgIndex = -1;
- if (node.kind === 172) {
+ if (node.kind === 173) {
var tagExpression = node;
adjustedArgCount = args.length;
typeArguments = undefined;
- if (tagExpression.template.kind === 185) {
+ if (tagExpression.template.kind === 186) {
var templateExpression = tagExpression.template;
var lastSpan = ts.lastOrUndefined(templateExpression.templateSpans);
ts.Debug.assert(lastSpan !== undefined);
@@ -18178,7 +18427,7 @@ var ts;
callIsIncomplete = !!templateLiteral.isUnterminated;
}
}
- else if (node.kind === 139) {
+ else if (node.kind === 140) {
isDecorator = true;
typeArguments = undefined;
adjustedArgCount = getEffectiveArgumentCount(node, undefined, signature);
@@ -18186,7 +18435,7 @@ var ts;
else {
var callExpression = node;
if (!callExpression.arguments) {
- ts.Debug.assert(callExpression.kind === 171);
+ ts.Debug.assert(callExpression.kind === 172);
return signature.minArgumentCount === 0;
}
adjustedArgCount = callExpression.arguments.hasTrailingComma ? args.length + 1 : args.length;
@@ -18239,7 +18488,7 @@ var ts;
var argCount = getEffectiveArgumentCount(node, args, signature);
for (var i = 0; i < argCount; i++) {
var arg = getEffectiveArgument(node, args, i);
- if (arg === undefined || arg.kind !== 189) {
+ if (arg === undefined || arg.kind !== 190) {
var paramType = getTypeAtPosition(signature, i);
var argType = getEffectiveArgumentType(node, i, arg);
if (argType === undefined) {
@@ -18288,7 +18537,7 @@ var ts;
var argCount = getEffectiveArgumentCount(node, args, signature);
for (var i = 0; i < argCount; i++) {
var arg = getEffectiveArgument(node, args, i);
- if (arg === undefined || arg.kind !== 189) {
+ if (arg === undefined || arg.kind !== 190) {
var paramType = getTypeAtPosition(signature, i);
var argType = getEffectiveArgumentType(node, i, arg);
if (argType === undefined) {
@@ -18307,16 +18556,16 @@ var ts;
}
function getEffectiveCallArguments(node) {
var args;
- if (node.kind === 172) {
+ if (node.kind === 173) {
var template = node.template;
args = [undefined];
- if (template.kind === 185) {
+ if (template.kind === 186) {
ts.forEach(template.templateSpans, function (span) {
args.push(span.expression);
});
}
}
- else if (node.kind === 139) {
+ else if (node.kind === 140) {
return undefined;
}
else {
@@ -18325,21 +18574,21 @@ var ts;
return args;
}
function getEffectiveArgumentCount(node, args, signature) {
- if (node.kind === 139) {
+ if (node.kind === 140) {
switch (node.parent.kind) {
- case 216:
- case 188:
+ case 217:
+ case 189:
return 1;
- case 141:
+ case 142:
return 2;
- case 143:
- case 145:
+ case 144:
case 146:
+ case 147:
if (languageVersion === 0) {
return 2;
}
return signature.parameters.length >= 3 ? 3 : 2;
- case 138:
+ case 139:
return 3;
}
}
@@ -18348,48 +18597,48 @@ var ts;
}
}
function getEffectiveDecoratorFirstArgumentType(node) {
- if (node.kind === 216) {
+ if (node.kind === 217) {
var classSymbol = getSymbolOfNode(node);
return getTypeOfSymbol(classSymbol);
}
- if (node.kind === 138) {
+ if (node.kind === 139) {
node = node.parent;
- if (node.kind === 144) {
+ if (node.kind === 145) {
var classSymbol = getSymbolOfNode(node);
return getTypeOfSymbol(classSymbol);
}
}
- if (node.kind === 141 ||
- node.kind === 143 ||
- node.kind === 145 ||
- node.kind === 146) {
+ if (node.kind === 142 ||
+ node.kind === 144 ||
+ node.kind === 146 ||
+ node.kind === 147) {
return getParentTypeOfClassElement(node);
}
ts.Debug.fail("Unsupported decorator target.");
return unknownType;
}
function getEffectiveDecoratorSecondArgumentType(node) {
- if (node.kind === 216) {
+ if (node.kind === 217) {
ts.Debug.fail("Class decorators should not have a second synthetic argument.");
return unknownType;
}
- if (node.kind === 138) {
+ if (node.kind === 139) {
node = node.parent;
- if (node.kind === 144) {
+ if (node.kind === 145) {
return anyType;
}
}
- if (node.kind === 141 ||
- node.kind === 143 ||
- node.kind === 145 ||
- node.kind === 146) {
+ if (node.kind === 142 ||
+ node.kind === 144 ||
+ node.kind === 146 ||
+ node.kind === 147) {
var element = node;
switch (element.name.kind) {
case 69:
case 8:
case 9:
return getStringLiteralTypeForText(element.name.text);
- case 136:
+ case 137:
var nameType = checkComputedPropertyName(element.name);
if (allConstituentTypesHaveKind(nameType, 16777216)) {
return nameType;
@@ -18406,20 +18655,20 @@ var ts;
return unknownType;
}
function getEffectiveDecoratorThirdArgumentType(node) {
- if (node.kind === 216) {
+ if (node.kind === 217) {
ts.Debug.fail("Class decorators should not have a third synthetic argument.");
return unknownType;
}
- if (node.kind === 138) {
+ if (node.kind === 139) {
return numberType;
}
- if (node.kind === 141) {
+ if (node.kind === 142) {
ts.Debug.fail("Property decorators should not have a third synthetic argument.");
return unknownType;
}
- if (node.kind === 143 ||
- node.kind === 145 ||
- node.kind === 146) {
+ if (node.kind === 144 ||
+ node.kind === 146 ||
+ node.kind === 147) {
var propertyType = getTypeOfNode(node);
return createTypedPropertyDescriptorType(propertyType);
}
@@ -18440,26 +18689,26 @@ var ts;
return unknownType;
}
function getEffectiveArgumentType(node, argIndex, arg) {
- if (node.kind === 139) {
+ if (node.kind === 140) {
return getEffectiveDecoratorArgumentType(node, argIndex);
}
- else if (argIndex === 0 && node.kind === 172) {
+ else if (argIndex === 0 && node.kind === 173) {
return globalTemplateStringsArrayType;
}
return undefined;
}
function getEffectiveArgument(node, args, argIndex) {
- if (node.kind === 139 ||
- (argIndex === 0 && node.kind === 172)) {
+ if (node.kind === 140 ||
+ (argIndex === 0 && node.kind === 173)) {
return undefined;
}
return args[argIndex];
}
function getEffectiveArgumentErrorNode(node, argIndex, arg) {
- if (node.kind === 139) {
+ if (node.kind === 140) {
return node.expression;
}
- else if (argIndex === 0 && node.kind === 172) {
+ else if (argIndex === 0 && node.kind === 173) {
return node.template;
}
else {
@@ -18467,8 +18716,8 @@ var ts;
}
}
function resolveCall(node, signatures, candidatesOutArray, headMessage) {
- var isTaggedTemplate = node.kind === 172;
- var isDecorator = node.kind === 139;
+ var isTaggedTemplate = node.kind === 173;
+ var isDecorator = node.kind === 140;
var typeArguments;
if (!isTaggedTemplate && !isDecorator) {
typeArguments = node.typeArguments;
@@ -18700,16 +18949,16 @@ var ts;
}
function getDiagnosticHeadMessageForDecoratorResolution(node) {
switch (node.parent.kind) {
- case 216:
- case 188:
+ case 217:
+ case 189:
return ts.Diagnostics.Unable_to_resolve_signature_of_class_decorator_when_called_as_an_expression;
- case 138:
+ case 139:
return ts.Diagnostics.Unable_to_resolve_signature_of_parameter_decorator_when_called_as_an_expression;
- case 141:
+ case 142:
return ts.Diagnostics.Unable_to_resolve_signature_of_property_decorator_when_called_as_an_expression;
- case 143:
- case 145:
+ case 144:
case 146:
+ case 147:
return ts.Diagnostics.Unable_to_resolve_signature_of_method_decorator_when_called_as_an_expression;
}
}
@@ -18737,16 +18986,16 @@ var ts;
var links = getNodeLinks(node);
if (!links.resolvedSignature || candidatesOutArray) {
links.resolvedSignature = anySignature;
- if (node.kind === 170) {
+ if (node.kind === 171) {
links.resolvedSignature = resolveCallExpression(node, candidatesOutArray);
}
- else if (node.kind === 171) {
+ else if (node.kind === 172) {
links.resolvedSignature = resolveNewExpression(node, candidatesOutArray);
}
- else if (node.kind === 172) {
+ else if (node.kind === 173) {
links.resolvedSignature = resolveTaggedTemplateExpression(node, candidatesOutArray);
}
- else if (node.kind === 139) {
+ else if (node.kind === 140) {
links.resolvedSignature = resolveDecorator(node, candidatesOutArray);
}
else {
@@ -18768,12 +19017,12 @@ var ts;
if (node.expression.kind === 95) {
return voidType;
}
- if (node.kind === 171) {
+ if (node.kind === 172) {
var declaration = signature.declaration;
if (declaration &&
- declaration.kind !== 144 &&
- declaration.kind !== 148 &&
- declaration.kind !== 153) {
+ declaration.kind !== 145 &&
+ declaration.kind !== 149 &&
+ declaration.kind !== 154) {
var funcSymbol = checkExpression(node.expression).symbol;
if (funcSymbol && funcSymbol.members && (funcSymbol.flags & 16)) {
return getInferredClassType(funcSymbol);
@@ -18827,7 +19076,7 @@ var ts;
if (ts.isBindingPattern(node.name)) {
for (var _i = 0, _a = node.name.elements; _i < _a.length; _i++) {
var element = _a[_i];
- if (element.kind !== 189) {
+ if (element.kind !== 190) {
if (element.name.kind === 69) {
getSymbolLinks(getSymbolOfNode(element)).type = getTypeForBindingElement(element);
}
@@ -18861,7 +19110,7 @@ var ts;
}
var isAsync = ts.isAsyncFunctionLike(func);
var type;
- if (func.body.kind !== 194) {
+ if (func.body.kind !== 195) {
type = checkExpressionCached(func.body, contextualMapper);
if (isAsync) {
type = checkAwaitedType(type, func, ts.Diagnostics.Return_expression_in_async_function_does_not_have_a_valid_callable_then_member);
@@ -18966,7 +19215,7 @@ var ts;
if (returnType === voidType || isTypeAny(returnType)) {
return;
}
- if (ts.nodeIsMissing(func.body) || func.body.kind !== 194 || !(func.flags & 524288)) {
+ if (ts.nodeIsMissing(func.body) || func.body.kind !== 195 || !(func.flags & 524288)) {
return;
}
var hasExplicitReturn = func.flags & 1048576;
@@ -18986,18 +19235,14 @@ var ts;
}
}
function checkFunctionExpressionOrObjectLiteralMethod(node, contextualMapper) {
- ts.Debug.assert(node.kind !== 143 || ts.isObjectLiteralMethod(node));
+ ts.Debug.assert(node.kind !== 144 || ts.isObjectLiteralMethod(node));
var hasGrammarError = checkGrammarFunctionLikeDeclaration(node);
- if (!hasGrammarError && node.kind === 175) {
+ if (!hasGrammarError && node.kind === 176) {
checkGrammarForGenerator(node);
}
if (contextualMapper === identityMapper && isContextSensitive(node)) {
return anyFunctionType;
}
- var isAsync = ts.isAsyncFunctionLike(node);
- if (isAsync) {
- emitAwaiter = true;
- }
var links = getNodeLinks(node);
var type = getTypeOfSymbol(node.symbol);
var contextSensitive = isContextSensitive(node);
@@ -19025,18 +19270,15 @@ var ts;
}
}
}
- if (produceDiagnostics && node.kind !== 143 && node.kind !== 142) {
+ if (produceDiagnostics && node.kind !== 144 && node.kind !== 143) {
checkCollisionWithCapturedSuperVariable(node, node.name);
checkCollisionWithCapturedThisVariable(node, node.name);
}
return type;
}
function checkFunctionExpressionOrObjectLiteralMethodDeferred(node) {
- ts.Debug.assert(node.kind !== 143 || ts.isObjectLiteralMethod(node));
+ ts.Debug.assert(node.kind !== 144 || ts.isObjectLiteralMethod(node));
var isAsync = ts.isAsyncFunctionLike(node);
- if (isAsync) {
- emitAwaiter = true;
- }
var returnOrPromisedType = node.type && (isAsync ? checkAsyncFunctionReturnType(node) : getTypeFromTypeNode(node.type));
if (!node.asteriskToken) {
checkAllCodePathsInNonVoidFunctionReturnOrThrow(node, returnOrPromisedType);
@@ -19045,7 +19287,7 @@ var ts;
if (!node.type) {
getReturnTypeOfSignature(getSignatureFromDeclaration(node));
}
- if (node.body.kind === 194) {
+ if (node.body.kind === 195) {
checkSourceElement(node.body);
}
else {
@@ -19080,13 +19322,13 @@ var ts;
var symbol = findSymbol(n);
return !symbol || symbol === unknownSymbol || symbol === argumentsSymbol || (symbol.flags & 3) !== 0;
}
- case 168: {
+ case 169: {
var symbol = findSymbol(n);
return !symbol || symbol === unknownSymbol || (symbol.flags & ~8) !== 0;
}
- case 169:
+ case 170:
return true;
- case 174:
+ case 175:
return isReferenceOrErrorExpression(n.expression);
default:
return false;
@@ -19095,11 +19337,11 @@ var ts;
function isConstVariableReference(n) {
switch (n.kind) {
case 69:
- case 168: {
+ case 169: {
var symbol = findSymbol(n);
return symbol && (symbol.flags & 3) !== 0 && (getDeclarationFlagsFromSymbol(symbol) & 16384) !== 0;
}
- case 169: {
+ case 170: {
var index = n.argumentExpression;
var symbol = findSymbol(n.expression);
if (symbol && index && index.kind === 9) {
@@ -19109,7 +19351,7 @@ var ts;
}
return false;
}
- case 174:
+ case 175:
return isConstVariableReference(n.expression);
default:
return false;
@@ -19239,9 +19481,9 @@ var ts;
var properties = node.properties;
for (var _i = 0, properties_3 = properties; _i < properties_3.length; _i++) {
var p = properties_3[_i];
- if (p.kind === 247 || p.kind === 248) {
+ if (p.kind === 248 || p.kind === 249) {
var name_13 = p.name;
- if (name_13.kind === 136) {
+ if (name_13.kind === 137) {
checkComputedPropertyName(name_13);
}
if (isComputedNonLiteralName(name_13)) {
@@ -19254,7 +19496,7 @@ var ts;
isNumericLiteralName(text) && getIndexTypeOfType(sourceType, 1) ||
getIndexTypeOfType(sourceType, 0);
if (type) {
- if (p.kind === 248) {
+ if (p.kind === 249) {
checkDestructuringAssignment(p, type);
}
else {
@@ -19276,8 +19518,8 @@ var ts;
var elements = node.elements;
for (var i = 0; i < elements.length; i++) {
var e = elements[i];
- if (e.kind !== 189) {
- if (e.kind !== 187) {
+ if (e.kind !== 190) {
+ if (e.kind !== 188) {
var propName = "" + i;
var type = isTypeAny(sourceType)
? sourceType
@@ -19302,7 +19544,7 @@ var ts;
}
else {
var restExpression = e.expression;
- if (restExpression.kind === 183 && restExpression.operatorToken.kind === 56) {
+ if (restExpression.kind === 184 && restExpression.operatorToken.kind === 56) {
error(restExpression.operatorToken, ts.Diagnostics.A_rest_element_cannot_have_an_initializer);
}
else {
@@ -19316,7 +19558,7 @@ var ts;
}
function checkDestructuringAssignment(exprOrAssignment, sourceType, contextualMapper) {
var target;
- if (exprOrAssignment.kind === 248) {
+ if (exprOrAssignment.kind === 249) {
var prop = exprOrAssignment;
if (prop.objectAssignmentInitializer) {
checkBinaryLikeExpression(prop.name, prop.equalsToken, prop.objectAssignmentInitializer, contextualMapper);
@@ -19326,14 +19568,14 @@ var ts;
else {
target = exprOrAssignment;
}
- if (target.kind === 183 && target.operatorToken.kind === 56) {
+ if (target.kind === 184 && target.operatorToken.kind === 56) {
checkBinaryExpression(target, contextualMapper);
target = target.left;
}
- if (target.kind === 167) {
+ if (target.kind === 168) {
return checkObjectLiteralAssignment(target, sourceType, contextualMapper);
}
- if (target.kind === 166) {
+ if (target.kind === 167) {
return checkArrayLiteralAssignment(target, sourceType, contextualMapper);
}
return checkReferenceAssignment(target, sourceType, contextualMapper);
@@ -19350,7 +19592,7 @@ var ts;
}
function checkBinaryLikeExpression(left, operatorToken, right, contextualMapper, errorNode) {
var operator = operatorToken.kind;
- if (operator === 56 && (left.kind === 167 || left.kind === 166)) {
+ if (operator === 56 && (left.kind === 168 || left.kind === 167)) {
return checkDestructuringAssignment(left, checkExpression(right, contextualMapper), contextualMapper);
}
var leftType = checkExpression(left, contextualMapper);
@@ -19574,14 +19816,14 @@ var ts;
return links.resolvedType;
}
function checkPropertyAssignment(node, contextualMapper) {
- if (node.name.kind === 136) {
+ if (node.name.kind === 137) {
checkComputedPropertyName(node.name);
}
return checkExpression(node.initializer, contextualMapper);
}
function checkObjectLiteralMethod(node, contextualMapper) {
checkGrammarMethod(node);
- if (node.name.kind === 136) {
+ if (node.name.kind === 137) {
checkComputedPropertyName(node.name);
}
var uninstantiatedType = checkFunctionExpressionOrObjectLiteralMethod(node, contextualMapper);
@@ -19604,7 +19846,7 @@ var ts;
}
function checkExpression(node, contextualMapper) {
var type;
- if (node.kind === 135) {
+ if (node.kind === 136) {
type = checkQualifiedName(node);
}
else {
@@ -19612,9 +19854,9 @@ var ts;
type = instantiateTypeWithSingleGenericCallSignature(node, uninstantiatedType, contextualMapper);
}
if (isConstEnumObjectType(type)) {
- var ok = (node.parent.kind === 168 && node.parent.expression === node) ||
- (node.parent.kind === 169 && node.parent.expression === node) ||
- ((node.kind === 69 || node.kind === 135) && isInRightSideOfImportOrExportAssignment(node));
+ var ok = (node.parent.kind === 169 && node.parent.expression === node) ||
+ (node.parent.kind === 170 && node.parent.expression === node) ||
+ ((node.kind === 69 || node.kind === 136) && isInRightSideOfImportOrExportAssignment(node));
if (!ok) {
error(node, ts.Diagnostics.const_enums_can_only_be_used_in_property_or_index_access_expressions_or_the_right_hand_side_of_an_import_declaration_or_export_assignment);
}
@@ -19640,7 +19882,7 @@ var ts;
return booleanType;
case 8:
return checkNumericLiteral(node);
- case 185:
+ case 186:
return checkTemplateExpression(node);
case 9:
return checkStringLiteralExpression(node);
@@ -19648,58 +19890,58 @@ var ts;
return stringType;
case 10:
return globalRegExpType;
- case 166:
- return checkArrayLiteral(node, contextualMapper);
case 167:
- return checkObjectLiteral(node, contextualMapper);
+ return checkArrayLiteral(node, contextualMapper);
case 168:
- return checkPropertyAccessExpression(node);
+ return checkObjectLiteral(node, contextualMapper);
case 169:
- return checkIndexedAccess(node);
+ return checkPropertyAccessExpression(node);
case 170:
+ return checkIndexedAccess(node);
case 171:
- return checkCallExpression(node);
case 172:
- return checkTaggedTemplateExpression(node);
- case 174:
- return checkExpression(node.expression, contextualMapper);
- case 188:
- return checkClassExpression(node);
- case 175:
- case 176:
- return checkFunctionExpressionOrObjectLiteralMethod(node, contextualMapper);
- case 178:
- return checkTypeOfExpression(node);
+ return checkCallExpression(node);
case 173:
- case 191:
- return checkAssertion(node);
- case 177:
- return checkDeleteExpression(node);
- case 179:
- return checkVoidExpression(node);
- case 180:
- return checkAwaitExpression(node);
- case 181:
- return checkPrefixUnaryExpression(node);
- case 182:
- return checkPostfixUnaryExpression(node);
- case 183:
- return checkBinaryExpression(node, contextualMapper);
- case 184:
- return checkConditionalExpression(node, contextualMapper);
- case 187:
- return checkSpreadElementExpression(node, contextualMapper);
+ return checkTaggedTemplateExpression(node);
+ case 175:
+ return checkExpression(node.expression, contextualMapper);
case 189:
+ return checkClassExpression(node);
+ case 176:
+ case 177:
+ return checkFunctionExpressionOrObjectLiteralMethod(node, contextualMapper);
+ case 179:
+ return checkTypeOfExpression(node);
+ case 174:
+ case 192:
+ return checkAssertion(node);
+ case 178:
+ return checkDeleteExpression(node);
+ case 180:
+ return checkVoidExpression(node);
+ case 181:
+ return checkAwaitExpression(node);
+ case 182:
+ return checkPrefixUnaryExpression(node);
+ case 183:
+ return checkPostfixUnaryExpression(node);
+ case 184:
+ return checkBinaryExpression(node, contextualMapper);
+ case 185:
+ return checkConditionalExpression(node, contextualMapper);
+ case 188:
+ return checkSpreadElementExpression(node, contextualMapper);
+ case 190:
return undefinedType;
- case 186:
+ case 187:
return checkYieldExpression(node);
- case 242:
+ case 243:
return checkJsxExpression(node);
- case 235:
- return checkJsxElement(node);
case 236:
- return checkJsxSelfClosingElement(node);
+ return checkJsxElement(node);
case 237:
+ return checkJsxSelfClosingElement(node);
+ case 238:
ts.Debug.fail("Shouldn't ever directly check a JsxOpeningElement");
}
return unknownType;
@@ -19720,7 +19962,7 @@ var ts;
var func = ts.getContainingFunction(node);
if (node.flags & 56) {
func = ts.getContainingFunction(node);
- if (!(func.kind === 144 && ts.nodeIsPresent(func.body))) {
+ if (!(func.kind === 145 && ts.nodeIsPresent(func.body))) {
error(node, ts.Diagnostics.A_parameter_property_is_only_allowed_in_a_constructor_implementation);
}
}
@@ -19735,9 +19977,9 @@ var ts;
if (!node.asteriskToken || !node.body) {
return false;
}
- return node.kind === 143 ||
- node.kind === 215 ||
- node.kind === 175;
+ return node.kind === 144 ||
+ node.kind === 216 ||
+ node.kind === 176;
}
function getTypePredicateParameterIndex(parameterList, parameter) {
if (parameterList) {
@@ -19751,104 +19993,97 @@ var ts;
}
return -1;
}
- function isInLegalParameterTypePredicatePosition(node) {
- switch (node.parent.kind) {
- case 176:
- case 147:
- case 215:
- case 175:
- case 152:
- case 143:
- case 142:
- return node === node.parent.type;
+ function checkTypePredicate(node) {
+ var parent = getTypePredicateParent(node);
+ if (!parent) {
+ return;
+ }
+ var returnType = getReturnTypeOfSignature(getSignatureFromDeclaration(parent));
+ if (!returnType || !(returnType.flags & 134217728)) {
+ return;
+ }
+ var parameterName = node.parameterName;
+ if (parameterName.kind === 162) {
+ getTypeFromThisTypeNode(parameterName);
+ }
+ else {
+ var typePredicate = returnType.predicate;
+ if (typePredicate.parameterIndex >= 0) {
+ if (parent.parameters[typePredicate.parameterIndex].dotDotDotToken) {
+ error(parameterName, ts.Diagnostics.A_type_predicate_cannot_reference_a_rest_parameter);
+ }
+ else {
+ checkTypeAssignableTo(typePredicate.type, getTypeOfNode(parent.parameters[typePredicate.parameterIndex]), node.type);
+ }
+ }
+ else if (parameterName) {
+ var hasReportedError = false;
+ for (var _i = 0, _a = parent.parameters; _i < _a.length; _i++) {
+ var name_14 = _a[_i].name;
+ if ((name_14.kind === 164 ||
+ name_14.kind === 165) &&
+ checkIfTypePredicateVariableIsDeclaredInBindingPattern(name_14, parameterName, typePredicate.parameterName)) {
+ hasReportedError = true;
+ break;
+ }
+ }
+ if (!hasReportedError) {
+ error(node.parameterName, ts.Diagnostics.Cannot_find_parameter_0, typePredicate.parameterName);
+ }
+ }
}
- return false;
}
- function isInLegalThisTypePredicatePosition(node) {
- if (isInLegalParameterTypePredicatePosition(node)) {
- return true;
- }
+ function getTypePredicateParent(node) {
switch (node.parent.kind) {
- case 141:
- case 140:
- case 145:
- return node === node.parent.type;
+ case 177:
+ case 148:
+ case 216:
+ case 176:
+ case 153:
+ case 144:
+ case 143:
+ var parent_6 = node.parent;
+ if (node === parent_6.type) {
+ return parent_6;
+ }
+ }
+ }
+ function checkIfTypePredicateVariableIsDeclaredInBindingPattern(pattern, predicateVariableNode, predicateVariableName) {
+ for (var _i = 0, _a = pattern.elements; _i < _a.length; _i++) {
+ var name_15 = _a[_i].name;
+ if (name_15.kind === 69 &&
+ name_15.text === predicateVariableName) {
+ error(predicateVariableNode, ts.Diagnostics.A_type_predicate_cannot_reference_element_0_in_a_binding_pattern, predicateVariableName);
+ return true;
+ }
+ else if (name_15.kind === 165 ||
+ name_15.kind === 164) {
+ if (checkIfTypePredicateVariableIsDeclaredInBindingPattern(name_15, predicateVariableNode, predicateVariableName)) {
+ return true;
+ }
+ }
}
- return false;
}
function checkSignatureDeclaration(node) {
- if (node.kind === 149) {
+ if (node.kind === 150) {
checkGrammarIndexSignature(node);
}
- else if (node.kind === 152 || node.kind === 215 || node.kind === 153 ||
- node.kind === 147 || node.kind === 144 ||
- node.kind === 148) {
+ else if (node.kind === 153 || node.kind === 216 || node.kind === 154 ||
+ node.kind === 148 || node.kind === 145 ||
+ node.kind === 149) {
checkGrammarFunctionLikeDeclaration(node);
}
checkTypeParameters(node.typeParameters);
ts.forEach(node.parameters, checkParameter);
- if (node.type) {
- if (node.type.kind === 150) {
- var returnType = getReturnTypeOfSignature(getSignatureFromDeclaration(node));
- if (!returnType || !(returnType.flags & 134217728)) {
- return;
- }
- var typePredicate = returnType.predicate;
- var typePredicateNode = node.type;
- checkSourceElement(typePredicateNode);
- if (ts.isIdentifierTypePredicate(typePredicate)) {
- if (typePredicate.parameterIndex >= 0) {
- if (node.parameters[typePredicate.parameterIndex].dotDotDotToken) {
- error(typePredicateNode.parameterName, ts.Diagnostics.A_type_predicate_cannot_reference_a_rest_parameter);
- }
- else {
- checkTypeAssignableTo(typePredicate.type, getTypeOfNode(node.parameters[typePredicate.parameterIndex]), typePredicateNode.type);
- }
- }
- else if (typePredicateNode.parameterName) {
- var hasReportedError = false;
- for (var _i = 0, _a = node.parameters; _i < _a.length; _i++) {
- var param = _a[_i];
- if (hasReportedError) {
- break;
- }
- if (param.name.kind === 163 ||
- param.name.kind === 164) {
- (function checkBindingPattern(pattern) {
- for (var _i = 0, _a = pattern.elements; _i < _a.length; _i++) {
- var element = _a[_i];
- if (element.name.kind === 69 &&
- element.name.text === typePredicate.parameterName) {
- error(typePredicateNode.parameterName, ts.Diagnostics.A_type_predicate_cannot_reference_element_0_in_a_binding_pattern, typePredicate.parameterName);
- hasReportedError = true;
- break;
- }
- else if (element.name.kind === 164 ||
- element.name.kind === 163) {
- checkBindingPattern(element.name);
- }
- }
- })(param.name);
- }
- }
- if (!hasReportedError) {
- error(typePredicateNode.parameterName, ts.Diagnostics.Cannot_find_parameter_0, typePredicate.parameterName);
- }
- }
- }
- }
- else {
- checkSourceElement(node.type);
- }
- }
+ checkSourceElement(node.type);
if (produceDiagnostics) {
checkCollisionWithArgumentsInGeneratedCode(node);
if (compilerOptions.noImplicitAny && !node.type) {
switch (node.kind) {
- case 148:
+ case 149:
error(node, ts.Diagnostics.Construct_signature_which_lacks_return_type_annotation_implicitly_has_an_any_return_type);
break;
- case 147:
+ case 148:
error(node, ts.Diagnostics.Call_signature_which_lacks_return_type_annotation_implicitly_has_an_any_return_type);
break;
}
@@ -19870,7 +20105,7 @@ var ts;
checkSpecializedSignatureDeclaration(node);
}
function checkTypeForDuplicateIndexSignatures(node) {
- if (node.kind === 217) {
+ if (node.kind === 218) {
var nodeSymbol = getSymbolOfNode(node);
if (nodeSymbol.declarations.length > 0 && nodeSymbol.declarations[0] !== node) {
return;
@@ -19933,7 +20168,7 @@ var ts;
return;
}
function isSuperCallExpression(n) {
- return n.kind === 170 && n.expression.kind === 95;
+ return n.kind === 171 && n.expression.kind === 95;
}
function containsSuperCallAsComputedPropertyName(n) {
return n.name && containsSuperCall(n.name);
@@ -19954,12 +20189,12 @@ var ts;
if (n.kind === 97) {
error(n, ts.Diagnostics.this_cannot_be_referenced_in_current_location);
}
- else if (n.kind !== 175 && n.kind !== 215) {
+ else if (n.kind !== 176 && n.kind !== 216) {
ts.forEachChild(n, markThisReferencesAsErrors);
}
}
function isInstancePropertyWithInitializer(n) {
- return n.kind === 141 &&
+ return n.kind === 142 &&
!(n.flags & 64) &&
!!n.initializer;
}
@@ -19979,7 +20214,7 @@ var ts;
var superCallStatement;
for (var _i = 0, statements_2 = statements; _i < statements_2.length; _i++) {
var statement = statements_2[_i];
- if (statement.kind === 197 && isSuperCallExpression(statement.expression)) {
+ if (statement.kind === 198 && isSuperCallExpression(statement.expression)) {
superCallStatement = statement;
break;
}
@@ -20005,7 +20240,7 @@ var ts;
checkGrammarFunctionLikeDeclaration(node) || checkGrammarAccessor(node) || checkGrammarComputedPropertyName(node.name);
checkDecorators(node);
checkSignatureDeclaration(node);
- if (node.kind === 145) {
+ if (node.kind === 146) {
if (!ts.isInAmbientContext(node) && ts.nodeIsPresent(node.body) && (node.flags & 524288)) {
if (node.flags & 1048576) {
if (compilerOptions.noImplicitReturns) {
@@ -20017,11 +20252,11 @@ var ts;
}
}
}
- if (node.name.kind === 136) {
+ if (node.name.kind === 137) {
checkComputedPropertyName(node.name);
}
if (!ts.hasDynamicName(node)) {
- var otherKind = node.kind === 145 ? 146 : 145;
+ var otherKind = node.kind === 146 ? 147 : 146;
var otherAccessor = ts.getDeclarationOfKind(node.symbol, otherKind);
if (otherAccessor) {
if (((node.flags & 56) !== (otherAccessor.flags & 56))) {
@@ -20038,7 +20273,7 @@ var ts;
}
getTypeOfAccessors(getSymbolOfNode(node));
}
- if (node.parent.kind !== 167) {
+ if (node.parent.kind !== 168) {
checkSourceElement(node.body);
}
else {
@@ -20120,9 +20355,9 @@ var ts;
return;
}
var signaturesToCheck;
- if (!signatureDeclarationNode.name && signatureDeclarationNode.parent && signatureDeclarationNode.parent.kind === 217) {
- ts.Debug.assert(signatureDeclarationNode.kind === 147 || signatureDeclarationNode.kind === 148);
- var signatureKind = signatureDeclarationNode.kind === 147 ? 0 : 1;
+ if (!signatureDeclarationNode.name && signatureDeclarationNode.parent && signatureDeclarationNode.parent.kind === 218) {
+ ts.Debug.assert(signatureDeclarationNode.kind === 148 || signatureDeclarationNode.kind === 149);
+ var signatureKind = signatureDeclarationNode.kind === 148 ? 0 : 1;
var containingSymbol = getSymbolOfNode(signatureDeclarationNode.parent);
var containingType = getDeclaredTypeOfSymbol(containingSymbol);
signaturesToCheck = getSignaturesOfType(containingType, signatureKind);
@@ -20140,9 +20375,9 @@ var ts;
}
function getEffectiveDeclarationFlags(n, flagsToCheck) {
var flags = ts.getCombinedNodeFlags(n);
- if (n.parent.kind !== 217 &&
- n.parent.kind !== 216 &&
- n.parent.kind !== 188 &&
+ if (n.parent.kind !== 218 &&
+ n.parent.kind !== 217 &&
+ n.parent.kind !== 189 &&
ts.isInAmbientContext(n)) {
if (!(flags & 4)) {
flags |= 2;
@@ -20219,7 +20454,7 @@ var ts;
if (subsequentNode.kind === node.kind) {
var errorNode_1 = subsequentNode.name || subsequentNode;
if (node.name && subsequentNode.name && node.name.text === subsequentNode.name.text) {
- var reportError = (node.kind === 143 || node.kind === 142) &&
+ var reportError = (node.kind === 144 || node.kind === 143) &&
(node.flags & 64) !== (subsequentNode.flags & 64);
if (reportError) {
var diagnostic = node.flags & 64 ? ts.Diagnostics.Function_overload_must_be_static : ts.Diagnostics.Function_overload_must_not_be_static;
@@ -20253,11 +20488,11 @@ var ts;
var current = declarations_4[_i];
var node = current;
var inAmbientContext = ts.isInAmbientContext(node);
- var inAmbientContextOrInterface = node.parent.kind === 217 || node.parent.kind === 155 || inAmbientContext;
+ var inAmbientContextOrInterface = node.parent.kind === 218 || node.parent.kind === 156 || inAmbientContext;
if (inAmbientContextOrInterface) {
previousDeclaration = undefined;
}
- if (node.kind === 215 || node.kind === 143 || node.kind === 142 || node.kind === 144) {
+ if (node.kind === 216 || node.kind === 144 || node.kind === 143 || node.kind === 145) {
var currentNodeFlags = getEffectiveDeclarationFlags(node, flagsToCheck);
someNodeFlags |= currentNodeFlags;
allNodeFlags &= currentNodeFlags;
@@ -20370,16 +20605,16 @@ var ts;
}
function getDeclarationSpaces(d) {
switch (d.kind) {
- case 217:
+ case 218:
return 2097152;
- case 220:
- return d.name.kind === 9 || ts.getModuleInstanceState(d) !== 0
+ case 221:
+ return ts.isAmbientModule(d) || ts.getModuleInstanceState(d) !== 0
? 4194304 | 1048576
: 4194304;
- case 216:
- case 219:
+ case 217:
+ case 220:
return 2097152 | 1048576;
- case 223:
+ case 224:
var result = 0;
var target = resolveAlias(getSymbolOfNode(d));
ts.forEach(target.declarations, function (d) { result |= getDeclarationSpaces(d); });
@@ -20510,22 +20745,22 @@ var ts;
var headMessage = getDiagnosticHeadMessageForDecoratorResolution(node);
var errorInfo;
switch (node.parent.kind) {
- case 216:
+ case 217:
var classSymbol = getSymbolOfNode(node.parent);
var classConstructorType = getTypeOfSymbol(classSymbol);
expectedReturnType = getUnionType([classConstructorType, voidType]);
break;
- case 138:
+ case 139:
expectedReturnType = voidType;
errorInfo = ts.chainDiagnosticMessages(errorInfo, ts.Diagnostics.The_return_type_of_a_parameter_decorator_function_must_be_either_void_or_any);
break;
- case 141:
+ case 142:
expectedReturnType = voidType;
errorInfo = ts.chainDiagnosticMessages(errorInfo, ts.Diagnostics.The_return_type_of_a_property_decorator_function_must_be_either_void_or_any);
break;
- case 143:
- case 145:
+ case 144:
case 146:
+ case 147:
var methodType = getTypeOfNode(node.parent);
var descriptorType = createTypedPropertyDescriptorType(methodType);
expectedReturnType = getUnionType([descriptorType, voidType]);
@@ -20534,9 +20769,9 @@ var ts;
checkTypeAssignableTo(returnType, expectedReturnType, node, headMessage, errorInfo);
}
function checkTypeNodeAsExpression(node) {
- if (node && node.kind === 151) {
+ if (node && node.kind === 152) {
var root = getFirstIdentifier(node.typeName);
- var meaning = root.parent.kind === 151 ? 793056 : 1536;
+ var meaning = root.parent.kind === 152 ? 793056 : 1536;
var rootSymbol = resolveName(root, root.text, meaning | 8388608, undefined, undefined);
if (rootSymbol && rootSymbol.flags & 8388608) {
var aliasTarget = resolveAlias(rootSymbol);
@@ -20570,28 +20805,24 @@ var ts;
}
if (compilerOptions.emitDecoratorMetadata) {
switch (node.kind) {
- case 216:
+ case 217:
var constructor = ts.getFirstConstructorWithBody(node);
if (constructor) {
checkParameterTypeAnnotationsAsExpressions(constructor);
}
break;
- case 143:
- case 145:
+ case 144:
case 146:
+ case 147:
checkParameterTypeAnnotationsAsExpressions(node);
checkReturnTypeAnnotationAsExpression(node);
break;
- case 141:
- case 138:
+ case 142:
+ case 139:
checkTypeAnnotationAsExpression(node);
break;
}
}
- emitDecorate = true;
- if (node.kind === 138) {
- emitParam = true;
- }
ts.forEach(node.decorators, checkDecorator);
}
function checkFunctionDeclaration(node) {
@@ -20606,16 +20837,13 @@ var ts;
checkDecorators(node);
checkSignatureDeclaration(node);
var isAsync = ts.isAsyncFunctionLike(node);
- if (isAsync) {
- emitAwaiter = true;
- }
- if (node.name && node.name.kind === 136) {
+ if (node.name && node.name.kind === 137) {
checkComputedPropertyName(node.name);
}
if (!ts.hasDynamicName(node)) {
var symbol = getSymbolOfNode(node);
var localSymbol = node.localSymbol || symbol;
- var firstDeclaration = ts.forEach(localSymbol.declarations, function (declaration) { return declaration.kind === node.kind && !ts.isSourceFileJavaScript(getSourceFile(declaration)) ?
+ var firstDeclaration = ts.forEach(localSymbol.declarations, function (declaration) { return declaration.kind === node.kind && !ts.isSourceFileJavaScript(ts.getSourceFileOfNode(declaration)) ?
declaration : undefined; });
if (node === firstDeclaration) {
checkFunctionOrConstructorSymbol(localSymbol);
@@ -20641,7 +20869,7 @@ var ts;
}
}
function checkBlock(node) {
- if (node.kind === 194) {
+ if (node.kind === 195) {
checkGrammarStatementInAmbientContext(node);
}
ts.forEach(node.statements, checkSourceElement);
@@ -20660,19 +20888,19 @@ var ts;
if (!(identifier && identifier.text === name)) {
return false;
}
- if (node.kind === 141 ||
- node.kind === 140 ||
+ if (node.kind === 142 ||
+ node.kind === 141 ||
+ node.kind === 144 ||
node.kind === 143 ||
- node.kind === 142 ||
- node.kind === 145 ||
- node.kind === 146) {
+ node.kind === 146 ||
+ node.kind === 147) {
return false;
}
if (ts.isInAmbientContext(node)) {
return false;
}
var root = ts.getRootDeclaration(node);
- if (root.kind === 138 && ts.nodeIsMissing(root.parent.body)) {
+ if (root.kind === 139 && ts.nodeIsMissing(root.parent.body)) {
return false;
}
return true;
@@ -20720,11 +20948,11 @@ var ts;
if (!needCollisionCheckForIdentifier(node, name, "require") && !needCollisionCheckForIdentifier(node, name, "exports")) {
return;
}
- if (node.kind === 220 && ts.getModuleInstanceState(node) !== 1) {
+ if (node.kind === 221 && ts.getModuleInstanceState(node) !== 1) {
return;
}
var parent = getDeclarationContainer(node);
- if (parent.kind === 250 && ts.isExternalOrCommonJsModule(parent)) {
+ if (parent.kind === 251 && ts.isExternalOrCommonJsModule(parent)) {
error(name, ts.Diagnostics.Duplicate_identifier_0_Compiler_reserves_name_1_in_top_level_scope_of_a_module, ts.declarationNameToString(name), ts.declarationNameToString(name));
}
}
@@ -20732,7 +20960,7 @@ var ts;
if ((ts.getCombinedNodeFlags(node) & 24576) !== 0 || ts.isParameterDeclaration(node)) {
return;
}
- if (node.kind === 213 && !node.initializer) {
+ if (node.kind === 214 && !node.initializer) {
return;
}
var symbol = getSymbolOfNode(node);
@@ -20742,25 +20970,25 @@ var ts;
localDeclarationSymbol !== symbol &&
localDeclarationSymbol.flags & 2) {
if (getDeclarationFlagsFromSymbol(localDeclarationSymbol) & 24576) {
- var varDeclList = ts.getAncestor(localDeclarationSymbol.valueDeclaration, 214);
- var container = varDeclList.parent.kind === 195 && varDeclList.parent.parent
+ var varDeclList = ts.getAncestor(localDeclarationSymbol.valueDeclaration, 215);
+ var container = varDeclList.parent.kind === 196 && varDeclList.parent.parent
? varDeclList.parent.parent
: undefined;
var namesShareScope = container &&
- (container.kind === 194 && ts.isFunctionLike(container.parent) ||
+ (container.kind === 195 && ts.isFunctionLike(container.parent) ||
+ container.kind === 222 ||
container.kind === 221 ||
- container.kind === 220 ||
- container.kind === 250);
+ container.kind === 251);
if (!namesShareScope) {
- var name_14 = symbolToString(localDeclarationSymbol);
- error(node, ts.Diagnostics.Cannot_initialize_outer_scoped_variable_0_in_the_same_scope_as_block_scoped_declaration_1, name_14, name_14);
+ var name_16 = symbolToString(localDeclarationSymbol);
+ error(node, ts.Diagnostics.Cannot_initialize_outer_scoped_variable_0_in_the_same_scope_as_block_scoped_declaration_1, name_16, name_16);
}
}
}
}
}
function checkParameterInitializer(node) {
- if (ts.getRootDeclaration(node).kind !== 138) {
+ if (ts.getRootDeclaration(node).kind !== 139) {
return;
}
var func = ts.getContainingFunction(node);
@@ -20769,7 +20997,7 @@ var ts;
if (n.kind === 69) {
var referencedSymbol = getNodeLinks(n).resolvedSymbol;
if (referencedSymbol && referencedSymbol !== unknownSymbol && getSymbol(func.locals, referencedSymbol.name, 107455) === referencedSymbol) {
- if (referencedSymbol.valueDeclaration.kind === 138) {
+ if (referencedSymbol.valueDeclaration.kind === 139) {
if (referencedSymbol.valueDeclaration === node) {
error(n, ts.Diagnostics.Parameter_0_cannot_be_referenced_in_its_initializer, ts.declarationNameToString(node.name));
return;
@@ -20789,26 +21017,26 @@ var ts;
function checkVariableLikeDeclaration(node) {
checkDecorators(node);
checkSourceElement(node.type);
- if (node.name.kind === 136) {
+ if (node.name.kind === 137) {
checkComputedPropertyName(node.name);
if (node.initializer) {
checkExpressionCached(node.initializer);
}
}
- if (node.kind === 165) {
- if (node.propertyName && node.propertyName.kind === 136) {
+ if (node.kind === 166) {
+ if (node.propertyName && node.propertyName.kind === 137) {
checkComputedPropertyName(node.propertyName);
}
}
if (ts.isBindingPattern(node.name)) {
ts.forEach(node.name.elements, checkSourceElement);
}
- if (node.initializer && ts.getRootDeclaration(node).kind === 138 && ts.nodeIsMissing(ts.getContainingFunction(node).body)) {
+ if (node.initializer && ts.getRootDeclaration(node).kind === 139 && ts.nodeIsMissing(ts.getContainingFunction(node).body)) {
error(node, ts.Diagnostics.A_parameter_initializer_is_only_allowed_in_a_function_or_constructor_implementation);
return;
}
if (ts.isBindingPattern(node.name)) {
- if (node.initializer) {
+ if (node.initializer && node.parent.parent.kind !== 203) {
checkTypeAssignableTo(checkExpressionCached(node.initializer), getWidenedTypeForVariableLikeDeclaration(node), node, undefined);
checkParameterInitializer(node);
}
@@ -20817,7 +21045,7 @@ var ts;
var symbol = getSymbolOfNode(node);
var type = getTypeOfVariableOrParameterOrProperty(symbol);
if (node === symbol.valueDeclaration) {
- if (node.initializer) {
+ if (node.initializer && node.parent.parent.kind !== 203) {
checkTypeAssignableTo(checkExpressionCached(node.initializer), type, node, undefined);
checkParameterInitializer(node);
}
@@ -20831,9 +21059,9 @@ var ts;
checkTypeAssignableTo(checkExpressionCached(node.initializer), declarationType, node, undefined);
}
}
- if (node.kind !== 141 && node.kind !== 140) {
+ if (node.kind !== 142 && node.kind !== 141) {
checkExportsOnMergedDeclarations(node);
- if (node.kind === 213 || node.kind === 165) {
+ if (node.kind === 214 || node.kind === 166) {
checkVarDeclaredNamesNotShadowed(node);
}
checkCollisionWithCapturedSuperVariable(node, node.name);
@@ -20854,7 +21082,7 @@ var ts;
ts.forEach(node.declarationList.declarations, checkSourceElement);
}
function checkGrammarDisallowedModifiersOnObjectLiteralExpressionMethod(node) {
- if (node.modifiers && node.parent.kind === 167) {
+ if (node.modifiers && node.parent.kind === 168) {
if (ts.isAsyncFunctionLike(node)) {
if (node.modifiers.length > 1) {
return grammarErrorOnFirstToken(node, ts.Diagnostics.Modifiers_cannot_appear_here);
@@ -20873,7 +21101,7 @@ var ts;
checkGrammarStatementInAmbientContext(node);
checkExpression(node.expression);
checkSourceElement(node.thenStatement);
- if (node.thenStatement.kind === 196) {
+ if (node.thenStatement.kind === 197) {
error(node.thenStatement, ts.Diagnostics.The_body_of_an_if_statement_cannot_be_the_empty_statement);
}
checkSourceElement(node.elseStatement);
@@ -20890,12 +21118,12 @@ var ts;
}
function checkForStatement(node) {
if (!checkGrammarStatementInAmbientContext(node)) {
- if (node.initializer && node.initializer.kind === 214) {
+ if (node.initializer && node.initializer.kind === 215) {
checkGrammarVariableDeclarationList(node.initializer);
}
}
if (node.initializer) {
- if (node.initializer.kind === 214) {
+ if (node.initializer.kind === 215) {
ts.forEach(node.initializer.declarations, checkVariableDeclaration);
}
else {
@@ -20910,13 +21138,13 @@ var ts;
}
function checkForOfStatement(node) {
checkGrammarForInOrForOfStatement(node);
- if (node.initializer.kind === 214) {
+ if (node.initializer.kind === 215) {
checkForInOrForOfVariableDeclaration(node);
}
else {
var varExpr = node.initializer;
var iteratedType = checkRightHandSideOfForOf(node.expression);
- if (varExpr.kind === 166 || varExpr.kind === 167) {
+ if (varExpr.kind === 167 || varExpr.kind === 168) {
checkDestructuringAssignment(varExpr, iteratedType || unknownType);
}
else {
@@ -20931,7 +21159,7 @@ var ts;
}
function checkForInStatement(node) {
checkGrammarForInOrForOfStatement(node);
- if (node.initializer.kind === 214) {
+ if (node.initializer.kind === 215) {
var variable = node.initializer.declarations[0];
if (variable && ts.isBindingPattern(variable.name)) {
error(variable.name, ts.Diagnostics.The_left_hand_side_of_a_for_in_statement_cannot_be_a_destructuring_pattern);
@@ -20941,7 +21169,7 @@ var ts;
else {
var varExpr = node.initializer;
var leftType = checkExpression(varExpr);
- if (varExpr.kind === 166 || varExpr.kind === 167) {
+ if (varExpr.kind === 167 || varExpr.kind === 168) {
error(varExpr, ts.Diagnostics.The_left_hand_side_of_a_for_in_statement_cannot_be_a_destructuring_pattern);
}
else if (!isTypeAnyOrAllConstituentTypesHaveKind(leftType, 258)) {
@@ -21109,7 +21337,7 @@ var ts;
checkGrammarStatementInAmbientContext(node) || checkGrammarBreakOrContinueStatement(node);
}
function isGetAccessorWithAnnotatatedSetAccessor(node) {
- return !!(node.kind === 145 && ts.getSetAccessorTypeAnnotationNode(ts.getDeclarationOfKind(node.symbol, 146)));
+ return !!(node.kind === 146 && ts.getSetAccessorTypeAnnotationNode(ts.getDeclarationOfKind(node.symbol, 147)));
}
function checkReturnStatement(node) {
if (!checkGrammarStatementInAmbientContext(node)) {
@@ -21127,10 +21355,10 @@ var ts;
if (func.asteriskToken) {
return;
}
- if (func.kind === 146) {
+ if (func.kind === 147) {
error(node.expression, ts.Diagnostics.Setters_cannot_return_a_value);
}
- else if (func.kind === 144) {
+ else if (func.kind === 145) {
if (!checkTypeAssignableTo(exprType, returnType, node.expression)) {
error(node.expression, ts.Diagnostics.Return_type_of_constructor_signature_must_be_assignable_to_the_instance_type_of_the_class);
}
@@ -21166,7 +21394,7 @@ var ts;
var expressionType = checkExpression(node.expression);
var expressionTypeIsStringLike = someConstituentTypeHasKind(expressionType, 258);
ts.forEach(node.caseBlock.clauses, function (clause) {
- if (clause.kind === 244 && !hasDuplicateDefaultClause) {
+ if (clause.kind === 245 && !hasDuplicateDefaultClause) {
if (firstDefaultClause === undefined) {
firstDefaultClause = clause;
}
@@ -21178,7 +21406,7 @@ var ts;
hasDuplicateDefaultClause = true;
}
}
- if (produceDiagnostics && clause.kind === 243) {
+ if (produceDiagnostics && clause.kind === 244) {
var caseClause = clause;
var caseType = checkExpression(caseClause.expression);
var expressionTypeIsAssignableToCaseType = (expressionTypeIsStringLike && someConstituentTypeHasKind(caseType, 258)) ||
@@ -21197,7 +21425,7 @@ var ts;
if (ts.isFunctionLike(current)) {
break;
}
- if (current.kind === 209 && current.label.text === node.label.text) {
+ if (current.kind === 210 && current.label.text === node.label.text) {
var sourceFile = ts.getSourceFileOfNode(node);
grammarErrorOnNode(node.label, ts.Diagnostics.Duplicate_label_0, ts.getTextOfNodeFromSourceText(sourceFile.text, node.label));
break;
@@ -21291,7 +21519,7 @@ var ts;
return;
}
var errorNode;
- if (prop.valueDeclaration.name.kind === 136 || prop.parent === containingType.symbol) {
+ if (prop.valueDeclaration.name.kind === 137 || prop.parent === containingType.symbol) {
errorNode = prop.valueDeclaration;
}
else if (indexDeclaration) {
@@ -21366,7 +21594,6 @@ var ts;
var staticType = getTypeOfSymbol(symbol);
var baseTypeNode = ts.getClassExtendsHeritageClauseElement(node);
if (baseTypeNode) {
- emitExtends = emitExtends || !ts.isInAmbientContext(node);
var baseTypes = getBaseTypes(type);
if (baseTypes.length && produceDiagnostics) {
var baseType = baseTypes[0];
@@ -21440,7 +21667,7 @@ var ts;
if (derived === base) {
var derivedClassDecl = getClassLikeDeclarationOfSymbol(type.symbol);
if (baseDeclarationFlags & 128 && (!derivedClassDecl || !(derivedClassDecl.flags & 128))) {
- if (derivedClassDecl.kind === 188) {
+ if (derivedClassDecl.kind === 189) {
error(derivedClassDecl, ts.Diagnostics.Non_abstract_class_expression_does_not_implement_inherited_abstract_member_0_from_class_1, symbolToString(baseProperty), typeToString(baseType));
}
else {
@@ -21484,7 +21711,7 @@ var ts;
}
}
function isAccessor(kind) {
- return kind === 145 || kind === 146;
+ return kind === 146 || kind === 147;
}
function areTypeParametersIdentical(list1, list2) {
if (!list1 && !list2) {
@@ -21550,7 +21777,7 @@ var ts;
checkTypeNameIsReserved(node.name, ts.Diagnostics.Interface_name_cannot_be_0);
checkExportsOnMergedDeclarations(node);
var symbol = getSymbolOfNode(node);
- var firstInterfaceDecl = ts.getDeclarationOfKind(symbol, 217);
+ var firstInterfaceDecl = ts.getDeclarationOfKind(symbol, 218);
if (symbol.declarations.length > 1) {
if (node !== firstInterfaceDecl && !areTypeParametersIdentical(firstInterfaceDecl.typeParameters, node.typeParameters)) {
error(node.name, ts.Diagnostics.All_declarations_of_an_interface_must_have_identical_type_parameters);
@@ -21648,7 +21875,7 @@ var ts;
return value;
function evalConstant(e) {
switch (e.kind) {
- case 181:
+ case 182:
var value_1 = evalConstant(e.operand);
if (value_1 === undefined) {
return undefined;
@@ -21659,7 +21886,7 @@ var ts;
case 50: return ~value_1;
}
return undefined;
- case 183:
+ case 184:
var left = evalConstant(e.left);
if (left === undefined) {
return undefined;
@@ -21684,11 +21911,11 @@ var ts;
return undefined;
case 8:
return +e.text;
- case 174:
+ case 175:
return evalConstant(e.expression);
case 69:
+ case 170:
case 169:
- case 168:
var member = initializer.parent;
var currentType = getTypeOfSymbol(getSymbolOfNode(member.parent));
var enumType_1;
@@ -21699,7 +21926,7 @@ var ts;
}
else {
var expression;
- if (e.kind === 169) {
+ if (e.kind === 170) {
if (e.argumentExpression === undefined ||
e.argumentExpression.kind !== 9) {
return undefined;
@@ -21716,7 +21943,7 @@ var ts;
if (current.kind === 69) {
break;
}
- else if (current.kind === 168) {
+ else if (current.kind === 169) {
current = current.expression;
}
else {
@@ -21775,7 +22002,7 @@ var ts;
}
var seenEnumMissingInitialInitializer = false;
ts.forEach(enumSymbol.declarations, function (declaration) {
- if (declaration.kind !== 219) {
+ if (declaration.kind !== 220) {
return false;
}
var enumDeclaration = declaration;
@@ -21798,8 +22025,8 @@ var ts;
var declarations = symbol.declarations;
for (var _i = 0, declarations_5 = declarations; _i < declarations_5.length; _i++) {
var declaration = declarations_5[_i];
- if ((declaration.kind === 216 ||
- (declaration.kind === 215 && ts.nodeIsPresent(declaration.body))) &&
+ if ((declaration.kind === 217 ||
+ (declaration.kind === 216 && ts.nodeIsPresent(declaration.body))) &&
!ts.isInAmbientContext(declaration)) {
return declaration;
}
@@ -21821,7 +22048,12 @@ var ts;
}
function checkModuleDeclaration(node) {
if (produceDiagnostics) {
- var isAmbientExternalModule = node.name.kind === 9;
+ var isGlobalAugmentation = ts.isGlobalScopeAugmentation(node);
+ var inAmbientContext = ts.isInAmbientContext(node);
+ if (isGlobalAugmentation && !inAmbientContext) {
+ error(node.name, ts.Diagnostics.Augmentations_for_the_global_scope_should_have_declare_modifier_unless_they_appear_in_already_ambient_context);
+ }
+ var isAmbientExternalModule = ts.isAmbientModule(node);
var contextErrorMessage = isAmbientExternalModule
? ts.Diagnostics.An_ambient_module_declaration_is_only_allowed_at_the_top_level_in_a_file
: ts.Diagnostics.A_namespace_declaration_is_only_allowed_in_a_namespace_or_module;
@@ -21829,7 +22061,7 @@ var ts;
return;
}
if (!checkGrammarDecorators(node) && !checkGrammarModifiers(node)) {
- if (!ts.isInAmbientContext(node) && node.name.kind === 9) {
+ if (!inAmbientContext && node.name.kind === 9) {
grammarErrorOnNode(node.name, ts.Diagnostics.Only_ambient_modules_can_use_quoted_names);
}
}
@@ -21839,7 +22071,7 @@ var ts;
var symbol = getSymbolOfNode(node);
if (symbol.flags & 512
&& symbol.declarations.length > 1
- && !ts.isInAmbientContext(node)
+ && !inAmbientContext
&& ts.isInstantiatedModule(node, compilerOptions.preserveConstEnums || compilerOptions.isolatedModules)) {
var firstNonAmbientClassOrFunc = getFirstNonAmbientClassOrFunctionDeclaration(symbol);
if (firstNonAmbientClassOrFunc) {
@@ -21850,29 +22082,102 @@ var ts;
error(node.name, ts.Diagnostics.A_namespace_declaration_cannot_be_located_prior_to_a_class_or_function_with_which_it_is_merged);
}
}
- var mergedClass = ts.getDeclarationOfKind(symbol, 216);
+ var mergedClass = ts.getDeclarationOfKind(symbol, 217);
if (mergedClass &&
inSameLexicalScope(node, mergedClass)) {
getNodeLinks(node).flags |= 32768;
}
}
if (isAmbientExternalModule) {
- if (!isGlobalSourceFile(node.parent)) {
- error(node.name, ts.Diagnostics.Ambient_modules_cannot_be_nested_in_other_modules_or_namespaces);
+ if (ts.isExternalModuleAugmentation(node)) {
+ var checkBody = isGlobalAugmentation || (getSymbolOfNode(node).flags & 33554432);
+ if (checkBody) {
+ for (var _i = 0, _a = node.body.statements; _i < _a.length; _i++) {
+ var statement = _a[_i];
+ checkModuleAugmentationElement(statement, isGlobalAugmentation);
+ }
+ }
}
- if (ts.isExternalModuleNameRelative(node.name.text)) {
- error(node.name, ts.Diagnostics.Ambient_module_declaration_cannot_specify_relative_module_name);
+ else if (isGlobalSourceFile(node.parent)) {
+ if (isGlobalAugmentation) {
+ error(node.name, ts.Diagnostics.Augmentations_for_the_global_scope_can_only_be_directly_nested_in_external_modules_or_ambient_module_declarations);
+ }
+ else if (ts.isExternalModuleNameRelative(node.name.text)) {
+ error(node.name, ts.Diagnostics.Ambient_module_declaration_cannot_specify_relative_module_name);
+ }
+ }
+ else {
+ if (isGlobalAugmentation) {
+ error(node.name, ts.Diagnostics.Augmentations_for_the_global_scope_can_only_be_directly_nested_in_external_modules_or_ambient_module_declarations);
+ }
+ else {
+ error(node.name, ts.Diagnostics.Ambient_modules_cannot_be_nested_in_other_modules_or_namespaces);
+ }
}
}
}
checkSourceElement(node.body);
}
+ function checkModuleAugmentationElement(node, isGlobalAugmentation) {
+ switch (node.kind) {
+ case 196:
+ for (var _i = 0, _a = node.declarationList.declarations; _i < _a.length; _i++) {
+ var decl = _a[_i];
+ checkModuleAugmentationElement(decl, isGlobalAugmentation);
+ }
+ break;
+ case 230:
+ case 231:
+ grammarErrorOnFirstToken(node, ts.Diagnostics.Exports_and_export_assignments_are_not_permitted_in_module_augmentations);
+ break;
+ case 224:
+ if (node.moduleReference.kind !== 9) {
+ error(node.name, ts.Diagnostics.Module_augmentation_cannot_introduce_new_names_in_the_top_level_scope);
+ break;
+ }
+ case 225:
+ grammarErrorOnFirstToken(node, ts.Diagnostics.Imports_are_not_permitted_in_module_augmentations_Consider_moving_them_to_the_enclosing_external_module);
+ break;
+ case 166:
+ case 214:
+ var name_17 = node.name;
+ if (ts.isBindingPattern(name_17)) {
+ for (var _b = 0, _c = name_17.elements; _b < _c.length; _b++) {
+ var el = _c[_b];
+ checkModuleAugmentationElement(el, isGlobalAugmentation);
+ }
+ break;
+ }
+ case 217:
+ case 220:
+ case 216:
+ case 218:
+ case 221:
+ case 219:
+ var symbol = getSymbolOfNode(node);
+ if (symbol) {
+ var reportError = !(symbol.flags & 33554432);
+ if (!reportError) {
+ if (isGlobalAugmentation) {
+ reportError = symbol.parent !== undefined;
+ }
+ else {
+ reportError = ts.isExternalModuleAugmentation(symbol.parent.valueDeclaration);
+ }
+ }
+ if (reportError) {
+ error(node, ts.Diagnostics.Module_augmentation_cannot_introduce_new_names_in_the_top_level_scope);
+ }
+ }
+ break;
+ }
+ }
function getFirstIdentifier(node) {
while (true) {
- if (node.kind === 135) {
+ if (node.kind === 136) {
node = node.left;
}
- else if (node.kind === 168) {
+ else if (node.kind === 169) {
node = node.expression;
}
else {
@@ -21888,16 +22193,18 @@ var ts;
error(moduleName, ts.Diagnostics.String_literal_expected);
return false;
}
- var inAmbientExternalModule = node.parent.kind === 221 && node.parent.parent.name.kind === 9;
- if (node.parent.kind !== 250 && !inAmbientExternalModule) {
- error(moduleName, node.kind === 230 ?
+ var inAmbientExternalModule = node.parent.kind === 222 && ts.isAmbientModule(node.parent.parent);
+ if (node.parent.kind !== 251 && !inAmbientExternalModule) {
+ error(moduleName, node.kind === 231 ?
ts.Diagnostics.Export_declarations_are_not_permitted_in_a_namespace :
ts.Diagnostics.Import_declarations_in_a_namespace_cannot_reference_a_module);
return false;
}
if (inAmbientExternalModule && ts.isExternalModuleNameRelative(moduleName.text)) {
- error(node, ts.Diagnostics.Import_or_export_declaration_in_an_ambient_module_declaration_cannot_reference_module_through_relative_module_name);
- return false;
+ if (!isTopLevelInExternalModuleAugmentation(node)) {
+ error(node, ts.Diagnostics.Import_or_export_declaration_in_an_ambient_module_declaration_cannot_reference_module_through_relative_module_name);
+ return false;
+ }
}
return true;
}
@@ -21909,7 +22216,7 @@ var ts;
(symbol.flags & 793056 ? 793056 : 0) |
(symbol.flags & 1536 ? 1536 : 0);
if (target.flags & excludedMeanings) {
- var message = node.kind === 232 ?
+ var message = node.kind === 233 ?
ts.Diagnostics.Export_declaration_conflicts_with_exported_declaration_of_0 :
ts.Diagnostics.Import_declaration_conflicts_with_local_declaration_of_0;
error(node, message, symbolToString(symbol));
@@ -21935,7 +22242,7 @@ var ts;
checkImportBinding(importClause);
}
if (importClause.namedBindings) {
- if (importClause.namedBindings.kind === 226) {
+ if (importClause.namedBindings.kind === 227) {
checkImportBinding(importClause.namedBindings);
}
else {
@@ -21986,8 +22293,8 @@ var ts;
if (!node.moduleSpecifier || checkExternalImportOrExportDeclaration(node)) {
if (node.exportClause) {
ts.forEach(node.exportClause.elements, checkExportSpecifier);
- var inAmbientExternalModule = node.parent.kind === 221 && node.parent.parent.name.kind === 9;
- if (node.parent.kind !== 250 && !inAmbientExternalModule) {
+ var inAmbientExternalModule = node.parent.kind === 222 && ts.isAmbientModule(node.parent.parent);
+ if (node.parent.kind !== 251 && !inAmbientExternalModule) {
error(node, ts.Diagnostics.Export_declarations_are_not_permitted_in_a_namespace);
}
}
@@ -22000,22 +22307,29 @@ var ts;
}
}
function checkGrammarModuleElementContext(node, errorMessage) {
- if (node.parent.kind !== 250 && node.parent.kind !== 221 && node.parent.kind !== 220) {
+ if (node.parent.kind !== 251 && node.parent.kind !== 222 && node.parent.kind !== 221) {
return grammarErrorOnFirstToken(node, errorMessage);
}
}
function checkExportSpecifier(node) {
checkAliasSymbol(node);
if (!node.parent.parent.moduleSpecifier) {
- markExportAsReferenced(node);
+ var exportedName = node.propertyName || node.name;
+ var symbol = resolveName(exportedName, exportedName.text, 107455 | 793056 | 1536 | 8388608, undefined, undefined);
+ if (symbol && isGlobalSourceFile(getDeclarationContainer(symbol.declarations[0]))) {
+ error(exportedName, ts.Diagnostics.Cannot_re_export_name_that_is_not_defined_in_the_module);
+ }
+ else {
+ markExportAsReferenced(node);
+ }
}
}
function checkExportAssignment(node) {
if (checkGrammarModuleElementContext(node, ts.Diagnostics.An_export_assignment_can_only_be_used_in_a_module)) {
return;
}
- var container = node.parent.kind === 250 ? node.parent : node.parent.parent;
- if (container.kind === 220 && container.name.kind === 69) {
+ var container = node.parent.kind === 251 ? node.parent : node.parent.parent;
+ if (container.kind === 221 && !ts.isAmbientModule(container)) {
error(node, ts.Diagnostics.An_export_assignment_cannot_be_used_in_a_namespace);
return;
}
@@ -22053,7 +22367,9 @@ var ts;
var exportEqualsSymbol = moduleSymbol.exports["export="];
if (exportEqualsSymbol && hasExportedMembers(moduleSymbol)) {
var declaration = getDeclarationOfAliasSymbol(exportEqualsSymbol) || exportEqualsSymbol.valueDeclaration;
- error(declaration, ts.Diagnostics.An_export_assignment_cannot_be_used_in_a_module_with_other_exported_elements);
+ if (!isTopLevelInExternalModuleAugmentation(declaration)) {
+ error(declaration, ts.Diagnostics.An_export_assignment_cannot_be_used_in_a_module_with_other_exported_elements);
+ }
}
var exports = getExportsOfModule(moduleSymbol);
for (var id in exports) {
@@ -22074,21 +22390,7 @@ var ts;
links.exportsChecked = true;
}
function isNotOverload(declaration) {
- return declaration.kind !== 215 || !!declaration.body;
- }
- }
- function checkTypePredicate(node) {
- var parameterName = node.parameterName;
- if (parameterName.kind === 69 && !isInLegalParameterTypePredicatePosition(node)) {
- error(node, ts.Diagnostics.A_type_predicate_is_only_allowed_in_return_type_position_for_functions_and_methods);
- }
- else if (parameterName.kind === 161) {
- if (!isInLegalThisTypePredicatePosition(node)) {
- error(node, ts.Diagnostics.A_this_based_type_predicate_is_only_allowed_within_a_class_or_interface_s_members_get_accessors_or_return_type_positions_for_functions_and_methods);
- }
- else {
- getTypeFromThisTypeNode(parameterName);
- }
+ return declaration.kind !== 216 || !!declaration.body;
}
}
function checkSourceElement(node) {
@@ -22098,118 +22400,118 @@ var ts;
var kind = node.kind;
if (cancellationToken) {
switch (kind) {
- case 220:
- case 216:
+ case 221:
case 217:
- case 215:
+ case 218:
+ case 216:
cancellationToken.throwIfCancellationRequested();
}
}
switch (kind) {
- case 137:
- return checkTypeParameter(node);
case 138:
+ return checkTypeParameter(node);
+ case 139:
return checkParameter(node);
+ case 142:
case 141:
- case 140:
return checkPropertyDeclaration(node);
- case 152:
case 153:
- case 147:
+ case 154:
case 148:
- return checkSignatureDeclaration(node);
case 149:
return checkSignatureDeclaration(node);
- case 143:
- case 142:
- return checkMethodDeclaration(node);
- case 144:
- return checkConstructorDeclaration(node);
- case 145:
- case 146:
- return checkAccessorDeclaration(node);
- case 151:
- return checkTypeReferenceNode(node);
case 150:
+ return checkSignatureDeclaration(node);
+ case 144:
+ case 143:
+ return checkMethodDeclaration(node);
+ case 145:
+ return checkConstructorDeclaration(node);
+ case 146:
+ case 147:
+ return checkAccessorDeclaration(node);
+ case 152:
+ return checkTypeReferenceNode(node);
+ case 151:
return checkTypePredicate(node);
- case 154:
- return checkTypeQuery(node);
case 155:
- return checkTypeLiteral(node);
+ return checkTypeQuery(node);
case 156:
- return checkArrayType(node);
+ return checkTypeLiteral(node);
case 157:
- return checkTupleType(node);
+ return checkArrayType(node);
case 158:
+ return checkTupleType(node);
case 159:
- return checkUnionOrIntersectionType(node);
case 160:
+ return checkUnionOrIntersectionType(node);
+ case 161:
return checkSourceElement(node.type);
- case 215:
- return checkFunctionDeclaration(node);
- case 194:
- case 221:
- return checkBlock(node);
- case 195:
- return checkVariableStatement(node);
- case 197:
- return checkExpressionStatement(node);
- case 198:
- return checkIfStatement(node);
- case 199:
- return checkDoStatement(node);
- case 200:
- return checkWhileStatement(node);
- case 201:
- return checkForStatement(node);
- case 202:
- return checkForInStatement(node);
- case 203:
- return checkForOfStatement(node);
- case 204:
- case 205:
- return checkBreakOrContinueStatement(node);
- case 206:
- return checkReturnStatement(node);
- case 207:
- return checkWithStatement(node);
- case 208:
- return checkSwitchStatement(node);
- case 209:
- return checkLabeledStatement(node);
- case 210:
- return checkThrowStatement(node);
- case 211:
- return checkTryStatement(node);
- case 213:
- return checkVariableDeclaration(node);
- case 165:
- return checkBindingElement(node);
case 216:
- return checkClassDeclaration(node);
- case 217:
- return checkInterfaceDeclaration(node);
- case 218:
- return checkTypeAliasDeclaration(node);
- case 219:
- return checkEnumDeclaration(node);
- case 220:
- return checkModuleDeclaration(node);
- case 224:
- return checkImportDeclaration(node);
- case 223:
- return checkImportEqualsDeclaration(node);
- case 230:
- return checkExportDeclaration(node);
- case 229:
- return checkExportAssignment(node);
+ return checkFunctionDeclaration(node);
+ case 195:
+ case 222:
+ return checkBlock(node);
case 196:
- checkGrammarStatementInAmbientContext(node);
- return;
+ return checkVariableStatement(node);
+ case 198:
+ return checkExpressionStatement(node);
+ case 199:
+ return checkIfStatement(node);
+ case 200:
+ return checkDoStatement(node);
+ case 201:
+ return checkWhileStatement(node);
+ case 202:
+ return checkForStatement(node);
+ case 203:
+ return checkForInStatement(node);
+ case 204:
+ return checkForOfStatement(node);
+ case 205:
+ case 206:
+ return checkBreakOrContinueStatement(node);
+ case 207:
+ return checkReturnStatement(node);
+ case 208:
+ return checkWithStatement(node);
+ case 209:
+ return checkSwitchStatement(node);
+ case 210:
+ return checkLabeledStatement(node);
+ case 211:
+ return checkThrowStatement(node);
case 212:
+ return checkTryStatement(node);
+ case 214:
+ return checkVariableDeclaration(node);
+ case 166:
+ return checkBindingElement(node);
+ case 217:
+ return checkClassDeclaration(node);
+ case 218:
+ return checkInterfaceDeclaration(node);
+ case 219:
+ return checkTypeAliasDeclaration(node);
+ case 220:
+ return checkEnumDeclaration(node);
+ case 221:
+ return checkModuleDeclaration(node);
+ case 225:
+ return checkImportDeclaration(node);
+ case 224:
+ return checkImportEqualsDeclaration(node);
+ case 231:
+ return checkExportDeclaration(node);
+ case 230:
+ return checkExportAssignment(node);
+ case 197:
checkGrammarStatementInAmbientContext(node);
return;
- case 233:
+ case 213:
+ checkGrammarStatementInAmbientContext(node);
+ return;
+ case 234:
return checkMissingDeclaration(node);
}
}
@@ -22222,17 +22524,17 @@ var ts;
for (var _i = 0, deferredNodes_1 = deferredNodes; _i < deferredNodes_1.length; _i++) {
var node = deferredNodes_1[_i];
switch (node.kind) {
- case 175:
case 176:
+ case 177:
+ case 144:
case 143:
- case 142:
checkFunctionExpressionOrObjectLiteralMethodDeferred(node);
break;
- case 145:
case 146:
+ case 147:
checkAccessorDeferred(node);
break;
- case 188:
+ case 189:
checkClassExpressionDeferred(node);
break;
}
@@ -22252,10 +22554,6 @@ var ts;
}
}
checkGrammarSourceFile(node);
- emitExtends = false;
- emitDecorate = false;
- emitParam = false;
- emitAwaiter = false;
potentialThisCollisions.length = 0;
deferredNodes = [];
ts.forEach(node.statements, checkSourceElement);
@@ -22268,21 +22566,6 @@ var ts;
ts.forEach(potentialThisCollisions, checkIfThisIsCapturedInEnclosingScope);
potentialThisCollisions.length = 0;
}
- if (emitExtends) {
- links.flags |= 8;
- }
- if (emitDecorate) {
- links.flags |= 16;
- }
- if (emitParam) {
- links.flags |= 32;
- }
- if (emitAwaiter) {
- links.flags |= 64;
- }
- if (emitGenerator || (emitAwaiter && languageVersion < 2)) {
- links.flags |= 128;
- }
links.flags |= 1;
}
}
@@ -22316,7 +22599,7 @@ var ts;
function isInsideWithStatementBody(node) {
if (node) {
while (node.parent) {
- if (node.parent.kind === 207 && node.parent.statement === node) {
+ if (node.parent.kind === 208 && node.parent.statement === node) {
return true;
}
node = node.parent;
@@ -22338,28 +22621,28 @@ var ts;
copySymbols(location.locals, meaning);
}
switch (location.kind) {
- case 250:
+ case 251:
if (!ts.isExternalOrCommonJsModule(location)) {
break;
}
- case 220:
+ case 221:
copySymbols(getSymbolOfNode(location).exports, meaning & 8914931);
break;
- case 219:
+ case 220:
copySymbols(getSymbolOfNode(location).exports, meaning & 8);
break;
- case 188:
+ case 189:
var className = location.name;
if (className) {
copySymbol(location.symbol, meaning);
}
- case 216:
case 217:
+ case 218:
if (!(memberFlags & 64)) {
copySymbols(getSymbolOfNode(location).members, meaning & 793056);
}
break;
- case 175:
+ case 176:
var funcName = location.name;
if (funcName) {
copySymbol(location.symbol, meaning);
@@ -22398,36 +22681,36 @@ var ts;
}
function isTypeDeclaration(node) {
switch (node.kind) {
- case 137:
- case 216:
+ case 138:
case 217:
case 218:
case 219:
+ case 220:
return true;
}
}
function isTypeReferenceIdentifier(entityName) {
var node = entityName;
- while (node.parent && node.parent.kind === 135) {
+ while (node.parent && node.parent.kind === 136) {
node = node.parent;
}
- return node.parent && node.parent.kind === 151;
+ return node.parent && node.parent.kind === 152;
}
function isHeritageClauseElementIdentifier(entityName) {
var node = entityName;
- while (node.parent && node.parent.kind === 168) {
+ while (node.parent && node.parent.kind === 169) {
node = node.parent;
}
- return node.parent && node.parent.kind === 190;
+ return node.parent && node.parent.kind === 191;
}
function getLeftSideOfImportEqualsOrExportAssignment(nodeOnRightSide) {
- while (nodeOnRightSide.parent.kind === 135) {
+ while (nodeOnRightSide.parent.kind === 136) {
nodeOnRightSide = nodeOnRightSide.parent;
}
- if (nodeOnRightSide.parent.kind === 223) {
+ if (nodeOnRightSide.parent.kind === 224) {
return nodeOnRightSide.parent.moduleReference === nodeOnRightSide && nodeOnRightSide.parent;
}
- if (nodeOnRightSide.parent.kind === 229) {
+ if (nodeOnRightSide.parent.kind === 230) {
return nodeOnRightSide.parent.expression === nodeOnRightSide && nodeOnRightSide.parent;
}
return undefined;
@@ -22439,10 +22722,10 @@ var ts;
if (ts.isDeclarationName(entityName)) {
return getSymbolOfNode(entityName.parent);
}
- if (entityName.parent.kind === 229) {
+ if (entityName.parent.kind === 230) {
return resolveEntityName(entityName, 107455 | 793056 | 1536 | 8388608);
}
- if (entityName.kind !== 168) {
+ if (entityName.kind !== 169) {
if (isInRightSideOfImportOrExportAssignment(entityName)) {
return getSymbolOfPartOfRightHandSideOfImportEquals(entityName);
}
@@ -22452,7 +22735,7 @@ var ts;
}
if (isHeritageClauseElementIdentifier(entityName)) {
var meaning = 0;
- if (entityName.parent.kind === 190) {
+ if (entityName.parent.kind === 191) {
meaning = 793056;
if (ts.isExpressionWithTypeArgumentsInClassExtendsClause(entityName.parent)) {
meaning |= 107455;
@@ -22464,9 +22747,9 @@ var ts;
meaning |= 8388608;
return resolveEntityName(entityName, meaning);
}
- else if ((entityName.parent.kind === 237) ||
- (entityName.parent.kind === 236) ||
- (entityName.parent.kind === 239)) {
+ else if ((entityName.parent.kind === 238) ||
+ (entityName.parent.kind === 237) ||
+ (entityName.parent.kind === 240)) {
return getJsxElementTagSymbol(entityName.parent);
}
else if (ts.isExpression(entityName)) {
@@ -22477,14 +22760,14 @@ var ts;
var meaning = 107455 | 8388608;
return resolveEntityName(entityName, meaning);
}
- else if (entityName.kind === 168) {
+ else if (entityName.kind === 169) {
var symbol = getNodeLinks(entityName).resolvedSymbol;
if (!symbol) {
checkPropertyAccessExpression(entityName);
}
return getNodeLinks(entityName).resolvedSymbol;
}
- else if (entityName.kind === 135) {
+ else if (entityName.kind === 136) {
var symbol = getNodeLinks(entityName).resolvedSymbol;
if (!symbol) {
checkQualifiedName(entityName);
@@ -22493,14 +22776,14 @@ var ts;
}
}
else if (isTypeReferenceIdentifier(entityName)) {
- var meaning = entityName.parent.kind === 151 ? 793056 : 1536;
+ var meaning = entityName.parent.kind === 152 ? 793056 : 1536;
meaning |= 8388608;
return resolveEntityName(entityName, meaning);
}
- else if (entityName.parent.kind === 240) {
+ else if (entityName.parent.kind === 241) {
return getJsxAttributePropertySymbol(entityName.parent);
}
- if (entityName.parent.kind === 150) {
+ if (entityName.parent.kind === 151) {
return resolveEntityName(entityName, 1);
}
return undefined;
@@ -22514,12 +22797,12 @@ var ts;
}
if (node.kind === 69) {
if (isInRightSideOfImportOrExportAssignment(node)) {
- return node.parent.kind === 229
+ return node.parent.kind === 230
? getSymbolOfEntityNameOrPropertyAccessExpression(node)
: getSymbolOfPartOfRightHandSideOfImportEquals(node);
}
- else if (node.parent.kind === 165 &&
- node.parent.parent.kind === 163 &&
+ else if (node.parent.kind === 166 &&
+ node.parent.parent.kind === 164 &&
node === node.parent.propertyName) {
var typeOfPattern = getTypeOfNode(node.parent.parent);
var propertyDeclaration = typeOfPattern && getPropertyOfType(typeOfPattern, node.text);
@@ -22530,30 +22813,30 @@ var ts;
}
switch (node.kind) {
case 69:
- case 168:
- case 135:
+ case 169:
+ case 136:
return getSymbolOfEntityNameOrPropertyAccessExpression(node);
case 97:
case 95:
var type = ts.isExpression(node) ? checkExpression(node) : getTypeFromTypeNode(node);
return type.symbol;
- case 161:
+ case 162:
return getTypeFromTypeNode(node).symbol;
case 121:
var constructorDeclaration = node.parent;
- if (constructorDeclaration && constructorDeclaration.kind === 144) {
+ if (constructorDeclaration && constructorDeclaration.kind === 145) {
return constructorDeclaration.parent.symbol;
}
return undefined;
case 9:
if ((ts.isExternalModuleImportEqualsDeclaration(node.parent.parent) &&
ts.getExternalModuleImportEqualsDeclarationExpression(node.parent.parent) === node) ||
- ((node.parent.kind === 224 || node.parent.kind === 230) &&
+ ((node.parent.kind === 225 || node.parent.kind === 231) &&
node.parent.moduleSpecifier === node)) {
return resolveExternalModuleName(node, node);
}
case 8:
- if (node.parent.kind === 169 && node.parent.argumentExpression === node) {
+ if (node.parent.kind === 170 && node.parent.argumentExpression === node) {
var objectType = checkExpression(node.parent.expression);
if (objectType === unknownType)
return undefined;
@@ -22567,11 +22850,16 @@ var ts;
return undefined;
}
function getShorthandAssignmentValueSymbol(location) {
- if (location && location.kind === 248) {
- return resolveEntityName(location.name, 107455);
+ if (location && location.kind === 249) {
+ return resolveEntityName(location.name, 107455 | 8388608);
}
return undefined;
}
+ function getExportSpecifierLocalTargetSymbol(node) {
+ return node.parent.parent.moduleSpecifier ?
+ getExternalModuleMember(node.parent.parent, node) :
+ resolveEntityName(node.propertyName || node.name, 107455 | 793056 | 1536 | 8388608);
+ }
function getTypeOfNode(node) {
if (isInsideWithStatementBody(node)) {
return unknownType;
@@ -22638,9 +22926,9 @@ var ts;
function getRootSymbols(symbol) {
if (symbol.flags & 268435456) {
var symbols = [];
- var name_15 = symbol.name;
+ var name_18 = symbol.name;
ts.forEach(getSymbolLinks(symbol).containingType.types, function (t) {
- var symbol = getPropertyOfType(t, name_15);
+ var symbol = getPropertyOfType(t, name_18);
if (symbol) {
symbols.push(symbol);
}
@@ -22689,11 +22977,11 @@ var ts;
}
var parentSymbol = getParentOfSymbol(symbol);
if (parentSymbol) {
- if (parentSymbol.flags & 512 && parentSymbol.valueDeclaration.kind === 250) {
+ if (parentSymbol.flags & 512 && parentSymbol.valueDeclaration.kind === 251) {
return parentSymbol.valueDeclaration;
}
for (var n = node.parent; n; n = n.parent) {
- if ((n.kind === 220 || n.kind === 219) && getSymbolOfNode(n) === parentSymbol) {
+ if ((n.kind === 221 || n.kind === 220) && getSymbolOfNode(n) === parentSymbol) {
return n;
}
}
@@ -22706,11 +22994,11 @@ var ts;
}
function isStatementWithLocals(node) {
switch (node.kind) {
- case 194:
- case 222:
- case 201:
+ case 195:
+ case 223:
case 202:
case 203:
+ case 204:
return true;
}
return false;
@@ -22736,22 +23024,22 @@ var ts;
}
function isValueAliasDeclaration(node) {
switch (node.kind) {
- case 223:
- case 225:
+ case 224:
case 226:
- case 228:
- case 232:
+ case 227:
+ case 229:
+ case 233:
return isAliasResolvedToValue(getSymbolOfNode(node));
- case 230:
+ case 231:
var exportClause = node.exportClause;
return exportClause && ts.forEach(exportClause.elements, isValueAliasDeclaration);
- case 229:
+ case 230:
return node.expression && node.expression.kind === 69 ? isAliasResolvedToValue(getSymbolOfNode(node)) : true;
}
return false;
}
function isTopLevelValueImportEqualsWithEntityName(node) {
- if (node.parent.kind !== 250 || !ts.isInternalModuleImportEqualsDeclaration(node)) {
+ if (node.parent.kind !== 251 || !ts.isInternalModuleImportEqualsDeclaration(node)) {
return false;
}
var isValue = isAliasResolvedToValue(getSymbolOfNode(node));
@@ -22799,7 +23087,7 @@ var ts;
return getNodeLinks(node).enumMemberValue;
}
function getConstantValue(node) {
- if (node.kind === 249) {
+ if (node.kind === 250) {
return getEnumMemberValue(node);
}
var symbol = getNodeLinks(node).resolvedSymbol;
@@ -22915,21 +23203,34 @@ var ts;
}
function getExternalModuleFileFromDeclaration(declaration) {
var specifier = ts.getExternalModuleName(declaration);
- var moduleSymbol = getSymbolAtLocation(specifier);
+ var moduleSymbol = resolveExternalModuleNameWorker(specifier, specifier, undefined);
if (!moduleSymbol) {
return undefined;
}
- return ts.getDeclarationOfKind(moduleSymbol, 250);
+ return ts.getDeclarationOfKind(moduleSymbol, 251);
}
function initializeTypeChecker() {
ts.forEach(host.getSourceFiles(), function (file) {
ts.bindSourceFile(file, compilerOptions);
});
+ var augmentations;
ts.forEach(host.getSourceFiles(), function (file) {
if (!ts.isExternalOrCommonJsModule(file)) {
mergeSymbolTable(globals, file.locals);
}
+ if (file.moduleAugmentations) {
+ (augmentations || (augmentations = [])).push(file.moduleAugmentations);
+ }
});
+ if (augmentations) {
+ for (var _i = 0, augmentations_1 = augmentations; _i < augmentations_1.length; _i++) {
+ var list = augmentations_1[_i];
+ for (var _a = 0, list_2 = list; _a < list_2.length; _a++) {
+ var augmentation = list_2[_a];
+ mergeModuleAugmentation(augmentation);
+ }
+ }
+ }
addToSymbolTable(globals, builtinGlobals, ts.Diagnostics.Declaration_name_conflicts_with_built_in_global_identifier_0);
getSymbolLinks(undefinedSymbol).type = undefinedType;
getSymbolLinks(argumentsSymbol).type = getGlobalType("IArguments");
@@ -22994,14 +23295,14 @@ var ts;
return false;
}
if (!ts.nodeCanBeDecorated(node)) {
- if (node.kind === 143 && !ts.nodeIsPresent(node.body)) {
+ if (node.kind === 144 && !ts.nodeIsPresent(node.body)) {
return grammarErrorOnFirstToken(node, ts.Diagnostics.A_decorator_can_only_decorate_a_method_implementation_not_an_overload);
}
else {
return grammarErrorOnFirstToken(node, ts.Diagnostics.Decorators_are_not_valid_here);
}
}
- else if (node.kind === 145 || node.kind === 146) {
+ else if (node.kind === 146 || node.kind === 147) {
var accessors = ts.getAllAccessorDeclarations(node.parent.members, node);
if (accessors.firstAccessor.decorators && node === accessors.secondAccessor) {
return grammarErrorOnFirstToken(node, ts.Diagnostics.Decorators_cannot_be_applied_to_multiple_get_Slashset_accessors_of_the_same_name);
@@ -23011,38 +23312,38 @@ var ts;
}
function checkGrammarModifiers(node) {
switch (node.kind) {
- case 145:
case 146:
- case 144:
- case 141:
- case 140:
- case 143:
+ case 147:
+ case 145:
case 142:
- case 149:
- case 220:
+ case 141:
+ case 144:
+ case 143:
+ case 150:
+ case 221:
+ case 225:
case 224:
- case 223:
+ case 231:
case 230:
- case 229:
- case 138:
- break;
- case 215:
- if (node.modifiers && (node.modifiers.length > 1 || node.modifiers[0].kind !== 118) &&
- node.parent.kind !== 221 && node.parent.kind !== 250) {
- return grammarErrorOnFirstToken(node, ts.Diagnostics.Modifiers_cannot_appear_here);
- }
+ case 139:
break;
case 216:
- case 217:
- case 195:
- case 218:
- if (node.modifiers && node.parent.kind !== 221 && node.parent.kind !== 250) {
+ if (node.modifiers && (node.modifiers.length > 1 || node.modifiers[0].kind !== 118) &&
+ node.parent.kind !== 222 && node.parent.kind !== 251) {
return grammarErrorOnFirstToken(node, ts.Diagnostics.Modifiers_cannot_appear_here);
}
break;
+ case 217:
+ case 218:
+ case 196:
case 219:
+ if (node.modifiers && node.parent.kind !== 222 && node.parent.kind !== 251) {
+ return grammarErrorOnFirstToken(node, ts.Diagnostics.Modifiers_cannot_appear_here);
+ }
+ break;
+ case 220:
if (node.modifiers && (node.modifiers.length > 1 || node.modifiers[0].kind !== 74) &&
- node.parent.kind !== 221 && node.parent.kind !== 250) {
+ node.parent.kind !== 222 && node.parent.kind !== 251) {
return grammarErrorOnFirstToken(node, ts.Diagnostics.Modifiers_cannot_appear_here);
}
break;
@@ -23058,7 +23359,7 @@ var ts;
var modifier = _a[_i];
switch (modifier.kind) {
case 74:
- if (node.kind !== 219 && node.parent.kind === 216) {
+ if (node.kind !== 220 && node.parent.kind === 217) {
return grammarErrorOnNode(node, ts.Diagnostics.A_class_member_cannot_have_the_0_keyword, ts.tokenToString(74));
}
break;
@@ -23086,7 +23387,7 @@ var ts;
else if (flags & 256) {
return grammarErrorOnNode(modifier, ts.Diagnostics._0_modifier_must_precede_1_modifier, text, "async");
}
- else if (node.parent.kind === 221 || node.parent.kind === 250) {
+ else if (node.parent.kind === 222 || node.parent.kind === 251) {
return grammarErrorOnNode(modifier, ts.Diagnostics._0_modifier_cannot_appear_on_a_module_element, text);
}
else if (flags & 128) {
@@ -23106,10 +23407,10 @@ var ts;
else if (flags & 256) {
return grammarErrorOnNode(modifier, ts.Diagnostics._0_modifier_must_precede_1_modifier, "static", "async");
}
- else if (node.parent.kind === 221 || node.parent.kind === 250) {
+ else if (node.parent.kind === 222 || node.parent.kind === 251) {
return grammarErrorOnNode(modifier, ts.Diagnostics._0_modifier_cannot_appear_on_a_module_element, "static");
}
- else if (node.kind === 138) {
+ else if (node.kind === 139) {
return grammarErrorOnNode(modifier, ts.Diagnostics._0_modifier_cannot_appear_on_a_parameter, "static");
}
else if (flags & 128) {
@@ -23131,10 +23432,10 @@ var ts;
else if (flags & 256) {
return grammarErrorOnNode(modifier, ts.Diagnostics._0_modifier_must_precede_1_modifier, "export", "async");
}
- else if (node.parent.kind === 216) {
+ else if (node.parent.kind === 217) {
return grammarErrorOnNode(modifier, ts.Diagnostics._0_modifier_cannot_appear_on_a_class_element, "export");
}
- else if (node.kind === 138) {
+ else if (node.kind === 139) {
return grammarErrorOnNode(modifier, ts.Diagnostics._0_modifier_cannot_appear_on_a_parameter, "export");
}
flags |= 2;
@@ -23146,13 +23447,13 @@ var ts;
else if (flags & 256) {
return grammarErrorOnNode(modifier, ts.Diagnostics._0_modifier_cannot_be_used_in_an_ambient_context, "async");
}
- else if (node.parent.kind === 216) {
+ else if (node.parent.kind === 217) {
return grammarErrorOnNode(modifier, ts.Diagnostics._0_modifier_cannot_appear_on_a_class_element, "declare");
}
- else if (node.kind === 138) {
+ else if (node.kind === 139) {
return grammarErrorOnNode(modifier, ts.Diagnostics._0_modifier_cannot_appear_on_a_parameter, "declare");
}
- else if (ts.isInAmbientContext(node.parent) && node.parent.kind === 221) {
+ else if (ts.isInAmbientContext(node.parent) && node.parent.kind === 222) {
return grammarErrorOnNode(modifier, ts.Diagnostics.A_declare_modifier_cannot_be_used_in_an_already_ambient_context);
}
flags |= 4;
@@ -23162,11 +23463,11 @@ var ts;
if (flags & 128) {
return grammarErrorOnNode(modifier, ts.Diagnostics._0_modifier_already_seen, "abstract");
}
- if (node.kind !== 216) {
- if (node.kind !== 143) {
+ if (node.kind !== 217) {
+ if (node.kind !== 144) {
return grammarErrorOnNode(modifier, ts.Diagnostics.abstract_modifier_can_only_appear_on_a_class_or_method_declaration);
}
- if (!(node.parent.kind === 216 && node.parent.flags & 128)) {
+ if (!(node.parent.kind === 217 && node.parent.flags & 128)) {
return grammarErrorOnNode(modifier, ts.Diagnostics.Abstract_methods_can_only_appear_within_an_abstract_class);
}
if (flags & 64) {
@@ -23185,7 +23486,7 @@ var ts;
else if (flags & 4 || ts.isInAmbientContext(node.parent)) {
return grammarErrorOnNode(modifier, ts.Diagnostics._0_modifier_cannot_be_used_in_an_ambient_context, "async");
}
- else if (node.kind === 138) {
+ else if (node.kind === 139) {
return grammarErrorOnNode(modifier, ts.Diagnostics._0_modifier_cannot_appear_on_a_parameter, "async");
}
flags |= 256;
@@ -23193,7 +23494,7 @@ var ts;
break;
}
}
- if (node.kind === 144) {
+ if (node.kind === 145) {
if (flags & 64) {
return grammarErrorOnNode(lastStatic, ts.Diagnostics._0_modifier_cannot_appear_on_a_constructor_declaration, "static");
}
@@ -23211,10 +23512,10 @@ var ts;
}
return;
}
- else if ((node.kind === 224 || node.kind === 223) && flags & 4) {
+ else if ((node.kind === 225 || node.kind === 224) && flags & 4) {
return grammarErrorOnNode(lastDeclare, ts.Diagnostics.A_0_modifier_cannot_be_used_with_an_import_declaration, "declare");
}
- else if (node.kind === 138 && (flags & 56) && ts.isBindingPattern(node.name)) {
+ else if (node.kind === 139 && (flags & 56) && ts.isBindingPattern(node.name)) {
return grammarErrorOnNode(node, ts.Diagnostics.A_parameter_property_may_not_be_a_binding_pattern);
}
if (flags & 256) {
@@ -23226,10 +23527,10 @@ var ts;
return grammarErrorOnNode(asyncModifier, ts.Diagnostics.Async_functions_are_only_available_when_targeting_ECMAScript_6_and_higher);
}
switch (node.kind) {
- case 143:
- case 215:
- case 175:
+ case 144:
+ case 216:
case 176:
+ case 177:
if (!node.asteriskToken) {
return false;
}
@@ -23294,7 +23595,7 @@ var ts;
checkGrammarParameterList(node.parameters) || checkGrammarArrowFunction(node, file);
}
function checkGrammarArrowFunction(node, file) {
- if (node.kind === 176) {
+ if (node.kind === 177) {
var arrowFunction = node;
var startLine = ts.getLineAndCharacterOfPosition(file, arrowFunction.equalsGreaterThanToken.pos).line;
var endLine = ts.getLineAndCharacterOfPosition(file, arrowFunction.equalsGreaterThanToken.end).line;
@@ -23361,7 +23662,7 @@ var ts;
var sourceFile = ts.getSourceFileOfNode(node);
for (var _i = 0, args_1 = args; _i < args_1.length; _i++) {
var arg = args_1[_i];
- if (arg.kind === 189) {
+ if (arg.kind === 190) {
return grammarErrorAtPos(sourceFile, arg.pos, 0, ts.Diagnostics.Argument_expression_expected);
}
}
@@ -23432,19 +23733,19 @@ var ts;
return false;
}
function checkGrammarComputedPropertyName(node) {
- if (node.kind !== 136) {
+ if (node.kind !== 137) {
return false;
}
var computedPropertyName = node;
- if (computedPropertyName.expression.kind === 183 && computedPropertyName.expression.operatorToken.kind === 24) {
+ if (computedPropertyName.expression.kind === 184 && computedPropertyName.expression.operatorToken.kind === 24) {
return grammarErrorOnNode(computedPropertyName.expression, ts.Diagnostics.A_comma_expression_is_not_allowed_in_a_computed_property_name);
}
}
function checkGrammarForGenerator(node) {
if (node.asteriskToken) {
- ts.Debug.assert(node.kind === 215 ||
- node.kind === 175 ||
- node.kind === 143);
+ ts.Debug.assert(node.kind === 216 ||
+ node.kind === 176 ||
+ node.kind === 144);
if (ts.isInAmbientContext(node)) {
return grammarErrorOnNode(node.asteriskToken, ts.Diagnostics.Generators_are_not_allowed_in_an_ambient_context);
}
@@ -23468,58 +23769,58 @@ var ts;
var SetAccesor = 4;
var GetOrSetAccessor = GetAccessor | SetAccesor;
var _loop_1 = function(prop) {
- var name_16 = prop.name;
- if (prop.kind === 189 ||
- name_16.kind === 136) {
- checkGrammarComputedPropertyName(name_16);
+ var name_19 = prop.name;
+ if (prop.kind === 190 ||
+ name_19.kind === 137) {
+ checkGrammarComputedPropertyName(name_19);
return "continue";
}
- if (prop.kind === 248 && !inDestructuring && prop.objectAssignmentInitializer) {
+ if (prop.kind === 249 && !inDestructuring && prop.objectAssignmentInitializer) {
return { value: grammarErrorOnNode(prop.equalsToken, ts.Diagnostics.can_only_be_used_in_an_object_literal_property_inside_a_destructuring_assignment) };
}
ts.forEach(prop.modifiers, function (mod) {
- if (mod.kind !== 118 || prop.kind !== 143) {
+ if (mod.kind !== 118 || prop.kind !== 144) {
grammarErrorOnNode(mod, ts.Diagnostics._0_modifier_cannot_be_used_here, ts.getTextOfNode(mod));
}
});
var currentKind = void 0;
- if (prop.kind === 247 || prop.kind === 248) {
+ if (prop.kind === 248 || prop.kind === 249) {
checkGrammarForInvalidQuestionMark(prop, prop.questionToken, ts.Diagnostics.An_object_member_cannot_be_declared_optional);
- if (name_16.kind === 8) {
- checkGrammarNumericLiteral(name_16);
+ if (name_19.kind === 8) {
+ checkGrammarNumericLiteral(name_19);
}
currentKind = Property;
}
- else if (prop.kind === 143) {
+ else if (prop.kind === 144) {
currentKind = Property;
}
- else if (prop.kind === 145) {
+ else if (prop.kind === 146) {
currentKind = GetAccessor;
}
- else if (prop.kind === 146) {
+ else if (prop.kind === 147) {
currentKind = SetAccesor;
}
else {
ts.Debug.fail("Unexpected syntax kind:" + prop.kind);
}
- if (!ts.hasProperty(seen, name_16.text)) {
- seen[name_16.text] = currentKind;
+ if (!ts.hasProperty(seen, name_19.text)) {
+ seen[name_19.text] = currentKind;
}
else {
- var existingKind = seen[name_16.text];
+ var existingKind = seen[name_19.text];
if (currentKind === Property && existingKind === Property) {
return "continue";
}
else if ((currentKind & GetOrSetAccessor) && (existingKind & GetOrSetAccessor)) {
if (existingKind !== GetOrSetAccessor && currentKind !== existingKind) {
- seen[name_16.text] = currentKind | existingKind;
+ seen[name_19.text] = currentKind | existingKind;
}
else {
- return { value: grammarErrorOnNode(name_16, ts.Diagnostics.An_object_literal_cannot_have_multiple_get_Slashset_accessors_with_the_same_name) };
+ return { value: grammarErrorOnNode(name_19, ts.Diagnostics.An_object_literal_cannot_have_multiple_get_Slashset_accessors_with_the_same_name) };
}
}
else {
- return { value: grammarErrorOnNode(name_16, ts.Diagnostics.An_object_literal_cannot_have_property_and_accessor_with_the_same_name) };
+ return { value: grammarErrorOnNode(name_19, ts.Diagnostics.An_object_literal_cannot_have_property_and_accessor_with_the_same_name) };
}
}
};
@@ -23534,19 +23835,19 @@ var ts;
var seen = {};
for (var _i = 0, _a = node.attributes; _i < _a.length; _i++) {
var attr = _a[_i];
- if (attr.kind === 241) {
+ if (attr.kind === 242) {
continue;
}
var jsxAttr = attr;
- var name_17 = jsxAttr.name;
- if (!ts.hasProperty(seen, name_17.text)) {
- seen[name_17.text] = true;
+ var name_20 = jsxAttr.name;
+ if (!ts.hasProperty(seen, name_20.text)) {
+ seen[name_20.text] = true;
}
else {
- return grammarErrorOnNode(name_17, ts.Diagnostics.JSX_elements_cannot_have_multiple_attributes_with_the_same_name);
+ return grammarErrorOnNode(name_20, ts.Diagnostics.JSX_elements_cannot_have_multiple_attributes_with_the_same_name);
}
var initializer = jsxAttr.initializer;
- if (initializer && initializer.kind === 242 && !initializer.expression) {
+ if (initializer && initializer.kind === 243 && !initializer.expression) {
return grammarErrorOnNode(jsxAttr.initializer, ts.Diagnostics.JSX_attributes_must_only_be_assigned_a_non_empty_expression);
}
}
@@ -23555,7 +23856,7 @@ var ts;
if (checkGrammarStatementInAmbientContext(forInOrOfStatement)) {
return true;
}
- if (forInOrOfStatement.initializer.kind === 214) {
+ if (forInOrOfStatement.initializer.kind === 215) {
var variableList = forInOrOfStatement.initializer;
if (!checkGrammarVariableDeclarationList(variableList)) {
var declarations = variableList.declarations;
@@ -23563,20 +23864,20 @@ var ts;
return false;
}
if (declarations.length > 1) {
- var diagnostic = forInOrOfStatement.kind === 202
+ var diagnostic = forInOrOfStatement.kind === 203
? ts.Diagnostics.Only_a_single_variable_declaration_is_allowed_in_a_for_in_statement
: ts.Diagnostics.Only_a_single_variable_declaration_is_allowed_in_a_for_of_statement;
return grammarErrorOnFirstToken(variableList.declarations[1], diagnostic);
}
var firstDeclaration = declarations[0];
if (firstDeclaration.initializer) {
- var diagnostic = forInOrOfStatement.kind === 202
+ var diagnostic = forInOrOfStatement.kind === 203
? ts.Diagnostics.The_variable_declaration_of_a_for_in_statement_cannot_have_an_initializer
: ts.Diagnostics.The_variable_declaration_of_a_for_of_statement_cannot_have_an_initializer;
return grammarErrorOnNode(firstDeclaration.name, diagnostic);
}
if (firstDeclaration.type) {
- var diagnostic = forInOrOfStatement.kind === 202
+ var diagnostic = forInOrOfStatement.kind === 203
? ts.Diagnostics.The_left_hand_side_of_a_for_in_statement_cannot_use_a_type_annotation
: ts.Diagnostics.The_left_hand_side_of_a_for_of_statement_cannot_use_a_type_annotation;
return grammarErrorOnNode(firstDeclaration, diagnostic);
@@ -23599,10 +23900,10 @@ var ts;
else if (accessor.typeParameters) {
return grammarErrorOnNode(accessor.name, ts.Diagnostics.An_accessor_cannot_have_type_parameters);
}
- else if (kind === 145 && accessor.parameters.length) {
+ else if (kind === 146 && accessor.parameters.length) {
return grammarErrorOnNode(accessor.name, ts.Diagnostics.A_get_accessor_cannot_have_parameters);
}
- else if (kind === 146) {
+ else if (kind === 147) {
if (accessor.type) {
return grammarErrorOnNode(accessor.name, ts.Diagnostics.A_set_accessor_cannot_have_a_return_type_annotation);
}
@@ -23637,12 +23938,12 @@ var ts;
checkGrammarForGenerator(node)) {
return true;
}
- if (node.parent.kind === 167) {
+ if (node.parent.kind === 168) {
if (checkGrammarForInvalidQuestionMark(node, node.questionToken, ts.Diagnostics.A_class_member_cannot_be_declared_optional)) {
return true;
}
else if (node.body === undefined) {
- return grammarErrorAtPos(getSourceFile(node), node.end - 1, ";".length, ts.Diagnostics._0_expected, "{");
+ return grammarErrorAtPos(ts.getSourceFileOfNode(node), node.end - 1, ";".length, ts.Diagnostics._0_expected, "{");
}
}
if (ts.isClassLike(node.parent)) {
@@ -23656,10 +23957,10 @@ var ts;
return checkGrammarForNonSymbolComputedProperty(node.name, ts.Diagnostics.A_computed_property_name_in_a_method_overload_must_directly_refer_to_a_built_in_symbol);
}
}
- else if (node.parent.kind === 217) {
+ else if (node.parent.kind === 218) {
return checkGrammarForNonSymbolComputedProperty(node.name, ts.Diagnostics.A_computed_property_name_in_an_interface_must_directly_refer_to_a_built_in_symbol);
}
- else if (node.parent.kind === 155) {
+ else if (node.parent.kind === 156) {
return checkGrammarForNonSymbolComputedProperty(node.name, ts.Diagnostics.A_computed_property_name_in_a_type_literal_must_directly_refer_to_a_built_in_symbol);
}
}
@@ -23670,9 +23971,9 @@ var ts;
return grammarErrorOnNode(node, ts.Diagnostics.Jump_target_cannot_cross_function_boundary);
}
switch (current.kind) {
- case 209:
+ case 210:
if (node.label && current.label.text === node.label.text) {
- var isMisplacedContinueLabel = node.kind === 204
+ var isMisplacedContinueLabel = node.kind === 205
&& !ts.isIterationStatement(current.statement, true);
if (isMisplacedContinueLabel) {
return grammarErrorOnNode(node, ts.Diagnostics.A_continue_statement_can_only_jump_to_a_label_of_an_enclosing_iteration_statement);
@@ -23680,8 +23981,8 @@ var ts;
return false;
}
break;
- case 208:
- if (node.kind === 205 && !node.label) {
+ case 209:
+ if (node.kind === 206 && !node.label) {
return false;
}
break;
@@ -23694,13 +23995,13 @@ var ts;
current = current.parent;
}
if (node.label) {
- var message = node.kind === 205
+ var message = node.kind === 206
? ts.Diagnostics.A_break_statement_can_only_jump_to_a_label_of_an_enclosing_statement
: ts.Diagnostics.A_continue_statement_can_only_jump_to_a_label_of_an_enclosing_iteration_statement;
return grammarErrorOnNode(node, message);
}
else {
- var message = node.kind === 205
+ var message = node.kind === 206
? ts.Diagnostics.A_break_statement_can_only_be_used_within_an_enclosing_iteration_or_switch_statement
: ts.Diagnostics.A_continue_statement_can_only_be_used_within_an_enclosing_iteration_statement;
return grammarErrorOnNode(node, message);
@@ -23712,7 +24013,7 @@ var ts;
if (node !== ts.lastOrUndefined(elements)) {
return grammarErrorOnNode(node, ts.Diagnostics.A_rest_element_must_be_last_in_an_array_destructuring_pattern);
}
- if (node.name.kind === 164 || node.name.kind === 163) {
+ if (node.name.kind === 165 || node.name.kind === 164) {
return grammarErrorOnNode(node.name, ts.Diagnostics.A_rest_element_cannot_contain_a_binding_pattern);
}
if (node.initializer) {
@@ -23721,7 +24022,7 @@ var ts;
}
}
function checkGrammarVariableDeclaration(node) {
- if (node.parent.parent.kind !== 202 && node.parent.parent.kind !== 203) {
+ if (node.parent.parent.kind !== 203 && node.parent.parent.kind !== 204) {
if (ts.isInAmbientContext(node)) {
if (node.initializer) {
var equalsTokenLength = "=".length;
@@ -23750,7 +24051,7 @@ var ts;
var elements = name.elements;
for (var _i = 0, elements_2 = elements; _i < elements_2.length; _i++) {
var element = elements_2[_i];
- if (element.kind !== 189) {
+ if (element.kind !== 190) {
checkGrammarNameInLetOrConstDeclarations(element.name);
}
}
@@ -23767,15 +24068,15 @@ var ts;
}
function allowLetAndConstDeclarations(parent) {
switch (parent.kind) {
- case 198:
case 199:
case 200:
- case 207:
case 201:
+ case 208:
case 202:
case 203:
+ case 204:
return false;
- case 209:
+ case 210:
return allowLetAndConstDeclarations(parent.parent);
}
return true;
@@ -23831,7 +24132,7 @@ var ts;
return true;
}
}
- else if (node.parent.kind === 217) {
+ else if (node.parent.kind === 218) {
if (checkGrammarForNonSymbolComputedProperty(node.name, ts.Diagnostics.A_computed_property_name_in_an_interface_must_directly_refer_to_a_built_in_symbol)) {
return true;
}
@@ -23839,7 +24140,7 @@ var ts;
return grammarErrorOnNode(node.initializer, ts.Diagnostics.An_interface_property_cannot_have_an_initializer);
}
}
- else if (node.parent.kind === 155) {
+ else if (node.parent.kind === 156) {
if (checkGrammarForNonSymbolComputedProperty(node.name, ts.Diagnostics.A_computed_property_name_in_a_type_literal_must_directly_refer_to_a_built_in_symbol)) {
return true;
}
@@ -23852,12 +24153,12 @@ var ts;
}
}
function checkGrammarTopLevelElementForRequiredDeclareModifier(node) {
- if (node.kind === 217 ||
- node.kind === 218 ||
+ if (node.kind === 218 ||
+ node.kind === 219 ||
+ node.kind === 225 ||
node.kind === 224 ||
- node.kind === 223 ||
+ node.kind === 231 ||
node.kind === 230 ||
- node.kind === 229 ||
(node.flags & 4) ||
(node.flags & (2 | 512))) {
return false;
@@ -23867,7 +24168,7 @@ var ts;
function checkGrammarTopLevelElementsForRequiredDeclareModifier(file) {
for (var _i = 0, _a = file.statements; _i < _a.length; _i++) {
var decl = _a[_i];
- if (ts.isDeclaration(decl) || decl.kind === 195) {
+ if (ts.isDeclaration(decl) || decl.kind === 196) {
if (checkGrammarTopLevelElementForRequiredDeclareModifier(decl)) {
return true;
}
@@ -23886,7 +24187,7 @@ var ts;
if (!links.hasReportedStatementInAmbientContext && ts.isFunctionLike(node.parent)) {
return getNodeLinks(node).hasReportedStatementInAmbientContext = grammarErrorOnFirstToken(node, ts.Diagnostics.An_implementation_cannot_be_declared_in_ambient_contexts);
}
- if (node.parent.kind === 194 || node.parent.kind === 221 || node.parent.kind === 250) {
+ if (node.parent.kind === 195 || node.parent.kind === 222 || node.parent.kind === 251) {
var links_1 = getNodeLinks(node.parent);
if (!links_1.hasReportedStatementInAmbientContext) {
return links_1.hasReportedStatementInAmbientContext = grammarErrorOnFirstToken(node, ts.Diagnostics.Statements_are_not_allowed_in_ambient_contexts);
@@ -23922,8 +24223,9 @@ var ts;
getSourceMapData: function () { return undefined; },
setSourceFile: function (sourceFile) { },
emitStart: function (range) { },
- emitEnd: function (range) { },
+ emitEnd: function (range, stopOverridingSpan) { },
emitPos: function (pos) { },
+ changeEmitSourcePos: function () { },
getText: function () { return undefined; },
getSourceMappingURL: function () { return undefined; },
initialize: function (filePath, sourceMapFilePath, sourceFiles, isBundledEmit) { },
@@ -23937,6 +24239,8 @@ var ts;
var compilerOptions = host.getCompilerOptions();
var currentSourceFile;
var sourceMapDir;
+ var stopOverridingSpan = false;
+ var modifyLastSourcePos = false;
var sourceMapSourceIndex;
var lastRecordedSourceMapSpan;
var lastEncodedSourceMapSpan;
@@ -23948,6 +24252,7 @@ var ts;
emitPos: emitPos,
emitStart: emitStart,
emitEnd: emitEnd,
+ changeEmitSourcePos: changeEmitSourcePos,
getText: getText,
getSourceMappingURL: getSourceMappingURL,
initialize: initialize,
@@ -24011,6 +24316,29 @@ var ts;
lastEncodedNameIndex = undefined;
sourceMapData = undefined;
}
+ function updateLastEncodedAndRecordedSpans() {
+ if (modifyLastSourcePos) {
+ modifyLastSourcePos = false;
+ lastRecordedSourceMapSpan.emittedLine = lastEncodedSourceMapSpan.emittedLine;
+ lastRecordedSourceMapSpan.emittedColumn = lastEncodedSourceMapSpan.emittedColumn;
+ sourceMapData.sourceMapDecodedMappings.pop();
+ lastEncodedSourceMapSpan = sourceMapData.sourceMapDecodedMappings.length ?
+ sourceMapData.sourceMapDecodedMappings[sourceMapData.sourceMapDecodedMappings.length - 1] :
+ undefined;
+ var sourceMapMappings = sourceMapData.sourceMapMappings;
+ var lenthToSet = sourceMapMappings.length - 1;
+ for (; lenthToSet >= 0; lenthToSet--) {
+ var currentChar = sourceMapMappings.charAt(lenthToSet);
+ if (currentChar === ",") {
+ break;
+ }
+ if (currentChar === ";" && lenthToSet !== 0 && sourceMapMappings.charAt(lenthToSet - 1) !== ";") {
+ break;
+ }
+ }
+ sourceMapData.sourceMapMappings = sourceMapMappings.substr(0, Math.max(0, lenthToSet));
+ }
+ }
function encodeLastRecordedSourceMapSpan() {
if (!lastRecordedSourceMapSpan || lastRecordedSourceMapSpan === lastEncodedSourceMapSpan) {
return;
@@ -24032,6 +24360,7 @@ var ts;
sourceMapData.sourceMapMappings += base64VLQFormatEncode(lastRecordedSourceMapSpan.sourceLine - lastEncodedSourceMapSpan.sourceLine);
sourceMapData.sourceMapMappings += base64VLQFormatEncode(lastRecordedSourceMapSpan.sourceColumn - lastEncodedSourceMapSpan.sourceColumn);
if (lastRecordedSourceMapSpan.nameIndex >= 0) {
+ ts.Debug.assert(false, "We do not support name index right now, Make sure to update updateLastEncodedAndRecordedSpans when we start using this");
sourceMapData.sourceMapMappings += base64VLQFormatEncode(lastRecordedSourceMapSpan.nameIndex - lastEncodedNameIndex);
lastEncodedNameIndex = lastRecordedSourceMapSpan.nameIndex;
}
@@ -24061,19 +24390,29 @@ var ts;
sourceColumn: sourceLinePos.character,
sourceIndex: sourceMapSourceIndex
};
+ stopOverridingSpan = false;
}
- else {
+ else if (!stopOverridingSpan) {
lastRecordedSourceMapSpan.sourceLine = sourceLinePos.line;
lastRecordedSourceMapSpan.sourceColumn = sourceLinePos.character;
lastRecordedSourceMapSpan.sourceIndex = sourceMapSourceIndex;
}
+ updateLastEncodedAndRecordedSpans();
+ }
+ function getStartPos(range) {
+ var rangeHasDecorators = !!range.decorators;
+ return range.pos !== -1 ? ts.skipTrivia(currentSourceFile.text, rangeHasDecorators ? range.decorators.end : range.pos) : -1;
}
function emitStart(range) {
- var rangeHasDecorators = !!range.decorators;
- emitPos(range.pos !== -1 ? ts.skipTrivia(currentSourceFile.text, rangeHasDecorators ? range.decorators.end : range.pos) : -1);
+ emitPos(getStartPos(range));
}
- function emitEnd(range) {
+ function emitEnd(range, stopOverridingEnd) {
emitPos(range.end);
+ stopOverridingSpan = stopOverridingEnd;
+ }
+ function changeEmitSourcePos() {
+ ts.Debug.assert(!modifyLastSourcePos);
+ modifyLastSourcePos = true;
}
function setSourceFile(sourceFile) {
currentSourceFile = sourceFile;
@@ -24160,6 +24499,7 @@ var ts;
var writeTextOfNode;
var writer = createAndSetNewTextWriterWithSymbolWriter();
var enclosingDeclaration;
+ var resultHasExternalModuleIndicator;
var currentText;
var currentLineMap;
var currentIdentifiers;
@@ -24190,6 +24530,7 @@ var ts;
}
});
}
+ resultHasExternalModuleIndicator = false;
if (!isBundledEmit || !ts.isExternalModule(sourceFile)) {
noDeclare = false;
emitSourceFile(sourceFile);
@@ -24208,7 +24549,7 @@ var ts;
var oldWriter = writer;
ts.forEach(moduleElementDeclarationEmitInfo, function (aliasEmitInfo) {
if (aliasEmitInfo.isVisible && !aliasEmitInfo.asynchronousOutput) {
- ts.Debug.assert(aliasEmitInfo.node.kind === 224);
+ ts.Debug.assert(aliasEmitInfo.node.kind === 225);
createAndSetNewTextWriterWithSymbolWriter();
ts.Debug.assert(aliasEmitInfo.indent === 0 || (aliasEmitInfo.indent === 1 && isBundledEmit));
for (var i = 0; i < aliasEmitInfo.indent; i++) {
@@ -24225,6 +24566,10 @@ var ts;
allSourcesModuleElementDeclarationEmitInfo = allSourcesModuleElementDeclarationEmitInfo.concat(moduleElementDeclarationEmitInfo);
moduleElementDeclarationEmitInfo = [];
}
+ if (!isBundledEmit && ts.isExternalModule(sourceFile) && sourceFile.moduleAugmentations.length && !resultHasExternalModuleIndicator) {
+ write("export {};");
+ writeLine();
+ }
});
return {
reportedDeclarationError: reportedDeclarationError,
@@ -24271,10 +24616,10 @@ var ts;
var oldWriter = writer;
ts.forEach(nodes, function (declaration) {
var nodeToCheck;
- if (declaration.kind === 213) {
+ if (declaration.kind === 214) {
nodeToCheck = declaration.parent.parent;
}
- else if (declaration.kind === 227 || declaration.kind === 228 || declaration.kind === 225) {
+ else if (declaration.kind === 228 || declaration.kind === 229 || declaration.kind === 226) {
ts.Debug.fail("We should be getting ImportDeclaration instead to write");
}
else {
@@ -24285,7 +24630,7 @@ var ts;
moduleElementEmitInfo = ts.forEach(asynchronousSubModuleDeclarationEmitInfo, function (declEmitInfo) { return declEmitInfo.node === nodeToCheck ? declEmitInfo : undefined; });
}
if (moduleElementEmitInfo) {
- if (moduleElementEmitInfo.node.kind === 224) {
+ if (moduleElementEmitInfo.node.kind === 225) {
moduleElementEmitInfo.isVisible = true;
}
else {
@@ -24293,12 +24638,12 @@ var ts;
for (var declarationIndent = moduleElementEmitInfo.indent; declarationIndent; declarationIndent--) {
increaseIndent();
}
- if (nodeToCheck.kind === 220) {
+ if (nodeToCheck.kind === 221) {
ts.Debug.assert(asynchronousSubModuleDeclarationEmitInfo === undefined);
asynchronousSubModuleDeclarationEmitInfo = [];
}
writeModuleElement(nodeToCheck);
- if (nodeToCheck.kind === 220) {
+ if (nodeToCheck.kind === 221) {
moduleElementEmitInfo.subModuleElementDeclarationEmitInfo = asynchronousSubModuleDeclarationEmitInfo;
asynchronousSubModuleDeclarationEmitInfo = undefined;
}
@@ -24401,35 +24746,35 @@ var ts;
case 120:
case 131:
case 103:
- case 161:
case 162:
+ case 163:
return writeTextOfNode(currentText, type);
- case 190:
+ case 191:
return emitExpressionWithTypeArguments(type);
- case 151:
- return emitTypeReference(type);
- case 154:
- return emitTypeQuery(type);
- case 156:
- return emitArrayType(type);
- case 157:
- return emitTupleType(type);
- case 158:
- return emitUnionType(type);
- case 159:
- return emitIntersectionType(type);
- case 160:
- return emitParenType(type);
case 152:
- case 153:
- return emitSignatureDeclarationWithJsDocComments(type);
+ return emitTypeReference(type);
case 155:
+ return emitTypeQuery(type);
+ case 157:
+ return emitArrayType(type);
+ case 158:
+ return emitTupleType(type);
+ case 159:
+ return emitUnionType(type);
+ case 160:
+ return emitIntersectionType(type);
+ case 161:
+ return emitParenType(type);
+ case 153:
+ case 154:
+ return emitSignatureDeclarationWithJsDocComments(type);
+ case 156:
return emitTypeLiteral(type);
case 69:
return emitEntityName(type);
- case 135:
+ case 136:
return emitEntityName(type);
- case 150:
+ case 151:
return emitTypePredicate(type);
}
function writeEntityName(entityName) {
@@ -24437,21 +24782,21 @@ var ts;
writeTextOfNode(currentText, entityName);
}
else {
- var left = entityName.kind === 135 ? entityName.left : entityName.expression;
- var right = entityName.kind === 135 ? entityName.right : entityName.name;
+ var left = entityName.kind === 136 ? entityName.left : entityName.expression;
+ var right = entityName.kind === 136 ? entityName.right : entityName.name;
writeEntityName(left);
write(".");
writeTextOfNode(currentText, right);
}
}
function emitEntityName(entityName) {
- var visibilityResult = resolver.isEntityNameVisible(entityName, entityName.parent.kind === 223 ? entityName.parent : enclosingDeclaration);
+ var visibilityResult = resolver.isEntityNameVisible(entityName, entityName.parent.kind === 224 ? entityName.parent : enclosingDeclaration);
handleSymbolAccessibilityError(visibilityResult);
writeEntityName(entityName);
}
function emitExpressionWithTypeArguments(node) {
if (ts.isSupportedExpressionWithTypeArguments(node)) {
- ts.Debug.assert(node.expression.kind === 69 || node.expression.kind === 168);
+ ts.Debug.assert(node.expression.kind === 69 || node.expression.kind === 169);
emitEntityName(node.expression);
if (node.typeArguments) {
write("<");
@@ -24525,9 +24870,9 @@ var ts;
var count = 0;
while (true) {
count++;
- var name_18 = baseName + "_" + count;
- if (!ts.hasProperty(currentIdentifiers, name_18)) {
- return name_18;
+ var name_21 = baseName + "_" + count;
+ if (!ts.hasProperty(currentIdentifiers, name_21)) {
+ return name_21;
}
}
}
@@ -24568,10 +24913,10 @@ var ts;
if (isModuleElementVisible) {
writeModuleElement(node);
}
- else if (node.kind === 223 ||
- (node.parent.kind === 250 && isCurrentFileExternalModule)) {
+ else if (node.kind === 224 ||
+ (node.parent.kind === 251 && isCurrentFileExternalModule)) {
var isVisible;
- if (asynchronousSubModuleDeclarationEmitInfo && node.parent.kind !== 250) {
+ if (asynchronousSubModuleDeclarationEmitInfo && node.parent.kind !== 251) {
asynchronousSubModuleDeclarationEmitInfo.push({
node: node,
outputPos: writer.getTextPos(),
@@ -24580,7 +24925,7 @@ var ts;
});
}
else {
- if (node.kind === 224) {
+ if (node.kind === 225) {
var importDeclaration = node;
if (importDeclaration.importClause) {
isVisible = (importDeclaration.importClause.name && resolver.isDeclarationVisible(importDeclaration.importClause)) ||
@@ -24598,37 +24943,37 @@ var ts;
}
function writeModuleElement(node) {
switch (node.kind) {
- case 215:
- return writeFunctionDeclaration(node);
- case 195:
- return writeVariableStatement(node);
- case 217:
- return writeInterfaceDeclaration(node);
case 216:
- return writeClassDeclaration(node);
+ return writeFunctionDeclaration(node);
+ case 196:
+ return writeVariableStatement(node);
case 218:
- return writeTypeAliasDeclaration(node);
+ return writeInterfaceDeclaration(node);
+ case 217:
+ return writeClassDeclaration(node);
case 219:
- return writeEnumDeclaration(node);
+ return writeTypeAliasDeclaration(node);
case 220:
+ return writeEnumDeclaration(node);
+ case 221:
return writeModuleDeclaration(node);
- case 223:
- return writeImportEqualsDeclaration(node);
case 224:
+ return writeImportEqualsDeclaration(node);
+ case 225:
return writeImportDeclaration(node);
default:
ts.Debug.fail("Unknown symbol kind");
}
}
function emitModuleElementDeclarationFlags(node) {
- if (node.parent.kind === 250) {
+ if (node.parent.kind === 251) {
if (node.flags & 2) {
write("export ");
}
if (node.flags & 512) {
write("default ");
}
- else if (node.kind !== 217 && !noDeclare) {
+ else if (node.kind !== 218 && !noDeclare) {
write("declare ");
}
}
@@ -24675,7 +25020,7 @@ var ts;
}
function isVisibleNamedBinding(namedBindings) {
if (namedBindings) {
- if (namedBindings.kind === 226) {
+ if (namedBindings.kind === 227) {
return resolver.isDeclarationVisible(namedBindings);
}
else {
@@ -24701,7 +25046,7 @@ var ts;
if (currentWriterPos !== writer.getTextPos()) {
write(", ");
}
- if (node.importClause.namedBindings.kind === 226) {
+ if (node.importClause.namedBindings.kind === 227) {
write("* as ");
writeTextOfNode(currentText, node.importClause.namedBindings.name);
}
@@ -24718,11 +25063,15 @@ var ts;
writer.writeLine();
}
function emitExternalModuleSpecifier(parent) {
+ resultHasExternalModuleIndicator = resultHasExternalModuleIndicator || parent.kind !== 221;
var moduleSpecifier;
- if (parent.kind === 223) {
+ if (parent.kind === 224) {
var node = parent;
moduleSpecifier = ts.getExternalModuleImportEqualsDeclarationExpression(node);
}
+ else if (parent.kind === 221) {
+ moduleSpecifier = parent.name;
+ }
else {
var node = parent;
moduleSpecifier = node.moduleSpecifier;
@@ -24771,14 +25120,24 @@ var ts;
function writeModuleDeclaration(node) {
emitJsDocComments(node);
emitModuleElementDeclarationFlags(node);
- if (node.flags & 65536) {
- write("namespace ");
+ if (ts.isGlobalScopeAugmentation(node)) {
+ write("global ");
}
else {
- write("module ");
+ if (node.flags & 65536) {
+ write("namespace ");
+ }
+ else {
+ write("module ");
+ }
+ if (ts.isExternalModuleAugmentation(node)) {
+ emitExternalModuleSpecifier(node);
+ }
+ else {
+ writeTextOfNode(currentText, node.name);
+ }
}
- writeTextOfNode(currentText, node.name);
- while (node.body.kind !== 221) {
+ while (node.body.kind !== 222) {
node = node.body;
write(".");
writeTextOfNode(currentText, node.name);
@@ -24843,7 +25202,7 @@ var ts;
writeLine();
}
function isPrivateMethodTypeParameter(node) {
- return node.parent.kind === 143 && (node.parent.flags & 16);
+ return node.parent.kind === 144 && (node.parent.flags & 16);
}
function emitTypeParameters(typeParameters) {
function emitTypeParameter(node) {
@@ -24853,15 +25212,15 @@ var ts;
writeTextOfNode(currentText, node.name);
if (node.constraint && !isPrivateMethodTypeParameter(node)) {
write(" extends ");
- if (node.parent.kind === 152 ||
- node.parent.kind === 153 ||
- (node.parent.parent && node.parent.parent.kind === 155)) {
- ts.Debug.assert(node.parent.kind === 143 ||
- node.parent.kind === 142 ||
- node.parent.kind === 152 ||
+ if (node.parent.kind === 153 ||
+ node.parent.kind === 154 ||
+ (node.parent.parent && node.parent.parent.kind === 156)) {
+ ts.Debug.assert(node.parent.kind === 144 ||
+ node.parent.kind === 143 ||
node.parent.kind === 153 ||
- node.parent.kind === 147 ||
- node.parent.kind === 148);
+ node.parent.kind === 154 ||
+ node.parent.kind === 148 ||
+ node.parent.kind === 149);
emitType(node.constraint);
}
else {
@@ -24871,31 +25230,31 @@ var ts;
function getTypeParameterConstraintVisibilityError(symbolAccesibilityResult) {
var diagnosticMessage;
switch (node.parent.kind) {
- case 216:
+ case 217:
diagnosticMessage = ts.Diagnostics.Type_parameter_0_of_exported_class_has_or_is_using_private_name_1;
break;
- case 217:
+ case 218:
diagnosticMessage = ts.Diagnostics.Type_parameter_0_of_exported_interface_has_or_is_using_private_name_1;
break;
- case 148:
+ case 149:
diagnosticMessage = ts.Diagnostics.Type_parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_1;
break;
- case 147:
+ case 148:
diagnosticMessage = ts.Diagnostics.Type_parameter_0_of_call_signature_from_exported_interface_has_or_is_using_private_name_1;
break;
+ case 144:
case 143:
- case 142:
if (node.parent.flags & 64) {
diagnosticMessage = ts.Diagnostics.Type_parameter_0_of_public_static_method_from_exported_class_has_or_is_using_private_name_1;
}
- else if (node.parent.parent.kind === 216) {
+ else if (node.parent.parent.kind === 217) {
diagnosticMessage = ts.Diagnostics.Type_parameter_0_of_public_method_from_exported_class_has_or_is_using_private_name_1;
}
else {
diagnosticMessage = ts.Diagnostics.Type_parameter_0_of_method_from_exported_interface_has_or_is_using_private_name_1;
}
break;
- case 215:
+ case 216:
diagnosticMessage = ts.Diagnostics.Type_parameter_0_of_exported_function_has_or_is_using_private_name_1;
break;
default:
@@ -24928,7 +25287,7 @@ var ts;
}
function getHeritageClauseVisibilityError(symbolAccesibilityResult) {
var diagnosticMessage;
- if (node.parent.parent.kind === 216) {
+ if (node.parent.parent.kind === 217) {
diagnosticMessage = isImplementsList ?
ts.Diagnostics.Implements_clause_of_exported_class_0_has_or_is_using_private_name_1 :
ts.Diagnostics.Extends_clause_of_exported_class_0_has_or_is_using_private_name_1;
@@ -25008,16 +25367,16 @@ var ts;
writeLine();
}
function emitVariableDeclaration(node) {
- if (node.kind !== 213 || resolver.isDeclarationVisible(node)) {
+ if (node.kind !== 214 || resolver.isDeclarationVisible(node)) {
if (ts.isBindingPattern(node.name)) {
emitBindingPattern(node.name);
}
else {
writeTextOfNode(currentText, node.name);
- if ((node.kind === 141 || node.kind === 140) && ts.hasQuestionToken(node)) {
+ if ((node.kind === 142 || node.kind === 141) && ts.hasQuestionToken(node)) {
write("?");
}
- if ((node.kind === 141 || node.kind === 140) && node.parent.kind === 155) {
+ if ((node.kind === 142 || node.kind === 141) && node.parent.kind === 156) {
emitTypeOfVariableDeclarationFromTypeLiteral(node);
}
else if (!(node.flags & 16)) {
@@ -25026,14 +25385,14 @@ var ts;
}
}
function getVariableDeclarationTypeVisibilityDiagnosticMessage(symbolAccesibilityResult) {
- if (node.kind === 213) {
+ if (node.kind === 214) {
return symbolAccesibilityResult.errorModuleName ?
symbolAccesibilityResult.accessibility === 2 ?
ts.Diagnostics.Exported_variable_0_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named :
ts.Diagnostics.Exported_variable_0_has_or_is_using_name_1_from_private_module_2 :
ts.Diagnostics.Exported_variable_0_has_or_is_using_private_name_1;
}
- else if (node.kind === 141 || node.kind === 140) {
+ else if (node.kind === 142 || node.kind === 141) {
if (node.flags & 64) {
return symbolAccesibilityResult.errorModuleName ?
symbolAccesibilityResult.accessibility === 2 ?
@@ -25041,7 +25400,7 @@ var ts;
ts.Diagnostics.Public_static_property_0_of_exported_class_has_or_is_using_name_1_from_private_module_2 :
ts.Diagnostics.Public_static_property_0_of_exported_class_has_or_is_using_private_name_1;
}
- else if (node.parent.kind === 216) {
+ else if (node.parent.kind === 217) {
return symbolAccesibilityResult.errorModuleName ?
symbolAccesibilityResult.accessibility === 2 ?
ts.Diagnostics.Public_property_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named :
@@ -25067,7 +25426,7 @@ var ts;
var elements = [];
for (var _i = 0, _a = bindingPattern.elements; _i < _a.length; _i++) {
var element = _a[_i];
- if (element.kind !== 189) {
+ if (element.kind !== 190) {
elements.push(element);
}
}
@@ -25133,7 +25492,7 @@ var ts;
accessorWithTypeAnnotation = node;
var type = getTypeAnnotationFromAccessor(node);
if (!type) {
- var anotherAccessor = node.kind === 145 ? accessors.setAccessor : accessors.getAccessor;
+ var anotherAccessor = node.kind === 146 ? accessors.setAccessor : accessors.getAccessor;
type = getTypeAnnotationFromAccessor(anotherAccessor);
if (type) {
accessorWithTypeAnnotation = anotherAccessor;
@@ -25146,7 +25505,7 @@ var ts;
}
function getTypeAnnotationFromAccessor(accessor) {
if (accessor) {
- return accessor.kind === 145
+ return accessor.kind === 146
? accessor.type
: accessor.parameters.length > 0
? accessor.parameters[0].type
@@ -25155,7 +25514,7 @@ var ts;
}
function getAccessorDeclarationTypeVisibilityError(symbolAccesibilityResult) {
var diagnosticMessage;
- if (accessorWithTypeAnnotation.kind === 146) {
+ if (accessorWithTypeAnnotation.kind === 147) {
if (accessorWithTypeAnnotation.parent.flags & 64) {
diagnosticMessage = symbolAccesibilityResult.errorModuleName ?
ts.Diagnostics.Parameter_0_of_public_static_property_setter_from_exported_class_has_or_is_using_name_1_from_private_module_2 :
@@ -25201,17 +25560,17 @@ var ts;
}
if (!resolver.isImplementationOfOverload(node)) {
emitJsDocComments(node);
- if (node.kind === 215) {
+ if (node.kind === 216) {
emitModuleElementDeclarationFlags(node);
}
- else if (node.kind === 143) {
+ else if (node.kind === 144) {
emitClassMemberDeclarationFlags(node);
}
- if (node.kind === 215) {
+ if (node.kind === 216) {
write("function ");
writeTextOfNode(currentText, node.name);
}
- else if (node.kind === 144) {
+ else if (node.kind === 145) {
write("constructor");
}
else {
@@ -25230,31 +25589,31 @@ var ts;
function emitSignatureDeclaration(node) {
var prevEnclosingDeclaration = enclosingDeclaration;
enclosingDeclaration = node;
- if (node.kind === 148 || node.kind === 153) {
+ if (node.kind === 149 || node.kind === 154) {
write("new ");
}
emitTypeParameters(node.typeParameters);
- if (node.kind === 149) {
+ if (node.kind === 150) {
write("[");
}
else {
write("(");
}
emitCommaList(node.parameters, emitParameterDeclaration);
- if (node.kind === 149) {
+ if (node.kind === 150) {
write("]");
}
else {
write(")");
}
- var isFunctionTypeOrConstructorType = node.kind === 152 || node.kind === 153;
- if (isFunctionTypeOrConstructorType || node.parent.kind === 155) {
+ var isFunctionTypeOrConstructorType = node.kind === 153 || node.kind === 154;
+ if (isFunctionTypeOrConstructorType || node.parent.kind === 156) {
if (node.type) {
write(isFunctionTypeOrConstructorType ? " => " : ": ");
emitType(node.type);
}
}
- else if (node.kind !== 144 && !(node.flags & 16)) {
+ else if (node.kind !== 145 && !(node.flags & 16)) {
writeReturnTypeAtSignature(node, getReturnTypeVisibilityError);
}
enclosingDeclaration = prevEnclosingDeclaration;
@@ -25265,23 +25624,23 @@ var ts;
function getReturnTypeVisibilityError(symbolAccesibilityResult) {
var diagnosticMessage;
switch (node.kind) {
- case 148:
+ case 149:
diagnosticMessage = symbolAccesibilityResult.errorModuleName ?
ts.Diagnostics.Return_type_of_constructor_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1 :
ts.Diagnostics.Return_type_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_0;
break;
- case 147:
+ case 148:
diagnosticMessage = symbolAccesibilityResult.errorModuleName ?
ts.Diagnostics.Return_type_of_call_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1 :
ts.Diagnostics.Return_type_of_call_signature_from_exported_interface_has_or_is_using_private_name_0;
break;
- case 149:
+ case 150:
diagnosticMessage = symbolAccesibilityResult.errorModuleName ?
ts.Diagnostics.Return_type_of_index_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1 :
ts.Diagnostics.Return_type_of_index_signature_from_exported_interface_has_or_is_using_private_name_0;
break;
+ case 144:
case 143:
- case 142:
if (node.flags & 64) {
diagnosticMessage = symbolAccesibilityResult.errorModuleName ?
symbolAccesibilityResult.accessibility === 2 ?
@@ -25289,7 +25648,7 @@ var ts;
ts.Diagnostics.Return_type_of_public_static_method_from_exported_class_has_or_is_using_name_0_from_private_module_1 :
ts.Diagnostics.Return_type_of_public_static_method_from_exported_class_has_or_is_using_private_name_0;
}
- else if (node.parent.kind === 216) {
+ else if (node.parent.kind === 217) {
diagnosticMessage = symbolAccesibilityResult.errorModuleName ?
symbolAccesibilityResult.accessibility === 2 ?
ts.Diagnostics.Return_type_of_public_method_from_exported_class_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named :
@@ -25302,7 +25661,7 @@ var ts;
ts.Diagnostics.Return_type_of_method_from_exported_interface_has_or_is_using_private_name_0;
}
break;
- case 215:
+ case 216:
diagnosticMessage = symbolAccesibilityResult.errorModuleName ?
symbolAccesibilityResult.accessibility === 2 ?
ts.Diagnostics.Return_type_of_exported_function_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named :
@@ -25334,9 +25693,9 @@ var ts;
write("?");
}
decreaseIndent();
- if (node.parent.kind === 152 ||
- node.parent.kind === 153 ||
- node.parent.parent.kind === 155) {
+ if (node.parent.kind === 153 ||
+ node.parent.kind === 154 ||
+ node.parent.parent.kind === 156) {
emitTypeOfVariableDeclarationFromTypeLiteral(node);
}
else if (!(node.parent.flags & 16)) {
@@ -25352,22 +25711,22 @@ var ts;
}
function getParameterDeclarationTypeVisibilityDiagnosticMessage(symbolAccesibilityResult) {
switch (node.parent.kind) {
- case 144:
+ case 145:
return symbolAccesibilityResult.errorModuleName ?
symbolAccesibilityResult.accessibility === 2 ?
ts.Diagnostics.Parameter_0_of_constructor_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named :
ts.Diagnostics.Parameter_0_of_constructor_from_exported_class_has_or_is_using_name_1_from_private_module_2 :
ts.Diagnostics.Parameter_0_of_constructor_from_exported_class_has_or_is_using_private_name_1;
- case 148:
+ case 149:
return symbolAccesibilityResult.errorModuleName ?
ts.Diagnostics.Parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_name_1_from_private_module_2 :
ts.Diagnostics.Parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_1;
- case 147:
+ case 148:
return symbolAccesibilityResult.errorModuleName ?
ts.Diagnostics.Parameter_0_of_call_signature_from_exported_interface_has_or_is_using_name_1_from_private_module_2 :
ts.Diagnostics.Parameter_0_of_call_signature_from_exported_interface_has_or_is_using_private_name_1;
+ case 144:
case 143:
- case 142:
if (node.parent.flags & 64) {
return symbolAccesibilityResult.errorModuleName ?
symbolAccesibilityResult.accessibility === 2 ?
@@ -25375,7 +25734,7 @@ var ts;
ts.Diagnostics.Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_name_1_from_private_module_2 :
ts.Diagnostics.Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_private_name_1;
}
- else if (node.parent.parent.kind === 216) {
+ else if (node.parent.parent.kind === 217) {
return symbolAccesibilityResult.errorModuleName ?
symbolAccesibilityResult.accessibility === 2 ?
ts.Diagnostics.Parameter_0_of_public_method_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named :
@@ -25387,7 +25746,7 @@ var ts;
ts.Diagnostics.Parameter_0_of_method_from_exported_interface_has_or_is_using_name_1_from_private_module_2 :
ts.Diagnostics.Parameter_0_of_method_from_exported_interface_has_or_is_using_private_name_1;
}
- case 215:
+ case 216:
return symbolAccesibilityResult.errorModuleName ?
symbolAccesibilityResult.accessibility === 2 ?
ts.Diagnostics.Parameter_0_of_exported_function_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named :
@@ -25398,12 +25757,12 @@ var ts;
}
}
function emitBindingPattern(bindingPattern) {
- if (bindingPattern.kind === 163) {
+ if (bindingPattern.kind === 164) {
write("{");
emitCommaList(bindingPattern.elements, emitBindingElement);
write("}");
}
- else if (bindingPattern.kind === 164) {
+ else if (bindingPattern.kind === 165) {
write("[");
var elements = bindingPattern.elements;
emitCommaList(elements, emitBindingElement);
@@ -25414,10 +25773,10 @@ var ts;
}
}
function emitBindingElement(bindingElement) {
- if (bindingElement.kind === 189) {
+ if (bindingElement.kind === 190) {
write(" ");
}
- else if (bindingElement.kind === 165) {
+ else if (bindingElement.kind === 166) {
if (bindingElement.propertyName) {
writeTextOfNode(currentText, bindingElement.propertyName);
write(": ");
@@ -25439,39 +25798,39 @@ var ts;
}
function emitNode(node) {
switch (node.kind) {
- case 215:
- case 220:
- case 223:
- case 217:
case 216:
- case 218:
- case 219:
- return emitModuleElement(node, isModuleElementVisible(node));
- case 195:
- return emitModuleElement(node, isVariableStatementVisible(node));
+ case 221:
case 224:
+ case 218:
+ case 217:
+ case 219:
+ case 220:
+ return emitModuleElement(node, isModuleElementVisible(node));
+ case 196:
+ return emitModuleElement(node, isVariableStatementVisible(node));
+ case 225:
return emitModuleElement(node, !node.importClause);
- case 230:
+ case 231:
return emitExportDeclaration(node);
+ case 145:
case 144:
case 143:
- case 142:
return writeFunctionDeclaration(node);
- case 148:
- case 147:
case 149:
+ case 148:
+ case 150:
return emitSignatureDeclarationWithJsDocComments(node);
- case 145:
case 146:
+ case 147:
return emitAccessorDeclaration(node);
+ case 142:
case 141:
- case 140:
return emitPropertyDeclaration(node);
- case 249:
- return emitEnumMemberDeclaration(node);
- case 229:
- return emitExportAssignment(node);
case 250:
+ return emitEnumMemberDeclaration(node);
+ case 230:
+ return emitExportAssignment(node);
+ case 251:
return emitSourceFile(node);
}
}
@@ -25798,7 +26157,7 @@ var ts;
var decorateHelper = "\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};";
var metadataHelper = "\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};";
var paramHelper = "\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};";
- var awaiterHelper = "\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, Promise, generator) {\n return new Promise(function (resolve, reject) {\n generator = generator.call(thisArg, _arguments);\n function cast(value) { return value instanceof Promise && value.constructor === Promise ? value : new Promise(function (resolve) { resolve(value); }); }\n function onfulfill(value) { try { step(\"next\", value); } catch (e) { reject(e); } }\n function onreject(value) { try { step(\"throw\", value); } catch (e) { reject(e); } }\n function step(verb, value) {\n var result = generator[verb](value);\n result.done ? resolve(result.value) : cast(result.value).then(onfulfill, onreject);\n }\n step(\"next\", void 0);\n });\n};";
+ var awaiterHelper = "\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n return new P(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator.throw(value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\n step((generator = generator.call(thisArg, _arguments)).next());\n });\n};";
var compilerOptions = host.getCompilerOptions();
var languageVersion = ts.getEmitScriptTarget(compilerOptions);
var modulekind = ts.getEmitModuleKind(compilerOptions);
@@ -25886,6 +26245,7 @@ var ts;
var sourceMapData;
var isOwnFileEmit;
var emitLeadingCommentsOfPosition = compilerOptions.removeComments ? function (pos) { } : emitLeadingCommentsOfPositionWorker;
+ var setSourceMapWriterEmit = compilerOptions.sourceMap || compilerOptions.inlineSourceMap ? changeSourceMapEmit : function (writer) { };
var moduleEmitDelegates = (_a = {},
_a[5] = emitES6Module,
_a[2] = emitAMDModule,
@@ -25964,19 +26324,19 @@ var ts;
}
function makeTempVariableName(flags) {
if (flags && !(tempFlags & flags)) {
- var name_19 = flags === 268435456 ? "_i" : "_n";
- if (isUniqueName(name_19)) {
+ var name_22 = flags === 268435456 ? "_i" : "_n";
+ if (isUniqueName(name_22)) {
tempFlags |= flags;
- return name_19;
+ return name_22;
}
}
while (true) {
var count = tempFlags & 268435455;
tempFlags++;
if (count !== 8 && count !== 13) {
- var name_20 = count < 26 ? "_" + String.fromCharCode(97 + count) : "_" + (count - 26);
- if (isUniqueName(name_20)) {
- return name_20;
+ var name_23 = count < 26 ? "_" + String.fromCharCode(97 + count) : "_" + (count - 26);
+ if (isUniqueName(name_23)) {
+ return name_23;
}
}
}
@@ -26014,17 +26374,17 @@ var ts;
switch (node.kind) {
case 69:
return makeUniqueName(node.text);
+ case 221:
case 220:
- case 219:
return generateNameForModuleOrEnum(node);
- case 224:
- case 230:
+ case 225:
+ case 231:
return generateNameForImportOrExportDeclaration(node);
- case 215:
case 216:
- case 229:
+ case 217:
+ case 230:
return generateNameForExportDefault();
- case 188:
+ case 189:
return generateNameForClassExpression();
}
}
@@ -26264,10 +26624,10 @@ var ts;
emitParenthesizedIf(node.tag, needsParenthesisForPropertyAccessOrInvocation(node.tag));
write("(");
emit(tempVariable);
- if (node.template.kind === 185) {
+ if (node.template.kind === 186) {
ts.forEach(node.template.templateSpans, function (templateSpan) {
write(", ");
- var needsParens = templateSpan.expression.kind === 183
+ var needsParens = templateSpan.expression.kind === 184
&& templateSpan.expression.operatorToken.kind === 24;
emitParenthesizedIf(templateSpan.expression, needsParens);
});
@@ -26291,7 +26651,7 @@ var ts;
}
for (var i = 0, n = node.templateSpans.length; i < n; i++) {
var templateSpan = node.templateSpans[i];
- var needsParens = templateSpan.expression.kind !== 174
+ var needsParens = templateSpan.expression.kind !== 175
&& comparePrecedenceToBinaryPlus(templateSpan.expression) !== 1;
if (i > 0 || headEmitted) {
write(" + ");
@@ -26311,11 +26671,11 @@ var ts;
}
function templateNeedsParens(template, parent) {
switch (parent.kind) {
- case 170:
case 171:
- return parent.expression === template;
case 172:
- case 174:
+ return parent.expression === template;
+ case 173:
+ case 175:
return false;
default:
return comparePrecedenceToBinaryPlus(parent) !== -1;
@@ -26323,7 +26683,7 @@ var ts;
}
function comparePrecedenceToBinaryPlus(expression) {
switch (expression.kind) {
- case 183:
+ case 184:
switch (expression.operatorToken.kind) {
case 37:
case 39:
@@ -26335,8 +26695,8 @@ var ts;
default:
return -1;
}
- case 186:
- case 184:
+ case 187:
+ case 185:
return -1;
default:
return 1;
@@ -26392,37 +26752,37 @@ var ts;
}
else {
var attrs = openingNode.attributes;
- if (ts.forEach(attrs, function (attr) { return attr.kind === 241; })) {
+ if (ts.forEach(attrs, function (attr) { return attr.kind === 242; })) {
emitExpressionIdentifier(syntheticReactRef);
write(".__spread(");
var haveOpenedObjectLiteral = false;
- for (var i_1 = 0; i_1 < attrs.length; i_1++) {
- if (attrs[i_1].kind === 241) {
- if (i_1 === 0) {
+ for (var i = 0; i < attrs.length; i++) {
+ if (attrs[i].kind === 242) {
+ if (i === 0) {
write("{}, ");
}
if (haveOpenedObjectLiteral) {
write("}");
haveOpenedObjectLiteral = false;
}
- if (i_1 > 0) {
+ if (i > 0) {
write(", ");
}
- emit(attrs[i_1].expression);
+ emit(attrs[i].expression);
}
else {
- ts.Debug.assert(attrs[i_1].kind === 240);
+ ts.Debug.assert(attrs[i].kind === 241);
if (haveOpenedObjectLiteral) {
write(", ");
}
else {
haveOpenedObjectLiteral = true;
- if (i_1 > 0) {
+ if (i > 0) {
write(", ");
}
write("{");
}
- emitJsxAttribute(attrs[i_1]);
+ emitJsxAttribute(attrs[i]);
}
}
if (haveOpenedObjectLiteral)
@@ -26431,7 +26791,7 @@ var ts;
}
else {
write("{");
- for (var i = 0; i < attrs.length; i++) {
+ for (var i = 0, n = attrs.length; i < n; i++) {
if (i > 0) {
write(", ");
}
@@ -26442,10 +26802,10 @@ var ts;
}
if (children) {
for (var i = 0; i < children.length; i++) {
- if (children[i].kind === 242 && !(children[i].expression)) {
+ if (children[i].kind === 243 && !(children[i].expression)) {
continue;
}
- if (children[i].kind === 238) {
+ if (children[i].kind === 239) {
var text = getTextToEmit(children[i]);
if (text !== undefined) {
write(", \"");
@@ -26462,11 +26822,11 @@ var ts;
write(")");
emitTrailingComments(openingNode);
}
- if (node.kind === 235) {
+ if (node.kind === 236) {
emitJsxElement(node.openingElement, node.children);
}
else {
- ts.Debug.assert(node.kind === 236);
+ ts.Debug.assert(node.kind === 237);
emitJsxElement(node);
}
}
@@ -26488,11 +26848,11 @@ var ts;
if (i > 0) {
write(" ");
}
- if (attribs[i].kind === 241) {
+ if (attribs[i].kind === 242) {
emitJsxSpreadAttribute(attribs[i]);
}
else {
- ts.Debug.assert(attribs[i].kind === 240);
+ ts.Debug.assert(attribs[i].kind === 241);
emitJsxAttribute(attribs[i]);
}
}
@@ -26500,11 +26860,11 @@ var ts;
function emitJsxOpeningOrSelfClosingElement(node) {
write("<");
emit(node.tagName);
- if (node.attributes.length > 0 || (node.kind === 236)) {
+ if (node.attributes.length > 0 || (node.kind === 237)) {
write(" ");
}
emitAttributes(node.attributes);
- if (node.kind === 236) {
+ if (node.kind === 237) {
write("/>");
}
else {
@@ -26523,20 +26883,20 @@ var ts;
}
emitJsxClosingElement(node.closingElement);
}
- if (node.kind === 235) {
+ if (node.kind === 236) {
emitJsxElement(node);
}
else {
- ts.Debug.assert(node.kind === 236);
+ ts.Debug.assert(node.kind === 237);
emitJsxOpeningOrSelfClosingElement(node);
}
}
function emitExpressionForPropertyName(node) {
- ts.Debug.assert(node.kind !== 165);
+ ts.Debug.assert(node.kind !== 166);
if (node.kind === 9) {
emitLiteral(node);
}
- else if (node.kind === 136) {
+ else if (node.kind === 137) {
if (ts.nodeIsDecorated(node.parent)) {
if (!computedPropertyNamesToGeneratedNames) {
computedPropertyNamesToGeneratedNames = [];
@@ -26567,62 +26927,62 @@ var ts;
function isExpressionIdentifier(node) {
var parent = node.parent;
switch (parent.kind) {
- case 166:
- case 191:
- case 183:
- case 170:
- case 243:
- case 136:
+ case 167:
+ case 192:
case 184:
- case 139:
- case 177:
- case 199:
- case 169:
- case 229:
- case 197:
- case 190:
- case 201:
+ case 171:
+ case 244:
+ case 137:
+ case 185:
+ case 140:
+ case 178:
+ case 200:
+ case 170:
+ case 230:
+ case 198:
+ case 191:
case 202:
case 203:
- case 198:
- case 239:
- case 236:
+ case 204:
+ case 199:
+ case 240:
case 237:
- case 241:
+ case 238:
case 242:
- case 171:
- case 174:
- case 182:
- case 181:
- case 206:
- case 248:
- case 187:
- case 208:
+ case 243:
case 172:
- case 192:
- case 210:
- case 173:
- case 178:
- case 179:
- case 200:
- case 207:
- case 186:
- return true;
- case 165:
- case 249:
- case 138:
- case 247:
- case 141:
- case 213:
- return parent.initializer === node;
- case 168:
- return parent.expression === node;
- case 176:
case 175:
+ case 183:
+ case 182:
+ case 207:
+ case 249:
+ case 188:
+ case 209:
+ case 173:
+ case 193:
+ case 211:
+ case 174:
+ case 179:
+ case 180:
+ case 201:
+ case 208:
+ case 187:
+ return true;
+ case 166:
+ case 250:
+ case 139:
+ case 248:
+ case 142:
+ case 214:
+ return parent.initializer === node;
+ case 169:
+ return parent.expression === node;
+ case 177:
+ case 176:
return parent.body === node;
- case 223:
+ case 224:
return parent.moduleReference === node;
- case 135:
+ case 136:
return parent.left === node;
}
return false;
@@ -26634,7 +26994,7 @@ var ts;
}
var container = resolver.getReferencedExportContainer(node);
if (container) {
- if (container.kind === 250) {
+ if (container.kind === 251) {
if (modulekind !== 5 && modulekind !== 4) {
write("exports.");
}
@@ -26648,15 +27008,15 @@ var ts;
if (modulekind !== 5) {
var declaration = resolver.getReferencedImportDeclaration(node);
if (declaration) {
- if (declaration.kind === 225) {
+ if (declaration.kind === 226) {
write(getGeneratedNameForNode(declaration.parent));
write(languageVersion === 0 ? "[\"default\"]" : ".default");
return;
}
- else if (declaration.kind === 228) {
+ else if (declaration.kind === 229) {
write(getGeneratedNameForNode(declaration.parent.parent.parent));
- var name_21 = declaration.propertyName || declaration.name;
- var identifier = ts.getTextOfNodeFromSourceText(currentText, name_21);
+ var name_24 = declaration.propertyName || declaration.name;
+ var identifier = ts.getTextOfNodeFromSourceText(currentText, name_24);
if (languageVersion === 0 && identifier === "default") {
write("[\"default\"]");
}
@@ -26685,13 +27045,13 @@ var ts;
}
function isNameOfNestedRedeclaration(node) {
if (languageVersion < 2) {
- var parent_6 = node.parent;
- switch (parent_6.kind) {
- case 165:
- case 216:
- case 219:
- case 213:
- return parent_6.name === node && resolver.isNestedRedeclaration(parent_6);
+ var parent_7 = node.parent;
+ switch (parent_7.kind) {
+ case 166:
+ case 217:
+ case 220:
+ case 214:
+ return parent_7.name === node && resolver.isNestedRedeclaration(parent_7);
}
}
return false;
@@ -26699,8 +27059,8 @@ var ts;
function emitIdentifier(node) {
if (convertedLoopState) {
if (node.text == "arguments" && resolver.isArgumentsLocalBinding(node)) {
- var name_22 = convertedLoopState.argumentsName || (convertedLoopState.argumentsName = makeUniqueName("arguments"));
- write(name_22);
+ var name_25 = convertedLoopState.argumentsName || (convertedLoopState.argumentsName = makeUniqueName("arguments"));
+ write(name_25);
return;
}
}
@@ -26800,10 +27160,10 @@ var ts;
}
}
function needsParenthesisForAwaitExpressionAsYield(node) {
- if (node.parent.kind === 183 && !ts.isAssignmentOperator(node.parent.operatorToken.kind)) {
+ if (node.parent.kind === 184 && !ts.isAssignmentOperator(node.parent.operatorToken.kind)) {
return true;
}
- else if (node.parent.kind === 184 && node.parent.condition === node) {
+ else if (node.parent.kind === 185 && node.parent.condition === node) {
return true;
}
return false;
@@ -26811,11 +27171,11 @@ var ts;
function needsParenthesisForPropertyAccessOrInvocation(node) {
switch (node.kind) {
case 69:
- case 166:
- case 168:
+ case 167:
case 169:
case 170:
- case 174:
+ case 171:
+ case 175:
return false;
}
return true;
@@ -26832,17 +27192,17 @@ var ts;
write(", ");
}
var e = elements[pos];
- if (e.kind === 187) {
+ if (e.kind === 188) {
e = e.expression;
emitParenthesizedIf(e, group === 0 && needsParenthesisForPropertyAccessOrInvocation(e));
pos++;
- if (pos === length && group === 0 && needsUniqueCopy && e.kind !== 166) {
+ if (pos === length && group === 0 && needsUniqueCopy && e.kind !== 167) {
write(".slice()");
}
}
else {
var i = pos;
- while (i < length && elements[i].kind !== 187) {
+ while (i < length && elements[i].kind !== 188) {
i++;
}
write("[");
@@ -26865,7 +27225,7 @@ var ts;
}
}
function isSpreadElementExpression(node) {
- return node.kind === 187;
+ return node.kind === 188;
}
function emitArrayLiteral(node) {
var elements = node.elements;
@@ -26926,7 +27286,7 @@ var ts;
writeComma();
var property = properties[i];
emitStart(property);
- if (property.kind === 145 || property.kind === 146) {
+ if (property.kind === 146 || property.kind === 147) {
var accessors = ts.getAllAccessorDeclarations(node.properties, property);
if (property !== accessors.firstAccessor) {
continue;
@@ -26977,13 +27337,13 @@ var ts;
emitMemberAccessForPropertyName(property.name);
emitEnd(property.name);
write(" = ");
- if (property.kind === 247) {
+ if (property.kind === 248) {
emit(property.initializer);
}
- else if (property.kind === 248) {
+ else if (property.kind === 249) {
emitExpressionIdentifier(property.name);
}
- else if (property.kind === 143) {
+ else if (property.kind === 144) {
emitFunctionDeclaration(property);
}
else {
@@ -27015,7 +27375,7 @@ var ts;
var numProperties = properties.length;
var numInitialNonComputedProperties = numProperties;
for (var i = 0, n = properties.length; i < n; i++) {
- if (properties[i].name.kind === 136) {
+ if (properties[i].name.kind === 137) {
numInitialNonComputedProperties = i;
break;
}
@@ -27029,35 +27389,35 @@ var ts;
emitObjectLiteralBody(node, properties.length);
}
function createBinaryExpression(left, operator, right, startsOnNewLine) {
- var result = ts.createSynthesizedNode(183, startsOnNewLine);
+ var result = ts.createSynthesizedNode(184, startsOnNewLine);
result.operatorToken = ts.createSynthesizedNode(operator);
result.left = left;
result.right = right;
return result;
}
function createPropertyAccessExpression(expression, name) {
- var result = ts.createSynthesizedNode(168);
+ var result = ts.createSynthesizedNode(169);
result.expression = parenthesizeForAccess(expression);
result.dotToken = ts.createSynthesizedNode(21);
result.name = name;
return result;
}
function createElementAccessExpression(expression, argumentExpression) {
- var result = ts.createSynthesizedNode(169);
+ var result = ts.createSynthesizedNode(170);
result.expression = parenthesizeForAccess(expression);
result.argumentExpression = argumentExpression;
return result;
}
function parenthesizeForAccess(expr) {
- while (expr.kind === 173 || expr.kind === 191) {
+ while (expr.kind === 174 || expr.kind === 192) {
expr = expr.expression;
}
if (ts.isLeftHandSideExpression(expr) &&
- expr.kind !== 171 &&
+ expr.kind !== 172 &&
expr.kind !== 8) {
return expr;
}
- var node = ts.createSynthesizedNode(174);
+ var node = ts.createSynthesizedNode(175);
node.expression = expr;
return node;
}
@@ -27084,7 +27444,7 @@ var ts;
}
function isNamespaceExportReference(node) {
var container = resolver.getReferencedExportContainer(node);
- return container && container.kind !== 250;
+ return container && container.kind !== 251;
}
function emitShorthandPropertyAssignment(node) {
writeTextOfNode(currentText, node.name);
@@ -27102,7 +27462,7 @@ var ts;
if (constantValue !== undefined) {
write(constantValue.toString());
if (!compilerOptions.removeComments) {
- var propertyName = node.kind === 168 ? ts.declarationNameToString(node.name) : ts.getTextOfNode(node.argumentExpression);
+ var propertyName = node.kind === 169 ? ts.declarationNameToString(node.name) : ts.getTextOfNode(node.argumentExpression);
write(" /* " + propertyName + " */");
}
return true;
@@ -27113,7 +27473,7 @@ var ts;
if (compilerOptions.isolatedModules) {
return undefined;
}
- return node.kind === 168 || node.kind === 169
+ return node.kind === 169 || node.kind === 170
? resolver.getConstantValue(node)
: undefined;
}
@@ -27193,7 +27553,7 @@ var ts;
}
emitExpressionIdentifier(node);
break;
- case 135:
+ case 136:
emitQualifiedNameAsExpression(node, useFallback);
break;
default:
@@ -27211,10 +27571,10 @@ var ts;
write("]");
}
function hasSpreadElement(elements) {
- return ts.forEach(elements, function (e) { return e.kind === 187; });
+ return ts.forEach(elements, function (e) { return e.kind === 188; });
}
function skipParentheses(node) {
- while (node.kind === 174 || node.kind === 173 || node.kind === 191) {
+ while (node.kind === 175 || node.kind === 174 || node.kind === 192) {
node = node.expression;
}
return node;
@@ -27235,12 +27595,12 @@ var ts;
function emitCallWithSpread(node) {
var target;
var expr = skipParentheses(node.expression);
- if (expr.kind === 168) {
+ if (expr.kind === 169) {
target = emitCallTarget(expr.expression);
write(".");
emit(expr.name);
}
- else if (expr.kind === 169) {
+ else if (expr.kind === 170) {
target = emitCallTarget(expr.expression);
write("[");
emit(expr.argumentExpression);
@@ -27281,7 +27641,7 @@ var ts;
}
else {
emit(node.expression);
- superCall = node.expression.kind === 168 && node.expression.expression.kind === 95;
+ superCall = node.expression.kind === 169 && node.expression.expression.kind === 95;
}
if (superCall && languageVersion < 2) {
write(".call(");
@@ -27332,21 +27692,21 @@ var ts;
}
}
function emitParenExpression(node) {
- if (!ts.nodeIsSynthesized(node) && node.parent.kind !== 176) {
- if (node.expression.kind === 173 || node.expression.kind === 191) {
+ if (!ts.nodeIsSynthesized(node) && node.parent.kind !== 177) {
+ if (node.expression.kind === 174 || node.expression.kind === 192) {
var operand = node.expression.expression;
- while (operand.kind === 173 || operand.kind === 191) {
+ while (operand.kind === 174 || operand.kind === 192) {
operand = operand.expression;
}
- if (operand.kind !== 181 &&
+ if (operand.kind !== 182 &&
+ operand.kind !== 180 &&
operand.kind !== 179 &&
operand.kind !== 178 &&
- operand.kind !== 177 &&
- operand.kind !== 182 &&
- operand.kind !== 171 &&
- !(operand.kind === 170 && node.parent.kind === 171) &&
- !(operand.kind === 175 && node.parent.kind === 170) &&
- !(operand.kind === 8 && node.parent.kind === 168)) {
+ operand.kind !== 183 &&
+ operand.kind !== 172 &&
+ !(operand.kind === 171 && node.parent.kind === 172) &&
+ !(operand.kind === 176 && node.parent.kind === 171) &&
+ !(operand.kind === 8 && node.parent.kind === 169)) {
emit(operand);
return;
}
@@ -27375,7 +27735,7 @@ var ts;
if (!isCurrentFileSystemExternalModule() || node.kind !== 69 || ts.nodeIsSynthesized(node)) {
return false;
}
- var isVariableDeclarationOrBindingElement = node.parent && (node.parent.kind === 213 || node.parent.kind === 165);
+ var isVariableDeclarationOrBindingElement = node.parent && (node.parent.kind === 214 || node.parent.kind === 166);
var targetDeclaration = isVariableDeclarationOrBindingElement
? node.parent
: resolver.getReferencedValueDeclaration(node);
@@ -27390,7 +27750,7 @@ var ts;
write("\", ");
}
write(ts.tokenToString(node.operator));
- if (node.operand.kind === 181) {
+ if (node.operand.kind === 182) {
var operand = node.operand;
if (node.operator === 35 && (operand.operator === 35 || operand.operator === 41)) {
write(" ");
@@ -27433,10 +27793,10 @@ var ts;
}
var current = node;
while (current) {
- if (current.kind === 250) {
+ if (current.kind === 251) {
return !isExported || ((ts.getCombinedNodeFlags(node) & 2) !== 0);
}
- else if (ts.isFunctionLike(current) || current.kind === 221) {
+ else if (ts.isFunctionLike(current) || current.kind === 222) {
return false;
}
else {
@@ -27452,14 +27812,14 @@ var ts;
if (ts.isElementAccessExpression(leftHandSideExpression)) {
shouldEmitParentheses = true;
write("(");
- synthesizedLHS = ts.createSynthesizedNode(169, false);
+ synthesizedLHS = ts.createSynthesizedNode(170, false);
var identifier = emitTempVariableAssignment(leftHandSideExpression.expression, false, false);
synthesizedLHS.expression = identifier;
if (leftHandSideExpression.argumentExpression.kind !== 8 &&
leftHandSideExpression.argumentExpression.kind !== 9) {
var tempArgumentExpression = createAndRecordTempVariable(268435456);
synthesizedLHS.argumentExpression = tempArgumentExpression;
- emitAssignment(tempArgumentExpression, leftHandSideExpression.argumentExpression, true);
+ emitAssignment(tempArgumentExpression, leftHandSideExpression.argumentExpression, true, leftHandSideExpression.expression);
}
else {
synthesizedLHS.argumentExpression = leftHandSideExpression.argumentExpression;
@@ -27469,7 +27829,7 @@ var ts;
else if (ts.isPropertyAccessExpression(leftHandSideExpression)) {
shouldEmitParentheses = true;
write("(");
- synthesizedLHS = ts.createSynthesizedNode(168, false);
+ synthesizedLHS = ts.createSynthesizedNode(169, false);
var identifier = emitTempVariableAssignment(leftHandSideExpression.expression, false, false);
synthesizedLHS.expression = identifier;
synthesizedLHS.dotToken = leftHandSideExpression.dotToken;
@@ -27497,8 +27857,8 @@ var ts;
}
function emitBinaryExpression(node) {
if (languageVersion < 2 && node.operatorToken.kind === 56 &&
- (node.left.kind === 167 || node.left.kind === 166)) {
- emitDestructuring(node, node.parent.kind === 197);
+ (node.left.kind === 168 || node.left.kind === 167)) {
+ emitDestructuring(node, node.parent.kind === 198);
}
else {
var exportChanged = node.operatorToken.kind >= 56 &&
@@ -27550,7 +27910,7 @@ var ts;
}
}
function isSingleLineEmptyBlock(node) {
- if (node && node.kind === 194) {
+ if (node && node.kind === 195) {
var block = node;
return block.statements.length === 0 && nodeEndIsOnSameLineAsNodeStart(block, block);
}
@@ -27564,12 +27924,12 @@ var ts;
}
emitToken(15, node.pos);
increaseIndent();
- if (node.kind === 221) {
- ts.Debug.assert(node.parent.kind === 220);
+ if (node.kind === 222) {
+ ts.Debug.assert(node.parent.kind === 221);
emitCaptureThisForNodeIfNecessary(node.parent);
}
emitLines(node.statements);
- if (node.kind === 221) {
+ if (node.kind === 222) {
emitTempDeclarations(true);
}
decreaseIndent();
@@ -27577,7 +27937,7 @@ var ts;
emitToken(16, node.statements.end);
}
function emitEmbeddedStatement(node) {
- if (node.kind === 194) {
+ if (node.kind === 195) {
write(" ");
emit(node);
}
@@ -27589,7 +27949,7 @@ var ts;
}
}
function emitExpressionStatement(node) {
- emitParenthesizedIf(node.expression, node.expression.kind === 176);
+ emitParenthesizedIf(node.expression, node.expression.kind === 177);
write(";");
}
function emitIfStatement(node) {
@@ -27602,7 +27962,7 @@ var ts;
if (node.elseStatement) {
writeLine();
emitToken(80, node.thenStatement.end);
- if (node.elseStatement.kind === 198) {
+ if (node.elseStatement.kind === 199) {
write(" ");
emit(node.elseStatement);
}
@@ -27622,7 +27982,7 @@ var ts;
else {
emitNormalLoopBody(node, true);
}
- if (node.statement.kind === 194) {
+ if (node.statement.kind === 195) {
write(" ");
}
else {
@@ -27646,7 +28006,7 @@ var ts;
emitNormalLoopBody(node, true);
}
}
- function tryEmitStartOfVariableDeclarationList(decl, startPos) {
+ function tryEmitStartOfVariableDeclarationList(decl) {
if (shouldHoistVariable(decl, true)) {
return false;
}
@@ -27657,31 +28017,20 @@ var ts;
}
return false;
}
- var tokenKind = 102;
+ emitStart(decl);
if (decl && languageVersion >= 2) {
if (ts.isLet(decl)) {
- tokenKind = 108;
+ write("let ");
}
else if (ts.isConst(decl)) {
- tokenKind = 74;
+ write("const ");
+ }
+ else {
+ write("var ");
}
- }
- if (startPos !== undefined) {
- emitToken(tokenKind, startPos);
- write(" ");
}
else {
- switch (tokenKind) {
- case 102:
- write("var ");
- break;
- case 108:
- write("let ");
- break;
- case 74:
- write("const ");
- break;
- }
+ write("var ");
}
return true;
}
@@ -27713,7 +28062,7 @@ var ts;
}
else {
var loop = convertLoopBody(node);
- if (node.parent.kind === 209) {
+ if (node.parent.kind === 210) {
emitLabelAndColon(node.parent);
}
loopEmitter(node, loop);
@@ -27723,10 +28072,11 @@ var ts;
var functionName = makeUniqueName("_loop");
var loopInitializer;
switch (node.kind) {
- case 201:
case 202:
case 203:
- if (node.initializer.kind === 214) {
+ case 204:
+ var initializer = node.initializer;
+ if (initializer && initializer.kind === 215) {
loopInitializer = node.initializer;
}
break;
@@ -27739,7 +28089,7 @@ var ts;
collectNames(varDeclaration.name);
}
}
- var bodyIsBlock = node.statement.kind === 194;
+ var bodyIsBlock = node.statement.kind === 195;
var paramList = loopParameters ? loopParameters.join(", ") : "";
writeLine();
write("var " + functionName + " = function(" + paramList + ")");
@@ -27836,7 +28186,7 @@ var ts;
if (emitAsEmbeddedStatement) {
emitEmbeddedStatement(node.statement);
}
- else if (node.statement.kind === 194) {
+ else if (node.statement.kind === 195) {
emitLines(node.statement.statements);
}
else {
@@ -27932,9 +28282,9 @@ var ts;
var endPos = emitToken(86, node.pos);
write(" ");
endPos = emitToken(17, endPos);
- if (node.initializer && node.initializer.kind === 214) {
+ if (node.initializer && node.initializer.kind === 215) {
var variableDeclarationList = node.initializer;
- var startIsEmitted = tryEmitStartOfVariableDeclarationList(variableDeclarationList, endPos);
+ var startIsEmitted = tryEmitStartOfVariableDeclarationList(variableDeclarationList);
if (startIsEmitted) {
emitCommaList(variableDeclarationList.declarations);
}
@@ -27958,7 +28308,7 @@ var ts;
}
}
function emitForInOrForOfStatement(node) {
- if (languageVersion < 2 && node.kind === 203) {
+ if (languageVersion < 2 && node.kind === 204) {
emitLoop(node, emitDownLevelForOfStatementWorker);
}
else {
@@ -27969,17 +28319,17 @@ var ts;
var endPos = emitToken(86, node.pos);
write(" ");
endPos = emitToken(17, endPos);
- if (node.initializer.kind === 214) {
+ if (node.initializer.kind === 215) {
var variableDeclarationList = node.initializer;
if (variableDeclarationList.declarations.length >= 1) {
- tryEmitStartOfVariableDeclarationList(variableDeclarationList, endPos);
+ tryEmitStartOfVariableDeclarationList(variableDeclarationList);
emit(variableDeclarationList.declarations[0]);
}
}
else {
emit(node.initializer);
}
- if (node.kind === 202) {
+ if (node.kind === 203) {
write(" in ");
}
else {
@@ -28015,24 +28365,24 @@ var ts;
emitNodeWithoutSourceMap(node.expression);
emitEnd(node.expression);
write("; ");
- emitStart(node.initializer);
+ emitStart(node.expression);
emitNodeWithoutSourceMap(counter);
write(" < ");
emitNodeWithCommentsAndWithoutSourcemap(rhsReference);
write(".length");
- emitEnd(node.initializer);
+ emitEnd(node.expression);
write("; ");
- emitStart(node.initializer);
+ emitStart(node.expression);
emitNodeWithoutSourceMap(counter);
write("++");
- emitEnd(node.initializer);
+ emitEnd(node.expression);
emitToken(18, node.expression.end);
write(" {");
writeLine();
increaseIndent();
var rhsIterationValue = createElementAccessExpression(rhsReference, counter);
emitStart(node.initializer);
- if (node.initializer.kind === 214) {
+ if (node.initializer.kind === 215) {
write("var ");
var variableDeclarationList = node.initializer;
if (variableDeclarationList.declarations.length > 0) {
@@ -28054,7 +28404,7 @@ var ts;
}
else {
var assignmentExpression = createBinaryExpression(node.initializer, 56, rhsIterationValue, false);
- if (node.initializer.kind === 166 || node.initializer.kind === 167) {
+ if (node.initializer.kind === 167 || node.initializer.kind === 168) {
emitDestructuring(assignmentExpression, true, undefined);
}
else {
@@ -28076,12 +28426,12 @@ var ts;
}
function emitBreakOrContinueStatement(node) {
if (convertedLoopState) {
- var jump = node.kind === 205 ? 2 : 4;
+ var jump = node.kind === 206 ? 2 : 4;
var canUseBreakOrContinue = (node.label && convertedLoopState.labels && convertedLoopState.labels[node.label.text]) ||
(!node.label && (convertedLoopState.allowedNonLabeledJumps & jump));
if (!canUseBreakOrContinue) {
if (!node.label) {
- if (node.kind === 205) {
+ if (node.kind === 206) {
convertedLoopState.nonLocalJumps |= 2;
write("return \"break\";");
}
@@ -28092,7 +28442,7 @@ var ts;
}
else {
var labelMarker;
- if (node.kind === 205) {
+ if (node.kind === 206) {
labelMarker = "break-" + node.label.text;
setLabeledJump(convertedLoopState, true, node.label.text, labelMarker);
}
@@ -28105,7 +28455,7 @@ var ts;
return;
}
}
- emitToken(node.kind === 205 ? 70 : 75, node.pos);
+ emitToken(node.kind === 206 ? 70 : 75, node.pos);
emitOptional(" ", node.label);
write(";");
}
@@ -28170,7 +28520,7 @@ var ts;
ts.getLineOfLocalPositionFromLineMap(currentLineMap, ts.skipTrivia(currentText, node2.pos));
}
function emitCaseOrDefaultClause(node) {
- if (node.kind === 243) {
+ if (node.kind === 244) {
write("case ");
emit(node.expression);
write(":");
@@ -28239,7 +28589,7 @@ var ts;
function getContainingModule(node) {
do {
node = node.parent;
- } while (node && node.kind !== 220);
+ } while (node && node.kind !== 221);
return node;
}
function emitContainingModuleName(node) {
@@ -28264,13 +28614,13 @@ var ts;
function createVoidZero() {
var zero = ts.createSynthesizedNode(8);
zero.text = "0";
- var result = ts.createSynthesizedNode(179);
+ var result = ts.createSynthesizedNode(180);
result.expression = zero;
return result;
}
function emitEs6ExportDefaultCompat(node) {
- if (node.parent.kind === 250) {
- ts.Debug.assert(!!(node.flags & 512) || node.kind === 229);
+ if (node.parent.kind === 251) {
+ ts.Debug.assert(!!(node.flags & 512) || node.kind === 230);
if (modulekind === 1 || modulekind === 2 || modulekind === 3) {
if (!isEs6Module) {
if (languageVersion !== 0) {
@@ -28355,7 +28705,7 @@ var ts;
emitEnd(specifier.name);
write(";");
}
- function emitAssignment(name, value, shouldEmitCommaBeforeAssignment) {
+ function emitAssignment(name, value, shouldEmitCommaBeforeAssignment, nodeForSourceMap) {
if (shouldEmitCommaBeforeAssignment) {
write(", ");
}
@@ -28365,63 +28715,75 @@ var ts;
emitNodeWithCommentsAndWithoutSourcemap(name);
write("\", ");
}
- var isVariableDeclarationOrBindingElement = name.parent && (name.parent.kind === 213 || name.parent.kind === 165);
- if (isVariableDeclarationOrBindingElement) {
- emitModuleMemberName(name.parent);
- }
- else {
- emit(name);
- }
- write(" = ");
- emit(value);
+ var isVariableDeclarationOrBindingElement = name.parent && (name.parent.kind === 214 || name.parent.kind === 166);
+ emitStart(isFirstVariableDeclaration(nodeForSourceMap) ? nodeForSourceMap.parent : nodeForSourceMap);
+ withTemporaryNoSourceMap(function () {
+ if (isVariableDeclarationOrBindingElement) {
+ emitModuleMemberName(name.parent);
+ }
+ else {
+ emit(name);
+ }
+ write(" = ");
+ emit(value);
+ });
+ emitEnd(nodeForSourceMap, true);
if (exportChanged) {
write(")");
}
}
- function emitTempVariableAssignment(expression, canDefineTempVariablesInPlace, shouldEmitCommaBeforeAssignment) {
+ function emitTempVariableAssignment(expression, canDefineTempVariablesInPlace, shouldEmitCommaBeforeAssignment, sourceMapNode) {
var identifier = createTempVariable(0);
if (!canDefineTempVariablesInPlace) {
recordTempDeclaration(identifier);
}
- emitAssignment(identifier, expression, shouldEmitCommaBeforeAssignment);
+ emitAssignment(identifier, expression, shouldEmitCommaBeforeAssignment, sourceMapNode || expression.parent);
return identifier;
}
+ function isFirstVariableDeclaration(root) {
+ return root.kind === 214 &&
+ root.parent.kind === 215 &&
+ root.parent.declarations[0] === root;
+ }
function emitDestructuring(root, isAssignmentExpressionStatement, value) {
var emitCount = 0;
var canDefineTempVariablesInPlace = false;
- if (root.kind === 213) {
+ if (root.kind === 214) {
var isExported = ts.getCombinedNodeFlags(root) & 2;
var isSourceLevelForSystemModuleKind = shouldHoistDeclarationInSystemJsModule(root);
canDefineTempVariablesInPlace = !isExported && !isSourceLevelForSystemModuleKind;
}
- else if (root.kind === 138) {
+ else if (root.kind === 139) {
canDefineTempVariablesInPlace = true;
}
- if (root.kind === 183) {
+ if (root.kind === 184) {
emitAssignmentExpression(root);
}
else {
ts.Debug.assert(!isAssignmentExpressionStatement);
+ if (isFirstVariableDeclaration(root)) {
+ sourceMap.changeEmitSourcePos();
+ }
emitBindingElement(root, value);
}
- function ensureIdentifier(expr, reuseIdentifierExpressions) {
+ function ensureIdentifier(expr, reuseIdentifierExpressions, sourceMapNode) {
if (expr.kind === 69 && reuseIdentifierExpressions) {
return expr;
}
- var identifier = emitTempVariableAssignment(expr, canDefineTempVariablesInPlace, emitCount > 0);
+ var identifier = emitTempVariableAssignment(expr, canDefineTempVariablesInPlace, emitCount > 0, sourceMapNode);
emitCount++;
return identifier;
}
- function createDefaultValueCheck(value, defaultValue) {
- value = ensureIdentifier(value, true);
- var equals = ts.createSynthesizedNode(183);
+ function createDefaultValueCheck(value, defaultValue, sourceMapNode) {
+ value = ensureIdentifier(value, true, sourceMapNode);
+ var equals = ts.createSynthesizedNode(184);
equals.left = value;
equals.operatorToken = ts.createSynthesizedNode(32);
equals.right = createVoidZero();
return createConditionalExpression(equals, defaultValue, value);
}
function createConditionalExpression(condition, whenTrue, whenFalse) {
- var cond = ts.createSynthesizedNode(184);
+ var cond = ts.createSynthesizedNode(185);
cond.condition = condition;
cond.questionToken = ts.createSynthesizedNode(53);
cond.whenTrue = whenTrue;
@@ -28436,9 +28798,9 @@ var ts;
}
function createPropertyAccessForDestructuringProperty(object, propName) {
var index;
- var nameIsComputed = propName.kind === 136;
+ var nameIsComputed = propName.kind === 137;
if (nameIsComputed) {
- index = ensureIdentifier(propName.expression, false);
+ index = ensureIdentifier(propName.expression, false, propName);
}
else {
index = ts.createSynthesizedNode(propName.kind);
@@ -28449,7 +28811,7 @@ var ts;
: createElementAccessExpression(object, index);
}
function createSliceCall(value, sliceIndex) {
- var call = ts.createSynthesizedNode(170);
+ var call = ts.createSynthesizedNode(171);
var sliceIdentifier = ts.createSynthesizedNode(69);
sliceIdentifier.text = "slice";
call.expression = createPropertyAccessExpression(value, sliceIdentifier);
@@ -28457,56 +28819,56 @@ var ts;
call.arguments[0] = createNumericLiteral(sliceIndex);
return call;
}
- function emitObjectLiteralAssignment(target, value) {
+ function emitObjectLiteralAssignment(target, value, sourceMapNode) {
var properties = target.properties;
if (properties.length !== 1) {
- value = ensureIdentifier(value, true);
+ value = ensureIdentifier(value, true, sourceMapNode);
}
for (var _a = 0, properties_5 = properties; _a < properties_5.length; _a++) {
var p = properties_5[_a];
- if (p.kind === 247 || p.kind === 248) {
+ if (p.kind === 248 || p.kind === 249) {
var propName = p.name;
- var target_1 = p.kind === 248 ? p : p.initializer || propName;
- emitDestructuringAssignment(target_1, createPropertyAccessForDestructuringProperty(value, propName));
+ var target_1 = p.kind === 249 ? p : p.initializer || propName;
+ emitDestructuringAssignment(target_1, createPropertyAccessForDestructuringProperty(value, propName), p);
}
}
}
- function emitArrayLiteralAssignment(target, value) {
+ function emitArrayLiteralAssignment(target, value, sourceMapNode) {
var elements = target.elements;
if (elements.length !== 1) {
- value = ensureIdentifier(value, true);
+ value = ensureIdentifier(value, true, sourceMapNode);
}
for (var i = 0; i < elements.length; i++) {
var e = elements[i];
- if (e.kind !== 189) {
- if (e.kind !== 187) {
- emitDestructuringAssignment(e, createElementAccessExpression(value, createNumericLiteral(i)));
+ if (e.kind !== 190) {
+ if (e.kind !== 188) {
+ emitDestructuringAssignment(e, createElementAccessExpression(value, createNumericLiteral(i)), e);
}
else if (i === elements.length - 1) {
- emitDestructuringAssignment(e.expression, createSliceCall(value, i));
+ emitDestructuringAssignment(e.expression, createSliceCall(value, i), e);
}
}
}
}
- function emitDestructuringAssignment(target, value) {
- if (target.kind === 248) {
+ function emitDestructuringAssignment(target, value, sourceMapNode) {
+ if (target.kind === 249) {
if (target.objectAssignmentInitializer) {
- value = createDefaultValueCheck(value, target.objectAssignmentInitializer);
+ value = createDefaultValueCheck(value, target.objectAssignmentInitializer, sourceMapNode);
}
target = target.name;
}
- else if (target.kind === 183 && target.operatorToken.kind === 56) {
- value = createDefaultValueCheck(value, target.right);
+ else if (target.kind === 184 && target.operatorToken.kind === 56) {
+ value = createDefaultValueCheck(value, target.right, sourceMapNode);
target = target.left;
}
- if (target.kind === 167) {
- emitObjectLiteralAssignment(target, value);
+ if (target.kind === 168) {
+ emitObjectLiteralAssignment(target, value, sourceMapNode);
}
- else if (target.kind === 166) {
- emitArrayLiteralAssignment(target, value);
+ else if (target.kind === 167) {
+ emitArrayLiteralAssignment(target, value, sourceMapNode);
}
else {
- emitAssignment(target, value, emitCount > 0);
+ emitAssignment(target, value, emitCount > 0, sourceMapNode);
emitCount++;
}
}
@@ -28517,24 +28879,24 @@ var ts;
emit(value);
}
else if (isAssignmentExpressionStatement) {
- emitDestructuringAssignment(target, value);
+ emitDestructuringAssignment(target, value, ts.nodeIsSynthesized(root) ? target : root);
}
else {
- if (root.parent.kind !== 174) {
+ if (root.parent.kind !== 175) {
write("(");
}
- value = ensureIdentifier(value, true);
- emitDestructuringAssignment(target, value);
+ value = ensureIdentifier(value, true, root);
+ emitDestructuringAssignment(target, value, root);
write(", ");
emit(value);
- if (root.parent.kind !== 174) {
+ if (root.parent.kind !== 175) {
write(")");
}
}
}
function emitBindingElement(target, value) {
if (target.initializer) {
- value = value ? createDefaultValueCheck(value, target.initializer) : target.initializer;
+ value = value ? createDefaultValueCheck(value, target.initializer, target) : target.initializer;
}
else if (!value) {
value = createVoidZero();
@@ -28544,15 +28906,15 @@ var ts;
var elements = pattern.elements;
var numElements = elements.length;
if (numElements !== 1) {
- value = ensureIdentifier(value, numElements !== 0);
+ value = ensureIdentifier(value, numElements !== 0, target);
}
for (var i = 0; i < numElements; i++) {
var element = elements[i];
- if (pattern.kind === 163) {
+ if (pattern.kind === 164) {
var propName = element.propertyName || element.name;
emitBindingElement(element, createPropertyAccessForDestructuringProperty(value, propName));
}
- else if (element.kind !== 189) {
+ else if (element.kind !== 190) {
if (!element.dotDotDotToken) {
emitBindingElement(element, createElementAccessExpression(value, createNumericLiteral(i)));
}
@@ -28563,7 +28925,7 @@ var ts;
}
}
else {
- emitAssignment(target.name, value, emitCount > 0);
+ emitAssignment(target.name, value, emitCount > 0, target);
emitCount++;
}
}
@@ -28584,8 +28946,8 @@ var ts;
var isLetDefinedInLoop = (resolver.getNodeCheckFlags(node) & 16384) &&
(getCombinedFlagsForIdentifier(node.name) & 8192);
if (isLetDefinedInLoop &&
- node.parent.parent.kind !== 202 &&
- node.parent.parent.kind !== 203) {
+ node.parent.parent.kind !== 203 &&
+ node.parent.parent.kind !== 204) {
initializer = createVoidZero();
}
}
@@ -28603,7 +28965,7 @@ var ts;
}
}
function emitExportVariableAssignments(node) {
- if (node.kind === 189) {
+ if (node.kind === 190) {
return;
}
var name = node.name;
@@ -28615,7 +28977,7 @@ var ts;
}
}
function getCombinedFlagsForIdentifier(node) {
- if (!node.parent || (node.parent.kind !== 213 && node.parent.kind !== 165)) {
+ if (!node.parent || (node.parent.kind !== 214 && node.parent.kind !== 166)) {
return 0;
}
return ts.getCombinedNodeFlags(node.parent);
@@ -28623,7 +28985,7 @@ var ts;
function isES6ExportedDeclaration(node) {
return !!(node.flags & 2) &&
modulekind === 5 &&
- node.parent.kind === 250;
+ node.parent.kind === 251;
}
function emitVariableStatement(node) {
var startIsEmitted = false;
@@ -28668,12 +29030,12 @@ var ts;
function emitParameter(node) {
if (languageVersion < 2) {
if (ts.isBindingPattern(node.name)) {
- var name_23 = createTempVariable(0);
+ var name_26 = createTempVariable(0);
if (!tempParameters) {
tempParameters = [];
}
- tempParameters.push(name_23);
- emit(name_23);
+ tempParameters.push(name_26);
+ emit(name_26);
}
else {
emit(node.name);
@@ -28772,12 +29134,12 @@ var ts;
}
}
function emitAccessor(node) {
- write(node.kind === 145 ? "get " : "set ");
+ write(node.kind === 146 ? "get " : "set ");
emit(node.name);
emitSignatureAndBody(node);
}
function shouldEmitAsArrowFunction(node) {
- return node.kind === 176 && languageVersion >= 2;
+ return node.kind === 177 && languageVersion >= 2;
}
function emitDeclarationName(node) {
if (node.name) {
@@ -28788,10 +29150,10 @@ var ts;
}
}
function shouldEmitFunctionName(node) {
- if (node.kind === 175) {
+ if (node.kind === 176) {
return !!node.name;
}
- if (node.kind === 215) {
+ if (node.kind === 216) {
return !!node.name || modulekind !== 5;
}
}
@@ -28800,12 +29162,12 @@ var ts;
return emitCommentsOnNotEmittedNode(node);
}
var kind = node.kind, parent = node.parent;
- if (kind !== 143 &&
- kind !== 142 &&
+ if (kind !== 144 &&
+ kind !== 143 &&
parent &&
- parent.kind !== 247 &&
- parent.kind !== 170 &&
- parent.kind !== 166) {
+ parent.kind !== 248 &&
+ parent.kind !== 171 &&
+ parent.kind !== 167) {
emitLeadingComments(node);
}
emitStart(node);
@@ -28826,11 +29188,11 @@ var ts;
emitDeclarationName(node);
}
emitSignatureAndBody(node);
- if (modulekind !== 5 && kind === 215 && parent === currentSourceFile && node.name) {
+ if (modulekind !== 5 && kind === 216 && parent === currentSourceFile && node.name) {
emitExportMemberAssignments(node.name);
}
emitEnd(node);
- if (kind !== 143 && kind !== 142) {
+ if (kind !== 144 && kind !== 143) {
emitTrailingComments(node);
}
}
@@ -28862,7 +29224,7 @@ var ts;
}
function emitAsyncFunctionBodyForES6(node) {
var promiseConstructor = ts.getEntityNameFromTypeNode(node.type);
- var isArrowFunction = node.kind === 176;
+ var isArrowFunction = node.kind === 177;
var hasLexicalArguments = (resolver.getNodeCheckFlags(node) & 4096) !== 0;
if (!isArrowFunction) {
write(" {");
@@ -28903,7 +29265,7 @@ var ts;
write(" { }");
}
else {
- if (node.body.kind === 194) {
+ if (node.body.kind === 195) {
emitBlockFunctionBody(node, node.body);
}
else {
@@ -28955,10 +29317,10 @@ var ts;
}
write(" ");
var current = body;
- while (current.kind === 173) {
+ while (current.kind === 174) {
current = current.expression;
}
- emitParenthesizedIf(body, current.kind === 167);
+ emitParenthesizedIf(body, current.kind === 168);
}
function emitDownLevelExpressionFunctionBody(node, body) {
write(" {");
@@ -29028,9 +29390,9 @@ var ts;
function findInitialSuperCall(ctor) {
if (ctor.body) {
var statement = ctor.body.statements[0];
- if (statement && statement.kind === 197) {
+ if (statement && statement.kind === 198) {
var expr = statement.expression;
- if (expr && expr.kind === 170) {
+ if (expr && expr.kind === 171) {
var func = expr.expression;
if (func && func.kind === 95) {
return statement;
@@ -29061,7 +29423,7 @@ var ts;
emitNodeWithCommentsAndWithoutSourcemap(memberName);
write("]");
}
- else if (memberName.kind === 136) {
+ else if (memberName.kind === 137) {
emitComputedPropertyName(memberName);
}
else {
@@ -29073,7 +29435,7 @@ var ts;
var properties = [];
for (var _a = 0, _b = node.members; _a < _b.length; _a++) {
var member = _b[_a];
- if (member.kind === 141 && isStatic === ((member.flags & 64) !== 0) && member.initializer) {
+ if (member.kind === 142 && isStatic === ((member.flags & 64) !== 0) && member.initializer) {
properties.push(member);
}
}
@@ -29113,11 +29475,11 @@ var ts;
}
function emitMemberFunctionsForES5AndLower(node) {
ts.forEach(node.members, function (member) {
- if (member.kind === 193) {
+ if (member.kind === 194) {
writeLine();
write(";");
}
- else if (member.kind === 143 || node.kind === 142) {
+ else if (member.kind === 144 || node.kind === 143) {
if (!member.body) {
return emitCommentsOnNotEmittedNode(member);
}
@@ -29134,7 +29496,7 @@ var ts;
write(";");
emitTrailingComments(member);
}
- else if (member.kind === 145 || member.kind === 146) {
+ else if (member.kind === 146 || member.kind === 147) {
var accessors = ts.getAllAccessorDeclarations(node.members, member);
if (member === accessors.firstAccessor) {
writeLine();
@@ -29184,22 +29546,22 @@ var ts;
function emitMemberFunctionsForES6AndHigher(node) {
for (var _a = 0, _b = node.members; _a < _b.length; _a++) {
var member = _b[_a];
- if ((member.kind === 143 || node.kind === 142) && !member.body) {
+ if ((member.kind === 144 || node.kind === 143) && !member.body) {
emitCommentsOnNotEmittedNode(member);
}
- else if (member.kind === 143 ||
- member.kind === 145 ||
- member.kind === 146) {
+ else if (member.kind === 144 ||
+ member.kind === 146 ||
+ member.kind === 147) {
writeLine();
emitLeadingComments(member);
emitStart(member);
if (member.flags & 64) {
write("static ");
}
- if (member.kind === 145) {
+ if (member.kind === 146) {
write("get ");
}
- else if (member.kind === 146) {
+ else if (member.kind === 147) {
write("set ");
}
if (member.asteriskToken) {
@@ -29210,7 +29572,7 @@ var ts;
emitEnd(member);
emitTrailingComments(member);
}
- else if (member.kind === 193) {
+ else if (member.kind === 194) {
writeLine();
write(";");
}
@@ -29235,10 +29597,10 @@ var ts;
function emitConstructorWorker(node, baseTypeElement) {
var hasInstancePropertyWithInitializer = false;
ts.forEach(node.members, function (member) {
- if (member.kind === 144 && !member.body) {
+ if (member.kind === 145 && !member.body) {
emitCommentsOnNotEmittedNode(member);
}
- if (member.kind === 141 && member.initializer && (member.flags & 64) === 0) {
+ if (member.kind === 142 && member.initializer && (member.flags & 64) === 0) {
hasInstancePropertyWithInitializer = true;
}
});
@@ -29342,7 +29704,7 @@ var ts;
}
function emitClassLikeDeclarationForES6AndHigher(node) {
var thisNodeIsDecorated = ts.nodeIsDecorated(node);
- if (node.kind === 216) {
+ if (node.kind === 217) {
if (thisNodeIsDecorated) {
if (isES6ExportedDeclaration(node) && !(node.flags & 512)) {
write("export ");
@@ -29359,7 +29721,7 @@ var ts;
}
}
var staticProperties = getInitializedProperties(node, true);
- var isClassExpressionWithStaticProperties = staticProperties.length > 0 && node.kind === 188;
+ var isClassExpressionWithStaticProperties = staticProperties.length > 0 && node.kind === 189;
var tempVariable;
if (isClassExpressionWithStaticProperties) {
tempVariable = createAndRecordTempVariable(0);
@@ -29422,7 +29784,7 @@ var ts;
write(";");
}
}
- else if (node.parent.kind !== 250) {
+ else if (node.parent.kind !== 251) {
writeLine();
emitStart(node);
emitModuleMemberName(node);
@@ -29434,7 +29796,7 @@ var ts;
}
}
function emitClassLikeDeclarationBelowES6(node) {
- if (node.kind === 216) {
+ if (node.kind === 217) {
if (!shouldHoistDeclarationInSystemJsModule(node)) {
write("var ");
}
@@ -29494,11 +29856,11 @@ var ts;
emit(baseTypeNode.expression);
}
write("))");
- if (node.kind === 216) {
+ if (node.kind === 217) {
write(";");
}
emitEnd(node);
- if (node.kind === 216) {
+ if (node.kind === 217) {
emitExportMemberAssignment(node);
}
}
@@ -29565,7 +29927,7 @@ var ts;
}
else {
decorators = member.decorators;
- if (member.kind === 143) {
+ if (member.kind === 144) {
functionLikeMember = member;
}
}
@@ -29591,7 +29953,7 @@ var ts;
write(", ");
emitExpressionForPropertyName(member.name);
if (languageVersion > 0) {
- if (member.kind !== 141) {
+ if (member.kind !== 142) {
write(", null");
}
else {
@@ -29626,45 +29988,45 @@ var ts;
}
function shouldEmitTypeMetadata(node) {
switch (node.kind) {
- case 143:
- case 145:
+ case 144:
case 146:
- case 141:
+ case 147:
+ case 142:
return true;
}
return false;
}
function shouldEmitReturnTypeMetadata(node) {
switch (node.kind) {
- case 143:
+ case 144:
return true;
}
return false;
}
function shouldEmitParamTypesMetadata(node) {
switch (node.kind) {
- case 216:
- case 143:
- case 146:
+ case 217:
+ case 144:
+ case 147:
return true;
}
return false;
}
function emitSerializedTypeOfNode(node) {
switch (node.kind) {
- case 216:
+ case 217:
write("Function");
return;
- case 141:
+ case 142:
emitSerializedTypeNode(node.type);
return;
- case 138:
- emitSerializedTypeNode(node.type);
- return;
- case 145:
+ case 139:
emitSerializedTypeNode(node.type);
return;
case 146:
+ emitSerializedTypeNode(node.type);
+ return;
+ case 147:
emitSerializedTypeNode(ts.getSetAccessorTypeAnnotationNode(node));
return;
}
@@ -29680,23 +30042,23 @@ var ts;
case 103:
write("void 0");
return;
- case 160:
+ case 161:
emitSerializedTypeNode(node.type);
return;
- case 152:
case 153:
+ case 154:
write("Function");
return;
- case 156:
case 157:
+ case 158:
write("Array");
return;
- case 150:
+ case 151:
case 120:
write("Boolean");
return;
case 130:
- case 162:
+ case 163:
write("String");
return;
case 128:
@@ -29705,15 +30067,15 @@ var ts;
case 131:
write("Symbol");
return;
- case 151:
+ case 152:
emitSerializedTypeReferenceNode(node);
return;
- case 154:
case 155:
- case 158:
+ case 156:
case 159:
+ case 160:
case 117:
- case 161:
+ case 162:
break;
default:
ts.Debug.fail("Cannot serialize unexpected type node.");
@@ -29777,7 +30139,7 @@ var ts;
function emitSerializedParameterTypesOfNode(node) {
if (node) {
var valueDeclaration;
- if (node.kind === 216) {
+ if (node.kind === 217) {
valueDeclaration = ts.getFirstConstructorWithBody(node);
}
else if (ts.isFunctionLike(node) && ts.nodeIsPresent(node.body)) {
@@ -29793,10 +30155,10 @@ var ts;
}
if (parameters[i].dotDotDotToken) {
var parameterType = parameters[i].type;
- if (parameterType.kind === 156) {
+ if (parameterType.kind === 157) {
parameterType = parameterType.elementType;
}
- else if (parameterType.kind === 151 && parameterType.typeArguments && parameterType.typeArguments.length === 1) {
+ else if (parameterType.kind === 152 && parameterType.typeArguments && parameterType.typeArguments.length === 1) {
parameterType = parameterType.typeArguments[0];
}
else {
@@ -29868,7 +30230,7 @@ var ts;
}
if (!shouldHoistDeclarationInSystemJsModule(node)) {
var isES6ExportedEnum = isES6ExportedDeclaration(node);
- if (!(node.flags & 2) || (isES6ExportedEnum && isFirstDeclarationOfKind(node, node.symbol && node.symbol.declarations, 219))) {
+ if (!(node.flags & 2) || (isES6ExportedEnum && isFirstDeclarationOfKind(node, node.symbol && node.symbol.declarations, 220))) {
emitStart(node);
if (isES6ExportedEnum) {
write("export ");
@@ -29948,7 +30310,7 @@ var ts;
}
}
function getInnerMostModuleDeclarationFromDottedModule(moduleDeclaration) {
- if (moduleDeclaration.body.kind === 220) {
+ if (moduleDeclaration.body.kind === 221) {
var recursiveInnerModule = getInnerMostModuleDeclarationFromDottedModule(moduleDeclaration.body);
return recursiveInnerModule || moduleDeclaration.body;
}
@@ -29971,7 +30333,7 @@ var ts;
var emitVarForModule = !hoistedInDeclarationScope && !isModuleMergedWithES6Class(node);
if (emitVarForModule) {
var isES6ExportedNamespace = isES6ExportedDeclaration(node);
- if (!isES6ExportedNamespace || isFirstDeclarationOfKind(node, node.symbol && node.symbol.declarations, 220)) {
+ if (!isES6ExportedNamespace || isFirstDeclarationOfKind(node, node.symbol && node.symbol.declarations, 221)) {
emitStart(node);
if (isES6ExportedNamespace) {
write("export ");
@@ -29989,7 +30351,7 @@ var ts;
write(getGeneratedNameForNode(node));
emitEnd(node.name);
write(") ");
- if (node.body.kind === 221) {
+ if (node.body.kind === 222) {
var saveConvertedLoopState = convertedLoopState;
var saveTempFlags = tempFlags;
var saveTempVariables = tempVariables;
@@ -30060,16 +30422,16 @@ var ts;
}
}
function getNamespaceDeclarationNode(node) {
- if (node.kind === 223) {
+ if (node.kind === 224) {
return node;
}
var importClause = node.importClause;
- if (importClause && importClause.namedBindings && importClause.namedBindings.kind === 226) {
+ if (importClause && importClause.namedBindings && importClause.namedBindings.kind === 227) {
return importClause.namedBindings;
}
}
function isDefaultImport(node) {
- return node.kind === 224 && node.importClause && !!node.importClause.name;
+ return node.kind === 225 && node.importClause && !!node.importClause.name;
}
function emitExportImportAssignments(node) {
if (ts.isAliasSymbolDeclaration(node) && resolver.isValueAliasDeclaration(node)) {
@@ -30096,7 +30458,7 @@ var ts;
if (shouldEmitNamedBindings) {
emitLeadingComments(node.importClause.namedBindings);
emitStart(node.importClause.namedBindings);
- if (node.importClause.namedBindings.kind === 226) {
+ if (node.importClause.namedBindings.kind === 227) {
write("* as ");
emit(node.importClause.namedBindings.name);
}
@@ -30122,7 +30484,7 @@ var ts;
}
function emitExternalImportDeclaration(node) {
if (ts.contains(externalImports, node)) {
- var isExportedImport = node.kind === 223 && (node.flags & 2) !== 0;
+ var isExportedImport = node.kind === 224 && (node.flags & 2) !== 0;
var namespaceDeclaration = getNamespaceDeclarationNode(node);
if (modulekind !== 2) {
emitLeadingComments(node);
@@ -30134,7 +30496,7 @@ var ts;
write(" = ");
}
else {
- var isNakedImport = 224 && !node.importClause;
+ var isNakedImport = 225 && !node.importClause;
if (!isNakedImport) {
write("var ");
write(getGeneratedNameForNode(node));
@@ -30301,8 +30663,8 @@ var ts;
write("export default ");
var expression = node.expression;
emit(expression);
- if (expression.kind !== 215 &&
- expression.kind !== 216) {
+ if (expression.kind !== 216 &&
+ expression.kind !== 217) {
write(";");
}
emitEnd(node);
@@ -30339,18 +30701,18 @@ var ts;
for (var _a = 0, _b = sourceFile.statements; _a < _b.length; _a++) {
var node = _b[_a];
switch (node.kind) {
- case 224:
+ case 225:
if (!node.importClause ||
resolver.isReferencedAliasDeclaration(node.importClause, true)) {
externalImports.push(node);
}
break;
- case 223:
- if (node.moduleReference.kind === 234 && resolver.isReferencedAliasDeclaration(node)) {
+ case 224:
+ if (node.moduleReference.kind === 235 && resolver.isReferencedAliasDeclaration(node)) {
externalImports.push(node);
}
break;
- case 230:
+ case 231:
if (node.moduleSpecifier) {
if (!node.exportClause) {
if (resolver.moduleExportsSomeValue(node.moduleSpecifier)) {
@@ -30365,12 +30727,12 @@ var ts;
else {
for (var _c = 0, _d = node.exportClause.elements; _c < _d.length; _c++) {
var specifier = _d[_c];
- var name_24 = (specifier.propertyName || specifier.name).text;
- (exportSpecifiers[name_24] || (exportSpecifiers[name_24] = [])).push(specifier);
+ var name_27 = (specifier.propertyName || specifier.name).text;
+ (exportSpecifiers[name_27] || (exportSpecifiers[name_27] = [])).push(specifier);
}
}
break;
- case 229:
+ case 230:
if (node.isExportEquals && !exportEquals) {
exportEquals = node;
}
@@ -30395,18 +30757,18 @@ var ts;
if (namespaceDeclaration && !isDefaultImport(node)) {
return ts.getTextOfNodeFromSourceText(currentText, namespaceDeclaration.name);
}
- if (node.kind === 224 && node.importClause) {
+ if (node.kind === 225 && node.importClause) {
return getGeneratedNameForNode(node);
}
- if (node.kind === 230 && node.moduleSpecifier) {
+ if (node.kind === 231 && node.moduleSpecifier) {
return getGeneratedNameForNode(node);
}
}
function getExternalModuleNameText(importNode, emitRelativePathAsModuleName) {
if (emitRelativePathAsModuleName) {
- var name_25 = getExternalModuleNameFromDeclaration(host, resolver, importNode);
- if (name_25) {
- return "\"" + name_25 + "\"";
+ var name_28 = getExternalModuleNameFromDeclaration(host, resolver, importNode);
+ if (name_28) {
+ return "\"" + name_28 + "\"";
}
}
var moduleName = ts.getExternalModuleName(importNode);
@@ -30423,8 +30785,8 @@ var ts;
var started = false;
for (var _a = 0, externalImports_1 = externalImports; _a < externalImports_1.length; _a++) {
var importNode = externalImports_1[_a];
- var skipNode = importNode.kind === 230 ||
- (importNode.kind === 224 && !importNode.importClause);
+ var skipNode = importNode.kind === 231 ||
+ (importNode.kind === 225 && !importNode.importClause);
if (skipNode) {
continue;
}
@@ -30449,7 +30811,7 @@ var ts;
var hasExportDeclarationWithExportClause = false;
for (var _a = 0, externalImports_2 = externalImports; _a < externalImports_2.length; _a++) {
var externalImport = externalImports_2[_a];
- if (externalImport.kind === 230 && externalImport.exportClause) {
+ if (externalImport.kind === 231 && externalImport.exportClause) {
hasExportDeclarationWithExportClause = true;
break;
}
@@ -30478,7 +30840,7 @@ var ts;
}
for (var _d = 0, externalImports_3 = externalImports; _d < externalImports_3.length; _d++) {
var externalImport = externalImports_3[_d];
- if (externalImport.kind !== 230) {
+ if (externalImport.kind !== 231) {
continue;
}
var exportDecl = externalImport;
@@ -30552,11 +30914,11 @@ var ts;
var seen = {};
for (var i = 0; i < hoistedVars.length; i++) {
var local = hoistedVars[i];
- var name_26 = local.kind === 69
+ var name_29 = local.kind === 69
? local
: local.name;
- if (name_26) {
- var text = ts.unescapeIdentifier(name_26.text);
+ if (name_29) {
+ var text = ts.unescapeIdentifier(name_29.text);
if (ts.hasProperty(seen, text)) {
continue;
}
@@ -30567,7 +30929,7 @@ var ts;
if (i !== 0) {
write(", ");
}
- if (local.kind === 216 || local.kind === 220 || local.kind === 219) {
+ if (local.kind === 217 || local.kind === 221 || local.kind === 220) {
emitDeclarationName(local);
}
else {
@@ -30601,21 +30963,21 @@ var ts;
if (node.flags & 4) {
return;
}
- if (node.kind === 215) {
+ if (node.kind === 216) {
if (!hoistedFunctionDeclarations) {
hoistedFunctionDeclarations = [];
}
hoistedFunctionDeclarations.push(node);
return;
}
- if (node.kind === 216) {
+ if (node.kind === 217) {
if (!hoistedVars) {
hoistedVars = [];
}
hoistedVars.push(node);
return;
}
- if (node.kind === 219) {
+ if (node.kind === 220) {
if (shouldEmitEnumDeclaration(node)) {
if (!hoistedVars) {
hoistedVars = [];
@@ -30624,7 +30986,7 @@ var ts;
}
return;
}
- if (node.kind === 220) {
+ if (node.kind === 221) {
if (shouldEmitModuleDeclaration(node)) {
if (!hoistedVars) {
hoistedVars = [];
@@ -30633,17 +30995,17 @@ var ts;
}
return;
}
- if (node.kind === 213 || node.kind === 165) {
+ if (node.kind === 214 || node.kind === 166) {
if (shouldHoistVariable(node, false)) {
- var name_27 = node.name;
- if (name_27.kind === 69) {
+ var name_30 = node.name;
+ if (name_30.kind === 69) {
if (!hoistedVars) {
hoistedVars = [];
}
- hoistedVars.push(name_27);
+ hoistedVars.push(name_30);
}
else {
- ts.forEachChild(name_27, visit);
+ ts.forEachChild(name_30, visit);
}
}
return;
@@ -30669,7 +31031,7 @@ var ts;
return false;
}
return (ts.getCombinedNodeFlags(node) & 24576) === 0 ||
- ts.getEnclosingBlockScopeContainer(node).kind === 250;
+ ts.getEnclosingBlockScopeContainer(node).kind === 251;
}
function isCurrentFileSystemExternalModule() {
return modulekind === 4 && isCurrentFileExternalModule;
@@ -30707,29 +31069,29 @@ var ts;
var entry = group_1[_a];
var importVariableName = getLocalNameForExternalImport(entry) || "";
switch (entry.kind) {
- case 224:
+ case 225:
if (!entry.importClause) {
break;
}
- case 223:
+ case 224:
ts.Debug.assert(importVariableName !== "");
writeLine();
write(importVariableName + " = " + parameterName + ";");
writeLine();
break;
- case 230:
+ case 231:
ts.Debug.assert(importVariableName !== "");
if (entry.exportClause) {
writeLine();
write(exportFunctionForFile + "({");
writeLine();
increaseIndent();
- for (var i_2 = 0, len = entry.exportClause.elements.length; i_2 < len; i_2++) {
- if (i_2 !== 0) {
+ for (var i_1 = 0, len = entry.exportClause.elements.length; i_1 < len; i_1++) {
+ if (i_1 !== 0) {
write(",");
writeLine();
}
- var e = entry.exportClause.elements[i_2];
+ var e = entry.exportClause.elements[i_1];
write("\"");
emitNodeWithCommentsAndWithoutSourcemap(e.name);
write("\": " + parameterName + "[\"");
@@ -30761,10 +31123,10 @@ var ts;
for (var i = startIndex; i < node.statements.length; i++) {
var statement = node.statements[i];
switch (statement.kind) {
- case 215:
- case 224:
+ case 216:
+ case 225:
continue;
- case 230:
+ case 231:
if (!statement.moduleSpecifier) {
for (var _a = 0, _b = statement.exportClause.elements; _a < _b.length; _a++) {
var element = _b[_a];
@@ -30772,7 +31134,7 @@ var ts;
}
}
continue;
- case 223:
+ case 224:
if (!ts.isInternalModuleImportEqualsDeclaration(statement)) {
continue;
}
@@ -31088,22 +31450,22 @@ var ts;
}
function emitEmitHelpers(node) {
if (!compilerOptions.noEmitHelpers) {
- if ((languageVersion < 2) && (!extendsEmitted && resolver.getNodeCheckFlags(node) & 8)) {
+ if ((languageVersion < 2) && (!extendsEmitted && node.flags & 4194304)) {
writeLines(extendsHelper);
extendsEmitted = true;
}
- if (!decorateEmitted && resolver.getNodeCheckFlags(node) & 16) {
+ if (!decorateEmitted && node.flags & 8388608) {
writeLines(decorateHelper);
if (compilerOptions.emitDecoratorMetadata) {
writeLines(metadataHelper);
}
decorateEmitted = true;
}
- if (!paramEmitted && resolver.getNodeCheckFlags(node) & 32) {
+ if (!paramEmitted && node.flags & 16777216) {
writeLines(paramHelper);
paramEmitted = true;
}
- if (!awaiterEmitted && resolver.getNodeCheckFlags(node) & 64) {
+ if (!awaiterEmitted && node.flags & 33554432) {
writeLines(awaiterHelper);
awaiterEmitted = true;
}
@@ -31171,30 +31533,43 @@ var ts;
emitJavaScriptWorker(node);
}
}
+ function changeSourceMapEmit(writer) {
+ sourceMap = writer;
+ emitStart = writer.emitStart;
+ emitEnd = writer.emitEnd;
+ emitPos = writer.emitPos;
+ setSourceFile = writer.setSourceFile;
+ }
+ function withTemporaryNoSourceMap(callback) {
+ var prevSourceMap = sourceMap;
+ setSourceMapWriterEmit(ts.getNullSourceMapWriter());
+ callback();
+ setSourceMapWriterEmit(prevSourceMap);
+ }
function isSpecializedCommentHandling(node) {
switch (node.kind) {
- case 217:
- case 215:
- case 224:
- case 223:
case 218:
- case 229:
+ case 216:
+ case 225:
+ case 224:
+ case 219:
+ case 230:
return true;
}
}
function shouldEmitLeadingAndTrailingComments(node) {
switch (node.kind) {
- case 195:
+ case 196:
return shouldEmitLeadingAndTrailingCommentsForVariableStatement(node);
- case 220:
+ case 221:
return shouldEmitModuleDeclaration(node);
- case 219:
+ case 220:
return shouldEmitEnumDeclaration(node);
}
ts.Debug.assert(!isSpecializedCommentHandling(node));
- if (node.kind !== 194 &&
+ if (node.kind !== 195 &&
node.parent &&
- node.parent.kind === 176 &&
+ node.parent.kind === 177 &&
node.parent.body === node &&
compilerOptions.target <= 1) {
return false;
@@ -31205,13 +31580,13 @@ var ts;
switch (node.kind) {
case 69:
return emitIdentifier(node);
- case 138:
+ case 139:
return emitParameter(node);
+ case 144:
case 143:
- case 142:
return emitMethod(node);
- case 145:
case 146:
+ case 147:
return emitAccessor(node);
case 97:
return emitThis(node);
@@ -31231,142 +31606,142 @@ var ts;
case 13:
case 14:
return emitLiteral(node);
- case 185:
- return emitTemplateExpression(node);
- case 192:
- return emitTemplateSpan(node);
- case 235:
- case 236:
- return emitJsxElement(node);
- case 238:
- return emitJsxText(node);
- case 242:
- return emitJsxExpression(node);
- case 135:
- return emitQualifiedName(node);
- case 163:
- return emitObjectBindingPattern(node);
- case 164:
- return emitArrayBindingPattern(node);
- case 165:
- return emitBindingElement(node);
- case 166:
- return emitArrayLiteral(node);
- case 167:
- return emitObjectLiteral(node);
- case 247:
- return emitPropertyAssignment(node);
- case 248:
- return emitShorthandPropertyAssignment(node);
- case 136:
- return emitComputedPropertyName(node);
- case 168:
- return emitPropertyAccess(node);
- case 169:
- return emitIndexedAccess(node);
- case 170:
- return emitCallExpression(node);
- case 171:
- return emitNewExpression(node);
- case 172:
- return emitTaggedTemplateExpression(node);
- case 173:
- return emit(node.expression);
- case 191:
- return emit(node.expression);
- case 174:
- return emitParenExpression(node);
- case 215:
- case 175:
- case 176:
- return emitFunctionDeclaration(node);
- case 177:
- return emitDeleteExpression(node);
- case 178:
- return emitTypeOfExpression(node);
- case 179:
- return emitVoidExpression(node);
- case 180:
- return emitAwaitExpression(node);
- case 181:
- return emitPrefixUnaryExpression(node);
- case 182:
- return emitPostfixUnaryExpression(node);
- case 183:
- return emitBinaryExpression(node);
- case 184:
- return emitConditionalExpression(node);
- case 187:
- return emitSpreadElementExpression(node);
case 186:
- return emitYieldExpression(node);
- case 189:
- return;
- case 194:
- case 221:
- return emitBlock(node);
- case 195:
- return emitVariableStatement(node);
- case 196:
- return write(";");
- case 197:
- return emitExpressionStatement(node);
- case 198:
- return emitIfStatement(node);
- case 199:
- return emitDoStatement(node);
- case 200:
- return emitWhileStatement(node);
- case 201:
- return emitForStatement(node);
- case 203:
- case 202:
- return emitForInOrForOfStatement(node);
- case 204:
- case 205:
- return emitBreakOrContinueStatement(node);
- case 206:
- return emitReturnStatement(node);
- case 207:
- return emitWithStatement(node);
- case 208:
- return emitSwitchStatement(node);
+ return emitTemplateExpression(node);
+ case 193:
+ return emitTemplateSpan(node);
+ case 236:
+ case 237:
+ return emitJsxElement(node);
+ case 239:
+ return emitJsxText(node);
case 243:
- case 244:
- return emitCaseOrDefaultClause(node);
- case 209:
- return emitLabeledStatement(node);
- case 210:
- return emitThrowStatement(node);
- case 211:
- return emitTryStatement(node);
- case 246:
- return emitCatchClause(node);
- case 212:
- return emitDebuggerStatement(node);
- case 213:
- return emitVariableDeclaration(node);
- case 188:
- return emitClassExpression(node);
- case 216:
- return emitClassDeclaration(node);
- case 217:
- return emitInterfaceDeclaration(node);
- case 219:
- return emitEnumDeclaration(node);
+ return emitJsxExpression(node);
+ case 136:
+ return emitQualifiedName(node);
+ case 164:
+ return emitObjectBindingPattern(node);
+ case 165:
+ return emitArrayBindingPattern(node);
+ case 166:
+ return emitBindingElement(node);
+ case 167:
+ return emitArrayLiteral(node);
+ case 168:
+ return emitObjectLiteral(node);
+ case 248:
+ return emitPropertyAssignment(node);
case 249:
- return emitEnumMember(node);
+ return emitShorthandPropertyAssignment(node);
+ case 137:
+ return emitComputedPropertyName(node);
+ case 169:
+ return emitPropertyAccess(node);
+ case 170:
+ return emitIndexedAccess(node);
+ case 171:
+ return emitCallExpression(node);
+ case 172:
+ return emitNewExpression(node);
+ case 173:
+ return emitTaggedTemplateExpression(node);
+ case 174:
+ return emit(node.expression);
+ case 192:
+ return emit(node.expression);
+ case 175:
+ return emitParenExpression(node);
+ case 216:
+ case 176:
+ case 177:
+ return emitFunctionDeclaration(node);
+ case 178:
+ return emitDeleteExpression(node);
+ case 179:
+ return emitTypeOfExpression(node);
+ case 180:
+ return emitVoidExpression(node);
+ case 181:
+ return emitAwaitExpression(node);
+ case 182:
+ return emitPrefixUnaryExpression(node);
+ case 183:
+ return emitPostfixUnaryExpression(node);
+ case 184:
+ return emitBinaryExpression(node);
+ case 185:
+ return emitConditionalExpression(node);
+ case 188:
+ return emitSpreadElementExpression(node);
+ case 187:
+ return emitYieldExpression(node);
+ case 190:
+ return;
+ case 195:
+ case 222:
+ return emitBlock(node);
+ case 196:
+ return emitVariableStatement(node);
+ case 197:
+ return write(";");
+ case 198:
+ return emitExpressionStatement(node);
+ case 199:
+ return emitIfStatement(node);
+ case 200:
+ return emitDoStatement(node);
+ case 201:
+ return emitWhileStatement(node);
+ case 202:
+ return emitForStatement(node);
+ case 204:
+ case 203:
+ return emitForInOrForOfStatement(node);
+ case 205:
+ case 206:
+ return emitBreakOrContinueStatement(node);
+ case 207:
+ return emitReturnStatement(node);
+ case 208:
+ return emitWithStatement(node);
+ case 209:
+ return emitSwitchStatement(node);
+ case 244:
+ case 245:
+ return emitCaseOrDefaultClause(node);
+ case 210:
+ return emitLabeledStatement(node);
+ case 211:
+ return emitThrowStatement(node);
+ case 212:
+ return emitTryStatement(node);
+ case 247:
+ return emitCatchClause(node);
+ case 213:
+ return emitDebuggerStatement(node);
+ case 214:
+ return emitVariableDeclaration(node);
+ case 189:
+ return emitClassExpression(node);
+ case 217:
+ return emitClassDeclaration(node);
+ case 218:
+ return emitInterfaceDeclaration(node);
case 220:
- return emitModuleDeclaration(node);
- case 224:
- return emitImportDeclaration(node);
- case 223:
- return emitImportEqualsDeclaration(node);
- case 230:
- return emitExportDeclaration(node);
- case 229:
- return emitExportAssignment(node);
+ return emitEnumDeclaration(node);
case 250:
+ return emitEnumMember(node);
+ case 221:
+ return emitModuleDeclaration(node);
+ case 225:
+ return emitImportDeclaration(node);
+ case 224:
+ return emitImportEqualsDeclaration(node);
+ case 231:
+ return emitExportDeclaration(node);
+ case 230:
+ return emitExportAssignment(node);
+ case 251:
return emitSourceFileNode(node);
}
}
@@ -31396,7 +31771,7 @@ var ts;
}
function getLeadingCommentsToEmit(node) {
if (node.parent) {
- if (node.parent.kind === 250 || node.pos !== node.parent.pos) {
+ if (node.parent.kind === 251 || node.pos !== node.parent.pos) {
if (hasDetachedComments(node.pos)) {
return getLeadingCommentsWithoutDetachedComments();
}
@@ -31408,7 +31783,7 @@ var ts;
}
function getTrailingCommentsToEmit(node) {
if (node.parent) {
- if (node.parent.kind === 250 || node.end !== node.parent.end) {
+ if (node.parent.kind === 251 || node.end !== node.parent.end) {
return ts.getTrailingCommentRanges(currentText, node.end);
}
}
@@ -31794,7 +32169,23 @@ var ts;
var currentDirectory = host.getCurrentDirectory();
var resolveModuleNamesWorker = host.resolveModuleNames
? (function (moduleNames, containingFile) { return host.resolveModuleNames(moduleNames, containingFile); })
- : (function (moduleNames, containingFile) { return ts.map(moduleNames, function (moduleName) { return resolveModuleName(moduleName, containingFile, options, host).resolvedModule; }); });
+ : (function (moduleNames, containingFile) {
+ var resolvedModuleNames = [];
+ var lookup = {};
+ for (var _i = 0, moduleNames_1 = moduleNames; _i < moduleNames_1.length; _i++) {
+ var moduleName = moduleNames_1[_i];
+ var resolvedName = void 0;
+ if (ts.hasProperty(lookup, moduleName)) {
+ resolvedName = lookup[moduleName];
+ }
+ else {
+ resolvedName = resolveModuleName(moduleName, containingFile, options, host).resolvedModule;
+ lookup[moduleName] = resolvedName;
+ }
+ resolvedModuleNames.push(resolvedName);
+ }
+ return resolvedModuleNames;
+ });
var filesByName = ts.createFileMap();
var filesByNameIgnoreCase = host.useCaseSensitiveFileNames() ? ts.createFileMap(function (fileName) { return fileName.toLowerCase(); }) : undefined;
if (oldProgram) {
@@ -31896,8 +32287,11 @@ var ts;
if (!ts.arrayIsEqualTo(oldSourceFile.imports, newSourceFile.imports, moduleNameIsEqualTo)) {
return false;
}
+ if (!ts.arrayIsEqualTo(oldSourceFile.moduleAugmentations, newSourceFile.moduleAugmentations, moduleNameIsEqualTo)) {
+ return false;
+ }
if (resolveModuleNamesWorker) {
- var moduleNames = ts.map(newSourceFile.imports, function (name) { return name.text; });
+ var moduleNames = ts.map(ts.concatenate(newSourceFile.imports, newSourceFile.moduleAugmentations), getTextOfLiteral);
var resolutions = resolveModuleNamesWorker(moduleNames, ts.getNormalizedAbsolutePath(newSourceFile.fileName, currentDirectory));
for (var i = 0; i < moduleNames.length; i++) {
var newResolution = resolutions[i];
@@ -32034,44 +32428,44 @@ var ts;
return false;
}
switch (node.kind) {
- case 223:
+ case 224:
diagnostics.push(ts.createDiagnosticForNode(node, ts.Diagnostics.import_can_only_be_used_in_a_ts_file));
return true;
- case 229:
+ case 230:
diagnostics.push(ts.createDiagnosticForNode(node, ts.Diagnostics.export_can_only_be_used_in_a_ts_file));
return true;
- case 216:
+ case 217:
var classDeclaration = node;
if (checkModifiers(classDeclaration.modifiers) ||
checkTypeParameters(classDeclaration.typeParameters)) {
return true;
}
break;
- case 245:
+ case 246:
var heritageClause = node;
if (heritageClause.token === 106) {
diagnostics.push(ts.createDiagnosticForNode(node, ts.Diagnostics.implements_clauses_can_only_be_used_in_a_ts_file));
return true;
}
break;
- case 217:
+ case 218:
diagnostics.push(ts.createDiagnosticForNode(node, ts.Diagnostics.interface_declarations_can_only_be_used_in_a_ts_file));
return true;
- case 220:
+ case 221:
diagnostics.push(ts.createDiagnosticForNode(node, ts.Diagnostics.module_declarations_can_only_be_used_in_a_ts_file));
return true;
- case 218:
+ case 219:
diagnostics.push(ts.createDiagnosticForNode(node, ts.Diagnostics.type_aliases_can_only_be_used_in_a_ts_file));
return true;
- case 143:
- case 142:
case 144:
+ case 143:
case 145:
case 146:
- case 175:
- case 215:
+ case 147:
case 176:
- case 215:
+ case 216:
+ case 177:
+ case 216:
var functionDeclaration = node;
if (checkModifiers(functionDeclaration.modifiers) ||
checkTypeParameters(functionDeclaration.typeParameters) ||
@@ -32079,20 +32473,20 @@ var ts;
return true;
}
break;
- case 195:
+ case 196:
var variableStatement = node;
if (checkModifiers(variableStatement.modifiers)) {
return true;
}
break;
- case 213:
+ case 214:
var variableDeclaration = node;
if (checkTypeAnnotation(variableDeclaration.type)) {
return true;
}
break;
- case 170:
case 171:
+ case 172:
var expression = node;
if (expression.typeArguments && expression.typeArguments.length > 0) {
var start_2 = expression.typeArguments.pos;
@@ -32100,7 +32494,7 @@ var ts;
return true;
}
break;
- case 138:
+ case 139:
var parameter = node;
if (parameter.modifiers) {
var start_3 = parameter.modifiers.pos;
@@ -32116,17 +32510,17 @@ var ts;
return true;
}
break;
- case 141:
+ case 142:
diagnostics.push(ts.createDiagnosticForNode(node, ts.Diagnostics.property_declarations_can_only_be_used_in_a_ts_file));
return true;
- case 219:
+ case 220:
diagnostics.push(ts.createDiagnosticForNode(node, ts.Diagnostics.enum_declarations_can_only_be_used_in_a_ts_file));
return true;
- case 173:
+ case 174:
var typeAssertionExpression = node;
diagnostics.push(ts.createDiagnosticForNode(typeAssertionExpression.type, ts.Diagnostics.type_assertion_expressions_can_only_be_used_in_a_ts_file));
return true;
- case 139:
+ case 140:
diagnostics.push(ts.createDiagnosticForNode(node, ts.Diagnostics.decorators_can_only_be_used_in_a_ts_file));
return true;
}
@@ -32202,51 +32596,64 @@ var ts;
function moduleNameIsEqualTo(a, b) {
return a.text === b.text;
}
+ function getTextOfLiteral(literal) {
+ return literal.text;
+ }
function collectExternalModuleReferences(file) {
if (file.imports) {
return;
}
var isJavaScriptFile = ts.isSourceFileJavaScript(file);
+ var isExternalModuleFile = ts.isExternalModule(file);
var imports;
+ var moduleAugmentations;
for (var _i = 0, _a = file.statements; _i < _a.length; _i++) {
var node = _a[_i];
- collect(node, true, false);
+ collectModuleReferences(node, false);
+ if (isJavaScriptFile) {
+ collectRequireCalls(node);
+ }
}
file.imports = imports || emptyArray;
+ file.moduleAugmentations = moduleAugmentations || emptyArray;
return;
- function collect(node, allowRelativeModuleNames, collectOnlyRequireCalls) {
- if (!collectOnlyRequireCalls) {
- switch (node.kind) {
- case 224:
- case 223:
- case 230:
- var moduleNameExpr = ts.getExternalModuleName(node);
- if (!moduleNameExpr || moduleNameExpr.kind !== 9) {
- break;
- }
- if (!moduleNameExpr.text) {
- break;
- }
- if (allowRelativeModuleNames || !ts.isExternalModuleNameRelative(moduleNameExpr.text)) {
- (imports || (imports = [])).push(moduleNameExpr);
- }
+ function collectModuleReferences(node, inAmbientModule) {
+ switch (node.kind) {
+ case 225:
+ case 224:
+ case 231:
+ var moduleNameExpr = ts.getExternalModuleName(node);
+ if (!moduleNameExpr || moduleNameExpr.kind !== 9) {
break;
- case 220:
- if (node.name.kind === 9 && (node.flags & 4 || ts.isDeclarationFile(file))) {
- ts.forEachChild(node.body, function (node) {
- collect(node, false, collectOnlyRequireCalls);
- });
- }
+ }
+ if (!moduleNameExpr.text) {
break;
- }
+ }
+ if (!inAmbientModule || !ts.isExternalModuleNameRelative(moduleNameExpr.text)) {
+ (imports || (imports = [])).push(moduleNameExpr);
+ }
+ break;
+ case 221:
+ if (ts.isAmbientModule(node) && (inAmbientModule || node.flags & 4 || ts.isDeclarationFile(file))) {
+ var moduleName = node.name;
+ if (isExternalModuleFile || (inAmbientModule && !ts.isExternalModuleNameRelative(moduleName.text))) {
+ (moduleAugmentations || (moduleAugmentations = [])).push(moduleName);
+ }
+ else if (!inAmbientModule) {
+ for (var _i = 0, _a = node.body.statements; _i < _a.length; _i++) {
+ var statement = _a[_i];
+ collectModuleReferences(statement, true);
+ }
+ }
+ }
}
- if (isJavaScriptFile) {
- if (ts.isRequireCall(node)) {
- (imports || (imports = [])).push(node.arguments[0]);
- }
- else {
- ts.forEachChild(node, function (node) { return collect(node, allowRelativeModuleNames, true); });
- }
+ }
+ function collectRequireCalls(node) {
+ if (ts.isRequireCall(node)) {
+ (imports || (imports = [])).push(node.arguments[0]);
+ }
+ else {
+ ts.forEachChild(node, collectRequireCalls);
}
}
}
@@ -32352,14 +32759,17 @@ var ts;
}
function processImportedModules(file, basePath) {
collectExternalModuleReferences(file);
- if (file.imports.length) {
+ if (file.imports.length || file.moduleAugmentations.length) {
file.resolvedModules = {};
- var moduleNames = ts.map(file.imports, function (name) { return name.text; });
+ var moduleNames = ts.map(ts.concatenate(file.imports, file.moduleAugmentations), getTextOfLiteral);
var resolutions = resolveModuleNamesWorker(moduleNames, ts.getNormalizedAbsolutePath(file.fileName, currentDirectory));
- for (var i = 0; i < file.imports.length; i++) {
+ for (var i = 0; i < moduleNames.length; i++) {
var resolution = resolutions[i];
ts.setResolvedModule(file, moduleNames[i], resolution);
- if (resolution && !options.noResolve) {
+ var shouldAddFile = resolution &&
+ !options.noResolve &&
+ i < file.imports.length;
+ if (shouldAddFile) {
var importedFile = findSourceFile(resolution.resolvedFileName, ts.toPath(resolution.resolvedFileName, currentDirectory, getCanonicalFileName), false, file, ts.skipTrivia(file.text, file.imports[i].pos), file.imports[i].end);
if (importedFile && resolution.isExternalLibraryImport) {
if (!ts.isExternalModule(importedFile)) {
@@ -33351,7 +33761,8 @@ var ts;
return ts.sys.exit(ts.ExitStatus.DiagnosticsPresent_OutputsSkipped);
}
if (configFileName) {
- configFileWatcher = ts.sys.watchFile(configFileName, configFileChanged);
+ var configFilePath = ts.toPath(configFileName, ts.sys.getCurrentDirectory(), ts.createGetCanonicalFileName(ts.sys.useCaseSensitiveFileNames));
+ configFileWatcher = ts.sys.watchFile(configFilePath, configFileChanged);
}
if (ts.sys.watchDirectory && configFileName) {
var directory = ts.getDirectoryPath(configFileName);
@@ -33435,7 +33846,8 @@ var ts;
}
var sourceFile = hostGetSourceFile(fileName, languageVersion, onError);
if (sourceFile && compilerOptions.watch) {
- sourceFile.fileWatcher = ts.sys.watchFile(sourceFile.fileName, function (fileName, removed) { return sourceFileChanged(sourceFile, removed); });
+ var filePath = ts.toPath(sourceFile.fileName, ts.sys.getCurrentDirectory(), ts.createGetCanonicalFileName(ts.sys.useCaseSensitiveFileNames));
+ sourceFile.fileWatcher = ts.sys.watchFile(filePath, function (fileName, removed) { return sourceFileChanged(sourceFile, removed); });
}
return sourceFile;
}
@@ -33646,10 +34058,10 @@ var ts;
function serializeCompilerOptions(options) {
var result = {};
var optionsNameMap = ts.getOptionNameMap().optionNameMap;
- for (var name_28 in options) {
- if (ts.hasProperty(options, name_28)) {
- var value = options[name_28];
- switch (name_28) {
+ for (var name_31 in options) {
+ if (ts.hasProperty(options, name_31)) {
+ var value = options[name_31];
+ switch (name_31) {
case "init":
case "watch":
case "version":
@@ -33657,17 +34069,17 @@ var ts;
case "project":
break;
default:
- var optionDefinition = optionsNameMap[name_28.toLowerCase()];
+ var optionDefinition = optionsNameMap[name_31.toLowerCase()];
if (optionDefinition) {
if (typeof optionDefinition.type === "string") {
- result[name_28] = value;
+ result[name_31] = value;
}
else {
var typeMap = optionDefinition.type;
for (var key in typeMap) {
if (ts.hasProperty(typeMap, key)) {
if (typeMap[key] === value)
- result[name_28] = key;
+ result[name_31] = key;
}
}
}
diff --git a/lib/tsserver.js b/lib/tsserver.js
index b04981dc6db..ba62ebe0dde 100644
--- a/lib/tsserver.js
+++ b/lib/tsserver.js
@@ -636,7 +636,8 @@ var ts;
if (directoryComponents.length > 1 && lastOrUndefined(directoryComponents) === "") {
directoryComponents.length--;
}
- for (var joinStartIndex = 0; joinStartIndex < pathComponents.length && joinStartIndex < directoryComponents.length; joinStartIndex++) {
+ var joinStartIndex;
+ for (joinStartIndex = 0; joinStartIndex < pathComponents.length && joinStartIndex < directoryComponents.length; joinStartIndex++) {
if (getCanonicalFileName(directoryComponents[joinStartIndex]) !== getCanonicalFileName(pathComponents[joinStartIndex])) {
break;
}
@@ -773,6 +774,12 @@ var ts;
return copiedList;
}
ts.copyListRemovingItem = copyListRemovingItem;
+ function createGetCanonicalFileName(useCaseSensitivefileNames) {
+ return useCaseSensitivefileNames
+ ? (function (fileName) { return fileName; })
+ : (function (fileName) { return fileName.toLowerCase(); });
+ }
+ ts.createGetCanonicalFileName = createGetCanonicalFileName;
})(ts || (ts = {}));
var ts;
(function (ts) {
@@ -911,7 +918,7 @@ var ts;
var _fs = require("fs");
var _path = require("path");
var _os = require("os");
- function createWatchedFileSet(interval, chunkSize) {
+ function createPollingWatchedFileSet(interval, chunkSize) {
if (interval === void 0) { interval = 2500; }
if (chunkSize === void 0) { chunkSize = 30; }
var watchedFiles = [];
@@ -925,13 +932,13 @@ var ts;
if (!watchedFile) {
return;
}
- _fs.stat(watchedFile.fileName, function (err, stats) {
+ _fs.stat(watchedFile.filePath, function (err, stats) {
if (err) {
- watchedFile.callback(watchedFile.fileName);
+ watchedFile.callback(watchedFile.filePath);
}
else if (watchedFile.mtime.getTime() !== stats.mtime.getTime()) {
- watchedFile.mtime = getModifiedTime(watchedFile.fileName);
- watchedFile.callback(watchedFile.fileName, watchedFile.mtime.getTime() === 0);
+ watchedFile.mtime = getModifiedTime(watchedFile.filePath);
+ watchedFile.callback(watchedFile.filePath, watchedFile.mtime.getTime() === 0);
}
});
}
@@ -954,11 +961,11 @@ var ts;
nextFileToCheck = nextToCheck;
}, interval);
}
- function addFile(fileName, callback) {
+ function addFile(filePath, callback) {
var file = {
- fileName: fileName,
+ filePath: filePath,
callback: callback,
- mtime: getModifiedTime(fileName)
+ mtime: getModifiedTime(filePath)
};
watchedFiles.push(file);
if (watchedFiles.length === 1) {
@@ -977,7 +984,77 @@ var ts;
removeFile: removeFile
};
}
+ function createWatchedFileSet() {
+ var dirWatchers = ts.createFileMap();
+ var fileWatcherCallbacks = ts.createFileMap();
+ return { addFile: addFile, removeFile: removeFile };
+ function reduceDirWatcherRefCountForFile(filePath) {
+ var dirPath = ts.getDirectoryPath(filePath);
+ if (dirWatchers.contains(dirPath)) {
+ var watcher = dirWatchers.get(dirPath);
+ watcher.referenceCount -= 1;
+ if (watcher.referenceCount <= 0) {
+ watcher.close();
+ dirWatchers.remove(dirPath);
+ }
+ }
+ }
+ function addDirWatcher(dirPath) {
+ if (dirWatchers.contains(dirPath)) {
+ var watcher_1 = dirWatchers.get(dirPath);
+ watcher_1.referenceCount += 1;
+ return;
+ }
+ var watcher = _fs.watch(dirPath, { persistent: true }, function (eventName, relativeFileName) { return fileEventHandler(eventName, relativeFileName, dirPath); });
+ watcher.referenceCount = 1;
+ dirWatchers.set(dirPath, watcher);
+ return;
+ }
+ function addFileWatcherCallback(filePath, callback) {
+ if (fileWatcherCallbacks.contains(filePath)) {
+ fileWatcherCallbacks.get(filePath).push(callback);
+ }
+ else {
+ fileWatcherCallbacks.set(filePath, [callback]);
+ }
+ }
+ function addFile(filePath, callback) {
+ addFileWatcherCallback(filePath, callback);
+ addDirWatcher(ts.getDirectoryPath(filePath));
+ return { filePath: filePath, callback: callback };
+ }
+ function removeFile(watchedFile) {
+ removeFileWatcherCallback(watchedFile.filePath, watchedFile.callback);
+ reduceDirWatcherRefCountForFile(watchedFile.filePath);
+ }
+ function removeFileWatcherCallback(filePath, callback) {
+ if (fileWatcherCallbacks.contains(filePath)) {
+ var newCallbacks = ts.copyListRemovingItem(callback, fileWatcherCallbacks.get(filePath));
+ if (newCallbacks.length === 0) {
+ fileWatcherCallbacks.remove(filePath);
+ }
+ else {
+ fileWatcherCallbacks.set(filePath, newCallbacks);
+ }
+ }
+ }
+ function fileEventHandler(eventName, relativeFileName, baseDirPath) {
+ var filePath = typeof relativeFileName !== "string"
+ ? undefined
+ : ts.toPath(relativeFileName, baseDirPath, ts.createGetCanonicalFileName(ts.sys.useCaseSensitiveFileNames));
+ if (eventName === "change" && fileWatcherCallbacks.contains(filePath)) {
+ for (var _i = 0, _a = fileWatcherCallbacks.get(filePath); _i < _a.length; _i++) {
+ var fileCallback = _a[_i];
+ fileCallback(filePath);
+ }
+ }
+ }
+ }
+ var pollingWatchedFileSet = createPollingWatchedFileSet();
var watchedFileSet = createWatchedFileSet();
+ function isNode4OrLater() {
+ return parseInt(process.version.charAt(1)) >= 4;
+ }
var platform = _os.platform();
var useCaseSensitiveFileNames = platform !== "win32" && platform !== "win64" && platform !== "darwin";
function readFile(fileName, encoding) {
@@ -1019,7 +1096,7 @@ var ts;
}
}
function getCanonicalPath(path) {
- return useCaseSensitiveFileNames ? path.toLowerCase() : path;
+ return useCaseSensitiveFileNames ? path : path.toLowerCase();
}
function readDirectory(path, extension, exclude) {
var result = [];
@@ -1059,14 +1136,22 @@ var ts;
},
readFile: readFile,
writeFile: writeFile,
- watchFile: function (fileName, callback) {
- var watchedFile = watchedFileSet.addFile(fileName, callback);
+ watchFile: function (filePath, callback) {
+ var watchSet = isNode4OrLater() ? watchedFileSet : pollingWatchedFileSet;
+ var watchedFile = watchSet.addFile(filePath, callback);
return {
- close: function () { return watchedFileSet.removeFile(watchedFile); }
+ close: function () { return watchSet.removeFile(watchedFile); }
};
},
watchDirectory: function (path, callback, recursive) {
- return _fs.watch(path, { persistent: true, recursive: !!recursive }, function (eventName, relativeFileName) {
+ var options;
+ if (isNode4OrLater() && (process.platform === "win32" || process.platform === "darwin")) {
+ options = { persistent: true, recursive: !!recursive };
+ }
+ else {
+ options = { persistent: true };
+ }
+ return _fs.watch(path, options, function (eventName, relativeFileName) {
if (eventName === "rename") {
callback(!relativeFileName ? relativeFileName : ts.normalizePath(ts.combinePaths(path, relativeFileName)));
}
@@ -1325,7 +1410,6 @@ var ts;
Cannot_find_parameter_0: { code: 1225, category: ts.DiagnosticCategory.Error, key: "Cannot_find_parameter_0_1225", message: "Cannot find parameter '{0}'." },
Type_predicate_0_is_not_assignable_to_1: { code: 1226, category: ts.DiagnosticCategory.Error, key: "Type_predicate_0_is_not_assignable_to_1_1226", message: "Type predicate '{0}' is not assignable to '{1}'." },
Parameter_0_is_not_in_the_same_position_as_parameter_1: { code: 1227, category: ts.DiagnosticCategory.Error, key: "Parameter_0_is_not_in_the_same_position_as_parameter_1_1227", message: "Parameter '{0}' is not in the same position as parameter '{1}'." },
- A_type_predicate_is_only_allowed_in_return_type_position_for_functions_and_methods: { code: 1228, category: ts.DiagnosticCategory.Error, key: "A_type_predicate_is_only_allowed_in_return_type_position_for_functions_and_methods_1228", message: "A type predicate is only allowed in return type position for functions and methods." },
A_type_predicate_cannot_reference_a_rest_parameter: { code: 1229, category: ts.DiagnosticCategory.Error, key: "A_type_predicate_cannot_reference_a_rest_parameter_1229", message: "A type predicate cannot reference a rest parameter." },
A_type_predicate_cannot_reference_element_0_in_a_binding_pattern: { code: 1230, category: ts.DiagnosticCategory.Error, key: "A_type_predicate_cannot_reference_element_0_in_a_binding_pattern_1230", message: "A type predicate cannot reference element '{0}' in a binding pattern." },
An_export_assignment_can_only_be_used_in_a_module: { code: 1231, category: ts.DiagnosticCategory.Error, key: "An_export_assignment_can_only_be_used_in_a_module_1231", message: "An export assignment can only be used in a module." },
@@ -1561,7 +1645,6 @@ var ts;
All_declarations_of_an_abstract_method_must_be_consecutive: { code: 2516, category: ts.DiagnosticCategory.Error, key: "All_declarations_of_an_abstract_method_must_be_consecutive_2516", message: "All declarations of an abstract method must be consecutive." },
Cannot_assign_an_abstract_constructor_type_to_a_non_abstract_constructor_type: { code: 2517, category: ts.DiagnosticCategory.Error, key: "Cannot_assign_an_abstract_constructor_type_to_a_non_abstract_constructor_type_2517", message: "Cannot assign an abstract constructor type to a non-abstract constructor type." },
A_this_based_type_guard_is_not_compatible_with_a_parameter_based_type_guard: { code: 2518, category: ts.DiagnosticCategory.Error, key: "A_this_based_type_guard_is_not_compatible_with_a_parameter_based_type_guard_2518", message: "A 'this'-based type guard is not compatible with a parameter-based type guard." },
- A_this_based_type_predicate_is_only_allowed_within_a_class_or_interface_s_members_get_accessors_or_return_type_positions_for_functions_and_methods: { code: 2519, category: ts.DiagnosticCategory.Error, key: "A_this_based_type_predicate_is_only_allowed_within_a_class_or_interface_s_members_get_accessors_or_r_2519", message: "A 'this'-based type predicate is only allowed within a class or interface's members, get accessors, or return type positions for functions and methods." },
Duplicate_identifier_0_Compiler_uses_declaration_1_to_support_async_functions: { code: 2520, category: ts.DiagnosticCategory.Error, key: "Duplicate_identifier_0_Compiler_uses_declaration_1_to_support_async_functions_2520", message: "Duplicate identifier '{0}'. Compiler uses declaration '{1}' to support async functions." },
Expression_resolves_to_variable_declaration_0_that_compiler_uses_to_support_async_functions: { code: 2521, category: ts.DiagnosticCategory.Error, key: "Expression_resolves_to_variable_declaration_0_that_compiler_uses_to_support_async_functions_2521", message: "Expression resolves to variable declaration '{0}' that compiler uses to support async functions." },
The_arguments_object_cannot_be_referenced_in_an_async_arrow_function_Consider_using_a_standard_async_function_expression: { code: 2522, category: ts.DiagnosticCategory.Error, key: "The_arguments_object_cannot_be_referenced_in_an_async_arrow_function_Consider_using_a_standard_async_2522", message: "The 'arguments' object cannot be referenced in an async arrow function. Consider using a standard async function expression." },
@@ -1590,6 +1673,16 @@ var ts;
Type_0_provides_no_match_for_the_signature_1: { code: 2658, category: ts.DiagnosticCategory.Error, key: "Type_0_provides_no_match_for_the_signature_1_2658", message: "Type '{0}' provides no match for the signature '{1}'" },
super_is_only_allowed_in_members_of_object_literal_expressions_when_option_target_is_ES2015_or_higher: { code: 2659, category: ts.DiagnosticCategory.Error, key: "super_is_only_allowed_in_members_of_object_literal_expressions_when_option_target_is_ES2015_or_highe_2659", message: "'super' is only allowed in members of object literal expressions when option 'target' is 'ES2015' or higher." },
super_can_only_be_referenced_in_members_of_derived_classes_or_object_literal_expressions: { code: 2660, category: ts.DiagnosticCategory.Error, key: "super_can_only_be_referenced_in_members_of_derived_classes_or_object_literal_expressions_2660", message: "'super' can only be referenced in members of derived classes or object literal expressions." },
+ Cannot_re_export_name_that_is_not_defined_in_the_module: { code: 2661, category: ts.DiagnosticCategory.Error, key: "Cannot_re_export_name_that_is_not_defined_in_the_module_2661", message: "Cannot re-export name that is not defined in the module." },
+ Cannot_find_name_0_Did_you_mean_the_static_member_1_0: { code: 2662, category: ts.DiagnosticCategory.Error, key: "Cannot_find_name_0_Did_you_mean_the_static_member_1_0_2662", message: "Cannot find name '{0}'. Did you mean the static member '{1}.{0}'?" },
+ Cannot_find_name_0_Did_you_mean_the_instance_member_this_0: { code: 2663, category: ts.DiagnosticCategory.Error, key: "Cannot_find_name_0_Did_you_mean_the_instance_member_this_0_2663", message: "Cannot find name '{0}'. Did you mean the instance member 'this.{0}'?" },
+ Invalid_module_name_in_augmentation_module_0_cannot_be_found: { code: 2664, category: ts.DiagnosticCategory.Error, key: "Invalid_module_name_in_augmentation_module_0_cannot_be_found_2664", message: "Invalid module name in augmentation, module '{0}' cannot be found." },
+ Module_augmentation_cannot_introduce_new_names_in_the_top_level_scope: { code: 2665, category: ts.DiagnosticCategory.Error, key: "Module_augmentation_cannot_introduce_new_names_in_the_top_level_scope_2665", message: "Module augmentation cannot introduce new names in the top level scope." },
+ Exports_and_export_assignments_are_not_permitted_in_module_augmentations: { code: 2666, category: ts.DiagnosticCategory.Error, key: "Exports_and_export_assignments_are_not_permitted_in_module_augmentations_2666", message: "Exports and export assignments are not permitted in module augmentations." },
+ Imports_are_not_permitted_in_module_augmentations_Consider_moving_them_to_the_enclosing_external_module: { code: 2667, category: ts.DiagnosticCategory.Error, key: "Imports_are_not_permitted_in_module_augmentations_Consider_moving_them_to_the_enclosing_external_mod_2667", message: "Imports are not permitted in module augmentations. Consider moving them to the enclosing external module." },
+ export_modifier_cannot_be_applied_to_ambient_modules_and_module_augmentations_since_they_are_always_visible: { code: 2668, category: ts.DiagnosticCategory.Error, key: "export_modifier_cannot_be_applied_to_ambient_modules_and_module_augmentations_since_they_are_always__2668", message: "'export' modifier cannot be applied to ambient modules and module augmentations since they are always visible." },
+ Augmentations_for_the_global_scope_can_only_be_directly_nested_in_external_modules_or_ambient_module_declarations: { code: 2669, category: ts.DiagnosticCategory.Error, key: "Augmentations_for_the_global_scope_can_only_be_directly_nested_in_external_modules_or_ambient_module_2669", message: "Augmentations for the global scope can only be directly nested in external modules or ambient module declarations." },
+ Augmentations_for_the_global_scope_should_have_declare_modifier_unless_they_appear_in_already_ambient_context: { code: 2670, category: ts.DiagnosticCategory.Error, key: "Augmentations_for_the_global_scope_should_have_declare_modifier_unless_they_appear_in_already_ambien_2670", message: "Augmentations for the global scope should have 'declare' modifier unless they appear in already ambient context." },
Import_declaration_0_is_using_private_name_1: { code: 4000, category: ts.DiagnosticCategory.Error, key: "Import_declaration_0_is_using_private_name_1_4000", message: "Import declaration '{0}' is using private name '{1}'." },
Type_parameter_0_of_exported_class_has_or_is_using_private_name_1: { code: 4002, category: ts.DiagnosticCategory.Error, key: "Type_parameter_0_of_exported_class_has_or_is_using_private_name_1_4002", message: "Type parameter '{0}' of exported class has or is using private name '{1}'." },
Type_parameter_0_of_exported_interface_has_or_is_using_private_name_1: { code: 4004, category: ts.DiagnosticCategory.Error, key: "Type_parameter_0_of_exported_interface_has_or_is_using_private_name_1_4004", message: "Type parameter '{0}' of exported interface has or is using private name '{1}'." },
@@ -1754,6 +1847,7 @@ var ts;
_0_which_lacks_return_type_annotation_implicitly_has_an_1_return_type: { code: 7010, category: ts.DiagnosticCategory.Error, key: "_0_which_lacks_return_type_annotation_implicitly_has_an_1_return_type_7010", message: "'{0}', which lacks return-type annotation, implicitly has an '{1}' return type." },
Function_expression_which_lacks_return_type_annotation_implicitly_has_an_0_return_type: { code: 7011, category: ts.DiagnosticCategory.Error, key: "Function_expression_which_lacks_return_type_annotation_implicitly_has_an_0_return_type_7011", message: "Function expression, which lacks return-type annotation, implicitly has an '{0}' return type." },
Construct_signature_which_lacks_return_type_annotation_implicitly_has_an_any_return_type: { code: 7013, category: ts.DiagnosticCategory.Error, key: "Construct_signature_which_lacks_return_type_annotation_implicitly_has_an_any_return_type_7013", message: "Construct signature, which lacks return-type annotation, implicitly has an 'any' return type." },
+ Element_implicitly_has_an_any_type_because_index_expression_is_not_of_type_number: { code: 7015, category: ts.DiagnosticCategory.Error, key: "Element_implicitly_has_an_any_type_because_index_expression_is_not_of_type_number_7015", message: "Element implicitly has an 'any' type because index expression is not of type 'number'." },
Property_0_implicitly_has_type_any_because_its_set_accessor_lacks_a_type_annotation: { code: 7016, category: ts.DiagnosticCategory.Error, key: "Property_0_implicitly_has_type_any_because_its_set_accessor_lacks_a_type_annotation_7016", message: "Property '{0}' implicitly has type 'any', because its 'set' accessor lacks a type annotation." },
Index_signature_of_object_type_implicitly_has_an_any_type: { code: 7017, category: ts.DiagnosticCategory.Error, key: "Index_signature_of_object_type_implicitly_has_an_any_type_7017", message: "Index signature of object type implicitly has an 'any' type." },
Object_literal_s_property_0_implicitly_has_an_1_type: { code: 7018, category: ts.DiagnosticCategory.Error, key: "Object_literal_s_property_0_implicitly_has_an_1_type_7018", message: "Object literal's property '{0}' implicitly has an '{1}' type." },
@@ -1849,6 +1943,7 @@ var ts;
"protected": 111,
"public": 112,
"require": 127,
+ "global": 134,
"return": 94,
"set": 129,
"static": 113,
@@ -1869,7 +1964,7 @@ var ts;
"yield": 114,
"async": 118,
"await": 119,
- "of": 134,
+ "of": 135,
"{": 15,
"}": 16,
"(": 17,
@@ -3130,7 +3225,7 @@ var ts;
break;
}
}
- return token = 238;
+ return token = 239;
}
function scanJsxIdentifier() {
if (tokenIsIdentifierOrKeyword(token)) {
@@ -3831,7 +3926,7 @@ var ts;
}
}
function getSourceFileOfNode(node) {
- while (node && node.kind !== 250) {
+ while (node && node.kind !== 251) {
node = node.parent;
}
return node;
@@ -3915,6 +4010,28 @@ var ts;
isCatchClauseVariableDeclaration(declaration);
}
ts.isBlockOrCatchScoped = isBlockOrCatchScoped;
+ function isAmbientModule(node) {
+ return node && node.kind === 221 &&
+ (node.name.kind === 9 || isGlobalScopeAugmentation(node));
+ }
+ ts.isAmbientModule = isAmbientModule;
+ function isGlobalScopeAugmentation(module) {
+ return !!(module.flags & 2097152);
+ }
+ ts.isGlobalScopeAugmentation = isGlobalScopeAugmentation;
+ function isExternalModuleAugmentation(node) {
+ if (!node || !isAmbientModule(node)) {
+ return false;
+ }
+ switch (node.parent.kind) {
+ case 251:
+ return isExternalModule(node.parent);
+ case 222:
+ return isAmbientModule(node.parent.parent) && !isExternalModule(node.parent.parent.parent);
+ }
+ return false;
+ }
+ ts.isExternalModuleAugmentation = isExternalModuleAugmentation;
function getEnclosingBlockScopeContainer(node) {
var current = node.parent;
while (current) {
@@ -3922,15 +4039,15 @@ var ts;
return current;
}
switch (current.kind) {
- case 250:
- case 222:
- case 246:
- case 220:
- case 201:
+ case 251:
+ case 223:
+ case 247:
+ case 221:
case 202:
case 203:
+ case 204:
return current;
- case 194:
+ case 195:
if (!isFunctionLike(current.parent)) {
return current;
}
@@ -3941,9 +4058,9 @@ var ts;
ts.getEnclosingBlockScopeContainer = getEnclosingBlockScopeContainer;
function isCatchClauseVariableDeclaration(declaration) {
return declaration &&
- declaration.kind === 213 &&
+ declaration.kind === 214 &&
declaration.parent &&
- declaration.parent.kind === 246;
+ declaration.parent.kind === 247;
}
ts.isCatchClauseVariableDeclaration = isCatchClauseVariableDeclaration;
function declarationNameToString(name) {
@@ -3979,23 +4096,24 @@ var ts;
function getErrorSpanForNode(sourceFile, node) {
var errorNode = node;
switch (node.kind) {
- case 250:
+ case 251:
var pos_1 = ts.skipTrivia(sourceFile.text, 0, false);
if (pos_1 === sourceFile.text.length) {
return ts.createTextSpan(0, 0);
}
return getSpanOfTokenAtPosition(sourceFile, pos_1);
- case 213:
- case 165:
- case 216:
- case 188:
+ case 214:
+ case 166:
case 217:
+ case 189:
+ case 218:
+ case 221:
case 220:
+ case 250:
+ case 216:
+ case 176:
+ case 144:
case 219:
- case 249:
- case 215:
- case 175:
- case 143:
errorNode = node.name;
break;
}
@@ -4021,11 +4139,11 @@ var ts;
}
ts.isDeclarationFile = isDeclarationFile;
function isConstEnumDeclaration(node) {
- return node.kind === 219 && isConst(node);
+ return node.kind === 220 && isConst(node);
}
ts.isConstEnumDeclaration = isConstEnumDeclaration;
function walkUpBindingElementsAndPatterns(node) {
- while (node && (node.kind === 165 || isBindingPattern(node))) {
+ while (node && (node.kind === 166 || isBindingPattern(node))) {
node = node.parent;
}
return node;
@@ -4033,14 +4151,14 @@ var ts;
function getCombinedNodeFlags(node) {
node = walkUpBindingElementsAndPatterns(node);
var flags = node.flags;
- if (node.kind === 213) {
+ if (node.kind === 214) {
node = node.parent;
}
- if (node && node.kind === 214) {
+ if (node && node.kind === 215) {
flags |= node.flags;
node = node.parent;
}
- if (node && node.kind === 195) {
+ if (node && node.kind === 196) {
flags |= node.flags;
}
return flags;
@@ -4055,7 +4173,7 @@ var ts;
}
ts.isLet = isLet;
function isPrologueDirective(node) {
- return node.kind === 197 && node.expression.kind === 9;
+ return node.kind === 198 && node.expression.kind === 9;
}
ts.isPrologueDirective = isPrologueDirective;
function getLeadingCommentRangesOfNode(node, sourceFileOfNode) {
@@ -4071,7 +4189,7 @@ var ts;
}
ts.getJsDocComments = getJsDocComments;
function getJsDocCommentsFromText(node, text) {
- var commentRanges = (node.kind === 138 || node.kind === 137) ?
+ var commentRanges = (node.kind === 139 || node.kind === 138) ?
ts.concatenate(ts.getTrailingCommentRanges(text, node.pos), ts.getLeadingCommentRanges(text, node.pos)) :
getLeadingCommentRangesOfNodeFromText(node, text);
return ts.filter(commentRanges, isJsDocComment);
@@ -4085,7 +4203,7 @@ var ts;
ts.fullTripleSlashReferencePathRegEx = /^(\/\/\/\s*/;
ts.fullTripleSlashAMDReferencePathRegEx = /^(\/\/\/\s*/;
function isTypeNode(node) {
- if (150 <= node.kind && node.kind <= 162) {
+ if (151 <= node.kind && node.kind <= 163) {
return true;
}
switch (node.kind) {
@@ -4096,56 +4214,56 @@ var ts;
case 131:
return true;
case 103:
- return node.parent.kind !== 179;
- case 190:
+ return node.parent.kind !== 180;
+ case 191:
return !isExpressionWithTypeArgumentsInClassExtendsClause(node);
case 69:
- if (node.parent.kind === 135 && node.parent.right === node) {
+ if (node.parent.kind === 136 && node.parent.right === node) {
node = node.parent;
}
- else if (node.parent.kind === 168 && node.parent.name === node) {
+ else if (node.parent.kind === 169 && node.parent.name === node) {
node = node.parent;
}
- ts.Debug.assert(node.kind === 69 || node.kind === 135 || node.kind === 168, "'node' was expected to be a qualified name, identifier or property access in 'isTypeNode'.");
- case 135:
- case 168:
+ ts.Debug.assert(node.kind === 69 || node.kind === 136 || node.kind === 169, "'node' was expected to be a qualified name, identifier or property access in 'isTypeNode'.");
+ case 136:
+ case 169:
case 97:
var parent_1 = node.parent;
- if (parent_1.kind === 154) {
+ if (parent_1.kind === 155) {
return false;
}
- if (150 <= parent_1.kind && parent_1.kind <= 162) {
+ if (151 <= parent_1.kind && parent_1.kind <= 163) {
return true;
}
switch (parent_1.kind) {
- case 190:
+ case 191:
return !isExpressionWithTypeArgumentsInClassExtendsClause(parent_1);
- case 137:
- return node === parent_1.constraint;
- case 141:
- case 140:
case 138:
- case 213:
+ return node === parent_1.constraint;
+ case 142:
+ case 141:
+ case 139:
+ case 214:
return node === parent_1.type;
- case 215:
- case 175:
+ case 216:
case 176:
+ case 177:
+ case 145:
case 144:
case 143:
- case 142:
- case 145:
case 146:
- return node === parent_1.type;
case 147:
+ return node === parent_1.type;
case 148:
case 149:
+ case 150:
return node === parent_1.type;
- case 173:
+ case 174:
return node === parent_1.type;
- case 170:
case 171:
- return parent_1.typeArguments && ts.indexOf(parent_1.typeArguments, node) >= 0;
case 172:
+ return parent_1.typeArguments && ts.indexOf(parent_1.typeArguments, node) >= 0;
+ case 173:
return false;
}
}
@@ -4156,23 +4274,23 @@ var ts;
return traverse(body);
function traverse(node) {
switch (node.kind) {
- case 206:
+ case 207:
return visitor(node);
- case 222:
- case 194:
- case 198:
+ case 223:
+ case 195:
case 199:
case 200:
case 201:
case 202:
case 203:
- case 207:
+ case 204:
case 208:
- case 243:
- case 244:
case 209:
- case 211:
- case 246:
+ case 244:
+ case 245:
+ case 210:
+ case 212:
+ case 247:
return ts.forEachChild(node, traverse);
}
}
@@ -4182,23 +4300,23 @@ var ts;
return traverse(body);
function traverse(node) {
switch (node.kind) {
- case 186:
+ case 187:
visitor(node);
var operand = node.expression;
if (operand) {
traverse(operand);
}
- case 219:
- case 217:
case 220:
case 218:
- case 216:
- case 188:
+ case 221:
+ case 219:
+ case 217:
+ case 189:
return;
default:
if (isFunctionLike(node)) {
var name_5 = node.name;
- if (name_5 && name_5.kind === 136) {
+ if (name_5 && name_5.kind === 137) {
traverse(name_5.expression);
return;
}
@@ -4213,14 +4331,14 @@ var ts;
function isVariableLike(node) {
if (node) {
switch (node.kind) {
- case 165:
- case 249:
- case 138:
- case 247:
- case 141:
- case 140:
+ case 166:
+ case 250:
+ case 139:
case 248:
- case 213:
+ case 142:
+ case 141:
+ case 249:
+ case 214:
return true;
}
}
@@ -4228,11 +4346,11 @@ var ts;
}
ts.isVariableLike = isVariableLike;
function isAccessor(node) {
- return node && (node.kind === 145 || node.kind === 146);
+ return node && (node.kind === 146 || node.kind === 147);
}
ts.isAccessor = isAccessor;
function isClassLike(node) {
- return node && (node.kind === 216 || node.kind === 188);
+ return node && (node.kind === 217 || node.kind === 189);
}
ts.isClassLike = isClassLike;
function isFunctionLike(node) {
@@ -4241,32 +4359,32 @@ var ts;
ts.isFunctionLike = isFunctionLike;
function isFunctionLikeKind(kind) {
switch (kind) {
- case 144:
- case 175:
- case 215:
- case 176:
- case 143:
- case 142:
case 145:
+ case 176:
+ case 216:
+ case 177:
+ case 144:
+ case 143:
case 146:
case 147:
case 148:
case 149:
- case 152:
+ case 150:
case 153:
+ case 154:
return true;
}
}
ts.isFunctionLikeKind = isFunctionLikeKind;
function introducesArgumentsExoticObject(node) {
switch (node.kind) {
- case 143:
- case 142:
case 144:
+ case 143:
case 145:
case 146:
- case 215:
- case 175:
+ case 147:
+ case 216:
+ case 176:
return true;
}
return false;
@@ -4274,24 +4392,24 @@ var ts;
ts.introducesArgumentsExoticObject = introducesArgumentsExoticObject;
function isIterationStatement(node, lookInLabeledStatements) {
switch (node.kind) {
- case 201:
case 202:
case 203:
- case 199:
+ case 204:
case 200:
+ case 201:
return true;
- case 209:
+ case 210:
return lookInLabeledStatements && isIterationStatement(node.statement, lookInLabeledStatements);
}
return false;
}
ts.isIterationStatement = isIterationStatement;
function isFunctionBlock(node) {
- return node && node.kind === 194 && isFunctionLike(node.parent);
+ return node && node.kind === 195 && isFunctionLike(node.parent);
}
ts.isFunctionBlock = isFunctionBlock;
function isObjectLiteralMethod(node) {
- return node && node.kind === 143 && node.parent.kind === 167;
+ return node && node.kind === 144 && node.parent.kind === 168;
}
ts.isObjectLiteralMethod = isObjectLiteralMethod;
function isIdentifierTypePredicate(predicate) {
@@ -4323,39 +4441,39 @@ var ts;
return undefined;
}
switch (node.kind) {
- case 136:
+ case 137:
if (isClassLike(node.parent.parent)) {
return node;
}
node = node.parent;
break;
- case 139:
- if (node.parent.kind === 138 && isClassElement(node.parent.parent)) {
+ case 140:
+ if (node.parent.kind === 139 && isClassElement(node.parent.parent)) {
node = node.parent.parent;
}
else if (isClassElement(node.parent)) {
node = node.parent;
}
break;
- case 176:
+ case 177:
if (!includeArrowFunctions) {
continue;
}
- case 215:
- case 175:
- case 220:
- case 141:
- case 140:
- case 143:
+ case 216:
+ case 176:
+ case 221:
case 142:
+ case 141:
case 144:
+ case 143:
case 145:
case 146:
case 147:
case 148:
case 149:
- case 219:
- case 250:
+ case 150:
+ case 220:
+ case 251:
return node;
}
}
@@ -4368,25 +4486,25 @@ var ts;
return node;
}
switch (node.kind) {
- case 136:
+ case 137:
node = node.parent;
break;
- case 215:
- case 175:
+ case 216:
case 176:
+ case 177:
if (!stopOnFunctions) {
continue;
}
- case 141:
- case 140:
- case 143:
case 142:
+ case 141:
case 144:
+ case 143:
case 145:
case 146:
+ case 147:
return node;
- case 139:
- if (node.parent.kind === 138 && isClassElement(node.parent.parent)) {
+ case 140:
+ if (node.parent.kind === 139 && isClassElement(node.parent.parent)) {
node = node.parent.parent;
}
else if (isClassElement(node.parent)) {
@@ -4400,12 +4518,12 @@ var ts;
function getEntityNameFromTypeNode(node) {
if (node) {
switch (node.kind) {
- case 151:
+ case 152:
return node.typeName;
- case 190:
+ case 191:
return node.expression;
case 69:
- case 135:
+ case 136:
return node;
}
}
@@ -4413,7 +4531,7 @@ var ts;
}
ts.getEntityNameFromTypeNode = getEntityNameFromTypeNode;
function getInvokedExpression(node) {
- if (node.kind === 172) {
+ if (node.kind === 173) {
return node.tag;
}
return node.expression;
@@ -4421,54 +4539,36 @@ var ts;
ts.getInvokedExpression = getInvokedExpression;
function nodeCanBeDecorated(node) {
switch (node.kind) {
- case 216:
+ case 217:
return true;
- case 141:
- return node.parent.kind === 216;
- case 138:
- return node.parent.body && node.parent.parent.kind === 216;
- case 145:
+ case 142:
+ return node.parent.kind === 217;
case 146:
- case 143:
- return node.body && node.parent.kind === 216;
+ case 147:
+ case 144:
+ return node.body !== undefined
+ && node.parent.kind === 217;
+ case 139:
+ return node.parent.body !== undefined
+ && (node.parent.kind === 145
+ || node.parent.kind === 144
+ || node.parent.kind === 147)
+ && node.parent.parent.kind === 217;
}
return false;
}
ts.nodeCanBeDecorated = nodeCanBeDecorated;
function nodeIsDecorated(node) {
- switch (node.kind) {
- case 216:
- if (node.decorators) {
- return true;
- }
- return false;
- case 141:
- case 138:
- if (node.decorators) {
- return true;
- }
- return false;
- case 145:
- if (node.body && node.decorators) {
- return true;
- }
- return false;
- case 143:
- case 146:
- if (node.body && node.decorators) {
- return true;
- }
- return false;
- }
- return false;
+ return node.decorators !== undefined
+ && nodeCanBeDecorated(node);
}
ts.nodeIsDecorated = nodeIsDecorated;
function isPropertyAccessExpression(node) {
- return node.kind === 168;
+ return node.kind === 169;
}
ts.isPropertyAccessExpression = isPropertyAccessExpression;
function isElementAccessExpression(node) {
- return node.kind === 169;
+ return node.kind === 170;
}
ts.isElementAccessExpression = isElementAccessExpression;
function isExpression(node) {
@@ -4478,42 +4578,42 @@ var ts;
case 99:
case 84:
case 10:
- case 166:
case 167:
case 168:
case 169:
case 170:
case 171:
case 172:
- case 191:
case 173:
+ case 192:
case 174:
case 175:
- case 188:
case 176:
- case 179:
+ case 189:
case 177:
+ case 180:
case 178:
- case 181:
+ case 179:
case 182:
case 183:
case 184:
- case 187:
case 185:
- case 11:
- case 189:
- case 235:
- case 236:
+ case 188:
case 186:
- case 180:
+ case 11:
+ case 190:
+ case 236:
+ case 237:
+ case 187:
+ case 181:
return true;
- case 135:
- while (node.parent.kind === 135) {
+ case 136:
+ while (node.parent.kind === 136) {
node = node.parent;
}
- return node.parent.kind === 154;
+ return node.parent.kind === 155;
case 69:
- if (node.parent.kind === 154) {
+ if (node.parent.kind === 155) {
return true;
}
case 8:
@@ -4521,47 +4621,47 @@ var ts;
case 97:
var parent_2 = node.parent;
switch (parent_2.kind) {
- case 213:
- case 138:
+ case 214:
+ case 139:
+ case 142:
case 141:
- case 140:
- case 249:
- case 247:
- case 165:
+ case 250:
+ case 248:
+ case 166:
return parent_2.initializer === node;
- case 197:
case 198:
case 199:
case 200:
- case 206:
+ case 201:
case 207:
case 208:
- case 243:
- case 210:
- case 208:
+ case 209:
+ case 244:
+ case 211:
+ case 209:
return parent_2.expression === node;
- case 201:
+ case 202:
var forStatement = parent_2;
- return (forStatement.initializer === node && forStatement.initializer.kind !== 214) ||
+ return (forStatement.initializer === node && forStatement.initializer.kind !== 215) ||
forStatement.condition === node ||
forStatement.incrementor === node;
- case 202:
case 203:
+ case 204:
var forInStatement = parent_2;
- return (forInStatement.initializer === node && forInStatement.initializer.kind !== 214) ||
+ return (forInStatement.initializer === node && forInStatement.initializer.kind !== 215) ||
forInStatement.expression === node;
- case 173:
- case 191:
- return node === parent_2.expression;
+ case 174:
case 192:
return node === parent_2.expression;
- case 136:
+ case 193:
return node === parent_2.expression;
- case 139:
+ case 137:
+ return node === parent_2.expression;
+ case 140:
+ case 243:
case 242:
- case 241:
return true;
- case 190:
+ case 191:
return parent_2.expression === node && isExpressionWithTypeArgumentsInClassExtendsClause(parent_2);
default:
if (isExpression(parent_2)) {
@@ -4583,7 +4683,7 @@ var ts;
}
ts.isInstantiatedModule = isInstantiatedModule;
function isExternalModuleImportEqualsDeclaration(node) {
- return node.kind === 223 && node.moduleReference.kind === 234;
+ return node.kind === 224 && node.moduleReference.kind === 235;
}
ts.isExternalModuleImportEqualsDeclaration = isExternalModuleImportEqualsDeclaration;
function getExternalModuleImportEqualsDeclarationExpression(node) {
@@ -4592,7 +4692,7 @@ var ts;
}
ts.getExternalModuleImportEqualsDeclarationExpression = getExternalModuleImportEqualsDeclarationExpression;
function isInternalModuleImportEqualsDeclaration(node) {
- return node.kind === 223 && node.moduleReference.kind !== 234;
+ return node.kind === 224 && node.moduleReference.kind !== 235;
}
ts.isInternalModuleImportEqualsDeclaration = isInternalModuleImportEqualsDeclaration;
function isSourceFileJavaScript(file) {
@@ -4604,7 +4704,7 @@ var ts;
}
ts.isInJavaScriptFile = isInJavaScriptFile;
function isRequireCall(expression) {
- return expression.kind === 170 &&
+ return expression.kind === 171 &&
expression.expression.kind === 69 &&
expression.expression.text === "require" &&
expression.arguments.length === 1 &&
@@ -4612,11 +4712,11 @@ var ts;
}
ts.isRequireCall = isRequireCall;
function getSpecialPropertyAssignmentKind(expression) {
- if (expression.kind !== 183) {
+ if (expression.kind !== 184) {
return 0;
}
var expr = expression;
- if (expr.operatorToken.kind !== 56 || expr.left.kind !== 168) {
+ if (expr.operatorToken.kind !== 56 || expr.left.kind !== 169) {
return 0;
}
var lhs = expr.left;
@@ -4632,7 +4732,7 @@ var ts;
else if (lhs.expression.kind === 97) {
return 4;
}
- else if (lhs.expression.kind === 168) {
+ else if (lhs.expression.kind === 169) {
var innerPropertyAccess = lhs.expression;
if (innerPropertyAccess.expression.kind === 69 && innerPropertyAccess.name.text === "prototype") {
return 3;
@@ -4642,30 +4742,33 @@ var ts;
}
ts.getSpecialPropertyAssignmentKind = getSpecialPropertyAssignmentKind;
function getExternalModuleName(node) {
- if (node.kind === 224) {
+ if (node.kind === 225) {
return node.moduleSpecifier;
}
- if (node.kind === 223) {
+ if (node.kind === 224) {
var reference = node.moduleReference;
- if (reference.kind === 234) {
+ if (reference.kind === 235) {
return reference.expression;
}
}
- if (node.kind === 230) {
+ if (node.kind === 231) {
return node.moduleSpecifier;
}
+ if (node.kind === 221 && node.name.kind === 9) {
+ return node.name;
+ }
}
ts.getExternalModuleName = getExternalModuleName;
function hasQuestionToken(node) {
if (node) {
switch (node.kind) {
- case 138:
+ case 139:
+ case 144:
case 143:
- case 142:
+ case 249:
case 248:
- case 247:
+ case 142:
case 141:
- case 140:
return node.questionToken !== undefined;
}
}
@@ -4673,9 +4776,9 @@ var ts;
}
ts.hasQuestionToken = hasQuestionToken;
function isJSDocConstructSignature(node) {
- return node.kind === 263 &&
+ return node.kind === 264 &&
node.parameters.length > 0 &&
- node.parameters[0].type.kind === 265;
+ node.parameters[0].type.kind === 266;
}
ts.isJSDocConstructSignature = isJSDocConstructSignature;
function getJSDocTag(node, kind) {
@@ -4689,15 +4792,15 @@ var ts;
}
}
function getJSDocTypeTag(node) {
- return getJSDocTag(node, 271);
+ return getJSDocTag(node, 272);
}
ts.getJSDocTypeTag = getJSDocTypeTag;
function getJSDocReturnTag(node) {
- return getJSDocTag(node, 270);
+ return getJSDocTag(node, 271);
}
ts.getJSDocReturnTag = getJSDocReturnTag;
function getJSDocTemplateTag(node) {
- return getJSDocTag(node, 272);
+ return getJSDocTag(node, 273);
}
ts.getJSDocTemplateTag = getJSDocTemplateTag;
function getCorrespondingJSDocParameterTag(parameter) {
@@ -4706,7 +4809,7 @@ var ts;
var docComment = parameter.parent.jsDocComment;
if (docComment) {
return ts.forEach(docComment.tags, function (t) {
- if (t.kind === 269) {
+ if (t.kind === 270) {
var parameterTag = t;
var name_6 = parameterTag.preParameterName || parameterTag.postParameterName;
if (name_6.text === parameterName) {
@@ -4725,12 +4828,12 @@ var ts;
function isRestParameter(node) {
if (node) {
if (node.parserContextFlags & 32) {
- if (node.type && node.type.kind === 264) {
+ if (node.type && node.type.kind === 265) {
return true;
}
var paramTag = getCorrespondingJSDocParameterTag(node);
if (paramTag && paramTag.typeExpression) {
- return paramTag.typeExpression.type.kind === 264;
+ return paramTag.typeExpression.type.kind === 265;
}
}
return node.dotDotDotToken !== undefined;
@@ -4751,7 +4854,7 @@ var ts;
}
ts.isTemplateLiteralKind = isTemplateLiteralKind;
function isBindingPattern(node) {
- return !!node && (node.kind === 164 || node.kind === 163);
+ return !!node && (node.kind === 165 || node.kind === 164);
}
ts.isBindingPattern = isBindingPattern;
function isNodeDescendentOf(node, ancestor) {
@@ -4775,34 +4878,34 @@ var ts;
ts.isInAmbientContext = isInAmbientContext;
function isDeclaration(node) {
switch (node.kind) {
- case 176:
- case 165:
- case 216:
- case 188:
- case 144:
- case 219:
- case 249:
- case 232:
- case 215:
- case 175:
- case 145:
- case 225:
- case 223:
- case 228:
+ case 177:
+ case 166:
case 217:
- case 143:
- case 142:
+ case 189:
+ case 145:
case 220:
- case 226:
- case 138:
- case 247:
- case 141:
- case 140:
+ case 250:
+ case 233:
+ case 216:
+ case 176:
case 146:
- case 248:
+ case 226:
+ case 224:
+ case 229:
case 218:
- case 137:
- case 213:
+ case 144:
+ case 143:
+ case 221:
+ case 227:
+ case 139:
+ case 248:
+ case 142:
+ case 141:
+ case 147:
+ case 249:
+ case 219:
+ case 138:
+ case 214:
return true;
}
return false;
@@ -4810,25 +4913,25 @@ var ts;
ts.isDeclaration = isDeclaration;
function isStatement(n) {
switch (n.kind) {
- case 205:
- case 204:
- case 212:
- case 199:
- case 197:
- case 196:
- case 202:
- case 203:
- case 201:
- case 198:
- case 209:
case 206:
- case 208:
- case 210:
- case 211:
- case 195:
+ case 205:
+ case 213:
case 200:
+ case 198:
+ case 197:
+ case 203:
+ case 204:
+ case 202:
+ case 199:
+ case 210:
case 207:
- case 229:
+ case 209:
+ case 211:
+ case 212:
+ case 196:
+ case 201:
+ case 208:
+ case 230:
return true;
default:
return false;
@@ -4837,13 +4940,13 @@ var ts;
ts.isStatement = isStatement;
function isClassElement(n) {
switch (n.kind) {
- case 144:
- case 141:
- case 143:
case 145:
- case 146:
case 142:
- case 149:
+ case 144:
+ case 146:
+ case 147:
+ case 143:
+ case 150:
return true;
default:
return false;
@@ -4855,7 +4958,7 @@ var ts;
return false;
}
var parent = name.parent;
- if (parent.kind === 228 || parent.kind === 232) {
+ if (parent.kind === 229 || parent.kind === 233) {
if (parent.propertyName) {
return true;
}
@@ -4869,40 +4972,40 @@ var ts;
function isIdentifierName(node) {
var parent = node.parent;
switch (parent.kind) {
- case 141:
- case 140:
- case 143:
case 142:
- case 145:
+ case 141:
+ case 144:
+ case 143:
case 146:
- case 249:
- case 247:
- case 168:
+ case 147:
+ case 250:
+ case 248:
+ case 169:
return parent.name === node;
- case 135:
+ case 136:
if (parent.right === node) {
- while (parent.kind === 135) {
+ while (parent.kind === 136) {
parent = parent.parent;
}
- return parent.kind === 154;
+ return parent.kind === 155;
}
return false;
- case 165:
- case 228:
+ case 166:
+ case 229:
return parent.propertyName === node;
- case 232:
+ case 233:
return true;
}
return false;
}
ts.isIdentifierName = isIdentifierName;
function isAliasSymbolDeclaration(node) {
- return node.kind === 223 ||
- node.kind === 225 && !!node.name ||
- node.kind === 226 ||
- node.kind === 228 ||
- node.kind === 232 ||
- node.kind === 229 && node.expression.kind === 69;
+ return node.kind === 224 ||
+ node.kind === 226 && !!node.name ||
+ node.kind === 227 ||
+ node.kind === 229 ||
+ node.kind === 233 ||
+ node.kind === 230 && node.expression.kind === 69;
}
ts.isAliasSymbolDeclaration = isAliasSymbolDeclaration;
function getClassExtendsHeritageClauseElement(node) {
@@ -4984,7 +5087,7 @@ var ts;
}
ts.getFileReferenceFromReferencePath = getFileReferenceFromReferencePath;
function isKeyword(token) {
- return 70 <= token && token <= 134;
+ return 70 <= token && token <= 135;
}
ts.isKeyword = isKeyword;
function isTrivia(token) {
@@ -5004,7 +5107,7 @@ var ts;
}
ts.hasDynamicName = hasDynamicName;
function isDynamicName(name) {
- return name.kind === 136 &&
+ return name.kind === 137 &&
!isStringOrNumericLiteral(name.expression.kind) &&
!isWellKnownSymbolSyntactically(name.expression);
}
@@ -5017,7 +5120,7 @@ var ts;
if (name.kind === 69 || name.kind === 9 || name.kind === 8) {
return name.text;
}
- if (name.kind === 136) {
+ if (name.kind === 137) {
var nameExpression = name.expression;
if (isWellKnownSymbolSyntactically(nameExpression)) {
var rightHandSideName = nameExpression.name.text;
@@ -5054,18 +5157,18 @@ var ts;
ts.isModifierKind = isModifierKind;
function isParameterDeclaration(node) {
var root = getRootDeclaration(node);
- return root.kind === 138;
+ return root.kind === 139;
}
ts.isParameterDeclaration = isParameterDeclaration;
function getRootDeclaration(node) {
- while (node.kind === 165) {
+ while (node.kind === 166) {
node = node.parent.parent;
}
return node;
}
ts.getRootDeclaration = getRootDeclaration;
function nodeStartsNewLexicalEnvironment(n) {
- return isFunctionLike(n) || n.kind === 220 || n.kind === 250;
+ return isFunctionLike(n) || n.kind === 221 || n.kind === 251;
}
ts.nodeStartsNewLexicalEnvironment = nodeStartsNewLexicalEnvironment;
function cloneNode(node, location, flags, parent) {
@@ -5098,7 +5201,7 @@ var ts;
}
ts.cloneEntityName = cloneEntityName;
function isQualifiedName(node) {
- return node.kind === 135;
+ return node.kind === 136;
}
ts.isQualifiedName = isQualifiedName;
function nodeIsSynthesized(node) {
@@ -5411,7 +5514,7 @@ var ts;
ts.getLineOfLocalPositionFromLineMap = getLineOfLocalPositionFromLineMap;
function getFirstConstructorWithBody(node) {
return ts.forEach(node.members, function (member) {
- if (member.kind === 144 && nodeIsPresent(member.body)) {
+ if (member.kind === 145 && nodeIsPresent(member.body)) {
return member;
}
});
@@ -5428,10 +5531,10 @@ var ts;
var setAccessor;
if (hasDynamicName(accessor)) {
firstAccessor = accessor;
- if (accessor.kind === 145) {
+ if (accessor.kind === 146) {
getAccessor = accessor;
}
- else if (accessor.kind === 146) {
+ else if (accessor.kind === 147) {
setAccessor = accessor;
}
else {
@@ -5440,7 +5543,7 @@ var ts;
}
else {
ts.forEach(declarations, function (member) {
- if ((member.kind === 145 || member.kind === 146)
+ if ((member.kind === 146 || member.kind === 147)
&& (member.flags & 64) === (accessor.flags & 64)) {
var memberName = getPropertyNameForPropertyNameNode(member.name);
var accessorName = getPropertyNameForPropertyNameNode(accessor.name);
@@ -5451,10 +5554,10 @@ var ts;
else if (!secondAccessor) {
secondAccessor = member;
}
- if (member.kind === 145 && !getAccessor) {
+ if (member.kind === 146 && !getAccessor) {
getAccessor = member;
}
- if (member.kind === 146 && !setAccessor) {
+ if (member.kind === 147 && !setAccessor) {
setAccessor = member;
}
}
@@ -5620,24 +5723,24 @@ var ts;
function isLeftHandSideExpression(expr) {
if (expr) {
switch (expr.kind) {
- case 168:
case 169:
- case 171:
case 170:
- case 235:
- case 236:
case 172:
- case 166:
- case 174:
+ case 171:
+ case 236:
+ case 237:
+ case 173:
case 167:
- case 188:
case 175:
+ case 168:
+ case 189:
+ case 176:
case 69:
case 10:
case 8:
case 9:
case 11:
- case 185:
+ case 186:
case 84:
case 93:
case 97:
@@ -5654,7 +5757,7 @@ var ts;
}
ts.isAssignmentOperator = isAssignmentOperator;
function isExpressionWithTypeArgumentsInClassExtendsClause(node) {
- return node.kind === 190 &&
+ return node.kind === 191 &&
node.parent.token === 83 &&
isClassLike(node.parent.parent);
}
@@ -5675,16 +5778,16 @@ var ts;
}
}
function isRightSideOfQualifiedNameOrPropertyAccess(node) {
- return (node.parent.kind === 135 && node.parent.right === node) ||
- (node.parent.kind === 168 && node.parent.name === node);
+ return (node.parent.kind === 136 && node.parent.right === node) ||
+ (node.parent.kind === 169 && node.parent.name === node);
}
ts.isRightSideOfQualifiedNameOrPropertyAccess = isRightSideOfQualifiedNameOrPropertyAccess;
function isEmptyObjectLiteralOrArrayLiteral(expression) {
var kind = expression.kind;
- if (kind === 167) {
+ if (kind === 168) {
return expression.properties.length === 0;
}
- if (kind === 166) {
+ if (kind === 167) {
return expression.elements.length === 0;
}
return false;
@@ -5928,9 +6031,9 @@ var ts;
}
ts.collapseTextChangeRangesAcrossMultipleVersions = collapseTextChangeRangesAcrossMultipleVersions;
function getTypeParameterOwner(d) {
- if (d && d.kind === 137) {
+ if (d && d.kind === 138) {
for (var current = d; current; current = current.parent) {
- if (ts.isFunctionLike(current) || ts.isClassLike(current) || current.kind === 217) {
+ if (ts.isFunctionLike(current) || ts.isClassLike(current) || current.kind === 218) {
return current;
}
}
@@ -5938,7 +6041,7 @@ var ts;
}
ts.getTypeParameterOwner = getTypeParameterOwner;
function isParameterPropertyDeclaration(node) {
- return node.flags & 56 && node.parent.kind === 144 && ts.isClassLike(node.parent.parent);
+ return node.flags & 56 && node.parent.kind === 145 && ts.isClassLike(node.parent.parent);
}
ts.isParameterPropertyDeclaration = isParameterPropertyDeclaration;
})(ts || (ts = {}));
@@ -5948,7 +6051,7 @@ var ts;
var NodeConstructor;
var SourceFileConstructor;
function createNode(kind, pos, end) {
- if (kind === 250) {
+ if (kind === 251) {
return new (SourceFileConstructor || (SourceFileConstructor = ts.objectAllocator.getSourceFileConstructor()))(kind, pos, end);
}
else {
@@ -5984,26 +6087,26 @@ var ts;
var visitNodes = cbNodeArray ? visitNodeArray : visitEachNode;
var cbNodes = cbNodeArray || cbNode;
switch (node.kind) {
- case 135:
+ case 136:
return visitNode(cbNode, node.left) ||
visitNode(cbNode, node.right);
- case 137:
+ case 138:
return visitNode(cbNode, node.name) ||
visitNode(cbNode, node.constraint) ||
visitNode(cbNode, node.expression);
- case 248:
+ case 249:
return visitNodes(cbNodes, node.decorators) ||
visitNodes(cbNodes, node.modifiers) ||
visitNode(cbNode, node.name) ||
visitNode(cbNode, node.questionToken) ||
visitNode(cbNode, node.equalsToken) ||
visitNode(cbNode, node.objectAssignmentInitializer);
- case 138:
+ case 139:
+ case 142:
case 141:
- case 140:
- case 247:
- case 213:
- case 165:
+ case 248:
+ case 214:
+ case 166:
return visitNodes(cbNodes, node.decorators) ||
visitNodes(cbNodes, node.modifiers) ||
visitNode(cbNode, node.propertyName) ||
@@ -6012,24 +6115,24 @@ var ts;
visitNode(cbNode, node.questionToken) ||
visitNode(cbNode, node.type) ||
visitNode(cbNode, node.initializer);
- case 152:
case 153:
- case 147:
+ case 154:
case 148:
case 149:
+ case 150:
return visitNodes(cbNodes, node.decorators) ||
visitNodes(cbNodes, node.modifiers) ||
visitNodes(cbNodes, node.typeParameters) ||
visitNodes(cbNodes, node.parameters) ||
visitNode(cbNode, node.type);
- case 143:
- case 142:
case 144:
+ case 143:
case 145:
case 146:
- case 175:
- case 215:
+ case 147:
case 176:
+ case 216:
+ case 177:
return visitNodes(cbNodes, node.decorators) ||
visitNodes(cbNodes, node.modifiers) ||
visitNode(cbNode, node.asteriskToken) ||
@@ -6040,160 +6143,153 @@ var ts;
visitNode(cbNode, node.type) ||
visitNode(cbNode, node.equalsGreaterThanToken) ||
visitNode(cbNode, node.body);
- case 151:
+ case 152:
return visitNode(cbNode, node.typeName) ||
visitNodes(cbNodes, node.typeArguments);
- case 150:
+ case 151:
return visitNode(cbNode, node.parameterName) ||
visitNode(cbNode, node.type);
- case 154:
- return visitNode(cbNode, node.exprName);
case 155:
- return visitNodes(cbNodes, node.members);
+ return visitNode(cbNode, node.exprName);
case 156:
- return visitNode(cbNode, node.elementType);
+ return visitNodes(cbNodes, node.members);
case 157:
- return visitNodes(cbNodes, node.elementTypes);
+ return visitNode(cbNode, node.elementType);
case 158:
+ return visitNodes(cbNodes, node.elementTypes);
case 159:
- return visitNodes(cbNodes, node.types);
case 160:
+ return visitNodes(cbNodes, node.types);
+ case 161:
return visitNode(cbNode, node.type);
- case 163:
case 164:
- return visitNodes(cbNodes, node.elements);
- case 166:
+ case 165:
return visitNodes(cbNodes, node.elements);
case 167:
- return visitNodes(cbNodes, node.properties);
+ return visitNodes(cbNodes, node.elements);
case 168:
+ return visitNodes(cbNodes, node.properties);
+ case 169:
return visitNode(cbNode, node.expression) ||
visitNode(cbNode, node.dotToken) ||
visitNode(cbNode, node.name);
- case 169:
+ case 170:
return visitNode(cbNode, node.expression) ||
visitNode(cbNode, node.argumentExpression);
- case 170:
case 171:
+ case 172:
return visitNode(cbNode, node.expression) ||
visitNodes(cbNodes, node.typeArguments) ||
visitNodes(cbNodes, node.arguments);
- case 172:
+ case 173:
return visitNode(cbNode, node.tag) ||
visitNode(cbNode, node.template);
- case 173:
+ case 174:
return visitNode(cbNode, node.type) ||
visitNode(cbNode, node.expression);
- case 174:
- return visitNode(cbNode, node.expression);
- case 177:
+ case 175:
return visitNode(cbNode, node.expression);
case 178:
return visitNode(cbNode, node.expression);
case 179:
return visitNode(cbNode, node.expression);
- case 181:
- return visitNode(cbNode, node.operand);
- case 186:
- return visitNode(cbNode, node.asteriskToken) ||
- visitNode(cbNode, node.expression);
case 180:
return visitNode(cbNode, node.expression);
case 182:
return visitNode(cbNode, node.operand);
+ case 187:
+ return visitNode(cbNode, node.asteriskToken) ||
+ visitNode(cbNode, node.expression);
+ case 181:
+ return visitNode(cbNode, node.expression);
case 183:
+ return visitNode(cbNode, node.operand);
+ case 184:
return visitNode(cbNode, node.left) ||
visitNode(cbNode, node.operatorToken) ||
visitNode(cbNode, node.right);
- case 191:
+ case 192:
return visitNode(cbNode, node.expression) ||
visitNode(cbNode, node.type);
- case 184:
+ case 185:
return visitNode(cbNode, node.condition) ||
visitNode(cbNode, node.questionToken) ||
visitNode(cbNode, node.whenTrue) ||
visitNode(cbNode, node.colonToken) ||
visitNode(cbNode, node.whenFalse);
- case 187:
+ case 188:
return visitNode(cbNode, node.expression);
- case 194:
- case 221:
+ case 195:
+ case 222:
return visitNodes(cbNodes, node.statements);
- case 250:
+ case 251:
return visitNodes(cbNodes, node.statements) ||
visitNode(cbNode, node.endOfFileToken);
- case 195:
+ case 196:
return visitNodes(cbNodes, node.decorators) ||
visitNodes(cbNodes, node.modifiers) ||
visitNode(cbNode, node.declarationList);
- case 214:
+ case 215:
return visitNodes(cbNodes, node.declarations);
- case 197:
- return visitNode(cbNode, node.expression);
case 198:
+ return visitNode(cbNode, node.expression);
+ case 199:
return visitNode(cbNode, node.expression) ||
visitNode(cbNode, node.thenStatement) ||
visitNode(cbNode, node.elseStatement);
- case 199:
+ case 200:
return visitNode(cbNode, node.statement) ||
visitNode(cbNode, node.expression);
- case 200:
- return visitNode(cbNode, node.expression) ||
- visitNode(cbNode, node.statement);
case 201:
- return visitNode(cbNode, node.initializer) ||
- visitNode(cbNode, node.condition) ||
- visitNode(cbNode, node.incrementor) ||
+ return visitNode(cbNode, node.expression) ||
visitNode(cbNode, node.statement);
case 202:
return visitNode(cbNode, node.initializer) ||
- visitNode(cbNode, node.expression) ||
+ visitNode(cbNode, node.condition) ||
+ visitNode(cbNode, node.incrementor) ||
visitNode(cbNode, node.statement);
case 203:
return visitNode(cbNode, node.initializer) ||
visitNode(cbNode, node.expression) ||
visitNode(cbNode, node.statement);
case 204:
- case 205:
- return visitNode(cbNode, node.label);
- case 206:
- return visitNode(cbNode, node.expression);
- case 207:
- return visitNode(cbNode, node.expression) ||
+ return visitNode(cbNode, node.initializer) ||
+ visitNode(cbNode, node.expression) ||
visitNode(cbNode, node.statement);
+ case 205:
+ case 206:
+ return visitNode(cbNode, node.label);
+ case 207:
+ return visitNode(cbNode, node.expression);
case 208:
+ return visitNode(cbNode, node.expression) ||
+ visitNode(cbNode, node.statement);
+ case 209:
return visitNode(cbNode, node.expression) ||
visitNode(cbNode, node.caseBlock);
- case 222:
+ case 223:
return visitNodes(cbNodes, node.clauses);
- case 243:
+ case 244:
return visitNode(cbNode, node.expression) ||
visitNodes(cbNodes, node.statements);
- case 244:
+ case 245:
return visitNodes(cbNodes, node.statements);
- case 209:
+ case 210:
return visitNode(cbNode, node.label) ||
visitNode(cbNode, node.statement);
- case 210:
- return visitNode(cbNode, node.expression);
case 211:
+ return visitNode(cbNode, node.expression);
+ case 212:
return visitNode(cbNode, node.tryBlock) ||
visitNode(cbNode, node.catchClause) ||
visitNode(cbNode, node.finallyBlock);
- case 246:
+ case 247:
return visitNode(cbNode, node.variableDeclaration) ||
visitNode(cbNode, node.block);
- case 139:
+ case 140:
return visitNode(cbNode, node.expression);
- case 216:
- case 188:
- return visitNodes(cbNodes, node.decorators) ||
- visitNodes(cbNodes, node.modifiers) ||
- visitNode(cbNode, node.name) ||
- visitNodes(cbNodes, node.typeParameters) ||
- visitNodes(cbNodes, node.heritageClauses) ||
- visitNodes(cbNodes, node.members);
case 217:
+ case 189:
return visitNodes(cbNodes, node.decorators) ||
visitNodes(cbNodes, node.modifiers) ||
visitNode(cbNode, node.name) ||
@@ -6205,125 +6301,132 @@ var ts;
visitNodes(cbNodes, node.modifiers) ||
visitNode(cbNode, node.name) ||
visitNodes(cbNodes, node.typeParameters) ||
- visitNode(cbNode, node.type);
+ visitNodes(cbNodes, node.heritageClauses) ||
+ visitNodes(cbNodes, node.members);
case 219:
return visitNodes(cbNodes, node.decorators) ||
visitNodes(cbNodes, node.modifiers) ||
visitNode(cbNode, node.name) ||
- visitNodes(cbNodes, node.members);
- case 249:
- return visitNode(cbNode, node.name) ||
- visitNode(cbNode, node.initializer);
+ visitNodes(cbNodes, node.typeParameters) ||
+ visitNode(cbNode, node.type);
case 220:
+ return visitNodes(cbNodes, node.decorators) ||
+ visitNodes(cbNodes, node.modifiers) ||
+ visitNode(cbNode, node.name) ||
+ visitNodes(cbNodes, node.members);
+ case 250:
+ return visitNode(cbNode, node.name) ||
+ visitNode(cbNode, node.initializer);
+ case 221:
return visitNodes(cbNodes, node.decorators) ||
visitNodes(cbNodes, node.modifiers) ||
visitNode(cbNode, node.name) ||
visitNode(cbNode, node.body);
- case 223:
+ case 224:
return visitNodes(cbNodes, node.decorators) ||
visitNodes(cbNodes, node.modifiers) ||
visitNode(cbNode, node.name) ||
visitNode(cbNode, node.moduleReference);
- case 224:
+ case 225:
return visitNodes(cbNodes, node.decorators) ||
visitNodes(cbNodes, node.modifiers) ||
visitNode(cbNode, node.importClause) ||
visitNode(cbNode, node.moduleSpecifier);
- case 225:
+ case 226:
return visitNode(cbNode, node.name) ||
visitNode(cbNode, node.namedBindings);
- case 226:
- return visitNode(cbNode, node.name);
case 227:
- case 231:
+ return visitNode(cbNode, node.name);
+ case 228:
+ case 232:
return visitNodes(cbNodes, node.elements);
- case 230:
+ case 231:
return visitNodes(cbNodes, node.decorators) ||
visitNodes(cbNodes, node.modifiers) ||
visitNode(cbNode, node.exportClause) ||
visitNode(cbNode, node.moduleSpecifier);
- case 228:
- case 232:
+ case 229:
+ case 233:
return visitNode(cbNode, node.propertyName) ||
visitNode(cbNode, node.name);
- case 229:
+ case 230:
return visitNodes(cbNodes, node.decorators) ||
visitNodes(cbNodes, node.modifiers) ||
visitNode(cbNode, node.expression);
- case 185:
+ case 186:
return visitNode(cbNode, node.head) || visitNodes(cbNodes, node.templateSpans);
- case 192:
+ case 193:
return visitNode(cbNode, node.expression) || visitNode(cbNode, node.literal);
- case 136:
+ case 137:
return visitNode(cbNode, node.expression);
- case 245:
+ case 246:
return visitNodes(cbNodes, node.types);
- case 190:
+ case 191:
return visitNode(cbNode, node.expression) ||
visitNodes(cbNodes, node.typeArguments);
- case 234:
- return visitNode(cbNode, node.expression);
- case 233:
- return visitNodes(cbNodes, node.decorators);
case 235:
+ return visitNode(cbNode, node.expression);
+ case 234:
+ return visitNodes(cbNodes, node.decorators);
+ case 236:
return visitNode(cbNode, node.openingElement) ||
visitNodes(cbNodes, node.children) ||
visitNode(cbNode, node.closingElement);
- case 236:
case 237:
+ case 238:
return visitNode(cbNode, node.tagName) ||
visitNodes(cbNodes, node.attributes);
- case 240:
+ case 241:
return visitNode(cbNode, node.name) ||
visitNode(cbNode, node.initializer);
- case 241:
- return visitNode(cbNode, node.expression);
case 242:
return visitNode(cbNode, node.expression);
- case 239:
+ case 243:
+ return visitNode(cbNode, node.expression);
+ case 240:
return visitNode(cbNode, node.tagName);
- case 251:
+ case 252:
return visitNode(cbNode, node.type);
- case 255:
- return visitNodes(cbNodes, node.types);
case 256:
return visitNodes(cbNodes, node.types);
- case 254:
+ case 257:
+ return visitNodes(cbNodes, node.types);
+ case 255:
return visitNode(cbNode, node.elementType);
+ case 259:
+ return visitNode(cbNode, node.type);
case 258:
return visitNode(cbNode, node.type);
- case 257:
- return visitNode(cbNode, node.type);
- case 259:
+ case 260:
return visitNodes(cbNodes, node.members);
- case 261:
+ case 262:
return visitNode(cbNode, node.name) ||
visitNodes(cbNodes, node.typeArguments);
- case 262:
- return visitNode(cbNode, node.type);
case 263:
+ return visitNode(cbNode, node.type);
+ case 264:
return visitNodes(cbNodes, node.parameters) ||
visitNode(cbNode, node.type);
- case 264:
- return visitNode(cbNode, node.type);
case 265:
return visitNode(cbNode, node.type);
case 266:
return visitNode(cbNode, node.type);
- case 260:
+ case 267:
+ return visitNode(cbNode, node.type);
+ case 261:
return visitNode(cbNode, node.name) ||
visitNode(cbNode, node.type);
- case 267:
+ case 268:
return visitNodes(cbNodes, node.tags);
- case 269:
+ case 270:
return visitNode(cbNode, node.preParameterName) ||
visitNode(cbNode, node.typeExpression) ||
visitNode(cbNode, node.postParameterName);
- case 270:
- return visitNode(cbNode, node.typeExpression);
case 271:
return visitNode(cbNode, node.typeExpression);
case 272:
+ return visitNode(cbNode, node.typeExpression);
+ case 273:
return visitNodes(cbNodes, node.typeParameters);
}
}
@@ -6430,9 +6533,9 @@ var ts;
return;
function visit(node) {
switch (node.kind) {
- case 195:
- case 215:
- case 138:
+ case 196:
+ case 216:
+ case 139:
addJSDocComment(node);
}
forEachChild(node, visit);
@@ -6466,7 +6569,7 @@ var ts;
}
Parser.fixupParentReferences = fixupParentReferences;
function createSourceFile(fileName, languageVersion) {
- var sourceFile = new SourceFileConstructor(250, 0, sourceText.length);
+ var sourceFile = new SourceFileConstructor(251, 0, sourceText.length);
nodeCount++;
sourceFile.text = sourceText;
sourceFile.bindDiagnostics = [];
@@ -6757,7 +6860,7 @@ var ts;
return token === 9 || token === 8 || ts.tokenIsIdentifierOrKeyword(token);
}
function parseComputedPropertyName() {
- var node = createNode(136);
+ var node = createNode(137);
parseExpected(19);
node.expression = allowInAnd(parseExpression);
parseExpected(20);
@@ -7056,14 +7159,14 @@ var ts;
function isReusableClassMember(node) {
if (node) {
switch (node.kind) {
- case 144:
- case 149:
case 145:
+ case 150:
case 146:
- case 141:
- case 193:
+ case 147:
+ case 142:
+ case 194:
return true;
- case 143:
+ case 144:
var methodDeclaration = node;
var nameIsConstructor = methodDeclaration.name.kind === 69 &&
methodDeclaration.name.originalKeywordKind === 121;
@@ -7075,8 +7178,8 @@ var ts;
function isReusableSwitchClause(node) {
if (node) {
switch (node.kind) {
- case 243:
case 244:
+ case 245:
return true;
}
}
@@ -7085,65 +7188,65 @@ var ts;
function isReusableStatement(node) {
if (node) {
switch (node.kind) {
- case 215:
+ case 216:
+ case 196:
case 195:
- case 194:
+ case 199:
case 198:
- case 197:
- case 210:
+ case 211:
+ case 207:
+ case 209:
case 206:
- case 208:
case 205:
+ case 203:
case 204:
case 202:
- case 203:
case 201:
- case 200:
- case 207:
- case 196:
- case 211:
- case 209:
- case 199:
+ case 208:
+ case 197:
case 212:
+ case 210:
+ case 200:
+ case 213:
+ case 225:
case 224:
- case 223:
+ case 231:
case 230:
- case 229:
- case 220:
- case 216:
+ case 221:
case 217:
- case 219:
case 218:
+ case 220:
+ case 219:
return true;
}
}
return false;
}
function isReusableEnumMember(node) {
- return node.kind === 249;
+ return node.kind === 250;
}
function isReusableTypeMember(node) {
if (node) {
switch (node.kind) {
- case 148:
- case 142:
case 149:
- case 140:
- case 147:
+ case 143:
+ case 150:
+ case 141:
+ case 148:
return true;
}
}
return false;
}
function isReusableVariableDeclaration(node) {
- if (node.kind !== 213) {
+ if (node.kind !== 214) {
return false;
}
var variableDeclarator = node;
return variableDeclarator.initializer === undefined;
}
function isReusableParameter(node) {
- if (node.kind !== 138) {
+ if (node.kind !== 139) {
return false;
}
var parameter = node;
@@ -7243,7 +7346,7 @@ var ts;
function parseEntityName(allowReservedWords, diagnosticMessage) {
var entity = parseIdentifier(diagnosticMessage);
while (parseOptional(21)) {
- var node = createNode(135, entity.pos);
+ var node = createNode(136, entity.pos);
node.left = entity;
node.right = parseRightSideOfDot(allowReservedWords);
entity = finishNode(node);
@@ -7260,7 +7363,7 @@ var ts;
return allowIdentifierNames ? parseIdentifierName() : parseIdentifier();
}
function parseTemplateExpression() {
- var template = createNode(185);
+ var template = createNode(186);
template.head = parseTemplateLiteralFragment();
ts.Debug.assert(template.head.kind === 12, "Template head has wrong token kind");
var templateSpans = [];
@@ -7273,7 +7376,7 @@ var ts;
return finishNode(template);
}
function parseTemplateSpan() {
- var span = createNode(192);
+ var span = createNode(193);
span.expression = allowInAnd(parseExpression);
var literal;
if (token === 16) {
@@ -7287,7 +7390,7 @@ var ts;
return finishNode(span);
}
function parseStringLiteralTypeNode() {
- return parseLiteralLikeNode(162, true);
+ return parseLiteralLikeNode(163, true);
}
function parseLiteralNode(internName) {
return parseLiteralLikeNode(token, internName);
@@ -7315,12 +7418,9 @@ var ts;
}
return node;
}
- function parseTypeReferenceOrTypePredicate() {
+ function parseTypeReference() {
var typeName = parseEntityName(false, ts.Diagnostics.Type_expected);
- if (typeName.kind === 69 && token === 124 && !scanner.hasPrecedingLineBreak()) {
- return parseTypePredicate(typeName);
- }
- var node = createNode(151, typeName.pos);
+ var node = createNode(152, typeName.pos);
node.typeName = typeName;
if (!scanner.hasPrecedingLineBreak() && token === 25) {
node.typeArguments = parseBracketedList(18, parseType, 25, 27);
@@ -7329,24 +7429,24 @@ var ts;
}
function parseTypePredicate(lhs) {
nextToken();
- var node = createNode(150, lhs.pos);
+ var node = createNode(151, lhs.pos);
node.parameterName = lhs;
node.type = parseType();
return finishNode(node);
}
function parseThisTypeNode() {
- var node = createNode(161);
+ var node = createNode(162);
nextToken();
return finishNode(node);
}
function parseTypeQuery() {
- var node = createNode(154);
+ var node = createNode(155);
parseExpected(101);
node.exprName = parseEntityName(true);
return finishNode(node);
}
function parseTypeParameter() {
- var node = createNode(137);
+ var node = createNode(138);
node.name = parseIdentifier();
if (parseOptional(83)) {
if (isStartOfType() || !isStartOfExpression()) {
@@ -7379,7 +7479,7 @@ var ts;
}
}
function parseParameter() {
- var node = createNode(138);
+ var node = createNode(139);
node.decorators = parseDecorators();
setModifiers(node, parseModifiers());
node.dotDotDotToken = parseOptionalToken(22);
@@ -7404,10 +7504,10 @@ var ts;
signature.parameters = parseParameterList(yieldContext, awaitContext, requireCompleteParameterList);
if (returnTokenRequired) {
parseExpected(returnToken);
- signature.type = parseType();
+ signature.type = parseTypeOrTypePredicate();
}
else if (parseOptional(returnToken)) {
- signature.type = parseType();
+ signature.type = parseTypeOrTypePredicate();
}
}
function parseParameterList(yieldContext, awaitContext, requireCompleteParameterList) {
@@ -7434,7 +7534,7 @@ var ts;
}
function parseSignatureMember(kind) {
var node = createNode(kind);
- if (kind === 148) {
+ if (kind === 149) {
parseExpected(92);
}
fillSignature(54, false, false, false, node);
@@ -7474,7 +7574,7 @@ var ts;
return token === 54 || token === 24 || token === 20;
}
function parseIndexSignatureDeclaration(fullStart, decorators, modifiers) {
- var node = createNode(149, fullStart);
+ var node = createNode(150, fullStart);
node.decorators = decorators;
setModifiers(node, modifiers);
node.parameters = parseBracketedList(16, parseParameter, 19, 20);
@@ -7487,7 +7587,7 @@ var ts;
var name = parsePropertyName();
var questionToken = parseOptionalToken(53);
if (token === 17 || token === 25) {
- var method = createNode(142, fullStart);
+ var method = createNode(143, fullStart);
method.name = name;
method.questionToken = questionToken;
fillSignature(54, false, false, false, method);
@@ -7495,7 +7595,7 @@ var ts;
return finishNode(method);
}
else {
- var property = createNode(140, fullStart);
+ var property = createNode(141, fullStart);
property.name = name;
property.questionToken = questionToken;
property.type = parseTypeAnnotation();
@@ -7540,14 +7640,14 @@ var ts;
switch (token) {
case 17:
case 25:
- return parseSignatureMember(147);
+ return parseSignatureMember(148);
case 19:
return isIndexSignature()
? parseIndexSignatureDeclaration(scanner.getStartPos(), undefined, undefined)
: parsePropertyOrMethodSignature();
case 92:
if (lookAhead(isStartOfConstructSignature)) {
- return parseSignatureMember(148);
+ return parseSignatureMember(149);
}
case 9:
case 8:
@@ -7577,7 +7677,7 @@ var ts;
return token === 17 || token === 25;
}
function parseTypeLiteral() {
- var node = createNode(155);
+ var node = createNode(156);
node.members = parseObjectTypeMembers();
return finishNode(node);
}
@@ -7593,12 +7693,12 @@ var ts;
return members;
}
function parseTupleType() {
- var node = createNode(157);
+ var node = createNode(158);
node.elementTypes = parseBracketedList(19, parseType, 19, 20);
return finishNode(node);
}
function parseParenthesizedType() {
- var node = createNode(160);
+ var node = createNode(161);
parseExpected(17);
node.type = parseType();
parseExpected(18);
@@ -7606,7 +7706,7 @@ var ts;
}
function parseFunctionOrConstructorType(kind) {
var node = createNode(kind);
- if (kind === 153) {
+ if (kind === 154) {
parseExpected(92);
}
fillSignature(34, false, false, false, node);
@@ -7624,7 +7724,7 @@ var ts;
case 120:
case 131:
var node = tryParse(parseKeywordAndNoDot);
- return node || parseTypeReferenceOrTypePredicate();
+ return node || parseTypeReference();
case 9:
return parseStringLiteralTypeNode();
case 103:
@@ -7647,7 +7747,7 @@ var ts;
case 17:
return parseParenthesizedType();
default:
- return parseTypeReferenceOrTypePredicate();
+ return parseTypeReference();
}
}
function isStartOfType() {
@@ -7680,7 +7780,7 @@ var ts;
var type = parseNonArrayType();
while (!scanner.hasPrecedingLineBreak() && parseOptional(19)) {
parseExpected(20);
- var node = createNode(156, type.pos);
+ var node = createNode(157, type.pos);
node.elementType = type;
type = finishNode(node);
}
@@ -7702,10 +7802,10 @@ var ts;
return type;
}
function parseIntersectionTypeOrHigher() {
- return parseUnionOrIntersectionType(159, parseArrayTypeOrHigher, 46);
+ return parseUnionOrIntersectionType(160, parseArrayTypeOrHigher, 46);
}
function parseUnionTypeOrHigher() {
- return parseUnionOrIntersectionType(158, parseIntersectionTypeOrHigher, 47);
+ return parseUnionOrIntersectionType(159, parseIntersectionTypeOrHigher, 47);
}
function isStartOfFunctionType() {
if (token === 25) {
@@ -7734,15 +7834,35 @@ var ts;
}
return false;
}
+ function parseTypeOrTypePredicate() {
+ var typePredicateVariable = isIdentifier() && tryParse(parseTypePredicatePrefix);
+ var type = parseType();
+ if (typePredicateVariable) {
+ var node = createNode(151, typePredicateVariable.pos);
+ node.parameterName = typePredicateVariable;
+ node.type = type;
+ return finishNode(node);
+ }
+ else {
+ return type;
+ }
+ }
+ function parseTypePredicatePrefix() {
+ var id = parseIdentifier();
+ if (token === 124 && !scanner.hasPrecedingLineBreak()) {
+ nextToken();
+ return id;
+ }
+ }
function parseType() {
return doOutsideOfContext(10, parseTypeWorker);
}
function parseTypeWorker() {
if (isStartOfFunctionType()) {
- return parseFunctionOrConstructorType(152);
+ return parseFunctionOrConstructorType(153);
}
if (token === 92) {
- return parseFunctionOrConstructorType(153);
+ return parseFunctionOrConstructorType(154);
}
return parseUnionTypeOrHigher();
}
@@ -7861,7 +7981,7 @@ var ts;
return !scanner.hasPrecedingLineBreak() && isIdentifier();
}
function parseYieldExpression() {
- var node = createNode(186);
+ var node = createNode(187);
nextToken();
if (!scanner.hasPrecedingLineBreak() &&
(token === 37 || isStartOfExpression())) {
@@ -7875,8 +7995,8 @@ var ts;
}
function parseSimpleArrowFunctionExpression(identifier) {
ts.Debug.assert(token === 34, "parseSimpleArrowFunctionExpression should only have been called if we had a =>");
- var node = createNode(176, identifier.pos);
- var parameter = createNode(138, identifier.pos);
+ var node = createNode(177, identifier.pos);
+ var parameter = createNode(139, identifier.pos);
parameter.name = identifier;
finishNode(parameter);
node.parameters = [parameter];
@@ -7987,7 +8107,7 @@ var ts;
return parseParenthesizedArrowFunctionExpressionHead(false);
}
function parseParenthesizedArrowFunctionExpressionHead(allowAmbiguity) {
- var node = createNode(176);
+ var node = createNode(177);
setModifiers(node, parseModifiersForArrowFunction());
var isAsync = !!(node.flags & 256);
fillSignature(54, false, isAsync, !allowAmbiguity, node);
@@ -8019,7 +8139,7 @@ var ts;
if (!questionToken) {
return leftOperand;
}
- var node = createNode(184, leftOperand.pos);
+ var node = createNode(185, leftOperand.pos);
node.condition = leftOperand;
node.questionToken = questionToken;
node.whenTrue = doOutsideOfContext(disallowInAndDecoratorContext, parseAssignmentExpressionOrHigher);
@@ -8032,7 +8152,7 @@ var ts;
return parseBinaryExpressionRest(precedence, leftOperand);
}
function isInOrOfKeyword(t) {
- return t === 90 || t === 134;
+ return t === 90 || t === 135;
}
function parseBinaryExpressionRest(precedence, leftOperand) {
while (true) {
@@ -8110,43 +8230,43 @@ var ts;
return -1;
}
function makeBinaryExpression(left, operatorToken, right) {
- var node = createNode(183, left.pos);
+ var node = createNode(184, left.pos);
node.left = left;
node.operatorToken = operatorToken;
node.right = right;
return finishNode(node);
}
function makeAsExpression(left, right) {
- var node = createNode(191, left.pos);
+ var node = createNode(192, left.pos);
node.expression = left;
node.type = right;
return finishNode(node);
}
function parsePrefixUnaryExpression() {
- var node = createNode(181);
+ var node = createNode(182);
node.operator = token;
nextToken();
node.operand = parseSimpleUnaryExpression();
return finishNode(node);
}
function parseDeleteExpression() {
- var node = createNode(177);
- nextToken();
- node.expression = parseSimpleUnaryExpression();
- return finishNode(node);
- }
- function parseTypeOfExpression() {
var node = createNode(178);
nextToken();
node.expression = parseSimpleUnaryExpression();
return finishNode(node);
}
- function parseVoidExpression() {
+ function parseTypeOfExpression() {
var node = createNode(179);
nextToken();
node.expression = parseSimpleUnaryExpression();
return finishNode(node);
}
+ function parseVoidExpression() {
+ var node = createNode(180);
+ nextToken();
+ node.expression = parseSimpleUnaryExpression();
+ return finishNode(node);
+ }
function isAwaitExpression() {
if (token === 119) {
if (inAwaitContext()) {
@@ -8157,7 +8277,7 @@ var ts;
return false;
}
function parseAwaitExpression() {
- var node = createNode(180);
+ var node = createNode(181);
nextToken();
node.expression = parseSimpleUnaryExpression();
return finishNode(node);
@@ -8176,7 +8296,7 @@ var ts;
var simpleUnaryExpression = parseSimpleUnaryExpression();
if (token === 38) {
var start = ts.skipTrivia(sourceText, simpleUnaryExpression.pos);
- if (simpleUnaryExpression.kind === 173) {
+ if (simpleUnaryExpression.kind === 174) {
parseErrorAtPosition(start, simpleUnaryExpression.end - start, ts.Diagnostics.A_type_assertion_expression_is_not_allowed_in_the_left_hand_side_of_an_exponentiation_expression_Consider_enclosing_the_expression_in_parentheses);
}
else {
@@ -8224,7 +8344,7 @@ var ts;
}
function parseIncrementExpression() {
if (token === 41 || token === 42) {
- var node = createNode(181);
+ var node = createNode(182);
node.operator = token;
nextToken();
node.operand = parseLeftHandSideExpressionOrHigher();
@@ -8236,7 +8356,7 @@ var ts;
var expression = parseLeftHandSideExpressionOrHigher();
ts.Debug.assert(ts.isLeftHandSideExpression(expression));
if ((token === 41 || token === 42) && !scanner.hasPrecedingLineBreak()) {
- var node = createNode(182, expression.pos);
+ var node = createNode(183, expression.pos);
node.operand = expression;
node.operator = token;
nextToken();
@@ -8259,7 +8379,7 @@ var ts;
if (token === 17 || token === 21 || token === 19) {
return expression;
}
- var node = createNode(168, expression.pos);
+ var node = createNode(169, expression.pos);
node.expression = expression;
node.dotToken = parseExpectedToken(21, false, ts.Diagnostics.super_must_be_followed_by_an_argument_list_or_member_access);
node.name = parseRightSideOfDot(true);
@@ -8278,8 +8398,8 @@ var ts;
function parseJsxElementOrSelfClosingElement(inExpressionContext) {
var opening = parseJsxOpeningOrSelfClosingElement(inExpressionContext);
var result;
- if (opening.kind === 237) {
- var node = createNode(235, opening.pos);
+ if (opening.kind === 238) {
+ var node = createNode(236, opening.pos);
node.openingElement = opening;
node.children = parseJsxChildren(node.openingElement.tagName);
node.closingElement = parseJsxClosingElement(inExpressionContext);
@@ -8289,14 +8409,14 @@ var ts;
result = finishNode(node);
}
else {
- ts.Debug.assert(opening.kind === 236);
+ ts.Debug.assert(opening.kind === 237);
result = opening;
}
if (inExpressionContext && token === 25) {
var invalidElement = tryParse(function () { return parseJsxElementOrSelfClosingElement(true); });
if (invalidElement) {
parseErrorAtCurrentToken(ts.Diagnostics.JSX_expressions_must_have_one_parent_element);
- var badNode = createNode(183, result.pos);
+ var badNode = createNode(184, result.pos);
badNode.end = invalidElement.end;
badNode.left = result;
badNode.right = invalidElement;
@@ -8308,13 +8428,13 @@ var ts;
return result;
}
function parseJsxText() {
- var node = createNode(238, scanner.getStartPos());
+ var node = createNode(239, scanner.getStartPos());
token = scanner.scanJsxToken();
return finishNode(node);
}
function parseJsxChild() {
switch (token) {
- case 238:
+ case 239:
return parseJsxText();
case 15:
return parseJsxExpression(false);
@@ -8350,7 +8470,7 @@ var ts;
var attributes = parseList(13, parseJsxAttribute);
var node;
if (token === 27) {
- node = createNode(237, fullStart);
+ node = createNode(238, fullStart);
scanJsxText();
}
else {
@@ -8362,7 +8482,7 @@ var ts;
parseExpected(27, undefined, false);
scanJsxText();
}
- node = createNode(236, fullStart);
+ node = createNode(237, fullStart);
}
node.tagName = tagName;
node.attributes = attributes;
@@ -8373,7 +8493,7 @@ var ts;
var elementName = parseIdentifierName();
while (parseOptional(21)) {
scanJsxIdentifier();
- var node = createNode(135, elementName.pos);
+ var node = createNode(136, elementName.pos);
node.left = elementName;
node.right = parseIdentifierName();
elementName = finishNode(node);
@@ -8381,7 +8501,7 @@ var ts;
return elementName;
}
function parseJsxExpression(inExpressionContext) {
- var node = createNode(242);
+ var node = createNode(243);
parseExpected(15);
if (token !== 16) {
node.expression = parseAssignmentExpressionOrHigher();
@@ -8400,7 +8520,7 @@ var ts;
return parseJsxSpreadAttribute();
}
scanJsxIdentifier();
- var node = createNode(240);
+ var node = createNode(241);
node.name = parseIdentifierName();
if (parseOptional(56)) {
switch (token) {
@@ -8415,7 +8535,7 @@ var ts;
return finishNode(node);
}
function parseJsxSpreadAttribute() {
- var node = createNode(241);
+ var node = createNode(242);
parseExpected(15);
parseExpected(22);
node.expression = parseExpression();
@@ -8423,7 +8543,7 @@ var ts;
return finishNode(node);
}
function parseJsxClosingElement(inExpressionContext) {
- var node = createNode(239);
+ var node = createNode(240);
parseExpected(26);
node.tagName = parseJsxElementName();
if (inExpressionContext) {
@@ -8436,7 +8556,7 @@ var ts;
return finishNode(node);
}
function parseTypeAssertion() {
- var node = createNode(173);
+ var node = createNode(174);
parseExpected(25);
node.type = parseType();
parseExpected(27);
@@ -8447,7 +8567,7 @@ var ts;
while (true) {
var dotToken = parseOptionalToken(21);
if (dotToken) {
- var propertyAccess = createNode(168, expression.pos);
+ var propertyAccess = createNode(169, expression.pos);
propertyAccess.expression = expression;
propertyAccess.dotToken = dotToken;
propertyAccess.name = parseRightSideOfDot(true);
@@ -8455,7 +8575,7 @@ var ts;
continue;
}
if (!inDecoratorContext() && parseOptional(19)) {
- var indexedAccess = createNode(169, expression.pos);
+ var indexedAccess = createNode(170, expression.pos);
indexedAccess.expression = expression;
if (token !== 20) {
indexedAccess.argumentExpression = allowInAnd(parseExpression);
@@ -8469,7 +8589,7 @@ var ts;
continue;
}
if (token === 11 || token === 12) {
- var tagExpression = createNode(172, expression.pos);
+ var tagExpression = createNode(173, expression.pos);
tagExpression.tag = expression;
tagExpression.template = token === 11
? parseLiteralNode()
@@ -8488,7 +8608,7 @@ var ts;
if (!typeArguments) {
return expression;
}
- var callExpr = createNode(170, expression.pos);
+ var callExpr = createNode(171, expression.pos);
callExpr.expression = expression;
callExpr.typeArguments = typeArguments;
callExpr.arguments = parseArgumentList();
@@ -8496,7 +8616,7 @@ var ts;
continue;
}
else if (token === 17) {
- var callExpr = createNode(170, expression.pos);
+ var callExpr = createNode(171, expression.pos);
callExpr.expression = expression;
callExpr.arguments = parseArgumentList();
expression = finishNode(callExpr);
@@ -8591,28 +8711,28 @@ var ts;
return parseIdentifier(ts.Diagnostics.Expression_expected);
}
function parseParenthesizedExpression() {
- var node = createNode(174);
+ var node = createNode(175);
parseExpected(17);
node.expression = allowInAnd(parseExpression);
parseExpected(18);
return finishNode(node);
}
function parseSpreadElement() {
- var node = createNode(187);
+ var node = createNode(188);
parseExpected(22);
node.expression = parseAssignmentExpressionOrHigher();
return finishNode(node);
}
function parseArgumentOrArrayLiteralElement() {
return token === 22 ? parseSpreadElement() :
- token === 24 ? createNode(189) :
+ token === 24 ? createNode(190) :
parseAssignmentExpressionOrHigher();
}
function parseArgumentExpression() {
return doOutsideOfContext(disallowInAndDecoratorContext, parseArgumentOrArrayLiteralElement);
}
function parseArrayLiteralExpression() {
- var node = createNode(166);
+ var node = createNode(167);
parseExpected(19);
if (scanner.hasPrecedingLineBreak())
node.flags |= 1024;
@@ -8622,10 +8742,10 @@ var ts;
}
function tryParseAccessorDeclaration(fullStart, decorators, modifiers) {
if (parseContextualModifier(123)) {
- return parseAccessorDeclaration(145, fullStart, decorators, modifiers);
+ return parseAccessorDeclaration(146, fullStart, decorators, modifiers);
}
else if (parseContextualModifier(129)) {
- return parseAccessorDeclaration(146, fullStart, decorators, modifiers);
+ return parseAccessorDeclaration(147, fullStart, decorators, modifiers);
}
return undefined;
}
@@ -8646,7 +8766,7 @@ var ts;
}
var isShorthandPropertyAssignment = tokenIsIdentifier && (token === 24 || token === 16 || token === 56);
if (isShorthandPropertyAssignment) {
- var shorthandDeclaration = createNode(248, fullStart);
+ var shorthandDeclaration = createNode(249, fullStart);
shorthandDeclaration.name = propertyName;
shorthandDeclaration.questionToken = questionToken;
var equalsToken = parseOptionalToken(56);
@@ -8657,7 +8777,7 @@ var ts;
return finishNode(shorthandDeclaration);
}
else {
- var propertyAssignment = createNode(247, fullStart);
+ var propertyAssignment = createNode(248, fullStart);
propertyAssignment.modifiers = modifiers;
propertyAssignment.name = propertyName;
propertyAssignment.questionToken = questionToken;
@@ -8667,7 +8787,7 @@ var ts;
}
}
function parseObjectLiteralExpression() {
- var node = createNode(167);
+ var node = createNode(168);
parseExpected(15);
if (scanner.hasPrecedingLineBreak()) {
node.flags |= 1024;
@@ -8681,7 +8801,7 @@ var ts;
if (saveDecoratorContext) {
setDecoratorContext(false);
}
- var node = createNode(175);
+ var node = createNode(176);
setModifiers(node, parseModifiers());
parseExpected(87);
node.asteriskToken = parseOptionalToken(37);
@@ -8703,7 +8823,7 @@ var ts;
return isIdentifier() ? parseIdentifier() : undefined;
}
function parseNewExpression() {
- var node = createNode(171);
+ var node = createNode(172);
parseExpected(92);
node.expression = parseMemberExpressionOrHigher();
node.typeArguments = tryParse(parseTypeArgumentsInExpression);
@@ -8713,7 +8833,7 @@ var ts;
return finishNode(node);
}
function parseBlock(ignoreMissingOpenBrace, diagnosticMessage) {
- var node = createNode(194);
+ var node = createNode(195);
if (parseExpected(15, diagnosticMessage) || ignoreMissingOpenBrace) {
node.statements = parseList(1, parseStatement);
parseExpected(16);
@@ -8741,12 +8861,12 @@ var ts;
return block;
}
function parseEmptyStatement() {
- var node = createNode(196);
+ var node = createNode(197);
parseExpected(23);
return finishNode(node);
}
function parseIfStatement() {
- var node = createNode(198);
+ var node = createNode(199);
parseExpected(88);
parseExpected(17);
node.expression = allowInAnd(parseExpression);
@@ -8756,7 +8876,7 @@ var ts;
return finishNode(node);
}
function parseDoStatement() {
- var node = createNode(199);
+ var node = createNode(200);
parseExpected(79);
node.statement = parseStatement();
parseExpected(104);
@@ -8767,7 +8887,7 @@ var ts;
return finishNode(node);
}
function parseWhileStatement() {
- var node = createNode(200);
+ var node = createNode(201);
parseExpected(104);
parseExpected(17);
node.expression = allowInAnd(parseExpression);
@@ -8790,21 +8910,21 @@ var ts;
}
var forOrForInOrForOfStatement;
if (parseOptional(90)) {
- var forInStatement = createNode(202, pos);
+ var forInStatement = createNode(203, pos);
forInStatement.initializer = initializer;
forInStatement.expression = allowInAnd(parseExpression);
parseExpected(18);
forOrForInOrForOfStatement = forInStatement;
}
- else if (parseOptional(134)) {
- var forOfStatement = createNode(203, pos);
+ else if (parseOptional(135)) {
+ var forOfStatement = createNode(204, pos);
forOfStatement.initializer = initializer;
forOfStatement.expression = allowInAnd(parseAssignmentExpressionOrHigher);
parseExpected(18);
forOrForInOrForOfStatement = forOfStatement;
}
else {
- var forStatement = createNode(201, pos);
+ var forStatement = createNode(202, pos);
forStatement.initializer = initializer;
parseExpected(23);
if (token !== 23 && token !== 18) {
@@ -8822,7 +8942,7 @@ var ts;
}
function parseBreakOrContinueStatement(kind) {
var node = createNode(kind);
- parseExpected(kind === 205 ? 70 : 75);
+ parseExpected(kind === 206 ? 70 : 75);
if (!canParseSemicolon()) {
node.label = parseIdentifier();
}
@@ -8830,7 +8950,7 @@ var ts;
return finishNode(node);
}
function parseReturnStatement() {
- var node = createNode(206);
+ var node = createNode(207);
parseExpected(94);
if (!canParseSemicolon()) {
node.expression = allowInAnd(parseExpression);
@@ -8839,7 +8959,7 @@ var ts;
return finishNode(node);
}
function parseWithStatement() {
- var node = createNode(207);
+ var node = createNode(208);
parseExpected(105);
parseExpected(17);
node.expression = allowInAnd(parseExpression);
@@ -8848,7 +8968,7 @@ var ts;
return finishNode(node);
}
function parseCaseClause() {
- var node = createNode(243);
+ var node = createNode(244);
parseExpected(71);
node.expression = allowInAnd(parseExpression);
parseExpected(54);
@@ -8856,7 +8976,7 @@ var ts;
return finishNode(node);
}
function parseDefaultClause() {
- var node = createNode(244);
+ var node = createNode(245);
parseExpected(77);
parseExpected(54);
node.statements = parseList(3, parseStatement);
@@ -8866,12 +8986,12 @@ var ts;
return token === 71 ? parseCaseClause() : parseDefaultClause();
}
function parseSwitchStatement() {
- var node = createNode(208);
+ var node = createNode(209);
parseExpected(96);
parseExpected(17);
node.expression = allowInAnd(parseExpression);
parseExpected(18);
- var caseBlock = createNode(222, scanner.getStartPos());
+ var caseBlock = createNode(223, scanner.getStartPos());
parseExpected(15);
caseBlock.clauses = parseList(2, parseCaseOrDefaultClause);
parseExpected(16);
@@ -8879,14 +8999,14 @@ var ts;
return finishNode(node);
}
function parseThrowStatement() {
- var node = createNode(210);
+ var node = createNode(211);
parseExpected(98);
node.expression = scanner.hasPrecedingLineBreak() ? undefined : allowInAnd(parseExpression);
parseSemicolon();
return finishNode(node);
}
function parseTryStatement() {
- var node = createNode(211);
+ var node = createNode(212);
parseExpected(100);
node.tryBlock = parseBlock(false);
node.catchClause = token === 72 ? parseCatchClause() : undefined;
@@ -8897,7 +9017,7 @@ var ts;
return finishNode(node);
}
function parseCatchClause() {
- var result = createNode(246);
+ var result = createNode(247);
parseExpected(72);
if (parseExpected(17)) {
result.variableDeclaration = parseVariableDeclaration();
@@ -8907,7 +9027,7 @@ var ts;
return finishNode(result);
}
function parseDebuggerStatement() {
- var node = createNode(212);
+ var node = createNode(213);
parseExpected(76);
parseSemicolon();
return finishNode(node);
@@ -8916,13 +9036,13 @@ var ts;
var fullStart = scanner.getStartPos();
var expression = allowInAnd(parseExpression);
if (expression.kind === 69 && parseOptional(54)) {
- var labeledStatement = createNode(209, fullStart);
+ var labeledStatement = createNode(210, fullStart);
labeledStatement.label = expression;
labeledStatement.statement = parseStatement();
return finishNode(labeledStatement);
}
else {
- var expressionStatement = createNode(197, fullStart);
+ var expressionStatement = createNode(198, fullStart);
expressionStatement.expression = expression;
parseSemicolon();
return finishNode(expressionStatement);
@@ -8967,6 +9087,8 @@ var ts;
return false;
}
continue;
+ case 134:
+ return nextToken() === 15;
case 89:
nextToken();
return token === 9 || token === 37 ||
@@ -9024,6 +9146,7 @@ var ts;
case 125:
case 126:
case 132:
+ case 134:
return true;
case 112:
case 110:
@@ -9067,9 +9190,9 @@ var ts;
case 86:
return parseForOrForInOrForOfStatement();
case 75:
- return parseBreakOrContinueStatement(204);
- case 70:
return parseBreakOrContinueStatement(205);
+ case 70:
+ return parseBreakOrContinueStatement(206);
case 94:
return parseReturnStatement();
case 105:
@@ -9101,6 +9224,7 @@ var ts;
case 112:
case 115:
case 113:
+ case 134:
if (isStartOfDeclaration()) {
return parseDeclaration();
}
@@ -9127,6 +9251,7 @@ var ts;
return parseTypeAliasDeclaration(fullStart, decorators, modifiers);
case 81:
return parseEnumDeclaration(fullStart, decorators, modifiers);
+ case 134:
case 125:
case 126:
return parseModuleDeclaration(fullStart, decorators, modifiers);
@@ -9139,7 +9264,7 @@ var ts;
parseExportDeclaration(fullStart, decorators, modifiers);
default:
if (decorators || modifiers) {
- var node = createMissingNode(233, true, ts.Diagnostics.Declaration_expected);
+ var node = createMissingNode(234, true, ts.Diagnostics.Declaration_expected);
node.pos = fullStart;
node.decorators = decorators;
setModifiers(node, modifiers);
@@ -9160,16 +9285,16 @@ var ts;
}
function parseArrayBindingElement() {
if (token === 24) {
- return createNode(189);
+ return createNode(190);
}
- var node = createNode(165);
+ var node = createNode(166);
node.dotDotDotToken = parseOptionalToken(22);
node.name = parseIdentifierOrPattern();
node.initializer = parseBindingElementInitializer(false);
return finishNode(node);
}
function parseObjectBindingElement() {
- var node = createNode(165);
+ var node = createNode(166);
var tokenIsIdentifier = isIdentifier();
var propertyName = parsePropertyName();
if (tokenIsIdentifier && token !== 54) {
@@ -9184,14 +9309,14 @@ var ts;
return finishNode(node);
}
function parseObjectBindingPattern() {
- var node = createNode(163);
+ var node = createNode(164);
parseExpected(15);
node.elements = parseDelimitedList(9, parseObjectBindingElement);
parseExpected(16);
return finishNode(node);
}
function parseArrayBindingPattern() {
- var node = createNode(164);
+ var node = createNode(165);
parseExpected(19);
node.elements = parseDelimitedList(10, parseArrayBindingElement);
parseExpected(20);
@@ -9210,7 +9335,7 @@ var ts;
return parseIdentifier();
}
function parseVariableDeclaration() {
- var node = createNode(213);
+ var node = createNode(214);
node.name = parseIdentifierOrPattern();
node.type = parseTypeAnnotation();
if (!isInOrOfKeyword(token)) {
@@ -9219,7 +9344,7 @@ var ts;
return finishNode(node);
}
function parseVariableDeclarationList(inForStatementInitializer) {
- var node = createNode(214);
+ var node = createNode(215);
switch (token) {
case 102:
break;
@@ -9233,7 +9358,7 @@ var ts;
ts.Debug.fail();
}
nextToken();
- if (token === 134 && lookAhead(canFollowContextualOfKeyword)) {
+ if (token === 135 && lookAhead(canFollowContextualOfKeyword)) {
node.declarations = createMissingList();
}
else {
@@ -9248,7 +9373,7 @@ var ts;
return nextTokenIsIdentifier() && nextToken() === 18;
}
function parseVariableStatement(fullStart, decorators, modifiers) {
- var node = createNode(195, fullStart);
+ var node = createNode(196, fullStart);
node.decorators = decorators;
setModifiers(node, modifiers);
node.declarationList = parseVariableDeclarationList(false);
@@ -9256,7 +9381,7 @@ var ts;
return finishNode(node);
}
function parseFunctionDeclaration(fullStart, decorators, modifiers) {
- var node = createNode(215, fullStart);
+ var node = createNode(216, fullStart);
node.decorators = decorators;
setModifiers(node, modifiers);
parseExpected(87);
@@ -9269,7 +9394,7 @@ var ts;
return finishNode(node);
}
function parseConstructorDeclaration(pos, decorators, modifiers) {
- var node = createNode(144, pos);
+ var node = createNode(145, pos);
node.decorators = decorators;
setModifiers(node, modifiers);
parseExpected(121);
@@ -9278,7 +9403,7 @@ var ts;
return finishNode(node);
}
function parseMethodDeclaration(fullStart, decorators, modifiers, asteriskToken, name, questionToken, diagnosticMessage) {
- var method = createNode(143, fullStart);
+ var method = createNode(144, fullStart);
method.decorators = decorators;
setModifiers(method, modifiers);
method.asteriskToken = asteriskToken;
@@ -9291,7 +9416,7 @@ var ts;
return finishNode(method);
}
function parsePropertyDeclaration(fullStart, decorators, modifiers, name, questionToken) {
- var property = createNode(141, fullStart);
+ var property = createNode(142, fullStart);
property.decorators = decorators;
setModifiers(property, modifiers);
property.name = name;
@@ -9387,7 +9512,7 @@ var ts;
decorators = [];
decorators.pos = decoratorStart;
}
- var decorator = createNode(139, decoratorStart);
+ var decorator = createNode(140, decoratorStart);
decorator.expression = doInDecoratorContext(parseLeftHandSideExpressionOrHigher);
decorators.push(finishNode(decorator));
}
@@ -9443,7 +9568,7 @@ var ts;
}
function parseClassElement() {
if (token === 23) {
- var result = createNode(193);
+ var result = createNode(194);
nextToken();
return finishNode(result);
}
@@ -9474,10 +9599,10 @@ var ts;
ts.Debug.fail("Should not have attempted to parse class member declaration.");
}
function parseClassExpression() {
- return parseClassDeclarationOrExpression(scanner.getStartPos(), undefined, undefined, 188);
+ return parseClassDeclarationOrExpression(scanner.getStartPos(), undefined, undefined, 189);
}
function parseClassDeclaration(fullStart, decorators, modifiers) {
- return parseClassDeclarationOrExpression(fullStart, decorators, modifiers, 216);
+ return parseClassDeclarationOrExpression(fullStart, decorators, modifiers, 217);
}
function parseClassDeclarationOrExpression(fullStart, decorators, modifiers, kind) {
var node = createNode(kind, fullStart);
@@ -9512,7 +9637,7 @@ var ts;
}
function parseHeritageClause() {
if (token === 83 || token === 106) {
- var node = createNode(245);
+ var node = createNode(246);
node.token = token;
nextToken();
node.types = parseDelimitedList(7, parseExpressionWithTypeArguments);
@@ -9521,7 +9646,7 @@ var ts;
return undefined;
}
function parseExpressionWithTypeArguments() {
- var node = createNode(190);
+ var node = createNode(191);
node.expression = parseLeftHandSideExpressionOrHigher();
if (token === 25) {
node.typeArguments = parseBracketedList(18, parseType, 25, 27);
@@ -9535,7 +9660,7 @@ var ts;
return parseList(5, parseClassElement);
}
function parseInterfaceDeclaration(fullStart, decorators, modifiers) {
- var node = createNode(217, fullStart);
+ var node = createNode(218, fullStart);
node.decorators = decorators;
setModifiers(node, modifiers);
parseExpected(107);
@@ -9546,7 +9671,7 @@ var ts;
return finishNode(node);
}
function parseTypeAliasDeclaration(fullStart, decorators, modifiers) {
- var node = createNode(218, fullStart);
+ var node = createNode(219, fullStart);
node.decorators = decorators;
setModifiers(node, modifiers);
parseExpected(132);
@@ -9558,13 +9683,13 @@ var ts;
return finishNode(node);
}
function parseEnumMember() {
- var node = createNode(249, scanner.getStartPos());
+ var node = createNode(250, scanner.getStartPos());
node.name = parsePropertyName();
node.initializer = allowInAnd(parseNonParameterInitializer);
return finishNode(node);
}
function parseEnumDeclaration(fullStart, decorators, modifiers) {
- var node = createNode(219, fullStart);
+ var node = createNode(220, fullStart);
node.decorators = decorators;
setModifiers(node, modifiers);
parseExpected(81);
@@ -9579,7 +9704,7 @@ var ts;
return finishNode(node);
}
function parseModuleBlock() {
- var node = createNode(221, scanner.getStartPos());
+ var node = createNode(222, scanner.getStartPos());
if (parseExpected(15)) {
node.statements = parseList(1, parseStatement);
parseExpected(16);
@@ -9590,7 +9715,7 @@ var ts;
return finishNode(node);
}
function parseModuleOrNamespaceDeclaration(fullStart, decorators, modifiers, flags) {
- var node = createNode(220, fullStart);
+ var node = createNode(221, fullStart);
var namespaceFlag = flags & 65536;
node.decorators = decorators;
setModifiers(node, modifiers);
@@ -9602,16 +9727,25 @@ var ts;
return finishNode(node);
}
function parseAmbientExternalModuleDeclaration(fullStart, decorators, modifiers) {
- var node = createNode(220, fullStart);
+ var node = createNode(221, fullStart);
node.decorators = decorators;
setModifiers(node, modifiers);
- node.name = parseLiteralNode(true);
+ if (token === 134) {
+ node.name = parseIdentifier();
+ node.flags |= 2097152;
+ }
+ else {
+ node.name = parseLiteralNode(true);
+ }
node.body = parseModuleBlock();
return finishNode(node);
}
function parseModuleDeclaration(fullStart, decorators, modifiers) {
var flags = modifiers ? modifiers.flags : 0;
- if (parseOptional(126)) {
+ if (token === 134) {
+ return parseAmbientExternalModuleDeclaration(fullStart, decorators, modifiers);
+ }
+ else if (parseOptional(126)) {
flags |= 65536;
}
else {
@@ -9639,7 +9773,7 @@ var ts;
if (isIdentifier()) {
identifier = parseIdentifier();
if (token !== 24 && token !== 133) {
- var importEqualsDeclaration = createNode(223, fullStart);
+ var importEqualsDeclaration = createNode(224, fullStart);
importEqualsDeclaration.decorators = decorators;
setModifiers(importEqualsDeclaration, modifiers);
importEqualsDeclaration.name = identifier;
@@ -9649,7 +9783,7 @@ var ts;
return finishNode(importEqualsDeclaration);
}
}
- var importDeclaration = createNode(224, fullStart);
+ var importDeclaration = createNode(225, fullStart);
importDeclaration.decorators = decorators;
setModifiers(importDeclaration, modifiers);
if (identifier ||
@@ -9663,13 +9797,13 @@ var ts;
return finishNode(importDeclaration);
}
function parseImportClause(identifier, fullStart) {
- var importClause = createNode(225, fullStart);
+ var importClause = createNode(226, fullStart);
if (identifier) {
importClause.name = identifier;
}
if (!importClause.name ||
parseOptional(24)) {
- importClause.namedBindings = token === 37 ? parseNamespaceImport() : parseNamedImportsOrExports(227);
+ importClause.namedBindings = token === 37 ? parseNamespaceImport() : parseNamedImportsOrExports(228);
}
return finishNode(importClause);
}
@@ -9679,7 +9813,7 @@ var ts;
: parseEntityName(false);
}
function parseExternalModuleReference() {
- var node = createNode(234);
+ var node = createNode(235);
parseExpected(127);
parseExpected(17);
node.expression = parseModuleSpecifier();
@@ -9697,7 +9831,7 @@ var ts;
}
}
function parseNamespaceImport() {
- var namespaceImport = createNode(226);
+ var namespaceImport = createNode(227);
parseExpected(37);
parseExpected(116);
namespaceImport.name = parseIdentifier();
@@ -9705,14 +9839,14 @@ var ts;
}
function parseNamedImportsOrExports(kind) {
var node = createNode(kind);
- node.elements = parseBracketedList(21, kind === 227 ? parseImportSpecifier : parseExportSpecifier, 15, 16);
+ node.elements = parseBracketedList(21, kind === 228 ? parseImportSpecifier : parseExportSpecifier, 15, 16);
return finishNode(node);
}
function parseExportSpecifier() {
- return parseImportOrExportSpecifier(232);
+ return parseImportOrExportSpecifier(233);
}
function parseImportSpecifier() {
- return parseImportOrExportSpecifier(228);
+ return parseImportOrExportSpecifier(229);
}
function parseImportOrExportSpecifier(kind) {
var node = createNode(kind);
@@ -9731,13 +9865,13 @@ var ts;
else {
node.name = identifierName;
}
- if (kind === 228 && checkIdentifierIsKeyword) {
+ if (kind === 229 && checkIdentifierIsKeyword) {
parseErrorAtPosition(checkIdentifierStart, checkIdentifierEnd - checkIdentifierStart, ts.Diagnostics.Identifier_expected);
}
return finishNode(node);
}
function parseExportDeclaration(fullStart, decorators, modifiers) {
- var node = createNode(230, fullStart);
+ var node = createNode(231, fullStart);
node.decorators = decorators;
setModifiers(node, modifiers);
if (parseOptional(37)) {
@@ -9745,7 +9879,7 @@ var ts;
node.moduleSpecifier = parseModuleSpecifier();
}
else {
- node.exportClause = parseNamedImportsOrExports(231);
+ node.exportClause = parseNamedImportsOrExports(232);
if (token === 133 || (token === 9 && !scanner.hasPrecedingLineBreak())) {
parseExpected(133);
node.moduleSpecifier = parseModuleSpecifier();
@@ -9755,7 +9889,7 @@ var ts;
return finishNode(node);
}
function parseExportAssignment(fullStart, decorators, modifiers) {
- var node = createNode(229, fullStart);
+ var node = createNode(230, fullStart);
node.decorators = decorators;
setModifiers(node, modifiers);
if (parseOptional(56)) {
@@ -9827,10 +9961,10 @@ var ts;
function setExternalModuleIndicator(sourceFile) {
sourceFile.externalModuleIndicator = ts.forEach(sourceFile.statements, function (node) {
return node.flags & 2
- || node.kind === 223 && node.moduleReference.kind === 234
- || node.kind === 224
- || node.kind === 229
+ || node.kind === 224 && node.moduleReference.kind === 235
+ || node.kind === 225
|| node.kind === 230
+ || node.kind === 231
? node
: undefined;
});
@@ -9865,7 +9999,7 @@ var ts;
function parseJSDocTypeExpression(start, length) {
scanner.setText(sourceText, start, length);
token = nextToken();
- var result = createNode(251);
+ var result = createNode(252);
parseExpected(15);
result.type = parseJSDocTopLevelType();
parseExpected(16);
@@ -9876,12 +10010,12 @@ var ts;
function parseJSDocTopLevelType() {
var type = parseJSDocType();
if (token === 47) {
- var unionType = createNode(255, type.pos);
+ var unionType = createNode(256, type.pos);
unionType.types = parseJSDocTypeList(type);
type = finishNode(unionType);
}
if (token === 56) {
- var optionalType = createNode(262, type.pos);
+ var optionalType = createNode(263, type.pos);
nextToken();
optionalType.type = type;
type = finishNode(optionalType);
@@ -9892,20 +10026,20 @@ var ts;
var type = parseBasicTypeExpression();
while (true) {
if (token === 19) {
- var arrayType = createNode(254, type.pos);
+ var arrayType = createNode(255, type.pos);
arrayType.elementType = type;
nextToken();
parseExpected(20);
type = finishNode(arrayType);
}
else if (token === 53) {
- var nullableType = createNode(257, type.pos);
+ var nullableType = createNode(258, type.pos);
nullableType.type = type;
nextToken();
type = finishNode(nullableType);
}
else if (token === 49) {
- var nonNullableType = createNode(258, type.pos);
+ var nonNullableType = createNode(259, type.pos);
nonNullableType.type = type;
nextToken();
type = finishNode(nonNullableType);
@@ -9949,27 +10083,27 @@ var ts;
return parseJSDocTypeReference();
}
function parseJSDocThisType() {
- var result = createNode(266);
+ var result = createNode(267);
nextToken();
parseExpected(54);
result.type = parseJSDocType();
return finishNode(result);
}
function parseJSDocConstructorType() {
- var result = createNode(265);
+ var result = createNode(266);
nextToken();
parseExpected(54);
result.type = parseJSDocType();
return finishNode(result);
}
function parseJSDocVariadicType() {
- var result = createNode(264);
+ var result = createNode(265);
nextToken();
result.type = parseJSDocType();
return finishNode(result);
}
function parseJSDocFunctionType() {
- var result = createNode(263);
+ var result = createNode(264);
nextToken();
parseExpected(17);
result.parameters = parseDelimitedList(22, parseJSDocParameter);
@@ -9982,12 +10116,12 @@ var ts;
return finishNode(result);
}
function parseJSDocParameter() {
- var parameter = createNode(138);
+ var parameter = createNode(139);
parameter.type = parseJSDocType();
return finishNode(parameter);
}
function parseJSDocTypeReference() {
- var result = createNode(261);
+ var result = createNode(262);
result.name = parseSimplePropertyName();
while (parseOptional(21)) {
if (token === 25) {
@@ -10016,13 +10150,13 @@ var ts;
}
}
function parseQualifiedName(left) {
- var result = createNode(135, left.pos);
+ var result = createNode(136, left.pos);
result.left = left;
result.right = parseIdentifierName();
return finishNode(result);
}
function parseJSDocRecordType() {
- var result = createNode(259);
+ var result = createNode(260);
nextToken();
result.members = parseDelimitedList(24, parseJSDocRecordMember);
checkForTrailingComma(result.members);
@@ -10030,7 +10164,7 @@ var ts;
return finishNode(result);
}
function parseJSDocRecordMember() {
- var result = createNode(260);
+ var result = createNode(261);
result.name = parseSimplePropertyName();
if (token === 54) {
nextToken();
@@ -10039,13 +10173,13 @@ var ts;
return finishNode(result);
}
function parseJSDocNonNullableType() {
- var result = createNode(258);
+ var result = createNode(259);
nextToken();
result.type = parseJSDocType();
return finishNode(result);
}
function parseJSDocTupleType() {
- var result = createNode(256);
+ var result = createNode(257);
nextToken();
result.types = parseDelimitedList(25, parseJSDocType);
checkForTrailingComma(result.types);
@@ -10059,7 +10193,7 @@ var ts;
}
}
function parseJSDocUnionType() {
- var result = createNode(255);
+ var result = createNode(256);
nextToken();
result.types = parseJSDocTypeList(parseJSDocType());
parseExpected(18);
@@ -10077,7 +10211,7 @@ var ts;
return types;
}
function parseJSDocAllType() {
- var result = createNode(252);
+ var result = createNode(253);
nextToken();
return finishNode(result);
}
@@ -10090,11 +10224,11 @@ var ts;
token === 27 ||
token === 56 ||
token === 47) {
- var result = createNode(253, pos);
+ var result = createNode(254, pos);
return finishNode(result);
}
else {
- var result = createNode(257, pos);
+ var result = createNode(258, pos);
result.type = parseJSDocType();
return finishNode(result);
}
@@ -10165,7 +10299,7 @@ var ts;
if (!tags) {
return undefined;
}
- var result = createNode(267, start);
+ var result = createNode(268, start);
result.tags = tags;
return finishNode(result, end);
}
@@ -10202,7 +10336,7 @@ var ts;
return undefined;
}
function handleUnknownTag(atToken, tagName) {
- var result = createNode(268, atToken.pos);
+ var result = createNode(269, atToken.pos);
result.atToken = atToken;
result.tagName = tagName;
return finishNode(result, pos);
@@ -10253,7 +10387,7 @@ var ts;
if (!typeExpression) {
typeExpression = tryParseTypeExpression();
}
- var result = createNode(269, atToken.pos);
+ var result = createNode(270, atToken.pos);
result.atToken = atToken;
result.tagName = tagName;
result.preParameterName = preName;
@@ -10263,16 +10397,6 @@ var ts;
return finishNode(result, pos);
}
function handleReturnTag(atToken, tagName) {
- if (ts.forEach(tags, function (t) { return t.kind === 270; })) {
- parseErrorAtPosition(tagName.pos, pos - tagName.pos, ts.Diagnostics._0_tag_already_specified, tagName.text);
- }
- var result = createNode(270, atToken.pos);
- result.atToken = atToken;
- result.tagName = tagName;
- result.typeExpression = tryParseTypeExpression();
- return finishNode(result, pos);
- }
- function handleTypeTag(atToken, tagName) {
if (ts.forEach(tags, function (t) { return t.kind === 271; })) {
parseErrorAtPosition(tagName.pos, pos - tagName.pos, ts.Diagnostics._0_tag_already_specified, tagName.text);
}
@@ -10282,10 +10406,20 @@ var ts;
result.typeExpression = tryParseTypeExpression();
return finishNode(result, pos);
}
- function handleTemplateTag(atToken, tagName) {
+ function handleTypeTag(atToken, tagName) {
if (ts.forEach(tags, function (t) { return t.kind === 272; })) {
parseErrorAtPosition(tagName.pos, pos - tagName.pos, ts.Diagnostics._0_tag_already_specified, tagName.text);
}
+ var result = createNode(272, atToken.pos);
+ result.atToken = atToken;
+ result.tagName = tagName;
+ result.typeExpression = tryParseTypeExpression();
+ return finishNode(result, pos);
+ }
+ function handleTemplateTag(atToken, tagName) {
+ if (ts.forEach(tags, function (t) { return t.kind === 273; })) {
+ parseErrorAtPosition(tagName.pos, pos - tagName.pos, ts.Diagnostics._0_tag_already_specified, tagName.text);
+ }
var typeParameters = [];
typeParameters.pos = pos;
while (true) {
@@ -10296,7 +10430,7 @@ var ts;
parseErrorAtPosition(startPos, 0, ts.Diagnostics.Identifier_expected);
return undefined;
}
- var typeParameter = createNode(137, name_8.pos);
+ var typeParameter = createNode(138, name_8.pos);
typeParameter.name = name_8;
finishNode(typeParameter, pos);
typeParameters.push(typeParameter);
@@ -10307,7 +10441,7 @@ var ts;
pos++;
}
typeParameters.end = pos;
- var result = createNode(272, atToken.pos);
+ var result = createNode(273, atToken.pos);
result.atToken = atToken;
result.tagName = tagName;
result.typeParameters = typeParameters;
@@ -10629,16 +10763,16 @@ var ts;
: 4;
}
function getModuleInstanceState(node) {
- if (node.kind === 217 || node.kind === 218) {
+ if (node.kind === 218 || node.kind === 219) {
return 0;
}
else if (ts.isConstEnumDeclaration(node)) {
return 2;
}
- else if ((node.kind === 224 || node.kind === 223) && !(node.flags & 2)) {
+ else if ((node.kind === 225 || node.kind === 224) && !(node.flags & 2)) {
return 0;
}
- else if (node.kind === 221) {
+ else if (node.kind === 222) {
var state = 0;
ts.forEachChild(node, function (n) {
switch (getModuleInstanceState(n)) {
@@ -10654,7 +10788,7 @@ var ts;
});
return state;
}
- else if (node.kind === 220) {
+ else if (node.kind === 221) {
return getModuleInstanceState(node.body);
}
else {
@@ -10682,6 +10816,10 @@ var ts;
var labelStack;
var labelIndexMap;
var implicitLabels;
+ var hasClassExtends;
+ var hasAsyncFunctions;
+ var hasDecorators;
+ var hasParameterDecorators;
var inStrictMode;
var symbolCount = 0;
var Symbol;
@@ -10708,6 +10846,10 @@ var ts;
labelStack = undefined;
labelIndexMap = undefined;
implicitLabels = undefined;
+ hasClassExtends = false;
+ hasAsyncFunctions = false;
+ hasDecorators = false;
+ hasParameterDecorators = false;
}
return bindSourceFile;
function createSymbol(flags, name) {
@@ -10730,17 +10872,17 @@ var ts;
if (symbolFlags & 107455) {
var valueDeclaration = symbol.valueDeclaration;
if (!valueDeclaration ||
- (valueDeclaration.kind !== node.kind && valueDeclaration.kind === 220)) {
+ (valueDeclaration.kind !== node.kind && valueDeclaration.kind === 221)) {
symbol.valueDeclaration = node;
}
}
}
function getDeclarationName(node) {
if (node.name) {
- if (node.kind === 220 && node.name.kind === 9) {
- return "\"" + node.name.text + "\"";
+ if (ts.isAmbientModule(node)) {
+ return ts.isGlobalScopeAugmentation(node) ? "__global" : "\"" + node.name.text + "\"";
}
- if (node.name.kind === 136) {
+ if (node.name.kind === 137) {
var nameExpression = node.name.expression;
if (ts.isStringOrNumericLiteral(nameExpression.kind)) {
return nameExpression.text;
@@ -10751,21 +10893,21 @@ var ts;
return node.name.text;
}
switch (node.kind) {
- case 144:
+ case 145:
return "__constructor";
- case 152:
- case 147:
- return "__call";
case 153:
case 148:
- return "__new";
+ return "__call";
+ case 154:
case 149:
+ return "__new";
+ case 150:
return "__index";
- case 230:
+ case 231:
return "__export";
- case 229:
+ case 230:
return node.isExportEquals ? "export=" : "default";
- case 183:
+ case 184:
switch (ts.getSpecialPropertyAssignmentKind(node)) {
case 2:
return "export=";
@@ -10777,8 +10919,8 @@ var ts;
}
ts.Debug.fail("Unknown binary declaration kind");
break;
- case 215:
case 216:
+ case 217:
return node.flags & 512 ? "default" : undefined;
}
}
@@ -10826,7 +10968,7 @@ var ts;
function declareModuleMember(node, symbolFlags, symbolExcludes) {
var hasExportModifier = ts.getCombinedNodeFlags(node) & 2;
if (symbolFlags & 8388608) {
- if (node.kind === 232 || (node.kind === 223 && hasExportModifier)) {
+ if (node.kind === 233 || (node.kind === 224 && hasExportModifier)) {
return declareSymbol(container.symbol.exports, container.symbol, node, symbolFlags, symbolExcludes);
}
else {
@@ -10834,7 +10976,7 @@ var ts;
}
}
else {
- if (hasExportModifier || container.flags & 131072) {
+ if (!ts.isAmbientModule(node) && (hasExportModifier || container.flags & 131072)) {
var exportKind = (symbolFlags & 107455 ? 1048576 : 0) |
(symbolFlags & 793056 ? 2097152 : 0) |
(symbolFlags & 1536 ? 4194304 : 0);
@@ -10873,10 +11015,11 @@ var ts;
var kind = node.kind;
var flags = node.flags;
flags &= ~1572864;
- if (kind === 217) {
+ flags &= ~62914560;
+ if (kind === 218) {
seenThisKeyword = false;
}
- var saveState = kind === 250 || kind === 221 || ts.isFunctionLikeKind(kind);
+ var saveState = kind === 251 || kind === 222 || ts.isFunctionLikeKind(kind);
if (saveState) {
savedReachabilityState = currentReachabilityState;
savedLabelStack = labelStack;
@@ -10894,9 +11037,23 @@ var ts;
flags |= 1048576;
}
}
- if (kind === 217) {
+ if (kind === 218) {
flags = seenThisKeyword ? flags | 262144 : flags & ~262144;
}
+ if (kind === 251) {
+ if (hasClassExtends) {
+ flags |= 4194304;
+ }
+ if (hasDecorators) {
+ flags |= 8388608;
+ }
+ if (hasParameterDecorators) {
+ flags |= 16777216;
+ }
+ if (hasAsyncFunctions) {
+ flags |= 33554432;
+ }
+ }
node.flags = flags;
if (saveState) {
hasExplicitReturn = savedHasExplicitReturn;
@@ -10915,40 +11072,40 @@ var ts;
return;
}
switch (node.kind) {
- case 200:
+ case 201:
bindWhileStatement(node);
break;
- case 199:
+ case 200:
bindDoStatement(node);
break;
- case 201:
+ case 202:
bindForStatement(node);
break;
- case 202:
case 203:
+ case 204:
bindForInOrForOfStatement(node);
break;
- case 198:
+ case 199:
bindIfStatement(node);
break;
- case 206:
- case 210:
+ case 207:
+ case 211:
bindReturnOrThrow(node);
break;
+ case 206:
case 205:
- case 204:
bindBreakOrContinueStatement(node);
break;
- case 211:
+ case 212:
bindTryStatement(node);
break;
- case 208:
+ case 209:
bindSwitchStatement(node);
break;
- case 222:
+ case 223:
bindCaseBlock(node);
break;
- case 209:
+ case 210:
bindLabeledStatement(node);
break;
default:
@@ -11010,14 +11167,14 @@ var ts;
}
function bindReturnOrThrow(n) {
bind(n.expression);
- if (n.kind === 206) {
+ if (n.kind === 207) {
hasExplicitReturn = true;
}
currentReachabilityState = 4;
}
function bindBreakOrContinueStatement(n) {
bind(n.label);
- var isValidJump = jumpToLabel(n.label, n.kind === 205 ? currentReachabilityState : 4);
+ var isValidJump = jumpToLabel(n.label, n.kind === 206 ? currentReachabilityState : 4);
if (isValidJump) {
currentReachabilityState = 4;
}
@@ -11038,7 +11195,7 @@ var ts;
var postSwitchLabel = pushImplicitLabel();
bind(n.expression);
bind(n.caseBlock);
- var hasDefault = ts.forEach(n.caseBlock.clauses, function (c) { return c.kind === 244; });
+ var hasDefault = ts.forEach(n.caseBlock.clauses, function (c) { return c.kind === 245; });
var postSwitchState = hasDefault && currentReachabilityState !== 2 ? 4 : preSwitchState;
popImplicitLabel(postSwitchLabel, postSwitchState);
}
@@ -11063,37 +11220,37 @@ var ts;
}
function getContainerFlags(node) {
switch (node.kind) {
- case 188:
- case 216:
+ case 189:
case 217:
- case 219:
- case 155:
- case 167:
+ case 218:
+ case 220:
+ case 156:
+ case 168:
return 1;
- case 147:
case 148:
case 149:
- case 143:
- case 142:
- case 215:
+ case 150:
case 144:
+ case 143:
+ case 216:
case 145:
case 146:
- case 152:
+ case 147:
case 153:
- case 175:
+ case 154:
case 176:
- case 220:
- case 250:
- case 218:
+ case 177:
+ case 221:
+ case 251:
+ case 219:
return 5;
- case 246:
- case 201:
+ case 247:
case 202:
case 203:
- case 222:
+ case 204:
+ case 223:
return 2;
- case 194:
+ case 195:
return ts.isFunctionLike(node.parent) ? 0 : 2;
}
return 0;
@@ -11109,33 +11266,33 @@ var ts;
}
function declareSymbolAndAddToSymbolTableWorker(node, symbolFlags, symbolExcludes) {
switch (container.kind) {
- case 220:
+ case 221:
return declareModuleMember(node, symbolFlags, symbolExcludes);
- case 250:
+ case 251:
return declareSourceFileMember(node, symbolFlags, symbolExcludes);
- case 188:
- case 216:
- return declareClassMember(node, symbolFlags, symbolExcludes);
- case 219:
- return declareSymbol(container.symbol.exports, container.symbol, node, symbolFlags, symbolExcludes);
- case 155:
- case 167:
+ case 189:
case 217:
+ return declareClassMember(node, symbolFlags, symbolExcludes);
+ case 220:
+ return declareSymbol(container.symbol.exports, container.symbol, node, symbolFlags, symbolExcludes);
+ case 156:
+ case 168:
+ case 218:
return declareSymbol(container.symbol.members, container.symbol, node, symbolFlags, symbolExcludes);
- case 152:
case 153:
- case 147:
+ case 154:
case 148:
case 149:
- case 143:
- case 142:
+ case 150:
case 144:
+ case 143:
case 145:
case 146:
- case 215:
- case 175:
+ case 147:
+ case 216:
case 176:
- case 218:
+ case 177:
+ case 219:
return declareSymbol(container.locals, undefined, node, symbolFlags, symbolExcludes);
}
}
@@ -11150,11 +11307,11 @@ var ts;
: declareSymbol(file.locals, undefined, node, symbolFlags, symbolExcludes);
}
function hasExportDeclarations(node) {
- var body = node.kind === 250 ? node : node.body;
- if (body.kind === 250 || body.kind === 221) {
+ var body = node.kind === 251 ? node : node.body;
+ if (body.kind === 251 || body.kind === 222) {
for (var _i = 0, _a = body.statements; _i < _a.length; _i++) {
var stat = _a[_i];
- if (stat.kind === 230 || stat.kind === 229) {
+ if (stat.kind === 231 || stat.kind === 230) {
return true;
}
}
@@ -11171,7 +11328,10 @@ var ts;
}
function bindModuleDeclaration(node) {
setExportContextFlag(node);
- if (node.name.kind === 9) {
+ if (ts.isAmbientModule(node)) {
+ if (node.flags & 2) {
+ errorOnFirstToken(node, ts.Diagnostics.export_modifier_cannot_be_applied_to_ambient_modules_and_module_augmentations_since_they_are_always_visible);
+ }
declareSymbolAndAddToSymbolTable(node, 512, 106639);
}
else {
@@ -11213,7 +11373,7 @@ var ts;
continue;
}
var identifier = prop.name;
- var currentKind = prop.kind === 247 || prop.kind === 248 || prop.kind === 143
+ var currentKind = prop.kind === 248 || prop.kind === 249 || prop.kind === 144
? 1
: 2;
var existingKind = seen[identifier.text];
@@ -11235,10 +11395,10 @@ var ts;
}
function bindBlockScopedDeclaration(node, symbolFlags, symbolExcludes) {
switch (blockScopeContainer.kind) {
- case 220:
+ case 221:
declareModuleMember(node, symbolFlags, symbolExcludes);
break;
- case 250:
+ case 251:
if (ts.isExternalModule(container)) {
declareModuleMember(node, symbolFlags, symbolExcludes);
break;
@@ -11360,17 +11520,17 @@ var ts;
}
function updateStrictMode(node) {
switch (node.kind) {
- case 250:
- case 221:
+ case 251:
+ case 222:
updateStrictModeStatementList(node.statements);
return;
- case 194:
+ case 195:
if (ts.isFunctionLike(node.parent)) {
updateStrictModeStatementList(node.statements);
}
return;
- case 216:
- case 188:
+ case 217:
+ case 189:
inStrictMode = true;
return;
}
@@ -11395,7 +11555,7 @@ var ts;
switch (node.kind) {
case 69:
return checkStrictModeIdentifier(node);
- case 183:
+ case 184:
if (ts.isInJavaScriptFile(node)) {
var specialKind = ts.getSpecialPropertyAssignmentKind(node);
switch (specialKind) {
@@ -11418,94 +11578,91 @@ var ts;
}
}
return checkStrictModeBinaryExpression(node);
- case 246:
+ case 247:
return checkStrictModeCatchClause(node);
- case 177:
+ case 178:
return checkStrictModeDeleteExpression(node);
case 8:
return checkStrictModeNumericLiteral(node);
- case 182:
+ case 183:
return checkStrictModePostfixUnaryExpression(node);
- case 181:
+ case 182:
return checkStrictModePrefixUnaryExpression(node);
- case 207:
+ case 208:
return checkStrictModeWithStatement(node);
- case 161:
+ case 162:
seenThisKeyword = true;
return;
- case 150:
+ case 151:
return checkTypePredicate(node);
- case 137:
- return declareSymbolAndAddToSymbolTable(node, 262144, 530912);
case 138:
+ return declareSymbolAndAddToSymbolTable(node, 262144, 530912);
+ case 139:
return bindParameter(node);
- case 213:
- case 165:
+ case 214:
+ case 166:
return bindVariableDeclarationOrBindingElement(node);
+ case 142:
case 141:
- case 140:
return bindPropertyOrMethodOrAccessor(node, 4 | (node.questionToken ? 536870912 : 0), 107455);
- case 247:
case 248:
- return bindPropertyOrMethodOrAccessor(node, 4, 107455);
case 249:
+ return bindPropertyOrMethodOrAccessor(node, 4, 107455);
+ case 250:
return bindPropertyOrMethodOrAccessor(node, 8, 107455);
- case 147:
case 148:
case 149:
+ case 150:
return declareSymbolAndAddToSymbolTable(node, 131072, 0);
- case 143:
- case 142:
- return bindPropertyOrMethodOrAccessor(node, 8192 | (node.questionToken ? 536870912 : 0), ts.isObjectLiteralMethod(node) ? 107455 : 99263);
- case 215:
- checkStrictModeFunctionName(node);
- return declareSymbolAndAddToSymbolTable(node, 16, 106927);
case 144:
- return declareSymbolAndAddToSymbolTable(node, 16384, 0);
+ case 143:
+ return bindPropertyOrMethodOrAccessor(node, 8192 | (node.questionToken ? 536870912 : 0), ts.isObjectLiteralMethod(node) ? 107455 : 99263);
+ case 216:
+ return bindFunctionDeclaration(node);
case 145:
- return bindPropertyOrMethodOrAccessor(node, 32768, 41919);
+ return declareSymbolAndAddToSymbolTable(node, 16384, 0);
case 146:
+ return bindPropertyOrMethodOrAccessor(node, 32768, 41919);
+ case 147:
return bindPropertyOrMethodOrAccessor(node, 65536, 74687);
- case 152:
case 153:
+ case 154:
return bindFunctionOrConstructorType(node);
- case 155:
+ case 156:
return bindAnonymousDeclaration(node, 2048, "__type");
- case 167:
+ case 168:
return bindObjectLiteralExpression(node);
- case 175:
case 176:
- checkStrictModeFunctionName(node);
- var bindingName = node.name ? node.name.text : "__function";
- return bindAnonymousDeclaration(node, 16, bindingName);
- case 170:
+ case 177:
+ return bindFunctionExpression(node);
+ case 171:
if (ts.isInJavaScriptFile(node)) {
bindCallExpression(node);
}
break;
- case 188:
- case 216:
- return bindClassLikeDeclaration(node);
+ case 189:
case 217:
- return bindBlockScopedDeclaration(node, 64, 792960);
+ return bindClassLikeDeclaration(node);
case 218:
- return bindBlockScopedDeclaration(node, 524288, 793056);
+ return bindBlockScopedDeclaration(node, 64, 792960);
case 219:
- return bindEnumDeclaration(node);
+ return bindBlockScopedDeclaration(node, 524288, 793056);
case 220:
+ return bindEnumDeclaration(node);
+ case 221:
return bindModuleDeclaration(node);
- case 223:
- case 226:
- case 228:
- case 232:
- return declareSymbolAndAddToSymbolTable(node, 8388608, 8388608);
- case 225:
- return bindImportClause(node);
- case 230:
- return bindExportDeclaration(node);
+ case 224:
+ case 227:
case 229:
+ case 233:
+ return declareSymbolAndAddToSymbolTable(node, 8388608, 8388608);
+ case 226:
+ return bindImportClause(node);
+ case 231:
+ return bindExportDeclaration(node);
+ case 230:
return bindExportAssignment(node);
- case 250:
+ case 251:
return bindSourceFileIfExternalModule();
}
}
@@ -11514,7 +11671,7 @@ var ts;
if (parameterName && parameterName.kind === 69) {
checkStrictModeIdentifier(parameterName);
}
- if (parameterName && parameterName.kind === 161) {
+ if (parameterName && parameterName.kind === 162) {
seenThisKeyword = true;
}
bind(type);
@@ -11529,7 +11686,7 @@ var ts;
bindAnonymousDeclaration(file, 512, "\"" + ts.removeFileExtension(file.fileName) + "\"");
}
function bindExportAssignment(node) {
- var boundExpression = node.kind === 229 ? node.expression : node.right;
+ var boundExpression = node.kind === 230 ? node.expression : node.right;
if (!container.symbol || !container.symbol.exports) {
bindAnonymousDeclaration(node, 8388608, getDeclarationName(node));
}
@@ -11568,7 +11725,7 @@ var ts;
bindExportAssignment(node);
}
function bindThisPropertyAssignment(node) {
- if (container.kind === 175 || container.kind === 215) {
+ if (container.kind === 176 || container.kind === 216) {
container.symbol.members = container.symbol.members || {};
declareSymbol(container.symbol.members, container.symbol, node, 4, 107455);
}
@@ -11590,7 +11747,15 @@ var ts;
}
}
function bindClassLikeDeclaration(node) {
- if (node.kind === 216) {
+ if (!ts.isDeclarationFile(file) && !ts.isInAmbientContext(node)) {
+ if (ts.getClassExtendsHeritageClauseElement(node) !== undefined) {
+ hasClassExtends = true;
+ }
+ if (ts.nodeIsDecorated(node)) {
+ hasDecorators = true;
+ }
+ }
+ if (node.kind === 217) {
bindBlockScopedDeclaration(node, 32, 899519);
}
else {
@@ -11633,6 +11798,12 @@ var ts;
}
}
function bindParameter(node) {
+ if (!ts.isDeclarationFile(file) &&
+ !ts.isInAmbientContext(node) &&
+ ts.nodeIsDecorated(node)) {
+ hasDecorators = true;
+ hasParameterDecorators = true;
+ }
if (inStrictMode) {
checkStrictModeEvalOrArguments(node, node.name);
}
@@ -11647,7 +11818,34 @@ var ts;
declareSymbol(classDeclaration.symbol.members, classDeclaration.symbol, node, 4, 107455);
}
}
+ function bindFunctionDeclaration(node) {
+ if (!ts.isDeclarationFile(file) && !ts.isInAmbientContext(node)) {
+ if (ts.isAsyncFunctionLike(node)) {
+ hasAsyncFunctions = true;
+ }
+ }
+ checkStrictModeFunctionName(node);
+ return declareSymbolAndAddToSymbolTable(node, 16, 106927);
+ }
+ function bindFunctionExpression(node) {
+ if (!ts.isDeclarationFile(file) && !ts.isInAmbientContext(node)) {
+ if (ts.isAsyncFunctionLike(node)) {
+ hasAsyncFunctions = true;
+ }
+ }
+ checkStrictModeFunctionName(node);
+ var bindingName = node.name ? node.name.text : "__function";
+ return bindAnonymousDeclaration(node, 16, bindingName);
+ }
function bindPropertyOrMethodOrAccessor(node, symbolFlags, symbolExcludes) {
+ if (!ts.isDeclarationFile(file) && !ts.isInAmbientContext(node)) {
+ if (ts.isAsyncFunctionLike(node)) {
+ hasAsyncFunctions = true;
+ }
+ if (ts.nodeIsDecorated(node)) {
+ hasDecorators = true;
+ }
+ }
return ts.hasDynamicName(node)
? bindAnonymousDeclaration(node, symbolFlags, "__computed")
: declareSymbolAndAddToSymbolTable(node, symbolFlags, symbolExcludes);
@@ -11707,15 +11905,15 @@ var ts;
function checkUnreachable(node) {
switch (currentReachabilityState) {
case 4:
- var reportError = (ts.isStatement(node) && node.kind !== 196) ||
- node.kind === 216 ||
- (node.kind === 220 && shouldReportErrorOnModuleDeclaration(node)) ||
- (node.kind === 219 && (!ts.isConstEnumDeclaration(node) || options.preserveConstEnums));
+ var reportError = (ts.isStatement(node) && node.kind !== 197) ||
+ node.kind === 217 ||
+ (node.kind === 221 && shouldReportErrorOnModuleDeclaration(node)) ||
+ (node.kind === 220 && (!ts.isConstEnumDeclaration(node) || options.preserveConstEnums));
if (reportError) {
currentReachabilityState = 8;
var reportUnreachableCode = !options.allowUnreachableCode &&
!ts.isInAmbientContext(node) &&
- (node.kind !== 195 ||
+ (node.kind !== 196 ||
ts.getCombinedNodeFlags(node.declarationList) & 24576 ||
ts.forEach(node.declarationList.declarations, function (d) { return d.initializer; }));
if (reportUnreachableCode) {
@@ -11789,6 +11987,7 @@ var ts;
getTypeCount: function () { return typeCount; },
isUndefinedSymbol: function (symbol) { return symbol === undefinedSymbol; },
isArgumentsSymbol: function (symbol) { return symbol === argumentsSymbol; },
+ isUnknownSymbol: function (symbol) { return symbol === unknownSymbol; },
getDiagnostics: getDiagnostics,
getGlobalDiagnostics: getGlobalDiagnostics,
getTypeOfSymbolAtLocation: getNarrowedTypeOfSymbol,
@@ -11803,6 +12002,7 @@ var ts;
getSymbolsInScope: getSymbolsInScope,
getSymbolAtLocation: getSymbolAtLocation,
getShorthandAssignmentValueSymbol: getShorthandAssignmentValueSymbol,
+ getExportSpecifierLocalTargetSymbol: getExportSpecifierLocalTargetSymbol,
getTypeAtLocation: getTypeOfNode,
typeToString: typeToString,
getSymbolDisplayBuilder: getSymbolDisplayBuilder,
@@ -11876,11 +12076,6 @@ var ts;
var unionTypes = {};
var intersectionTypes = {};
var stringLiteralTypes = {};
- var emitExtends = false;
- var emitDecorate = false;
- var emitParam = false;
- var emitAwaiter = false;
- var emitGenerator = false;
var resolutionTargets = [];
var resolutionResults = [];
var resolutionPropertyNames = [];
@@ -12013,7 +12208,7 @@ var ts;
target.flags |= source.flags;
if (source.valueDeclaration &&
(!target.valueDeclaration ||
- (target.valueDeclaration.kind === 220 && source.valueDeclaration.kind !== 220))) {
+ (target.valueDeclaration.kind === 221 && source.valueDeclaration.kind !== 221))) {
target.valueDeclaration = source.valueDeclaration;
}
ts.forEach(source.declarations, function (node) {
@@ -12067,6 +12262,24 @@ var ts;
}
}
}
+ function mergeModuleAugmentation(moduleName) {
+ var moduleAugmentation = moduleName.parent;
+ if (moduleAugmentation.symbol.valueDeclaration !== moduleAugmentation) {
+ ts.Debug.assert(moduleAugmentation.symbol.declarations.length > 1);
+ return;
+ }
+ if (ts.isGlobalScopeAugmentation(moduleAugmentation)) {
+ mergeSymbolTable(globals, moduleAugmentation.symbol.exports);
+ }
+ else {
+ var mainModule = resolveExternalModuleNameWorker(moduleName, moduleName, ts.Diagnostics.Invalid_module_name_in_augmentation_module_0_cannot_be_found);
+ if (!mainModule) {
+ return;
+ }
+ mainModule = mainModule.flags & 33554432 ? mainModule : cloneSymbol(mainModule);
+ mergeSymbol(mainModule, moduleAugmentation.symbol);
+ }
+ }
function addToSymbolTable(target, source, message) {
for (var id in source) {
if (ts.hasProperty(source, id)) {
@@ -12092,17 +12305,8 @@ var ts;
var nodeId = getNodeId(node);
return nodeLinks[nodeId] || (nodeLinks[nodeId] = {});
}
- function getSourceFile(node) {
- return ts.getAncestor(node, 250);
- }
function isGlobalSourceFile(node) {
- return node.kind === 250 && !ts.isExternalOrCommonJsModule(node);
- }
- function isPrimitiveApparentType(type) {
- return type === globalStringType ||
- type === globalNumberType ||
- type === globalBooleanType ||
- type === globalESSymbolType;
+ return node.kind === 251 && !ts.isExternalOrCommonJsModule(node);
}
function getSymbol(symbols, name, meaning) {
if (meaning && ts.hasProperty(symbols, name)) {
@@ -12140,18 +12344,18 @@ var ts;
return ts.indexOf(sourceFiles, declarationFile) <= ts.indexOf(sourceFiles, useFile);
}
if (declaration.pos <= usage.pos) {
- return declaration.kind !== 213 ||
+ return declaration.kind !== 214 ||
!isImmediatelyUsedInInitializerOfBlockScopedVariable(declaration, usage);
}
return isUsedInFunctionOrNonStaticProperty(declaration, usage);
function isImmediatelyUsedInInitializerOfBlockScopedVariable(declaration, usage) {
var container = ts.getEnclosingBlockScopeContainer(declaration);
- if (declaration.parent.parent.kind === 195 ||
- declaration.parent.parent.kind === 201) {
+ if (declaration.parent.parent.kind === 196 ||
+ declaration.parent.parent.kind === 202) {
return isSameScopeDescendentOf(usage, declaration, container);
}
- else if (declaration.parent.parent.kind === 203 ||
- declaration.parent.parent.kind === 202) {
+ else if (declaration.parent.parent.kind === 204 ||
+ declaration.parent.parent.kind === 203) {
var expression = declaration.parent.parent.expression;
return isSameScopeDescendentOf(usage, expression, container);
}
@@ -12167,7 +12371,7 @@ var ts;
return true;
}
var initializerOfNonStaticProperty = current.parent &&
- current.parent.kind === 141 &&
+ current.parent.kind === 142 &&
(current.parent.flags & 64) === 0 &&
current.parent.initializer === current;
if (initializerOfNonStaticProperty) {
@@ -12192,15 +12396,15 @@ var ts;
if (meaning & result.flags & 793056) {
useResult = result.flags & 262144
? lastLocation === location.type ||
- lastLocation.kind === 138 ||
- lastLocation.kind === 137
+ lastLocation.kind === 139 ||
+ lastLocation.kind === 138
: false;
}
if (meaning & 107455 && result.flags & 1) {
useResult =
- lastLocation.kind === 138 ||
+ lastLocation.kind === 139 ||
(lastLocation === location.type &&
- result.valueDeclaration.kind === 138);
+ result.valueDeclaration.kind === 139);
}
}
if (useResult) {
@@ -12212,13 +12416,12 @@ var ts;
}
}
switch (location.kind) {
- case 250:
+ case 251:
if (!ts.isExternalOrCommonJsModule(location))
break;
- case 220:
+ case 221:
var moduleExports = getSymbolOfNode(location).exports;
- if (location.kind === 250 ||
- (location.kind === 220 && location.name.kind === 9)) {
+ if (location.kind === 251 || ts.isAmbientModule(location)) {
if (result = moduleExports["default"]) {
var localSymbol = ts.getLocalSymbolForExportDefault(result);
if (localSymbol && (result.flags & meaning) && localSymbol.name === name) {
@@ -12228,7 +12431,7 @@ var ts;
}
if (ts.hasProperty(moduleExports, name) &&
moduleExports[name].flags === 8388608 &&
- ts.getDeclarationOfKind(moduleExports[name], 232)) {
+ ts.getDeclarationOfKind(moduleExports[name], 233)) {
break;
}
}
@@ -12236,13 +12439,13 @@ var ts;
break loop;
}
break;
- case 219:
+ case 220:
if (result = getSymbol(getSymbolOfNode(location).exports, name, meaning & 8)) {
break loop;
}
break;
+ case 142:
case 141:
- case 140:
if (ts.isClassLike(location.parent) && !(location.flags & 64)) {
var ctor = findConstructorDeclaration(location.parent);
if (ctor && ctor.locals) {
@@ -12252,9 +12455,9 @@ var ts;
}
}
break;
- case 216:
- case 188:
case 217:
+ case 189:
+ case 218:
if (result = getSymbol(getSymbolOfNode(location).members, name, meaning & 793056)) {
if (lastLocation && lastLocation.flags & 64) {
error(errorLocation, ts.Diagnostics.Static_members_cannot_reference_class_type_parameters);
@@ -12262,7 +12465,7 @@ var ts;
}
break loop;
}
- if (location.kind === 188 && meaning & 32) {
+ if (location.kind === 189 && meaning & 32) {
var className = location.name;
if (className && name === className.text) {
result = location.symbol;
@@ -12270,28 +12473,28 @@ var ts;
}
}
break;
- case 136:
+ case 137:
grandparent = location.parent.parent;
- if (ts.isClassLike(grandparent) || grandparent.kind === 217) {
+ if (ts.isClassLike(grandparent) || grandparent.kind === 218) {
if (result = getSymbol(getSymbolOfNode(grandparent).members, name, meaning & 793056)) {
error(errorLocation, ts.Diagnostics.A_computed_property_name_cannot_reference_a_type_parameter_from_its_containing_type);
return undefined;
}
}
break;
- case 143:
- case 142:
case 144:
+ case 143:
case 145:
case 146:
- case 215:
- case 176:
+ case 147:
+ case 216:
+ case 177:
if (meaning & 3 && name === "arguments") {
result = argumentsSymbol;
break loop;
}
break;
- case 175:
+ case 176:
if (meaning & 3 && name === "arguments") {
result = argumentsSymbol;
break loop;
@@ -12304,8 +12507,8 @@ var ts;
}
}
break;
- case 139:
- if (location.parent && location.parent.kind === 138) {
+ case 140:
+ if (location.parent && location.parent.kind === 139) {
location = location.parent;
}
if (location.parent && ts.isClassElement(location.parent)) {
@@ -12321,7 +12524,9 @@ var ts;
}
if (!result) {
if (nameNotFoundMessage) {
- error(errorLocation, nameNotFoundMessage, typeof nameArg === "string" ? nameArg : ts.declarationNameToString(nameArg));
+ if (!checkAndReportErrorForMissingPrefix(errorLocation, name, nameArg)) {
+ error(errorLocation, nameNotFoundMessage, typeof nameArg === "string" ? nameArg : ts.declarationNameToString(nameArg));
+ }
}
return undefined;
}
@@ -12340,11 +12545,40 @@ var ts;
}
return result;
}
+ function checkAndReportErrorForMissingPrefix(errorLocation, name, nameArg) {
+ if (!errorLocation || (errorLocation.kind === 69 && (isTypeReferenceIdentifier(errorLocation)) || isInTypeQuery(errorLocation))) {
+ return false;
+ }
+ var container = ts.getThisContainer(errorLocation, true);
+ var location = container;
+ while (location) {
+ if (ts.isClassLike(location.parent)) {
+ var classSymbol = getSymbolOfNode(location.parent);
+ if (!classSymbol) {
+ break;
+ }
+ var constructorType = getTypeOfSymbol(classSymbol);
+ if (getPropertyOfType(constructorType, name)) {
+ error(errorLocation, ts.Diagnostics.Cannot_find_name_0_Did_you_mean_the_static_member_1_0, typeof nameArg === "string" ? nameArg : ts.declarationNameToString(nameArg), symbolToString(classSymbol));
+ return true;
+ }
+ if (location === container && !(location.flags & 64)) {
+ var instanceType = getDeclaredTypeOfSymbol(classSymbol).thisType;
+ if (getPropertyOfType(instanceType, name)) {
+ error(errorLocation, ts.Diagnostics.Cannot_find_name_0_Did_you_mean_the_instance_member_this_0, typeof nameArg === "string" ? nameArg : ts.declarationNameToString(nameArg));
+ return true;
+ }
+ }
+ }
+ location = location.parent;
+ }
+ return false;
+ }
function checkResolvedBlockScopedVariable(result, errorLocation) {
ts.Debug.assert((result.flags & 2) !== 0);
var declaration = ts.forEach(result.declarations, function (d) { return ts.isBlockOrCatchScoped(d) ? d : undefined; });
ts.Debug.assert(declaration !== undefined, "Block-scoped variable declaration is undefined");
- if (!isBlockScopedNameDeclaredBeforeUse(ts.getAncestor(declaration, 213), errorLocation)) {
+ if (!isBlockScopedNameDeclaredBeforeUse(ts.getAncestor(declaration, 214), errorLocation)) {
error(errorLocation, ts.Diagnostics.Block_scoped_variable_0_used_before_its_declaration, ts.declarationNameToString(declaration.name));
}
}
@@ -12361,10 +12595,10 @@ var ts;
}
function getAnyImportSyntax(node) {
if (ts.isAliasSymbolDeclaration(node)) {
- if (node.kind === 223) {
+ if (node.kind === 224) {
return node;
}
- while (node && node.kind !== 224) {
+ while (node && node.kind !== 225) {
node = node.parent;
}
return node;
@@ -12374,7 +12608,7 @@ var ts;
return ts.forEach(symbol.declarations, function (d) { return ts.isAliasSymbolDeclaration(d) ? d : undefined; });
}
function getTargetOfImportEqualsDeclaration(node) {
- if (node.moduleReference.kind === 234) {
+ if (node.moduleReference.kind === 235) {
return resolveExternalModuleSymbol(resolveExternalModuleName(node, ts.getExternalModuleImportEqualsDeclarationExpression(node)));
}
return getSymbolOfPartOfRightHandSideOfImportEquals(node.moduleReference, node);
@@ -12458,17 +12692,17 @@ var ts;
}
function getTargetOfAliasDeclaration(node) {
switch (node.kind) {
- case 223:
+ case 224:
return getTargetOfImportEqualsDeclaration(node);
- case 225:
- return getTargetOfImportClause(node);
case 226:
+ return getTargetOfImportClause(node);
+ case 227:
return getTargetOfNamespaceImport(node);
- case 228:
- return getTargetOfImportSpecifier(node);
- case 232:
- return getTargetOfExportSpecifier(node);
case 229:
+ return getTargetOfImportSpecifier(node);
+ case 233:
+ return getTargetOfExportSpecifier(node);
+ case 230:
return getTargetOfExportAssignment(node);
}
}
@@ -12510,10 +12744,10 @@ var ts;
if (!links.referenced) {
links.referenced = true;
var node = getDeclarationOfAliasSymbol(symbol);
- if (node.kind === 229) {
+ if (node.kind === 230) {
checkExpressionCached(node.expression);
}
- else if (node.kind === 232) {
+ else if (node.kind === 233) {
checkExpressionCached(node.propertyName || node.name);
}
else if (ts.isInternalModuleImportEqualsDeclaration(node)) {
@@ -12523,17 +12757,17 @@ var ts;
}
function getSymbolOfPartOfRightHandSideOfImportEquals(entityName, importDeclaration) {
if (!importDeclaration) {
- importDeclaration = ts.getAncestor(entityName, 223);
+ importDeclaration = ts.getAncestor(entityName, 224);
ts.Debug.assert(importDeclaration !== undefined);
}
if (entityName.kind === 69 && ts.isRightSideOfQualifiedNameOrPropertyAccess(entityName)) {
entityName = entityName.parent;
}
- if (entityName.kind === 69 || entityName.parent.kind === 135) {
+ if (entityName.kind === 69 || entityName.parent.kind === 136) {
return resolveEntityName(entityName, 1536);
}
else {
- ts.Debug.assert(entityName.parent.kind === 223);
+ ts.Debug.assert(entityName.parent.kind === 224);
return resolveEntityName(entityName, 107455 | 793056 | 1536);
}
}
@@ -12552,9 +12786,9 @@ var ts;
return undefined;
}
}
- else if (name.kind === 135 || name.kind === 168) {
- var left = name.kind === 135 ? name.left : name.expression;
- var right = name.kind === 135 ? name.right : name.name;
+ else if (name.kind === 136 || name.kind === 169) {
+ var left = name.kind === 136 ? name.left : name.expression;
+ var right = name.kind === 136 ? name.right : name.name;
var namespace = resolveEntityName(left, 1536, ignoreErrors);
if (!namespace || namespace === unknownSymbol || ts.nodeIsMissing(right)) {
return undefined;
@@ -12574,6 +12808,9 @@ var ts;
return symbol.flags & meaning ? symbol : resolveAlias(symbol);
}
function resolveExternalModuleName(location, moduleReferenceExpression) {
+ return resolveExternalModuleNameWorker(location, moduleReferenceExpression, ts.Diagnostics.Cannot_find_module_0);
+ }
+ function resolveExternalModuleNameWorker(location, moduleReferenceExpression, moduleNotFoundError) {
if (moduleReferenceExpression.kind !== 9) {
return;
}
@@ -12586,19 +12823,24 @@ var ts;
if (!isRelative) {
var symbol = getSymbol(globals, "\"" + moduleName + "\"", 512);
if (symbol) {
- return symbol;
+ return getMergedSymbol(symbol);
}
}
- var resolvedModule = ts.getResolvedModule(getSourceFile(location), moduleReferenceLiteral.text);
+ var resolvedModule = ts.getResolvedModule(ts.getSourceFileOfNode(location), moduleReferenceLiteral.text);
var sourceFile = resolvedModule && host.getSourceFile(resolvedModule.resolvedFileName);
if (sourceFile) {
if (sourceFile.symbol) {
- return sourceFile.symbol;
+ return getMergedSymbol(sourceFile.symbol);
}
- error(moduleReferenceLiteral, ts.Diagnostics.File_0_is_not_a_module, sourceFile.fileName);
- return;
+ if (moduleNotFoundError) {
+ error(moduleReferenceLiteral, ts.Diagnostics.File_0_is_not_a_module, sourceFile.fileName);
+ }
+ return undefined;
}
- error(moduleReferenceLiteral, ts.Diagnostics.Cannot_find_module_0, moduleName);
+ if (moduleNotFoundError) {
+ error(moduleReferenceLiteral, moduleNotFoundError, moduleName);
+ }
+ return undefined;
}
function resolveExternalModuleSymbol(moduleSymbol) {
return moduleSymbol && resolveSymbol(moduleSymbol.exports["export="]) || moduleSymbol;
@@ -12709,7 +12951,7 @@ var ts;
var members = node.members;
for (var _i = 0, members_1 = members; _i < members_1.length; _i++) {
var member = members_1[_i];
- if (member.kind === 144 && ts.nodeIsPresent(member.body)) {
+ if (member.kind === 145 && ts.nodeIsPresent(member.body)) {
return member;
}
}
@@ -12775,17 +13017,17 @@ var ts;
}
}
switch (location_1.kind) {
- case 250:
+ case 251:
if (!ts.isExternalOrCommonJsModule(location_1)) {
break;
}
- case 220:
+ case 221:
if (result = callback(getSymbolOfNode(location_1).exports)) {
return result;
}
break;
- case 216:
case 217:
+ case 218:
if (result = callback(getSymbolOfNode(location_1).members)) {
return result;
}
@@ -12818,7 +13060,7 @@ var ts;
return ts.forEachValue(symbols, function (symbolFromSymbolTable) {
if (symbolFromSymbolTable.flags & 8388608
&& symbolFromSymbolTable.name !== "export="
- && !ts.getDeclarationOfKind(symbolFromSymbolTable, 232)) {
+ && !ts.getDeclarationOfKind(symbolFromSymbolTable, 233)) {
if (!useOnlyExternalAliasing ||
ts.forEach(symbolFromSymbolTable.declarations, ts.isExternalModuleImportEqualsDeclaration)) {
var resolvedImportedSymbol = resolveAlias(symbolFromSymbolTable);
@@ -12847,7 +13089,7 @@ var ts;
if (symbolFromSymbolTable === symbol) {
return true;
}
- symbolFromSymbolTable = (symbolFromSymbolTable.flags & 8388608 && !ts.getDeclarationOfKind(symbolFromSymbolTable, 232)) ? resolveAlias(symbolFromSymbolTable) : symbolFromSymbolTable;
+ symbolFromSymbolTable = (symbolFromSymbolTable.flags & 8388608 && !ts.getDeclarationOfKind(symbolFromSymbolTable, 233)) ? resolveAlias(symbolFromSymbolTable) : symbolFromSymbolTable;
if (symbolFromSymbolTable.flags & meaning) {
qualify = true;
return true;
@@ -12902,8 +13144,7 @@ var ts;
}
}
function hasExternalModuleSymbol(declaration) {
- return (declaration.kind === 220 && declaration.name.kind === 9) ||
- (declaration.kind === 250 && ts.isExternalOrCommonJsModule(declaration));
+ return ts.isAmbientModule(declaration) || (declaration.kind === 251 && ts.isExternalOrCommonJsModule(declaration));
}
function hasVisibleDeclarations(symbol) {
var aliasesToMakeVisible;
@@ -12935,11 +13176,11 @@ var ts;
}
function isEntityNameVisible(entityName, enclosingDeclaration) {
var meaning;
- if (entityName.parent.kind === 154) {
+ if (entityName.parent.kind === 155) {
meaning = 107455 | 1048576;
}
- else if (entityName.kind === 135 || entityName.kind === 168 ||
- entityName.parent.kind === 223) {
+ else if (entityName.kind === 136 || entityName.kind === 169 ||
+ entityName.parent.kind === 224) {
meaning = 1536;
}
else {
@@ -12990,15 +13231,20 @@ var ts;
function getTypeAliasForTypeLiteral(type) {
if (type.symbol && type.symbol.flags & 2048) {
var node = type.symbol.declarations[0].parent;
- while (node.kind === 160) {
+ while (node.kind === 161) {
node = node.parent;
}
- if (node.kind === 218) {
+ if (node.kind === 219) {
return getSymbolOfNode(node);
}
}
return undefined;
}
+ function isTopLevelInExternalModuleAugmentation(node) {
+ return node && node.parent &&
+ node.parent.kind === 222 &&
+ ts.isExternalModuleAugmentation(node.parent.parent);
+ }
function getSymbolDisplayBuilder() {
function getNameOfSymbol(symbol) {
if (symbol.declarations && symbol.declarations.length) {
@@ -13007,10 +13253,10 @@ var ts;
return ts.declarationNameToString(declaration.name);
}
switch (declaration.kind) {
- case 188:
+ case 189:
return "(Anonymous class)";
- case 175:
case 176:
+ case 177:
return "(Anonymous function)";
}
}
@@ -13224,7 +13470,7 @@ var ts;
var isNonLocalFunctionSymbol = !!(symbol.flags & 16) &&
(symbol.parent ||
ts.forEach(symbol.declarations, function (declaration) {
- return declaration.parent.kind === 250 || declaration.parent.kind === 221;
+ return declaration.parent.kind === 251 || declaration.parent.kind === 222;
}));
if (isStaticMethodSymbol || isNonLocalFunctionSymbol) {
return !!(flags & 2) ||
@@ -13478,60 +13724,63 @@ var ts;
return false;
function determineIfDeclarationIsVisible() {
switch (node.kind) {
- case 165:
+ case 166:
return isDeclarationVisible(node.parent.parent);
- case 213:
+ case 214:
if (ts.isBindingPattern(node.name) &&
!node.name.elements.length) {
return false;
}
- case 220:
- case 216:
+ case 221:
case 217:
case 218:
- case 215:
case 219:
- case 223:
+ case 216:
+ case 220:
+ case 224:
+ if (ts.isExternalModuleAugmentation(node)) {
+ return true;
+ }
var parent_4 = getDeclarationContainer(node);
if (!(ts.getCombinedNodeFlags(node) & 2) &&
- !(node.kind !== 223 && parent_4.kind !== 250 && ts.isInAmbientContext(parent_4))) {
+ !(node.kind !== 224 && parent_4.kind !== 251 && ts.isInAmbientContext(parent_4))) {
return isGlobalSourceFile(parent_4);
}
return isDeclarationVisible(parent_4);
- case 141:
- case 140:
- case 145:
- case 146:
- case 143:
case 142:
+ case 141:
+ case 146:
+ case 147:
+ case 144:
+ case 143:
if (node.flags & (16 | 32)) {
return false;
}
- case 144:
- case 148:
- case 147:
+ case 145:
case 149:
- case 138:
- case 221:
- case 152:
+ case 148:
+ case 150:
+ case 139:
+ case 222:
case 153:
- case 155:
- case 151:
+ case 154:
case 156:
+ case 152:
case 157:
case 158:
case 159:
case 160:
+ case 161:
return isDeclarationVisible(node.parent);
- case 225:
case 226:
- case 228:
- return false;
- case 137:
- case 250:
- return true;
+ case 227:
case 229:
return false;
+ case 138:
+ case 251:
+ return true;
+ case 230:
+ return false;
default:
ts.Debug.fail("isDeclarationVisible unknown: SyntaxKind: " + node.kind);
}
@@ -13539,10 +13788,10 @@ var ts;
}
function collectLinkedAliases(node) {
var exportSymbol;
- if (node.parent && node.parent.kind === 229) {
+ if (node.parent && node.parent.kind === 230) {
exportSymbol = resolveName(node.parent, node.text, 107455 | 793056 | 1536 | 8388608, ts.Diagnostics.Cannot_find_name_0, node);
}
- else if (node.parent.kind === 232) {
+ else if (node.parent.kind === 233) {
var exportSpecifier = node.parent;
exportSymbol = exportSpecifier.parent.parent.moduleSpecifier ?
getExternalModuleMember(exportSpecifier.parent.parent, exportSpecifier) :
@@ -13564,7 +13813,9 @@ var ts;
var internalModuleReference = declaration.moduleReference;
var firstIdentifier = getFirstIdentifier(internalModuleReference);
var importSymbol = resolveName(declaration, firstIdentifier.text, 107455 | 793056 | 1536, ts.Diagnostics.Cannot_find_name_0, firstIdentifier);
- buildVisibleNodeList(importSymbol.declarations);
+ if (importSymbol) {
+ buildVisibleNodeList(importSymbol.declarations);
+ }
}
});
}
@@ -13617,10 +13868,10 @@ var ts;
}
function getDeclarationContainer(node) {
node = ts.getRootDeclaration(node);
- return node.kind === 213 ? node.parent.parent.parent : node.parent;
+ return node.kind === 214 ? node.parent.parent.parent : node.parent;
}
function getTypeOfPrototypeProperty(prototype) {
- var classType = getDeclaredTypeOfSymbol(prototype.parent);
+ var classType = getDeclaredTypeOfSymbol(getMergedSymbol(prototype.parent));
return classType.typeParameters ? createTypeReference(classType, ts.map(classType.typeParameters, function (_) { return anyType; })) : classType;
}
function getTypeOfPropertyOfType(type, name) {
@@ -13641,7 +13892,7 @@ var ts;
case 9:
case 8:
return name.text;
- case 136:
+ case 137:
if (ts.isStringOrNumericLiteral(name.expression.kind)) {
return name.expression.text;
}
@@ -13649,7 +13900,7 @@ var ts;
return undefined;
}
function isComputedNonLiteralName(name) {
- return name.kind === 136 && !ts.isStringOrNumericLiteral(name.expression.kind);
+ return name.kind === 137 && !ts.isStringOrNumericLiteral(name.expression.kind);
}
function getTypeForBindingElement(declaration) {
var pattern = declaration.parent;
@@ -13664,7 +13915,7 @@ var ts;
return parentType;
}
var type;
- if (pattern.kind === 163) {
+ if (pattern.kind === 164) {
var name_10 = declaration.propertyName || declaration.name;
if (isComputedNonLiteralName(name_10)) {
return anyType;
@@ -13702,10 +13953,10 @@ var ts;
return type;
}
function getTypeForVariableLikeDeclaration(declaration) {
- if (declaration.parent.parent.kind === 202) {
- return anyType;
- }
if (declaration.parent.parent.kind === 203) {
+ return stringType;
+ }
+ if (declaration.parent.parent.kind === 204) {
return checkRightHandSideOfForOf(declaration.parent.parent.expression) || anyType;
}
if (ts.isBindingPattern(declaration.parent)) {
@@ -13714,10 +13965,10 @@ var ts;
if (declaration.type) {
return getTypeFromTypeNode(declaration.type);
}
- if (declaration.kind === 138) {
+ if (declaration.kind === 139) {
var func = declaration.parent;
- if (func.kind === 146 && !ts.hasDynamicName(func)) {
- var getter = ts.getDeclarationOfKind(declaration.parent.symbol, 145);
+ if (func.kind === 147 && !ts.hasDynamicName(func)) {
+ var getter = ts.getDeclarationOfKind(declaration.parent.symbol, 146);
if (getter) {
return getReturnTypeOfSignature(getSignatureFromDeclaration(getter));
}
@@ -13730,7 +13981,7 @@ var ts;
if (declaration.initializer) {
return checkExpressionCached(declaration.initializer);
}
- if (declaration.kind === 248) {
+ if (declaration.kind === 249) {
return checkIdentifier(declaration.name);
}
if (ts.isBindingPattern(declaration.name)) {
@@ -13777,7 +14028,7 @@ var ts;
if (elements.length === 0 || elements[elements.length - 1].dotDotDotToken) {
return languageVersion >= 2 ? createIterableType(anyType) : anyArrayType;
}
- var elementTypes = ts.map(elements, function (e) { return e.kind === 189 ? anyType : getTypeFromBindingElement(e, includePatternInType); });
+ var elementTypes = ts.map(elements, function (e) { return e.kind === 190 ? anyType : getTypeFromBindingElement(e, includePatternInType); });
if (includePatternInType) {
var result = createNewTupleType(elementTypes);
result.pattern = pattern;
@@ -13786,7 +14037,7 @@ var ts;
return createTupleType(elementTypes);
}
function getTypeFromBindingPattern(pattern, includePatternInType) {
- return pattern.kind === 163
+ return pattern.kind === 164
? getTypeFromObjectBindingPattern(pattern, includePatternInType)
: getTypeFromArrayBindingPattern(pattern, includePatternInType);
}
@@ -13796,10 +14047,10 @@ var ts;
if (reportErrors) {
reportErrorsFromWidening(declaration, type);
}
- if (declaration.kind === 247) {
+ if (declaration.kind === 248) {
return type;
}
- if (type.flags & 134217728 && (declaration.kind === 141 || declaration.kind === 140)) {
+ if (type.flags & 134217728 && (declaration.kind === 142 || declaration.kind === 141)) {
return type;
}
return getWidenedType(type);
@@ -13807,7 +14058,7 @@ var ts;
type = declaration.dotDotDotToken ? anyArrayType : anyType;
if (reportErrors && compilerOptions.noImplicitAny) {
var root = ts.getRootDeclaration(declaration);
- if (!isPrivateWithinAmbient(root) && !(root.kind === 138 && isPrivateWithinAmbient(root.parent))) {
+ if (!isPrivateWithinAmbient(root) && !(root.kind === 139 && isPrivateWithinAmbient(root.parent))) {
reportImplicitAnyError(declaration, type);
}
}
@@ -13820,17 +14071,17 @@ var ts;
return links.type = getTypeOfPrototypeProperty(symbol);
}
var declaration = symbol.valueDeclaration;
- if (declaration.parent.kind === 246) {
+ if (declaration.parent.kind === 247) {
return links.type = anyType;
}
- if (declaration.kind === 229) {
+ if (declaration.kind === 230) {
return links.type = checkExpression(declaration.expression);
}
- if (declaration.kind === 183) {
+ if (declaration.kind === 184) {
return links.type = checkExpression(declaration.right);
}
- if (declaration.kind === 168) {
- if (declaration.parent.kind === 183) {
+ if (declaration.kind === 169) {
+ if (declaration.parent.kind === 184) {
return links.type = checkExpressionCached(declaration.parent.right);
}
}
@@ -13856,7 +14107,7 @@ var ts;
}
function getAnnotatedAccessorType(accessor) {
if (accessor) {
- if (accessor.kind === 145) {
+ if (accessor.kind === 146) {
return accessor.type && getTypeFromTypeNode(accessor.type);
}
else {
@@ -13872,8 +14123,8 @@ var ts;
if (!pushTypeResolution(symbol, 0)) {
return unknownType;
}
- var getter = ts.getDeclarationOfKind(symbol, 145);
- var setter = ts.getDeclarationOfKind(symbol, 146);
+ var getter = ts.getDeclarationOfKind(symbol, 146);
+ var setter = ts.getDeclarationOfKind(symbol, 147);
var type;
var getterReturnType = getAnnotatedAccessorType(getter);
if (getterReturnType) {
@@ -13899,7 +14150,7 @@ var ts;
if (!popTypeResolution()) {
type = anyType;
if (compilerOptions.noImplicitAny) {
- var getter_1 = ts.getDeclarationOfKind(symbol, 145);
+ var getter_1 = ts.getDeclarationOfKind(symbol, 146);
error(getter_1, ts.Diagnostics._0_implicitly_has_return_type_any_because_it_does_not_have_a_return_type_annotation_and_is_referenced_directly_or_indirectly_in_one_of_its_return_expressions, symbolToString(symbol));
}
}
@@ -13988,9 +14239,9 @@ var ts;
if (!node) {
return typeParameters;
}
- if (node.kind === 216 || node.kind === 188 ||
- node.kind === 215 || node.kind === 175 ||
- node.kind === 143 || node.kind === 176) {
+ if (node.kind === 217 || node.kind === 189 ||
+ node.kind === 216 || node.kind === 176 ||
+ node.kind === 144 || node.kind === 177) {
var declarations = node.typeParameters;
if (declarations) {
return appendTypeParameters(appendOuterTypeParameters(typeParameters, node), declarations);
@@ -13999,15 +14250,15 @@ var ts;
}
}
function getOuterTypeParametersOfClassOrInterface(symbol) {
- var declaration = symbol.flags & 32 ? symbol.valueDeclaration : ts.getDeclarationOfKind(symbol, 217);
+ var declaration = symbol.flags & 32 ? symbol.valueDeclaration : ts.getDeclarationOfKind(symbol, 218);
return appendOuterTypeParameters(undefined, declaration);
}
function getLocalTypeParametersOfClassOrInterfaceOrTypeAlias(symbol) {
var result;
for (var _i = 0, _a = symbol.declarations; _i < _a.length; _i++) {
var node = _a[_i];
- if (node.kind === 217 || node.kind === 216 ||
- node.kind === 188 || node.kind === 218) {
+ if (node.kind === 218 || node.kind === 217 ||
+ node.kind === 189 || node.kind === 219) {
var declaration = node;
if (declaration.typeParameters) {
result = appendTypeParameters(result, declaration.typeParameters);
@@ -14130,7 +14381,7 @@ var ts;
type.resolvedBaseTypes = type.resolvedBaseTypes || emptyArray;
for (var _i = 0, _a = type.symbol.declarations; _i < _a.length; _i++) {
var declaration = _a[_i];
- if (declaration.kind === 217 && ts.getInterfaceBaseTypeNodes(declaration)) {
+ if (declaration.kind === 218 && ts.getInterfaceBaseTypeNodes(declaration)) {
for (var _b = 0, _c = ts.getInterfaceBaseTypeNodes(declaration); _b < _c.length; _b++) {
var node = _c[_b];
var baseType = getTypeFromTypeNode(node);
@@ -14159,7 +14410,7 @@ var ts;
function isIndependentInterface(symbol) {
for (var _i = 0, _a = symbol.declarations; _i < _a.length; _i++) {
var declaration = _a[_i];
- if (declaration.kind === 217) {
+ if (declaration.kind === 218) {
if (declaration.flags & 262144) {
return false;
}
@@ -14208,7 +14459,7 @@ var ts;
if (!pushTypeResolution(symbol, 2)) {
return unknownType;
}
- var declaration = ts.getDeclarationOfKind(symbol, 218);
+ var declaration = ts.getDeclarationOfKind(symbol, 219);
var type = getTypeFromTypeNode(declaration.type);
if (popTypeResolution()) {
links.typeParameters = getLocalTypeParametersOfClassOrInterfaceOrTypeAlias(symbol);
@@ -14239,7 +14490,7 @@ var ts;
if (!links.declaredType) {
var type = createType(512);
type.symbol = symbol;
- if (!ts.getDeclarationOfKind(symbol, 137).constraint) {
+ if (!ts.getDeclarationOfKind(symbol, 138).constraint) {
type.constraint = noConstraintType;
}
links.declaredType = type;
@@ -14291,11 +14542,11 @@ var ts;
case 120:
case 131:
case 103:
- case 162:
+ case 163:
return true;
- case 156:
+ case 157:
return isIndependentType(node.elementType);
- case 151:
+ case 152:
return isIndependentTypeReference(node);
}
return false;
@@ -14304,7 +14555,7 @@ var ts;
return node.type && isIndependentType(node.type) || !node.type && !node.initializer;
}
function isIndependentFunctionLikeDeclaration(node) {
- if (node.kind !== 144 && (!node.type || !isIndependentType(node.type))) {
+ if (node.kind !== 145 && (!node.type || !isIndependentType(node.type))) {
return false;
}
for (var _i = 0, _a = node.parameters; _i < _a.length; _i++) {
@@ -14320,12 +14571,12 @@ var ts;
var declaration = symbol.declarations[0];
if (declaration) {
switch (declaration.kind) {
- case 141:
- case 140:
- return isIndependentVariableLikeDeclaration(declaration);
- case 143:
case 142:
+ case 141:
+ return isIndependentVariableLikeDeclaration(declaration);
case 144:
+ case 143:
+ case 145:
return isIndependentFunctionLikeDeclaration(declaration);
}
}
@@ -14838,7 +15089,7 @@ var ts;
function getSignatureFromDeclaration(declaration) {
var links = getNodeLinks(declaration);
if (!links.resolvedSignature) {
- var classType = declaration.kind === 144 ?
+ var classType = declaration.kind === 145 ?
getDeclaredTypeOfClassOrInterface(getMergedSymbol(declaration.parent.symbol))
: undefined;
var typeParameters = classType ? classType.localTypeParameters :
@@ -14854,7 +15105,7 @@ var ts;
paramSymbol = resolvedSymbol;
}
parameters.push(paramSymbol);
- if (param.type && param.type.kind === 162) {
+ if (param.type && param.type.kind === 163) {
hasStringLiterals = true;
}
if (param.initializer || param.questionToken || param.dotDotDotToken) {
@@ -14877,8 +15128,8 @@ var ts;
returnType = getTypeFromTypeNode(declaration.type);
}
else {
- if (declaration.kind === 145 && !ts.hasDynamicName(declaration)) {
- var setter = ts.getDeclarationOfKind(declaration.symbol, 146);
+ if (declaration.kind === 146 && !ts.hasDynamicName(declaration)) {
+ var setter = ts.getDeclarationOfKind(declaration.symbol, 147);
returnType = getAnnotatedAccessorType(setter);
}
if (!returnType && ts.nodeIsMissing(declaration.body)) {
@@ -14896,19 +15147,19 @@ var ts;
for (var i = 0, len = symbol.declarations.length; i < len; i++) {
var node = symbol.declarations[i];
switch (node.kind) {
- case 152:
case 153:
- case 215:
- case 143:
- case 142:
+ case 154:
+ case 216:
case 144:
- case 147:
+ case 143:
+ case 145:
case 148:
case 149:
- case 145:
+ case 150:
case 146:
- case 175:
+ case 147:
case 176:
+ case 177:
if (i > 0 && node.body) {
var previous = symbol.declarations[i - 1];
if (node.parent === previous.parent && node.kind === previous.kind && node.pos === previous.end) {
@@ -14988,7 +15239,7 @@ var ts;
}
function getOrCreateTypeFromSignature(signature) {
if (!signature.isolatedSignatureType) {
- var isConstructor = signature.declaration.kind === 144 || signature.declaration.kind === 148;
+ var isConstructor = signature.declaration.kind === 145 || signature.declaration.kind === 149;
var type = createObjectType(65536 | 262144);
type.members = emptySymbols;
type.properties = emptyArray;
@@ -15025,7 +15276,7 @@ var ts;
: undefined;
}
function getConstraintDeclaration(type) {
- return ts.getDeclarationOfKind(type.symbol, 137).constraint;
+ return ts.getDeclarationOfKind(type.symbol, 138).constraint;
}
function hasConstraintReferenceTo(type, target) {
var checked;
@@ -15058,7 +15309,7 @@ var ts;
return typeParameter.constraint === noConstraintType ? undefined : typeParameter.constraint;
}
function getParentSymbolOfTypeParameter(typeParameter) {
- return getSymbolOfNode(ts.getDeclarationOfKind(typeParameter.symbol, 137).parent);
+ return getSymbolOfNode(ts.getDeclarationOfKind(typeParameter.symbol, 138).parent);
}
function getTypeListId(types) {
if (types) {
@@ -15144,7 +15395,7 @@ var ts;
function getTypeFromTypeReference(node) {
var links = getNodeLinks(node);
if (!links.resolvedType) {
- var typeNameOrExpression = node.kind === 151 ? node.typeName :
+ var typeNameOrExpression = node.kind === 152 ? node.typeName :
ts.isSupportedExpressionWithTypeArguments(node) ? node.expression :
undefined;
var symbol = typeNameOrExpression && resolveEntityName(typeNameOrExpression, 793056) || unknownSymbol;
@@ -15170,9 +15421,9 @@ var ts;
for (var _i = 0, declarations_3 = declarations; _i < declarations_3.length; _i++) {
var declaration = declarations_3[_i];
switch (declaration.kind) {
- case 216:
case 217:
- case 219:
+ case 218:
+ case 220:
return declaration;
}
}
@@ -15388,9 +15639,9 @@ var ts;
function getThisType(node) {
var container = ts.getThisContainer(node, false);
var parent = container && container.parent;
- if (parent && (ts.isClassLike(parent) || parent.kind === 217)) {
+ if (parent && (ts.isClassLike(parent) || parent.kind === 218)) {
if (!(container.flags & 64) &&
- (container.kind !== 144 || ts.isNodeDescendentOf(node, container.body))) {
+ (container.kind !== 145 || ts.isNodeDescendentOf(node, container.body))) {
return getDeclaredTypeOfClassOrInterface(getSymbolOfNode(parent)).thisType;
}
}
@@ -15434,34 +15685,34 @@ var ts;
return esSymbolType;
case 103:
return voidType;
- case 161:
- return getTypeFromThisTypeNode(node);
case 162:
+ return getTypeFromThisTypeNode(node);
+ case 163:
return getTypeFromStringLiteralTypeNode(node);
- case 151:
- return getTypeFromTypeReference(node);
- case 150:
- return getTypeFromPredicateTypeNode(node);
- case 190:
- return getTypeFromTypeReference(node);
- case 154:
- return getTypeFromTypeQueryNode(node);
- case 156:
- return getTypeFromArrayTypeNode(node);
- case 157:
- return getTypeFromTupleTypeNode(node);
- case 158:
- return getTypeFromUnionTypeNode(node);
- case 159:
- return getTypeFromIntersectionTypeNode(node);
- case 160:
- return getTypeFromTypeNode(node.type);
case 152:
- case 153:
+ return getTypeFromTypeReference(node);
+ case 151:
+ return getTypeFromPredicateTypeNode(node);
+ case 191:
+ return getTypeFromTypeReference(node);
case 155:
+ return getTypeFromTypeQueryNode(node);
+ case 157:
+ return getTypeFromArrayTypeNode(node);
+ case 158:
+ return getTypeFromTupleTypeNode(node);
+ case 159:
+ return getTypeFromUnionTypeNode(node);
+ case 160:
+ return getTypeFromIntersectionTypeNode(node);
+ case 161:
+ return getTypeFromTypeNode(node.type);
+ case 153:
+ case 154:
+ case 156:
return getTypeFromTypeLiteralOrFunctionOrConstructorTypeNode(node);
case 69:
- case 135:
+ case 136:
var symbol = getSymbolAtLocation(node);
return symbol && getDeclaredTypeOfSymbol(symbol);
default:
@@ -15641,27 +15892,27 @@ var ts;
return type;
}
function isContextSensitive(node) {
- ts.Debug.assert(node.kind !== 143 || ts.isObjectLiteralMethod(node));
+ ts.Debug.assert(node.kind !== 144 || ts.isObjectLiteralMethod(node));
switch (node.kind) {
- case 175:
case 176:
+ case 177:
return isContextSensitiveFunctionLikeDeclaration(node);
- case 167:
+ case 168:
return ts.forEach(node.properties, isContextSensitive);
- case 166:
+ case 167:
return ts.forEach(node.elements, isContextSensitive);
- case 184:
+ case 185:
return isContextSensitive(node.whenTrue) ||
isContextSensitive(node.whenFalse);
- case 183:
+ case 184:
return node.operatorToken.kind === 52 &&
(isContextSensitive(node.left) || isContextSensitive(node.right));
- case 247:
+ case 248:
return isContextSensitive(node.initializer);
+ case 144:
case 143:
- case 142:
return isContextSensitiveFunctionLikeDeclaration(node);
- case 174:
+ case 175:
return isContextSensitive(node.expression);
}
return false;
@@ -15689,6 +15940,9 @@ var ts;
function compareTypesIdentical(source, target) {
return checkTypeRelatedTo(source, target, identityRelation, undefined) ? -1 : 0;
}
+ function compareTypesAssignable(source, target) {
+ return checkTypeRelatedTo(source, target, assignableRelation, undefined) ? -1 : 0;
+ }
function isTypeSubtypeOf(source, target) {
return checkTypeSubtypeOf(source, target, undefined);
}
@@ -15702,39 +15956,52 @@ var ts;
return checkTypeRelatedTo(source, target, assignableRelation, errorNode, headMessage, containingMessageChain);
}
function isSignatureAssignableTo(source, target, ignoreReturnTypes) {
+ return compareSignaturesRelated(source, target, ignoreReturnTypes, false, undefined, compareTypesAssignable) !== 0;
+ }
+ function compareSignaturesRelated(source, target, ignoreReturnTypes, reportErrors, errorReporter, compareTypes) {
if (source === target) {
- return true;
+ return -1;
}
if (!target.hasRestParameter && source.minArgumentCount > target.parameters.length) {
- return false;
+ return 0;
}
source = getErasedSignature(source);
target = getErasedSignature(target);
+ var result = -1;
var sourceMax = getNumNonRestParameters(source);
var targetMax = getNumNonRestParameters(target);
var checkCount = getNumParametersToCheckForSignatureRelatability(source, sourceMax, target, targetMax);
+ var sourceParams = source.parameters;
+ var targetParams = target.parameters;
for (var i = 0; i < checkCount; i++) {
- var s = i < sourceMax ? getTypeOfSymbol(source.parameters[i]) : getRestTypeOfSignature(source);
- var t = i < targetMax ? getTypeOfSymbol(target.parameters[i]) : getRestTypeOfSignature(target);
- var related = isTypeAssignableTo(t, s) || isTypeAssignableTo(s, t);
+ var s = i < sourceMax ? getTypeOfSymbol(sourceParams[i]) : getRestTypeOfSignature(source);
+ var t = i < targetMax ? getTypeOfSymbol(targetParams[i]) : getRestTypeOfSignature(target);
+ var related = compareTypes(t, s, false) || compareTypes(s, t, reportErrors);
if (!related) {
- return false;
+ if (reportErrors) {
+ errorReporter(ts.Diagnostics.Types_of_parameters_0_and_1_are_incompatible, sourceParams[i < sourceMax ? i : sourceMax].name, targetParams[i < targetMax ? i : targetMax].name);
+ }
+ return 0;
}
+ result &= related;
}
if (!ignoreReturnTypes) {
var targetReturnType = getReturnTypeOfSignature(target);
if (targetReturnType === voidType) {
- return true;
+ return result;
}
var sourceReturnType = getReturnTypeOfSignature(source);
if (targetReturnType.flags & 134217728 && targetReturnType.predicate.kind === 1) {
if (!(sourceReturnType.flags & 134217728)) {
- return false;
+ if (reportErrors) {
+ errorReporter(ts.Diagnostics.Signature_0_must_have_a_type_predicate, signatureToString(source));
+ }
+ return 0;
}
}
- return isTypeAssignableTo(sourceReturnType, targetReturnType);
+ result &= compareTypes(sourceReturnType, targetReturnType, reportErrors);
}
- return true;
+ return result;
}
function isImplementationCompatibleWithOverload(implementation, overload) {
var erasedSource = getErasedSignature(implementation);
@@ -15777,18 +16044,12 @@ var ts;
var expandingFlags;
var depth = 0;
var overflow = false;
- var elaborateErrors = false;
ts.Debug.assert(relation !== identityRelation || !errorNode, "no error reporting in identity checking");
- var result = isRelatedTo(source, target, errorNode !== undefined, headMessage);
+ var result = isRelatedTo(source, target, !!errorNode, headMessage);
if (overflow) {
error(errorNode, ts.Diagnostics.Excessive_stack_depth_comparing_types_0_and_1, typeToString(source), typeToString(target));
}
else if (errorInfo) {
- if (errorInfo.next === undefined) {
- errorInfo = undefined;
- elaborateErrors = true;
- isRelatedTo(source, target, errorNode !== undefined, headMessage);
- }
if (containingMessageChain) {
errorInfo = ts.concatenateDiagnosticMessageChains(containingMessageChain, errorInfo);
}
@@ -15796,6 +16057,7 @@ var ts;
}
return result !== 0;
function reportError(message, arg0, arg1, arg2) {
+ ts.Debug.assert(!!errorNode);
errorInfo = ts.chainDiagnosticMessages(errorInfo, message, arg0, arg1, arg2);
}
function reportRelationError(message, source, target) {
@@ -15916,10 +16178,10 @@ var ts;
return result;
}
}
- var apparentType = getApparentType(source);
- if (apparentType.flags & (80896 | 32768) && target.flags & 80896) {
- var reportStructuralErrors = reportErrors && errorInfo === saveErrorInfo;
- if (result = objectTypeRelatedTo(apparentType, source, target, reportStructuralErrors)) {
+ var apparentSource = getApparentType(source);
+ if (apparentSource.flags & (80896 | 32768) && target.flags & 80896) {
+ var reportStructuralErrors = reportErrors && errorInfo === saveErrorInfo && !(source.flags & 16777726);
+ if (result = objectTypeRelatedTo(apparentSource, source, target, reportStructuralErrors)) {
errorInfo = saveErrorInfo;
return result;
}
@@ -15974,6 +16236,7 @@ var ts;
var prop = _a[_i];
if (!isKnownProperty(target, prop.name)) {
if (reportErrors) {
+ ts.Debug.assert(!!errorNode);
errorNode = prop.valueDeclaration;
reportError(ts.Diagnostics.Object_literal_may_only_specify_known_properties_and_0_does_not_exist_in_type_1, symbolToString(prop), typeToString(target));
}
@@ -16066,7 +16329,7 @@ var ts;
var id = relation !== identityRelation || source.id < target.id ? source.id + "," + target.id : target.id + "," + source.id;
var related = relation[id];
if (related !== undefined) {
- if (elaborateErrors && related === 2) {
+ if (reportErrors && related === 2) {
relation[id] = 3;
}
else {
@@ -16260,7 +16523,7 @@ var ts;
shouldElaborateErrors = false;
}
}
- if (shouldElaborateErrors && !isPrimitiveApparentType(source)) {
+ if (shouldElaborateErrors) {
reportError(ts.Diagnostics.Type_0_provides_no_match_for_the_signature_1, typeToString(source), signatureToString(t, undefined, undefined, kind));
}
return 0;
@@ -16269,65 +16532,7 @@ var ts;
return result;
}
function signatureRelatedTo(source, target, reportErrors) {
- if (source === target) {
- return -1;
- }
- if (!target.hasRestParameter && source.minArgumentCount > target.parameters.length) {
- return 0;
- }
- var sourceMax = source.parameters.length;
- var targetMax = target.parameters.length;
- var checkCount;
- if (source.hasRestParameter && target.hasRestParameter) {
- checkCount = sourceMax > targetMax ? sourceMax : targetMax;
- sourceMax--;
- targetMax--;
- }
- else if (source.hasRestParameter) {
- sourceMax--;
- checkCount = targetMax;
- }
- else if (target.hasRestParameter) {
- targetMax--;
- checkCount = sourceMax;
- }
- else {
- checkCount = sourceMax < targetMax ? sourceMax : targetMax;
- }
- source = getErasedSignature(source);
- target = getErasedSignature(target);
- var result = -1;
- for (var i = 0; i < checkCount; i++) {
- var s = i < sourceMax ? getTypeOfSymbol(source.parameters[i]) : getRestTypeOfSignature(source);
- var t = i < targetMax ? getTypeOfSymbol(target.parameters[i]) : getRestTypeOfSignature(target);
- var saveErrorInfo = errorInfo;
- var related = isRelatedTo(s, t, reportErrors);
- if (!related) {
- related = isRelatedTo(t, s, false);
- if (!related) {
- if (reportErrors) {
- reportError(ts.Diagnostics.Types_of_parameters_0_and_1_are_incompatible, source.parameters[i < sourceMax ? i : sourceMax].name, target.parameters[i < targetMax ? i : targetMax].name);
- }
- return 0;
- }
- errorInfo = saveErrorInfo;
- }
- result &= related;
- }
- var targetReturnType = getReturnTypeOfSignature(target);
- if (targetReturnType === voidType) {
- return result;
- }
- var sourceReturnType = getReturnTypeOfSignature(source);
- if (targetReturnType.flags & 134217728 && targetReturnType.predicate.kind === 1) {
- if (!(sourceReturnType.flags & 134217728)) {
- if (reportErrors) {
- reportError(ts.Diagnostics.Signature_0_must_have_a_type_predicate, signatureToString(source));
- }
- return 0;
- }
- }
- return result & isRelatedTo(sourceReturnType, targetReturnType, reportErrors);
+ return compareSignaturesRelated(source, target, false, reportErrors, reportError, isRelatedTo);
}
function signaturesIdenticalTo(source, target, kind) {
var sourceSignatures = getSignaturesOfType(source, kind);
@@ -16690,22 +16895,22 @@ var ts;
var typeAsString = typeToString(getWidenedType(type));
var diagnostic;
switch (declaration.kind) {
+ case 142:
case 141:
- case 140:
diagnostic = ts.Diagnostics.Member_0_implicitly_has_an_1_type;
break;
- case 138:
+ case 139:
diagnostic = declaration.dotDotDotToken ?
ts.Diagnostics.Rest_parameter_0_implicitly_has_an_any_type :
ts.Diagnostics.Parameter_0_implicitly_has_an_1_type;
break;
- case 215:
+ case 216:
+ case 144:
case 143:
- case 142:
- case 145:
case 146:
- case 175:
+ case 147:
case 176:
+ case 177:
if (!declaration.name) {
error(declaration, ts.Diagnostics.Function_expression_which_lacks_return_type_annotation_implicitly_has_an_0_return_type, typeAsString);
return;
@@ -16994,10 +17199,10 @@ var ts;
function isInTypeQuery(node) {
while (node) {
switch (node.kind) {
- case 154:
+ case 155:
return true;
case 69:
- case 135:
+ case 136:
node = node.parent;
continue;
default:
@@ -17038,55 +17243,55 @@ var ts;
}
function isAssignedIn(node) {
switch (node.kind) {
- case 183:
+ case 184:
return isAssignedInBinaryExpression(node);
- case 213:
- case 165:
- return isAssignedInVariableDeclaration(node);
- case 163:
- case 164:
+ case 214:
case 166:
+ return isAssignedInVariableDeclaration(node);
+ case 164:
+ case 165:
case 167:
case 168:
case 169:
case 170:
case 171:
- case 173:
- case 191:
+ case 172:
case 174:
- case 181:
- case 177:
- case 180:
- case 178:
- case 179:
+ case 192:
+ case 175:
case 182:
- case 186:
- case 184:
+ case 178:
+ case 181:
+ case 179:
+ case 180:
+ case 183:
case 187:
- case 194:
+ case 185:
+ case 188:
case 195:
- case 197:
+ case 196:
case 198:
case 199:
case 200:
case 201:
case 202:
case 203:
- case 206:
+ case 204:
case 207:
case 208:
- case 243:
- case 244:
case 209:
+ case 244:
+ case 245:
case 210:
case 211:
- case 246:
- case 235:
+ case 212:
+ case 247:
case 236:
- case 240:
- case 241:
case 237:
+ case 241:
case 242:
+ case 238:
+ case 243:
return ts.forEachChild(node, isAssignedIn);
}
return false;
@@ -17096,7 +17301,7 @@ var ts;
var type = getTypeOfSymbol(symbol);
if (node && symbol.flags & 3) {
if (isTypeAny(type) || type.flags & (80896 | 16384 | 512)) {
- var declaration = ts.getDeclarationOfKind(symbol, 213);
+ var declaration = ts.getDeclarationOfKind(symbol, 214);
var top_1 = declaration && getDeclarationContainer(declaration);
var originalType = type;
var nodeStack = [];
@@ -17104,13 +17309,13 @@ var ts;
var child = node;
node = node.parent;
switch (node.kind) {
- case 198:
+ case 199:
+ case 185:
case 184:
- case 183:
nodeStack.push({ node: node, child: child });
break;
- case 250:
- case 220:
+ case 251:
+ case 221:
break loop;
}
if (node === top_1) {
@@ -17121,17 +17326,17 @@ var ts;
while (nodes = nodeStack.pop()) {
var node_1 = nodes.node, child = nodes.child;
switch (node_1.kind) {
- case 198:
+ case 199:
if (child !== node_1.expression) {
type = narrowType(type, node_1.expression, child === node_1.thenStatement);
}
break;
- case 184:
+ case 185:
if (child !== node_1.condition) {
type = narrowType(type, node_1.condition, child === node_1.whenTrue);
}
break;
- case 183:
+ case 184:
if (child === node_1.right) {
if (node_1.operatorToken.kind === 51) {
type = narrowType(type, node_1.left, true);
@@ -17155,7 +17360,7 @@ var ts;
}
return type;
function narrowTypeByEquality(type, expr, assumeTrue) {
- if (expr.left.kind !== 178 || expr.right.kind !== 9) {
+ if (expr.left.kind !== 179 || expr.right.kind !== 9) {
return type;
}
var left = expr.left;
@@ -17170,9 +17375,6 @@ var ts;
if (typeInfo && typeInfo.type === undefinedType) {
return type;
}
- if (!!(type.flags & 1) && typeInfo && assumeTrue) {
- return typeInfo.type;
- }
var flags;
if (typeInfo) {
flags = typeInfo.flags;
@@ -17182,6 +17384,9 @@ var ts;
flags = 132 | 258 | 16777216 | 8;
}
if (!(type.flags & 16384)) {
+ if (assumeTrue && typeInfo && isTypeSubtypeOf(typeInfo.type, type)) {
+ return typeInfo.type;
+ }
return filterUnion(type) ? type : emptyUnionType;
}
return getUnionType(ts.filter(type.types, filterUnion), true);
@@ -17296,7 +17501,7 @@ var ts;
return narrowTypeByThisTypePredicate(type, memberType.predicate, expr, assumeTrue);
}
function narrowTypeByThisTypePredicate(type, predicate, expression, assumeTrue) {
- if (expression.kind === 169 || expression.kind === 168) {
+ if (expression.kind === 170 || expression.kind === 169) {
var accessExpression = expression;
var possibleIdentifier = skipParenthesizedNodes(accessExpression.expression);
if (possibleIdentifier.kind === 69 && getSymbolAtTypePredicatePosition(possibleIdentifier) === symbol) {
@@ -17309,18 +17514,18 @@ var ts;
expr = skipParenthesizedNodes(expr);
switch (expr.kind) {
case 69:
- case 168:
- case 135:
+ case 169:
+ case 136:
return getSymbolOfEntityNameOrPropertyAccessExpression(expr);
}
}
function narrowType(type, expr, assumeTrue) {
switch (expr.kind) {
- case 170:
+ case 171:
return narrowTypeByTypePredicate(type, expr, assumeTrue);
- case 174:
+ case 175:
return narrowType(type, expr.expression, assumeTrue);
- case 183:
+ case 184:
var operator = expr.operatorToken.kind;
if (operator === 32 || operator === 33) {
return narrowTypeByEquality(type, expr, assumeTrue);
@@ -17335,20 +17540,20 @@ var ts;
return narrowTypeByInstanceof(type, expr, assumeTrue);
}
break;
- case 181:
+ case 182:
if (expr.operator === 49) {
return narrowType(type, expr.operand, !assumeTrue);
}
break;
+ case 170:
case 169:
- case 168:
return narrowTypeByTypePredicateMember(type, expr, assumeTrue);
}
return type;
}
}
function skipParenthesizedNodes(expression) {
- while (expression.kind === 174) {
+ while (expression.kind === 175) {
expression = expression.expression;
}
return expression;
@@ -17357,7 +17562,7 @@ var ts;
var symbol = getResolvedSymbol(node);
if (symbol === argumentsSymbol) {
var container = ts.getContainingFunction(node);
- if (container.kind === 176) {
+ if (container.kind === 177) {
if (languageVersion < 2) {
error(node, ts.Diagnostics.The_arguments_object_cannot_be_referenced_in_an_arrow_function_in_ES3_and_ES5_Consider_using_a_standard_function_expression);
}
@@ -17388,7 +17593,7 @@ var ts;
function checkBlockScopedBindingCapturedInLoop(node, symbol) {
if (languageVersion >= 2 ||
(symbol.flags & (2 | 32)) === 0 ||
- symbol.valueDeclaration.parent.kind === 246) {
+ symbol.valueDeclaration.parent.kind === 247) {
return;
}
var container;
@@ -17397,11 +17602,11 @@ var ts;
}
else {
container = symbol.valueDeclaration;
- while (container.kind !== 214) {
+ while (container.kind !== 215) {
container = container.parent;
}
container = container.parent;
- if (container.kind === 195) {
+ if (container.kind === 196) {
container = container.parent;
}
}
@@ -17420,7 +17625,7 @@ var ts;
}
function captureLexicalThis(node, container) {
getNodeLinks(node).flags |= 2;
- if (container.kind === 141 || container.kind === 144) {
+ if (container.kind === 142 || container.kind === 145) {
var classNode = container.parent;
getNodeLinks(classNode).flags |= 4;
}
@@ -17431,29 +17636,29 @@ var ts;
function checkThisExpression(node) {
var container = ts.getThisContainer(node, true);
var needToCaptureLexicalThis = false;
- if (container.kind === 176) {
+ if (container.kind === 177) {
container = ts.getThisContainer(container, false);
needToCaptureLexicalThis = (languageVersion < 2);
}
switch (container.kind) {
- case 220:
+ case 221:
error(node, ts.Diagnostics.this_cannot_be_referenced_in_a_module_or_namespace_body);
break;
- case 219:
+ case 220:
error(node, ts.Diagnostics.this_cannot_be_referenced_in_current_location);
break;
- case 144:
+ case 145:
if (isInConstructorArgumentInitializer(node, container)) {
error(node, ts.Diagnostics.this_cannot_be_referenced_in_constructor_arguments);
}
break;
+ case 142:
case 141:
- case 140:
if (container.flags & 64) {
error(node, ts.Diagnostics.this_cannot_be_referenced_in_a_static_property_initializer);
}
break;
- case 136:
+ case 137:
error(node, ts.Diagnostics.this_cannot_be_referenced_in_a_computed_property_name);
break;
}
@@ -17464,7 +17669,7 @@ var ts;
var symbol = getSymbolOfNode(container.parent);
return container.flags & 64 ? getTypeOfSymbol(symbol) : getDeclaredTypeOfSymbol(symbol).thisType;
}
- if (ts.isInJavaScriptFile(node) && container.kind === 175) {
+ if (ts.isInJavaScriptFile(node) && container.kind === 176) {
if (ts.getSpecialPropertyAssignmentKind(container.parent) === 3) {
var className = container.parent
.left
@@ -17480,18 +17685,18 @@ var ts;
}
function isInConstructorArgumentInitializer(node, constructorDecl) {
for (var n = node; n && n !== constructorDecl; n = n.parent) {
- if (n.kind === 138) {
+ if (n.kind === 139) {
return true;
}
}
return false;
}
function checkSuperExpression(node) {
- var isCallExpression = node.parent.kind === 170 && node.parent.expression === node;
+ var isCallExpression = node.parent.kind === 171 && node.parent.expression === node;
var container = ts.getSuperContainer(node, true);
var needToCaptureLexicalThis = false;
if (!isCallExpression) {
- while (container && container.kind === 176) {
+ while (container && container.kind === 177) {
container = ts.getSuperContainer(container, true);
needToCaptureLexicalThis = languageVersion < 2;
}
@@ -17500,16 +17705,16 @@ var ts;
var nodeCheckFlag = 0;
if (!canUseSuperExpression) {
var current = node;
- while (current && current !== container && current.kind !== 136) {
+ while (current && current !== container && current.kind !== 137) {
current = current.parent;
}
- if (current && current.kind === 136) {
+ if (current && current.kind === 137) {
error(node, ts.Diagnostics.super_cannot_be_referenced_in_a_computed_property_name);
}
else if (isCallExpression) {
error(node, ts.Diagnostics.Super_calls_are_not_permitted_outside_constructors_or_in_nested_functions_inside_constructors);
}
- else if (!container || !container.parent || !(ts.isClassLike(container.parent) || container.parent.kind === 167)) {
+ else if (!container || !container.parent || !(ts.isClassLike(container.parent) || container.parent.kind === 168)) {
error(node, ts.Diagnostics.super_can_only_be_referenced_in_members_of_derived_classes_or_object_literal_expressions);
}
else {
@@ -17527,7 +17732,7 @@ var ts;
if (needToCaptureLexicalThis) {
captureLexicalThis(node.parent, container);
}
- if (container.parent.kind === 167) {
+ if (container.parent.kind === 168) {
if (languageVersion < 2) {
error(node, ts.Diagnostics.super_is_only_allowed_in_members_of_object_literal_expressions_when_option_target_is_ES2015_or_higher);
return unknownType;
@@ -17545,7 +17750,7 @@ var ts;
}
return unknownType;
}
- if (container.kind === 144 && isInConstructorArgumentInitializer(node, container)) {
+ if (container.kind === 145 && isInConstructorArgumentInitializer(node, container)) {
error(node, ts.Diagnostics.super_cannot_be_referenced_in_constructor_arguments);
return unknownType;
}
@@ -17557,24 +17762,24 @@ var ts;
return false;
}
if (isCallExpression) {
- return container.kind === 144;
+ return container.kind === 145;
}
else {
- if (ts.isClassLike(container.parent) || container.parent.kind === 167) {
+ if (ts.isClassLike(container.parent) || container.parent.kind === 168) {
if (container.flags & 64) {
- return container.kind === 143 ||
- container.kind === 142 ||
- container.kind === 145 ||
- container.kind === 146;
+ return container.kind === 144 ||
+ container.kind === 143 ||
+ container.kind === 146 ||
+ container.kind === 147;
}
else {
- return container.kind === 143 ||
- container.kind === 142 ||
- container.kind === 145 ||
+ return container.kind === 144 ||
+ container.kind === 143 ||
container.kind === 146 ||
+ container.kind === 147 ||
+ container.kind === 142 ||
container.kind === 141 ||
- container.kind === 140 ||
- container.kind === 144;
+ container.kind === 145;
}
}
}
@@ -17609,7 +17814,7 @@ var ts;
if (declaration.type) {
return getTypeFromTypeNode(declaration.type);
}
- if (declaration.kind === 138) {
+ if (declaration.kind === 139) {
var type = getContextuallyTypedParameterType(declaration);
if (type) {
return type;
@@ -17642,7 +17847,7 @@ var ts;
}
function isInParameterInitializerBeforeContainingFunction(node) {
while (node.parent && !ts.isFunctionLike(node.parent)) {
- if (node.parent.kind === 138 && node.parent.initializer === node) {
+ if (node.parent.kind === 139 && node.parent.initializer === node) {
return true;
}
node = node.parent;
@@ -17651,8 +17856,8 @@ var ts;
}
function getContextualReturnType(functionDecl) {
if (functionDecl.type ||
- functionDecl.kind === 144 ||
- functionDecl.kind === 145 && ts.getSetAccessorTypeAnnotationNode(ts.getDeclarationOfKind(functionDecl.symbol, 146))) {
+ functionDecl.kind === 145 ||
+ functionDecl.kind === 146 && ts.getSetAccessorTypeAnnotationNode(ts.getDeclarationOfKind(functionDecl.symbol, 147))) {
return getReturnTypeOfSignature(getSignatureFromDeclaration(functionDecl));
}
var signature = getContextualSignatureForFunctionLikeDeclaration(functionDecl);
@@ -17671,7 +17876,7 @@ var ts;
return undefined;
}
function getContextualTypeForSubstitutionExpression(template, substitutionExpression) {
- if (template.parent.kind === 172) {
+ if (template.parent.kind === 173) {
return getContextualTypeForArgument(template.parent, substitutionExpression);
}
return undefined;
@@ -17782,13 +17987,13 @@ var ts;
var kind = attribute.kind;
var jsxElement = attribute.parent;
var attrsType = getJsxElementAttributesType(jsxElement);
- if (attribute.kind === 240) {
+ if (attribute.kind === 241) {
if (!attrsType || isTypeAny(attrsType)) {
return undefined;
}
return getTypeOfPropertyOfType(attrsType, attribute.name.text);
}
- else if (attribute.kind === 241) {
+ else if (attribute.kind === 242) {
return attrsType;
}
ts.Debug.fail("Expected JsxAttribute or JsxSpreadAttribute, got ts.SyntaxKind[" + kind + "]");
@@ -17806,40 +18011,40 @@ var ts;
}
var parent = node.parent;
switch (parent.kind) {
- case 213:
- case 138:
+ case 214:
+ case 139:
+ case 142:
case 141:
- case 140:
- case 165:
- return getContextualTypeForInitializerExpression(node);
- case 176:
- case 206:
- return getContextualTypeForReturnExpression(node);
- case 186:
- return getContextualTypeForYieldOperand(parent);
- case 170:
- case 171:
- return getContextualTypeForArgument(parent, node);
- case 173:
- case 191:
- return getTypeFromTypeNode(parent.type);
- case 183:
- return getContextualTypeForBinaryOperand(node);
- case 247:
- return getContextualTypeForObjectLiteralElement(parent);
case 166:
- return getContextualTypeForElementExpression(node);
- case 184:
- return getContextualTypeForConditionalOperand(node);
- case 192:
- ts.Debug.assert(parent.parent.kind === 185);
- return getContextualTypeForSubstitutionExpression(parent.parent, node);
+ return getContextualTypeForInitializerExpression(node);
+ case 177:
+ case 207:
+ return getContextualTypeForReturnExpression(node);
+ case 187:
+ return getContextualTypeForYieldOperand(parent);
+ case 171:
+ case 172:
+ return getContextualTypeForArgument(parent, node);
case 174:
+ case 192:
+ return getTypeFromTypeNode(parent.type);
+ case 184:
+ return getContextualTypeForBinaryOperand(node);
+ case 248:
+ return getContextualTypeForObjectLiteralElement(parent);
+ case 167:
+ return getContextualTypeForElementExpression(node);
+ case 185:
+ return getContextualTypeForConditionalOperand(node);
+ case 193:
+ ts.Debug.assert(parent.parent.kind === 186);
+ return getContextualTypeForSubstitutionExpression(parent.parent, node);
+ case 175:
return getContextualType(parent);
- case 242:
+ case 243:
return getContextualType(parent);
- case 240:
case 241:
+ case 242:
return getContextualTypeForJsxAttribute(parent);
}
return undefined;
@@ -17854,7 +18059,7 @@ var ts;
}
}
function isFunctionExpressionOrArrowFunction(node) {
- return node.kind === 175 || node.kind === 176;
+ return node.kind === 176 || node.kind === 177;
}
function getContextualSignatureForFunctionLikeDeclaration(node) {
return isFunctionExpressionOrArrowFunction(node) || ts.isObjectLiteralMethod(node)
@@ -17862,7 +18067,7 @@ var ts;
: undefined;
}
function getContextualSignature(node) {
- ts.Debug.assert(node.kind !== 143 || ts.isObjectLiteralMethod(node));
+ ts.Debug.assert(node.kind !== 144 || ts.isObjectLiteralMethod(node));
var type = ts.isObjectLiteralMethod(node)
? getContextualTypeForObjectLiteralMethod(node)
: getApparentTypeOfContextualType(node);
@@ -17902,13 +18107,13 @@ var ts;
}
function isAssignmentTarget(node) {
var parent = node.parent;
- if (parent.kind === 183 && parent.operatorToken.kind === 56 && parent.left === node) {
+ if (parent.kind === 184 && parent.operatorToken.kind === 56 && parent.left === node) {
return true;
}
- if (parent.kind === 247) {
+ if (parent.kind === 248) {
return isAssignmentTarget(parent.parent);
}
- if (parent.kind === 166) {
+ if (parent.kind === 167) {
return isAssignmentTarget(parent);
}
return false;
@@ -17918,8 +18123,8 @@ var ts;
return checkIteratedTypeOrElementType(arrayOrIterableType, node.expression, false);
}
function hasDefaultValue(node) {
- return (node.kind === 165 && !!node.initializer) ||
- (node.kind === 183 && node.operatorToken.kind === 56);
+ return (node.kind === 166 && !!node.initializer) ||
+ (node.kind === 184 && node.operatorToken.kind === 56);
}
function checkArrayLiteral(node, contextualMapper) {
var elements = node.elements;
@@ -17928,7 +18133,7 @@ var ts;
var inDestructuringPattern = isAssignmentTarget(node);
for (var _i = 0, elements_1 = elements; _i < elements_1.length; _i++) {
var e = elements_1[_i];
- if (inDestructuringPattern && e.kind === 187) {
+ if (inDestructuringPattern && e.kind === 188) {
var restArrayType = checkExpression(e.expression, contextualMapper);
var restElementType = getIndexTypeOfType(restArrayType, 1) ||
(languageVersion >= 2 ? getElementTypeOfIterable(restArrayType, undefined) : undefined);
@@ -17940,7 +18145,7 @@ var ts;
var type = checkExpression(e, contextualMapper);
elementTypes.push(type);
}
- hasSpreadElement = hasSpreadElement || e.kind === 187;
+ hasSpreadElement = hasSpreadElement || e.kind === 188;
}
if (!hasSpreadElement) {
if (inDestructuringPattern && elementTypes.length) {
@@ -17951,7 +18156,7 @@ var ts;
var contextualType = getApparentTypeOfContextualType(node);
if (contextualType && contextualTypeIsTupleLikeType(contextualType)) {
var pattern = contextualType.pattern;
- if (pattern && (pattern.kind === 164 || pattern.kind === 166)) {
+ if (pattern && (pattern.kind === 165 || pattern.kind === 167)) {
var patternElements = pattern.elements;
for (var i = elementTypes.length; i < patternElements.length; i++) {
var patternElement = patternElements[i];
@@ -17959,7 +18164,7 @@ var ts;
elementTypes.push(contextualType.elementTypes[i]);
}
else {
- if (patternElement.kind !== 189) {
+ if (patternElement.kind !== 190) {
error(patternElement, ts.Diagnostics.Initializer_provides_no_value_for_this_binding_element_and_the_binding_element_has_no_default_value);
}
elementTypes.push(unknownType);
@@ -17974,7 +18179,7 @@ var ts;
return createArrayType(elementTypes.length ? getUnionType(elementTypes) : undefinedType);
}
function isNumericName(name) {
- return name.kind === 136 ? isNumericComputedName(name) : isNumericLiteralName(name.text);
+ return name.kind === 137 ? isNumericComputedName(name) : isNumericLiteralName(name.text);
}
function isNumericComputedName(name) {
return isTypeAnyOrAllConstituentTypesHaveKind(checkComputedPropertyName(name), 132);
@@ -18005,31 +18210,31 @@ var ts;
var propertiesArray = [];
var contextualType = getApparentTypeOfContextualType(node);
var contextualTypeHasPattern = contextualType && contextualType.pattern &&
- (contextualType.pattern.kind === 163 || contextualType.pattern.kind === 167);
+ (contextualType.pattern.kind === 164 || contextualType.pattern.kind === 168);
var typeFlags = 0;
var patternWithComputedProperties = false;
for (var _i = 0, _a = node.properties; _i < _a.length; _i++) {
var memberDecl = _a[_i];
var member = memberDecl.symbol;
- if (memberDecl.kind === 247 ||
- memberDecl.kind === 248 ||
+ if (memberDecl.kind === 248 ||
+ memberDecl.kind === 249 ||
ts.isObjectLiteralMethod(memberDecl)) {
var type = void 0;
- if (memberDecl.kind === 247) {
+ if (memberDecl.kind === 248) {
type = checkPropertyAssignment(memberDecl, contextualMapper);
}
- else if (memberDecl.kind === 143) {
+ else if (memberDecl.kind === 144) {
type = checkObjectLiteralMethod(memberDecl, contextualMapper);
}
else {
- ts.Debug.assert(memberDecl.kind === 248);
+ ts.Debug.assert(memberDecl.kind === 249);
type = checkExpression(memberDecl.name, contextualMapper);
}
typeFlags |= type.flags;
var prop = createSymbol(4 | 67108864 | member.flags, member.name);
if (inDestructuringPattern) {
- var isOptional = (memberDecl.kind === 247 && hasDefaultValue(memberDecl.initializer)) ||
- (memberDecl.kind === 248 && memberDecl.objectAssignmentInitializer);
+ var isOptional = (memberDecl.kind === 248 && hasDefaultValue(memberDecl.initializer)) ||
+ (memberDecl.kind === 249 && memberDecl.objectAssignmentInitializer);
if (isOptional) {
prop.flags |= 536870912;
}
@@ -18056,7 +18261,7 @@ var ts;
member = prop;
}
else {
- ts.Debug.assert(memberDecl.kind === 145 || memberDecl.kind === 146);
+ ts.Debug.assert(memberDecl.kind === 146 || memberDecl.kind === 147);
checkAccessorDeclaration(memberDecl);
}
if (!ts.hasDynamicName(memberDecl)) {
@@ -18114,13 +18319,13 @@ var ts;
for (var _i = 0, _a = node.children; _i < _a.length; _i++) {
var child = _a[_i];
switch (child.kind) {
- case 242:
+ case 243:
checkJsxExpression(child);
break;
- case 235:
+ case 236:
checkJsxElement(child);
break;
- case 236:
+ case 237:
checkJsxSelfClosingElement(child);
break;
}
@@ -18131,7 +18336,7 @@ var ts;
return name.indexOf("-") < 0;
}
function isJsxIntrinsicIdentifier(tagName) {
- if (tagName.kind === 135) {
+ if (tagName.kind === 136) {
return false;
}
else {
@@ -18225,6 +18430,7 @@ var ts;
if (compilerOptions.noImplicitAny) {
error(node, ts.Diagnostics.JSX_element_implicitly_has_type_any_because_no_interface_JSX_0_exists, JsxNames.IntrinsicElements);
}
+ return unknownSymbol;
}
}
function lookupClassTag(node) {
@@ -18295,17 +18501,21 @@ var ts;
var sym = getJsxElementTagSymbol(node);
if (links.jsxFlags & 4) {
var elemInstanceType = getJsxElementInstanceType(node);
- var callSignature = getSingleCallSignature(getTypeOfSymbol(sym));
- var callReturnType = callSignature && getReturnTypeOfSignature(callSignature);
- var paramType = callReturnType && (callSignature.parameters.length === 0 ? emptyObjectType : getTypeOfSymbol(callSignature.parameters[0]));
- if (callReturnType && isTypeAssignableTo(callReturnType, jsxElementType) && (paramType.flags & 80896)) {
- var intrinsicAttributes = getJsxType(JsxNames.IntrinsicAttributes);
- if (intrinsicAttributes !== unknownType) {
- paramType = intersectTypes(intrinsicAttributes, paramType);
- }
- return paramType;
- }
var elemClassType = getJsxGlobalElementClassType();
+ if (!elemClassType || !isTypeAssignableTo(elemInstanceType, elemClassType)) {
+ var elemType = getTypeOfSymbol(sym);
+ var callSignatures = elemType && getSignaturesOfType(elemType, 0);
+ var callSignature = callSignatures && callSignatures.length > 0 && callSignatures[0];
+ var callReturnType = callSignature && getReturnTypeOfSignature(callSignature);
+ var paramType = callReturnType && (callSignature.parameters.length === 0 ? emptyObjectType : getTypeOfSymbol(callSignature.parameters[0]));
+ if (callReturnType && isTypeAssignableTo(callReturnType, jsxElementType)) {
+ var intrinsicAttributes = getJsxType(JsxNames.IntrinsicAttributes);
+ if (intrinsicAttributes !== unknownType) {
+ paramType = intersectTypes(intrinsicAttributes, paramType);
+ }
+ return links.resolvedJsxType = paramType;
+ }
+ }
if (elemClassType) {
checkTypeRelatedTo(elemInstanceType, elemClassType, assignableRelation, node, ts.Diagnostics.JSX_element_type_0_is_not_a_constructor_function_for_JSX_elements);
}
@@ -18403,11 +18613,11 @@ var ts;
var nameTable = {};
var sawSpreadedAny = false;
for (var i = node.attributes.length - 1; i >= 0; i--) {
- if (node.attributes[i].kind === 240) {
+ if (node.attributes[i].kind === 241) {
checkJsxAttribute((node.attributes[i]), targetAttributesType, nameTable);
}
else {
- ts.Debug.assert(node.attributes[i].kind === 241);
+ ts.Debug.assert(node.attributes[i].kind === 242);
var spreadType = checkJsxSpreadAttribute((node.attributes[i]), targetAttributesType, nameTable);
if (isTypeAny(spreadType)) {
sawSpreadedAny = true;
@@ -18433,7 +18643,7 @@ var ts;
}
}
function getDeclarationKindFromSymbol(s) {
- return s.valueDeclaration ? s.valueDeclaration.kind : 141;
+ return s.valueDeclaration ? s.valueDeclaration.kind : 142;
}
function getDeclarationFlagsFromSymbol(s) {
return s.valueDeclaration ? ts.getCombinedNodeFlags(s.valueDeclaration) : s.flags & 134217728 ? 8 | 64 : 0;
@@ -18442,10 +18652,10 @@ var ts;
var flags = getDeclarationFlagsFromSymbol(prop);
var declaringClass = getDeclaredTypeOfSymbol(prop.parent);
if (left.kind === 95) {
- var errorNode = node.kind === 168 ?
+ var errorNode = node.kind === 169 ?
node.name :
node.right;
- if (languageVersion < 2 && getDeclarationKindFromSymbol(prop) !== 143) {
+ if (languageVersion < 2 && getDeclarationKindFromSymbol(prop) !== 144) {
error(errorNode, ts.Diagnostics.Only_public_and_protected_methods_of_the_base_class_are_accessible_via_the_super_keyword);
return false;
}
@@ -18514,7 +18724,7 @@ var ts;
return getTypeOfSymbol(prop);
}
function isValidPropertyAccess(node, propertyName) {
- var left = node.kind === 168
+ var left = node.kind === 169
? node.expression
: node.left;
var type = checkExpression(left);
@@ -18526,10 +18736,47 @@ var ts;
}
return true;
}
+ function getForInVariableSymbol(node) {
+ var initializer = node.initializer;
+ if (initializer.kind === 215) {
+ var variable = initializer.declarations[0];
+ if (variable && !ts.isBindingPattern(variable.name)) {
+ return getSymbolOfNode(variable);
+ }
+ }
+ else if (initializer.kind === 69) {
+ return getResolvedSymbol(initializer);
+ }
+ return undefined;
+ }
+ function hasNumericPropertyNames(type) {
+ return getIndexTypeOfType(type, 1) && !getIndexTypeOfType(type, 0);
+ }
+ function isForInVariableForNumericPropertyNames(expr) {
+ var e = skipParenthesizedNodes(expr);
+ if (e.kind === 69) {
+ var symbol = getResolvedSymbol(e);
+ if (symbol.flags & 3) {
+ var child = expr;
+ var node = expr.parent;
+ while (node) {
+ if (node.kind === 203 &&
+ child === node.statement &&
+ getForInVariableSymbol(node) === symbol &&
+ hasNumericPropertyNames(checkExpression(node.expression))) {
+ return true;
+ }
+ child = node;
+ node = node.parent;
+ }
+ }
+ }
+ return false;
+ }
function checkIndexedAccess(node) {
if (!node.argumentExpression) {
- var sourceFile = getSourceFile(node);
- if (node.parent.kind === 171 && node.parent.expression === node) {
+ var sourceFile = ts.getSourceFileOfNode(node);
+ if (node.parent.kind === 172 && node.parent.expression === node) {
var start = ts.skipTrivia(sourceFile.text, node.expression.end);
var end = node.end;
grammarErrorAtPos(sourceFile, start, end - start, ts.Diagnostics.new_T_cannot_be_used_to_create_an_array_Use_new_Array_T_instead);
@@ -18566,7 +18813,7 @@ var ts;
}
}
if (isTypeAnyOrAllConstituentTypesHaveKind(indexType, 258 | 132 | 16777216)) {
- if (isTypeAnyOrAllConstituentTypesHaveKind(indexType, 132)) {
+ if (isTypeAnyOrAllConstituentTypesHaveKind(indexType, 132) || isForInVariableForNumericPropertyNames(node.argumentExpression)) {
var numberIndexType = getIndexTypeOfType(objectType, 1);
if (numberIndexType) {
return numberIndexType;
@@ -18577,7 +18824,9 @@ var ts;
return stringIndexType;
}
if (compilerOptions.noImplicitAny && !compilerOptions.suppressImplicitAnyIndexErrors && !isTypeAny(objectType)) {
- error(node, ts.Diagnostics.Index_signature_of_object_type_implicitly_has_an_any_type);
+ error(node, getIndexTypeOfType(objectType, 1) ?
+ ts.Diagnostics.Element_implicitly_has_an_any_type_because_index_expression_is_not_of_type_number :
+ ts.Diagnostics.Index_signature_of_object_type_implicitly_has_an_any_type);
}
return anyType;
}
@@ -18588,7 +18837,7 @@ var ts;
if (indexArgumentExpression.kind === 9 || indexArgumentExpression.kind === 8) {
return indexArgumentExpression.text;
}
- if (indexArgumentExpression.kind === 169 || indexArgumentExpression.kind === 168) {
+ if (indexArgumentExpression.kind === 170 || indexArgumentExpression.kind === 169) {
var value = getConstantValue(indexArgumentExpression);
if (value !== undefined) {
return value.toString();
@@ -18631,10 +18880,10 @@ var ts;
return true;
}
function resolveUntypedCall(node) {
- if (node.kind === 172) {
+ if (node.kind === 173) {
checkExpression(node.template);
}
- else if (node.kind !== 139) {
+ else if (node.kind !== 140) {
ts.forEach(node.arguments, function (argument) {
checkExpression(argument);
});
@@ -18685,7 +18934,7 @@ var ts;
function getSpreadArgumentIndex(args) {
for (var i = 0; i < args.length; i++) {
var arg = args[i];
- if (arg && arg.kind === 187) {
+ if (arg && arg.kind === 188) {
return i;
}
}
@@ -18697,11 +18946,11 @@ var ts;
var callIsIncomplete;
var isDecorator;
var spreadArgIndex = -1;
- if (node.kind === 172) {
+ if (node.kind === 173) {
var tagExpression = node;
adjustedArgCount = args.length;
typeArguments = undefined;
- if (tagExpression.template.kind === 185) {
+ if (tagExpression.template.kind === 186) {
var templateExpression = tagExpression.template;
var lastSpan = ts.lastOrUndefined(templateExpression.templateSpans);
ts.Debug.assert(lastSpan !== undefined);
@@ -18713,7 +18962,7 @@ var ts;
callIsIncomplete = !!templateLiteral.isUnterminated;
}
}
- else if (node.kind === 139) {
+ else if (node.kind === 140) {
isDecorator = true;
typeArguments = undefined;
adjustedArgCount = getEffectiveArgumentCount(node, undefined, signature);
@@ -18721,7 +18970,7 @@ var ts;
else {
var callExpression = node;
if (!callExpression.arguments) {
- ts.Debug.assert(callExpression.kind === 171);
+ ts.Debug.assert(callExpression.kind === 172);
return signature.minArgumentCount === 0;
}
adjustedArgCount = callExpression.arguments.hasTrailingComma ? args.length + 1 : args.length;
@@ -18774,7 +19023,7 @@ var ts;
var argCount = getEffectiveArgumentCount(node, args, signature);
for (var i = 0; i < argCount; i++) {
var arg = getEffectiveArgument(node, args, i);
- if (arg === undefined || arg.kind !== 189) {
+ if (arg === undefined || arg.kind !== 190) {
var paramType = getTypeAtPosition(signature, i);
var argType = getEffectiveArgumentType(node, i, arg);
if (argType === undefined) {
@@ -18823,7 +19072,7 @@ var ts;
var argCount = getEffectiveArgumentCount(node, args, signature);
for (var i = 0; i < argCount; i++) {
var arg = getEffectiveArgument(node, args, i);
- if (arg === undefined || arg.kind !== 189) {
+ if (arg === undefined || arg.kind !== 190) {
var paramType = getTypeAtPosition(signature, i);
var argType = getEffectiveArgumentType(node, i, arg);
if (argType === undefined) {
@@ -18842,16 +19091,16 @@ var ts;
}
function getEffectiveCallArguments(node) {
var args;
- if (node.kind === 172) {
+ if (node.kind === 173) {
var template = node.template;
args = [undefined];
- if (template.kind === 185) {
+ if (template.kind === 186) {
ts.forEach(template.templateSpans, function (span) {
args.push(span.expression);
});
}
}
- else if (node.kind === 139) {
+ else if (node.kind === 140) {
return undefined;
}
else {
@@ -18860,21 +19109,21 @@ var ts;
return args;
}
function getEffectiveArgumentCount(node, args, signature) {
- if (node.kind === 139) {
+ if (node.kind === 140) {
switch (node.parent.kind) {
- case 216:
- case 188:
+ case 217:
+ case 189:
return 1;
- case 141:
+ case 142:
return 2;
- case 143:
- case 145:
+ case 144:
case 146:
+ case 147:
if (languageVersion === 0) {
return 2;
}
return signature.parameters.length >= 3 ? 3 : 2;
- case 138:
+ case 139:
return 3;
}
}
@@ -18883,48 +19132,48 @@ var ts;
}
}
function getEffectiveDecoratorFirstArgumentType(node) {
- if (node.kind === 216) {
+ if (node.kind === 217) {
var classSymbol = getSymbolOfNode(node);
return getTypeOfSymbol(classSymbol);
}
- if (node.kind === 138) {
+ if (node.kind === 139) {
node = node.parent;
- if (node.kind === 144) {
+ if (node.kind === 145) {
var classSymbol = getSymbolOfNode(node);
return getTypeOfSymbol(classSymbol);
}
}
- if (node.kind === 141 ||
- node.kind === 143 ||
- node.kind === 145 ||
- node.kind === 146) {
+ if (node.kind === 142 ||
+ node.kind === 144 ||
+ node.kind === 146 ||
+ node.kind === 147) {
return getParentTypeOfClassElement(node);
}
ts.Debug.fail("Unsupported decorator target.");
return unknownType;
}
function getEffectiveDecoratorSecondArgumentType(node) {
- if (node.kind === 216) {
+ if (node.kind === 217) {
ts.Debug.fail("Class decorators should not have a second synthetic argument.");
return unknownType;
}
- if (node.kind === 138) {
+ if (node.kind === 139) {
node = node.parent;
- if (node.kind === 144) {
+ if (node.kind === 145) {
return anyType;
}
}
- if (node.kind === 141 ||
- node.kind === 143 ||
- node.kind === 145 ||
- node.kind === 146) {
+ if (node.kind === 142 ||
+ node.kind === 144 ||
+ node.kind === 146 ||
+ node.kind === 147) {
var element = node;
switch (element.name.kind) {
case 69:
case 8:
case 9:
return getStringLiteralTypeForText(element.name.text);
- case 136:
+ case 137:
var nameType = checkComputedPropertyName(element.name);
if (allConstituentTypesHaveKind(nameType, 16777216)) {
return nameType;
@@ -18941,20 +19190,20 @@ var ts;
return unknownType;
}
function getEffectiveDecoratorThirdArgumentType(node) {
- if (node.kind === 216) {
+ if (node.kind === 217) {
ts.Debug.fail("Class decorators should not have a third synthetic argument.");
return unknownType;
}
- if (node.kind === 138) {
+ if (node.kind === 139) {
return numberType;
}
- if (node.kind === 141) {
+ if (node.kind === 142) {
ts.Debug.fail("Property decorators should not have a third synthetic argument.");
return unknownType;
}
- if (node.kind === 143 ||
- node.kind === 145 ||
- node.kind === 146) {
+ if (node.kind === 144 ||
+ node.kind === 146 ||
+ node.kind === 147) {
var propertyType = getTypeOfNode(node);
return createTypedPropertyDescriptorType(propertyType);
}
@@ -18975,26 +19224,26 @@ var ts;
return unknownType;
}
function getEffectiveArgumentType(node, argIndex, arg) {
- if (node.kind === 139) {
+ if (node.kind === 140) {
return getEffectiveDecoratorArgumentType(node, argIndex);
}
- else if (argIndex === 0 && node.kind === 172) {
+ else if (argIndex === 0 && node.kind === 173) {
return globalTemplateStringsArrayType;
}
return undefined;
}
function getEffectiveArgument(node, args, argIndex) {
- if (node.kind === 139 ||
- (argIndex === 0 && node.kind === 172)) {
+ if (node.kind === 140 ||
+ (argIndex === 0 && node.kind === 173)) {
return undefined;
}
return args[argIndex];
}
function getEffectiveArgumentErrorNode(node, argIndex, arg) {
- if (node.kind === 139) {
+ if (node.kind === 140) {
return node.expression;
}
- else if (argIndex === 0 && node.kind === 172) {
+ else if (argIndex === 0 && node.kind === 173) {
return node.template;
}
else {
@@ -19002,8 +19251,8 @@ var ts;
}
}
function resolveCall(node, signatures, candidatesOutArray, headMessage) {
- var isTaggedTemplate = node.kind === 172;
- var isDecorator = node.kind === 139;
+ var isTaggedTemplate = node.kind === 173;
+ var isDecorator = node.kind === 140;
var typeArguments;
if (!isTaggedTemplate && !isDecorator) {
typeArguments = node.typeArguments;
@@ -19235,16 +19484,16 @@ var ts;
}
function getDiagnosticHeadMessageForDecoratorResolution(node) {
switch (node.parent.kind) {
- case 216:
- case 188:
+ case 217:
+ case 189:
return ts.Diagnostics.Unable_to_resolve_signature_of_class_decorator_when_called_as_an_expression;
- case 138:
+ case 139:
return ts.Diagnostics.Unable_to_resolve_signature_of_parameter_decorator_when_called_as_an_expression;
- case 141:
+ case 142:
return ts.Diagnostics.Unable_to_resolve_signature_of_property_decorator_when_called_as_an_expression;
- case 143:
- case 145:
+ case 144:
case 146:
+ case 147:
return ts.Diagnostics.Unable_to_resolve_signature_of_method_decorator_when_called_as_an_expression;
}
}
@@ -19272,16 +19521,16 @@ var ts;
var links = getNodeLinks(node);
if (!links.resolvedSignature || candidatesOutArray) {
links.resolvedSignature = anySignature;
- if (node.kind === 170) {
+ if (node.kind === 171) {
links.resolvedSignature = resolveCallExpression(node, candidatesOutArray);
}
- else if (node.kind === 171) {
+ else if (node.kind === 172) {
links.resolvedSignature = resolveNewExpression(node, candidatesOutArray);
}
- else if (node.kind === 172) {
+ else if (node.kind === 173) {
links.resolvedSignature = resolveTaggedTemplateExpression(node, candidatesOutArray);
}
- else if (node.kind === 139) {
+ else if (node.kind === 140) {
links.resolvedSignature = resolveDecorator(node, candidatesOutArray);
}
else {
@@ -19303,12 +19552,12 @@ var ts;
if (node.expression.kind === 95) {
return voidType;
}
- if (node.kind === 171) {
+ if (node.kind === 172) {
var declaration = signature.declaration;
if (declaration &&
- declaration.kind !== 144 &&
- declaration.kind !== 148 &&
- declaration.kind !== 153) {
+ declaration.kind !== 145 &&
+ declaration.kind !== 149 &&
+ declaration.kind !== 154) {
var funcSymbol = checkExpression(node.expression).symbol;
if (funcSymbol && funcSymbol.members && (funcSymbol.flags & 16)) {
return getInferredClassType(funcSymbol);
@@ -19362,7 +19611,7 @@ var ts;
if (ts.isBindingPattern(node.name)) {
for (var _i = 0, _a = node.name.elements; _i < _a.length; _i++) {
var element = _a[_i];
- if (element.kind !== 189) {
+ if (element.kind !== 190) {
if (element.name.kind === 69) {
getSymbolLinks(getSymbolOfNode(element)).type = getTypeForBindingElement(element);
}
@@ -19396,7 +19645,7 @@ var ts;
}
var isAsync = ts.isAsyncFunctionLike(func);
var type;
- if (func.body.kind !== 194) {
+ if (func.body.kind !== 195) {
type = checkExpressionCached(func.body, contextualMapper);
if (isAsync) {
type = checkAwaitedType(type, func, ts.Diagnostics.Return_expression_in_async_function_does_not_have_a_valid_callable_then_member);
@@ -19501,7 +19750,7 @@ var ts;
if (returnType === voidType || isTypeAny(returnType)) {
return;
}
- if (ts.nodeIsMissing(func.body) || func.body.kind !== 194 || !(func.flags & 524288)) {
+ if (ts.nodeIsMissing(func.body) || func.body.kind !== 195 || !(func.flags & 524288)) {
return;
}
var hasExplicitReturn = func.flags & 1048576;
@@ -19521,18 +19770,14 @@ var ts;
}
}
function checkFunctionExpressionOrObjectLiteralMethod(node, contextualMapper) {
- ts.Debug.assert(node.kind !== 143 || ts.isObjectLiteralMethod(node));
+ ts.Debug.assert(node.kind !== 144 || ts.isObjectLiteralMethod(node));
var hasGrammarError = checkGrammarFunctionLikeDeclaration(node);
- if (!hasGrammarError && node.kind === 175) {
+ if (!hasGrammarError && node.kind === 176) {
checkGrammarForGenerator(node);
}
if (contextualMapper === identityMapper && isContextSensitive(node)) {
return anyFunctionType;
}
- var isAsync = ts.isAsyncFunctionLike(node);
- if (isAsync) {
- emitAwaiter = true;
- }
var links = getNodeLinks(node);
var type = getTypeOfSymbol(node.symbol);
var contextSensitive = isContextSensitive(node);
@@ -19560,18 +19805,15 @@ var ts;
}
}
}
- if (produceDiagnostics && node.kind !== 143 && node.kind !== 142) {
+ if (produceDiagnostics && node.kind !== 144 && node.kind !== 143) {
checkCollisionWithCapturedSuperVariable(node, node.name);
checkCollisionWithCapturedThisVariable(node, node.name);
}
return type;
}
function checkFunctionExpressionOrObjectLiteralMethodDeferred(node) {
- ts.Debug.assert(node.kind !== 143 || ts.isObjectLiteralMethod(node));
+ ts.Debug.assert(node.kind !== 144 || ts.isObjectLiteralMethod(node));
var isAsync = ts.isAsyncFunctionLike(node);
- if (isAsync) {
- emitAwaiter = true;
- }
var returnOrPromisedType = node.type && (isAsync ? checkAsyncFunctionReturnType(node) : getTypeFromTypeNode(node.type));
if (!node.asteriskToken) {
checkAllCodePathsInNonVoidFunctionReturnOrThrow(node, returnOrPromisedType);
@@ -19580,7 +19822,7 @@ var ts;
if (!node.type) {
getReturnTypeOfSignature(getSignatureFromDeclaration(node));
}
- if (node.body.kind === 194) {
+ if (node.body.kind === 195) {
checkSourceElement(node.body);
}
else {
@@ -19615,13 +19857,13 @@ var ts;
var symbol = findSymbol(n);
return !symbol || symbol === unknownSymbol || symbol === argumentsSymbol || (symbol.flags & 3) !== 0;
}
- case 168: {
+ case 169: {
var symbol = findSymbol(n);
return !symbol || symbol === unknownSymbol || (symbol.flags & ~8) !== 0;
}
- case 169:
+ case 170:
return true;
- case 174:
+ case 175:
return isReferenceOrErrorExpression(n.expression);
default:
return false;
@@ -19630,11 +19872,11 @@ var ts;
function isConstVariableReference(n) {
switch (n.kind) {
case 69:
- case 168: {
+ case 169: {
var symbol = findSymbol(n);
return symbol && (symbol.flags & 3) !== 0 && (getDeclarationFlagsFromSymbol(symbol) & 16384) !== 0;
}
- case 169: {
+ case 170: {
var index = n.argumentExpression;
var symbol = findSymbol(n.expression);
if (symbol && index && index.kind === 9) {
@@ -19644,7 +19886,7 @@ var ts;
}
return false;
}
- case 174:
+ case 175:
return isConstVariableReference(n.expression);
default:
return false;
@@ -19774,9 +20016,9 @@ var ts;
var properties = node.properties;
for (var _i = 0, properties_3 = properties; _i < properties_3.length; _i++) {
var p = properties_3[_i];
- if (p.kind === 247 || p.kind === 248) {
+ if (p.kind === 248 || p.kind === 249) {
var name_13 = p.name;
- if (name_13.kind === 136) {
+ if (name_13.kind === 137) {
checkComputedPropertyName(name_13);
}
if (isComputedNonLiteralName(name_13)) {
@@ -19789,7 +20031,7 @@ var ts;
isNumericLiteralName(text) && getIndexTypeOfType(sourceType, 1) ||
getIndexTypeOfType(sourceType, 0);
if (type) {
- if (p.kind === 248) {
+ if (p.kind === 249) {
checkDestructuringAssignment(p, type);
}
else {
@@ -19811,8 +20053,8 @@ var ts;
var elements = node.elements;
for (var i = 0; i < elements.length; i++) {
var e = elements[i];
- if (e.kind !== 189) {
- if (e.kind !== 187) {
+ if (e.kind !== 190) {
+ if (e.kind !== 188) {
var propName = "" + i;
var type = isTypeAny(sourceType)
? sourceType
@@ -19837,7 +20079,7 @@ var ts;
}
else {
var restExpression = e.expression;
- if (restExpression.kind === 183 && restExpression.operatorToken.kind === 56) {
+ if (restExpression.kind === 184 && restExpression.operatorToken.kind === 56) {
error(restExpression.operatorToken, ts.Diagnostics.A_rest_element_cannot_have_an_initializer);
}
else {
@@ -19851,7 +20093,7 @@ var ts;
}
function checkDestructuringAssignment(exprOrAssignment, sourceType, contextualMapper) {
var target;
- if (exprOrAssignment.kind === 248) {
+ if (exprOrAssignment.kind === 249) {
var prop = exprOrAssignment;
if (prop.objectAssignmentInitializer) {
checkBinaryLikeExpression(prop.name, prop.equalsToken, prop.objectAssignmentInitializer, contextualMapper);
@@ -19861,14 +20103,14 @@ var ts;
else {
target = exprOrAssignment;
}
- if (target.kind === 183 && target.operatorToken.kind === 56) {
+ if (target.kind === 184 && target.operatorToken.kind === 56) {
checkBinaryExpression(target, contextualMapper);
target = target.left;
}
- if (target.kind === 167) {
+ if (target.kind === 168) {
return checkObjectLiteralAssignment(target, sourceType, contextualMapper);
}
- if (target.kind === 166) {
+ if (target.kind === 167) {
return checkArrayLiteralAssignment(target, sourceType, contextualMapper);
}
return checkReferenceAssignment(target, sourceType, contextualMapper);
@@ -19885,7 +20127,7 @@ var ts;
}
function checkBinaryLikeExpression(left, operatorToken, right, contextualMapper, errorNode) {
var operator = operatorToken.kind;
- if (operator === 56 && (left.kind === 167 || left.kind === 166)) {
+ if (operator === 56 && (left.kind === 168 || left.kind === 167)) {
return checkDestructuringAssignment(left, checkExpression(right, contextualMapper), contextualMapper);
}
var leftType = checkExpression(left, contextualMapper);
@@ -20109,14 +20351,14 @@ var ts;
return links.resolvedType;
}
function checkPropertyAssignment(node, contextualMapper) {
- if (node.name.kind === 136) {
+ if (node.name.kind === 137) {
checkComputedPropertyName(node.name);
}
return checkExpression(node.initializer, contextualMapper);
}
function checkObjectLiteralMethod(node, contextualMapper) {
checkGrammarMethod(node);
- if (node.name.kind === 136) {
+ if (node.name.kind === 137) {
checkComputedPropertyName(node.name);
}
var uninstantiatedType = checkFunctionExpressionOrObjectLiteralMethod(node, contextualMapper);
@@ -20139,7 +20381,7 @@ var ts;
}
function checkExpression(node, contextualMapper) {
var type;
- if (node.kind === 135) {
+ if (node.kind === 136) {
type = checkQualifiedName(node);
}
else {
@@ -20147,9 +20389,9 @@ var ts;
type = instantiateTypeWithSingleGenericCallSignature(node, uninstantiatedType, contextualMapper);
}
if (isConstEnumObjectType(type)) {
- var ok = (node.parent.kind === 168 && node.parent.expression === node) ||
- (node.parent.kind === 169 && node.parent.expression === node) ||
- ((node.kind === 69 || node.kind === 135) && isInRightSideOfImportOrExportAssignment(node));
+ var ok = (node.parent.kind === 169 && node.parent.expression === node) ||
+ (node.parent.kind === 170 && node.parent.expression === node) ||
+ ((node.kind === 69 || node.kind === 136) && isInRightSideOfImportOrExportAssignment(node));
if (!ok) {
error(node, ts.Diagnostics.const_enums_can_only_be_used_in_property_or_index_access_expressions_or_the_right_hand_side_of_an_import_declaration_or_export_assignment);
}
@@ -20175,7 +20417,7 @@ var ts;
return booleanType;
case 8:
return checkNumericLiteral(node);
- case 185:
+ case 186:
return checkTemplateExpression(node);
case 9:
return checkStringLiteralExpression(node);
@@ -20183,58 +20425,58 @@ var ts;
return stringType;
case 10:
return globalRegExpType;
- case 166:
- return checkArrayLiteral(node, contextualMapper);
case 167:
- return checkObjectLiteral(node, contextualMapper);
+ return checkArrayLiteral(node, contextualMapper);
case 168:
- return checkPropertyAccessExpression(node);
+ return checkObjectLiteral(node, contextualMapper);
case 169:
- return checkIndexedAccess(node);
+ return checkPropertyAccessExpression(node);
case 170:
+ return checkIndexedAccess(node);
case 171:
- return checkCallExpression(node);
case 172:
- return checkTaggedTemplateExpression(node);
- case 174:
- return checkExpression(node.expression, contextualMapper);
- case 188:
- return checkClassExpression(node);
- case 175:
- case 176:
- return checkFunctionExpressionOrObjectLiteralMethod(node, contextualMapper);
- case 178:
- return checkTypeOfExpression(node);
+ return checkCallExpression(node);
case 173:
- case 191:
- return checkAssertion(node);
- case 177:
- return checkDeleteExpression(node);
- case 179:
- return checkVoidExpression(node);
- case 180:
- return checkAwaitExpression(node);
- case 181:
- return checkPrefixUnaryExpression(node);
- case 182:
- return checkPostfixUnaryExpression(node);
- case 183:
- return checkBinaryExpression(node, contextualMapper);
- case 184:
- return checkConditionalExpression(node, contextualMapper);
- case 187:
- return checkSpreadElementExpression(node, contextualMapper);
+ return checkTaggedTemplateExpression(node);
+ case 175:
+ return checkExpression(node.expression, contextualMapper);
case 189:
+ return checkClassExpression(node);
+ case 176:
+ case 177:
+ return checkFunctionExpressionOrObjectLiteralMethod(node, contextualMapper);
+ case 179:
+ return checkTypeOfExpression(node);
+ case 174:
+ case 192:
+ return checkAssertion(node);
+ case 178:
+ return checkDeleteExpression(node);
+ case 180:
+ return checkVoidExpression(node);
+ case 181:
+ return checkAwaitExpression(node);
+ case 182:
+ return checkPrefixUnaryExpression(node);
+ case 183:
+ return checkPostfixUnaryExpression(node);
+ case 184:
+ return checkBinaryExpression(node, contextualMapper);
+ case 185:
+ return checkConditionalExpression(node, contextualMapper);
+ case 188:
+ return checkSpreadElementExpression(node, contextualMapper);
+ case 190:
return undefinedType;
- case 186:
+ case 187:
return checkYieldExpression(node);
- case 242:
+ case 243:
return checkJsxExpression(node);
- case 235:
- return checkJsxElement(node);
case 236:
- return checkJsxSelfClosingElement(node);
+ return checkJsxElement(node);
case 237:
+ return checkJsxSelfClosingElement(node);
+ case 238:
ts.Debug.fail("Shouldn't ever directly check a JsxOpeningElement");
}
return unknownType;
@@ -20255,7 +20497,7 @@ var ts;
var func = ts.getContainingFunction(node);
if (node.flags & 56) {
func = ts.getContainingFunction(node);
- if (!(func.kind === 144 && ts.nodeIsPresent(func.body))) {
+ if (!(func.kind === 145 && ts.nodeIsPresent(func.body))) {
error(node, ts.Diagnostics.A_parameter_property_is_only_allowed_in_a_constructor_implementation);
}
}
@@ -20270,9 +20512,9 @@ var ts;
if (!node.asteriskToken || !node.body) {
return false;
}
- return node.kind === 143 ||
- node.kind === 215 ||
- node.kind === 175;
+ return node.kind === 144 ||
+ node.kind === 216 ||
+ node.kind === 176;
}
function getTypePredicateParameterIndex(parameterList, parameter) {
if (parameterList) {
@@ -20286,104 +20528,97 @@ var ts;
}
return -1;
}
- function isInLegalParameterTypePredicatePosition(node) {
- switch (node.parent.kind) {
- case 176:
- case 147:
- case 215:
- case 175:
- case 152:
- case 143:
- case 142:
- return node === node.parent.type;
+ function checkTypePredicate(node) {
+ var parent = getTypePredicateParent(node);
+ if (!parent) {
+ return;
+ }
+ var returnType = getReturnTypeOfSignature(getSignatureFromDeclaration(parent));
+ if (!returnType || !(returnType.flags & 134217728)) {
+ return;
+ }
+ var parameterName = node.parameterName;
+ if (parameterName.kind === 162) {
+ getTypeFromThisTypeNode(parameterName);
+ }
+ else {
+ var typePredicate = returnType.predicate;
+ if (typePredicate.parameterIndex >= 0) {
+ if (parent.parameters[typePredicate.parameterIndex].dotDotDotToken) {
+ error(parameterName, ts.Diagnostics.A_type_predicate_cannot_reference_a_rest_parameter);
+ }
+ else {
+ checkTypeAssignableTo(typePredicate.type, getTypeOfNode(parent.parameters[typePredicate.parameterIndex]), node.type);
+ }
+ }
+ else if (parameterName) {
+ var hasReportedError = false;
+ for (var _i = 0, _a = parent.parameters; _i < _a.length; _i++) {
+ var name_14 = _a[_i].name;
+ if ((name_14.kind === 164 ||
+ name_14.kind === 165) &&
+ checkIfTypePredicateVariableIsDeclaredInBindingPattern(name_14, parameterName, typePredicate.parameterName)) {
+ hasReportedError = true;
+ break;
+ }
+ }
+ if (!hasReportedError) {
+ error(node.parameterName, ts.Diagnostics.Cannot_find_parameter_0, typePredicate.parameterName);
+ }
+ }
}
- return false;
}
- function isInLegalThisTypePredicatePosition(node) {
- if (isInLegalParameterTypePredicatePosition(node)) {
- return true;
- }
+ function getTypePredicateParent(node) {
switch (node.parent.kind) {
- case 141:
- case 140:
- case 145:
- return node === node.parent.type;
+ case 177:
+ case 148:
+ case 216:
+ case 176:
+ case 153:
+ case 144:
+ case 143:
+ var parent_6 = node.parent;
+ if (node === parent_6.type) {
+ return parent_6;
+ }
+ }
+ }
+ function checkIfTypePredicateVariableIsDeclaredInBindingPattern(pattern, predicateVariableNode, predicateVariableName) {
+ for (var _i = 0, _a = pattern.elements; _i < _a.length; _i++) {
+ var name_15 = _a[_i].name;
+ if (name_15.kind === 69 &&
+ name_15.text === predicateVariableName) {
+ error(predicateVariableNode, ts.Diagnostics.A_type_predicate_cannot_reference_element_0_in_a_binding_pattern, predicateVariableName);
+ return true;
+ }
+ else if (name_15.kind === 165 ||
+ name_15.kind === 164) {
+ if (checkIfTypePredicateVariableIsDeclaredInBindingPattern(name_15, predicateVariableNode, predicateVariableName)) {
+ return true;
+ }
+ }
}
- return false;
}
function checkSignatureDeclaration(node) {
- if (node.kind === 149) {
+ if (node.kind === 150) {
checkGrammarIndexSignature(node);
}
- else if (node.kind === 152 || node.kind === 215 || node.kind === 153 ||
- node.kind === 147 || node.kind === 144 ||
- node.kind === 148) {
+ else if (node.kind === 153 || node.kind === 216 || node.kind === 154 ||
+ node.kind === 148 || node.kind === 145 ||
+ node.kind === 149) {
checkGrammarFunctionLikeDeclaration(node);
}
checkTypeParameters(node.typeParameters);
ts.forEach(node.parameters, checkParameter);
- if (node.type) {
- if (node.type.kind === 150) {
- var returnType = getReturnTypeOfSignature(getSignatureFromDeclaration(node));
- if (!returnType || !(returnType.flags & 134217728)) {
- return;
- }
- var typePredicate = returnType.predicate;
- var typePredicateNode = node.type;
- checkSourceElement(typePredicateNode);
- if (ts.isIdentifierTypePredicate(typePredicate)) {
- if (typePredicate.parameterIndex >= 0) {
- if (node.parameters[typePredicate.parameterIndex].dotDotDotToken) {
- error(typePredicateNode.parameterName, ts.Diagnostics.A_type_predicate_cannot_reference_a_rest_parameter);
- }
- else {
- checkTypeAssignableTo(typePredicate.type, getTypeOfNode(node.parameters[typePredicate.parameterIndex]), typePredicateNode.type);
- }
- }
- else if (typePredicateNode.parameterName) {
- var hasReportedError = false;
- for (var _i = 0, _a = node.parameters; _i < _a.length; _i++) {
- var param = _a[_i];
- if (hasReportedError) {
- break;
- }
- if (param.name.kind === 163 ||
- param.name.kind === 164) {
- (function checkBindingPattern(pattern) {
- for (var _i = 0, _a = pattern.elements; _i < _a.length; _i++) {
- var element = _a[_i];
- if (element.name.kind === 69 &&
- element.name.text === typePredicate.parameterName) {
- error(typePredicateNode.parameterName, ts.Diagnostics.A_type_predicate_cannot_reference_element_0_in_a_binding_pattern, typePredicate.parameterName);
- hasReportedError = true;
- break;
- }
- else if (element.name.kind === 164 ||
- element.name.kind === 163) {
- checkBindingPattern(element.name);
- }
- }
- })(param.name);
- }
- }
- if (!hasReportedError) {
- error(typePredicateNode.parameterName, ts.Diagnostics.Cannot_find_parameter_0, typePredicate.parameterName);
- }
- }
- }
- }
- else {
- checkSourceElement(node.type);
- }
- }
+ checkSourceElement(node.type);
if (produceDiagnostics) {
checkCollisionWithArgumentsInGeneratedCode(node);
if (compilerOptions.noImplicitAny && !node.type) {
switch (node.kind) {
- case 148:
+ case 149:
error(node, ts.Diagnostics.Construct_signature_which_lacks_return_type_annotation_implicitly_has_an_any_return_type);
break;
- case 147:
+ case 148:
error(node, ts.Diagnostics.Call_signature_which_lacks_return_type_annotation_implicitly_has_an_any_return_type);
break;
}
@@ -20405,7 +20640,7 @@ var ts;
checkSpecializedSignatureDeclaration(node);
}
function checkTypeForDuplicateIndexSignatures(node) {
- if (node.kind === 217) {
+ if (node.kind === 218) {
var nodeSymbol = getSymbolOfNode(node);
if (nodeSymbol.declarations.length > 0 && nodeSymbol.declarations[0] !== node) {
return;
@@ -20468,7 +20703,7 @@ var ts;
return;
}
function isSuperCallExpression(n) {
- return n.kind === 170 && n.expression.kind === 95;
+ return n.kind === 171 && n.expression.kind === 95;
}
function containsSuperCallAsComputedPropertyName(n) {
return n.name && containsSuperCall(n.name);
@@ -20489,12 +20724,12 @@ var ts;
if (n.kind === 97) {
error(n, ts.Diagnostics.this_cannot_be_referenced_in_current_location);
}
- else if (n.kind !== 175 && n.kind !== 215) {
+ else if (n.kind !== 176 && n.kind !== 216) {
ts.forEachChild(n, markThisReferencesAsErrors);
}
}
function isInstancePropertyWithInitializer(n) {
- return n.kind === 141 &&
+ return n.kind === 142 &&
!(n.flags & 64) &&
!!n.initializer;
}
@@ -20514,7 +20749,7 @@ var ts;
var superCallStatement;
for (var _i = 0, statements_2 = statements; _i < statements_2.length; _i++) {
var statement = statements_2[_i];
- if (statement.kind === 197 && isSuperCallExpression(statement.expression)) {
+ if (statement.kind === 198 && isSuperCallExpression(statement.expression)) {
superCallStatement = statement;
break;
}
@@ -20540,7 +20775,7 @@ var ts;
checkGrammarFunctionLikeDeclaration(node) || checkGrammarAccessor(node) || checkGrammarComputedPropertyName(node.name);
checkDecorators(node);
checkSignatureDeclaration(node);
- if (node.kind === 145) {
+ if (node.kind === 146) {
if (!ts.isInAmbientContext(node) && ts.nodeIsPresent(node.body) && (node.flags & 524288)) {
if (node.flags & 1048576) {
if (compilerOptions.noImplicitReturns) {
@@ -20552,11 +20787,11 @@ var ts;
}
}
}
- if (node.name.kind === 136) {
+ if (node.name.kind === 137) {
checkComputedPropertyName(node.name);
}
if (!ts.hasDynamicName(node)) {
- var otherKind = node.kind === 145 ? 146 : 145;
+ var otherKind = node.kind === 146 ? 147 : 146;
var otherAccessor = ts.getDeclarationOfKind(node.symbol, otherKind);
if (otherAccessor) {
if (((node.flags & 56) !== (otherAccessor.flags & 56))) {
@@ -20573,7 +20808,7 @@ var ts;
}
getTypeOfAccessors(getSymbolOfNode(node));
}
- if (node.parent.kind !== 167) {
+ if (node.parent.kind !== 168) {
checkSourceElement(node.body);
}
else {
@@ -20655,9 +20890,9 @@ var ts;
return;
}
var signaturesToCheck;
- if (!signatureDeclarationNode.name && signatureDeclarationNode.parent && signatureDeclarationNode.parent.kind === 217) {
- ts.Debug.assert(signatureDeclarationNode.kind === 147 || signatureDeclarationNode.kind === 148);
- var signatureKind = signatureDeclarationNode.kind === 147 ? 0 : 1;
+ if (!signatureDeclarationNode.name && signatureDeclarationNode.parent && signatureDeclarationNode.parent.kind === 218) {
+ ts.Debug.assert(signatureDeclarationNode.kind === 148 || signatureDeclarationNode.kind === 149);
+ var signatureKind = signatureDeclarationNode.kind === 148 ? 0 : 1;
var containingSymbol = getSymbolOfNode(signatureDeclarationNode.parent);
var containingType = getDeclaredTypeOfSymbol(containingSymbol);
signaturesToCheck = getSignaturesOfType(containingType, signatureKind);
@@ -20675,9 +20910,9 @@ var ts;
}
function getEffectiveDeclarationFlags(n, flagsToCheck) {
var flags = ts.getCombinedNodeFlags(n);
- if (n.parent.kind !== 217 &&
- n.parent.kind !== 216 &&
- n.parent.kind !== 188 &&
+ if (n.parent.kind !== 218 &&
+ n.parent.kind !== 217 &&
+ n.parent.kind !== 189 &&
ts.isInAmbientContext(n)) {
if (!(flags & 4)) {
flags |= 2;
@@ -20754,7 +20989,7 @@ var ts;
if (subsequentNode.kind === node.kind) {
var errorNode_1 = subsequentNode.name || subsequentNode;
if (node.name && subsequentNode.name && node.name.text === subsequentNode.name.text) {
- var reportError = (node.kind === 143 || node.kind === 142) &&
+ var reportError = (node.kind === 144 || node.kind === 143) &&
(node.flags & 64) !== (subsequentNode.flags & 64);
if (reportError) {
var diagnostic = node.flags & 64 ? ts.Diagnostics.Function_overload_must_be_static : ts.Diagnostics.Function_overload_must_not_be_static;
@@ -20788,11 +21023,11 @@ var ts;
var current = declarations_4[_i];
var node = current;
var inAmbientContext = ts.isInAmbientContext(node);
- var inAmbientContextOrInterface = node.parent.kind === 217 || node.parent.kind === 155 || inAmbientContext;
+ var inAmbientContextOrInterface = node.parent.kind === 218 || node.parent.kind === 156 || inAmbientContext;
if (inAmbientContextOrInterface) {
previousDeclaration = undefined;
}
- if (node.kind === 215 || node.kind === 143 || node.kind === 142 || node.kind === 144) {
+ if (node.kind === 216 || node.kind === 144 || node.kind === 143 || node.kind === 145) {
var currentNodeFlags = getEffectiveDeclarationFlags(node, flagsToCheck);
someNodeFlags |= currentNodeFlags;
allNodeFlags &= currentNodeFlags;
@@ -20905,16 +21140,16 @@ var ts;
}
function getDeclarationSpaces(d) {
switch (d.kind) {
- case 217:
+ case 218:
return 2097152;
- case 220:
- return d.name.kind === 9 || ts.getModuleInstanceState(d) !== 0
+ case 221:
+ return ts.isAmbientModule(d) || ts.getModuleInstanceState(d) !== 0
? 4194304 | 1048576
: 4194304;
- case 216:
- case 219:
+ case 217:
+ case 220:
return 2097152 | 1048576;
- case 223:
+ case 224:
var result = 0;
var target = resolveAlias(getSymbolOfNode(d));
ts.forEach(target.declarations, function (d) { result |= getDeclarationSpaces(d); });
@@ -21045,22 +21280,22 @@ var ts;
var headMessage = getDiagnosticHeadMessageForDecoratorResolution(node);
var errorInfo;
switch (node.parent.kind) {
- case 216:
+ case 217:
var classSymbol = getSymbolOfNode(node.parent);
var classConstructorType = getTypeOfSymbol(classSymbol);
expectedReturnType = getUnionType([classConstructorType, voidType]);
break;
- case 138:
+ case 139:
expectedReturnType = voidType;
errorInfo = ts.chainDiagnosticMessages(errorInfo, ts.Diagnostics.The_return_type_of_a_parameter_decorator_function_must_be_either_void_or_any);
break;
- case 141:
+ case 142:
expectedReturnType = voidType;
errorInfo = ts.chainDiagnosticMessages(errorInfo, ts.Diagnostics.The_return_type_of_a_property_decorator_function_must_be_either_void_or_any);
break;
- case 143:
- case 145:
+ case 144:
case 146:
+ case 147:
var methodType = getTypeOfNode(node.parent);
var descriptorType = createTypedPropertyDescriptorType(methodType);
expectedReturnType = getUnionType([descriptorType, voidType]);
@@ -21069,9 +21304,9 @@ var ts;
checkTypeAssignableTo(returnType, expectedReturnType, node, headMessage, errorInfo);
}
function checkTypeNodeAsExpression(node) {
- if (node && node.kind === 151) {
+ if (node && node.kind === 152) {
var root = getFirstIdentifier(node.typeName);
- var meaning = root.parent.kind === 151 ? 793056 : 1536;
+ var meaning = root.parent.kind === 152 ? 793056 : 1536;
var rootSymbol = resolveName(root, root.text, meaning | 8388608, undefined, undefined);
if (rootSymbol && rootSymbol.flags & 8388608) {
var aliasTarget = resolveAlias(rootSymbol);
@@ -21105,28 +21340,24 @@ var ts;
}
if (compilerOptions.emitDecoratorMetadata) {
switch (node.kind) {
- case 216:
+ case 217:
var constructor = ts.getFirstConstructorWithBody(node);
if (constructor) {
checkParameterTypeAnnotationsAsExpressions(constructor);
}
break;
- case 143:
- case 145:
+ case 144:
case 146:
+ case 147:
checkParameterTypeAnnotationsAsExpressions(node);
checkReturnTypeAnnotationAsExpression(node);
break;
- case 141:
- case 138:
+ case 142:
+ case 139:
checkTypeAnnotationAsExpression(node);
break;
}
}
- emitDecorate = true;
- if (node.kind === 138) {
- emitParam = true;
- }
ts.forEach(node.decorators, checkDecorator);
}
function checkFunctionDeclaration(node) {
@@ -21141,16 +21372,13 @@ var ts;
checkDecorators(node);
checkSignatureDeclaration(node);
var isAsync = ts.isAsyncFunctionLike(node);
- if (isAsync) {
- emitAwaiter = true;
- }
- if (node.name && node.name.kind === 136) {
+ if (node.name && node.name.kind === 137) {
checkComputedPropertyName(node.name);
}
if (!ts.hasDynamicName(node)) {
var symbol = getSymbolOfNode(node);
var localSymbol = node.localSymbol || symbol;
- var firstDeclaration = ts.forEach(localSymbol.declarations, function (declaration) { return declaration.kind === node.kind && !ts.isSourceFileJavaScript(getSourceFile(declaration)) ?
+ var firstDeclaration = ts.forEach(localSymbol.declarations, function (declaration) { return declaration.kind === node.kind && !ts.isSourceFileJavaScript(ts.getSourceFileOfNode(declaration)) ?
declaration : undefined; });
if (node === firstDeclaration) {
checkFunctionOrConstructorSymbol(localSymbol);
@@ -21176,7 +21404,7 @@ var ts;
}
}
function checkBlock(node) {
- if (node.kind === 194) {
+ if (node.kind === 195) {
checkGrammarStatementInAmbientContext(node);
}
ts.forEach(node.statements, checkSourceElement);
@@ -21195,19 +21423,19 @@ var ts;
if (!(identifier && identifier.text === name)) {
return false;
}
- if (node.kind === 141 ||
- node.kind === 140 ||
+ if (node.kind === 142 ||
+ node.kind === 141 ||
+ node.kind === 144 ||
node.kind === 143 ||
- node.kind === 142 ||
- node.kind === 145 ||
- node.kind === 146) {
+ node.kind === 146 ||
+ node.kind === 147) {
return false;
}
if (ts.isInAmbientContext(node)) {
return false;
}
var root = ts.getRootDeclaration(node);
- if (root.kind === 138 && ts.nodeIsMissing(root.parent.body)) {
+ if (root.kind === 139 && ts.nodeIsMissing(root.parent.body)) {
return false;
}
return true;
@@ -21255,11 +21483,11 @@ var ts;
if (!needCollisionCheckForIdentifier(node, name, "require") && !needCollisionCheckForIdentifier(node, name, "exports")) {
return;
}
- if (node.kind === 220 && ts.getModuleInstanceState(node) !== 1) {
+ if (node.kind === 221 && ts.getModuleInstanceState(node) !== 1) {
return;
}
var parent = getDeclarationContainer(node);
- if (parent.kind === 250 && ts.isExternalOrCommonJsModule(parent)) {
+ if (parent.kind === 251 && ts.isExternalOrCommonJsModule(parent)) {
error(name, ts.Diagnostics.Duplicate_identifier_0_Compiler_reserves_name_1_in_top_level_scope_of_a_module, ts.declarationNameToString(name), ts.declarationNameToString(name));
}
}
@@ -21267,7 +21495,7 @@ var ts;
if ((ts.getCombinedNodeFlags(node) & 24576) !== 0 || ts.isParameterDeclaration(node)) {
return;
}
- if (node.kind === 213 && !node.initializer) {
+ if (node.kind === 214 && !node.initializer) {
return;
}
var symbol = getSymbolOfNode(node);
@@ -21277,25 +21505,25 @@ var ts;
localDeclarationSymbol !== symbol &&
localDeclarationSymbol.flags & 2) {
if (getDeclarationFlagsFromSymbol(localDeclarationSymbol) & 24576) {
- var varDeclList = ts.getAncestor(localDeclarationSymbol.valueDeclaration, 214);
- var container = varDeclList.parent.kind === 195 && varDeclList.parent.parent
+ var varDeclList = ts.getAncestor(localDeclarationSymbol.valueDeclaration, 215);
+ var container = varDeclList.parent.kind === 196 && varDeclList.parent.parent
? varDeclList.parent.parent
: undefined;
var namesShareScope = container &&
- (container.kind === 194 && ts.isFunctionLike(container.parent) ||
+ (container.kind === 195 && ts.isFunctionLike(container.parent) ||
+ container.kind === 222 ||
container.kind === 221 ||
- container.kind === 220 ||
- container.kind === 250);
+ container.kind === 251);
if (!namesShareScope) {
- var name_14 = symbolToString(localDeclarationSymbol);
- error(node, ts.Diagnostics.Cannot_initialize_outer_scoped_variable_0_in_the_same_scope_as_block_scoped_declaration_1, name_14, name_14);
+ var name_16 = symbolToString(localDeclarationSymbol);
+ error(node, ts.Diagnostics.Cannot_initialize_outer_scoped_variable_0_in_the_same_scope_as_block_scoped_declaration_1, name_16, name_16);
}
}
}
}
}
function checkParameterInitializer(node) {
- if (ts.getRootDeclaration(node).kind !== 138) {
+ if (ts.getRootDeclaration(node).kind !== 139) {
return;
}
var func = ts.getContainingFunction(node);
@@ -21304,7 +21532,7 @@ var ts;
if (n.kind === 69) {
var referencedSymbol = getNodeLinks(n).resolvedSymbol;
if (referencedSymbol && referencedSymbol !== unknownSymbol && getSymbol(func.locals, referencedSymbol.name, 107455) === referencedSymbol) {
- if (referencedSymbol.valueDeclaration.kind === 138) {
+ if (referencedSymbol.valueDeclaration.kind === 139) {
if (referencedSymbol.valueDeclaration === node) {
error(n, ts.Diagnostics.Parameter_0_cannot_be_referenced_in_its_initializer, ts.declarationNameToString(node.name));
return;
@@ -21324,26 +21552,26 @@ var ts;
function checkVariableLikeDeclaration(node) {
checkDecorators(node);
checkSourceElement(node.type);
- if (node.name.kind === 136) {
+ if (node.name.kind === 137) {
checkComputedPropertyName(node.name);
if (node.initializer) {
checkExpressionCached(node.initializer);
}
}
- if (node.kind === 165) {
- if (node.propertyName && node.propertyName.kind === 136) {
+ if (node.kind === 166) {
+ if (node.propertyName && node.propertyName.kind === 137) {
checkComputedPropertyName(node.propertyName);
}
}
if (ts.isBindingPattern(node.name)) {
ts.forEach(node.name.elements, checkSourceElement);
}
- if (node.initializer && ts.getRootDeclaration(node).kind === 138 && ts.nodeIsMissing(ts.getContainingFunction(node).body)) {
+ if (node.initializer && ts.getRootDeclaration(node).kind === 139 && ts.nodeIsMissing(ts.getContainingFunction(node).body)) {
error(node, ts.Diagnostics.A_parameter_initializer_is_only_allowed_in_a_function_or_constructor_implementation);
return;
}
if (ts.isBindingPattern(node.name)) {
- if (node.initializer) {
+ if (node.initializer && node.parent.parent.kind !== 203) {
checkTypeAssignableTo(checkExpressionCached(node.initializer), getWidenedTypeForVariableLikeDeclaration(node), node, undefined);
checkParameterInitializer(node);
}
@@ -21352,7 +21580,7 @@ var ts;
var symbol = getSymbolOfNode(node);
var type = getTypeOfVariableOrParameterOrProperty(symbol);
if (node === symbol.valueDeclaration) {
- if (node.initializer) {
+ if (node.initializer && node.parent.parent.kind !== 203) {
checkTypeAssignableTo(checkExpressionCached(node.initializer), type, node, undefined);
checkParameterInitializer(node);
}
@@ -21366,9 +21594,9 @@ var ts;
checkTypeAssignableTo(checkExpressionCached(node.initializer), declarationType, node, undefined);
}
}
- if (node.kind !== 141 && node.kind !== 140) {
+ if (node.kind !== 142 && node.kind !== 141) {
checkExportsOnMergedDeclarations(node);
- if (node.kind === 213 || node.kind === 165) {
+ if (node.kind === 214 || node.kind === 166) {
checkVarDeclaredNamesNotShadowed(node);
}
checkCollisionWithCapturedSuperVariable(node, node.name);
@@ -21389,7 +21617,7 @@ var ts;
ts.forEach(node.declarationList.declarations, checkSourceElement);
}
function checkGrammarDisallowedModifiersOnObjectLiteralExpressionMethod(node) {
- if (node.modifiers && node.parent.kind === 167) {
+ if (node.modifiers && node.parent.kind === 168) {
if (ts.isAsyncFunctionLike(node)) {
if (node.modifiers.length > 1) {
return grammarErrorOnFirstToken(node, ts.Diagnostics.Modifiers_cannot_appear_here);
@@ -21408,7 +21636,7 @@ var ts;
checkGrammarStatementInAmbientContext(node);
checkExpression(node.expression);
checkSourceElement(node.thenStatement);
- if (node.thenStatement.kind === 196) {
+ if (node.thenStatement.kind === 197) {
error(node.thenStatement, ts.Diagnostics.The_body_of_an_if_statement_cannot_be_the_empty_statement);
}
checkSourceElement(node.elseStatement);
@@ -21425,12 +21653,12 @@ var ts;
}
function checkForStatement(node) {
if (!checkGrammarStatementInAmbientContext(node)) {
- if (node.initializer && node.initializer.kind === 214) {
+ if (node.initializer && node.initializer.kind === 215) {
checkGrammarVariableDeclarationList(node.initializer);
}
}
if (node.initializer) {
- if (node.initializer.kind === 214) {
+ if (node.initializer.kind === 215) {
ts.forEach(node.initializer.declarations, checkVariableDeclaration);
}
else {
@@ -21445,13 +21673,13 @@ var ts;
}
function checkForOfStatement(node) {
checkGrammarForInOrForOfStatement(node);
- if (node.initializer.kind === 214) {
+ if (node.initializer.kind === 215) {
checkForInOrForOfVariableDeclaration(node);
}
else {
var varExpr = node.initializer;
var iteratedType = checkRightHandSideOfForOf(node.expression);
- if (varExpr.kind === 166 || varExpr.kind === 167) {
+ if (varExpr.kind === 167 || varExpr.kind === 168) {
checkDestructuringAssignment(varExpr, iteratedType || unknownType);
}
else {
@@ -21466,7 +21694,7 @@ var ts;
}
function checkForInStatement(node) {
checkGrammarForInOrForOfStatement(node);
- if (node.initializer.kind === 214) {
+ if (node.initializer.kind === 215) {
var variable = node.initializer.declarations[0];
if (variable && ts.isBindingPattern(variable.name)) {
error(variable.name, ts.Diagnostics.The_left_hand_side_of_a_for_in_statement_cannot_be_a_destructuring_pattern);
@@ -21476,7 +21704,7 @@ var ts;
else {
var varExpr = node.initializer;
var leftType = checkExpression(varExpr);
- if (varExpr.kind === 166 || varExpr.kind === 167) {
+ if (varExpr.kind === 167 || varExpr.kind === 168) {
error(varExpr, ts.Diagnostics.The_left_hand_side_of_a_for_in_statement_cannot_be_a_destructuring_pattern);
}
else if (!isTypeAnyOrAllConstituentTypesHaveKind(leftType, 258)) {
@@ -21644,7 +21872,7 @@ var ts;
checkGrammarStatementInAmbientContext(node) || checkGrammarBreakOrContinueStatement(node);
}
function isGetAccessorWithAnnotatatedSetAccessor(node) {
- return !!(node.kind === 145 && ts.getSetAccessorTypeAnnotationNode(ts.getDeclarationOfKind(node.symbol, 146)));
+ return !!(node.kind === 146 && ts.getSetAccessorTypeAnnotationNode(ts.getDeclarationOfKind(node.symbol, 147)));
}
function checkReturnStatement(node) {
if (!checkGrammarStatementInAmbientContext(node)) {
@@ -21662,10 +21890,10 @@ var ts;
if (func.asteriskToken) {
return;
}
- if (func.kind === 146) {
+ if (func.kind === 147) {
error(node.expression, ts.Diagnostics.Setters_cannot_return_a_value);
}
- else if (func.kind === 144) {
+ else if (func.kind === 145) {
if (!checkTypeAssignableTo(exprType, returnType, node.expression)) {
error(node.expression, ts.Diagnostics.Return_type_of_constructor_signature_must_be_assignable_to_the_instance_type_of_the_class);
}
@@ -21701,7 +21929,7 @@ var ts;
var expressionType = checkExpression(node.expression);
var expressionTypeIsStringLike = someConstituentTypeHasKind(expressionType, 258);
ts.forEach(node.caseBlock.clauses, function (clause) {
- if (clause.kind === 244 && !hasDuplicateDefaultClause) {
+ if (clause.kind === 245 && !hasDuplicateDefaultClause) {
if (firstDefaultClause === undefined) {
firstDefaultClause = clause;
}
@@ -21713,7 +21941,7 @@ var ts;
hasDuplicateDefaultClause = true;
}
}
- if (produceDiagnostics && clause.kind === 243) {
+ if (produceDiagnostics && clause.kind === 244) {
var caseClause = clause;
var caseType = checkExpression(caseClause.expression);
var expressionTypeIsAssignableToCaseType = (expressionTypeIsStringLike && someConstituentTypeHasKind(caseType, 258)) ||
@@ -21732,7 +21960,7 @@ var ts;
if (ts.isFunctionLike(current)) {
break;
}
- if (current.kind === 209 && current.label.text === node.label.text) {
+ if (current.kind === 210 && current.label.text === node.label.text) {
var sourceFile = ts.getSourceFileOfNode(node);
grammarErrorOnNode(node.label, ts.Diagnostics.Duplicate_label_0, ts.getTextOfNodeFromSourceText(sourceFile.text, node.label));
break;
@@ -21826,7 +22054,7 @@ var ts;
return;
}
var errorNode;
- if (prop.valueDeclaration.name.kind === 136 || prop.parent === containingType.symbol) {
+ if (prop.valueDeclaration.name.kind === 137 || prop.parent === containingType.symbol) {
errorNode = prop.valueDeclaration;
}
else if (indexDeclaration) {
@@ -21901,7 +22129,6 @@ var ts;
var staticType = getTypeOfSymbol(symbol);
var baseTypeNode = ts.getClassExtendsHeritageClauseElement(node);
if (baseTypeNode) {
- emitExtends = emitExtends || !ts.isInAmbientContext(node);
var baseTypes = getBaseTypes(type);
if (baseTypes.length && produceDiagnostics) {
var baseType = baseTypes[0];
@@ -21975,7 +22202,7 @@ var ts;
if (derived === base) {
var derivedClassDecl = getClassLikeDeclarationOfSymbol(type.symbol);
if (baseDeclarationFlags & 128 && (!derivedClassDecl || !(derivedClassDecl.flags & 128))) {
- if (derivedClassDecl.kind === 188) {
+ if (derivedClassDecl.kind === 189) {
error(derivedClassDecl, ts.Diagnostics.Non_abstract_class_expression_does_not_implement_inherited_abstract_member_0_from_class_1, symbolToString(baseProperty), typeToString(baseType));
}
else {
@@ -22019,7 +22246,7 @@ var ts;
}
}
function isAccessor(kind) {
- return kind === 145 || kind === 146;
+ return kind === 146 || kind === 147;
}
function areTypeParametersIdentical(list1, list2) {
if (!list1 && !list2) {
@@ -22085,7 +22312,7 @@ var ts;
checkTypeNameIsReserved(node.name, ts.Diagnostics.Interface_name_cannot_be_0);
checkExportsOnMergedDeclarations(node);
var symbol = getSymbolOfNode(node);
- var firstInterfaceDecl = ts.getDeclarationOfKind(symbol, 217);
+ var firstInterfaceDecl = ts.getDeclarationOfKind(symbol, 218);
if (symbol.declarations.length > 1) {
if (node !== firstInterfaceDecl && !areTypeParametersIdentical(firstInterfaceDecl.typeParameters, node.typeParameters)) {
error(node.name, ts.Diagnostics.All_declarations_of_an_interface_must_have_identical_type_parameters);
@@ -22183,7 +22410,7 @@ var ts;
return value;
function evalConstant(e) {
switch (e.kind) {
- case 181:
+ case 182:
var value_1 = evalConstant(e.operand);
if (value_1 === undefined) {
return undefined;
@@ -22194,7 +22421,7 @@ var ts;
case 50: return ~value_1;
}
return undefined;
- case 183:
+ case 184:
var left = evalConstant(e.left);
if (left === undefined) {
return undefined;
@@ -22219,11 +22446,11 @@ var ts;
return undefined;
case 8:
return +e.text;
- case 174:
+ case 175:
return evalConstant(e.expression);
case 69:
+ case 170:
case 169:
- case 168:
var member = initializer.parent;
var currentType = getTypeOfSymbol(getSymbolOfNode(member.parent));
var enumType_1;
@@ -22234,7 +22461,7 @@ var ts;
}
else {
var expression;
- if (e.kind === 169) {
+ if (e.kind === 170) {
if (e.argumentExpression === undefined ||
e.argumentExpression.kind !== 9) {
return undefined;
@@ -22251,7 +22478,7 @@ var ts;
if (current.kind === 69) {
break;
}
- else if (current.kind === 168) {
+ else if (current.kind === 169) {
current = current.expression;
}
else {
@@ -22310,7 +22537,7 @@ var ts;
}
var seenEnumMissingInitialInitializer = false;
ts.forEach(enumSymbol.declarations, function (declaration) {
- if (declaration.kind !== 219) {
+ if (declaration.kind !== 220) {
return false;
}
var enumDeclaration = declaration;
@@ -22333,8 +22560,8 @@ var ts;
var declarations = symbol.declarations;
for (var _i = 0, declarations_5 = declarations; _i < declarations_5.length; _i++) {
var declaration = declarations_5[_i];
- if ((declaration.kind === 216 ||
- (declaration.kind === 215 && ts.nodeIsPresent(declaration.body))) &&
+ if ((declaration.kind === 217 ||
+ (declaration.kind === 216 && ts.nodeIsPresent(declaration.body))) &&
!ts.isInAmbientContext(declaration)) {
return declaration;
}
@@ -22356,7 +22583,12 @@ var ts;
}
function checkModuleDeclaration(node) {
if (produceDiagnostics) {
- var isAmbientExternalModule = node.name.kind === 9;
+ var isGlobalAugmentation = ts.isGlobalScopeAugmentation(node);
+ var inAmbientContext = ts.isInAmbientContext(node);
+ if (isGlobalAugmentation && !inAmbientContext) {
+ error(node.name, ts.Diagnostics.Augmentations_for_the_global_scope_should_have_declare_modifier_unless_they_appear_in_already_ambient_context);
+ }
+ var isAmbientExternalModule = ts.isAmbientModule(node);
var contextErrorMessage = isAmbientExternalModule
? ts.Diagnostics.An_ambient_module_declaration_is_only_allowed_at_the_top_level_in_a_file
: ts.Diagnostics.A_namespace_declaration_is_only_allowed_in_a_namespace_or_module;
@@ -22364,7 +22596,7 @@ var ts;
return;
}
if (!checkGrammarDecorators(node) && !checkGrammarModifiers(node)) {
- if (!ts.isInAmbientContext(node) && node.name.kind === 9) {
+ if (!inAmbientContext && node.name.kind === 9) {
grammarErrorOnNode(node.name, ts.Diagnostics.Only_ambient_modules_can_use_quoted_names);
}
}
@@ -22374,7 +22606,7 @@ var ts;
var symbol = getSymbolOfNode(node);
if (symbol.flags & 512
&& symbol.declarations.length > 1
- && !ts.isInAmbientContext(node)
+ && !inAmbientContext
&& ts.isInstantiatedModule(node, compilerOptions.preserveConstEnums || compilerOptions.isolatedModules)) {
var firstNonAmbientClassOrFunc = getFirstNonAmbientClassOrFunctionDeclaration(symbol);
if (firstNonAmbientClassOrFunc) {
@@ -22385,29 +22617,102 @@ var ts;
error(node.name, ts.Diagnostics.A_namespace_declaration_cannot_be_located_prior_to_a_class_or_function_with_which_it_is_merged);
}
}
- var mergedClass = ts.getDeclarationOfKind(symbol, 216);
+ var mergedClass = ts.getDeclarationOfKind(symbol, 217);
if (mergedClass &&
inSameLexicalScope(node, mergedClass)) {
getNodeLinks(node).flags |= 32768;
}
}
if (isAmbientExternalModule) {
- if (!isGlobalSourceFile(node.parent)) {
- error(node.name, ts.Diagnostics.Ambient_modules_cannot_be_nested_in_other_modules_or_namespaces);
+ if (ts.isExternalModuleAugmentation(node)) {
+ var checkBody = isGlobalAugmentation || (getSymbolOfNode(node).flags & 33554432);
+ if (checkBody) {
+ for (var _i = 0, _a = node.body.statements; _i < _a.length; _i++) {
+ var statement = _a[_i];
+ checkModuleAugmentationElement(statement, isGlobalAugmentation);
+ }
+ }
}
- if (ts.isExternalModuleNameRelative(node.name.text)) {
- error(node.name, ts.Diagnostics.Ambient_module_declaration_cannot_specify_relative_module_name);
+ else if (isGlobalSourceFile(node.parent)) {
+ if (isGlobalAugmentation) {
+ error(node.name, ts.Diagnostics.Augmentations_for_the_global_scope_can_only_be_directly_nested_in_external_modules_or_ambient_module_declarations);
+ }
+ else if (ts.isExternalModuleNameRelative(node.name.text)) {
+ error(node.name, ts.Diagnostics.Ambient_module_declaration_cannot_specify_relative_module_name);
+ }
+ }
+ else {
+ if (isGlobalAugmentation) {
+ error(node.name, ts.Diagnostics.Augmentations_for_the_global_scope_can_only_be_directly_nested_in_external_modules_or_ambient_module_declarations);
+ }
+ else {
+ error(node.name, ts.Diagnostics.Ambient_modules_cannot_be_nested_in_other_modules_or_namespaces);
+ }
}
}
}
checkSourceElement(node.body);
}
+ function checkModuleAugmentationElement(node, isGlobalAugmentation) {
+ switch (node.kind) {
+ case 196:
+ for (var _i = 0, _a = node.declarationList.declarations; _i < _a.length; _i++) {
+ var decl = _a[_i];
+ checkModuleAugmentationElement(decl, isGlobalAugmentation);
+ }
+ break;
+ case 230:
+ case 231:
+ grammarErrorOnFirstToken(node, ts.Diagnostics.Exports_and_export_assignments_are_not_permitted_in_module_augmentations);
+ break;
+ case 224:
+ if (node.moduleReference.kind !== 9) {
+ error(node.name, ts.Diagnostics.Module_augmentation_cannot_introduce_new_names_in_the_top_level_scope);
+ break;
+ }
+ case 225:
+ grammarErrorOnFirstToken(node, ts.Diagnostics.Imports_are_not_permitted_in_module_augmentations_Consider_moving_them_to_the_enclosing_external_module);
+ break;
+ case 166:
+ case 214:
+ var name_17 = node.name;
+ if (ts.isBindingPattern(name_17)) {
+ for (var _b = 0, _c = name_17.elements; _b < _c.length; _b++) {
+ var el = _c[_b];
+ checkModuleAugmentationElement(el, isGlobalAugmentation);
+ }
+ break;
+ }
+ case 217:
+ case 220:
+ case 216:
+ case 218:
+ case 221:
+ case 219:
+ var symbol = getSymbolOfNode(node);
+ if (symbol) {
+ var reportError = !(symbol.flags & 33554432);
+ if (!reportError) {
+ if (isGlobalAugmentation) {
+ reportError = symbol.parent !== undefined;
+ }
+ else {
+ reportError = ts.isExternalModuleAugmentation(symbol.parent.valueDeclaration);
+ }
+ }
+ if (reportError) {
+ error(node, ts.Diagnostics.Module_augmentation_cannot_introduce_new_names_in_the_top_level_scope);
+ }
+ }
+ break;
+ }
+ }
function getFirstIdentifier(node) {
while (true) {
- if (node.kind === 135) {
+ if (node.kind === 136) {
node = node.left;
}
- else if (node.kind === 168) {
+ else if (node.kind === 169) {
node = node.expression;
}
else {
@@ -22423,16 +22728,18 @@ var ts;
error(moduleName, ts.Diagnostics.String_literal_expected);
return false;
}
- var inAmbientExternalModule = node.parent.kind === 221 && node.parent.parent.name.kind === 9;
- if (node.parent.kind !== 250 && !inAmbientExternalModule) {
- error(moduleName, node.kind === 230 ?
+ var inAmbientExternalModule = node.parent.kind === 222 && ts.isAmbientModule(node.parent.parent);
+ if (node.parent.kind !== 251 && !inAmbientExternalModule) {
+ error(moduleName, node.kind === 231 ?
ts.Diagnostics.Export_declarations_are_not_permitted_in_a_namespace :
ts.Diagnostics.Import_declarations_in_a_namespace_cannot_reference_a_module);
return false;
}
if (inAmbientExternalModule && ts.isExternalModuleNameRelative(moduleName.text)) {
- error(node, ts.Diagnostics.Import_or_export_declaration_in_an_ambient_module_declaration_cannot_reference_module_through_relative_module_name);
- return false;
+ if (!isTopLevelInExternalModuleAugmentation(node)) {
+ error(node, ts.Diagnostics.Import_or_export_declaration_in_an_ambient_module_declaration_cannot_reference_module_through_relative_module_name);
+ return false;
+ }
}
return true;
}
@@ -22444,7 +22751,7 @@ var ts;
(symbol.flags & 793056 ? 793056 : 0) |
(symbol.flags & 1536 ? 1536 : 0);
if (target.flags & excludedMeanings) {
- var message = node.kind === 232 ?
+ var message = node.kind === 233 ?
ts.Diagnostics.Export_declaration_conflicts_with_exported_declaration_of_0 :
ts.Diagnostics.Import_declaration_conflicts_with_local_declaration_of_0;
error(node, message, symbolToString(symbol));
@@ -22470,7 +22777,7 @@ var ts;
checkImportBinding(importClause);
}
if (importClause.namedBindings) {
- if (importClause.namedBindings.kind === 226) {
+ if (importClause.namedBindings.kind === 227) {
checkImportBinding(importClause.namedBindings);
}
else {
@@ -22521,8 +22828,8 @@ var ts;
if (!node.moduleSpecifier || checkExternalImportOrExportDeclaration(node)) {
if (node.exportClause) {
ts.forEach(node.exportClause.elements, checkExportSpecifier);
- var inAmbientExternalModule = node.parent.kind === 221 && node.parent.parent.name.kind === 9;
- if (node.parent.kind !== 250 && !inAmbientExternalModule) {
+ var inAmbientExternalModule = node.parent.kind === 222 && ts.isAmbientModule(node.parent.parent);
+ if (node.parent.kind !== 251 && !inAmbientExternalModule) {
error(node, ts.Diagnostics.Export_declarations_are_not_permitted_in_a_namespace);
}
}
@@ -22535,22 +22842,29 @@ var ts;
}
}
function checkGrammarModuleElementContext(node, errorMessage) {
- if (node.parent.kind !== 250 && node.parent.kind !== 221 && node.parent.kind !== 220) {
+ if (node.parent.kind !== 251 && node.parent.kind !== 222 && node.parent.kind !== 221) {
return grammarErrorOnFirstToken(node, errorMessage);
}
}
function checkExportSpecifier(node) {
checkAliasSymbol(node);
if (!node.parent.parent.moduleSpecifier) {
- markExportAsReferenced(node);
+ var exportedName = node.propertyName || node.name;
+ var symbol = resolveName(exportedName, exportedName.text, 107455 | 793056 | 1536 | 8388608, undefined, undefined);
+ if (symbol && isGlobalSourceFile(getDeclarationContainer(symbol.declarations[0]))) {
+ error(exportedName, ts.Diagnostics.Cannot_re_export_name_that_is_not_defined_in_the_module);
+ }
+ else {
+ markExportAsReferenced(node);
+ }
}
}
function checkExportAssignment(node) {
if (checkGrammarModuleElementContext(node, ts.Diagnostics.An_export_assignment_can_only_be_used_in_a_module)) {
return;
}
- var container = node.parent.kind === 250 ? node.parent : node.parent.parent;
- if (container.kind === 220 && container.name.kind === 69) {
+ var container = node.parent.kind === 251 ? node.parent : node.parent.parent;
+ if (container.kind === 221 && !ts.isAmbientModule(container)) {
error(node, ts.Diagnostics.An_export_assignment_cannot_be_used_in_a_namespace);
return;
}
@@ -22588,7 +22902,9 @@ var ts;
var exportEqualsSymbol = moduleSymbol.exports["export="];
if (exportEqualsSymbol && hasExportedMembers(moduleSymbol)) {
var declaration = getDeclarationOfAliasSymbol(exportEqualsSymbol) || exportEqualsSymbol.valueDeclaration;
- error(declaration, ts.Diagnostics.An_export_assignment_cannot_be_used_in_a_module_with_other_exported_elements);
+ if (!isTopLevelInExternalModuleAugmentation(declaration)) {
+ error(declaration, ts.Diagnostics.An_export_assignment_cannot_be_used_in_a_module_with_other_exported_elements);
+ }
}
var exports_2 = getExportsOfModule(moduleSymbol);
for (var id in exports_2) {
@@ -22609,21 +22925,7 @@ var ts;
links.exportsChecked = true;
}
function isNotOverload(declaration) {
- return declaration.kind !== 215 || !!declaration.body;
- }
- }
- function checkTypePredicate(node) {
- var parameterName = node.parameterName;
- if (parameterName.kind === 69 && !isInLegalParameterTypePredicatePosition(node)) {
- error(node, ts.Diagnostics.A_type_predicate_is_only_allowed_in_return_type_position_for_functions_and_methods);
- }
- else if (parameterName.kind === 161) {
- if (!isInLegalThisTypePredicatePosition(node)) {
- error(node, ts.Diagnostics.A_this_based_type_predicate_is_only_allowed_within_a_class_or_interface_s_members_get_accessors_or_return_type_positions_for_functions_and_methods);
- }
- else {
- getTypeFromThisTypeNode(parameterName);
- }
+ return declaration.kind !== 216 || !!declaration.body;
}
}
function checkSourceElement(node) {
@@ -22633,118 +22935,118 @@ var ts;
var kind = node.kind;
if (cancellationToken) {
switch (kind) {
- case 220:
- case 216:
+ case 221:
case 217:
- case 215:
+ case 218:
+ case 216:
cancellationToken.throwIfCancellationRequested();
}
}
switch (kind) {
- case 137:
- return checkTypeParameter(node);
case 138:
+ return checkTypeParameter(node);
+ case 139:
return checkParameter(node);
+ case 142:
case 141:
- case 140:
return checkPropertyDeclaration(node);
- case 152:
case 153:
- case 147:
+ case 154:
case 148:
- return checkSignatureDeclaration(node);
case 149:
return checkSignatureDeclaration(node);
- case 143:
- case 142:
- return checkMethodDeclaration(node);
- case 144:
- return checkConstructorDeclaration(node);
- case 145:
- case 146:
- return checkAccessorDeclaration(node);
- case 151:
- return checkTypeReferenceNode(node);
case 150:
+ return checkSignatureDeclaration(node);
+ case 144:
+ case 143:
+ return checkMethodDeclaration(node);
+ case 145:
+ return checkConstructorDeclaration(node);
+ case 146:
+ case 147:
+ return checkAccessorDeclaration(node);
+ case 152:
+ return checkTypeReferenceNode(node);
+ case 151:
return checkTypePredicate(node);
- case 154:
- return checkTypeQuery(node);
case 155:
- return checkTypeLiteral(node);
+ return checkTypeQuery(node);
case 156:
- return checkArrayType(node);
+ return checkTypeLiteral(node);
case 157:
- return checkTupleType(node);
+ return checkArrayType(node);
case 158:
+ return checkTupleType(node);
case 159:
- return checkUnionOrIntersectionType(node);
case 160:
+ return checkUnionOrIntersectionType(node);
+ case 161:
return checkSourceElement(node.type);
- case 215:
- return checkFunctionDeclaration(node);
- case 194:
- case 221:
- return checkBlock(node);
- case 195:
- return checkVariableStatement(node);
- case 197:
- return checkExpressionStatement(node);
- case 198:
- return checkIfStatement(node);
- case 199:
- return checkDoStatement(node);
- case 200:
- return checkWhileStatement(node);
- case 201:
- return checkForStatement(node);
- case 202:
- return checkForInStatement(node);
- case 203:
- return checkForOfStatement(node);
- case 204:
- case 205:
- return checkBreakOrContinueStatement(node);
- case 206:
- return checkReturnStatement(node);
- case 207:
- return checkWithStatement(node);
- case 208:
- return checkSwitchStatement(node);
- case 209:
- return checkLabeledStatement(node);
- case 210:
- return checkThrowStatement(node);
- case 211:
- return checkTryStatement(node);
- case 213:
- return checkVariableDeclaration(node);
- case 165:
- return checkBindingElement(node);
case 216:
- return checkClassDeclaration(node);
- case 217:
- return checkInterfaceDeclaration(node);
- case 218:
- return checkTypeAliasDeclaration(node);
- case 219:
- return checkEnumDeclaration(node);
- case 220:
- return checkModuleDeclaration(node);
- case 224:
- return checkImportDeclaration(node);
- case 223:
- return checkImportEqualsDeclaration(node);
- case 230:
- return checkExportDeclaration(node);
- case 229:
- return checkExportAssignment(node);
+ return checkFunctionDeclaration(node);
+ case 195:
+ case 222:
+ return checkBlock(node);
case 196:
- checkGrammarStatementInAmbientContext(node);
- return;
+ return checkVariableStatement(node);
+ case 198:
+ return checkExpressionStatement(node);
+ case 199:
+ return checkIfStatement(node);
+ case 200:
+ return checkDoStatement(node);
+ case 201:
+ return checkWhileStatement(node);
+ case 202:
+ return checkForStatement(node);
+ case 203:
+ return checkForInStatement(node);
+ case 204:
+ return checkForOfStatement(node);
+ case 205:
+ case 206:
+ return checkBreakOrContinueStatement(node);
+ case 207:
+ return checkReturnStatement(node);
+ case 208:
+ return checkWithStatement(node);
+ case 209:
+ return checkSwitchStatement(node);
+ case 210:
+ return checkLabeledStatement(node);
+ case 211:
+ return checkThrowStatement(node);
case 212:
+ return checkTryStatement(node);
+ case 214:
+ return checkVariableDeclaration(node);
+ case 166:
+ return checkBindingElement(node);
+ case 217:
+ return checkClassDeclaration(node);
+ case 218:
+ return checkInterfaceDeclaration(node);
+ case 219:
+ return checkTypeAliasDeclaration(node);
+ case 220:
+ return checkEnumDeclaration(node);
+ case 221:
+ return checkModuleDeclaration(node);
+ case 225:
+ return checkImportDeclaration(node);
+ case 224:
+ return checkImportEqualsDeclaration(node);
+ case 231:
+ return checkExportDeclaration(node);
+ case 230:
+ return checkExportAssignment(node);
+ case 197:
checkGrammarStatementInAmbientContext(node);
return;
- case 233:
+ case 213:
+ checkGrammarStatementInAmbientContext(node);
+ return;
+ case 234:
return checkMissingDeclaration(node);
}
}
@@ -22757,17 +23059,17 @@ var ts;
for (var _i = 0, deferredNodes_1 = deferredNodes; _i < deferredNodes_1.length; _i++) {
var node = deferredNodes_1[_i];
switch (node.kind) {
- case 175:
case 176:
+ case 177:
+ case 144:
case 143:
- case 142:
checkFunctionExpressionOrObjectLiteralMethodDeferred(node);
break;
- case 145:
case 146:
+ case 147:
checkAccessorDeferred(node);
break;
- case 188:
+ case 189:
checkClassExpressionDeferred(node);
break;
}
@@ -22787,10 +23089,6 @@ var ts;
}
}
checkGrammarSourceFile(node);
- emitExtends = false;
- emitDecorate = false;
- emitParam = false;
- emitAwaiter = false;
potentialThisCollisions.length = 0;
deferredNodes = [];
ts.forEach(node.statements, checkSourceElement);
@@ -22803,21 +23101,6 @@ var ts;
ts.forEach(potentialThisCollisions, checkIfThisIsCapturedInEnclosingScope);
potentialThisCollisions.length = 0;
}
- if (emitExtends) {
- links.flags |= 8;
- }
- if (emitDecorate) {
- links.flags |= 16;
- }
- if (emitParam) {
- links.flags |= 32;
- }
- if (emitAwaiter) {
- links.flags |= 64;
- }
- if (emitGenerator || (emitAwaiter && languageVersion < 2)) {
- links.flags |= 128;
- }
links.flags |= 1;
}
}
@@ -22851,7 +23134,7 @@ var ts;
function isInsideWithStatementBody(node) {
if (node) {
while (node.parent) {
- if (node.parent.kind === 207 && node.parent.statement === node) {
+ if (node.parent.kind === 208 && node.parent.statement === node) {
return true;
}
node = node.parent;
@@ -22873,28 +23156,28 @@ var ts;
copySymbols(location.locals, meaning);
}
switch (location.kind) {
- case 250:
+ case 251:
if (!ts.isExternalOrCommonJsModule(location)) {
break;
}
- case 220:
+ case 221:
copySymbols(getSymbolOfNode(location).exports, meaning & 8914931);
break;
- case 219:
+ case 220:
copySymbols(getSymbolOfNode(location).exports, meaning & 8);
break;
- case 188:
+ case 189:
var className = location.name;
if (className) {
copySymbol(location.symbol, meaning);
}
- case 216:
case 217:
+ case 218:
if (!(memberFlags & 64)) {
copySymbols(getSymbolOfNode(location).members, meaning & 793056);
}
break;
- case 175:
+ case 176:
var funcName = location.name;
if (funcName) {
copySymbol(location.symbol, meaning);
@@ -22933,36 +23216,36 @@ var ts;
}
function isTypeDeclaration(node) {
switch (node.kind) {
- case 137:
- case 216:
+ case 138:
case 217:
case 218:
case 219:
+ case 220:
return true;
}
}
function isTypeReferenceIdentifier(entityName) {
var node = entityName;
- while (node.parent && node.parent.kind === 135) {
+ while (node.parent && node.parent.kind === 136) {
node = node.parent;
}
- return node.parent && node.parent.kind === 151;
+ return node.parent && node.parent.kind === 152;
}
function isHeritageClauseElementIdentifier(entityName) {
var node = entityName;
- while (node.parent && node.parent.kind === 168) {
+ while (node.parent && node.parent.kind === 169) {
node = node.parent;
}
- return node.parent && node.parent.kind === 190;
+ return node.parent && node.parent.kind === 191;
}
function getLeftSideOfImportEqualsOrExportAssignment(nodeOnRightSide) {
- while (nodeOnRightSide.parent.kind === 135) {
+ while (nodeOnRightSide.parent.kind === 136) {
nodeOnRightSide = nodeOnRightSide.parent;
}
- if (nodeOnRightSide.parent.kind === 223) {
+ if (nodeOnRightSide.parent.kind === 224) {
return nodeOnRightSide.parent.moduleReference === nodeOnRightSide && nodeOnRightSide.parent;
}
- if (nodeOnRightSide.parent.kind === 229) {
+ if (nodeOnRightSide.parent.kind === 230) {
return nodeOnRightSide.parent.expression === nodeOnRightSide && nodeOnRightSide.parent;
}
return undefined;
@@ -22974,10 +23257,10 @@ var ts;
if (ts.isDeclarationName(entityName)) {
return getSymbolOfNode(entityName.parent);
}
- if (entityName.parent.kind === 229) {
+ if (entityName.parent.kind === 230) {
return resolveEntityName(entityName, 107455 | 793056 | 1536 | 8388608);
}
- if (entityName.kind !== 168) {
+ if (entityName.kind !== 169) {
if (isInRightSideOfImportOrExportAssignment(entityName)) {
return getSymbolOfPartOfRightHandSideOfImportEquals(entityName);
}
@@ -22987,7 +23270,7 @@ var ts;
}
if (isHeritageClauseElementIdentifier(entityName)) {
var meaning = 0;
- if (entityName.parent.kind === 190) {
+ if (entityName.parent.kind === 191) {
meaning = 793056;
if (ts.isExpressionWithTypeArgumentsInClassExtendsClause(entityName.parent)) {
meaning |= 107455;
@@ -22999,9 +23282,9 @@ var ts;
meaning |= 8388608;
return resolveEntityName(entityName, meaning);
}
- else if ((entityName.parent.kind === 237) ||
- (entityName.parent.kind === 236) ||
- (entityName.parent.kind === 239)) {
+ else if ((entityName.parent.kind === 238) ||
+ (entityName.parent.kind === 237) ||
+ (entityName.parent.kind === 240)) {
return getJsxElementTagSymbol(entityName.parent);
}
else if (ts.isExpression(entityName)) {
@@ -23012,14 +23295,14 @@ var ts;
var meaning = 107455 | 8388608;
return resolveEntityName(entityName, meaning);
}
- else if (entityName.kind === 168) {
+ else if (entityName.kind === 169) {
var symbol = getNodeLinks(entityName).resolvedSymbol;
if (!symbol) {
checkPropertyAccessExpression(entityName);
}
return getNodeLinks(entityName).resolvedSymbol;
}
- else if (entityName.kind === 135) {
+ else if (entityName.kind === 136) {
var symbol = getNodeLinks(entityName).resolvedSymbol;
if (!symbol) {
checkQualifiedName(entityName);
@@ -23028,14 +23311,14 @@ var ts;
}
}
else if (isTypeReferenceIdentifier(entityName)) {
- var meaning = entityName.parent.kind === 151 ? 793056 : 1536;
+ var meaning = entityName.parent.kind === 152 ? 793056 : 1536;
meaning |= 8388608;
return resolveEntityName(entityName, meaning);
}
- else if (entityName.parent.kind === 240) {
+ else if (entityName.parent.kind === 241) {
return getJsxAttributePropertySymbol(entityName.parent);
}
- if (entityName.parent.kind === 150) {
+ if (entityName.parent.kind === 151) {
return resolveEntityName(entityName, 1);
}
return undefined;
@@ -23049,12 +23332,12 @@ var ts;
}
if (node.kind === 69) {
if (isInRightSideOfImportOrExportAssignment(node)) {
- return node.parent.kind === 229
+ return node.parent.kind === 230
? getSymbolOfEntityNameOrPropertyAccessExpression(node)
: getSymbolOfPartOfRightHandSideOfImportEquals(node);
}
- else if (node.parent.kind === 165 &&
- node.parent.parent.kind === 163 &&
+ else if (node.parent.kind === 166 &&
+ node.parent.parent.kind === 164 &&
node === node.parent.propertyName) {
var typeOfPattern = getTypeOfNode(node.parent.parent);
var propertyDeclaration = typeOfPattern && getPropertyOfType(typeOfPattern, node.text);
@@ -23065,30 +23348,30 @@ var ts;
}
switch (node.kind) {
case 69:
- case 168:
- case 135:
+ case 169:
+ case 136:
return getSymbolOfEntityNameOrPropertyAccessExpression(node);
case 97:
case 95:
var type = ts.isExpression(node) ? checkExpression(node) : getTypeFromTypeNode(node);
return type.symbol;
- case 161:
+ case 162:
return getTypeFromTypeNode(node).symbol;
case 121:
var constructorDeclaration = node.parent;
- if (constructorDeclaration && constructorDeclaration.kind === 144) {
+ if (constructorDeclaration && constructorDeclaration.kind === 145) {
return constructorDeclaration.parent.symbol;
}
return undefined;
case 9:
if ((ts.isExternalModuleImportEqualsDeclaration(node.parent.parent) &&
ts.getExternalModuleImportEqualsDeclarationExpression(node.parent.parent) === node) ||
- ((node.parent.kind === 224 || node.parent.kind === 230) &&
+ ((node.parent.kind === 225 || node.parent.kind === 231) &&
node.parent.moduleSpecifier === node)) {
return resolveExternalModuleName(node, node);
}
case 8:
- if (node.parent.kind === 169 && node.parent.argumentExpression === node) {
+ if (node.parent.kind === 170 && node.parent.argumentExpression === node) {
var objectType = checkExpression(node.parent.expression);
if (objectType === unknownType)
return undefined;
@@ -23102,11 +23385,16 @@ var ts;
return undefined;
}
function getShorthandAssignmentValueSymbol(location) {
- if (location && location.kind === 248) {
- return resolveEntityName(location.name, 107455);
+ if (location && location.kind === 249) {
+ return resolveEntityName(location.name, 107455 | 8388608);
}
return undefined;
}
+ function getExportSpecifierLocalTargetSymbol(node) {
+ return node.parent.parent.moduleSpecifier ?
+ getExternalModuleMember(node.parent.parent, node) :
+ resolveEntityName(node.propertyName || node.name, 107455 | 793056 | 1536 | 8388608);
+ }
function getTypeOfNode(node) {
if (isInsideWithStatementBody(node)) {
return unknownType;
@@ -23173,9 +23461,9 @@ var ts;
function getRootSymbols(symbol) {
if (symbol.flags & 268435456) {
var symbols = [];
- var name_15 = symbol.name;
+ var name_18 = symbol.name;
ts.forEach(getSymbolLinks(symbol).containingType.types, function (t) {
- var symbol = getPropertyOfType(t, name_15);
+ var symbol = getPropertyOfType(t, name_18);
if (symbol) {
symbols.push(symbol);
}
@@ -23224,11 +23512,11 @@ var ts;
}
var parentSymbol = getParentOfSymbol(symbol);
if (parentSymbol) {
- if (parentSymbol.flags & 512 && parentSymbol.valueDeclaration.kind === 250) {
+ if (parentSymbol.flags & 512 && parentSymbol.valueDeclaration.kind === 251) {
return parentSymbol.valueDeclaration;
}
for (var n = node.parent; n; n = n.parent) {
- if ((n.kind === 220 || n.kind === 219) && getSymbolOfNode(n) === parentSymbol) {
+ if ((n.kind === 221 || n.kind === 220) && getSymbolOfNode(n) === parentSymbol) {
return n;
}
}
@@ -23241,11 +23529,11 @@ var ts;
}
function isStatementWithLocals(node) {
switch (node.kind) {
- case 194:
- case 222:
- case 201:
+ case 195:
+ case 223:
case 202:
case 203:
+ case 204:
return true;
}
return false;
@@ -23271,22 +23559,22 @@ var ts;
}
function isValueAliasDeclaration(node) {
switch (node.kind) {
- case 223:
- case 225:
+ case 224:
case 226:
- case 228:
- case 232:
+ case 227:
+ case 229:
+ case 233:
return isAliasResolvedToValue(getSymbolOfNode(node));
- case 230:
+ case 231:
var exportClause = node.exportClause;
return exportClause && ts.forEach(exportClause.elements, isValueAliasDeclaration);
- case 229:
+ case 230:
return node.expression && node.expression.kind === 69 ? isAliasResolvedToValue(getSymbolOfNode(node)) : true;
}
return false;
}
function isTopLevelValueImportEqualsWithEntityName(node) {
- if (node.parent.kind !== 250 || !ts.isInternalModuleImportEqualsDeclaration(node)) {
+ if (node.parent.kind !== 251 || !ts.isInternalModuleImportEqualsDeclaration(node)) {
return false;
}
var isValue = isAliasResolvedToValue(getSymbolOfNode(node));
@@ -23334,7 +23622,7 @@ var ts;
return getNodeLinks(node).enumMemberValue;
}
function getConstantValue(node) {
- if (node.kind === 249) {
+ if (node.kind === 250) {
return getEnumMemberValue(node);
}
var symbol = getNodeLinks(node).resolvedSymbol;
@@ -23450,21 +23738,34 @@ var ts;
}
function getExternalModuleFileFromDeclaration(declaration) {
var specifier = ts.getExternalModuleName(declaration);
- var moduleSymbol = getSymbolAtLocation(specifier);
+ var moduleSymbol = resolveExternalModuleNameWorker(specifier, specifier, undefined);
if (!moduleSymbol) {
return undefined;
}
- return ts.getDeclarationOfKind(moduleSymbol, 250);
+ return ts.getDeclarationOfKind(moduleSymbol, 251);
}
function initializeTypeChecker() {
ts.forEach(host.getSourceFiles(), function (file) {
ts.bindSourceFile(file, compilerOptions);
});
+ var augmentations;
ts.forEach(host.getSourceFiles(), function (file) {
if (!ts.isExternalOrCommonJsModule(file)) {
mergeSymbolTable(globals, file.locals);
}
+ if (file.moduleAugmentations) {
+ (augmentations || (augmentations = [])).push(file.moduleAugmentations);
+ }
});
+ if (augmentations) {
+ for (var _i = 0, augmentations_1 = augmentations; _i < augmentations_1.length; _i++) {
+ var list = augmentations_1[_i];
+ for (var _a = 0, list_2 = list; _a < list_2.length; _a++) {
+ var augmentation = list_2[_a];
+ mergeModuleAugmentation(augmentation);
+ }
+ }
+ }
addToSymbolTable(globals, builtinGlobals, ts.Diagnostics.Declaration_name_conflicts_with_built_in_global_identifier_0);
getSymbolLinks(undefinedSymbol).type = undefinedType;
getSymbolLinks(argumentsSymbol).type = getGlobalType("IArguments");
@@ -23529,14 +23830,14 @@ var ts;
return false;
}
if (!ts.nodeCanBeDecorated(node)) {
- if (node.kind === 143 && !ts.nodeIsPresent(node.body)) {
+ if (node.kind === 144 && !ts.nodeIsPresent(node.body)) {
return grammarErrorOnFirstToken(node, ts.Diagnostics.A_decorator_can_only_decorate_a_method_implementation_not_an_overload);
}
else {
return grammarErrorOnFirstToken(node, ts.Diagnostics.Decorators_are_not_valid_here);
}
}
- else if (node.kind === 145 || node.kind === 146) {
+ else if (node.kind === 146 || node.kind === 147) {
var accessors = ts.getAllAccessorDeclarations(node.parent.members, node);
if (accessors.firstAccessor.decorators && node === accessors.secondAccessor) {
return grammarErrorOnFirstToken(node, ts.Diagnostics.Decorators_cannot_be_applied_to_multiple_get_Slashset_accessors_of_the_same_name);
@@ -23546,38 +23847,38 @@ var ts;
}
function checkGrammarModifiers(node) {
switch (node.kind) {
- case 145:
case 146:
- case 144:
- case 141:
- case 140:
- case 143:
+ case 147:
+ case 145:
case 142:
- case 149:
- case 220:
+ case 141:
+ case 144:
+ case 143:
+ case 150:
+ case 221:
+ case 225:
case 224:
- case 223:
+ case 231:
case 230:
- case 229:
- case 138:
- break;
- case 215:
- if (node.modifiers && (node.modifiers.length > 1 || node.modifiers[0].kind !== 118) &&
- node.parent.kind !== 221 && node.parent.kind !== 250) {
- return grammarErrorOnFirstToken(node, ts.Diagnostics.Modifiers_cannot_appear_here);
- }
+ case 139:
break;
case 216:
- case 217:
- case 195:
- case 218:
- if (node.modifiers && node.parent.kind !== 221 && node.parent.kind !== 250) {
+ if (node.modifiers && (node.modifiers.length > 1 || node.modifiers[0].kind !== 118) &&
+ node.parent.kind !== 222 && node.parent.kind !== 251) {
return grammarErrorOnFirstToken(node, ts.Diagnostics.Modifiers_cannot_appear_here);
}
break;
+ case 217:
+ case 218:
+ case 196:
case 219:
+ if (node.modifiers && node.parent.kind !== 222 && node.parent.kind !== 251) {
+ return grammarErrorOnFirstToken(node, ts.Diagnostics.Modifiers_cannot_appear_here);
+ }
+ break;
+ case 220:
if (node.modifiers && (node.modifiers.length > 1 || node.modifiers[0].kind !== 74) &&
- node.parent.kind !== 221 && node.parent.kind !== 250) {
+ node.parent.kind !== 222 && node.parent.kind !== 251) {
return grammarErrorOnFirstToken(node, ts.Diagnostics.Modifiers_cannot_appear_here);
}
break;
@@ -23593,7 +23894,7 @@ var ts;
var modifier = _a[_i];
switch (modifier.kind) {
case 74:
- if (node.kind !== 219 && node.parent.kind === 216) {
+ if (node.kind !== 220 && node.parent.kind === 217) {
return grammarErrorOnNode(node, ts.Diagnostics.A_class_member_cannot_have_the_0_keyword, ts.tokenToString(74));
}
break;
@@ -23621,7 +23922,7 @@ var ts;
else if (flags & 256) {
return grammarErrorOnNode(modifier, ts.Diagnostics._0_modifier_must_precede_1_modifier, text, "async");
}
- else if (node.parent.kind === 221 || node.parent.kind === 250) {
+ else if (node.parent.kind === 222 || node.parent.kind === 251) {
return grammarErrorOnNode(modifier, ts.Diagnostics._0_modifier_cannot_appear_on_a_module_element, text);
}
else if (flags & 128) {
@@ -23641,10 +23942,10 @@ var ts;
else if (flags & 256) {
return grammarErrorOnNode(modifier, ts.Diagnostics._0_modifier_must_precede_1_modifier, "static", "async");
}
- else if (node.parent.kind === 221 || node.parent.kind === 250) {
+ else if (node.parent.kind === 222 || node.parent.kind === 251) {
return grammarErrorOnNode(modifier, ts.Diagnostics._0_modifier_cannot_appear_on_a_module_element, "static");
}
- else if (node.kind === 138) {
+ else if (node.kind === 139) {
return grammarErrorOnNode(modifier, ts.Diagnostics._0_modifier_cannot_appear_on_a_parameter, "static");
}
else if (flags & 128) {
@@ -23666,10 +23967,10 @@ var ts;
else if (flags & 256) {
return grammarErrorOnNode(modifier, ts.Diagnostics._0_modifier_must_precede_1_modifier, "export", "async");
}
- else if (node.parent.kind === 216) {
+ else if (node.parent.kind === 217) {
return grammarErrorOnNode(modifier, ts.Diagnostics._0_modifier_cannot_appear_on_a_class_element, "export");
}
- else if (node.kind === 138) {
+ else if (node.kind === 139) {
return grammarErrorOnNode(modifier, ts.Diagnostics._0_modifier_cannot_appear_on_a_parameter, "export");
}
flags |= 2;
@@ -23681,13 +23982,13 @@ var ts;
else if (flags & 256) {
return grammarErrorOnNode(modifier, ts.Diagnostics._0_modifier_cannot_be_used_in_an_ambient_context, "async");
}
- else if (node.parent.kind === 216) {
+ else if (node.parent.kind === 217) {
return grammarErrorOnNode(modifier, ts.Diagnostics._0_modifier_cannot_appear_on_a_class_element, "declare");
}
- else if (node.kind === 138) {
+ else if (node.kind === 139) {
return grammarErrorOnNode(modifier, ts.Diagnostics._0_modifier_cannot_appear_on_a_parameter, "declare");
}
- else if (ts.isInAmbientContext(node.parent) && node.parent.kind === 221) {
+ else if (ts.isInAmbientContext(node.parent) && node.parent.kind === 222) {
return grammarErrorOnNode(modifier, ts.Diagnostics.A_declare_modifier_cannot_be_used_in_an_already_ambient_context);
}
flags |= 4;
@@ -23697,11 +23998,11 @@ var ts;
if (flags & 128) {
return grammarErrorOnNode(modifier, ts.Diagnostics._0_modifier_already_seen, "abstract");
}
- if (node.kind !== 216) {
- if (node.kind !== 143) {
+ if (node.kind !== 217) {
+ if (node.kind !== 144) {
return grammarErrorOnNode(modifier, ts.Diagnostics.abstract_modifier_can_only_appear_on_a_class_or_method_declaration);
}
- if (!(node.parent.kind === 216 && node.parent.flags & 128)) {
+ if (!(node.parent.kind === 217 && node.parent.flags & 128)) {
return grammarErrorOnNode(modifier, ts.Diagnostics.Abstract_methods_can_only_appear_within_an_abstract_class);
}
if (flags & 64) {
@@ -23720,7 +24021,7 @@ var ts;
else if (flags & 4 || ts.isInAmbientContext(node.parent)) {
return grammarErrorOnNode(modifier, ts.Diagnostics._0_modifier_cannot_be_used_in_an_ambient_context, "async");
}
- else if (node.kind === 138) {
+ else if (node.kind === 139) {
return grammarErrorOnNode(modifier, ts.Diagnostics._0_modifier_cannot_appear_on_a_parameter, "async");
}
flags |= 256;
@@ -23728,7 +24029,7 @@ var ts;
break;
}
}
- if (node.kind === 144) {
+ if (node.kind === 145) {
if (flags & 64) {
return grammarErrorOnNode(lastStatic, ts.Diagnostics._0_modifier_cannot_appear_on_a_constructor_declaration, "static");
}
@@ -23746,10 +24047,10 @@ var ts;
}
return;
}
- else if ((node.kind === 224 || node.kind === 223) && flags & 4) {
+ else if ((node.kind === 225 || node.kind === 224) && flags & 4) {
return grammarErrorOnNode(lastDeclare, ts.Diagnostics.A_0_modifier_cannot_be_used_with_an_import_declaration, "declare");
}
- else if (node.kind === 138 && (flags & 56) && ts.isBindingPattern(node.name)) {
+ else if (node.kind === 139 && (flags & 56) && ts.isBindingPattern(node.name)) {
return grammarErrorOnNode(node, ts.Diagnostics.A_parameter_property_may_not_be_a_binding_pattern);
}
if (flags & 256) {
@@ -23761,10 +24062,10 @@ var ts;
return grammarErrorOnNode(asyncModifier, ts.Diagnostics.Async_functions_are_only_available_when_targeting_ECMAScript_6_and_higher);
}
switch (node.kind) {
- case 143:
- case 215:
- case 175:
+ case 144:
+ case 216:
case 176:
+ case 177:
if (!node.asteriskToken) {
return false;
}
@@ -23829,7 +24130,7 @@ var ts;
checkGrammarParameterList(node.parameters) || checkGrammarArrowFunction(node, file);
}
function checkGrammarArrowFunction(node, file) {
- if (node.kind === 176) {
+ if (node.kind === 177) {
var arrowFunction = node;
var startLine = ts.getLineAndCharacterOfPosition(file, arrowFunction.equalsGreaterThanToken.pos).line;
var endLine = ts.getLineAndCharacterOfPosition(file, arrowFunction.equalsGreaterThanToken.end).line;
@@ -23896,7 +24197,7 @@ var ts;
var sourceFile = ts.getSourceFileOfNode(node);
for (var _i = 0, args_1 = args; _i < args_1.length; _i++) {
var arg = args_1[_i];
- if (arg.kind === 189) {
+ if (arg.kind === 190) {
return grammarErrorAtPos(sourceFile, arg.pos, 0, ts.Diagnostics.Argument_expression_expected);
}
}
@@ -23967,19 +24268,19 @@ var ts;
return false;
}
function checkGrammarComputedPropertyName(node) {
- if (node.kind !== 136) {
+ if (node.kind !== 137) {
return false;
}
var computedPropertyName = node;
- if (computedPropertyName.expression.kind === 183 && computedPropertyName.expression.operatorToken.kind === 24) {
+ if (computedPropertyName.expression.kind === 184 && computedPropertyName.expression.operatorToken.kind === 24) {
return grammarErrorOnNode(computedPropertyName.expression, ts.Diagnostics.A_comma_expression_is_not_allowed_in_a_computed_property_name);
}
}
function checkGrammarForGenerator(node) {
if (node.asteriskToken) {
- ts.Debug.assert(node.kind === 215 ||
- node.kind === 175 ||
- node.kind === 143);
+ ts.Debug.assert(node.kind === 216 ||
+ node.kind === 176 ||
+ node.kind === 144);
if (ts.isInAmbientContext(node)) {
return grammarErrorOnNode(node.asteriskToken, ts.Diagnostics.Generators_are_not_allowed_in_an_ambient_context);
}
@@ -24003,58 +24304,58 @@ var ts;
var SetAccesor = 4;
var GetOrSetAccessor = GetAccessor | SetAccesor;
var _loop_1 = function(prop) {
- var name_16 = prop.name;
- if (prop.kind === 189 ||
- name_16.kind === 136) {
- checkGrammarComputedPropertyName(name_16);
+ var name_19 = prop.name;
+ if (prop.kind === 190 ||
+ name_19.kind === 137) {
+ checkGrammarComputedPropertyName(name_19);
return "continue";
}
- if (prop.kind === 248 && !inDestructuring && prop.objectAssignmentInitializer) {
+ if (prop.kind === 249 && !inDestructuring && prop.objectAssignmentInitializer) {
return { value: grammarErrorOnNode(prop.equalsToken, ts.Diagnostics.can_only_be_used_in_an_object_literal_property_inside_a_destructuring_assignment) };
}
ts.forEach(prop.modifiers, function (mod) {
- if (mod.kind !== 118 || prop.kind !== 143) {
+ if (mod.kind !== 118 || prop.kind !== 144) {
grammarErrorOnNode(mod, ts.Diagnostics._0_modifier_cannot_be_used_here, ts.getTextOfNode(mod));
}
});
var currentKind = void 0;
- if (prop.kind === 247 || prop.kind === 248) {
+ if (prop.kind === 248 || prop.kind === 249) {
checkGrammarForInvalidQuestionMark(prop, prop.questionToken, ts.Diagnostics.An_object_member_cannot_be_declared_optional);
- if (name_16.kind === 8) {
- checkGrammarNumericLiteral(name_16);
+ if (name_19.kind === 8) {
+ checkGrammarNumericLiteral(name_19);
}
currentKind = Property;
}
- else if (prop.kind === 143) {
+ else if (prop.kind === 144) {
currentKind = Property;
}
- else if (prop.kind === 145) {
+ else if (prop.kind === 146) {
currentKind = GetAccessor;
}
- else if (prop.kind === 146) {
+ else if (prop.kind === 147) {
currentKind = SetAccesor;
}
else {
ts.Debug.fail("Unexpected syntax kind:" + prop.kind);
}
- if (!ts.hasProperty(seen, name_16.text)) {
- seen[name_16.text] = currentKind;
+ if (!ts.hasProperty(seen, name_19.text)) {
+ seen[name_19.text] = currentKind;
}
else {
- var existingKind = seen[name_16.text];
+ var existingKind = seen[name_19.text];
if (currentKind === Property && existingKind === Property) {
return "continue";
}
else if ((currentKind & GetOrSetAccessor) && (existingKind & GetOrSetAccessor)) {
if (existingKind !== GetOrSetAccessor && currentKind !== existingKind) {
- seen[name_16.text] = currentKind | existingKind;
+ seen[name_19.text] = currentKind | existingKind;
}
else {
- return { value: grammarErrorOnNode(name_16, ts.Diagnostics.An_object_literal_cannot_have_multiple_get_Slashset_accessors_with_the_same_name) };
+ return { value: grammarErrorOnNode(name_19, ts.Diagnostics.An_object_literal_cannot_have_multiple_get_Slashset_accessors_with_the_same_name) };
}
}
else {
- return { value: grammarErrorOnNode(name_16, ts.Diagnostics.An_object_literal_cannot_have_property_and_accessor_with_the_same_name) };
+ return { value: grammarErrorOnNode(name_19, ts.Diagnostics.An_object_literal_cannot_have_property_and_accessor_with_the_same_name) };
}
}
};
@@ -24069,19 +24370,19 @@ var ts;
var seen = {};
for (var _i = 0, _a = node.attributes; _i < _a.length; _i++) {
var attr = _a[_i];
- if (attr.kind === 241) {
+ if (attr.kind === 242) {
continue;
}
var jsxAttr = attr;
- var name_17 = jsxAttr.name;
- if (!ts.hasProperty(seen, name_17.text)) {
- seen[name_17.text] = true;
+ var name_20 = jsxAttr.name;
+ if (!ts.hasProperty(seen, name_20.text)) {
+ seen[name_20.text] = true;
}
else {
- return grammarErrorOnNode(name_17, ts.Diagnostics.JSX_elements_cannot_have_multiple_attributes_with_the_same_name);
+ return grammarErrorOnNode(name_20, ts.Diagnostics.JSX_elements_cannot_have_multiple_attributes_with_the_same_name);
}
var initializer = jsxAttr.initializer;
- if (initializer && initializer.kind === 242 && !initializer.expression) {
+ if (initializer && initializer.kind === 243 && !initializer.expression) {
return grammarErrorOnNode(jsxAttr.initializer, ts.Diagnostics.JSX_attributes_must_only_be_assigned_a_non_empty_expression);
}
}
@@ -24090,7 +24391,7 @@ var ts;
if (checkGrammarStatementInAmbientContext(forInOrOfStatement)) {
return true;
}
- if (forInOrOfStatement.initializer.kind === 214) {
+ if (forInOrOfStatement.initializer.kind === 215) {
var variableList = forInOrOfStatement.initializer;
if (!checkGrammarVariableDeclarationList(variableList)) {
var declarations = variableList.declarations;
@@ -24098,20 +24399,20 @@ var ts;
return false;
}
if (declarations.length > 1) {
- var diagnostic = forInOrOfStatement.kind === 202
+ var diagnostic = forInOrOfStatement.kind === 203
? ts.Diagnostics.Only_a_single_variable_declaration_is_allowed_in_a_for_in_statement
: ts.Diagnostics.Only_a_single_variable_declaration_is_allowed_in_a_for_of_statement;
return grammarErrorOnFirstToken(variableList.declarations[1], diagnostic);
}
var firstDeclaration = declarations[0];
if (firstDeclaration.initializer) {
- var diagnostic = forInOrOfStatement.kind === 202
+ var diagnostic = forInOrOfStatement.kind === 203
? ts.Diagnostics.The_variable_declaration_of_a_for_in_statement_cannot_have_an_initializer
: ts.Diagnostics.The_variable_declaration_of_a_for_of_statement_cannot_have_an_initializer;
return grammarErrorOnNode(firstDeclaration.name, diagnostic);
}
if (firstDeclaration.type) {
- var diagnostic = forInOrOfStatement.kind === 202
+ var diagnostic = forInOrOfStatement.kind === 203
? ts.Diagnostics.The_left_hand_side_of_a_for_in_statement_cannot_use_a_type_annotation
: ts.Diagnostics.The_left_hand_side_of_a_for_of_statement_cannot_use_a_type_annotation;
return grammarErrorOnNode(firstDeclaration, diagnostic);
@@ -24134,10 +24435,10 @@ var ts;
else if (accessor.typeParameters) {
return grammarErrorOnNode(accessor.name, ts.Diagnostics.An_accessor_cannot_have_type_parameters);
}
- else if (kind === 145 && accessor.parameters.length) {
+ else if (kind === 146 && accessor.parameters.length) {
return grammarErrorOnNode(accessor.name, ts.Diagnostics.A_get_accessor_cannot_have_parameters);
}
- else if (kind === 146) {
+ else if (kind === 147) {
if (accessor.type) {
return grammarErrorOnNode(accessor.name, ts.Diagnostics.A_set_accessor_cannot_have_a_return_type_annotation);
}
@@ -24172,12 +24473,12 @@ var ts;
checkGrammarForGenerator(node)) {
return true;
}
- if (node.parent.kind === 167) {
+ if (node.parent.kind === 168) {
if (checkGrammarForInvalidQuestionMark(node, node.questionToken, ts.Diagnostics.A_class_member_cannot_be_declared_optional)) {
return true;
}
else if (node.body === undefined) {
- return grammarErrorAtPos(getSourceFile(node), node.end - 1, ";".length, ts.Diagnostics._0_expected, "{");
+ return grammarErrorAtPos(ts.getSourceFileOfNode(node), node.end - 1, ";".length, ts.Diagnostics._0_expected, "{");
}
}
if (ts.isClassLike(node.parent)) {
@@ -24191,10 +24492,10 @@ var ts;
return checkGrammarForNonSymbolComputedProperty(node.name, ts.Diagnostics.A_computed_property_name_in_a_method_overload_must_directly_refer_to_a_built_in_symbol);
}
}
- else if (node.parent.kind === 217) {
+ else if (node.parent.kind === 218) {
return checkGrammarForNonSymbolComputedProperty(node.name, ts.Diagnostics.A_computed_property_name_in_an_interface_must_directly_refer_to_a_built_in_symbol);
}
- else if (node.parent.kind === 155) {
+ else if (node.parent.kind === 156) {
return checkGrammarForNonSymbolComputedProperty(node.name, ts.Diagnostics.A_computed_property_name_in_a_type_literal_must_directly_refer_to_a_built_in_symbol);
}
}
@@ -24205,9 +24506,9 @@ var ts;
return grammarErrorOnNode(node, ts.Diagnostics.Jump_target_cannot_cross_function_boundary);
}
switch (current.kind) {
- case 209:
+ case 210:
if (node.label && current.label.text === node.label.text) {
- var isMisplacedContinueLabel = node.kind === 204
+ var isMisplacedContinueLabel = node.kind === 205
&& !ts.isIterationStatement(current.statement, true);
if (isMisplacedContinueLabel) {
return grammarErrorOnNode(node, ts.Diagnostics.A_continue_statement_can_only_jump_to_a_label_of_an_enclosing_iteration_statement);
@@ -24215,8 +24516,8 @@ var ts;
return false;
}
break;
- case 208:
- if (node.kind === 205 && !node.label) {
+ case 209:
+ if (node.kind === 206 && !node.label) {
return false;
}
break;
@@ -24229,13 +24530,13 @@ var ts;
current = current.parent;
}
if (node.label) {
- var message = node.kind === 205
+ var message = node.kind === 206
? ts.Diagnostics.A_break_statement_can_only_jump_to_a_label_of_an_enclosing_statement
: ts.Diagnostics.A_continue_statement_can_only_jump_to_a_label_of_an_enclosing_iteration_statement;
return grammarErrorOnNode(node, message);
}
else {
- var message = node.kind === 205
+ var message = node.kind === 206
? ts.Diagnostics.A_break_statement_can_only_be_used_within_an_enclosing_iteration_or_switch_statement
: ts.Diagnostics.A_continue_statement_can_only_be_used_within_an_enclosing_iteration_statement;
return grammarErrorOnNode(node, message);
@@ -24247,7 +24548,7 @@ var ts;
if (node !== ts.lastOrUndefined(elements)) {
return grammarErrorOnNode(node, ts.Diagnostics.A_rest_element_must_be_last_in_an_array_destructuring_pattern);
}
- if (node.name.kind === 164 || node.name.kind === 163) {
+ if (node.name.kind === 165 || node.name.kind === 164) {
return grammarErrorOnNode(node.name, ts.Diagnostics.A_rest_element_cannot_contain_a_binding_pattern);
}
if (node.initializer) {
@@ -24256,7 +24557,7 @@ var ts;
}
}
function checkGrammarVariableDeclaration(node) {
- if (node.parent.parent.kind !== 202 && node.parent.parent.kind !== 203) {
+ if (node.parent.parent.kind !== 203 && node.parent.parent.kind !== 204) {
if (ts.isInAmbientContext(node)) {
if (node.initializer) {
var equalsTokenLength = "=".length;
@@ -24285,7 +24586,7 @@ var ts;
var elements = name.elements;
for (var _i = 0, elements_2 = elements; _i < elements_2.length; _i++) {
var element = elements_2[_i];
- if (element.kind !== 189) {
+ if (element.kind !== 190) {
checkGrammarNameInLetOrConstDeclarations(element.name);
}
}
@@ -24302,15 +24603,15 @@ var ts;
}
function allowLetAndConstDeclarations(parent) {
switch (parent.kind) {
- case 198:
case 199:
case 200:
- case 207:
case 201:
+ case 208:
case 202:
case 203:
+ case 204:
return false;
- case 209:
+ case 210:
return allowLetAndConstDeclarations(parent.parent);
}
return true;
@@ -24366,7 +24667,7 @@ var ts;
return true;
}
}
- else if (node.parent.kind === 217) {
+ else if (node.parent.kind === 218) {
if (checkGrammarForNonSymbolComputedProperty(node.name, ts.Diagnostics.A_computed_property_name_in_an_interface_must_directly_refer_to_a_built_in_symbol)) {
return true;
}
@@ -24374,7 +24675,7 @@ var ts;
return grammarErrorOnNode(node.initializer, ts.Diagnostics.An_interface_property_cannot_have_an_initializer);
}
}
- else if (node.parent.kind === 155) {
+ else if (node.parent.kind === 156) {
if (checkGrammarForNonSymbolComputedProperty(node.name, ts.Diagnostics.A_computed_property_name_in_a_type_literal_must_directly_refer_to_a_built_in_symbol)) {
return true;
}
@@ -24387,12 +24688,12 @@ var ts;
}
}
function checkGrammarTopLevelElementForRequiredDeclareModifier(node) {
- if (node.kind === 217 ||
- node.kind === 218 ||
+ if (node.kind === 218 ||
+ node.kind === 219 ||
+ node.kind === 225 ||
node.kind === 224 ||
- node.kind === 223 ||
+ node.kind === 231 ||
node.kind === 230 ||
- node.kind === 229 ||
(node.flags & 4) ||
(node.flags & (2 | 512))) {
return false;
@@ -24402,7 +24703,7 @@ var ts;
function checkGrammarTopLevelElementsForRequiredDeclareModifier(file) {
for (var _i = 0, _a = file.statements; _i < _a.length; _i++) {
var decl = _a[_i];
- if (ts.isDeclaration(decl) || decl.kind === 195) {
+ if (ts.isDeclaration(decl) || decl.kind === 196) {
if (checkGrammarTopLevelElementForRequiredDeclareModifier(decl)) {
return true;
}
@@ -24421,7 +24722,7 @@ var ts;
if (!links.hasReportedStatementInAmbientContext && ts.isFunctionLike(node.parent)) {
return getNodeLinks(node).hasReportedStatementInAmbientContext = grammarErrorOnFirstToken(node, ts.Diagnostics.An_implementation_cannot_be_declared_in_ambient_contexts);
}
- if (node.parent.kind === 194 || node.parent.kind === 221 || node.parent.kind === 250) {
+ if (node.parent.kind === 195 || node.parent.kind === 222 || node.parent.kind === 251) {
var links_1 = getNodeLinks(node.parent);
if (!links_1.hasReportedStatementInAmbientContext) {
return links_1.hasReportedStatementInAmbientContext = grammarErrorOnFirstToken(node, ts.Diagnostics.Statements_are_not_allowed_in_ambient_contexts);
@@ -24457,8 +24758,9 @@ var ts;
getSourceMapData: function () { return undefined; },
setSourceFile: function (sourceFile) { },
emitStart: function (range) { },
- emitEnd: function (range) { },
+ emitEnd: function (range, stopOverridingSpan) { },
emitPos: function (pos) { },
+ changeEmitSourcePos: function () { },
getText: function () { return undefined; },
getSourceMappingURL: function () { return undefined; },
initialize: function (filePath, sourceMapFilePath, sourceFiles, isBundledEmit) { },
@@ -24472,6 +24774,8 @@ var ts;
var compilerOptions = host.getCompilerOptions();
var currentSourceFile;
var sourceMapDir;
+ var stopOverridingSpan = false;
+ var modifyLastSourcePos = false;
var sourceMapSourceIndex;
var lastRecordedSourceMapSpan;
var lastEncodedSourceMapSpan;
@@ -24483,6 +24787,7 @@ var ts;
emitPos: emitPos,
emitStart: emitStart,
emitEnd: emitEnd,
+ changeEmitSourcePos: changeEmitSourcePos,
getText: getText,
getSourceMappingURL: getSourceMappingURL,
initialize: initialize,
@@ -24546,6 +24851,29 @@ var ts;
lastEncodedNameIndex = undefined;
sourceMapData = undefined;
}
+ function updateLastEncodedAndRecordedSpans() {
+ if (modifyLastSourcePos) {
+ modifyLastSourcePos = false;
+ lastRecordedSourceMapSpan.emittedLine = lastEncodedSourceMapSpan.emittedLine;
+ lastRecordedSourceMapSpan.emittedColumn = lastEncodedSourceMapSpan.emittedColumn;
+ sourceMapData.sourceMapDecodedMappings.pop();
+ lastEncodedSourceMapSpan = sourceMapData.sourceMapDecodedMappings.length ?
+ sourceMapData.sourceMapDecodedMappings[sourceMapData.sourceMapDecodedMappings.length - 1] :
+ undefined;
+ var sourceMapMappings = sourceMapData.sourceMapMappings;
+ var lenthToSet = sourceMapMappings.length - 1;
+ for (; lenthToSet >= 0; lenthToSet--) {
+ var currentChar = sourceMapMappings.charAt(lenthToSet);
+ if (currentChar === ",") {
+ break;
+ }
+ if (currentChar === ";" && lenthToSet !== 0 && sourceMapMappings.charAt(lenthToSet - 1) !== ";") {
+ break;
+ }
+ }
+ sourceMapData.sourceMapMappings = sourceMapMappings.substr(0, Math.max(0, lenthToSet));
+ }
+ }
function encodeLastRecordedSourceMapSpan() {
if (!lastRecordedSourceMapSpan || lastRecordedSourceMapSpan === lastEncodedSourceMapSpan) {
return;
@@ -24567,6 +24895,7 @@ var ts;
sourceMapData.sourceMapMappings += base64VLQFormatEncode(lastRecordedSourceMapSpan.sourceLine - lastEncodedSourceMapSpan.sourceLine);
sourceMapData.sourceMapMappings += base64VLQFormatEncode(lastRecordedSourceMapSpan.sourceColumn - lastEncodedSourceMapSpan.sourceColumn);
if (lastRecordedSourceMapSpan.nameIndex >= 0) {
+ ts.Debug.assert(false, "We do not support name index right now, Make sure to update updateLastEncodedAndRecordedSpans when we start using this");
sourceMapData.sourceMapMappings += base64VLQFormatEncode(lastRecordedSourceMapSpan.nameIndex - lastEncodedNameIndex);
lastEncodedNameIndex = lastRecordedSourceMapSpan.nameIndex;
}
@@ -24596,19 +24925,29 @@ var ts;
sourceColumn: sourceLinePos.character,
sourceIndex: sourceMapSourceIndex
};
+ stopOverridingSpan = false;
}
- else {
+ else if (!stopOverridingSpan) {
lastRecordedSourceMapSpan.sourceLine = sourceLinePos.line;
lastRecordedSourceMapSpan.sourceColumn = sourceLinePos.character;
lastRecordedSourceMapSpan.sourceIndex = sourceMapSourceIndex;
}
+ updateLastEncodedAndRecordedSpans();
+ }
+ function getStartPos(range) {
+ var rangeHasDecorators = !!range.decorators;
+ return range.pos !== -1 ? ts.skipTrivia(currentSourceFile.text, rangeHasDecorators ? range.decorators.end : range.pos) : -1;
}
function emitStart(range) {
- var rangeHasDecorators = !!range.decorators;
- emitPos(range.pos !== -1 ? ts.skipTrivia(currentSourceFile.text, rangeHasDecorators ? range.decorators.end : range.pos) : -1);
+ emitPos(getStartPos(range));
}
- function emitEnd(range) {
+ function emitEnd(range, stopOverridingEnd) {
emitPos(range.end);
+ stopOverridingSpan = stopOverridingEnd;
+ }
+ function changeEmitSourcePos() {
+ ts.Debug.assert(!modifyLastSourcePos);
+ modifyLastSourcePos = true;
}
function setSourceFile(sourceFile) {
currentSourceFile = sourceFile;
@@ -24695,6 +25034,7 @@ var ts;
var writeTextOfNode;
var writer = createAndSetNewTextWriterWithSymbolWriter();
var enclosingDeclaration;
+ var resultHasExternalModuleIndicator;
var currentText;
var currentLineMap;
var currentIdentifiers;
@@ -24725,6 +25065,7 @@ var ts;
}
});
}
+ resultHasExternalModuleIndicator = false;
if (!isBundledEmit || !ts.isExternalModule(sourceFile)) {
noDeclare = false;
emitSourceFile(sourceFile);
@@ -24743,7 +25084,7 @@ var ts;
var oldWriter = writer;
ts.forEach(moduleElementDeclarationEmitInfo, function (aliasEmitInfo) {
if (aliasEmitInfo.isVisible && !aliasEmitInfo.asynchronousOutput) {
- ts.Debug.assert(aliasEmitInfo.node.kind === 224);
+ ts.Debug.assert(aliasEmitInfo.node.kind === 225);
createAndSetNewTextWriterWithSymbolWriter();
ts.Debug.assert(aliasEmitInfo.indent === 0 || (aliasEmitInfo.indent === 1 && isBundledEmit));
for (var i = 0; i < aliasEmitInfo.indent; i++) {
@@ -24760,6 +25101,10 @@ var ts;
allSourcesModuleElementDeclarationEmitInfo = allSourcesModuleElementDeclarationEmitInfo.concat(moduleElementDeclarationEmitInfo);
moduleElementDeclarationEmitInfo = [];
}
+ if (!isBundledEmit && ts.isExternalModule(sourceFile) && sourceFile.moduleAugmentations.length && !resultHasExternalModuleIndicator) {
+ write("export {};");
+ writeLine();
+ }
});
return {
reportedDeclarationError: reportedDeclarationError,
@@ -24806,10 +25151,10 @@ var ts;
var oldWriter = writer;
ts.forEach(nodes, function (declaration) {
var nodeToCheck;
- if (declaration.kind === 213) {
+ if (declaration.kind === 214) {
nodeToCheck = declaration.parent.parent;
}
- else if (declaration.kind === 227 || declaration.kind === 228 || declaration.kind === 225) {
+ else if (declaration.kind === 228 || declaration.kind === 229 || declaration.kind === 226) {
ts.Debug.fail("We should be getting ImportDeclaration instead to write");
}
else {
@@ -24820,7 +25165,7 @@ var ts;
moduleElementEmitInfo = ts.forEach(asynchronousSubModuleDeclarationEmitInfo, function (declEmitInfo) { return declEmitInfo.node === nodeToCheck ? declEmitInfo : undefined; });
}
if (moduleElementEmitInfo) {
- if (moduleElementEmitInfo.node.kind === 224) {
+ if (moduleElementEmitInfo.node.kind === 225) {
moduleElementEmitInfo.isVisible = true;
}
else {
@@ -24828,12 +25173,12 @@ var ts;
for (var declarationIndent = moduleElementEmitInfo.indent; declarationIndent; declarationIndent--) {
increaseIndent();
}
- if (nodeToCheck.kind === 220) {
+ if (nodeToCheck.kind === 221) {
ts.Debug.assert(asynchronousSubModuleDeclarationEmitInfo === undefined);
asynchronousSubModuleDeclarationEmitInfo = [];
}
writeModuleElement(nodeToCheck);
- if (nodeToCheck.kind === 220) {
+ if (nodeToCheck.kind === 221) {
moduleElementEmitInfo.subModuleElementDeclarationEmitInfo = asynchronousSubModuleDeclarationEmitInfo;
asynchronousSubModuleDeclarationEmitInfo = undefined;
}
@@ -24936,35 +25281,35 @@ var ts;
case 120:
case 131:
case 103:
- case 161:
case 162:
+ case 163:
return writeTextOfNode(currentText, type);
- case 190:
+ case 191:
return emitExpressionWithTypeArguments(type);
- case 151:
- return emitTypeReference(type);
- case 154:
- return emitTypeQuery(type);
- case 156:
- return emitArrayType(type);
- case 157:
- return emitTupleType(type);
- case 158:
- return emitUnionType(type);
- case 159:
- return emitIntersectionType(type);
- case 160:
- return emitParenType(type);
case 152:
- case 153:
- return emitSignatureDeclarationWithJsDocComments(type);
+ return emitTypeReference(type);
case 155:
+ return emitTypeQuery(type);
+ case 157:
+ return emitArrayType(type);
+ case 158:
+ return emitTupleType(type);
+ case 159:
+ return emitUnionType(type);
+ case 160:
+ return emitIntersectionType(type);
+ case 161:
+ return emitParenType(type);
+ case 153:
+ case 154:
+ return emitSignatureDeclarationWithJsDocComments(type);
+ case 156:
return emitTypeLiteral(type);
case 69:
return emitEntityName(type);
- case 135:
+ case 136:
return emitEntityName(type);
- case 150:
+ case 151:
return emitTypePredicate(type);
}
function writeEntityName(entityName) {
@@ -24972,21 +25317,21 @@ var ts;
writeTextOfNode(currentText, entityName);
}
else {
- var left = entityName.kind === 135 ? entityName.left : entityName.expression;
- var right = entityName.kind === 135 ? entityName.right : entityName.name;
+ var left = entityName.kind === 136 ? entityName.left : entityName.expression;
+ var right = entityName.kind === 136 ? entityName.right : entityName.name;
writeEntityName(left);
write(".");
writeTextOfNode(currentText, right);
}
}
function emitEntityName(entityName) {
- var visibilityResult = resolver.isEntityNameVisible(entityName, entityName.parent.kind === 223 ? entityName.parent : enclosingDeclaration);
+ var visibilityResult = resolver.isEntityNameVisible(entityName, entityName.parent.kind === 224 ? entityName.parent : enclosingDeclaration);
handleSymbolAccessibilityError(visibilityResult);
writeEntityName(entityName);
}
function emitExpressionWithTypeArguments(node) {
if (ts.isSupportedExpressionWithTypeArguments(node)) {
- ts.Debug.assert(node.expression.kind === 69 || node.expression.kind === 168);
+ ts.Debug.assert(node.expression.kind === 69 || node.expression.kind === 169);
emitEntityName(node.expression);
if (node.typeArguments) {
write("<");
@@ -25060,9 +25405,9 @@ var ts;
var count = 0;
while (true) {
count++;
- var name_18 = baseName + "_" + count;
- if (!ts.hasProperty(currentIdentifiers, name_18)) {
- return name_18;
+ var name_21 = baseName + "_" + count;
+ if (!ts.hasProperty(currentIdentifiers, name_21)) {
+ return name_21;
}
}
}
@@ -25103,10 +25448,10 @@ var ts;
if (isModuleElementVisible) {
writeModuleElement(node);
}
- else if (node.kind === 223 ||
- (node.parent.kind === 250 && isCurrentFileExternalModule)) {
+ else if (node.kind === 224 ||
+ (node.parent.kind === 251 && isCurrentFileExternalModule)) {
var isVisible;
- if (asynchronousSubModuleDeclarationEmitInfo && node.parent.kind !== 250) {
+ if (asynchronousSubModuleDeclarationEmitInfo && node.parent.kind !== 251) {
asynchronousSubModuleDeclarationEmitInfo.push({
node: node,
outputPos: writer.getTextPos(),
@@ -25115,7 +25460,7 @@ var ts;
});
}
else {
- if (node.kind === 224) {
+ if (node.kind === 225) {
var importDeclaration = node;
if (importDeclaration.importClause) {
isVisible = (importDeclaration.importClause.name && resolver.isDeclarationVisible(importDeclaration.importClause)) ||
@@ -25133,37 +25478,37 @@ var ts;
}
function writeModuleElement(node) {
switch (node.kind) {
- case 215:
- return writeFunctionDeclaration(node);
- case 195:
- return writeVariableStatement(node);
- case 217:
- return writeInterfaceDeclaration(node);
case 216:
- return writeClassDeclaration(node);
+ return writeFunctionDeclaration(node);
+ case 196:
+ return writeVariableStatement(node);
case 218:
- return writeTypeAliasDeclaration(node);
+ return writeInterfaceDeclaration(node);
+ case 217:
+ return writeClassDeclaration(node);
case 219:
- return writeEnumDeclaration(node);
+ return writeTypeAliasDeclaration(node);
case 220:
+ return writeEnumDeclaration(node);
+ case 221:
return writeModuleDeclaration(node);
- case 223:
- return writeImportEqualsDeclaration(node);
case 224:
+ return writeImportEqualsDeclaration(node);
+ case 225:
return writeImportDeclaration(node);
default:
ts.Debug.fail("Unknown symbol kind");
}
}
function emitModuleElementDeclarationFlags(node) {
- if (node.parent.kind === 250) {
+ if (node.parent.kind === 251) {
if (node.flags & 2) {
write("export ");
}
if (node.flags & 512) {
write("default ");
}
- else if (node.kind !== 217 && !noDeclare) {
+ else if (node.kind !== 218 && !noDeclare) {
write("declare ");
}
}
@@ -25210,7 +25555,7 @@ var ts;
}
function isVisibleNamedBinding(namedBindings) {
if (namedBindings) {
- if (namedBindings.kind === 226) {
+ if (namedBindings.kind === 227) {
return resolver.isDeclarationVisible(namedBindings);
}
else {
@@ -25236,7 +25581,7 @@ var ts;
if (currentWriterPos !== writer.getTextPos()) {
write(", ");
}
- if (node.importClause.namedBindings.kind === 226) {
+ if (node.importClause.namedBindings.kind === 227) {
write("* as ");
writeTextOfNode(currentText, node.importClause.namedBindings.name);
}
@@ -25253,11 +25598,15 @@ var ts;
writer.writeLine();
}
function emitExternalModuleSpecifier(parent) {
+ resultHasExternalModuleIndicator = resultHasExternalModuleIndicator || parent.kind !== 221;
var moduleSpecifier;
- if (parent.kind === 223) {
+ if (parent.kind === 224) {
var node = parent;
moduleSpecifier = ts.getExternalModuleImportEqualsDeclarationExpression(node);
}
+ else if (parent.kind === 221) {
+ moduleSpecifier = parent.name;
+ }
else {
var node = parent;
moduleSpecifier = node.moduleSpecifier;
@@ -25306,14 +25655,24 @@ var ts;
function writeModuleDeclaration(node) {
emitJsDocComments(node);
emitModuleElementDeclarationFlags(node);
- if (node.flags & 65536) {
- write("namespace ");
+ if (ts.isGlobalScopeAugmentation(node)) {
+ write("global ");
}
else {
- write("module ");
+ if (node.flags & 65536) {
+ write("namespace ");
+ }
+ else {
+ write("module ");
+ }
+ if (ts.isExternalModuleAugmentation(node)) {
+ emitExternalModuleSpecifier(node);
+ }
+ else {
+ writeTextOfNode(currentText, node.name);
+ }
}
- writeTextOfNode(currentText, node.name);
- while (node.body.kind !== 221) {
+ while (node.body.kind !== 222) {
node = node.body;
write(".");
writeTextOfNode(currentText, node.name);
@@ -25378,7 +25737,7 @@ var ts;
writeLine();
}
function isPrivateMethodTypeParameter(node) {
- return node.parent.kind === 143 && (node.parent.flags & 16);
+ return node.parent.kind === 144 && (node.parent.flags & 16);
}
function emitTypeParameters(typeParameters) {
function emitTypeParameter(node) {
@@ -25388,15 +25747,15 @@ var ts;
writeTextOfNode(currentText, node.name);
if (node.constraint && !isPrivateMethodTypeParameter(node)) {
write(" extends ");
- if (node.parent.kind === 152 ||
- node.parent.kind === 153 ||
- (node.parent.parent && node.parent.parent.kind === 155)) {
- ts.Debug.assert(node.parent.kind === 143 ||
- node.parent.kind === 142 ||
- node.parent.kind === 152 ||
+ if (node.parent.kind === 153 ||
+ node.parent.kind === 154 ||
+ (node.parent.parent && node.parent.parent.kind === 156)) {
+ ts.Debug.assert(node.parent.kind === 144 ||
+ node.parent.kind === 143 ||
node.parent.kind === 153 ||
- node.parent.kind === 147 ||
- node.parent.kind === 148);
+ node.parent.kind === 154 ||
+ node.parent.kind === 148 ||
+ node.parent.kind === 149);
emitType(node.constraint);
}
else {
@@ -25406,31 +25765,31 @@ var ts;
function getTypeParameterConstraintVisibilityError(symbolAccesibilityResult) {
var diagnosticMessage;
switch (node.parent.kind) {
- case 216:
+ case 217:
diagnosticMessage = ts.Diagnostics.Type_parameter_0_of_exported_class_has_or_is_using_private_name_1;
break;
- case 217:
+ case 218:
diagnosticMessage = ts.Diagnostics.Type_parameter_0_of_exported_interface_has_or_is_using_private_name_1;
break;
- case 148:
+ case 149:
diagnosticMessage = ts.Diagnostics.Type_parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_1;
break;
- case 147:
+ case 148:
diagnosticMessage = ts.Diagnostics.Type_parameter_0_of_call_signature_from_exported_interface_has_or_is_using_private_name_1;
break;
+ case 144:
case 143:
- case 142:
if (node.parent.flags & 64) {
diagnosticMessage = ts.Diagnostics.Type_parameter_0_of_public_static_method_from_exported_class_has_or_is_using_private_name_1;
}
- else if (node.parent.parent.kind === 216) {
+ else if (node.parent.parent.kind === 217) {
diagnosticMessage = ts.Diagnostics.Type_parameter_0_of_public_method_from_exported_class_has_or_is_using_private_name_1;
}
else {
diagnosticMessage = ts.Diagnostics.Type_parameter_0_of_method_from_exported_interface_has_or_is_using_private_name_1;
}
break;
- case 215:
+ case 216:
diagnosticMessage = ts.Diagnostics.Type_parameter_0_of_exported_function_has_or_is_using_private_name_1;
break;
default:
@@ -25463,7 +25822,7 @@ var ts;
}
function getHeritageClauseVisibilityError(symbolAccesibilityResult) {
var diagnosticMessage;
- if (node.parent.parent.kind === 216) {
+ if (node.parent.parent.kind === 217) {
diagnosticMessage = isImplementsList ?
ts.Diagnostics.Implements_clause_of_exported_class_0_has_or_is_using_private_name_1 :
ts.Diagnostics.Extends_clause_of_exported_class_0_has_or_is_using_private_name_1;
@@ -25543,16 +25902,16 @@ var ts;
writeLine();
}
function emitVariableDeclaration(node) {
- if (node.kind !== 213 || resolver.isDeclarationVisible(node)) {
+ if (node.kind !== 214 || resolver.isDeclarationVisible(node)) {
if (ts.isBindingPattern(node.name)) {
emitBindingPattern(node.name);
}
else {
writeTextOfNode(currentText, node.name);
- if ((node.kind === 141 || node.kind === 140) && ts.hasQuestionToken(node)) {
+ if ((node.kind === 142 || node.kind === 141) && ts.hasQuestionToken(node)) {
write("?");
}
- if ((node.kind === 141 || node.kind === 140) && node.parent.kind === 155) {
+ if ((node.kind === 142 || node.kind === 141) && node.parent.kind === 156) {
emitTypeOfVariableDeclarationFromTypeLiteral(node);
}
else if (!(node.flags & 16)) {
@@ -25561,14 +25920,14 @@ var ts;
}
}
function getVariableDeclarationTypeVisibilityDiagnosticMessage(symbolAccesibilityResult) {
- if (node.kind === 213) {
+ if (node.kind === 214) {
return symbolAccesibilityResult.errorModuleName ?
symbolAccesibilityResult.accessibility === 2 ?
ts.Diagnostics.Exported_variable_0_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named :
ts.Diagnostics.Exported_variable_0_has_or_is_using_name_1_from_private_module_2 :
ts.Diagnostics.Exported_variable_0_has_or_is_using_private_name_1;
}
- else if (node.kind === 141 || node.kind === 140) {
+ else if (node.kind === 142 || node.kind === 141) {
if (node.flags & 64) {
return symbolAccesibilityResult.errorModuleName ?
symbolAccesibilityResult.accessibility === 2 ?
@@ -25576,7 +25935,7 @@ var ts;
ts.Diagnostics.Public_static_property_0_of_exported_class_has_or_is_using_name_1_from_private_module_2 :
ts.Diagnostics.Public_static_property_0_of_exported_class_has_or_is_using_private_name_1;
}
- else if (node.parent.kind === 216) {
+ else if (node.parent.kind === 217) {
return symbolAccesibilityResult.errorModuleName ?
symbolAccesibilityResult.accessibility === 2 ?
ts.Diagnostics.Public_property_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named :
@@ -25602,7 +25961,7 @@ var ts;
var elements = [];
for (var _i = 0, _a = bindingPattern.elements; _i < _a.length; _i++) {
var element = _a[_i];
- if (element.kind !== 189) {
+ if (element.kind !== 190) {
elements.push(element);
}
}
@@ -25668,7 +26027,7 @@ var ts;
accessorWithTypeAnnotation = node;
var type = getTypeAnnotationFromAccessor(node);
if (!type) {
- var anotherAccessor = node.kind === 145 ? accessors.setAccessor : accessors.getAccessor;
+ var anotherAccessor = node.kind === 146 ? accessors.setAccessor : accessors.getAccessor;
type = getTypeAnnotationFromAccessor(anotherAccessor);
if (type) {
accessorWithTypeAnnotation = anotherAccessor;
@@ -25681,7 +26040,7 @@ var ts;
}
function getTypeAnnotationFromAccessor(accessor) {
if (accessor) {
- return accessor.kind === 145
+ return accessor.kind === 146
? accessor.type
: accessor.parameters.length > 0
? accessor.parameters[0].type
@@ -25690,7 +26049,7 @@ var ts;
}
function getAccessorDeclarationTypeVisibilityError(symbolAccesibilityResult) {
var diagnosticMessage;
- if (accessorWithTypeAnnotation.kind === 146) {
+ if (accessorWithTypeAnnotation.kind === 147) {
if (accessorWithTypeAnnotation.parent.flags & 64) {
diagnosticMessage = symbolAccesibilityResult.errorModuleName ?
ts.Diagnostics.Parameter_0_of_public_static_property_setter_from_exported_class_has_or_is_using_name_1_from_private_module_2 :
@@ -25736,17 +26095,17 @@ var ts;
}
if (!resolver.isImplementationOfOverload(node)) {
emitJsDocComments(node);
- if (node.kind === 215) {
+ if (node.kind === 216) {
emitModuleElementDeclarationFlags(node);
}
- else if (node.kind === 143) {
+ else if (node.kind === 144) {
emitClassMemberDeclarationFlags(node);
}
- if (node.kind === 215) {
+ if (node.kind === 216) {
write("function ");
writeTextOfNode(currentText, node.name);
}
- else if (node.kind === 144) {
+ else if (node.kind === 145) {
write("constructor");
}
else {
@@ -25765,31 +26124,31 @@ var ts;
function emitSignatureDeclaration(node) {
var prevEnclosingDeclaration = enclosingDeclaration;
enclosingDeclaration = node;
- if (node.kind === 148 || node.kind === 153) {
+ if (node.kind === 149 || node.kind === 154) {
write("new ");
}
emitTypeParameters(node.typeParameters);
- if (node.kind === 149) {
+ if (node.kind === 150) {
write("[");
}
else {
write("(");
}
emitCommaList(node.parameters, emitParameterDeclaration);
- if (node.kind === 149) {
+ if (node.kind === 150) {
write("]");
}
else {
write(")");
}
- var isFunctionTypeOrConstructorType = node.kind === 152 || node.kind === 153;
- if (isFunctionTypeOrConstructorType || node.parent.kind === 155) {
+ var isFunctionTypeOrConstructorType = node.kind === 153 || node.kind === 154;
+ if (isFunctionTypeOrConstructorType || node.parent.kind === 156) {
if (node.type) {
write(isFunctionTypeOrConstructorType ? " => " : ": ");
emitType(node.type);
}
}
- else if (node.kind !== 144 && !(node.flags & 16)) {
+ else if (node.kind !== 145 && !(node.flags & 16)) {
writeReturnTypeAtSignature(node, getReturnTypeVisibilityError);
}
enclosingDeclaration = prevEnclosingDeclaration;
@@ -25800,23 +26159,23 @@ var ts;
function getReturnTypeVisibilityError(symbolAccesibilityResult) {
var diagnosticMessage;
switch (node.kind) {
- case 148:
+ case 149:
diagnosticMessage = symbolAccesibilityResult.errorModuleName ?
ts.Diagnostics.Return_type_of_constructor_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1 :
ts.Diagnostics.Return_type_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_0;
break;
- case 147:
+ case 148:
diagnosticMessage = symbolAccesibilityResult.errorModuleName ?
ts.Diagnostics.Return_type_of_call_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1 :
ts.Diagnostics.Return_type_of_call_signature_from_exported_interface_has_or_is_using_private_name_0;
break;
- case 149:
+ case 150:
diagnosticMessage = symbolAccesibilityResult.errorModuleName ?
ts.Diagnostics.Return_type_of_index_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1 :
ts.Diagnostics.Return_type_of_index_signature_from_exported_interface_has_or_is_using_private_name_0;
break;
+ case 144:
case 143:
- case 142:
if (node.flags & 64) {
diagnosticMessage = symbolAccesibilityResult.errorModuleName ?
symbolAccesibilityResult.accessibility === 2 ?
@@ -25824,7 +26183,7 @@ var ts;
ts.Diagnostics.Return_type_of_public_static_method_from_exported_class_has_or_is_using_name_0_from_private_module_1 :
ts.Diagnostics.Return_type_of_public_static_method_from_exported_class_has_or_is_using_private_name_0;
}
- else if (node.parent.kind === 216) {
+ else if (node.parent.kind === 217) {
diagnosticMessage = symbolAccesibilityResult.errorModuleName ?
symbolAccesibilityResult.accessibility === 2 ?
ts.Diagnostics.Return_type_of_public_method_from_exported_class_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named :
@@ -25837,7 +26196,7 @@ var ts;
ts.Diagnostics.Return_type_of_method_from_exported_interface_has_or_is_using_private_name_0;
}
break;
- case 215:
+ case 216:
diagnosticMessage = symbolAccesibilityResult.errorModuleName ?
symbolAccesibilityResult.accessibility === 2 ?
ts.Diagnostics.Return_type_of_exported_function_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named :
@@ -25869,9 +26228,9 @@ var ts;
write("?");
}
decreaseIndent();
- if (node.parent.kind === 152 ||
- node.parent.kind === 153 ||
- node.parent.parent.kind === 155) {
+ if (node.parent.kind === 153 ||
+ node.parent.kind === 154 ||
+ node.parent.parent.kind === 156) {
emitTypeOfVariableDeclarationFromTypeLiteral(node);
}
else if (!(node.parent.flags & 16)) {
@@ -25887,22 +26246,22 @@ var ts;
}
function getParameterDeclarationTypeVisibilityDiagnosticMessage(symbolAccesibilityResult) {
switch (node.parent.kind) {
- case 144:
+ case 145:
return symbolAccesibilityResult.errorModuleName ?
symbolAccesibilityResult.accessibility === 2 ?
ts.Diagnostics.Parameter_0_of_constructor_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named :
ts.Diagnostics.Parameter_0_of_constructor_from_exported_class_has_or_is_using_name_1_from_private_module_2 :
ts.Diagnostics.Parameter_0_of_constructor_from_exported_class_has_or_is_using_private_name_1;
- case 148:
+ case 149:
return symbolAccesibilityResult.errorModuleName ?
ts.Diagnostics.Parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_name_1_from_private_module_2 :
ts.Diagnostics.Parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_1;
- case 147:
+ case 148:
return symbolAccesibilityResult.errorModuleName ?
ts.Diagnostics.Parameter_0_of_call_signature_from_exported_interface_has_or_is_using_name_1_from_private_module_2 :
ts.Diagnostics.Parameter_0_of_call_signature_from_exported_interface_has_or_is_using_private_name_1;
+ case 144:
case 143:
- case 142:
if (node.parent.flags & 64) {
return symbolAccesibilityResult.errorModuleName ?
symbolAccesibilityResult.accessibility === 2 ?
@@ -25910,7 +26269,7 @@ var ts;
ts.Diagnostics.Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_name_1_from_private_module_2 :
ts.Diagnostics.Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_private_name_1;
}
- else if (node.parent.parent.kind === 216) {
+ else if (node.parent.parent.kind === 217) {
return symbolAccesibilityResult.errorModuleName ?
symbolAccesibilityResult.accessibility === 2 ?
ts.Diagnostics.Parameter_0_of_public_method_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named :
@@ -25922,7 +26281,7 @@ var ts;
ts.Diagnostics.Parameter_0_of_method_from_exported_interface_has_or_is_using_name_1_from_private_module_2 :
ts.Diagnostics.Parameter_0_of_method_from_exported_interface_has_or_is_using_private_name_1;
}
- case 215:
+ case 216:
return symbolAccesibilityResult.errorModuleName ?
symbolAccesibilityResult.accessibility === 2 ?
ts.Diagnostics.Parameter_0_of_exported_function_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named :
@@ -25933,12 +26292,12 @@ var ts;
}
}
function emitBindingPattern(bindingPattern) {
- if (bindingPattern.kind === 163) {
+ if (bindingPattern.kind === 164) {
write("{");
emitCommaList(bindingPattern.elements, emitBindingElement);
write("}");
}
- else if (bindingPattern.kind === 164) {
+ else if (bindingPattern.kind === 165) {
write("[");
var elements = bindingPattern.elements;
emitCommaList(elements, emitBindingElement);
@@ -25949,10 +26308,10 @@ var ts;
}
}
function emitBindingElement(bindingElement) {
- if (bindingElement.kind === 189) {
+ if (bindingElement.kind === 190) {
write(" ");
}
- else if (bindingElement.kind === 165) {
+ else if (bindingElement.kind === 166) {
if (bindingElement.propertyName) {
writeTextOfNode(currentText, bindingElement.propertyName);
write(": ");
@@ -25974,39 +26333,39 @@ var ts;
}
function emitNode(node) {
switch (node.kind) {
- case 215:
- case 220:
- case 223:
- case 217:
case 216:
- case 218:
- case 219:
- return emitModuleElement(node, isModuleElementVisible(node));
- case 195:
- return emitModuleElement(node, isVariableStatementVisible(node));
+ case 221:
case 224:
+ case 218:
+ case 217:
+ case 219:
+ case 220:
+ return emitModuleElement(node, isModuleElementVisible(node));
+ case 196:
+ return emitModuleElement(node, isVariableStatementVisible(node));
+ case 225:
return emitModuleElement(node, !node.importClause);
- case 230:
+ case 231:
return emitExportDeclaration(node);
+ case 145:
case 144:
case 143:
- case 142:
return writeFunctionDeclaration(node);
- case 148:
- case 147:
case 149:
+ case 148:
+ case 150:
return emitSignatureDeclarationWithJsDocComments(node);
- case 145:
case 146:
+ case 147:
return emitAccessorDeclaration(node);
+ case 142:
case 141:
- case 140:
return emitPropertyDeclaration(node);
- case 249:
- return emitEnumMemberDeclaration(node);
- case 229:
- return emitExportAssignment(node);
case 250:
+ return emitEnumMemberDeclaration(node);
+ case 230:
+ return emitExportAssignment(node);
+ case 251:
return emitSourceFile(node);
}
}
@@ -26333,7 +26692,7 @@ var ts;
var decorateHelper = "\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};";
var metadataHelper = "\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};";
var paramHelper = "\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};";
- var awaiterHelper = "\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, Promise, generator) {\n return new Promise(function (resolve, reject) {\n generator = generator.call(thisArg, _arguments);\n function cast(value) { return value instanceof Promise && value.constructor === Promise ? value : new Promise(function (resolve) { resolve(value); }); }\n function onfulfill(value) { try { step(\"next\", value); } catch (e) { reject(e); } }\n function onreject(value) { try { step(\"throw\", value); } catch (e) { reject(e); } }\n function step(verb, value) {\n var result = generator[verb](value);\n result.done ? resolve(result.value) : cast(result.value).then(onfulfill, onreject);\n }\n step(\"next\", void 0);\n });\n};";
+ var awaiterHelper = "\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n return new P(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator.throw(value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\n step((generator = generator.call(thisArg, _arguments)).next());\n });\n};";
var compilerOptions = host.getCompilerOptions();
var languageVersion = ts.getEmitScriptTarget(compilerOptions);
var modulekind = ts.getEmitModuleKind(compilerOptions);
@@ -26421,6 +26780,7 @@ var ts;
var sourceMapData;
var isOwnFileEmit;
var emitLeadingCommentsOfPosition = compilerOptions.removeComments ? function (pos) { } : emitLeadingCommentsOfPositionWorker;
+ var setSourceMapWriterEmit = compilerOptions.sourceMap || compilerOptions.inlineSourceMap ? changeSourceMapEmit : function (writer) { };
var moduleEmitDelegates = (_a = {},
_a[5] = emitES6Module,
_a[2] = emitAMDModule,
@@ -26499,19 +26859,19 @@ var ts;
}
function makeTempVariableName(flags) {
if (flags && !(tempFlags & flags)) {
- var name_19 = flags === 268435456 ? "_i" : "_n";
- if (isUniqueName(name_19)) {
+ var name_22 = flags === 268435456 ? "_i" : "_n";
+ if (isUniqueName(name_22)) {
tempFlags |= flags;
- return name_19;
+ return name_22;
}
}
while (true) {
var count = tempFlags & 268435455;
tempFlags++;
if (count !== 8 && count !== 13) {
- var name_20 = count < 26 ? "_" + String.fromCharCode(97 + count) : "_" + (count - 26);
- if (isUniqueName(name_20)) {
- return name_20;
+ var name_23 = count < 26 ? "_" + String.fromCharCode(97 + count) : "_" + (count - 26);
+ if (isUniqueName(name_23)) {
+ return name_23;
}
}
}
@@ -26549,17 +26909,17 @@ var ts;
switch (node.kind) {
case 69:
return makeUniqueName(node.text);
+ case 221:
case 220:
- case 219:
return generateNameForModuleOrEnum(node);
- case 224:
- case 230:
+ case 225:
+ case 231:
return generateNameForImportOrExportDeclaration(node);
- case 215:
case 216:
- case 229:
+ case 217:
+ case 230:
return generateNameForExportDefault();
- case 188:
+ case 189:
return generateNameForClassExpression();
}
}
@@ -26799,10 +27159,10 @@ var ts;
emitParenthesizedIf(node.tag, needsParenthesisForPropertyAccessOrInvocation(node.tag));
write("(");
emit(tempVariable);
- if (node.template.kind === 185) {
+ if (node.template.kind === 186) {
ts.forEach(node.template.templateSpans, function (templateSpan) {
write(", ");
- var needsParens = templateSpan.expression.kind === 183
+ var needsParens = templateSpan.expression.kind === 184
&& templateSpan.expression.operatorToken.kind === 24;
emitParenthesizedIf(templateSpan.expression, needsParens);
});
@@ -26826,7 +27186,7 @@ var ts;
}
for (var i = 0, n = node.templateSpans.length; i < n; i++) {
var templateSpan = node.templateSpans[i];
- var needsParens = templateSpan.expression.kind !== 174
+ var needsParens = templateSpan.expression.kind !== 175
&& comparePrecedenceToBinaryPlus(templateSpan.expression) !== 1;
if (i > 0 || headEmitted) {
write(" + ");
@@ -26846,11 +27206,11 @@ var ts;
}
function templateNeedsParens(template, parent) {
switch (parent.kind) {
- case 170:
case 171:
- return parent.expression === template;
case 172:
- case 174:
+ return parent.expression === template;
+ case 173:
+ case 175:
return false;
default:
return comparePrecedenceToBinaryPlus(parent) !== -1;
@@ -26858,7 +27218,7 @@ var ts;
}
function comparePrecedenceToBinaryPlus(expression) {
switch (expression.kind) {
- case 183:
+ case 184:
switch (expression.operatorToken.kind) {
case 37:
case 39:
@@ -26870,8 +27230,8 @@ var ts;
default:
return -1;
}
- case 186:
- case 184:
+ case 187:
+ case 185:
return -1;
default:
return 1;
@@ -26927,37 +27287,37 @@ var ts;
}
else {
var attrs = openingNode.attributes;
- if (ts.forEach(attrs, function (attr) { return attr.kind === 241; })) {
+ if (ts.forEach(attrs, function (attr) { return attr.kind === 242; })) {
emitExpressionIdentifier(syntheticReactRef);
write(".__spread(");
var haveOpenedObjectLiteral = false;
- for (var i_1 = 0; i_1 < attrs.length; i_1++) {
- if (attrs[i_1].kind === 241) {
- if (i_1 === 0) {
+ for (var i = 0; i < attrs.length; i++) {
+ if (attrs[i].kind === 242) {
+ if (i === 0) {
write("{}, ");
}
if (haveOpenedObjectLiteral) {
write("}");
haveOpenedObjectLiteral = false;
}
- if (i_1 > 0) {
+ if (i > 0) {
write(", ");
}
- emit(attrs[i_1].expression);
+ emit(attrs[i].expression);
}
else {
- ts.Debug.assert(attrs[i_1].kind === 240);
+ ts.Debug.assert(attrs[i].kind === 241);
if (haveOpenedObjectLiteral) {
write(", ");
}
else {
haveOpenedObjectLiteral = true;
- if (i_1 > 0) {
+ if (i > 0) {
write(", ");
}
write("{");
}
- emitJsxAttribute(attrs[i_1]);
+ emitJsxAttribute(attrs[i]);
}
}
if (haveOpenedObjectLiteral)
@@ -26966,7 +27326,7 @@ var ts;
}
else {
write("{");
- for (var i = 0; i < attrs.length; i++) {
+ for (var i = 0, n = attrs.length; i < n; i++) {
if (i > 0) {
write(", ");
}
@@ -26977,10 +27337,10 @@ var ts;
}
if (children) {
for (var i = 0; i < children.length; i++) {
- if (children[i].kind === 242 && !(children[i].expression)) {
+ if (children[i].kind === 243 && !(children[i].expression)) {
continue;
}
- if (children[i].kind === 238) {
+ if (children[i].kind === 239) {
var text = getTextToEmit(children[i]);
if (text !== undefined) {
write(", \"");
@@ -26997,11 +27357,11 @@ var ts;
write(")");
emitTrailingComments(openingNode);
}
- if (node.kind === 235) {
+ if (node.kind === 236) {
emitJsxElement(node.openingElement, node.children);
}
else {
- ts.Debug.assert(node.kind === 236);
+ ts.Debug.assert(node.kind === 237);
emitJsxElement(node);
}
}
@@ -27023,11 +27383,11 @@ var ts;
if (i > 0) {
write(" ");
}
- if (attribs[i].kind === 241) {
+ if (attribs[i].kind === 242) {
emitJsxSpreadAttribute(attribs[i]);
}
else {
- ts.Debug.assert(attribs[i].kind === 240);
+ ts.Debug.assert(attribs[i].kind === 241);
emitJsxAttribute(attribs[i]);
}
}
@@ -27035,11 +27395,11 @@ var ts;
function emitJsxOpeningOrSelfClosingElement(node) {
write("<");
emit(node.tagName);
- if (node.attributes.length > 0 || (node.kind === 236)) {
+ if (node.attributes.length > 0 || (node.kind === 237)) {
write(" ");
}
emitAttributes(node.attributes);
- if (node.kind === 236) {
+ if (node.kind === 237) {
write("/>");
}
else {
@@ -27058,20 +27418,20 @@ var ts;
}
emitJsxClosingElement(node.closingElement);
}
- if (node.kind === 235) {
+ if (node.kind === 236) {
emitJsxElement(node);
}
else {
- ts.Debug.assert(node.kind === 236);
+ ts.Debug.assert(node.kind === 237);
emitJsxOpeningOrSelfClosingElement(node);
}
}
function emitExpressionForPropertyName(node) {
- ts.Debug.assert(node.kind !== 165);
+ ts.Debug.assert(node.kind !== 166);
if (node.kind === 9) {
emitLiteral(node);
}
- else if (node.kind === 136) {
+ else if (node.kind === 137) {
if (ts.nodeIsDecorated(node.parent)) {
if (!computedPropertyNamesToGeneratedNames) {
computedPropertyNamesToGeneratedNames = [];
@@ -27102,62 +27462,62 @@ var ts;
function isExpressionIdentifier(node) {
var parent = node.parent;
switch (parent.kind) {
- case 166:
- case 191:
- case 183:
- case 170:
- case 243:
- case 136:
+ case 167:
+ case 192:
case 184:
- case 139:
- case 177:
- case 199:
- case 169:
- case 229:
- case 197:
- case 190:
- case 201:
+ case 171:
+ case 244:
+ case 137:
+ case 185:
+ case 140:
+ case 178:
+ case 200:
+ case 170:
+ case 230:
+ case 198:
+ case 191:
case 202:
case 203:
- case 198:
- case 239:
- case 236:
+ case 204:
+ case 199:
+ case 240:
case 237:
- case 241:
+ case 238:
case 242:
- case 171:
- case 174:
- case 182:
- case 181:
- case 206:
- case 248:
- case 187:
- case 208:
+ case 243:
case 172:
- case 192:
- case 210:
- case 173:
- case 178:
- case 179:
- case 200:
- case 207:
- case 186:
- return true;
- case 165:
- case 249:
- case 138:
- case 247:
- case 141:
- case 213:
- return parent.initializer === node;
- case 168:
- return parent.expression === node;
- case 176:
case 175:
+ case 183:
+ case 182:
+ case 207:
+ case 249:
+ case 188:
+ case 209:
+ case 173:
+ case 193:
+ case 211:
+ case 174:
+ case 179:
+ case 180:
+ case 201:
+ case 208:
+ case 187:
+ return true;
+ case 166:
+ case 250:
+ case 139:
+ case 248:
+ case 142:
+ case 214:
+ return parent.initializer === node;
+ case 169:
+ return parent.expression === node;
+ case 177:
+ case 176:
return parent.body === node;
- case 223:
+ case 224:
return parent.moduleReference === node;
- case 135:
+ case 136:
return parent.left === node;
}
return false;
@@ -27169,7 +27529,7 @@ var ts;
}
var container = resolver.getReferencedExportContainer(node);
if (container) {
- if (container.kind === 250) {
+ if (container.kind === 251) {
if (modulekind !== 5 && modulekind !== 4) {
write("exports.");
}
@@ -27183,15 +27543,15 @@ var ts;
if (modulekind !== 5) {
var declaration = resolver.getReferencedImportDeclaration(node);
if (declaration) {
- if (declaration.kind === 225) {
+ if (declaration.kind === 226) {
write(getGeneratedNameForNode(declaration.parent));
write(languageVersion === 0 ? "[\"default\"]" : ".default");
return;
}
- else if (declaration.kind === 228) {
+ else if (declaration.kind === 229) {
write(getGeneratedNameForNode(declaration.parent.parent.parent));
- var name_21 = declaration.propertyName || declaration.name;
- var identifier = ts.getTextOfNodeFromSourceText(currentText, name_21);
+ var name_24 = declaration.propertyName || declaration.name;
+ var identifier = ts.getTextOfNodeFromSourceText(currentText, name_24);
if (languageVersion === 0 && identifier === "default") {
write("[\"default\"]");
}
@@ -27220,13 +27580,13 @@ var ts;
}
function isNameOfNestedRedeclaration(node) {
if (languageVersion < 2) {
- var parent_6 = node.parent;
- switch (parent_6.kind) {
- case 165:
- case 216:
- case 219:
- case 213:
- return parent_6.name === node && resolver.isNestedRedeclaration(parent_6);
+ var parent_7 = node.parent;
+ switch (parent_7.kind) {
+ case 166:
+ case 217:
+ case 220:
+ case 214:
+ return parent_7.name === node && resolver.isNestedRedeclaration(parent_7);
}
}
return false;
@@ -27234,8 +27594,8 @@ var ts;
function emitIdentifier(node) {
if (convertedLoopState) {
if (node.text == "arguments" && resolver.isArgumentsLocalBinding(node)) {
- var name_22 = convertedLoopState.argumentsName || (convertedLoopState.argumentsName = makeUniqueName("arguments"));
- write(name_22);
+ var name_25 = convertedLoopState.argumentsName || (convertedLoopState.argumentsName = makeUniqueName("arguments"));
+ write(name_25);
return;
}
}
@@ -27335,10 +27695,10 @@ var ts;
}
}
function needsParenthesisForAwaitExpressionAsYield(node) {
- if (node.parent.kind === 183 && !ts.isAssignmentOperator(node.parent.operatorToken.kind)) {
+ if (node.parent.kind === 184 && !ts.isAssignmentOperator(node.parent.operatorToken.kind)) {
return true;
}
- else if (node.parent.kind === 184 && node.parent.condition === node) {
+ else if (node.parent.kind === 185 && node.parent.condition === node) {
return true;
}
return false;
@@ -27346,11 +27706,11 @@ var ts;
function needsParenthesisForPropertyAccessOrInvocation(node) {
switch (node.kind) {
case 69:
- case 166:
- case 168:
+ case 167:
case 169:
case 170:
- case 174:
+ case 171:
+ case 175:
return false;
}
return true;
@@ -27367,17 +27727,17 @@ var ts;
write(", ");
}
var e = elements[pos];
- if (e.kind === 187) {
+ if (e.kind === 188) {
e = e.expression;
emitParenthesizedIf(e, group === 0 && needsParenthesisForPropertyAccessOrInvocation(e));
pos++;
- if (pos === length && group === 0 && needsUniqueCopy && e.kind !== 166) {
+ if (pos === length && group === 0 && needsUniqueCopy && e.kind !== 167) {
write(".slice()");
}
}
else {
var i = pos;
- while (i < length && elements[i].kind !== 187) {
+ while (i < length && elements[i].kind !== 188) {
i++;
}
write("[");
@@ -27400,7 +27760,7 @@ var ts;
}
}
function isSpreadElementExpression(node) {
- return node.kind === 187;
+ return node.kind === 188;
}
function emitArrayLiteral(node) {
var elements = node.elements;
@@ -27461,7 +27821,7 @@ var ts;
writeComma();
var property = properties[i];
emitStart(property);
- if (property.kind === 145 || property.kind === 146) {
+ if (property.kind === 146 || property.kind === 147) {
var accessors = ts.getAllAccessorDeclarations(node.properties, property);
if (property !== accessors.firstAccessor) {
continue;
@@ -27512,13 +27872,13 @@ var ts;
emitMemberAccessForPropertyName(property.name);
emitEnd(property.name);
write(" = ");
- if (property.kind === 247) {
+ if (property.kind === 248) {
emit(property.initializer);
}
- else if (property.kind === 248) {
+ else if (property.kind === 249) {
emitExpressionIdentifier(property.name);
}
- else if (property.kind === 143) {
+ else if (property.kind === 144) {
emitFunctionDeclaration(property);
}
else {
@@ -27550,7 +27910,7 @@ var ts;
var numProperties = properties.length;
var numInitialNonComputedProperties = numProperties;
for (var i = 0, n = properties.length; i < n; i++) {
- if (properties[i].name.kind === 136) {
+ if (properties[i].name.kind === 137) {
numInitialNonComputedProperties = i;
break;
}
@@ -27564,35 +27924,35 @@ var ts;
emitObjectLiteralBody(node, properties.length);
}
function createBinaryExpression(left, operator, right, startsOnNewLine) {
- var result = ts.createSynthesizedNode(183, startsOnNewLine);
+ var result = ts.createSynthesizedNode(184, startsOnNewLine);
result.operatorToken = ts.createSynthesizedNode(operator);
result.left = left;
result.right = right;
return result;
}
function createPropertyAccessExpression(expression, name) {
- var result = ts.createSynthesizedNode(168);
+ var result = ts.createSynthesizedNode(169);
result.expression = parenthesizeForAccess(expression);
result.dotToken = ts.createSynthesizedNode(21);
result.name = name;
return result;
}
function createElementAccessExpression(expression, argumentExpression) {
- var result = ts.createSynthesizedNode(169);
+ var result = ts.createSynthesizedNode(170);
result.expression = parenthesizeForAccess(expression);
result.argumentExpression = argumentExpression;
return result;
}
function parenthesizeForAccess(expr) {
- while (expr.kind === 173 || expr.kind === 191) {
+ while (expr.kind === 174 || expr.kind === 192) {
expr = expr.expression;
}
if (ts.isLeftHandSideExpression(expr) &&
- expr.kind !== 171 &&
+ expr.kind !== 172 &&
expr.kind !== 8) {
return expr;
}
- var node = ts.createSynthesizedNode(174);
+ var node = ts.createSynthesizedNode(175);
node.expression = expr;
return node;
}
@@ -27619,7 +27979,7 @@ var ts;
}
function isNamespaceExportReference(node) {
var container = resolver.getReferencedExportContainer(node);
- return container && container.kind !== 250;
+ return container && container.kind !== 251;
}
function emitShorthandPropertyAssignment(node) {
writeTextOfNode(currentText, node.name);
@@ -27637,7 +27997,7 @@ var ts;
if (constantValue !== undefined) {
write(constantValue.toString());
if (!compilerOptions.removeComments) {
- var propertyName = node.kind === 168 ? ts.declarationNameToString(node.name) : ts.getTextOfNode(node.argumentExpression);
+ var propertyName = node.kind === 169 ? ts.declarationNameToString(node.name) : ts.getTextOfNode(node.argumentExpression);
write(" /* " + propertyName + " */");
}
return true;
@@ -27648,7 +28008,7 @@ var ts;
if (compilerOptions.isolatedModules) {
return undefined;
}
- return node.kind === 168 || node.kind === 169
+ return node.kind === 169 || node.kind === 170
? resolver.getConstantValue(node)
: undefined;
}
@@ -27728,7 +28088,7 @@ var ts;
}
emitExpressionIdentifier(node);
break;
- case 135:
+ case 136:
emitQualifiedNameAsExpression(node, useFallback);
break;
default:
@@ -27746,10 +28106,10 @@ var ts;
write("]");
}
function hasSpreadElement(elements) {
- return ts.forEach(elements, function (e) { return e.kind === 187; });
+ return ts.forEach(elements, function (e) { return e.kind === 188; });
}
function skipParentheses(node) {
- while (node.kind === 174 || node.kind === 173 || node.kind === 191) {
+ while (node.kind === 175 || node.kind === 174 || node.kind === 192) {
node = node.expression;
}
return node;
@@ -27770,12 +28130,12 @@ var ts;
function emitCallWithSpread(node) {
var target;
var expr = skipParentheses(node.expression);
- if (expr.kind === 168) {
+ if (expr.kind === 169) {
target = emitCallTarget(expr.expression);
write(".");
emit(expr.name);
}
- else if (expr.kind === 169) {
+ else if (expr.kind === 170) {
target = emitCallTarget(expr.expression);
write("[");
emit(expr.argumentExpression);
@@ -27816,7 +28176,7 @@ var ts;
}
else {
emit(node.expression);
- superCall = node.expression.kind === 168 && node.expression.expression.kind === 95;
+ superCall = node.expression.kind === 169 && node.expression.expression.kind === 95;
}
if (superCall && languageVersion < 2) {
write(".call(");
@@ -27867,21 +28227,21 @@ var ts;
}
}
function emitParenExpression(node) {
- if (!ts.nodeIsSynthesized(node) && node.parent.kind !== 176) {
- if (node.expression.kind === 173 || node.expression.kind === 191) {
+ if (!ts.nodeIsSynthesized(node) && node.parent.kind !== 177) {
+ if (node.expression.kind === 174 || node.expression.kind === 192) {
var operand = node.expression.expression;
- while (operand.kind === 173 || operand.kind === 191) {
+ while (operand.kind === 174 || operand.kind === 192) {
operand = operand.expression;
}
- if (operand.kind !== 181 &&
+ if (operand.kind !== 182 &&
+ operand.kind !== 180 &&
operand.kind !== 179 &&
operand.kind !== 178 &&
- operand.kind !== 177 &&
- operand.kind !== 182 &&
- operand.kind !== 171 &&
- !(operand.kind === 170 && node.parent.kind === 171) &&
- !(operand.kind === 175 && node.parent.kind === 170) &&
- !(operand.kind === 8 && node.parent.kind === 168)) {
+ operand.kind !== 183 &&
+ operand.kind !== 172 &&
+ !(operand.kind === 171 && node.parent.kind === 172) &&
+ !(operand.kind === 176 && node.parent.kind === 171) &&
+ !(operand.kind === 8 && node.parent.kind === 169)) {
emit(operand);
return;
}
@@ -27910,7 +28270,7 @@ var ts;
if (!isCurrentFileSystemExternalModule() || node.kind !== 69 || ts.nodeIsSynthesized(node)) {
return false;
}
- var isVariableDeclarationOrBindingElement = node.parent && (node.parent.kind === 213 || node.parent.kind === 165);
+ var isVariableDeclarationOrBindingElement = node.parent && (node.parent.kind === 214 || node.parent.kind === 166);
var targetDeclaration = isVariableDeclarationOrBindingElement
? node.parent
: resolver.getReferencedValueDeclaration(node);
@@ -27925,7 +28285,7 @@ var ts;
write("\", ");
}
write(ts.tokenToString(node.operator));
- if (node.operand.kind === 181) {
+ if (node.operand.kind === 182) {
var operand = node.operand;
if (node.operator === 35 && (operand.operator === 35 || operand.operator === 41)) {
write(" ");
@@ -27968,10 +28328,10 @@ var ts;
}
var current = node;
while (current) {
- if (current.kind === 250) {
+ if (current.kind === 251) {
return !isExported || ((ts.getCombinedNodeFlags(node) & 2) !== 0);
}
- else if (ts.isFunctionLike(current) || current.kind === 221) {
+ else if (ts.isFunctionLike(current) || current.kind === 222) {
return false;
}
else {
@@ -27987,14 +28347,14 @@ var ts;
if (ts.isElementAccessExpression(leftHandSideExpression)) {
shouldEmitParentheses = true;
write("(");
- synthesizedLHS = ts.createSynthesizedNode(169, false);
+ synthesizedLHS = ts.createSynthesizedNode(170, false);
var identifier = emitTempVariableAssignment(leftHandSideExpression.expression, false, false);
synthesizedLHS.expression = identifier;
if (leftHandSideExpression.argumentExpression.kind !== 8 &&
leftHandSideExpression.argumentExpression.kind !== 9) {
var tempArgumentExpression = createAndRecordTempVariable(268435456);
synthesizedLHS.argumentExpression = tempArgumentExpression;
- emitAssignment(tempArgumentExpression, leftHandSideExpression.argumentExpression, true);
+ emitAssignment(tempArgumentExpression, leftHandSideExpression.argumentExpression, true, leftHandSideExpression.expression);
}
else {
synthesizedLHS.argumentExpression = leftHandSideExpression.argumentExpression;
@@ -28004,7 +28364,7 @@ var ts;
else if (ts.isPropertyAccessExpression(leftHandSideExpression)) {
shouldEmitParentheses = true;
write("(");
- synthesizedLHS = ts.createSynthesizedNode(168, false);
+ synthesizedLHS = ts.createSynthesizedNode(169, false);
var identifier = emitTempVariableAssignment(leftHandSideExpression.expression, false, false);
synthesizedLHS.expression = identifier;
synthesizedLHS.dotToken = leftHandSideExpression.dotToken;
@@ -28032,8 +28392,8 @@ var ts;
}
function emitBinaryExpression(node) {
if (languageVersion < 2 && node.operatorToken.kind === 56 &&
- (node.left.kind === 167 || node.left.kind === 166)) {
- emitDestructuring(node, node.parent.kind === 197);
+ (node.left.kind === 168 || node.left.kind === 167)) {
+ emitDestructuring(node, node.parent.kind === 198);
}
else {
var exportChanged = node.operatorToken.kind >= 56 &&
@@ -28085,7 +28445,7 @@ var ts;
}
}
function isSingleLineEmptyBlock(node) {
- if (node && node.kind === 194) {
+ if (node && node.kind === 195) {
var block = node;
return block.statements.length === 0 && nodeEndIsOnSameLineAsNodeStart(block, block);
}
@@ -28099,12 +28459,12 @@ var ts;
}
emitToken(15, node.pos);
increaseIndent();
- if (node.kind === 221) {
- ts.Debug.assert(node.parent.kind === 220);
+ if (node.kind === 222) {
+ ts.Debug.assert(node.parent.kind === 221);
emitCaptureThisForNodeIfNecessary(node.parent);
}
emitLines(node.statements);
- if (node.kind === 221) {
+ if (node.kind === 222) {
emitTempDeclarations(true);
}
decreaseIndent();
@@ -28112,7 +28472,7 @@ var ts;
emitToken(16, node.statements.end);
}
function emitEmbeddedStatement(node) {
- if (node.kind === 194) {
+ if (node.kind === 195) {
write(" ");
emit(node);
}
@@ -28124,7 +28484,7 @@ var ts;
}
}
function emitExpressionStatement(node) {
- emitParenthesizedIf(node.expression, node.expression.kind === 176);
+ emitParenthesizedIf(node.expression, node.expression.kind === 177);
write(";");
}
function emitIfStatement(node) {
@@ -28137,7 +28497,7 @@ var ts;
if (node.elseStatement) {
writeLine();
emitToken(80, node.thenStatement.end);
- if (node.elseStatement.kind === 198) {
+ if (node.elseStatement.kind === 199) {
write(" ");
emit(node.elseStatement);
}
@@ -28157,7 +28517,7 @@ var ts;
else {
emitNormalLoopBody(node, true);
}
- if (node.statement.kind === 194) {
+ if (node.statement.kind === 195) {
write(" ");
}
else {
@@ -28181,7 +28541,7 @@ var ts;
emitNormalLoopBody(node, true);
}
}
- function tryEmitStartOfVariableDeclarationList(decl, startPos) {
+ function tryEmitStartOfVariableDeclarationList(decl) {
if (shouldHoistVariable(decl, true)) {
return false;
}
@@ -28192,31 +28552,20 @@ var ts;
}
return false;
}
- var tokenKind = 102;
+ emitStart(decl);
if (decl && languageVersion >= 2) {
if (ts.isLet(decl)) {
- tokenKind = 108;
+ write("let ");
}
else if (ts.isConst(decl)) {
- tokenKind = 74;
+ write("const ");
+ }
+ else {
+ write("var ");
}
- }
- if (startPos !== undefined) {
- emitToken(tokenKind, startPos);
- write(" ");
}
else {
- switch (tokenKind) {
- case 102:
- write("var ");
- break;
- case 108:
- write("let ");
- break;
- case 74:
- write("const ");
- break;
- }
+ write("var ");
}
return true;
}
@@ -28248,7 +28597,7 @@ var ts;
}
else {
var loop = convertLoopBody(node);
- if (node.parent.kind === 209) {
+ if (node.parent.kind === 210) {
emitLabelAndColon(node.parent);
}
loopEmitter(node, loop);
@@ -28258,10 +28607,11 @@ var ts;
var functionName = makeUniqueName("_loop");
var loopInitializer;
switch (node.kind) {
- case 201:
case 202:
case 203:
- if (node.initializer.kind === 214) {
+ case 204:
+ var initializer = node.initializer;
+ if (initializer && initializer.kind === 215) {
loopInitializer = node.initializer;
}
break;
@@ -28274,7 +28624,7 @@ var ts;
collectNames(varDeclaration.name);
}
}
- var bodyIsBlock = node.statement.kind === 194;
+ var bodyIsBlock = node.statement.kind === 195;
var paramList = loopParameters ? loopParameters.join(", ") : "";
writeLine();
write("var " + functionName + " = function(" + paramList + ")");
@@ -28371,7 +28721,7 @@ var ts;
if (emitAsEmbeddedStatement) {
emitEmbeddedStatement(node.statement);
}
- else if (node.statement.kind === 194) {
+ else if (node.statement.kind === 195) {
emitLines(node.statement.statements);
}
else {
@@ -28467,9 +28817,9 @@ var ts;
var endPos = emitToken(86, node.pos);
write(" ");
endPos = emitToken(17, endPos);
- if (node.initializer && node.initializer.kind === 214) {
+ if (node.initializer && node.initializer.kind === 215) {
var variableDeclarationList = node.initializer;
- var startIsEmitted = tryEmitStartOfVariableDeclarationList(variableDeclarationList, endPos);
+ var startIsEmitted = tryEmitStartOfVariableDeclarationList(variableDeclarationList);
if (startIsEmitted) {
emitCommaList(variableDeclarationList.declarations);
}
@@ -28493,7 +28843,7 @@ var ts;
}
}
function emitForInOrForOfStatement(node) {
- if (languageVersion < 2 && node.kind === 203) {
+ if (languageVersion < 2 && node.kind === 204) {
emitLoop(node, emitDownLevelForOfStatementWorker);
}
else {
@@ -28504,17 +28854,17 @@ var ts;
var endPos = emitToken(86, node.pos);
write(" ");
endPos = emitToken(17, endPos);
- if (node.initializer.kind === 214) {
+ if (node.initializer.kind === 215) {
var variableDeclarationList = node.initializer;
if (variableDeclarationList.declarations.length >= 1) {
- tryEmitStartOfVariableDeclarationList(variableDeclarationList, endPos);
+ tryEmitStartOfVariableDeclarationList(variableDeclarationList);
emit(variableDeclarationList.declarations[0]);
}
}
else {
emit(node.initializer);
}
- if (node.kind === 202) {
+ if (node.kind === 203) {
write(" in ");
}
else {
@@ -28550,24 +28900,24 @@ var ts;
emitNodeWithoutSourceMap(node.expression);
emitEnd(node.expression);
write("; ");
- emitStart(node.initializer);
+ emitStart(node.expression);
emitNodeWithoutSourceMap(counter);
write(" < ");
emitNodeWithCommentsAndWithoutSourcemap(rhsReference);
write(".length");
- emitEnd(node.initializer);
+ emitEnd(node.expression);
write("; ");
- emitStart(node.initializer);
+ emitStart(node.expression);
emitNodeWithoutSourceMap(counter);
write("++");
- emitEnd(node.initializer);
+ emitEnd(node.expression);
emitToken(18, node.expression.end);
write(" {");
writeLine();
increaseIndent();
var rhsIterationValue = createElementAccessExpression(rhsReference, counter);
emitStart(node.initializer);
- if (node.initializer.kind === 214) {
+ if (node.initializer.kind === 215) {
write("var ");
var variableDeclarationList = node.initializer;
if (variableDeclarationList.declarations.length > 0) {
@@ -28589,7 +28939,7 @@ var ts;
}
else {
var assignmentExpression = createBinaryExpression(node.initializer, 56, rhsIterationValue, false);
- if (node.initializer.kind === 166 || node.initializer.kind === 167) {
+ if (node.initializer.kind === 167 || node.initializer.kind === 168) {
emitDestructuring(assignmentExpression, true, undefined);
}
else {
@@ -28611,12 +28961,12 @@ var ts;
}
function emitBreakOrContinueStatement(node) {
if (convertedLoopState) {
- var jump = node.kind === 205 ? 2 : 4;
+ var jump = node.kind === 206 ? 2 : 4;
var canUseBreakOrContinue = (node.label && convertedLoopState.labels && convertedLoopState.labels[node.label.text]) ||
(!node.label && (convertedLoopState.allowedNonLabeledJumps & jump));
if (!canUseBreakOrContinue) {
if (!node.label) {
- if (node.kind === 205) {
+ if (node.kind === 206) {
convertedLoopState.nonLocalJumps |= 2;
write("return \"break\";");
}
@@ -28627,7 +28977,7 @@ var ts;
}
else {
var labelMarker;
- if (node.kind === 205) {
+ if (node.kind === 206) {
labelMarker = "break-" + node.label.text;
setLabeledJump(convertedLoopState, true, node.label.text, labelMarker);
}
@@ -28640,7 +28990,7 @@ var ts;
return;
}
}
- emitToken(node.kind === 205 ? 70 : 75, node.pos);
+ emitToken(node.kind === 206 ? 70 : 75, node.pos);
emitOptional(" ", node.label);
write(";");
}
@@ -28705,7 +29055,7 @@ var ts;
ts.getLineOfLocalPositionFromLineMap(currentLineMap, ts.skipTrivia(currentText, node2.pos));
}
function emitCaseOrDefaultClause(node) {
- if (node.kind === 243) {
+ if (node.kind === 244) {
write("case ");
emit(node.expression);
write(":");
@@ -28774,7 +29124,7 @@ var ts;
function getContainingModule(node) {
do {
node = node.parent;
- } while (node && node.kind !== 220);
+ } while (node && node.kind !== 221);
return node;
}
function emitContainingModuleName(node) {
@@ -28799,13 +29149,13 @@ var ts;
function createVoidZero() {
var zero = ts.createSynthesizedNode(8);
zero.text = "0";
- var result = ts.createSynthesizedNode(179);
+ var result = ts.createSynthesizedNode(180);
result.expression = zero;
return result;
}
function emitEs6ExportDefaultCompat(node) {
- if (node.parent.kind === 250) {
- ts.Debug.assert(!!(node.flags & 512) || node.kind === 229);
+ if (node.parent.kind === 251) {
+ ts.Debug.assert(!!(node.flags & 512) || node.kind === 230);
if (modulekind === 1 || modulekind === 2 || modulekind === 3) {
if (!isEs6Module) {
if (languageVersion !== 0) {
@@ -28890,7 +29240,7 @@ var ts;
emitEnd(specifier.name);
write(";");
}
- function emitAssignment(name, value, shouldEmitCommaBeforeAssignment) {
+ function emitAssignment(name, value, shouldEmitCommaBeforeAssignment, nodeForSourceMap) {
if (shouldEmitCommaBeforeAssignment) {
write(", ");
}
@@ -28900,63 +29250,75 @@ var ts;
emitNodeWithCommentsAndWithoutSourcemap(name);
write("\", ");
}
- var isVariableDeclarationOrBindingElement = name.parent && (name.parent.kind === 213 || name.parent.kind === 165);
- if (isVariableDeclarationOrBindingElement) {
- emitModuleMemberName(name.parent);
- }
- else {
- emit(name);
- }
- write(" = ");
- emit(value);
+ var isVariableDeclarationOrBindingElement = name.parent && (name.parent.kind === 214 || name.parent.kind === 166);
+ emitStart(isFirstVariableDeclaration(nodeForSourceMap) ? nodeForSourceMap.parent : nodeForSourceMap);
+ withTemporaryNoSourceMap(function () {
+ if (isVariableDeclarationOrBindingElement) {
+ emitModuleMemberName(name.parent);
+ }
+ else {
+ emit(name);
+ }
+ write(" = ");
+ emit(value);
+ });
+ emitEnd(nodeForSourceMap, true);
if (exportChanged) {
write(")");
}
}
- function emitTempVariableAssignment(expression, canDefineTempVariablesInPlace, shouldEmitCommaBeforeAssignment) {
+ function emitTempVariableAssignment(expression, canDefineTempVariablesInPlace, shouldEmitCommaBeforeAssignment, sourceMapNode) {
var identifier = createTempVariable(0);
if (!canDefineTempVariablesInPlace) {
recordTempDeclaration(identifier);
}
- emitAssignment(identifier, expression, shouldEmitCommaBeforeAssignment);
+ emitAssignment(identifier, expression, shouldEmitCommaBeforeAssignment, sourceMapNode || expression.parent);
return identifier;
}
+ function isFirstVariableDeclaration(root) {
+ return root.kind === 214 &&
+ root.parent.kind === 215 &&
+ root.parent.declarations[0] === root;
+ }
function emitDestructuring(root, isAssignmentExpressionStatement, value) {
var emitCount = 0;
var canDefineTempVariablesInPlace = false;
- if (root.kind === 213) {
+ if (root.kind === 214) {
var isExported = ts.getCombinedNodeFlags(root) & 2;
var isSourceLevelForSystemModuleKind = shouldHoistDeclarationInSystemJsModule(root);
canDefineTempVariablesInPlace = !isExported && !isSourceLevelForSystemModuleKind;
}
- else if (root.kind === 138) {
+ else if (root.kind === 139) {
canDefineTempVariablesInPlace = true;
}
- if (root.kind === 183) {
+ if (root.kind === 184) {
emitAssignmentExpression(root);
}
else {
ts.Debug.assert(!isAssignmentExpressionStatement);
+ if (isFirstVariableDeclaration(root)) {
+ sourceMap.changeEmitSourcePos();
+ }
emitBindingElement(root, value);
}
- function ensureIdentifier(expr, reuseIdentifierExpressions) {
+ function ensureIdentifier(expr, reuseIdentifierExpressions, sourceMapNode) {
if (expr.kind === 69 && reuseIdentifierExpressions) {
return expr;
}
- var identifier = emitTempVariableAssignment(expr, canDefineTempVariablesInPlace, emitCount > 0);
+ var identifier = emitTempVariableAssignment(expr, canDefineTempVariablesInPlace, emitCount > 0, sourceMapNode);
emitCount++;
return identifier;
}
- function createDefaultValueCheck(value, defaultValue) {
- value = ensureIdentifier(value, true);
- var equals = ts.createSynthesizedNode(183);
+ function createDefaultValueCheck(value, defaultValue, sourceMapNode) {
+ value = ensureIdentifier(value, true, sourceMapNode);
+ var equals = ts.createSynthesizedNode(184);
equals.left = value;
equals.operatorToken = ts.createSynthesizedNode(32);
equals.right = createVoidZero();
return createConditionalExpression(equals, defaultValue, value);
}
function createConditionalExpression(condition, whenTrue, whenFalse) {
- var cond = ts.createSynthesizedNode(184);
+ var cond = ts.createSynthesizedNode(185);
cond.condition = condition;
cond.questionToken = ts.createSynthesizedNode(53);
cond.whenTrue = whenTrue;
@@ -28971,9 +29333,9 @@ var ts;
}
function createPropertyAccessForDestructuringProperty(object, propName) {
var index;
- var nameIsComputed = propName.kind === 136;
+ var nameIsComputed = propName.kind === 137;
if (nameIsComputed) {
- index = ensureIdentifier(propName.expression, false);
+ index = ensureIdentifier(propName.expression, false, propName);
}
else {
index = ts.createSynthesizedNode(propName.kind);
@@ -28984,7 +29346,7 @@ var ts;
: createElementAccessExpression(object, index);
}
function createSliceCall(value, sliceIndex) {
- var call = ts.createSynthesizedNode(170);
+ var call = ts.createSynthesizedNode(171);
var sliceIdentifier = ts.createSynthesizedNode(69);
sliceIdentifier.text = "slice";
call.expression = createPropertyAccessExpression(value, sliceIdentifier);
@@ -28992,56 +29354,56 @@ var ts;
call.arguments[0] = createNumericLiteral(sliceIndex);
return call;
}
- function emitObjectLiteralAssignment(target, value) {
+ function emitObjectLiteralAssignment(target, value, sourceMapNode) {
var properties = target.properties;
if (properties.length !== 1) {
- value = ensureIdentifier(value, true);
+ value = ensureIdentifier(value, true, sourceMapNode);
}
for (var _a = 0, properties_5 = properties; _a < properties_5.length; _a++) {
var p = properties_5[_a];
- if (p.kind === 247 || p.kind === 248) {
+ if (p.kind === 248 || p.kind === 249) {
var propName = p.name;
- var target_1 = p.kind === 248 ? p : p.initializer || propName;
- emitDestructuringAssignment(target_1, createPropertyAccessForDestructuringProperty(value, propName));
+ var target_1 = p.kind === 249 ? p : p.initializer || propName;
+ emitDestructuringAssignment(target_1, createPropertyAccessForDestructuringProperty(value, propName), p);
}
}
}
- function emitArrayLiteralAssignment(target, value) {
+ function emitArrayLiteralAssignment(target, value, sourceMapNode) {
var elements = target.elements;
if (elements.length !== 1) {
- value = ensureIdentifier(value, true);
+ value = ensureIdentifier(value, true, sourceMapNode);
}
for (var i = 0; i < elements.length; i++) {
var e = elements[i];
- if (e.kind !== 189) {
- if (e.kind !== 187) {
- emitDestructuringAssignment(e, createElementAccessExpression(value, createNumericLiteral(i)));
+ if (e.kind !== 190) {
+ if (e.kind !== 188) {
+ emitDestructuringAssignment(e, createElementAccessExpression(value, createNumericLiteral(i)), e);
}
else if (i === elements.length - 1) {
- emitDestructuringAssignment(e.expression, createSliceCall(value, i));
+ emitDestructuringAssignment(e.expression, createSliceCall(value, i), e);
}
}
}
}
- function emitDestructuringAssignment(target, value) {
- if (target.kind === 248) {
+ function emitDestructuringAssignment(target, value, sourceMapNode) {
+ if (target.kind === 249) {
if (target.objectAssignmentInitializer) {
- value = createDefaultValueCheck(value, target.objectAssignmentInitializer);
+ value = createDefaultValueCheck(value, target.objectAssignmentInitializer, sourceMapNode);
}
target = target.name;
}
- else if (target.kind === 183 && target.operatorToken.kind === 56) {
- value = createDefaultValueCheck(value, target.right);
+ else if (target.kind === 184 && target.operatorToken.kind === 56) {
+ value = createDefaultValueCheck(value, target.right, sourceMapNode);
target = target.left;
}
- if (target.kind === 167) {
- emitObjectLiteralAssignment(target, value);
+ if (target.kind === 168) {
+ emitObjectLiteralAssignment(target, value, sourceMapNode);
}
- else if (target.kind === 166) {
- emitArrayLiteralAssignment(target, value);
+ else if (target.kind === 167) {
+ emitArrayLiteralAssignment(target, value, sourceMapNode);
}
else {
- emitAssignment(target, value, emitCount > 0);
+ emitAssignment(target, value, emitCount > 0, sourceMapNode);
emitCount++;
}
}
@@ -29052,24 +29414,24 @@ var ts;
emit(value);
}
else if (isAssignmentExpressionStatement) {
- emitDestructuringAssignment(target, value);
+ emitDestructuringAssignment(target, value, ts.nodeIsSynthesized(root) ? target : root);
}
else {
- if (root.parent.kind !== 174) {
+ if (root.parent.kind !== 175) {
write("(");
}
- value = ensureIdentifier(value, true);
- emitDestructuringAssignment(target, value);
+ value = ensureIdentifier(value, true, root);
+ emitDestructuringAssignment(target, value, root);
write(", ");
emit(value);
- if (root.parent.kind !== 174) {
+ if (root.parent.kind !== 175) {
write(")");
}
}
}
function emitBindingElement(target, value) {
if (target.initializer) {
- value = value ? createDefaultValueCheck(value, target.initializer) : target.initializer;
+ value = value ? createDefaultValueCheck(value, target.initializer, target) : target.initializer;
}
else if (!value) {
value = createVoidZero();
@@ -29079,15 +29441,15 @@ var ts;
var elements = pattern.elements;
var numElements = elements.length;
if (numElements !== 1) {
- value = ensureIdentifier(value, numElements !== 0);
+ value = ensureIdentifier(value, numElements !== 0, target);
}
for (var i = 0; i < numElements; i++) {
var element = elements[i];
- if (pattern.kind === 163) {
+ if (pattern.kind === 164) {
var propName = element.propertyName || element.name;
emitBindingElement(element, createPropertyAccessForDestructuringProperty(value, propName));
}
- else if (element.kind !== 189) {
+ else if (element.kind !== 190) {
if (!element.dotDotDotToken) {
emitBindingElement(element, createElementAccessExpression(value, createNumericLiteral(i)));
}
@@ -29098,7 +29460,7 @@ var ts;
}
}
else {
- emitAssignment(target.name, value, emitCount > 0);
+ emitAssignment(target.name, value, emitCount > 0, target);
emitCount++;
}
}
@@ -29119,8 +29481,8 @@ var ts;
var isLetDefinedInLoop = (resolver.getNodeCheckFlags(node) & 16384) &&
(getCombinedFlagsForIdentifier(node.name) & 8192);
if (isLetDefinedInLoop &&
- node.parent.parent.kind !== 202 &&
- node.parent.parent.kind !== 203) {
+ node.parent.parent.kind !== 203 &&
+ node.parent.parent.kind !== 204) {
initializer = createVoidZero();
}
}
@@ -29138,7 +29500,7 @@ var ts;
}
}
function emitExportVariableAssignments(node) {
- if (node.kind === 189) {
+ if (node.kind === 190) {
return;
}
var name = node.name;
@@ -29150,7 +29512,7 @@ var ts;
}
}
function getCombinedFlagsForIdentifier(node) {
- if (!node.parent || (node.parent.kind !== 213 && node.parent.kind !== 165)) {
+ if (!node.parent || (node.parent.kind !== 214 && node.parent.kind !== 166)) {
return 0;
}
return ts.getCombinedNodeFlags(node.parent);
@@ -29158,7 +29520,7 @@ var ts;
function isES6ExportedDeclaration(node) {
return !!(node.flags & 2) &&
modulekind === 5 &&
- node.parent.kind === 250;
+ node.parent.kind === 251;
}
function emitVariableStatement(node) {
var startIsEmitted = false;
@@ -29203,12 +29565,12 @@ var ts;
function emitParameter(node) {
if (languageVersion < 2) {
if (ts.isBindingPattern(node.name)) {
- var name_23 = createTempVariable(0);
+ var name_26 = createTempVariable(0);
if (!tempParameters) {
tempParameters = [];
}
- tempParameters.push(name_23);
- emit(name_23);
+ tempParameters.push(name_26);
+ emit(name_26);
}
else {
emit(node.name);
@@ -29307,12 +29669,12 @@ var ts;
}
}
function emitAccessor(node) {
- write(node.kind === 145 ? "get " : "set ");
+ write(node.kind === 146 ? "get " : "set ");
emit(node.name);
emitSignatureAndBody(node);
}
function shouldEmitAsArrowFunction(node) {
- return node.kind === 176 && languageVersion >= 2;
+ return node.kind === 177 && languageVersion >= 2;
}
function emitDeclarationName(node) {
if (node.name) {
@@ -29323,10 +29685,10 @@ var ts;
}
}
function shouldEmitFunctionName(node) {
- if (node.kind === 175) {
+ if (node.kind === 176) {
return !!node.name;
}
- if (node.kind === 215) {
+ if (node.kind === 216) {
return !!node.name || modulekind !== 5;
}
}
@@ -29335,12 +29697,12 @@ var ts;
return emitCommentsOnNotEmittedNode(node);
}
var kind = node.kind, parent = node.parent;
- if (kind !== 143 &&
- kind !== 142 &&
+ if (kind !== 144 &&
+ kind !== 143 &&
parent &&
- parent.kind !== 247 &&
- parent.kind !== 170 &&
- parent.kind !== 166) {
+ parent.kind !== 248 &&
+ parent.kind !== 171 &&
+ parent.kind !== 167) {
emitLeadingComments(node);
}
emitStart(node);
@@ -29361,11 +29723,11 @@ var ts;
emitDeclarationName(node);
}
emitSignatureAndBody(node);
- if (modulekind !== 5 && kind === 215 && parent === currentSourceFile && node.name) {
+ if (modulekind !== 5 && kind === 216 && parent === currentSourceFile && node.name) {
emitExportMemberAssignments(node.name);
}
emitEnd(node);
- if (kind !== 143 && kind !== 142) {
+ if (kind !== 144 && kind !== 143) {
emitTrailingComments(node);
}
}
@@ -29397,7 +29759,7 @@ var ts;
}
function emitAsyncFunctionBodyForES6(node) {
var promiseConstructor = ts.getEntityNameFromTypeNode(node.type);
- var isArrowFunction = node.kind === 176;
+ var isArrowFunction = node.kind === 177;
var hasLexicalArguments = (resolver.getNodeCheckFlags(node) & 4096) !== 0;
if (!isArrowFunction) {
write(" {");
@@ -29438,7 +29800,7 @@ var ts;
write(" { }");
}
else {
- if (node.body.kind === 194) {
+ if (node.body.kind === 195) {
emitBlockFunctionBody(node, node.body);
}
else {
@@ -29490,10 +29852,10 @@ var ts;
}
write(" ");
var current = body;
- while (current.kind === 173) {
+ while (current.kind === 174) {
current = current.expression;
}
- emitParenthesizedIf(body, current.kind === 167);
+ emitParenthesizedIf(body, current.kind === 168);
}
function emitDownLevelExpressionFunctionBody(node, body) {
write(" {");
@@ -29563,9 +29925,9 @@ var ts;
function findInitialSuperCall(ctor) {
if (ctor.body) {
var statement = ctor.body.statements[0];
- if (statement && statement.kind === 197) {
+ if (statement && statement.kind === 198) {
var expr = statement.expression;
- if (expr && expr.kind === 170) {
+ if (expr && expr.kind === 171) {
var func = expr.expression;
if (func && func.kind === 95) {
return statement;
@@ -29596,7 +29958,7 @@ var ts;
emitNodeWithCommentsAndWithoutSourcemap(memberName);
write("]");
}
- else if (memberName.kind === 136) {
+ else if (memberName.kind === 137) {
emitComputedPropertyName(memberName);
}
else {
@@ -29608,7 +29970,7 @@ var ts;
var properties = [];
for (var _a = 0, _b = node.members; _a < _b.length; _a++) {
var member = _b[_a];
- if (member.kind === 141 && isStatic === ((member.flags & 64) !== 0) && member.initializer) {
+ if (member.kind === 142 && isStatic === ((member.flags & 64) !== 0) && member.initializer) {
properties.push(member);
}
}
@@ -29648,11 +30010,11 @@ var ts;
}
function emitMemberFunctionsForES5AndLower(node) {
ts.forEach(node.members, function (member) {
- if (member.kind === 193) {
+ if (member.kind === 194) {
writeLine();
write(";");
}
- else if (member.kind === 143 || node.kind === 142) {
+ else if (member.kind === 144 || node.kind === 143) {
if (!member.body) {
return emitCommentsOnNotEmittedNode(member);
}
@@ -29669,7 +30031,7 @@ var ts;
write(";");
emitTrailingComments(member);
}
- else if (member.kind === 145 || member.kind === 146) {
+ else if (member.kind === 146 || member.kind === 147) {
var accessors = ts.getAllAccessorDeclarations(node.members, member);
if (member === accessors.firstAccessor) {
writeLine();
@@ -29719,22 +30081,22 @@ var ts;
function emitMemberFunctionsForES6AndHigher(node) {
for (var _a = 0, _b = node.members; _a < _b.length; _a++) {
var member = _b[_a];
- if ((member.kind === 143 || node.kind === 142) && !member.body) {
+ if ((member.kind === 144 || node.kind === 143) && !member.body) {
emitCommentsOnNotEmittedNode(member);
}
- else if (member.kind === 143 ||
- member.kind === 145 ||
- member.kind === 146) {
+ else if (member.kind === 144 ||
+ member.kind === 146 ||
+ member.kind === 147) {
writeLine();
emitLeadingComments(member);
emitStart(member);
if (member.flags & 64) {
write("static ");
}
- if (member.kind === 145) {
+ if (member.kind === 146) {
write("get ");
}
- else if (member.kind === 146) {
+ else if (member.kind === 147) {
write("set ");
}
if (member.asteriskToken) {
@@ -29745,7 +30107,7 @@ var ts;
emitEnd(member);
emitTrailingComments(member);
}
- else if (member.kind === 193) {
+ else if (member.kind === 194) {
writeLine();
write(";");
}
@@ -29770,10 +30132,10 @@ var ts;
function emitConstructorWorker(node, baseTypeElement) {
var hasInstancePropertyWithInitializer = false;
ts.forEach(node.members, function (member) {
- if (member.kind === 144 && !member.body) {
+ if (member.kind === 145 && !member.body) {
emitCommentsOnNotEmittedNode(member);
}
- if (member.kind === 141 && member.initializer && (member.flags & 64) === 0) {
+ if (member.kind === 142 && member.initializer && (member.flags & 64) === 0) {
hasInstancePropertyWithInitializer = true;
}
});
@@ -29877,7 +30239,7 @@ var ts;
}
function emitClassLikeDeclarationForES6AndHigher(node) {
var thisNodeIsDecorated = ts.nodeIsDecorated(node);
- if (node.kind === 216) {
+ if (node.kind === 217) {
if (thisNodeIsDecorated) {
if (isES6ExportedDeclaration(node) && !(node.flags & 512)) {
write("export ");
@@ -29894,7 +30256,7 @@ var ts;
}
}
var staticProperties = getInitializedProperties(node, true);
- var isClassExpressionWithStaticProperties = staticProperties.length > 0 && node.kind === 188;
+ var isClassExpressionWithStaticProperties = staticProperties.length > 0 && node.kind === 189;
var tempVariable;
if (isClassExpressionWithStaticProperties) {
tempVariable = createAndRecordTempVariable(0);
@@ -29957,7 +30319,7 @@ var ts;
write(";");
}
}
- else if (node.parent.kind !== 250) {
+ else if (node.parent.kind !== 251) {
writeLine();
emitStart(node);
emitModuleMemberName(node);
@@ -29969,7 +30331,7 @@ var ts;
}
}
function emitClassLikeDeclarationBelowES6(node) {
- if (node.kind === 216) {
+ if (node.kind === 217) {
if (!shouldHoistDeclarationInSystemJsModule(node)) {
write("var ");
}
@@ -30029,11 +30391,11 @@ var ts;
emit(baseTypeNode.expression);
}
write("))");
- if (node.kind === 216) {
+ if (node.kind === 217) {
write(";");
}
emitEnd(node);
- if (node.kind === 216) {
+ if (node.kind === 217) {
emitExportMemberAssignment(node);
}
}
@@ -30100,7 +30462,7 @@ var ts;
}
else {
decorators = member.decorators;
- if (member.kind === 143) {
+ if (member.kind === 144) {
functionLikeMember = member;
}
}
@@ -30126,7 +30488,7 @@ var ts;
write(", ");
emitExpressionForPropertyName(member.name);
if (languageVersion > 0) {
- if (member.kind !== 141) {
+ if (member.kind !== 142) {
write(", null");
}
else {
@@ -30161,45 +30523,45 @@ var ts;
}
function shouldEmitTypeMetadata(node) {
switch (node.kind) {
- case 143:
- case 145:
+ case 144:
case 146:
- case 141:
+ case 147:
+ case 142:
return true;
}
return false;
}
function shouldEmitReturnTypeMetadata(node) {
switch (node.kind) {
- case 143:
+ case 144:
return true;
}
return false;
}
function shouldEmitParamTypesMetadata(node) {
switch (node.kind) {
- case 216:
- case 143:
- case 146:
+ case 217:
+ case 144:
+ case 147:
return true;
}
return false;
}
function emitSerializedTypeOfNode(node) {
switch (node.kind) {
- case 216:
+ case 217:
write("Function");
return;
- case 141:
+ case 142:
emitSerializedTypeNode(node.type);
return;
- case 138:
- emitSerializedTypeNode(node.type);
- return;
- case 145:
+ case 139:
emitSerializedTypeNode(node.type);
return;
case 146:
+ emitSerializedTypeNode(node.type);
+ return;
+ case 147:
emitSerializedTypeNode(ts.getSetAccessorTypeAnnotationNode(node));
return;
}
@@ -30215,23 +30577,23 @@ var ts;
case 103:
write("void 0");
return;
- case 160:
+ case 161:
emitSerializedTypeNode(node.type);
return;
- case 152:
case 153:
+ case 154:
write("Function");
return;
- case 156:
case 157:
+ case 158:
write("Array");
return;
- case 150:
+ case 151:
case 120:
write("Boolean");
return;
case 130:
- case 162:
+ case 163:
write("String");
return;
case 128:
@@ -30240,15 +30602,15 @@ var ts;
case 131:
write("Symbol");
return;
- case 151:
+ case 152:
emitSerializedTypeReferenceNode(node);
return;
- case 154:
case 155:
- case 158:
+ case 156:
case 159:
+ case 160:
case 117:
- case 161:
+ case 162:
break;
default:
ts.Debug.fail("Cannot serialize unexpected type node.");
@@ -30312,7 +30674,7 @@ var ts;
function emitSerializedParameterTypesOfNode(node) {
if (node) {
var valueDeclaration;
- if (node.kind === 216) {
+ if (node.kind === 217) {
valueDeclaration = ts.getFirstConstructorWithBody(node);
}
else if (ts.isFunctionLike(node) && ts.nodeIsPresent(node.body)) {
@@ -30328,10 +30690,10 @@ var ts;
}
if (parameters[i].dotDotDotToken) {
var parameterType = parameters[i].type;
- if (parameterType.kind === 156) {
+ if (parameterType.kind === 157) {
parameterType = parameterType.elementType;
}
- else if (parameterType.kind === 151 && parameterType.typeArguments && parameterType.typeArguments.length === 1) {
+ else if (parameterType.kind === 152 && parameterType.typeArguments && parameterType.typeArguments.length === 1) {
parameterType = parameterType.typeArguments[0];
}
else {
@@ -30403,7 +30765,7 @@ var ts;
}
if (!shouldHoistDeclarationInSystemJsModule(node)) {
var isES6ExportedEnum = isES6ExportedDeclaration(node);
- if (!(node.flags & 2) || (isES6ExportedEnum && isFirstDeclarationOfKind(node, node.symbol && node.symbol.declarations, 219))) {
+ if (!(node.flags & 2) || (isES6ExportedEnum && isFirstDeclarationOfKind(node, node.symbol && node.symbol.declarations, 220))) {
emitStart(node);
if (isES6ExportedEnum) {
write("export ");
@@ -30483,7 +30845,7 @@ var ts;
}
}
function getInnerMostModuleDeclarationFromDottedModule(moduleDeclaration) {
- if (moduleDeclaration.body.kind === 220) {
+ if (moduleDeclaration.body.kind === 221) {
var recursiveInnerModule = getInnerMostModuleDeclarationFromDottedModule(moduleDeclaration.body);
return recursiveInnerModule || moduleDeclaration.body;
}
@@ -30506,7 +30868,7 @@ var ts;
var emitVarForModule = !hoistedInDeclarationScope && !isModuleMergedWithES6Class(node);
if (emitVarForModule) {
var isES6ExportedNamespace = isES6ExportedDeclaration(node);
- if (!isES6ExportedNamespace || isFirstDeclarationOfKind(node, node.symbol && node.symbol.declarations, 220)) {
+ if (!isES6ExportedNamespace || isFirstDeclarationOfKind(node, node.symbol && node.symbol.declarations, 221)) {
emitStart(node);
if (isES6ExportedNamespace) {
write("export ");
@@ -30524,7 +30886,7 @@ var ts;
write(getGeneratedNameForNode(node));
emitEnd(node.name);
write(") ");
- if (node.body.kind === 221) {
+ if (node.body.kind === 222) {
var saveConvertedLoopState = convertedLoopState;
var saveTempFlags = tempFlags;
var saveTempVariables = tempVariables;
@@ -30595,16 +30957,16 @@ var ts;
}
}
function getNamespaceDeclarationNode(node) {
- if (node.kind === 223) {
+ if (node.kind === 224) {
return node;
}
var importClause = node.importClause;
- if (importClause && importClause.namedBindings && importClause.namedBindings.kind === 226) {
+ if (importClause && importClause.namedBindings && importClause.namedBindings.kind === 227) {
return importClause.namedBindings;
}
}
function isDefaultImport(node) {
- return node.kind === 224 && node.importClause && !!node.importClause.name;
+ return node.kind === 225 && node.importClause && !!node.importClause.name;
}
function emitExportImportAssignments(node) {
if (ts.isAliasSymbolDeclaration(node) && resolver.isValueAliasDeclaration(node)) {
@@ -30631,7 +30993,7 @@ var ts;
if (shouldEmitNamedBindings) {
emitLeadingComments(node.importClause.namedBindings);
emitStart(node.importClause.namedBindings);
- if (node.importClause.namedBindings.kind === 226) {
+ if (node.importClause.namedBindings.kind === 227) {
write("* as ");
emit(node.importClause.namedBindings.name);
}
@@ -30657,7 +31019,7 @@ var ts;
}
function emitExternalImportDeclaration(node) {
if (ts.contains(externalImports, node)) {
- var isExportedImport = node.kind === 223 && (node.flags & 2) !== 0;
+ var isExportedImport = node.kind === 224 && (node.flags & 2) !== 0;
var namespaceDeclaration = getNamespaceDeclarationNode(node);
if (modulekind !== 2) {
emitLeadingComments(node);
@@ -30669,7 +31031,7 @@ var ts;
write(" = ");
}
else {
- var isNakedImport = 224 && !node.importClause;
+ var isNakedImport = 225 && !node.importClause;
if (!isNakedImport) {
write("var ");
write(getGeneratedNameForNode(node));
@@ -30836,8 +31198,8 @@ var ts;
write("export default ");
var expression = node.expression;
emit(expression);
- if (expression.kind !== 215 &&
- expression.kind !== 216) {
+ if (expression.kind !== 216 &&
+ expression.kind !== 217) {
write(";");
}
emitEnd(node);
@@ -30874,18 +31236,18 @@ var ts;
for (var _a = 0, _b = sourceFile.statements; _a < _b.length; _a++) {
var node = _b[_a];
switch (node.kind) {
- case 224:
+ case 225:
if (!node.importClause ||
resolver.isReferencedAliasDeclaration(node.importClause, true)) {
externalImports.push(node);
}
break;
- case 223:
- if (node.moduleReference.kind === 234 && resolver.isReferencedAliasDeclaration(node)) {
+ case 224:
+ if (node.moduleReference.kind === 235 && resolver.isReferencedAliasDeclaration(node)) {
externalImports.push(node);
}
break;
- case 230:
+ case 231:
if (node.moduleSpecifier) {
if (!node.exportClause) {
if (resolver.moduleExportsSomeValue(node.moduleSpecifier)) {
@@ -30900,12 +31262,12 @@ var ts;
else {
for (var _c = 0, _d = node.exportClause.elements; _c < _d.length; _c++) {
var specifier = _d[_c];
- var name_24 = (specifier.propertyName || specifier.name).text;
- (exportSpecifiers[name_24] || (exportSpecifiers[name_24] = [])).push(specifier);
+ var name_27 = (specifier.propertyName || specifier.name).text;
+ (exportSpecifiers[name_27] || (exportSpecifiers[name_27] = [])).push(specifier);
}
}
break;
- case 229:
+ case 230:
if (node.isExportEquals && !exportEquals) {
exportEquals = node;
}
@@ -30930,18 +31292,18 @@ var ts;
if (namespaceDeclaration && !isDefaultImport(node)) {
return ts.getTextOfNodeFromSourceText(currentText, namespaceDeclaration.name);
}
- if (node.kind === 224 && node.importClause) {
+ if (node.kind === 225 && node.importClause) {
return getGeneratedNameForNode(node);
}
- if (node.kind === 230 && node.moduleSpecifier) {
+ if (node.kind === 231 && node.moduleSpecifier) {
return getGeneratedNameForNode(node);
}
}
function getExternalModuleNameText(importNode, emitRelativePathAsModuleName) {
if (emitRelativePathAsModuleName) {
- var name_25 = getExternalModuleNameFromDeclaration(host, resolver, importNode);
- if (name_25) {
- return "\"" + name_25 + "\"";
+ var name_28 = getExternalModuleNameFromDeclaration(host, resolver, importNode);
+ if (name_28) {
+ return "\"" + name_28 + "\"";
}
}
var moduleName = ts.getExternalModuleName(importNode);
@@ -30958,8 +31320,8 @@ var ts;
var started = false;
for (var _a = 0, externalImports_1 = externalImports; _a < externalImports_1.length; _a++) {
var importNode = externalImports_1[_a];
- var skipNode = importNode.kind === 230 ||
- (importNode.kind === 224 && !importNode.importClause);
+ var skipNode = importNode.kind === 231 ||
+ (importNode.kind === 225 && !importNode.importClause);
if (skipNode) {
continue;
}
@@ -30984,7 +31346,7 @@ var ts;
var hasExportDeclarationWithExportClause = false;
for (var _a = 0, externalImports_2 = externalImports; _a < externalImports_2.length; _a++) {
var externalImport = externalImports_2[_a];
- if (externalImport.kind === 230 && externalImport.exportClause) {
+ if (externalImport.kind === 231 && externalImport.exportClause) {
hasExportDeclarationWithExportClause = true;
break;
}
@@ -31013,7 +31375,7 @@ var ts;
}
for (var _d = 0, externalImports_3 = externalImports; _d < externalImports_3.length; _d++) {
var externalImport = externalImports_3[_d];
- if (externalImport.kind !== 230) {
+ if (externalImport.kind !== 231) {
continue;
}
var exportDecl = externalImport;
@@ -31087,11 +31449,11 @@ var ts;
var seen = {};
for (var i = 0; i < hoistedVars.length; i++) {
var local = hoistedVars[i];
- var name_26 = local.kind === 69
+ var name_29 = local.kind === 69
? local
: local.name;
- if (name_26) {
- var text = ts.unescapeIdentifier(name_26.text);
+ if (name_29) {
+ var text = ts.unescapeIdentifier(name_29.text);
if (ts.hasProperty(seen, text)) {
continue;
}
@@ -31102,7 +31464,7 @@ var ts;
if (i !== 0) {
write(", ");
}
- if (local.kind === 216 || local.kind === 220 || local.kind === 219) {
+ if (local.kind === 217 || local.kind === 221 || local.kind === 220) {
emitDeclarationName(local);
}
else {
@@ -31136,21 +31498,21 @@ var ts;
if (node.flags & 4) {
return;
}
- if (node.kind === 215) {
+ if (node.kind === 216) {
if (!hoistedFunctionDeclarations) {
hoistedFunctionDeclarations = [];
}
hoistedFunctionDeclarations.push(node);
return;
}
- if (node.kind === 216) {
+ if (node.kind === 217) {
if (!hoistedVars) {
hoistedVars = [];
}
hoistedVars.push(node);
return;
}
- if (node.kind === 219) {
+ if (node.kind === 220) {
if (shouldEmitEnumDeclaration(node)) {
if (!hoistedVars) {
hoistedVars = [];
@@ -31159,7 +31521,7 @@ var ts;
}
return;
}
- if (node.kind === 220) {
+ if (node.kind === 221) {
if (shouldEmitModuleDeclaration(node)) {
if (!hoistedVars) {
hoistedVars = [];
@@ -31168,17 +31530,17 @@ var ts;
}
return;
}
- if (node.kind === 213 || node.kind === 165) {
+ if (node.kind === 214 || node.kind === 166) {
if (shouldHoistVariable(node, false)) {
- var name_27 = node.name;
- if (name_27.kind === 69) {
+ var name_30 = node.name;
+ if (name_30.kind === 69) {
if (!hoistedVars) {
hoistedVars = [];
}
- hoistedVars.push(name_27);
+ hoistedVars.push(name_30);
}
else {
- ts.forEachChild(name_27, visit);
+ ts.forEachChild(name_30, visit);
}
}
return;
@@ -31204,7 +31566,7 @@ var ts;
return false;
}
return (ts.getCombinedNodeFlags(node) & 24576) === 0 ||
- ts.getEnclosingBlockScopeContainer(node).kind === 250;
+ ts.getEnclosingBlockScopeContainer(node).kind === 251;
}
function isCurrentFileSystemExternalModule() {
return modulekind === 4 && isCurrentFileExternalModule;
@@ -31242,29 +31604,29 @@ var ts;
var entry = group_1[_a];
var importVariableName = getLocalNameForExternalImport(entry) || "";
switch (entry.kind) {
- case 224:
+ case 225:
if (!entry.importClause) {
break;
}
- case 223:
+ case 224:
ts.Debug.assert(importVariableName !== "");
writeLine();
write(importVariableName + " = " + parameterName + ";");
writeLine();
break;
- case 230:
+ case 231:
ts.Debug.assert(importVariableName !== "");
if (entry.exportClause) {
writeLine();
write(exportFunctionForFile + "({");
writeLine();
increaseIndent();
- for (var i_2 = 0, len = entry.exportClause.elements.length; i_2 < len; i_2++) {
- if (i_2 !== 0) {
+ for (var i_1 = 0, len = entry.exportClause.elements.length; i_1 < len; i_1++) {
+ if (i_1 !== 0) {
write(",");
writeLine();
}
- var e = entry.exportClause.elements[i_2];
+ var e = entry.exportClause.elements[i_1];
write("\"");
emitNodeWithCommentsAndWithoutSourcemap(e.name);
write("\": " + parameterName + "[\"");
@@ -31296,10 +31658,10 @@ var ts;
for (var i = startIndex; i < node.statements.length; i++) {
var statement = node.statements[i];
switch (statement.kind) {
- case 215:
- case 224:
+ case 216:
+ case 225:
continue;
- case 230:
+ case 231:
if (!statement.moduleSpecifier) {
for (var _a = 0, _b = statement.exportClause.elements; _a < _b.length; _a++) {
var element = _b[_a];
@@ -31307,7 +31669,7 @@ var ts;
}
}
continue;
- case 223:
+ case 224:
if (!ts.isInternalModuleImportEqualsDeclaration(statement)) {
continue;
}
@@ -31623,22 +31985,22 @@ var ts;
}
function emitEmitHelpers(node) {
if (!compilerOptions.noEmitHelpers) {
- if ((languageVersion < 2) && (!extendsEmitted && resolver.getNodeCheckFlags(node) & 8)) {
+ if ((languageVersion < 2) && (!extendsEmitted && node.flags & 4194304)) {
writeLines(extendsHelper);
extendsEmitted = true;
}
- if (!decorateEmitted && resolver.getNodeCheckFlags(node) & 16) {
+ if (!decorateEmitted && node.flags & 8388608) {
writeLines(decorateHelper);
if (compilerOptions.emitDecoratorMetadata) {
writeLines(metadataHelper);
}
decorateEmitted = true;
}
- if (!paramEmitted && resolver.getNodeCheckFlags(node) & 32) {
+ if (!paramEmitted && node.flags & 16777216) {
writeLines(paramHelper);
paramEmitted = true;
}
- if (!awaiterEmitted && resolver.getNodeCheckFlags(node) & 64) {
+ if (!awaiterEmitted && node.flags & 33554432) {
writeLines(awaiterHelper);
awaiterEmitted = true;
}
@@ -31706,30 +32068,43 @@ var ts;
emitJavaScriptWorker(node);
}
}
+ function changeSourceMapEmit(writer) {
+ sourceMap = writer;
+ emitStart = writer.emitStart;
+ emitEnd = writer.emitEnd;
+ emitPos = writer.emitPos;
+ setSourceFile = writer.setSourceFile;
+ }
+ function withTemporaryNoSourceMap(callback) {
+ var prevSourceMap = sourceMap;
+ setSourceMapWriterEmit(ts.getNullSourceMapWriter());
+ callback();
+ setSourceMapWriterEmit(prevSourceMap);
+ }
function isSpecializedCommentHandling(node) {
switch (node.kind) {
- case 217:
- case 215:
- case 224:
- case 223:
case 218:
- case 229:
+ case 216:
+ case 225:
+ case 224:
+ case 219:
+ case 230:
return true;
}
}
function shouldEmitLeadingAndTrailingComments(node) {
switch (node.kind) {
- case 195:
+ case 196:
return shouldEmitLeadingAndTrailingCommentsForVariableStatement(node);
- case 220:
+ case 221:
return shouldEmitModuleDeclaration(node);
- case 219:
+ case 220:
return shouldEmitEnumDeclaration(node);
}
ts.Debug.assert(!isSpecializedCommentHandling(node));
- if (node.kind !== 194 &&
+ if (node.kind !== 195 &&
node.parent &&
- node.parent.kind === 176 &&
+ node.parent.kind === 177 &&
node.parent.body === node &&
compilerOptions.target <= 1) {
return false;
@@ -31740,13 +32115,13 @@ var ts;
switch (node.kind) {
case 69:
return emitIdentifier(node);
- case 138:
+ case 139:
return emitParameter(node);
+ case 144:
case 143:
- case 142:
return emitMethod(node);
- case 145:
case 146:
+ case 147:
return emitAccessor(node);
case 97:
return emitThis(node);
@@ -31766,142 +32141,142 @@ var ts;
case 13:
case 14:
return emitLiteral(node);
- case 185:
- return emitTemplateExpression(node);
- case 192:
- return emitTemplateSpan(node);
- case 235:
- case 236:
- return emitJsxElement(node);
- case 238:
- return emitJsxText(node);
- case 242:
- return emitJsxExpression(node);
- case 135:
- return emitQualifiedName(node);
- case 163:
- return emitObjectBindingPattern(node);
- case 164:
- return emitArrayBindingPattern(node);
- case 165:
- return emitBindingElement(node);
- case 166:
- return emitArrayLiteral(node);
- case 167:
- return emitObjectLiteral(node);
- case 247:
- return emitPropertyAssignment(node);
- case 248:
- return emitShorthandPropertyAssignment(node);
- case 136:
- return emitComputedPropertyName(node);
- case 168:
- return emitPropertyAccess(node);
- case 169:
- return emitIndexedAccess(node);
- case 170:
- return emitCallExpression(node);
- case 171:
- return emitNewExpression(node);
- case 172:
- return emitTaggedTemplateExpression(node);
- case 173:
- return emit(node.expression);
- case 191:
- return emit(node.expression);
- case 174:
- return emitParenExpression(node);
- case 215:
- case 175:
- case 176:
- return emitFunctionDeclaration(node);
- case 177:
- return emitDeleteExpression(node);
- case 178:
- return emitTypeOfExpression(node);
- case 179:
- return emitVoidExpression(node);
- case 180:
- return emitAwaitExpression(node);
- case 181:
- return emitPrefixUnaryExpression(node);
- case 182:
- return emitPostfixUnaryExpression(node);
- case 183:
- return emitBinaryExpression(node);
- case 184:
- return emitConditionalExpression(node);
- case 187:
- return emitSpreadElementExpression(node);
case 186:
- return emitYieldExpression(node);
- case 189:
- return;
- case 194:
- case 221:
- return emitBlock(node);
- case 195:
- return emitVariableStatement(node);
- case 196:
- return write(";");
- case 197:
- return emitExpressionStatement(node);
- case 198:
- return emitIfStatement(node);
- case 199:
- return emitDoStatement(node);
- case 200:
- return emitWhileStatement(node);
- case 201:
- return emitForStatement(node);
- case 203:
- case 202:
- return emitForInOrForOfStatement(node);
- case 204:
- case 205:
- return emitBreakOrContinueStatement(node);
- case 206:
- return emitReturnStatement(node);
- case 207:
- return emitWithStatement(node);
- case 208:
- return emitSwitchStatement(node);
+ return emitTemplateExpression(node);
+ case 193:
+ return emitTemplateSpan(node);
+ case 236:
+ case 237:
+ return emitJsxElement(node);
+ case 239:
+ return emitJsxText(node);
case 243:
- case 244:
- return emitCaseOrDefaultClause(node);
- case 209:
- return emitLabeledStatement(node);
- case 210:
- return emitThrowStatement(node);
- case 211:
- return emitTryStatement(node);
- case 246:
- return emitCatchClause(node);
- case 212:
- return emitDebuggerStatement(node);
- case 213:
- return emitVariableDeclaration(node);
- case 188:
- return emitClassExpression(node);
- case 216:
- return emitClassDeclaration(node);
- case 217:
- return emitInterfaceDeclaration(node);
- case 219:
- return emitEnumDeclaration(node);
+ return emitJsxExpression(node);
+ case 136:
+ return emitQualifiedName(node);
+ case 164:
+ return emitObjectBindingPattern(node);
+ case 165:
+ return emitArrayBindingPattern(node);
+ case 166:
+ return emitBindingElement(node);
+ case 167:
+ return emitArrayLiteral(node);
+ case 168:
+ return emitObjectLiteral(node);
+ case 248:
+ return emitPropertyAssignment(node);
case 249:
- return emitEnumMember(node);
+ return emitShorthandPropertyAssignment(node);
+ case 137:
+ return emitComputedPropertyName(node);
+ case 169:
+ return emitPropertyAccess(node);
+ case 170:
+ return emitIndexedAccess(node);
+ case 171:
+ return emitCallExpression(node);
+ case 172:
+ return emitNewExpression(node);
+ case 173:
+ return emitTaggedTemplateExpression(node);
+ case 174:
+ return emit(node.expression);
+ case 192:
+ return emit(node.expression);
+ case 175:
+ return emitParenExpression(node);
+ case 216:
+ case 176:
+ case 177:
+ return emitFunctionDeclaration(node);
+ case 178:
+ return emitDeleteExpression(node);
+ case 179:
+ return emitTypeOfExpression(node);
+ case 180:
+ return emitVoidExpression(node);
+ case 181:
+ return emitAwaitExpression(node);
+ case 182:
+ return emitPrefixUnaryExpression(node);
+ case 183:
+ return emitPostfixUnaryExpression(node);
+ case 184:
+ return emitBinaryExpression(node);
+ case 185:
+ return emitConditionalExpression(node);
+ case 188:
+ return emitSpreadElementExpression(node);
+ case 187:
+ return emitYieldExpression(node);
+ case 190:
+ return;
+ case 195:
+ case 222:
+ return emitBlock(node);
+ case 196:
+ return emitVariableStatement(node);
+ case 197:
+ return write(";");
+ case 198:
+ return emitExpressionStatement(node);
+ case 199:
+ return emitIfStatement(node);
+ case 200:
+ return emitDoStatement(node);
+ case 201:
+ return emitWhileStatement(node);
+ case 202:
+ return emitForStatement(node);
+ case 204:
+ case 203:
+ return emitForInOrForOfStatement(node);
+ case 205:
+ case 206:
+ return emitBreakOrContinueStatement(node);
+ case 207:
+ return emitReturnStatement(node);
+ case 208:
+ return emitWithStatement(node);
+ case 209:
+ return emitSwitchStatement(node);
+ case 244:
+ case 245:
+ return emitCaseOrDefaultClause(node);
+ case 210:
+ return emitLabeledStatement(node);
+ case 211:
+ return emitThrowStatement(node);
+ case 212:
+ return emitTryStatement(node);
+ case 247:
+ return emitCatchClause(node);
+ case 213:
+ return emitDebuggerStatement(node);
+ case 214:
+ return emitVariableDeclaration(node);
+ case 189:
+ return emitClassExpression(node);
+ case 217:
+ return emitClassDeclaration(node);
+ case 218:
+ return emitInterfaceDeclaration(node);
case 220:
- return emitModuleDeclaration(node);
- case 224:
- return emitImportDeclaration(node);
- case 223:
- return emitImportEqualsDeclaration(node);
- case 230:
- return emitExportDeclaration(node);
- case 229:
- return emitExportAssignment(node);
+ return emitEnumDeclaration(node);
case 250:
+ return emitEnumMember(node);
+ case 221:
+ return emitModuleDeclaration(node);
+ case 225:
+ return emitImportDeclaration(node);
+ case 224:
+ return emitImportEqualsDeclaration(node);
+ case 231:
+ return emitExportDeclaration(node);
+ case 230:
+ return emitExportAssignment(node);
+ case 251:
return emitSourceFileNode(node);
}
}
@@ -31931,7 +32306,7 @@ var ts;
}
function getLeadingCommentsToEmit(node) {
if (node.parent) {
- if (node.parent.kind === 250 || node.pos !== node.parent.pos) {
+ if (node.parent.kind === 251 || node.pos !== node.parent.pos) {
if (hasDetachedComments(node.pos)) {
return getLeadingCommentsWithoutDetachedComments();
}
@@ -31943,7 +32318,7 @@ var ts;
}
function getTrailingCommentsToEmit(node) {
if (node.parent) {
- if (node.parent.kind === 250 || node.end !== node.parent.end) {
+ if (node.parent.kind === 251 || node.end !== node.parent.end) {
return ts.getTrailingCommentRanges(currentText, node.end);
}
}
@@ -32329,7 +32704,23 @@ var ts;
var currentDirectory = host.getCurrentDirectory();
var resolveModuleNamesWorker = host.resolveModuleNames
? (function (moduleNames, containingFile) { return host.resolveModuleNames(moduleNames, containingFile); })
- : (function (moduleNames, containingFile) { return ts.map(moduleNames, function (moduleName) { return resolveModuleName(moduleName, containingFile, options, host).resolvedModule; }); });
+ : (function (moduleNames, containingFile) {
+ var resolvedModuleNames = [];
+ var lookup = {};
+ for (var _i = 0, moduleNames_1 = moduleNames; _i < moduleNames_1.length; _i++) {
+ var moduleName = moduleNames_1[_i];
+ var resolvedName = void 0;
+ if (ts.hasProperty(lookup, moduleName)) {
+ resolvedName = lookup[moduleName];
+ }
+ else {
+ resolvedName = resolveModuleName(moduleName, containingFile, options, host).resolvedModule;
+ lookup[moduleName] = resolvedName;
+ }
+ resolvedModuleNames.push(resolvedName);
+ }
+ return resolvedModuleNames;
+ });
var filesByName = ts.createFileMap();
var filesByNameIgnoreCase = host.useCaseSensitiveFileNames() ? ts.createFileMap(function (fileName) { return fileName.toLowerCase(); }) : undefined;
if (oldProgram) {
@@ -32431,8 +32822,11 @@ var ts;
if (!ts.arrayIsEqualTo(oldSourceFile.imports, newSourceFile.imports, moduleNameIsEqualTo)) {
return false;
}
+ if (!ts.arrayIsEqualTo(oldSourceFile.moduleAugmentations, newSourceFile.moduleAugmentations, moduleNameIsEqualTo)) {
+ return false;
+ }
if (resolveModuleNamesWorker) {
- var moduleNames = ts.map(newSourceFile.imports, function (name) { return name.text; });
+ var moduleNames = ts.map(ts.concatenate(newSourceFile.imports, newSourceFile.moduleAugmentations), getTextOfLiteral);
var resolutions = resolveModuleNamesWorker(moduleNames, ts.getNormalizedAbsolutePath(newSourceFile.fileName, currentDirectory));
for (var i = 0; i < moduleNames.length; i++) {
var newResolution = resolutions[i];
@@ -32569,44 +32963,44 @@ var ts;
return false;
}
switch (node.kind) {
- case 223:
+ case 224:
diagnostics.push(ts.createDiagnosticForNode(node, ts.Diagnostics.import_can_only_be_used_in_a_ts_file));
return true;
- case 229:
+ case 230:
diagnostics.push(ts.createDiagnosticForNode(node, ts.Diagnostics.export_can_only_be_used_in_a_ts_file));
return true;
- case 216:
+ case 217:
var classDeclaration = node;
if (checkModifiers(classDeclaration.modifiers) ||
checkTypeParameters(classDeclaration.typeParameters)) {
return true;
}
break;
- case 245:
+ case 246:
var heritageClause = node;
if (heritageClause.token === 106) {
diagnostics.push(ts.createDiagnosticForNode(node, ts.Diagnostics.implements_clauses_can_only_be_used_in_a_ts_file));
return true;
}
break;
- case 217:
+ case 218:
diagnostics.push(ts.createDiagnosticForNode(node, ts.Diagnostics.interface_declarations_can_only_be_used_in_a_ts_file));
return true;
- case 220:
+ case 221:
diagnostics.push(ts.createDiagnosticForNode(node, ts.Diagnostics.module_declarations_can_only_be_used_in_a_ts_file));
return true;
- case 218:
+ case 219:
diagnostics.push(ts.createDiagnosticForNode(node, ts.Diagnostics.type_aliases_can_only_be_used_in_a_ts_file));
return true;
- case 143:
- case 142:
case 144:
+ case 143:
case 145:
case 146:
- case 175:
- case 215:
+ case 147:
case 176:
- case 215:
+ case 216:
+ case 177:
+ case 216:
var functionDeclaration = node;
if (checkModifiers(functionDeclaration.modifiers) ||
checkTypeParameters(functionDeclaration.typeParameters) ||
@@ -32614,20 +33008,20 @@ var ts;
return true;
}
break;
- case 195:
+ case 196:
var variableStatement = node;
if (checkModifiers(variableStatement.modifiers)) {
return true;
}
break;
- case 213:
+ case 214:
var variableDeclaration = node;
if (checkTypeAnnotation(variableDeclaration.type)) {
return true;
}
break;
- case 170:
case 171:
+ case 172:
var expression = node;
if (expression.typeArguments && expression.typeArguments.length > 0) {
var start_2 = expression.typeArguments.pos;
@@ -32635,7 +33029,7 @@ var ts;
return true;
}
break;
- case 138:
+ case 139:
var parameter = node;
if (parameter.modifiers) {
var start_3 = parameter.modifiers.pos;
@@ -32651,17 +33045,17 @@ var ts;
return true;
}
break;
- case 141:
+ case 142:
diagnostics.push(ts.createDiagnosticForNode(node, ts.Diagnostics.property_declarations_can_only_be_used_in_a_ts_file));
return true;
- case 219:
+ case 220:
diagnostics.push(ts.createDiagnosticForNode(node, ts.Diagnostics.enum_declarations_can_only_be_used_in_a_ts_file));
return true;
- case 173:
+ case 174:
var typeAssertionExpression = node;
diagnostics.push(ts.createDiagnosticForNode(typeAssertionExpression.type, ts.Diagnostics.type_assertion_expressions_can_only_be_used_in_a_ts_file));
return true;
- case 139:
+ case 140:
diagnostics.push(ts.createDiagnosticForNode(node, ts.Diagnostics.decorators_can_only_be_used_in_a_ts_file));
return true;
}
@@ -32737,51 +33131,64 @@ var ts;
function moduleNameIsEqualTo(a, b) {
return a.text === b.text;
}
+ function getTextOfLiteral(literal) {
+ return literal.text;
+ }
function collectExternalModuleReferences(file) {
if (file.imports) {
return;
}
var isJavaScriptFile = ts.isSourceFileJavaScript(file);
+ var isExternalModuleFile = ts.isExternalModule(file);
var imports;
+ var moduleAugmentations;
for (var _i = 0, _a = file.statements; _i < _a.length; _i++) {
var node = _a[_i];
- collect(node, true, false);
+ collectModuleReferences(node, false);
+ if (isJavaScriptFile) {
+ collectRequireCalls(node);
+ }
}
file.imports = imports || emptyArray;
+ file.moduleAugmentations = moduleAugmentations || emptyArray;
return;
- function collect(node, allowRelativeModuleNames, collectOnlyRequireCalls) {
- if (!collectOnlyRequireCalls) {
- switch (node.kind) {
- case 224:
- case 223:
- case 230:
- var moduleNameExpr = ts.getExternalModuleName(node);
- if (!moduleNameExpr || moduleNameExpr.kind !== 9) {
- break;
- }
- if (!moduleNameExpr.text) {
- break;
- }
- if (allowRelativeModuleNames || !ts.isExternalModuleNameRelative(moduleNameExpr.text)) {
- (imports || (imports = [])).push(moduleNameExpr);
- }
+ function collectModuleReferences(node, inAmbientModule) {
+ switch (node.kind) {
+ case 225:
+ case 224:
+ case 231:
+ var moduleNameExpr = ts.getExternalModuleName(node);
+ if (!moduleNameExpr || moduleNameExpr.kind !== 9) {
break;
- case 220:
- if (node.name.kind === 9 && (node.flags & 4 || ts.isDeclarationFile(file))) {
- ts.forEachChild(node.body, function (node) {
- collect(node, false, collectOnlyRequireCalls);
- });
- }
+ }
+ if (!moduleNameExpr.text) {
break;
- }
+ }
+ if (!inAmbientModule || !ts.isExternalModuleNameRelative(moduleNameExpr.text)) {
+ (imports || (imports = [])).push(moduleNameExpr);
+ }
+ break;
+ case 221:
+ if (ts.isAmbientModule(node) && (inAmbientModule || node.flags & 4 || ts.isDeclarationFile(file))) {
+ var moduleName = node.name;
+ if (isExternalModuleFile || (inAmbientModule && !ts.isExternalModuleNameRelative(moduleName.text))) {
+ (moduleAugmentations || (moduleAugmentations = [])).push(moduleName);
+ }
+ else if (!inAmbientModule) {
+ for (var _i = 0, _a = node.body.statements; _i < _a.length; _i++) {
+ var statement = _a[_i];
+ collectModuleReferences(statement, true);
+ }
+ }
+ }
}
- if (isJavaScriptFile) {
- if (ts.isRequireCall(node)) {
- (imports || (imports = [])).push(node.arguments[0]);
- }
- else {
- ts.forEachChild(node, function (node) { return collect(node, allowRelativeModuleNames, true); });
- }
+ }
+ function collectRequireCalls(node) {
+ if (ts.isRequireCall(node)) {
+ (imports || (imports = [])).push(node.arguments[0]);
+ }
+ else {
+ ts.forEachChild(node, collectRequireCalls);
}
}
}
@@ -32887,14 +33294,17 @@ var ts;
}
function processImportedModules(file, basePath) {
collectExternalModuleReferences(file);
- if (file.imports.length) {
+ if (file.imports.length || file.moduleAugmentations.length) {
file.resolvedModules = {};
- var moduleNames = ts.map(file.imports, function (name) { return name.text; });
+ var moduleNames = ts.map(ts.concatenate(file.imports, file.moduleAugmentations), getTextOfLiteral);
var resolutions = resolveModuleNamesWorker(moduleNames, ts.getNormalizedAbsolutePath(file.fileName, currentDirectory));
- for (var i = 0; i < file.imports.length; i++) {
+ for (var i = 0; i < moduleNames.length; i++) {
var resolution = resolutions[i];
ts.setResolvedModule(file, moduleNames[i], resolution);
- if (resolution && !options.noResolve) {
+ var shouldAddFile = resolution &&
+ !options.noResolve &&
+ i < file.imports.length;
+ if (shouldAddFile) {
var importedFile = findSourceFile(resolution.resolvedFileName, ts.toPath(resolution.resolvedFileName, currentDirectory, getCanonicalFileName), false, file, ts.skipTrivia(file.text, file.imports[i].pos), file.imports[i].end);
if (importedFile && resolution.isExternalLibraryImport) {
if (!ts.isExternalModule(importedFile)) {
@@ -33117,6 +33527,9 @@ var ts;
startNode.getStart(sourceFile);
return ts.createTextSpanFromBounds(start, (endNode || startNode).getEnd());
}
+ function textSpanEndingAtNextToken(startNode, previousTokenToFindNextEndToken) {
+ return textSpan(startNode, ts.findNextToken(previousTokenToFindNextEndToken, previousTokenToFindNextEndToken.parent));
+ }
function spanInNodeIfStartsOnSameLine(node, otherwiseOnNode) {
if (node && lineOfPosition === sourceFile.getLineAndCharacterOfPosition(node.getStart(sourceFile)).line) {
return spanInNode(node);
@@ -33134,104 +33547,90 @@ var ts;
}
function spanInNode(node) {
if (node) {
- if (ts.isExpression(node)) {
- if (node.parent.kind === 199) {
- return spanInPreviousNode(node);
- }
- if (node.parent.kind === 139) {
- return spanInNode(node.parent);
- }
- if (node.parent.kind === 201) {
- return textSpan(node);
- }
- if (node.parent.kind === 183 && node.parent.operatorToken.kind === 24) {
- return textSpan(node);
- }
- if (node.parent.kind === 176 && node.parent.body === node) {
- return textSpan(node);
- }
- }
switch (node.kind) {
- case 195:
+ case 196:
return spanInVariableDeclaration(node.declarationList.declarations[0]);
- case 213:
- case 141:
- case 140:
- return spanInVariableDeclaration(node);
- case 138:
- return spanInParameterDeclaration(node);
- case 215:
- case 143:
+ case 214:
case 142:
- case 145:
- case 146:
+ case 141:
+ return spanInVariableDeclaration(node);
+ case 139:
+ return spanInParameterDeclaration(node);
+ case 216:
case 144:
- case 175:
+ case 143:
+ case 146:
+ case 147:
+ case 145:
case 176:
+ case 177:
return spanInFunctionDeclaration(node);
- case 194:
+ case 195:
if (ts.isFunctionBlock(node)) {
return spanInFunctionBlock(node);
}
- case 221:
+ case 222:
return spanInBlock(node);
- case 246:
+ case 247:
return spanInBlock(node.block);
- case 197:
- return textSpan(node.expression);
- case 206:
- return textSpan(node.getChildAt(0), node.expression);
- case 200:
- return textSpan(node, ts.findNextToken(node.expression, node));
- case 199:
- return spanInNode(node.statement);
- case 212:
- return textSpan(node.getChildAt(0));
case 198:
- return textSpan(node, ts.findNextToken(node.expression, node));
- case 209:
- return spanInNode(node.statement);
- case 205:
- case 204:
- return textSpan(node.getChildAt(0), node.label);
+ return textSpan(node.expression);
+ case 207:
+ return textSpan(node.getChildAt(0), node.expression);
case 201:
- return spanInForStatement(node);
- case 202:
- case 203:
- return textSpan(node, ts.findNextToken(node.expression, node));
- case 208:
- return textSpan(node, ts.findNextToken(node.expression, node));
- case 243:
- case 244:
- return spanInNode(node.statements[0]);
- case 211:
- return spanInBlock(node.tryBlock);
+ return textSpanEndingAtNextToken(node, node.expression);
+ case 200:
+ return spanInNode(node.statement);
+ case 213:
+ return textSpan(node.getChildAt(0));
+ case 199:
+ return textSpanEndingAtNextToken(node, node.expression);
case 210:
+ return spanInNode(node.statement);
+ case 206:
+ case 205:
+ return textSpan(node.getChildAt(0), node.label);
+ case 202:
+ return spanInForStatement(node);
+ case 203:
+ return textSpanEndingAtNextToken(node, node.expression);
+ case 204:
+ return spanInInitializerOfForLike(node);
+ case 209:
+ return textSpanEndingAtNextToken(node, node.expression);
+ case 244:
+ case 245:
+ return spanInNode(node.statements[0]);
+ case 212:
+ return spanInBlock(node.tryBlock);
+ case 211:
return textSpan(node, node.expression);
- case 229:
- return textSpan(node, node.expression);
- case 223:
- return textSpan(node, node.moduleReference);
- case 224:
- return textSpan(node, node.moduleSpecifier);
case 230:
+ return textSpan(node, node.expression);
+ case 224:
+ return textSpan(node, node.moduleReference);
+ case 225:
return textSpan(node, node.moduleSpecifier);
- case 220:
+ case 231:
+ return textSpan(node, node.moduleSpecifier);
+ case 221:
if (ts.getModuleInstanceState(node) !== 1) {
return undefined;
}
- case 216:
- case 219:
- case 249:
- case 170:
- case 171:
- return textSpan(node);
- case 207:
- return spanInNode(node.statement);
- case 139:
- return spanInNodeArray(node.parent.decorators);
case 217:
+ case 220:
+ case 250:
+ case 166:
+ return textSpan(node);
+ case 208:
+ return spanInNode(node.statement);
+ case 140:
+ return spanInNodeArray(node.parent.decorators);
+ case 164:
+ case 165:
+ return spanInBindingPattern(node);
case 218:
+ case 219:
return undefined;
case 23:
case 1:
@@ -33242,6 +33641,8 @@ var ts;
return spanInOpenBraceToken(node);
case 16:
return spanInCloseBraceToken(node);
+ case 20:
+ return spanInCloseBracketToken(node);
case 17:
return spanInOpenParenToken(node);
case 18:
@@ -33257,48 +33658,108 @@ var ts;
case 72:
case 85:
return spanInNextNode(node);
+ case 135:
+ return spanInOfKeyword(node);
default:
- if (node.parent.kind === 247 && node.parent.name === node) {
+ if (ts.isArrayLiteralOrObjectLiteralDestructuringPattern(node)) {
+ return spanInArrayLiteralOrObjectLiteralDestructuringPattern(node);
+ }
+ if ((node.kind === 69 ||
+ node.kind == 188 ||
+ node.kind === 248 ||
+ node.kind === 249) &&
+ ts.isArrayLiteralOrObjectLiteralDestructuringPattern(node.parent)) {
+ return textSpan(node);
+ }
+ if (node.kind === 184) {
+ var binaryExpression = node;
+ if (ts.isArrayLiteralOrObjectLiteralDestructuringPattern(binaryExpression.left)) {
+ return spanInArrayLiteralOrObjectLiteralDestructuringPattern(binaryExpression.left);
+ }
+ if (binaryExpression.operatorToken.kind === 56 &&
+ ts.isArrayLiteralOrObjectLiteralDestructuringPattern(binaryExpression.parent)) {
+ return textSpan(node);
+ }
+ if (binaryExpression.operatorToken.kind === 24) {
+ return spanInNode(binaryExpression.left);
+ }
+ }
+ if (ts.isExpression(node)) {
+ switch (node.parent.kind) {
+ case 200:
+ return spanInPreviousNode(node);
+ case 140:
+ return spanInNode(node.parent);
+ case 202:
+ case 204:
+ return textSpan(node);
+ case 184:
+ if (node.parent.operatorToken.kind === 24) {
+ return textSpan(node);
+ }
+ break;
+ case 177:
+ if (node.parent.body === node) {
+ return textSpan(node);
+ }
+ break;
+ }
+ }
+ if (node.parent.kind === 248 &&
+ node.parent.name === node &&
+ !ts.isArrayLiteralOrObjectLiteralDestructuringPattern(node.parent.parent)) {
return spanInNode(node.parent.initializer);
}
- if (node.parent.kind === 173 && node.parent.type === node) {
- return spanInNode(node.parent.expression);
+ if (node.parent.kind === 174 && node.parent.type === node) {
+ return spanInNextNode(node.parent.type);
}
if (ts.isFunctionLike(node.parent) && node.parent.type === node) {
return spanInPreviousNode(node);
}
+ if ((node.parent.kind === 214 ||
+ node.parent.kind === 139)) {
+ var paramOrVarDecl = node.parent;
+ if (paramOrVarDecl.initializer === node ||
+ paramOrVarDecl.type === node ||
+ ts.isAssignmentOperator(node.kind)) {
+ return spanInPreviousNode(node);
+ }
+ }
+ if (node.parent.kind === 184) {
+ var binaryExpression = node.parent;
+ if (ts.isArrayLiteralOrObjectLiteralDestructuringPattern(binaryExpression.left) &&
+ (binaryExpression.right === node ||
+ binaryExpression.operatorToken === node)) {
+ return spanInPreviousNode(node);
+ }
+ }
return spanInNode(node.parent);
}
}
+ function textSpanFromVariableDeclaration(variableDeclaration) {
+ var declarations = variableDeclaration.parent.declarations;
+ if (declarations && declarations[0] === variableDeclaration) {
+ return textSpan(ts.findPrecedingToken(variableDeclaration.pos, sourceFile, variableDeclaration.parent), variableDeclaration);
+ }
+ else {
+ return textSpan(variableDeclaration);
+ }
+ }
function spanInVariableDeclaration(variableDeclaration) {
- if (variableDeclaration.parent.parent.kind === 202 ||
- variableDeclaration.parent.parent.kind === 203) {
+ if (variableDeclaration.parent.parent.kind === 203) {
return spanInNode(variableDeclaration.parent.parent);
}
- var isParentVariableStatement = variableDeclaration.parent.parent.kind === 195;
- var isDeclarationOfForStatement = variableDeclaration.parent.parent.kind === 201 && ts.contains(variableDeclaration.parent.parent.initializer.declarations, variableDeclaration);
- var declarations = isParentVariableStatement
- ? variableDeclaration.parent.parent.declarationList.declarations
- : isDeclarationOfForStatement
- ? variableDeclaration.parent.parent.initializer.declarations
- : undefined;
- if (variableDeclaration.initializer || (variableDeclaration.flags & 2)) {
- if (declarations && declarations[0] === variableDeclaration) {
- if (isParentVariableStatement) {
- return textSpan(variableDeclaration.parent, variableDeclaration);
- }
- else {
- ts.Debug.assert(isDeclarationOfForStatement);
- return textSpan(ts.findPrecedingToken(variableDeclaration.pos, sourceFile, variableDeclaration.parent), variableDeclaration);
- }
- }
- else {
- return textSpan(variableDeclaration);
- }
+ if (ts.isBindingPattern(variableDeclaration.name)) {
+ return spanInBindingPattern(variableDeclaration.name);
}
- else if (declarations && declarations[0] !== variableDeclaration) {
- var indexOfCurrentDeclaration = ts.indexOf(declarations, variableDeclaration);
- return spanInVariableDeclaration(declarations[indexOfCurrentDeclaration - 1]);
+ if (variableDeclaration.initializer ||
+ (variableDeclaration.flags & 2) ||
+ variableDeclaration.parent.parent.kind === 204) {
+ return textSpanFromVariableDeclaration(variableDeclaration);
+ }
+ var declarations = variableDeclaration.parent.declarations;
+ if (declarations && declarations[0] !== variableDeclaration) {
+ return spanInNode(ts.findPrecedingToken(variableDeclaration.pos, sourceFile, variableDeclaration.parent));
}
}
function canHaveSpanInParameterDeclaration(parameter) {
@@ -33306,7 +33767,10 @@ var ts;
!!(parameter.flags & 8) || !!(parameter.flags & 16);
}
function spanInParameterDeclaration(parameter) {
- if (canHaveSpanInParameterDeclaration(parameter)) {
+ if (ts.isBindingPattern(parameter.name)) {
+ return spanInBindingPattern(parameter.name);
+ }
+ else if (canHaveSpanInParameterDeclaration(parameter)) {
return textSpan(parameter);
}
else {
@@ -33322,7 +33786,7 @@ var ts;
}
function canFunctionHaveSpanInWholeDeclaration(functionDeclaration) {
return !!(functionDeclaration.flags & 2) ||
- (functionDeclaration.parent.kind === 216 && functionDeclaration.kind !== 144);
+ (functionDeclaration.parent.kind === 217 && functionDeclaration.kind !== 145);
}
function spanInFunctionDeclaration(functionDeclaration) {
if (!functionDeclaration.body) {
@@ -33342,31 +33806,34 @@ var ts;
}
function spanInBlock(block) {
switch (block.parent.kind) {
- case 220:
+ case 221:
if (ts.getModuleInstanceState(block.parent) !== 1) {
return undefined;
}
- case 200:
- case 198:
- case 202:
+ case 201:
+ case 199:
case 203:
return spanInNodeIfStartsOnSameLine(block.parent, block.statements[0]);
- case 201:
+ case 202:
+ case 204:
return spanInNodeIfStartsOnSameLine(ts.findPrecedingToken(block.pos, sourceFile, block.parent), block.statements[0]);
}
return spanInNode(block.statements[0]);
}
+ function spanInInitializerOfForLike(forLikeStaement) {
+ if (forLikeStaement.initializer.kind === 215) {
+ var variableDeclarationList = forLikeStaement.initializer;
+ if (variableDeclarationList.declarations.length > 0) {
+ return spanInNode(variableDeclarationList.declarations[0]);
+ }
+ }
+ else {
+ return spanInNode(forLikeStaement.initializer);
+ }
+ }
function spanInForStatement(forStatement) {
if (forStatement.initializer) {
- if (forStatement.initializer.kind === 214) {
- var variableDeclarationList = forStatement.initializer;
- if (variableDeclarationList.declarations.length > 0) {
- return spanInNode(variableDeclarationList.declarations[0]);
- }
- }
- else {
- return spanInNode(forStatement.initializer);
- }
+ return spanInInitializerOfForLike(forStatement);
}
if (forStatement.condition) {
return textSpan(forStatement.condition);
@@ -33375,84 +33842,142 @@ var ts;
return textSpan(forStatement.incrementor);
}
}
+ function spanInBindingPattern(bindingPattern) {
+ var firstBindingElement = ts.forEach(bindingPattern.elements, function (element) { return element.kind !== 190 ? element : undefined; });
+ if (firstBindingElement) {
+ return spanInNode(firstBindingElement);
+ }
+ if (bindingPattern.parent.kind === 166) {
+ return textSpan(bindingPattern.parent);
+ }
+ return textSpanFromVariableDeclaration(bindingPattern.parent);
+ }
+ function spanInArrayLiteralOrObjectLiteralDestructuringPattern(node) {
+ ts.Debug.assert(node.kind !== 165 && node.kind !== 164);
+ var elements = node.kind === 167 ?
+ node.elements :
+ node.properties;
+ var firstBindingElement = ts.forEach(elements, function (element) { return element.kind !== 190 ? element : undefined; });
+ if (firstBindingElement) {
+ return spanInNode(firstBindingElement);
+ }
+ return textSpan(node.parent.kind === 184 ? node.parent : node);
+ }
function spanInOpenBraceToken(node) {
switch (node.parent.kind) {
- case 219:
+ case 220:
var enumDeclaration = node.parent;
return spanInNodeIfStartsOnSameLine(ts.findPrecedingToken(node.pos, sourceFile, node.parent), enumDeclaration.members.length ? enumDeclaration.members[0] : enumDeclaration.getLastToken(sourceFile));
- case 216:
+ case 217:
var classDeclaration = node.parent;
return spanInNodeIfStartsOnSameLine(ts.findPrecedingToken(node.pos, sourceFile, node.parent), classDeclaration.members.length ? classDeclaration.members[0] : classDeclaration.getLastToken(sourceFile));
- case 222:
+ case 223:
return spanInNodeIfStartsOnSameLine(node.parent.parent, node.parent.clauses[0]);
}
return spanInNode(node.parent);
}
function spanInCloseBraceToken(node) {
switch (node.parent.kind) {
- case 221:
+ case 222:
if (ts.getModuleInstanceState(node.parent.parent) !== 1) {
return undefined;
}
- case 219:
- case 216:
+ case 220:
+ case 217:
return textSpan(node);
- case 194:
+ case 195:
if (ts.isFunctionBlock(node.parent)) {
return textSpan(node);
}
- case 246:
+ case 247:
return spanInNode(ts.lastOrUndefined(node.parent.statements));
- case 222:
+ case 223:
var caseBlock = node.parent;
var lastClause = ts.lastOrUndefined(caseBlock.clauses);
if (lastClause) {
return spanInNode(ts.lastOrUndefined(lastClause.statements));
}
return undefined;
+ case 164:
+ var bindingPattern = node.parent;
+ return spanInNode(ts.lastOrUndefined(bindingPattern.elements) || bindingPattern);
default:
+ if (ts.isArrayLiteralOrObjectLiteralDestructuringPattern(node.parent)) {
+ var objectLiteral = node.parent;
+ return textSpan(ts.lastOrUndefined(objectLiteral.properties) || objectLiteral);
+ }
+ return spanInNode(node.parent);
+ }
+ }
+ function spanInCloseBracketToken(node) {
+ switch (node.parent.kind) {
+ case 165:
+ var bindingPattern = node.parent;
+ return textSpan(ts.lastOrUndefined(bindingPattern.elements) || bindingPattern);
+ default:
+ if (ts.isArrayLiteralOrObjectLiteralDestructuringPattern(node.parent)) {
+ var arrayLiteral = node.parent;
+ return textSpan(ts.lastOrUndefined(arrayLiteral.elements) || arrayLiteral);
+ }
return spanInNode(node.parent);
}
}
function spanInOpenParenToken(node) {
- if (node.parent.kind === 199) {
+ if (node.parent.kind === 200 ||
+ node.parent.kind === 171 ||
+ node.parent.kind === 172) {
return spanInPreviousNode(node);
}
+ if (node.parent.kind === 175) {
+ return spanInNextNode(node);
+ }
return spanInNode(node.parent);
}
function spanInCloseParenToken(node) {
switch (node.parent.kind) {
- case 175:
- case 215:
case 176:
- case 143:
- case 142:
- case 145:
- case 146:
+ case 216:
+ case 177:
case 144:
- case 200:
- case 199:
+ case 143:
+ case 146:
+ case 147:
+ case 145:
case 201:
+ case 200:
+ case 202:
+ case 204:
+ case 171:
+ case 172:
+ case 175:
return spanInPreviousNode(node);
default:
return spanInNode(node.parent);
}
}
function spanInColonToken(node) {
- if (ts.isFunctionLike(node.parent) || node.parent.kind === 247) {
+ if (ts.isFunctionLike(node.parent) ||
+ node.parent.kind === 248 ||
+ node.parent.kind === 139) {
return spanInPreviousNode(node);
}
return spanInNode(node.parent);
}
function spanInGreaterThanOrLessThanToken(node) {
- if (node.parent.kind === 173) {
- return spanInNode(node.parent.expression);
+ if (node.parent.kind === 174) {
+ return spanInNextNode(node);
}
return spanInNode(node.parent);
}
function spanInWhileKeyword(node) {
- if (node.parent.kind === 199) {
- return textSpan(node, ts.findNextToken(node.parent.expression, node.parent));
+ if (node.parent.kind === 200) {
+ return textSpanEndingAtNextToken(node, node.parent.expression);
+ }
+ return spanInNode(node.parent);
+ }
+ function spanInOfKeyword(node) {
+ if (node.parent.kind === 204) {
+ return spanInNextNode(node);
}
return spanInNode(node.parent);
}
@@ -33529,7 +34054,7 @@ var ts;
}
}
function autoCollapse(node) {
- return ts.isFunctionBlock(node) && node.parent.kind !== 176;
+ return ts.isFunctionBlock(node) && node.parent.kind !== 177;
}
var depth = 0;
var maxDepth = 20;
@@ -33541,26 +34066,26 @@ var ts;
addOutliningForLeadingCommentsForNode(n);
}
switch (n.kind) {
- case 194:
+ case 195:
if (!ts.isFunctionBlock(n)) {
- var parent_7 = n.parent;
+ var parent_8 = n.parent;
var openBrace = ts.findChildOfKind(n, 15, sourceFile);
var closeBrace = ts.findChildOfKind(n, 16, sourceFile);
- if (parent_7.kind === 199 ||
- parent_7.kind === 202 ||
- parent_7.kind === 203 ||
- parent_7.kind === 201 ||
- parent_7.kind === 198 ||
- parent_7.kind === 200 ||
- parent_7.kind === 207 ||
- parent_7.kind === 246) {
- addOutliningSpan(parent_7, openBrace, closeBrace, autoCollapse(n));
+ if (parent_8.kind === 200 ||
+ parent_8.kind === 203 ||
+ parent_8.kind === 204 ||
+ parent_8.kind === 202 ||
+ parent_8.kind === 199 ||
+ parent_8.kind === 201 ||
+ parent_8.kind === 208 ||
+ parent_8.kind === 247) {
+ addOutliningSpan(parent_8, openBrace, closeBrace, autoCollapse(n));
break;
}
- if (parent_7.kind === 211) {
- var tryStatement = parent_7;
+ if (parent_8.kind === 212) {
+ var tryStatement = parent_8;
if (tryStatement.tryBlock === n) {
- addOutliningSpan(parent_7, openBrace, closeBrace, autoCollapse(n));
+ addOutliningSpan(parent_8, openBrace, closeBrace, autoCollapse(n));
break;
}
else if (tryStatement.finallyBlock === n) {
@@ -33580,23 +34105,23 @@ var ts;
});
break;
}
- case 221: {
+ case 222: {
var openBrace = ts.findChildOfKind(n, 15, sourceFile);
var closeBrace = ts.findChildOfKind(n, 16, sourceFile);
addOutliningSpan(n.parent, openBrace, closeBrace, autoCollapse(n));
break;
}
- case 216:
case 217:
- case 219:
- case 167:
- case 222: {
+ case 218:
+ case 220:
+ case 168:
+ case 223: {
var openBrace = ts.findChildOfKind(n, 15, sourceFile);
var closeBrace = ts.findChildOfKind(n, 16, sourceFile);
addOutliningSpan(n, openBrace, closeBrace, autoCollapse(n));
break;
}
- case 166:
+ case 167:
var openBracket = ts.findChildOfKind(n, 19, sourceFile);
var closeBracket = ts.findChildOfKind(n, 20, sourceFile);
addOutliningSpan(n, openBracket, closeBracket, autoCollapse(n));
@@ -33623,10 +34148,10 @@ var ts;
ts.forEach(program.getSourceFiles(), function (sourceFile) {
cancellationToken.throwIfCancellationRequested();
var nameToDeclarations = sourceFile.getNamedDeclarations();
- for (var name_28 in nameToDeclarations) {
- var declarations = ts.getProperty(nameToDeclarations, name_28);
+ for (var name_31 in nameToDeclarations) {
+ var declarations = ts.getProperty(nameToDeclarations, name_31);
if (declarations) {
- var matches = patternMatcher.getMatchesForLastSegmentOfPattern(name_28);
+ var matches = patternMatcher.getMatchesForLastSegmentOfPattern(name_31);
if (!matches) {
continue;
}
@@ -33637,14 +34162,14 @@ var ts;
if (!containers) {
return undefined;
}
- matches = patternMatcher.getMatches(containers, name_28);
+ matches = patternMatcher.getMatches(containers, name_31);
if (!matches) {
continue;
}
}
var fileName = sourceFile.fileName;
var matchKind = bestMatchKind(matches);
- rawItems.push({ name: name_28, fileName: fileName, matchKind: matchKind, isCaseSensitive: allMatchesAreCaseSensitive(matches), declaration: declaration });
+ rawItems.push({ name: name_31, fileName: fileName, matchKind: matchKind, isCaseSensitive: allMatchesAreCaseSensitive(matches), declaration: declaration });
}
}
}
@@ -33681,7 +34206,7 @@ var ts;
if (text !== undefined) {
containers.unshift(text);
}
- else if (declaration.name.kind === 136) {
+ else if (declaration.name.kind === 137) {
return tryAddComputedPropertyName(declaration.name.expression, containers, true);
}
else {
@@ -33698,7 +34223,7 @@ var ts;
}
return true;
}
- if (expression.kind === 168) {
+ if (expression.kind === 169) {
var propertyAccess = expression;
if (includeLastPortion) {
containers.unshift(propertyAccess.name.text);
@@ -33709,7 +34234,7 @@ var ts;
}
function getContainers(declaration) {
var containers = [];
- if (declaration.name.kind === 136) {
+ if (declaration.name.kind === 137) {
if (!tryAddComputedPropertyName(declaration.name.expression, containers, false)) {
return undefined;
}
@@ -33771,14 +34296,14 @@ var ts;
var current = node.parent;
while (current) {
switch (current.kind) {
- case 220:
+ case 221:
do {
current = current.parent;
- } while (current.kind === 220);
- case 216:
- case 219:
+ } while (current.kind === 221);
case 217:
- case 215:
+ case 220:
+ case 218:
+ case 216:
indent++;
}
current = current.parent;
@@ -33789,26 +34314,26 @@ var ts;
var childNodes = [];
function visit(node) {
switch (node.kind) {
- case 195:
+ case 196:
ts.forEach(node.declarationList.declarations, visit);
break;
- case 163:
case 164:
+ case 165:
ts.forEach(node.elements, visit);
break;
- case 230:
+ case 231:
if (node.exportClause) {
ts.forEach(node.exportClause.elements, visit);
}
break;
- case 224:
+ case 225:
var importClause = node.importClause;
if (importClause) {
if (importClause.name) {
childNodes.push(importClause);
}
if (importClause.namedBindings) {
- if (importClause.namedBindings.kind === 226) {
+ if (importClause.namedBindings.kind === 227) {
childNodes.push(importClause.namedBindings);
}
else {
@@ -33817,20 +34342,20 @@ var ts;
}
}
break;
- case 165:
- case 213:
+ case 166:
+ case 214:
if (ts.isBindingPattern(node.name)) {
visit(node.name);
break;
}
- case 216:
- case 219:
case 217:
case 220:
- case 215:
- case 223:
- case 228:
- case 232:
+ case 218:
+ case 221:
+ case 216:
+ case 224:
+ case 229:
+ case 233:
childNodes.push(node);
break;
}
@@ -33865,17 +34390,17 @@ var ts;
for (var _i = 0, nodes_4 = nodes; _i < nodes_4.length; _i++) {
var node = nodes_4[_i];
switch (node.kind) {
- case 216:
- case 219:
case 217:
+ case 220:
+ case 218:
topLevelNodes.push(node);
break;
- case 220:
+ case 221:
var moduleDeclaration = node;
topLevelNodes.push(node);
addTopLevelNodes(getInnermostModule(moduleDeclaration).body.statements, topLevelNodes);
break;
- case 215:
+ case 216:
var functionDeclaration = node;
if (isTopLevelFunctionDeclaration(functionDeclaration)) {
topLevelNodes.push(node);
@@ -33886,9 +34411,9 @@ var ts;
}
}
function isTopLevelFunctionDeclaration(functionDeclaration) {
- if (functionDeclaration.kind === 215) {
- if (functionDeclaration.body && functionDeclaration.body.kind === 194) {
- if (ts.forEach(functionDeclaration.body.statements, function (s) { return s.kind === 215 && !isEmpty(s.name.text); })) {
+ if (functionDeclaration.kind === 216) {
+ if (functionDeclaration.body && functionDeclaration.body.kind === 195) {
+ if (ts.forEach(functionDeclaration.body.statements, function (s) { return s.kind === 216 && !isEmpty(s.name.text); })) {
return true;
}
if (!ts.isFunctionBlock(functionDeclaration.parent)) {
@@ -33941,7 +34466,7 @@ var ts;
}
function createChildItem(node) {
switch (node.kind) {
- case 138:
+ case 139:
if (ts.isBindingPattern(node.name)) {
break;
}
@@ -33949,34 +34474,34 @@ var ts;
return undefined;
}
return createItem(node, getTextOfNode(node.name), ts.ScriptElementKind.memberVariableElement);
+ case 144:
case 143:
- case 142:
return createItem(node, getTextOfNode(node.name), ts.ScriptElementKind.memberFunctionElement);
- case 145:
- return createItem(node, getTextOfNode(node.name), ts.ScriptElementKind.memberGetAccessorElement);
case 146:
- return createItem(node, getTextOfNode(node.name), ts.ScriptElementKind.memberSetAccessorElement);
- case 149:
- return createItem(node, "[]", ts.ScriptElementKind.indexSignatureElement);
- case 249:
- return createItem(node, getTextOfNode(node.name), ts.ScriptElementKind.memberVariableElement);
+ return createItem(node, getTextOfNode(node.name), ts.ScriptElementKind.memberGetAccessorElement);
case 147:
- return createItem(node, "()", ts.ScriptElementKind.callSignatureElement);
- case 148:
- return createItem(node, "new()", ts.ScriptElementKind.constructSignatureElement);
- case 141:
- case 140:
+ return createItem(node, getTextOfNode(node.name), ts.ScriptElementKind.memberSetAccessorElement);
+ case 150:
+ return createItem(node, "[]", ts.ScriptElementKind.indexSignatureElement);
+ case 250:
return createItem(node, getTextOfNode(node.name), ts.ScriptElementKind.memberVariableElement);
- case 215:
+ case 148:
+ return createItem(node, "()", ts.ScriptElementKind.callSignatureElement);
+ case 149:
+ return createItem(node, "new()", ts.ScriptElementKind.constructSignatureElement);
+ case 142:
+ case 141:
+ return createItem(node, getTextOfNode(node.name), ts.ScriptElementKind.memberVariableElement);
+ case 216:
return createItem(node, getTextOfNode(node.name), ts.ScriptElementKind.functionElement);
- case 213:
- case 165:
+ case 214:
+ case 166:
var variableDeclarationNode;
- var name_29;
- if (node.kind === 165) {
- name_29 = node.name;
+ var name_32;
+ if (node.kind === 166) {
+ name_32 = node.name;
variableDeclarationNode = node;
- while (variableDeclarationNode && variableDeclarationNode.kind !== 213) {
+ while (variableDeclarationNode && variableDeclarationNode.kind !== 214) {
variableDeclarationNode = variableDeclarationNode.parent;
}
ts.Debug.assert(variableDeclarationNode !== undefined);
@@ -33984,24 +34509,24 @@ var ts;
else {
ts.Debug.assert(!ts.isBindingPattern(node.name));
variableDeclarationNode = node;
- name_29 = node.name;
+ name_32 = node.name;
}
if (ts.isConst(variableDeclarationNode)) {
- return createItem(node, getTextOfNode(name_29), ts.ScriptElementKind.constElement);
+ return createItem(node, getTextOfNode(name_32), ts.ScriptElementKind.constElement);
}
else if (ts.isLet(variableDeclarationNode)) {
- return createItem(node, getTextOfNode(name_29), ts.ScriptElementKind.letElement);
+ return createItem(node, getTextOfNode(name_32), ts.ScriptElementKind.letElement);
}
else {
- return createItem(node, getTextOfNode(name_29), ts.ScriptElementKind.variableElement);
+ return createItem(node, getTextOfNode(name_32), ts.ScriptElementKind.variableElement);
}
- case 144:
+ case 145:
return createItem(node, "constructor", ts.ScriptElementKind.constructorImplementationElement);
- case 232:
- case 228:
- case 223:
- case 225:
+ case 233:
+ case 229:
+ case 224:
case 226:
+ case 227:
return createItem(node, getTextOfNode(node.name), ts.ScriptElementKind.alias);
}
return undefined;
@@ -34031,27 +34556,27 @@ var ts;
}
function createTopLevelItem(node) {
switch (node.kind) {
- case 250:
+ case 251:
return createSourceFileItem(node);
- case 216:
- return createClassItem(node);
- case 219:
- return createEnumItem(node);
case 217:
- return createIterfaceItem(node);
+ return createClassItem(node);
case 220:
+ return createEnumItem(node);
+ case 218:
+ return createIterfaceItem(node);
+ case 221:
return createModuleItem(node);
- case 215:
+ case 216:
return createFunctionItem(node);
}
return undefined;
function getModuleName(moduleDeclaration) {
- if (moduleDeclaration.name.kind === 9) {
+ if (ts.isAmbientModule(moduleDeclaration)) {
return getTextOfNode(moduleDeclaration.name);
}
var result = [];
result.push(moduleDeclaration.name.text);
- while (moduleDeclaration.body && moduleDeclaration.body.kind === 220) {
+ while (moduleDeclaration.body && moduleDeclaration.body.kind === 221) {
moduleDeclaration = moduleDeclaration.body;
result.push(moduleDeclaration.name.text);
}
@@ -34063,7 +34588,7 @@ var ts;
return getNavigationBarItem(moduleName, ts.ScriptElementKind.moduleElement, ts.getNodeModifiers(node), [getNodeSpan(node)], childItems, getIndent(node));
}
function createFunctionItem(node) {
- if (node.body && node.body.kind === 194) {
+ if (node.body && node.body.kind === 195) {
var childItems = getItemsWorker(sortNodes(node.body.statements), createChildItem);
return getNavigationBarItem(!node.name ? "default" : node.name.text, ts.ScriptElementKind.functionElement, ts.getNodeModifiers(node), [getNodeSpan(node)], childItems, getIndent(node));
}
@@ -34084,7 +34609,7 @@ var ts;
var childItems;
if (node.members) {
var constructor = ts.forEach(node.members, function (member) {
- return member.kind === 144 && member;
+ return member.kind === 145 && member;
});
var nodes = removeDynamicallyNamedProperties(node);
if (constructor) {
@@ -34105,19 +34630,19 @@ var ts;
}
}
function removeComputedProperties(node) {
- return ts.filter(node.members, function (member) { return member.name === undefined || member.name.kind !== 136; });
+ return ts.filter(node.members, function (member) { return member.name === undefined || member.name.kind !== 137; });
}
function removeDynamicallyNamedProperties(node) {
return ts.filter(node.members, function (member) { return !ts.hasDynamicName(member); });
}
function getInnermostModule(node) {
- while (node.body.kind === 220) {
+ while (node.body.kind === 221) {
node = node.body;
}
return node;
}
function getNodeSpan(node) {
- return node.kind === 250
+ return node.kind === 251
? ts.createTextSpanFromBounds(node.getFullStart(), node.getEnd())
: ts.createTextSpanFromBounds(node.getStart(), node.getEnd());
}
@@ -34572,14 +35097,14 @@ var ts;
}
return createSignatureHelpItems(candidates, resolvedSignature, argumentInfo);
function createJavaScriptSignatureHelpItems(argumentInfo) {
- if (argumentInfo.invocation.kind !== 170) {
+ if (argumentInfo.invocation.kind !== 171) {
return undefined;
}
var callExpression = argumentInfo.invocation;
var expression = callExpression.expression;
var name = expression.kind === 69
? expression
- : expression.kind === 168
+ : expression.kind === 169
? expression.name
: undefined;
if (!name || !name.text) {
@@ -34608,7 +35133,7 @@ var ts;
}
}
function getImmediatelyContainingArgumentInfo(node) {
- if (node.parent.kind === 170 || node.parent.kind === 171) {
+ if (node.parent.kind === 171 || node.parent.kind === 172) {
var callExpression = node.parent;
if (node.kind === 25 ||
node.kind === 17) {
@@ -34639,23 +35164,23 @@ var ts;
};
}
}
- else if (node.kind === 11 && node.parent.kind === 172) {
+ else if (node.kind === 11 && node.parent.kind === 173) {
if (ts.isInsideTemplateLiteral(node, position)) {
return getArgumentListInfoForTemplate(node.parent, 0);
}
}
- else if (node.kind === 12 && node.parent.parent.kind === 172) {
+ else if (node.kind === 12 && node.parent.parent.kind === 173) {
var templateExpression = node.parent;
var tagExpression = templateExpression.parent;
- ts.Debug.assert(templateExpression.kind === 185);
+ ts.Debug.assert(templateExpression.kind === 186);
var argumentIndex = ts.isInsideTemplateLiteral(node, position) ? 0 : 1;
return getArgumentListInfoForTemplate(tagExpression, argumentIndex);
}
- else if (node.parent.kind === 192 && node.parent.parent.parent.kind === 172) {
+ else if (node.parent.kind === 193 && node.parent.parent.parent.kind === 173) {
var templateSpan = node.parent;
var templateExpression = templateSpan.parent;
var tagExpression = templateExpression.parent;
- ts.Debug.assert(templateExpression.kind === 185);
+ ts.Debug.assert(templateExpression.kind === 186);
if (node.kind === 14 && !ts.isInsideTemplateLiteral(node, position)) {
return undefined;
}
@@ -34719,7 +35244,7 @@ var ts;
var template = taggedTemplate.template;
var applicableSpanStart = template.getStart();
var applicableSpanEnd = template.getEnd();
- if (template.kind === 185) {
+ if (template.kind === 186) {
var lastSpan = ts.lastOrUndefined(template.templateSpans);
if (lastSpan.literal.getFullWidth() === 0) {
applicableSpanEnd = ts.skipTrivia(sourceFile.text, applicableSpanEnd, false);
@@ -34728,7 +35253,7 @@ var ts;
return ts.createTextSpan(applicableSpanStart, applicableSpanEnd - applicableSpanStart);
}
function getContainingArgumentInfo(node) {
- for (var n = node; n.kind !== 250; n = n.parent) {
+ for (var n = node; n.kind !== 251; n = n.parent) {
if (ts.isFunctionBlock(n)) {
return undefined;
}
@@ -34908,39 +35433,39 @@ var ts;
return false;
}
switch (n.kind) {
- case 216:
case 217:
- case 219:
- case 167:
- case 163:
- case 155:
- case 194:
- case 221:
+ case 218:
+ case 220:
+ case 168:
+ case 164:
+ case 156:
+ case 195:
case 222:
+ case 223:
return nodeEndsWith(n, 16, sourceFile);
- case 246:
+ case 247:
return isCompletedNode(n.block, sourceFile);
- case 171:
+ case 172:
if (!n.arguments) {
return true;
}
- case 170:
- case 174:
- case 160:
+ case 171:
+ case 175:
+ case 161:
return nodeEndsWith(n, 18, sourceFile);
- case 152:
case 153:
+ case 154:
return isCompletedNode(n.type, sourceFile);
- case 144:
case 145:
case 146:
- case 215:
- case 175:
- case 143:
- case 142:
- case 148:
case 147:
+ case 216:
case 176:
+ case 144:
+ case 143:
+ case 149:
+ case 148:
+ case 177:
if (n.body) {
return isCompletedNode(n.body, sourceFile);
}
@@ -34948,62 +35473,62 @@ var ts;
return isCompletedNode(n.type, sourceFile);
}
return hasChildOfKind(n, 18, sourceFile);
- case 220:
+ case 221:
return n.body && isCompletedNode(n.body, sourceFile);
- case 198:
+ case 199:
if (n.elseStatement) {
return isCompletedNode(n.elseStatement, sourceFile);
}
return isCompletedNode(n.thenStatement, sourceFile);
- case 197:
+ case 198:
return isCompletedNode(n.expression, sourceFile) ||
hasChildOfKind(n, 23);
- case 166:
- case 164:
- case 169:
- case 136:
- case 157:
+ case 167:
+ case 165:
+ case 170:
+ case 137:
+ case 158:
return nodeEndsWith(n, 20, sourceFile);
- case 149:
+ case 150:
if (n.type) {
return isCompletedNode(n.type, sourceFile);
}
return hasChildOfKind(n, 20, sourceFile);
- case 243:
case 244:
+ case 245:
return false;
- case 201:
case 202:
case 203:
- case 200:
+ case 204:
+ case 201:
return isCompletedNode(n.statement, sourceFile);
- case 199:
+ case 200:
var hasWhileKeyword = findChildOfKind(n, 104, sourceFile);
if (hasWhileKeyword) {
return nodeEndsWith(n, 18, sourceFile);
}
return isCompletedNode(n.statement, sourceFile);
- case 154:
+ case 155:
return isCompletedNode(n.exprName, sourceFile);
- case 178:
- case 177:
case 179:
- case 186:
+ case 178:
+ case 180:
case 187:
+ case 188:
var unaryWordExpression = n;
return isCompletedNode(unaryWordExpression.expression, sourceFile);
- case 172:
+ case 173:
return isCompletedNode(n.template, sourceFile);
- case 185:
+ case 186:
var lastSpan = ts.lastOrUndefined(n.templateSpans);
return isCompletedNode(lastSpan, sourceFile);
- case 192:
+ case 193:
return ts.nodeIsPresent(n.literal);
- case 181:
+ case 182:
return isCompletedNode(n.operand, sourceFile);
- case 183:
- return isCompletedNode(n.right, sourceFile);
case 184:
+ return isCompletedNode(n.right, sourceFile);
+ case 185:
return isCompletedNode(n.whenFalse, sourceFile);
default:
return true;
@@ -35046,7 +35571,7 @@ var ts;
ts.findChildOfKind = findChildOfKind;
function findContainingList(node) {
var syntaxList = ts.forEach(node.parent.getChildren(), function (c) {
- if (c.kind === 273 && c.pos <= node.pos && c.end >= node.end) {
+ if (c.kind === 274 && c.pos <= node.pos && c.end >= node.end) {
return c;
}
});
@@ -35126,7 +35651,7 @@ var ts;
function findPrecedingToken(position, sourceFile, startNode) {
return find(startNode || sourceFile);
function findRightmostToken(n) {
- if (isToken(n) || n.kind === 238) {
+ if (isToken(n) || n.kind === 239) {
return n;
}
var children = n.getChildren();
@@ -35134,16 +35659,16 @@ var ts;
return candidate && findRightmostToken(candidate);
}
function find(n) {
- if (isToken(n) || n.kind === 238) {
+ if (isToken(n) || n.kind === 239) {
return n;
}
var children = n.getChildren();
for (var i = 0, len = children.length; i < len; i++) {
var child = children[i];
- if (position < child.end && (nodeHasTokens(child) || child.kind === 238)) {
+ if (position < child.end && (nodeHasTokens(child) || child.kind === 239)) {
var start = child.getStart(sourceFile);
var lookInPreviousChild = (start >= position) ||
- (child.kind === 238 && start === child.end);
+ (child.kind === 239 && start === child.end);
if (lookInPreviousChild) {
var candidate = findRightmostChildNodeWithTokens(children, i);
return candidate && findRightmostToken(candidate);
@@ -35153,7 +35678,7 @@ var ts;
}
}
}
- ts.Debug.assert(startNode !== undefined || n.kind === 250);
+ ts.Debug.assert(startNode !== undefined || n.kind === 251);
if (children.length) {
var candidate = findRightmostChildNodeWithTokens(children, children.length);
return candidate && findRightmostToken(candidate);
@@ -35170,7 +35695,7 @@ var ts;
ts.findPrecedingToken = findPrecedingToken;
function isInString(sourceFile, position) {
var token = getTokenAtPosition(sourceFile, position);
- return token && (token.kind === 9 || token.kind === 162) && position > token.getStart();
+ return token && (token.kind === 9 || token.kind === 163) && position > token.getStart();
}
ts.isInString = isInString;
function isInComment(sourceFile, position) {
@@ -35253,17 +35778,17 @@ var ts;
}
ts.getNodeModifiers = getNodeModifiers;
function getTypeArgumentOrTypeParameterList(node) {
- if (node.kind === 151 || node.kind === 170) {
+ if (node.kind === 152 || node.kind === 171) {
return node.typeArguments;
}
- if (ts.isFunctionLike(node) || node.kind === 216 || node.kind === 217) {
+ if (ts.isFunctionLike(node) || node.kind === 217 || node.kind === 218) {
return node.typeParameters;
}
return undefined;
}
ts.getTypeArgumentOrTypeParameterList = getTypeArgumentOrTypeParameterList;
function isToken(n) {
- return n.kind >= 0 && n.kind <= 134;
+ return n.kind >= 0 && n.kind <= 135;
}
ts.isToken = isToken;
function isWord(kind) {
@@ -35279,7 +35804,7 @@ var ts;
ts.isComment = isComment;
function isStringOrRegularExpressionOrTemplateLiteral(kind) {
if (kind === 9
- || kind === 162
+ || kind === 163
|| kind === 10
|| ts.isTemplateLiteralKind(kind)) {
return true;
@@ -35322,11 +35847,30 @@ var ts;
return true;
}
ts.compareDataObjects = compareDataObjects;
+ function isArrayLiteralOrObjectLiteralDestructuringPattern(node) {
+ if (node.kind === 167 ||
+ node.kind === 168) {
+ if (node.parent.kind === 184 &&
+ node.parent.left === node &&
+ node.parent.operatorToken.kind === 56) {
+ return true;
+ }
+ if (node.parent.kind === 204 &&
+ node.parent.initializer === node) {
+ return true;
+ }
+ if (isArrayLiteralOrObjectLiteralDestructuringPattern(node.parent.kind === 248 ? node.parent.parent : node.parent)) {
+ return true;
+ }
+ }
+ return false;
+ }
+ ts.isArrayLiteralOrObjectLiteralDestructuringPattern = isArrayLiteralOrObjectLiteralDestructuringPattern;
})(ts || (ts = {}));
var ts;
(function (ts) {
function isFirstDeclarationOfSymbolParameter(symbol) {
- return symbol.declarations && symbol.declarations.length > 0 && symbol.declarations[0].kind === 138;
+ return symbol.declarations && symbol.declarations.length > 0 && symbol.declarations[0].kind === 139;
}
ts.isFirstDeclarationOfSymbolParameter = isFirstDeclarationOfSymbolParameter;
var displayPartWriter = getDisplayPartWriter();
@@ -35507,7 +36051,7 @@ var ts;
ts.getDeclaredName = getDeclaredName;
function isImportOrExportSpecifierName(location) {
return location.parent &&
- (location.parent.kind === 228 || location.parent.kind === 232) &&
+ (location.parent.kind === 229 || location.parent.kind === 233) &&
location.parent.propertyName === location;
}
ts.isImportOrExportSpecifierName = isImportOrExportSpecifierName;
@@ -35609,10 +36153,10 @@ var ts;
function shouldRescanJsxIdentifier(node) {
if (node.parent) {
switch (node.parent.kind) {
+ case 241:
+ case 238:
case 240:
case 237:
- case 239:
- case 236:
return node.kind === 69;
}
}
@@ -36084,41 +36628,41 @@ var ts;
}
Rules.prototype.getRuleName = function (rule) {
var o = this;
- for (var name_30 in o) {
- if (o[name_30] === rule) {
- return name_30;
+ for (var name_33 in o) {
+ if (o[name_33] === rule) {
+ return name_33;
}
}
throw new Error("Unknown rule");
};
Rules.IsForContext = function (context) {
- return context.contextNode.kind === 201;
+ return context.contextNode.kind === 202;
};
Rules.IsNotForContext = function (context) {
return !Rules.IsForContext(context);
};
Rules.IsBinaryOpContext = function (context) {
switch (context.contextNode.kind) {
- case 183:
case 184:
- case 191:
- case 150:
- case 158:
+ case 185:
+ case 192:
+ case 151:
case 159:
+ case 160:
return true;
- case 165:
- case 218:
- case 223:
- case 213:
- case 138:
- case 249:
+ case 166:
+ case 219:
+ case 224:
+ case 214:
+ case 139:
+ case 250:
+ case 142:
case 141:
- case 140:
return context.currentTokenSpan.kind === 56 || context.nextTokenSpan.kind === 56;
- case 202:
- return context.currentTokenSpan.kind === 90 || context.nextTokenSpan.kind === 90;
case 203:
- return context.currentTokenSpan.kind === 134 || context.nextTokenSpan.kind === 134;
+ return context.currentTokenSpan.kind === 90 || context.nextTokenSpan.kind === 90;
+ case 204:
+ return context.currentTokenSpan.kind === 135 || context.nextTokenSpan.kind === 135;
}
return false;
};
@@ -36126,7 +36670,7 @@ var ts;
return !Rules.IsBinaryOpContext(context);
};
Rules.IsConditionalOperatorContext = function (context) {
- return context.contextNode.kind === 184;
+ return context.contextNode.kind === 185;
};
Rules.IsSameLineTokenOrBeforeMultilineBlockContext = function (context) {
return context.TokensAreOnSameLine() || Rules.IsBeforeMultilineBlockContext(context);
@@ -36151,86 +36695,86 @@ var ts;
return true;
}
switch (node.kind) {
- case 194:
+ case 195:
+ case 223:
+ case 168:
case 222:
- case 167:
- case 221:
return true;
}
return false;
};
Rules.IsFunctionDeclContext = function (context) {
switch (context.contextNode.kind) {
- case 215:
+ case 216:
+ case 144:
case 143:
- case 142:
- case 145:
case 146:
case 147:
- case 175:
- case 144:
+ case 148:
case 176:
- case 217:
+ case 145:
+ case 177:
+ case 218:
return true;
}
return false;
};
Rules.IsFunctionDeclarationOrFunctionExpressionContext = function (context) {
- return context.contextNode.kind === 215 || context.contextNode.kind === 175;
+ return context.contextNode.kind === 216 || context.contextNode.kind === 176;
};
Rules.IsTypeScriptDeclWithBlockContext = function (context) {
return Rules.NodeIsTypeScriptDeclWithBlockContext(context.contextNode);
};
Rules.NodeIsTypeScriptDeclWithBlockContext = function (node) {
switch (node.kind) {
- case 216:
- case 188:
case 217:
- case 219:
- case 155:
+ case 189:
+ case 218:
case 220:
+ case 156:
+ case 221:
return true;
}
return false;
};
Rules.IsAfterCodeBlockContext = function (context) {
switch (context.currentTokenParent.kind) {
- case 216:
- case 220:
- case 219:
- case 194:
- case 246:
+ case 217:
case 221:
- case 208:
+ case 220:
+ case 195:
+ case 247:
+ case 222:
+ case 209:
return true;
}
return false;
};
Rules.IsControlDeclContext = function (context) {
switch (context.contextNode.kind) {
- case 198:
- case 208:
- case 201:
+ case 199:
+ case 209:
case 202:
case 203:
+ case 204:
+ case 201:
+ case 212:
case 200:
- case 211:
- case 199:
- case 207:
- case 246:
+ case 208:
+ case 247:
return true;
default:
return false;
}
};
Rules.IsObjectContext = function (context) {
- return context.contextNode.kind === 167;
+ return context.contextNode.kind === 168;
};
Rules.IsFunctionCallContext = function (context) {
- return context.contextNode.kind === 170;
+ return context.contextNode.kind === 171;
};
Rules.IsNewContext = function (context) {
- return context.contextNode.kind === 171;
+ return context.contextNode.kind === 172;
};
Rules.IsFunctionCallOrNewContext = function (context) {
return Rules.IsFunctionCallContext(context) || Rules.IsNewContext(context);
@@ -36242,7 +36786,7 @@ var ts;
return context.nextTokenSpan.kind !== 20;
};
Rules.IsArrowFunctionContext = function (context) {
- return context.contextNode.kind === 176;
+ return context.contextNode.kind === 177;
};
Rules.IsSameLineTokenContext = function (context) {
return context.TokensAreOnSameLine();
@@ -36260,41 +36804,41 @@ var ts;
while (ts.isExpression(node)) {
node = node.parent;
}
- return node.kind === 139;
+ return node.kind === 140;
};
Rules.IsStartOfVariableDeclarationList = function (context) {
- return context.currentTokenParent.kind === 214 &&
+ return context.currentTokenParent.kind === 215 &&
context.currentTokenParent.getStart(context.sourceFile) === context.currentTokenSpan.pos;
};
Rules.IsNotFormatOnEnter = function (context) {
return context.formattingRequestKind !== 2;
};
Rules.IsModuleDeclContext = function (context) {
- return context.contextNode.kind === 220;
+ return context.contextNode.kind === 221;
};
Rules.IsObjectTypeContext = function (context) {
- return context.contextNode.kind === 155;
+ return context.contextNode.kind === 156;
};
Rules.IsTypeArgumentOrParameterOrAssertion = function (token, parent) {
if (token.kind !== 25 && token.kind !== 27) {
return false;
}
switch (parent.kind) {
- case 151:
- case 173:
- case 216:
- case 188:
+ case 152:
+ case 174:
case 217:
- case 215:
- case 175:
+ case 189:
+ case 218:
+ case 216:
case 176:
+ case 177:
+ case 144:
case 143:
- case 142:
- case 147:
case 148:
- case 170:
+ case 149:
case 171:
- case 190:
+ case 172:
+ case 191:
return true;
default:
return false;
@@ -36305,13 +36849,13 @@ var ts;
Rules.IsTypeArgumentOrParameterOrAssertion(context.nextTokenSpan, context.nextTokenParent);
};
Rules.IsTypeAssertionContext = function (context) {
- return context.contextNode.kind === 173;
+ return context.contextNode.kind === 174;
};
Rules.IsVoidOpContext = function (context) {
- return context.currentTokenSpan.kind === 103 && context.currentTokenParent.kind === 179;
+ return context.currentTokenSpan.kind === 103 && context.currentTokenParent.kind === 180;
};
Rules.IsYieldOrYieldStarWithOperand = function (context) {
- return context.contextNode.kind === 186 && context.contextNode.expression !== undefined;
+ return context.contextNode.kind === 187 && context.contextNode.expression !== undefined;
};
return Rules;
}());
@@ -36333,7 +36877,7 @@ var ts;
return result;
};
RulesMap.prototype.Initialize = function (rules) {
- this.mapRowLength = 134 + 1;
+ this.mapRowLength = 135 + 1;
this.map = new Array(this.mapRowLength * this.mapRowLength);
var rulesBucketConstructionStateList = new Array(this.map.length);
this.FillRules(rules, rulesBucketConstructionStateList);
@@ -36509,7 +37053,7 @@ var ts;
}
TokenAllAccess.prototype.GetTokens = function () {
var result = [];
- for (var token = 0; token <= 134; token++) {
+ for (var token = 0; token <= 135; token++) {
result.push(token);
}
return result;
@@ -36551,9 +37095,9 @@ var ts;
};
TokenRange.Any = TokenRange.AllTokens();
TokenRange.AnyIncludingMultilineComments = TokenRange.FromTokens(TokenRange.Any.GetTokens().concat([3]));
- TokenRange.Keywords = TokenRange.FromRange(70, 134);
+ TokenRange.Keywords = TokenRange.FromRange(70, 135);
TokenRange.BinaryOperators = TokenRange.FromRange(25, 68);
- TokenRange.BinaryKeywordOperators = TokenRange.FromTokens([90, 91, 134, 116, 124]);
+ TokenRange.BinaryKeywordOperators = TokenRange.FromTokens([90, 91, 135, 116, 124]);
TokenRange.UnaryPrefixOperators = TokenRange.FromTokens([41, 42, 50, 49]);
TokenRange.UnaryPrefixExpressions = TokenRange.FromTokens([8, 69, 17, 19, 15, 97, 92]);
TokenRange.UnaryPreincrementExpressions = TokenRange.FromTokens([69, 17, 97, 92]);
@@ -36740,17 +37284,17 @@ var ts;
}
function isListElement(parent, node) {
switch (parent.kind) {
- case 216:
case 217:
+ case 218:
return ts.rangeContainsRange(parent.members, node);
- case 220:
- var body = parent.body;
- return body && body.kind === 194 && ts.rangeContainsRange(body.statements, node);
- case 250:
- case 194:
case 221:
+ var body = parent.body;
+ return body && body.kind === 195 && ts.rangeContainsRange(body.statements, node);
+ case 251:
+ case 195:
+ case 222:
return ts.rangeContainsRange(parent.statements, node);
- case 246:
+ case 247:
return ts.rangeContainsRange(parent.block.statements, node);
}
return false;
@@ -36905,18 +37449,18 @@ var ts;
return node.modifiers[0].kind;
}
switch (node.kind) {
- case 216: return 73;
- case 217: return 107;
- case 215: return 87;
- case 219: return 219;
- case 145: return 123;
- case 146: return 129;
- case 143:
+ case 217: return 73;
+ case 218: return 107;
+ case 216: return 87;
+ case 220: return 220;
+ case 146: return 123;
+ case 147: return 129;
+ case 144:
if (node.asteriskToken) {
return 37;
}
- case 141:
- case 138:
+ case 142:
+ case 139:
return node.name.kind;
}
}
@@ -37029,7 +37573,7 @@ var ts;
consumeTokenAndAdvanceScanner(tokenInfo, node, parentDynamicIndentation, child);
return inheritedIndentation;
}
- var effectiveParentStartLine = child.kind === 139 ? childStartLine : undecoratedParentStartLine;
+ var effectiveParentStartLine = child.kind === 140 ? childStartLine : undecoratedParentStartLine;
var childIndentation = computeIndentation(child, childStartLine, childIndentationAmount, node, parentDynamicIndentation, effectiveParentStartLine);
processNode(child, childContextNode, childStartLine, undecoratedChildStartLine, childIndentation.indentation, childIndentation.delta);
childContextNode = node;
@@ -37332,20 +37876,20 @@ var ts;
}
function isSomeBlock(kind) {
switch (kind) {
- case 194:
- case 221:
+ case 195:
+ case 222:
return true;
}
return false;
}
function getOpenTokenForList(node, list) {
switch (node.kind) {
- case 144:
- case 215:
- case 175:
- case 143:
- case 142:
+ case 145:
+ case 216:
case 176:
+ case 144:
+ case 143:
+ case 177:
if (node.typeParameters === list) {
return 25;
}
@@ -37353,8 +37897,8 @@ var ts;
return 17;
}
break;
- case 170:
case 171:
+ case 172:
if (node.typeArguments === list) {
return 25;
}
@@ -37362,7 +37906,7 @@ var ts;
return 17;
}
break;
- case 151:
+ case 152:
if (node.typeArguments === list) {
return 25;
}
@@ -37463,7 +38007,7 @@ var ts;
var lineStart = ts.getLineStartPositionForPosition(current_1, sourceFile);
return SmartIndenter.findFirstNonWhitespaceColumn(lineStart, current_1, sourceFile, options);
}
- if (precedingToken.kind === 24 && precedingToken.parent.kind !== 183) {
+ if (precedingToken.kind === 24 && precedingToken.parent.kind !== 184) {
var actualIndentation = getActualIndentationForListItemBeforeComma(precedingToken, sourceFile, options);
if (actualIndentation !== -1) {
return actualIndentation;
@@ -37561,7 +38105,7 @@ var ts;
}
function getActualIndentationForNode(current, parent, currentLineAndChar, parentAndChildShareLine, sourceFile, options) {
var useActualIndentation = (ts.isDeclaration(current) || ts.isStatement(current)) &&
- (parent.kind === 250 || !parentAndChildShareLine);
+ (parent.kind === 251 || !parentAndChildShareLine);
if (!useActualIndentation) {
return -1;
}
@@ -37585,7 +38129,7 @@ var ts;
return sourceFile.getLineAndCharacterOfPosition(n.getStart(sourceFile));
}
function childStartsOnTheSameLineWithElseInIfStatement(parent, child, childStartLine, sourceFile) {
- if (parent.kind === 198 && parent.elseStatement === child) {
+ if (parent.kind === 199 && parent.elseStatement === child) {
var elseKeyword = ts.findChildOfKind(parent, 80, sourceFile);
ts.Debug.assert(elseKeyword !== undefined);
var elseKeywordStartLine = getStartLineAndCharacterForNode(elseKeyword, sourceFile).line;
@@ -37597,23 +38141,23 @@ var ts;
function getContainingList(node, sourceFile) {
if (node.parent) {
switch (node.parent.kind) {
- case 151:
+ case 152:
if (node.parent.typeArguments &&
ts.rangeContainsStartEnd(node.parent.typeArguments, node.getStart(sourceFile), node.getEnd())) {
return node.parent.typeArguments;
}
break;
- case 167:
+ case 168:
return node.parent.properties;
- case 166:
+ case 167:
return node.parent.elements;
- case 215:
- case 175:
+ case 216:
case 176:
+ case 177:
+ case 144:
case 143:
- case 142:
- case 147:
- case 148: {
+ case 148:
+ case 149: {
var start = node.getStart(sourceFile);
if (node.parent.typeParameters &&
ts.rangeContainsStartEnd(node.parent.typeParameters, start, node.getEnd())) {
@@ -37624,8 +38168,8 @@ var ts;
}
break;
}
- case 171:
- case 170: {
+ case 172:
+ case 171: {
var start = node.getStart(sourceFile);
if (node.parent.typeArguments &&
ts.rangeContainsStartEnd(node.parent.typeArguments, start, node.getEnd())) {
@@ -37653,8 +38197,8 @@ var ts;
if (node.kind === 18) {
return -1;
}
- if (node.parent && (node.parent.kind === 170 ||
- node.parent.kind === 171) &&
+ if (node.parent && (node.parent.kind === 171 ||
+ node.parent.kind === 172) &&
node.parent.expression !== node) {
var fullCallOrNewExpression = node.parent.expression;
var startingExpression = getStartingExpression(fullCallOrNewExpression);
@@ -37672,10 +38216,10 @@ var ts;
function getStartingExpression(node) {
while (true) {
switch (node.kind) {
- case 170:
case 171:
- case 168:
+ case 172:
case 169:
+ case 170:
node = node.expression;
break;
default:
@@ -37729,45 +38273,45 @@ var ts;
SmartIndenter.findFirstNonWhitespaceColumn = findFirstNonWhitespaceColumn;
function nodeContentIsAlwaysIndented(kind) {
switch (kind) {
- case 197:
- case 216:
- case 188:
+ case 198:
case 217:
- case 219:
+ case 189:
case 218:
- case 166:
- case 194:
- case 221:
+ case 220:
+ case 219:
case 167:
- case 155:
- case 157:
- case 222:
- case 244:
- case 243:
- case 174:
- case 168:
- case 170:
- case 171:
case 195:
- case 213:
- case 229:
- case 206:
- case 184:
- case 164:
- case 163:
- case 237:
- case 236:
- case 242:
- case 142:
- case 147:
- case 148:
- case 138:
- case 152:
- case 153:
- case 160:
+ case 222:
+ case 168:
+ case 156:
+ case 158:
+ case 223:
+ case 245:
+ case 244:
+ case 175:
+ case 169:
+ case 171:
case 172:
- case 180:
- case 227:
+ case 196:
+ case 214:
+ case 230:
+ case 207:
+ case 185:
+ case 165:
+ case 164:
+ case 238:
+ case 237:
+ case 243:
+ case 143:
+ case 148:
+ case 149:
+ case 139:
+ case 153:
+ case 154:
+ case 161:
+ case 173:
+ case 181:
+ case 228:
return true;
}
return false;
@@ -37775,22 +38319,22 @@ var ts;
function nodeWillIndentChild(parent, child, indentByDefault) {
var childKind = child ? child.kind : 0;
switch (parent.kind) {
- case 199:
case 200:
- case 202:
- case 203:
case 201:
- case 198:
- case 215:
- case 175:
- case 143:
+ case 203:
+ case 204:
+ case 202:
+ case 199:
+ case 216:
case 176:
case 144:
+ case 177:
case 145:
case 146:
- return childKind !== 194;
- case 235:
- return childKind !== 239;
+ case 147:
+ return childKind !== 195;
+ case 236:
+ return childKind !== 240;
}
return indentByDefault;
}
@@ -37925,7 +38469,7 @@ var ts;
return pos;
};
NodeObject.prototype.createSyntaxList = function (nodes) {
- var list = createNode(273, nodes.pos, nodes.end, 2048, this);
+ var list = createNode(274, nodes.pos, nodes.end, 2048, this);
list._children = [];
var pos = nodes.pos;
for (var _i = 0, nodes_7 = nodes; _i < nodes_7.length; _i++) {
@@ -37944,7 +38488,7 @@ var ts;
NodeObject.prototype.createChildren = function (sourceFile) {
var _this = this;
var children;
- if (this.kind >= 135) {
+ if (this.kind >= 136) {
scanner.setText((sourceFile || this.getSourceFile()).text);
children = [];
var pos = this.pos;
@@ -37991,7 +38535,7 @@ var ts;
return undefined;
}
var child = children[0];
- return child.kind < 135 ? child : child.getFirstToken(sourceFile);
+ return child.kind < 136 ? child : child.getFirstToken(sourceFile);
};
NodeObject.prototype.getLastToken = function (sourceFile) {
var children = this.getChildren(sourceFile);
@@ -37999,7 +38543,7 @@ var ts;
if (!child) {
return undefined;
}
- return child.kind < 135 ? child : child.getLastToken(sourceFile);
+ return child.kind < 136 ? child : child.getLastToken(sourceFile);
};
return NodeObject;
}());
@@ -38041,7 +38585,7 @@ var ts;
ts.forEach(declarations, function (declaration, indexOfDeclaration) {
if (ts.indexOf(declarations, declaration) === indexOfDeclaration) {
var sourceFileOfDeclaration = ts.getSourceFileOfNode(declaration);
- if (canUseParsedParamTagComments && declaration.kind === 138) {
+ if (canUseParsedParamTagComments && declaration.kind === 139) {
ts.forEach(getJsDocCommentTextRange(declaration.parent, sourceFileOfDeclaration), function (jsDocCommentTextRange) {
var cleanedParamJsDocComment = getCleanedParamJsDocComment(jsDocCommentTextRange.pos, jsDocCommentTextRange.end, sourceFileOfDeclaration);
if (cleanedParamJsDocComment) {
@@ -38049,13 +38593,13 @@ var ts;
}
});
}
- if (declaration.kind === 220 && declaration.body.kind === 220) {
+ if (declaration.kind === 221 && declaration.body.kind === 221) {
return;
}
- while (declaration.kind === 220 && declaration.parent.kind === 220) {
+ while (declaration.kind === 221 && declaration.parent.kind === 221) {
declaration = declaration.parent;
}
- ts.forEach(getJsDocCommentTextRange(declaration.kind === 213 ? declaration.parent.parent : declaration, sourceFileOfDeclaration), function (jsDocCommentTextRange) {
+ ts.forEach(getJsDocCommentTextRange(declaration.kind === 214 ? declaration.parent.parent : declaration, sourceFileOfDeclaration), function (jsDocCommentTextRange) {
var cleanedJsDocComment = getCleanedJsDocComment(jsDocCommentTextRange.pos, jsDocCommentTextRange.end, sourceFileOfDeclaration);
if (cleanedJsDocComment) {
ts.addRange(jsDocCommentParts, cleanedJsDocComment);
@@ -38366,9 +38910,9 @@ var ts;
if (result_2 !== undefined) {
return result_2;
}
- if (declaration.name.kind === 136) {
+ if (declaration.name.kind === 137) {
var expr = declaration.name.expression;
- if (expr.kind === 168) {
+ if (expr.kind === 169) {
return expr.name.text;
}
return getTextOfIdentifierOrLiteral(expr);
@@ -38388,9 +38932,9 @@ var ts;
}
function visit(node) {
switch (node.kind) {
- case 215:
+ case 216:
+ case 144:
case 143:
- case 142:
var functionDeclaration = node;
var declarationName = getDeclarationName(functionDeclaration);
if (declarationName) {
@@ -38407,62 +38951,62 @@ var ts;
ts.forEachChild(node, visit);
}
break;
- case 216:
case 217:
case 218:
case 219:
case 220:
- case 223:
- case 232:
- case 228:
- case 223:
- case 225:
- case 226:
- case 145:
- case 146:
- case 155:
- addDeclaration(node);
- case 144:
- case 195:
- case 214:
- case 163:
- case 164:
case 221:
+ case 224:
+ case 233:
+ case 229:
+ case 224:
+ case 226:
+ case 227:
+ case 146:
+ case 147:
+ case 156:
+ addDeclaration(node);
+ case 145:
+ case 196:
+ case 215:
+ case 164:
+ case 165:
+ case 222:
ts.forEachChild(node, visit);
break;
- case 194:
+ case 195:
if (ts.isFunctionBlock(node)) {
ts.forEachChild(node, visit);
}
break;
- case 138:
+ case 139:
if (!(node.flags & 56)) {
break;
}
- case 213:
- case 165:
+ case 214:
+ case 166:
if (ts.isBindingPattern(node.name)) {
ts.forEachChild(node.name, visit);
break;
}
- case 249:
+ case 250:
+ case 142:
case 141:
- case 140:
addDeclaration(node);
break;
- case 230:
+ case 231:
if (node.exportClause) {
ts.forEach(node.exportClause.elements, visit);
}
break;
- case 224:
+ case 225:
var importClause = node.importClause;
if (importClause) {
if (importClause.name) {
addDeclaration(importClause);
}
if (importClause.namedBindings) {
- if (importClause.namedBindings.kind === 226) {
+ if (importClause.namedBindings.kind === 227) {
addDeclaration(importClause.namedBindings);
}
else {
@@ -38598,6 +39142,9 @@ var ts;
ClassificationTypeNames.jsxOpenTagName = "jsx open tag name";
ClassificationTypeNames.jsxCloseTagName = "jsx close tag name";
ClassificationTypeNames.jsxSelfClosingTagName = "jsx self closing tag name";
+ ClassificationTypeNames.jsxAttribute = "jsx attribute";
+ ClassificationTypeNames.jsxText = "jsx text";
+ ClassificationTypeNames.jsxAttributeStringLiteralValue = "jsx attribute string literal value";
return ClassificationTypeNames;
}());
ts.ClassificationTypeNames = ClassificationTypeNames;
@@ -38613,14 +39160,14 @@ var ts;
return false;
}
return ts.forEach(symbol.declarations, function (declaration) {
- if (declaration.kind === 175) {
+ if (declaration.kind === 176) {
return true;
}
- if (declaration.kind !== 213 && declaration.kind !== 215) {
+ if (declaration.kind !== 214 && declaration.kind !== 216) {
return false;
}
- for (var parent_8 = declaration.parent; !ts.isFunctionBlock(parent_8); parent_8 = parent_8.parent) {
- if (parent_8.kind === 250 || parent_8.kind === 221) {
+ for (var parent_9 = declaration.parent; !ts.isFunctionBlock(parent_9); parent_9 = parent_9.parent) {
+ if (parent_9.kind === 251 || parent_9.kind === 222) {
return false;
}
}
@@ -38829,16 +39376,10 @@ var ts;
return createLanguageServiceSourceFile(sourceFile.fileName, scriptSnapshot, sourceFile.languageVersion, version, true);
}
ts.updateLanguageServiceSourceFile = updateLanguageServiceSourceFile;
- function createGetCanonicalFileName(useCaseSensitivefileNames) {
- return useCaseSensitivefileNames
- ? (function (fileName) { return fileName; })
- : (function (fileName) { return fileName.toLowerCase(); });
- }
- ts.createGetCanonicalFileName = createGetCanonicalFileName;
function createDocumentRegistry(useCaseSensitiveFileNames, currentDirectory) {
if (currentDirectory === void 0) { currentDirectory = ""; }
var buckets = {};
- var getCanonicalFileName = createGetCanonicalFileName(!!useCaseSensitiveFileNames);
+ var getCanonicalFileName = ts.createGetCanonicalFileName(!!useCaseSensitiveFileNames);
function getKeyFromCompilationSettings(settings) {
return "_" + settings.target + "|" + settings.module + "|" + settings.noResolve + "|" + settings.jsx + +"|" + settings.allowJs;
}
@@ -39151,7 +39692,7 @@ var ts;
ts.preProcessFile = preProcessFile;
function getTargetLabel(referenceNode, labelName) {
while (referenceNode) {
- if (referenceNode.kind === 209 && referenceNode.label.text === labelName) {
+ if (referenceNode.kind === 210 && referenceNode.label.text === labelName) {
return referenceNode.label;
}
referenceNode = referenceNode.parent;
@@ -39160,16 +39701,16 @@ var ts;
}
function isJumpStatementTarget(node) {
return node.kind === 69 &&
- (node.parent.kind === 205 || node.parent.kind === 204) &&
+ (node.parent.kind === 206 || node.parent.kind === 205) &&
node.parent.label === node;
}
function isLabelOfLabeledStatement(node) {
return node.kind === 69 &&
- node.parent.kind === 209 &&
+ node.parent.kind === 210 &&
node.parent.label === node;
}
function isLabeledBy(node, labelName) {
- for (var owner = node.parent; owner.kind === 209; owner = owner.parent) {
+ for (var owner = node.parent; owner.kind === 210; owner = owner.parent) {
if (owner.label.text === labelName) {
return true;
}
@@ -39180,25 +39721,25 @@ var ts;
return isLabelOfLabeledStatement(node) || isJumpStatementTarget(node);
}
function isRightSideOfQualifiedName(node) {
- return node.parent.kind === 135 && node.parent.right === node;
+ return node.parent.kind === 136 && node.parent.right === node;
}
function isRightSideOfPropertyAccess(node) {
- return node && node.parent && node.parent.kind === 168 && node.parent.name === node;
+ return node && node.parent && node.parent.kind === 169 && node.parent.name === node;
}
function isCallExpressionTarget(node) {
if (isRightSideOfPropertyAccess(node)) {
node = node.parent;
}
- return node && node.parent && node.parent.kind === 170 && node.parent.expression === node;
+ return node && node.parent && node.parent.kind === 171 && node.parent.expression === node;
}
function isNewExpressionTarget(node) {
if (isRightSideOfPropertyAccess(node)) {
node = node.parent;
}
- return node && node.parent && node.parent.kind === 171 && node.parent.expression === node;
+ return node && node.parent && node.parent.kind === 172 && node.parent.expression === node;
}
function isNameOfModuleDeclaration(node) {
- return node.parent.kind === 220 && node.parent.name === node;
+ return node.parent.kind === 221 && node.parent.name === node;
}
function isNameOfFunctionDeclaration(node) {
return node.kind === 69 &&
@@ -39206,22 +39747,22 @@ var ts;
}
function isNameOfPropertyAssignment(node) {
return (node.kind === 69 || node.kind === 9 || node.kind === 8) &&
- (node.parent.kind === 247 || node.parent.kind === 248) && node.parent.name === node;
+ (node.parent.kind === 248 || node.parent.kind === 249) && node.parent.name === node;
}
function isLiteralNameOfPropertyDeclarationOrIndexAccess(node) {
if (node.kind === 9 || node.kind === 8) {
switch (node.parent.kind) {
- case 141:
- case 140:
- case 247:
- case 249:
- case 143:
case 142:
- case 145:
+ case 141:
+ case 248:
+ case 250:
+ case 144:
+ case 143:
case 146:
- case 220:
+ case 147:
+ case 221:
return node.parent.name === node;
- case 169:
+ case 170:
return node.parent.argumentExpression === node;
}
}
@@ -39259,7 +39800,7 @@ var ts;
}
}
var keywordCompletions = [];
- for (var i = 70; i <= 134; i++) {
+ for (var i = 70; i <= 135; i++) {
keywordCompletions.push({
name: ts.tokenToString(i),
kind: ScriptElementKind.keyword,
@@ -39274,17 +39815,17 @@ var ts;
return undefined;
}
switch (node.kind) {
- case 250:
+ case 251:
+ case 144:
case 143:
- case 142:
- case 215:
- case 175:
- case 145:
- case 146:
case 216:
+ case 176:
+ case 146:
+ case 147:
case 217:
- case 219:
+ case 218:
case 220:
+ case 221:
return node;
}
}
@@ -39292,38 +39833,38 @@ var ts;
ts.getContainerNode = getContainerNode;
function getNodeKind(node) {
switch (node.kind) {
- case 220: return ScriptElementKind.moduleElement;
- case 216: return ScriptElementKind.classElement;
- case 217: return ScriptElementKind.interfaceElement;
- case 218: return ScriptElementKind.typeElement;
- case 219: return ScriptElementKind.enumElement;
- case 213:
+ case 221: return ScriptElementKind.moduleElement;
+ case 217: return ScriptElementKind.classElement;
+ case 218: return ScriptElementKind.interfaceElement;
+ case 219: return ScriptElementKind.typeElement;
+ case 220: return ScriptElementKind.enumElement;
+ case 214:
return ts.isConst(node)
? ScriptElementKind.constElement
: ts.isLet(node)
? ScriptElementKind.letElement
: ScriptElementKind.variableElement;
- case 215: return ScriptElementKind.functionElement;
- case 145: return ScriptElementKind.memberGetAccessorElement;
- case 146: return ScriptElementKind.memberSetAccessorElement;
+ case 216: return ScriptElementKind.functionElement;
+ case 146: return ScriptElementKind.memberGetAccessorElement;
+ case 147: return ScriptElementKind.memberSetAccessorElement;
+ case 144:
case 143:
- case 142:
return ScriptElementKind.memberFunctionElement;
+ case 142:
case 141:
- case 140:
return ScriptElementKind.memberVariableElement;
- case 149: return ScriptElementKind.indexSignatureElement;
- case 148: return ScriptElementKind.constructSignatureElement;
- case 147: return ScriptElementKind.callSignatureElement;
- case 144: return ScriptElementKind.constructorImplementationElement;
- case 137: return ScriptElementKind.typeParameterElement;
- case 249: return ScriptElementKind.variableElement;
- case 138: return (node.flags & 56) ? ScriptElementKind.memberVariableElement : ScriptElementKind.parameterElement;
- case 223:
- case 228:
- case 225:
- case 232:
+ case 150: return ScriptElementKind.indexSignatureElement;
+ case 149: return ScriptElementKind.constructSignatureElement;
+ case 148: return ScriptElementKind.callSignatureElement;
+ case 145: return ScriptElementKind.constructorImplementationElement;
+ case 138: return ScriptElementKind.typeParameterElement;
+ case 250: return ScriptElementKind.variableElement;
+ case 139: return (node.flags & 56) ? ScriptElementKind.memberVariableElement : ScriptElementKind.parameterElement;
+ case 224:
+ case 229:
case 226:
+ case 233:
+ case 227:
return ScriptElementKind.alias;
}
return ScriptElementKind.unknown;
@@ -39360,7 +39901,7 @@ var ts;
host.log(message);
}
}
- var getCanonicalFileName = createGetCanonicalFileName(useCaseSensitivefileNames);
+ var getCanonicalFileName = ts.createGetCanonicalFileName(useCaseSensitivefileNames);
function getValidSourceFile(fileName) {
var sourceFile = program.getSourceFile(fileName);
if (!sourceFile) {
@@ -39552,9 +40093,9 @@ var ts;
isJsDocTagName = true;
}
switch (tag.kind) {
- case 271:
- case 269:
+ case 272:
case 270:
+ case 271:
var tagWithExpression = tag;
if (tagWithExpression.typeExpression) {
insideJsDocTagExpression = tagWithExpression.typeExpression.pos < position && position < tagWithExpression.typeExpression.end;
@@ -39589,13 +40130,13 @@ var ts;
log("Returning an empty list because completion was requested in an invalid position.");
return undefined;
}
- var parent_9 = contextToken.parent, kind = contextToken.kind;
+ var parent_10 = contextToken.parent, kind = contextToken.kind;
if (kind === 21) {
- if (parent_9.kind === 168) {
+ if (parent_10.kind === 169) {
node = contextToken.parent.expression;
isRightOfDot = true;
}
- else if (parent_9.kind === 135) {
+ else if (parent_10.kind === 136) {
node = contextToken.parent.left;
isRightOfDot = true;
}
@@ -39608,8 +40149,9 @@ var ts;
isRightOfOpenTag = true;
location = contextToken;
}
- else if (kind === 39 && contextToken.parent.kind === 239) {
+ else if (kind === 39 && contextToken.parent.kind === 240) {
isStartingCloseTag = true;
+ location = contextToken;
}
}
}
@@ -39633,7 +40175,10 @@ var ts;
}
else if (isStartingCloseTag) {
var tagName = contextToken.parent.parent.openingElement.tagName;
- symbols = [typeChecker.getSymbolAtLocation(tagName)];
+ var tagSymbol = typeChecker.getSymbolAtLocation(tagName);
+ if (!typeChecker.isUnknownSymbol(tagSymbol)) {
+ symbols = [tagSymbol];
+ }
isMemberCompletion = true;
isNewIdentifierLocation = false;
}
@@ -39647,7 +40192,7 @@ var ts;
function getTypeScriptMemberSymbols() {
isMemberCompletion = true;
isNewIdentifierLocation = false;
- if (node.kind === 69 || node.kind === 135 || node.kind === 168) {
+ if (node.kind === 69 || node.kind === 136 || node.kind === 169) {
var symbol = typeChecker.getSymbolAtLocation(node);
if (symbol && symbol.flags & 8388608) {
symbol = typeChecker.getAliasedSymbol(symbol);
@@ -39693,7 +40238,7 @@ var ts;
}
if (jsxContainer = tryGetContainingJsxElement(contextToken)) {
var attrsType;
- if ((jsxContainer.kind === 236) || (jsxContainer.kind === 237)) {
+ if ((jsxContainer.kind === 237) || (jsxContainer.kind === 238)) {
attrsType = typeChecker.getJsxElementAttributesType(jsxContainer);
if (attrsType) {
symbols = filterJsxAttributes(typeChecker.getPropertiesOfType(attrsType), jsxContainer.attributes);
@@ -39733,15 +40278,15 @@ var ts;
return result;
}
function isInJsxText(contextToken) {
- if (contextToken.kind === 238) {
+ if (contextToken.kind === 239) {
return true;
}
if (contextToken.kind === 27 && contextToken.parent) {
- if (contextToken.parent.kind === 237) {
+ if (contextToken.parent.kind === 238) {
return true;
}
- if (contextToken.parent.kind === 239 || contextToken.parent.kind === 236) {
- return contextToken.parent.parent && contextToken.parent.parent.kind === 235;
+ if (contextToken.parent.kind === 240 || contextToken.parent.kind === 237) {
+ return contextToken.parent.parent && contextToken.parent.parent.kind === 236;
}
}
return false;
@@ -39751,40 +40296,40 @@ var ts;
var containingNodeKind = previousToken.parent.kind;
switch (previousToken.kind) {
case 24:
- return containingNodeKind === 170
- || containingNodeKind === 144
- || containingNodeKind === 171
- || containingNodeKind === 166
- || containingNodeKind === 183
- || containingNodeKind === 152;
+ return containingNodeKind === 171
+ || containingNodeKind === 145
+ || containingNodeKind === 172
+ || containingNodeKind === 167
+ || containingNodeKind === 184
+ || containingNodeKind === 153;
case 17:
- return containingNodeKind === 170
- || containingNodeKind === 144
- || containingNodeKind === 171
- || containingNodeKind === 174
- || containingNodeKind === 160;
+ return containingNodeKind === 171
+ || containingNodeKind === 145
+ || containingNodeKind === 172
+ || containingNodeKind === 175
+ || containingNodeKind === 161;
case 19:
- return containingNodeKind === 166
- || containingNodeKind === 149
- || containingNodeKind === 136;
+ return containingNodeKind === 167
+ || containingNodeKind === 150
+ || containingNodeKind === 137;
case 125:
case 126:
return true;
case 21:
- return containingNodeKind === 220;
+ return containingNodeKind === 221;
case 15:
- return containingNodeKind === 216;
+ return containingNodeKind === 217;
case 56:
- return containingNodeKind === 213
- || containingNodeKind === 183;
+ return containingNodeKind === 214
+ || containingNodeKind === 184;
case 12:
- return containingNodeKind === 185;
+ return containingNodeKind === 186;
case 13:
- return containingNodeKind === 192;
+ return containingNodeKind === 193;
case 112:
case 110:
case 111:
- return containingNodeKind === 141;
+ return containingNodeKind === 142;
}
switch (previousToken.getText()) {
case "public":
@@ -39797,7 +40342,7 @@ var ts;
}
function isInStringOrRegularExpressionOrTemplateLiteral(contextToken) {
if (contextToken.kind === 9
- || contextToken.kind === 162
+ || contextToken.kind === 163
|| contextToken.kind === 10
|| ts.isTemplateLiteralKind(contextToken.kind)) {
var start_7 = contextToken.getStart();
@@ -39816,12 +40361,12 @@ var ts;
isMemberCompletion = true;
var typeForObject;
var existingMembers;
- if (objectLikeContainer.kind === 167) {
+ if (objectLikeContainer.kind === 168) {
isNewIdentifierLocation = true;
typeForObject = typeChecker.getContextualType(objectLikeContainer);
existingMembers = objectLikeContainer.properties;
}
- else if (objectLikeContainer.kind === 163) {
+ else if (objectLikeContainer.kind === 164) {
isNewIdentifierLocation = false;
var rootDeclaration = ts.getRootDeclaration(objectLikeContainer.parent);
if (ts.isVariableLike(rootDeclaration)) {
@@ -39847,9 +40392,9 @@ var ts;
return true;
}
function tryGetImportOrExportClauseCompletionSymbols(namedImportsOrExports) {
- var declarationKind = namedImportsOrExports.kind === 227 ?
- 224 :
- 230;
+ var declarationKind = namedImportsOrExports.kind === 228 ?
+ 225 :
+ 231;
var importOrExportDeclaration = ts.getAncestor(namedImportsOrExports, declarationKind);
var moduleSpecifier = importOrExportDeclaration.moduleSpecifier;
if (!moduleSpecifier) {
@@ -39870,9 +40415,9 @@ var ts;
switch (contextToken.kind) {
case 15:
case 24:
- var parent_10 = contextToken.parent;
- if (parent_10 && (parent_10.kind === 167 || parent_10.kind === 163)) {
- return parent_10;
+ var parent_11 = contextToken.parent;
+ if (parent_11 && (parent_11.kind === 168 || parent_11.kind === 164)) {
+ return parent_11;
}
break;
}
@@ -39885,8 +40430,8 @@ var ts;
case 15:
case 24:
switch (contextToken.parent.kind) {
- case 227:
- case 231:
+ case 228:
+ case 232:
return contextToken.parent;
}
}
@@ -39895,34 +40440,34 @@ var ts;
}
function tryGetContainingJsxElement(contextToken) {
if (contextToken) {
- var parent_11 = contextToken.parent;
+ var parent_12 = contextToken.parent;
switch (contextToken.kind) {
case 26:
case 39:
case 69:
- case 240:
case 241:
- if (parent_11 && (parent_11.kind === 236 || parent_11.kind === 237)) {
- return parent_11;
+ case 242:
+ if (parent_12 && (parent_12.kind === 237 || parent_12.kind === 238)) {
+ return parent_12;
}
- else if (parent_11.kind === 240) {
- return parent_11.parent;
+ else if (parent_12.kind === 241) {
+ return parent_12.parent;
}
break;
case 9:
- if (parent_11 && ((parent_11.kind === 240) || (parent_11.kind === 241))) {
- return parent_11.parent;
+ if (parent_12 && ((parent_12.kind === 241) || (parent_12.kind === 242))) {
+ return parent_12.parent;
}
break;
case 16:
- if (parent_11 &&
- parent_11.kind === 242 &&
- parent_11.parent &&
- (parent_11.parent.kind === 240)) {
- return parent_11.parent.parent;
+ if (parent_12 &&
+ parent_12.kind === 243 &&
+ parent_12.parent &&
+ (parent_12.parent.kind === 241)) {
+ return parent_12.parent.parent;
}
- if (parent_11 && parent_11.kind === 241) {
- return parent_11.parent;
+ if (parent_12 && parent_12.kind === 242) {
+ return parent_12.parent;
}
break;
}
@@ -39931,16 +40476,16 @@ var ts;
}
function isFunction(kind) {
switch (kind) {
- case 175:
case 176:
- case 215:
+ case 177:
+ case 216:
+ case 144:
case 143:
- case 142:
- case 145:
case 146:
case 147:
case 148:
case 149:
+ case 150:
return true;
}
return false;
@@ -39949,54 +40494,54 @@ var ts;
var containingNodeKind = contextToken.parent.kind;
switch (contextToken.kind) {
case 24:
- return containingNodeKind === 213 ||
- containingNodeKind === 214 ||
- containingNodeKind === 195 ||
- containingNodeKind === 219 ||
+ return containingNodeKind === 214 ||
+ containingNodeKind === 215 ||
+ containingNodeKind === 196 ||
+ containingNodeKind === 220 ||
isFunction(containingNodeKind) ||
- containingNodeKind === 216 ||
- containingNodeKind === 188 ||
containingNodeKind === 217 ||
- containingNodeKind === 164 ||
- containingNodeKind === 218;
+ containingNodeKind === 189 ||
+ containingNodeKind === 218 ||
+ containingNodeKind === 165 ||
+ containingNodeKind === 219;
case 21:
- return containingNodeKind === 164;
- case 54:
return containingNodeKind === 165;
+ case 54:
+ return containingNodeKind === 166;
case 19:
- return containingNodeKind === 164;
+ return containingNodeKind === 165;
case 17:
- return containingNodeKind === 246 ||
+ return containingNodeKind === 247 ||
isFunction(containingNodeKind);
case 15:
- return containingNodeKind === 219 ||
- containingNodeKind === 217 ||
- containingNodeKind === 155;
- case 23:
- return containingNodeKind === 140 &&
- contextToken.parent && contextToken.parent.parent &&
- (contextToken.parent.parent.kind === 217 ||
- contextToken.parent.parent.kind === 155);
- case 25:
- return containingNodeKind === 216 ||
- containingNodeKind === 188 ||
- containingNodeKind === 217 ||
+ return containingNodeKind === 220 ||
containingNodeKind === 218 ||
+ containingNodeKind === 156;
+ case 23:
+ return containingNodeKind === 141 &&
+ contextToken.parent && contextToken.parent.parent &&
+ (contextToken.parent.parent.kind === 218 ||
+ contextToken.parent.parent.kind === 156);
+ case 25:
+ return containingNodeKind === 217 ||
+ containingNodeKind === 189 ||
+ containingNodeKind === 218 ||
+ containingNodeKind === 219 ||
isFunction(containingNodeKind);
case 113:
- return containingNodeKind === 141;
+ return containingNodeKind === 142;
case 22:
- return containingNodeKind === 138 ||
+ return containingNodeKind === 139 ||
(contextToken.parent && contextToken.parent.parent &&
- contextToken.parent.parent.kind === 164);
+ contextToken.parent.parent.kind === 165);
case 112:
case 110:
case 111:
- return containingNodeKind === 138;
+ return containingNodeKind === 139;
case 116:
- return containingNodeKind === 228 ||
- containingNodeKind === 232 ||
- containingNodeKind === 226;
+ return containingNodeKind === 229 ||
+ containingNodeKind === 233 ||
+ containingNodeKind === 227;
case 73:
case 81:
case 107:
@@ -40045,8 +40590,8 @@ var ts;
if (element.getStart() <= position && position <= element.getEnd()) {
continue;
}
- var name_31 = element.propertyName || element.name;
- exisingImportsOrExports[name_31.text] = true;
+ var name_34 = element.propertyName || element.name;
+ exisingImportsOrExports[name_34.text] = true;
}
if (ts.isEmpty(exisingImportsOrExports)) {
return exportsOfModule;
@@ -40060,17 +40605,17 @@ var ts;
var existingMemberNames = {};
for (var _i = 0, existingMembers_1 = existingMembers; _i < existingMembers_1.length; _i++) {
var m = existingMembers_1[_i];
- if (m.kind !== 247 &&
- m.kind !== 248 &&
- m.kind !== 165 &&
- m.kind !== 143) {
+ if (m.kind !== 248 &&
+ m.kind !== 249 &&
+ m.kind !== 166 &&
+ m.kind !== 144) {
continue;
}
if (m.getStart() <= position && position <= m.getEnd()) {
continue;
}
var existingName = void 0;
- if (m.kind === 165 && m.propertyName) {
+ if (m.kind === 166 && m.propertyName) {
if (m.propertyName.kind === 69) {
existingName = m.propertyName.text;
}
@@ -40089,7 +40634,7 @@ var ts;
if (attr.getStart() <= position && position <= attr.getEnd()) {
continue;
}
- if (attr.kind === 240) {
+ if (attr.kind === 241) {
seenNames[attr.name.text] = true;
}
}
@@ -40114,7 +40659,19 @@ var ts;
}
else {
if (!symbols || symbols.length === 0) {
- return undefined;
+ if (sourceFile.languageVariant === 1 &&
+ location.parent && location.parent.kind === 240) {
+ var tagName = location.parent.parent.openingElement.tagName;
+ entries.push({
+ name: tagName.text,
+ kind: undefined,
+ kindModifiers: undefined,
+ sortText: "0"
+ });
+ }
+ else {
+ return undefined;
+ }
}
getCompletionEntriesFromSymbols(symbols, entries);
}
@@ -40126,10 +40683,10 @@ var ts;
var entries = [];
var target = program.getCompilerOptions().target;
var nameTable = getNameTable(sourceFile);
- for (var name_32 in nameTable) {
- if (!uniqueNames[name_32]) {
- uniqueNames[name_32] = name_32;
- var displayName = getCompletionEntryDisplayName(name_32, target, true);
+ for (var name_35 in nameTable) {
+ if (!uniqueNames[name_35]) {
+ uniqueNames[name_35] = name_35;
+ var displayName = getCompletionEntryDisplayName(name_35, target, true);
if (displayName) {
var entry = {
name: displayName,
@@ -40218,7 +40775,7 @@ var ts;
function getSymbolKind(symbol, location) {
var flags = symbol.getFlags();
if (flags & 32)
- return ts.getDeclarationOfKind(symbol, 188) ?
+ return ts.getDeclarationOfKind(symbol, 189) ?
ScriptElementKind.localClassElement : ScriptElementKind.classElement;
if (flags & 384)
return ScriptElementKind.enumElement;
@@ -40314,14 +40871,14 @@ var ts;
var signature;
type = typeChecker.getTypeOfSymbolAtLocation(symbol, location);
if (type) {
- if (location.parent && location.parent.kind === 168) {
+ if (location.parent && location.parent.kind === 169) {
var right = location.parent.name;
if (right === location || (right && right.getFullWidth() === 0)) {
location = location.parent;
}
}
var callExpression;
- if (location.kind === 170 || location.kind === 171) {
+ if (location.kind === 171 || location.kind === 172) {
callExpression = location;
}
else if (isCallExpressionTarget(location) || isNewExpressionTarget(location)) {
@@ -40333,7 +40890,7 @@ var ts;
if (!signature && candidateSignatures.length) {
signature = candidateSignatures[0];
}
- var useConstructSignatures = callExpression.kind === 171 || callExpression.expression.kind === 95;
+ var useConstructSignatures = callExpression.kind === 172 || callExpression.expression.kind === 95;
var allSignatures = useConstructSignatures ? type.getConstructSignatures() : type.getCallSignatures();
if (!ts.contains(allSignatures, signature.target) && !ts.contains(allSignatures, signature)) {
signature = allSignatures.length ? allSignatures[0] : undefined;
@@ -40381,21 +40938,21 @@ var ts;
}
}
else if ((isNameOfFunctionDeclaration(location) && !(symbol.flags & 98304)) ||
- (location.kind === 121 && location.parent.kind === 144)) {
+ (location.kind === 121 && location.parent.kind === 145)) {
var functionDeclaration = location.parent;
- var allSignatures = functionDeclaration.kind === 144 ? type.getConstructSignatures() : type.getCallSignatures();
+ var allSignatures = functionDeclaration.kind === 145 ? type.getConstructSignatures() : type.getCallSignatures();
if (!typeChecker.isImplementationOfOverload(functionDeclaration)) {
signature = typeChecker.getSignatureFromDeclaration(functionDeclaration);
}
else {
signature = allSignatures[0];
}
- if (functionDeclaration.kind === 144) {
+ if (functionDeclaration.kind === 145) {
symbolKind = ScriptElementKind.constructorImplementationElement;
addPrefixForAnyFunctionOrVar(type.symbol, symbolKind);
}
else {
- addPrefixForAnyFunctionOrVar(functionDeclaration.kind === 147 &&
+ addPrefixForAnyFunctionOrVar(functionDeclaration.kind === 148 &&
!(type.symbol.flags & 2048 || type.symbol.flags & 4096) ? type.symbol : symbol, symbolKind);
}
addSignatureDisplayParts(signature, allSignatures);
@@ -40404,7 +40961,7 @@ var ts;
}
}
if (symbolFlags & 32 && !hasAddedSymbolInfo) {
- if (ts.getDeclarationOfKind(symbol, 188)) {
+ if (ts.getDeclarationOfKind(symbol, 189)) {
pushTypePart(ScriptElementKind.localClassElement);
}
else {
@@ -40444,7 +41001,7 @@ var ts;
}
if (symbolFlags & 1536) {
addNewLineIfDisplayPartsExist();
- var declaration = ts.getDeclarationOfKind(symbol, 220);
+ var declaration = ts.getDeclarationOfKind(symbol, 221);
var isNamespace = declaration && declaration.name && declaration.name.kind === 69;
displayParts.push(ts.keywordPart(isNamespace ? 126 : 125));
displayParts.push(ts.spacePart());
@@ -40465,17 +41022,17 @@ var ts;
writeTypeParametersOfSymbol(symbol.parent, enclosingDeclaration);
}
else {
- var declaration = ts.getDeclarationOfKind(symbol, 137);
+ var declaration = ts.getDeclarationOfKind(symbol, 138);
ts.Debug.assert(declaration !== undefined);
declaration = declaration.parent;
if (declaration) {
if (ts.isFunctionLikeKind(declaration.kind)) {
var signature = typeChecker.getSignatureFromDeclaration(declaration);
- if (declaration.kind === 148) {
+ if (declaration.kind === 149) {
displayParts.push(ts.keywordPart(92));
displayParts.push(ts.spacePart());
}
- else if (declaration.kind !== 147 && declaration.name) {
+ else if (declaration.kind !== 148 && declaration.name) {
addFullSymbolName(declaration.symbol);
}
ts.addRange(displayParts, ts.signatureToDisplayParts(typeChecker, signature, sourceFile, 32));
@@ -40492,7 +41049,7 @@ var ts;
if (symbolFlags & 8) {
addPrefixForAnyFunctionOrVar(symbol, "enum member");
var declaration = symbol.declarations[0];
- if (declaration.kind === 249) {
+ if (declaration.kind === 250) {
var constantValue = typeChecker.getConstantValue(declaration);
if (constantValue !== undefined) {
displayParts.push(ts.spacePart());
@@ -40508,7 +41065,7 @@ var ts;
displayParts.push(ts.spacePart());
addFullSymbolName(symbol);
ts.forEach(symbol.declarations, function (declaration) {
- if (declaration.kind === 223) {
+ if (declaration.kind === 224) {
var importEqualsDeclaration = declaration;
if (ts.isExternalModuleImportEqualsDeclaration(importEqualsDeclaration)) {
displayParts.push(ts.spacePart());
@@ -40635,13 +41192,13 @@ var ts;
}
var typeChecker = program.getTypeChecker();
var symbol = typeChecker.getSymbolAtLocation(node);
- if (!symbol) {
+ if (!symbol || typeChecker.isUnknownSymbol(symbol)) {
switch (node.kind) {
case 69:
- case 168:
- case 135:
+ case 169:
+ case 136:
case 97:
- case 161:
+ case 162:
case 95:
var type = typeChecker.getTypeAtLocation(node);
if (type) {
@@ -40714,8 +41271,8 @@ var ts;
var declarations = [];
var definition;
ts.forEach(signatureDeclarations, function (d) {
- if ((selectConstructors && d.kind === 144) ||
- (!selectConstructors && (d.kind === 215 || d.kind === 143 || d.kind === 142))) {
+ if ((selectConstructors && d.kind === 145) ||
+ (!selectConstructors && (d.kind === 216 || d.kind === 144 || d.kind === 143))) {
declarations.push(d);
if (d.body)
definition = d;
@@ -40770,7 +41327,7 @@ var ts;
symbol = typeChecker.getAliasedSymbol(symbol);
}
}
- if (node.parent.kind === 248) {
+ if (node.parent.kind === 249) {
var shorthandSymbol = typeChecker.getShorthandAssignmentValueSymbol(symbol.valueDeclaration);
if (!shorthandSymbol) {
return [];
@@ -40843,7 +41400,7 @@ var ts;
function getSemanticDocumentHighlights(node) {
if (node.kind === 69 ||
node.kind === 97 ||
- node.kind === 161 ||
+ node.kind === 162 ||
node.kind === 95 ||
isLiteralNameOfPropertyDeclarationOrIndexAccess(node) ||
isNameOfExternalModuleImportOrDeclaration(node)) {
@@ -40895,75 +41452,75 @@ var ts;
switch (node.kind) {
case 88:
case 80:
- if (hasKind(node.parent, 198)) {
+ if (hasKind(node.parent, 199)) {
return getIfElseOccurrences(node.parent);
}
break;
case 94:
- if (hasKind(node.parent, 206)) {
+ if (hasKind(node.parent, 207)) {
return getReturnOccurrences(node.parent);
}
break;
case 98:
- if (hasKind(node.parent, 210)) {
+ if (hasKind(node.parent, 211)) {
return getThrowOccurrences(node.parent);
}
break;
case 72:
- if (hasKind(parent(parent(node)), 211)) {
+ if (hasKind(parent(parent(node)), 212)) {
return getTryCatchFinallyOccurrences(node.parent.parent);
}
break;
case 100:
case 85:
- if (hasKind(parent(node), 211)) {
+ if (hasKind(parent(node), 212)) {
return getTryCatchFinallyOccurrences(node.parent);
}
break;
case 96:
- if (hasKind(node.parent, 208)) {
+ if (hasKind(node.parent, 209)) {
return getSwitchCaseDefaultOccurrences(node.parent);
}
break;
case 71:
case 77:
- if (hasKind(parent(parent(parent(node))), 208)) {
+ if (hasKind(parent(parent(parent(node))), 209)) {
return getSwitchCaseDefaultOccurrences(node.parent.parent.parent);
}
break;
case 70:
case 75:
- if (hasKind(node.parent, 205) || hasKind(node.parent, 204)) {
+ if (hasKind(node.parent, 206) || hasKind(node.parent, 205)) {
return getBreakOrContinueStatementOccurrences(node.parent);
}
break;
case 86:
- if (hasKind(node.parent, 201) ||
- hasKind(node.parent, 202) ||
- hasKind(node.parent, 203)) {
+ if (hasKind(node.parent, 202) ||
+ hasKind(node.parent, 203) ||
+ hasKind(node.parent, 204)) {
return getLoopBreakContinueOccurrences(node.parent);
}
break;
case 104:
case 79:
- if (hasKind(node.parent, 200) || hasKind(node.parent, 199)) {
+ if (hasKind(node.parent, 201) || hasKind(node.parent, 200)) {
return getLoopBreakContinueOccurrences(node.parent);
}
break;
case 121:
- if (hasKind(node.parent, 144)) {
+ if (hasKind(node.parent, 145)) {
return getConstructorOccurrences(node.parent);
}
break;
case 123:
case 129:
- if (hasKind(node.parent, 145) || hasKind(node.parent, 146)) {
+ if (hasKind(node.parent, 146) || hasKind(node.parent, 147)) {
return getGetAndSetOccurrences(node.parent);
}
break;
default:
if (ts.isModifierKind(node.kind) && node.parent &&
- (ts.isDeclaration(node.parent) || node.parent.kind === 195)) {
+ (ts.isDeclaration(node.parent) || node.parent.kind === 196)) {
return getModifierOccurrences(node.kind, node.parent);
}
}
@@ -40975,10 +41532,10 @@ var ts;
aggregate(node);
return statementAccumulator;
function aggregate(node) {
- if (node.kind === 210) {
+ if (node.kind === 211) {
statementAccumulator.push(node);
}
- else if (node.kind === 211) {
+ else if (node.kind === 212) {
var tryStatement = node;
if (tryStatement.catchClause) {
aggregate(tryStatement.catchClause);
@@ -40998,17 +41555,17 @@ var ts;
function getThrowStatementOwner(throwStatement) {
var child = throwStatement;
while (child.parent) {
- var parent_12 = child.parent;
- if (ts.isFunctionBlock(parent_12) || parent_12.kind === 250) {
- return parent_12;
+ var parent_13 = child.parent;
+ if (ts.isFunctionBlock(parent_13) || parent_13.kind === 251) {
+ return parent_13;
}
- if (parent_12.kind === 211) {
- var tryStatement = parent_12;
+ if (parent_13.kind === 212) {
+ var tryStatement = parent_13;
if (tryStatement.tryBlock === child && tryStatement.catchClause) {
return child;
}
}
- child = parent_12;
+ child = parent_13;
}
return undefined;
}
@@ -41017,7 +41574,7 @@ var ts;
aggregate(node);
return statementAccumulator;
function aggregate(node) {
- if (node.kind === 205 || node.kind === 204) {
+ if (node.kind === 206 || node.kind === 205) {
statementAccumulator.push(node);
}
else if (!ts.isFunctionLike(node)) {
@@ -41032,15 +41589,15 @@ var ts;
function getBreakOrContinueOwner(statement) {
for (var node_2 = statement.parent; node_2; node_2 = node_2.parent) {
switch (node_2.kind) {
- case 208:
- if (statement.kind === 204) {
+ case 209:
+ if (statement.kind === 205) {
continue;
}
- case 201:
case 202:
case 203:
+ case 204:
+ case 201:
case 200:
- case 199:
if (!statement.label || isLabeledBy(node_2, statement.label.text)) {
return node_2;
}
@@ -41057,24 +41614,24 @@ var ts;
function getModifierOccurrences(modifier, declaration) {
var container = declaration.parent;
if (ts.isAccessibilityModifier(modifier)) {
- if (!(container.kind === 216 ||
- container.kind === 188 ||
- (declaration.kind === 138 && hasKind(container, 144)))) {
+ if (!(container.kind === 217 ||
+ container.kind === 189 ||
+ (declaration.kind === 139 && hasKind(container, 145)))) {
return undefined;
}
}
else if (modifier === 113) {
- if (!(container.kind === 216 || container.kind === 188)) {
+ if (!(container.kind === 217 || container.kind === 189)) {
return undefined;
}
}
else if (modifier === 82 || modifier === 122) {
- if (!(container.kind === 221 || container.kind === 250)) {
+ if (!(container.kind === 222 || container.kind === 251)) {
return undefined;
}
}
else if (modifier === 115) {
- if (!(container.kind === 216 || declaration.kind === 216)) {
+ if (!(container.kind === 217 || declaration.kind === 217)) {
return undefined;
}
}
@@ -41085,8 +41642,8 @@ var ts;
var modifierFlag = getFlagFromModifier(modifier);
var nodes;
switch (container.kind) {
- case 221:
- case 250:
+ case 222:
+ case 251:
if (modifierFlag & 128) {
nodes = declaration.members.concat(declaration);
}
@@ -41094,15 +41651,15 @@ var ts;
nodes = container.statements;
}
break;
- case 144:
+ case 145:
nodes = container.parameters.concat(container.parent.members);
break;
- case 216:
- case 188:
+ case 217:
+ case 189:
nodes = container.members;
if (modifierFlag & 56) {
var constructor = ts.forEach(container.members, function (member) {
- return member.kind === 144 && member;
+ return member.kind === 145 && member;
});
if (constructor) {
nodes = nodes.concat(constructor.parameters);
@@ -41155,8 +41712,8 @@ var ts;
}
function getGetAndSetOccurrences(accessorDeclaration) {
var keywords = [];
- tryPushAccessorKeyword(accessorDeclaration.symbol, 145);
tryPushAccessorKeyword(accessorDeclaration.symbol, 146);
+ tryPushAccessorKeyword(accessorDeclaration.symbol, 147);
return ts.map(keywords, getHighlightSpanForNode);
function tryPushAccessorKeyword(accessorSymbol, accessorKind) {
var accessor = ts.getDeclarationOfKind(accessorSymbol, accessorKind);
@@ -41178,7 +41735,7 @@ var ts;
function getLoopBreakContinueOccurrences(loopNode) {
var keywords = [];
if (pushKeywordIf(keywords, loopNode.getFirstToken(), 86, 104, 79)) {
- if (loopNode.kind === 199) {
+ if (loopNode.kind === 200) {
var loopTokens = loopNode.getChildren();
for (var i = loopTokens.length - 1; i >= 0; i--) {
if (pushKeywordIf(keywords, loopTokens[i], 104)) {
@@ -41199,13 +41756,13 @@ var ts;
var owner = getBreakOrContinueOwner(breakOrContinueStatement);
if (owner) {
switch (owner.kind) {
- case 201:
case 202:
case 203:
- case 199:
+ case 204:
case 200:
+ case 201:
return getLoopBreakContinueOccurrences(owner);
- case 208:
+ case 209:
return getSwitchCaseDefaultOccurrences(owner);
}
}
@@ -41255,7 +41812,7 @@ var ts;
}
function getReturnOccurrences(returnStatement) {
var func = ts.getContainingFunction(returnStatement);
- if (!(func && hasKind(func.body, 194))) {
+ if (!(func && hasKind(func.body, 195))) {
return undefined;
}
var keywords = [];
@@ -41269,7 +41826,7 @@ var ts;
}
function getIfElseOccurrences(ifStatement) {
var keywords = [];
- while (hasKind(ifStatement.parent, 198) && ifStatement.parent.elseStatement === ifStatement) {
+ while (hasKind(ifStatement.parent, 199) && ifStatement.parent.elseStatement === ifStatement) {
ifStatement = ifStatement.parent;
}
while (ifStatement) {
@@ -41280,7 +41837,7 @@ var ts;
break;
}
}
- if (!hasKind(ifStatement.elseStatement, 198)) {
+ if (!hasKind(ifStatement.elseStatement, 199)) {
break;
}
ifStatement = ifStatement.elseStatement;
@@ -41384,7 +41941,7 @@ var ts;
return getLabelReferencesInNode(node.parent, node);
}
}
- if (node.kind === 97 || node.kind === 161) {
+ if (node.kind === 97 || node.kind === 162) {
return getReferencesForThisKeyword(node, sourceFiles);
}
if (node.kind === 95) {
@@ -41436,10 +41993,8 @@ var ts;
textSpan: ts.createTextSpan(declarations[0].getStart(), 0)
};
}
- function isImportOrExportSpecifierImportSymbol(symbol) {
- return (symbol.flags & 8388608) && ts.forEach(symbol.declarations, function (declaration) {
- return declaration.kind === 228 || declaration.kind === 232;
- });
+ function isImportSpecifierSymbol(symbol) {
+ return (symbol.flags & 8388608) && !!ts.getDeclarationOfKind(symbol, 229);
}
function getInternedName(symbol, location, declarations) {
if (ts.isImportOrExportSpecifierName(location)) {
@@ -41451,13 +42006,13 @@ var ts;
}
function getSymbolScope(symbol) {
var valueDeclaration = symbol.valueDeclaration;
- if (valueDeclaration && (valueDeclaration.kind === 175 || valueDeclaration.kind === 188)) {
+ if (valueDeclaration && (valueDeclaration.kind === 176 || valueDeclaration.kind === 189)) {
return valueDeclaration;
}
if (symbol.flags & (4 | 8192)) {
var privateDeclaration = ts.forEach(symbol.getDeclarations(), function (d) { return (d.flags & 16) ? d : undefined; });
if (privateDeclaration) {
- return ts.getAncestor(privateDeclaration, 216);
+ return ts.getAncestor(privateDeclaration, 217);
}
}
if (symbol.flags & 8388608) {
@@ -41478,7 +42033,7 @@ var ts;
if (scope && scope !== container) {
return undefined;
}
- if (container.kind === 250 && !ts.isExternalModule(container)) {
+ if (container.kind === 251 && !ts.isExternalModule(container)) {
return undefined;
}
scope = container;
@@ -41625,13 +42180,13 @@ var ts;
}
var staticFlag = 64;
switch (searchSpaceNode.kind) {
- case 141:
- case 140:
- case 143:
case 142:
+ case 141:
case 144:
+ case 143:
case 145:
case 146:
+ case 147:
staticFlag &= searchSpaceNode.flags;
searchSpaceNode = searchSpaceNode.parent;
break;
@@ -41659,32 +42214,32 @@ var ts;
var searchSpaceNode = ts.getThisContainer(thisOrSuperKeyword, false);
var staticFlag = 64;
switch (searchSpaceNode.kind) {
+ case 144:
case 143:
- case 142:
if (ts.isObjectLiteralMethod(searchSpaceNode)) {
break;
}
+ case 142:
case 141:
- case 140:
- case 144:
case 145:
case 146:
+ case 147:
staticFlag &= searchSpaceNode.flags;
searchSpaceNode = searchSpaceNode.parent;
break;
- case 250:
+ case 251:
if (ts.isExternalModule(searchSpaceNode)) {
return undefined;
}
- case 215:
- case 175:
+ case 216:
+ case 176:
break;
default:
return undefined;
}
var references = [];
var possiblePositions;
- if (searchSpaceNode.kind === 250) {
+ if (searchSpaceNode.kind === 251) {
ts.forEach(sourceFiles, function (sourceFile) {
possiblePositions = getPossibleSymbolReferencePositions(sourceFile, "this", sourceFile.getStart(), sourceFile.getEnd());
getThisReferencesInFile(sourceFile, sourceFile, possiblePositions, references);
@@ -41710,31 +42265,31 @@ var ts;
ts.forEach(possiblePositions, function (position) {
cancellationToken.throwIfCancellationRequested();
var node = ts.getTouchingWord(sourceFile, position);
- if (!node || (node.kind !== 97 && node.kind !== 161)) {
+ if (!node || (node.kind !== 97 && node.kind !== 162)) {
return;
}
var container = ts.getThisContainer(node, false);
switch (searchSpaceNode.kind) {
- case 175:
- case 215:
+ case 176:
+ case 216:
if (searchSpaceNode.symbol === container.symbol) {
result.push(getReferenceEntryFromNode(node));
}
break;
+ case 144:
case 143:
- case 142:
if (ts.isObjectLiteralMethod(searchSpaceNode) && searchSpaceNode.symbol === container.symbol) {
result.push(getReferenceEntryFromNode(node));
}
break;
- case 188:
- case 216:
+ case 189:
+ case 217:
if (container.parent && searchSpaceNode.symbol === container.parent.symbol && (container.flags & 64) === staticFlag) {
result.push(getReferenceEntryFromNode(node));
}
break;
- case 250:
- if (container.kind === 250 && !ts.isExternalModule(container)) {
+ case 251:
+ if (container.kind === 251 && !ts.isExternalModule(container)) {
result.push(getReferenceEntryFromNode(node));
}
break;
@@ -41744,9 +42299,12 @@ var ts;
}
function populateSearchSymbolSet(symbol, location) {
var result = [symbol];
- if (isImportOrExportSpecifierImportSymbol(symbol)) {
+ if (isImportSpecifierSymbol(symbol)) {
result.push(typeChecker.getAliasedSymbol(symbol));
}
+ if (location.parent.kind === 233) {
+ result.push(typeChecker.getExportSpecifierLocalTargetSymbol(location.parent));
+ }
if (isNameOfPropertyAssignment(location)) {
ts.forEach(getPropertySymbolsFromContextualType(location), function (contextualSymbol) {
ts.addRange(result, typeChecker.getRootSymbols(contextualSymbol));
@@ -41756,7 +42314,7 @@ var ts;
result.push(shorthandValueSymbol);
}
}
- if (symbol.valueDeclaration && symbol.valueDeclaration.kind === 138 &&
+ if (symbol.valueDeclaration && symbol.valueDeclaration.kind === 139 &&
ts.isParameterPropertyDeclaration(symbol.valueDeclaration)) {
result = result.concat(typeChecker.getSymbolsOfParameterPropertyDeclaration(symbol.valueDeclaration, symbol.name));
}
@@ -41765,19 +42323,25 @@ var ts;
result.push(rootSymbol);
}
if (rootSymbol.parent && rootSymbol.parent.flags & (32 | 64)) {
- getPropertySymbolsFromBaseTypes(rootSymbol.parent, rootSymbol.getName(), result);
+ getPropertySymbolsFromBaseTypes(rootSymbol.parent, rootSymbol.getName(), result, {});
}
});
return result;
}
- function getPropertySymbolsFromBaseTypes(symbol, propertyName, result) {
- if (symbol && symbol.flags & (32 | 64)) {
+ function getPropertySymbolsFromBaseTypes(symbol, propertyName, result, previousIterationSymbolsCache) {
+ if (!symbol) {
+ return;
+ }
+ if (ts.hasProperty(previousIterationSymbolsCache, symbol.name)) {
+ return;
+ }
+ if (symbol.flags & (32 | 64)) {
ts.forEach(symbol.getDeclarations(), function (declaration) {
- if (declaration.kind === 216) {
+ if (declaration.kind === 217) {
getPropertySymbolFromTypeReference(ts.getClassExtendsHeritageClauseElement(declaration));
ts.forEach(ts.getClassImplementsHeritageClauseElements(declaration), getPropertySymbolFromTypeReference);
}
- else if (declaration.kind === 217) {
+ else if (declaration.kind === 218) {
ts.forEach(ts.getInterfaceBaseTypeNodes(declaration), getPropertySymbolFromTypeReference);
}
});
@@ -41791,7 +42355,8 @@ var ts;
if (propertySymbol) {
result.push(propertySymbol);
}
- getPropertySymbolsFromBaseTypes(type.symbol, propertyName, result);
+ previousIterationSymbolsCache[symbol.name] = symbol;
+ getPropertySymbolsFromBaseTypes(type.symbol, propertyName, result, previousIterationSymbolsCache);
}
}
}
@@ -41800,12 +42365,18 @@ var ts;
if (searchSymbols.indexOf(referenceSymbol) >= 0) {
return referenceSymbol;
}
- if (isImportOrExportSpecifierImportSymbol(referenceSymbol)) {
+ if (isImportSpecifierSymbol(referenceSymbol)) {
var aliasedSymbol = typeChecker.getAliasedSymbol(referenceSymbol);
if (searchSymbols.indexOf(aliasedSymbol) >= 0) {
return aliasedSymbol;
}
}
+ if (referenceLocation.parent.kind === 233) {
+ var aliasedSymbol = typeChecker.getExportSpecifierLocalTargetSymbol(referenceLocation.parent);
+ if (searchSymbols.indexOf(aliasedSymbol) >= 0) {
+ return aliasedSymbol;
+ }
+ }
if (isNameOfPropertyAssignment(referenceLocation)) {
return ts.forEach(getPropertySymbolsFromContextualType(referenceLocation), function (contextualSymbol) {
return ts.forEach(typeChecker.getRootSymbols(contextualSymbol), function (s) { return searchSymbols.indexOf(s) >= 0 ? s : undefined; });
@@ -41817,7 +42388,7 @@ var ts;
}
if (rootSymbol.parent && rootSymbol.parent.flags & (32 | 64)) {
var result_3 = [];
- getPropertySymbolsFromBaseTypes(rootSymbol.parent, rootSymbol.getName(), result_3);
+ getPropertySymbolsFromBaseTypes(rootSymbol.parent, rootSymbol.getName(), result_3, {});
return ts.forEach(result_3, function (s) { return searchSymbols.indexOf(s) >= 0 ? s : undefined; });
}
return undefined;
@@ -41827,17 +42398,17 @@ var ts;
if (isNameOfPropertyAssignment(node)) {
var objectLiteral = node.parent.parent;
var contextualType = typeChecker.getContextualType(objectLiteral);
- var name_33 = node.text;
+ var name_36 = node.text;
if (contextualType) {
if (contextualType.flags & 16384) {
- var unionProperty = contextualType.getProperty(name_33);
+ var unionProperty = contextualType.getProperty(name_36);
if (unionProperty) {
return [unionProperty];
}
else {
var result_4 = [];
ts.forEach(contextualType.types, function (t) {
- var symbol = t.getProperty(name_33);
+ var symbol = t.getProperty(name_36);
if (symbol) {
result_4.push(symbol);
}
@@ -41846,7 +42417,7 @@ var ts;
}
}
else {
- var symbol_1 = contextualType.getProperty(name_33);
+ var symbol_1 = contextualType.getProperty(name_36);
if (symbol_1) {
return [symbol_1];
}
@@ -41891,10 +42462,10 @@ var ts;
}
var parent = node.parent;
if (parent) {
- if (parent.kind === 182 || parent.kind === 181) {
+ if (parent.kind === 183 || parent.kind === 182) {
return true;
}
- else if (parent.kind === 183 && parent.left === node) {
+ else if (parent.kind === 184 && parent.left === node) {
var operator = parent.operatorToken.kind;
return 56 <= operator && operator <= 68;
}
@@ -41924,34 +42495,34 @@ var ts;
}
function getMeaningFromDeclaration(node) {
switch (node.kind) {
- case 138:
- case 213:
- case 165:
+ case 139:
+ case 214:
+ case 166:
+ case 142:
case 141:
- case 140:
- case 247:
case 248:
case 249:
- case 143:
- case 142:
+ case 250:
case 144:
+ case 143:
case 145:
case 146:
- case 215:
- case 175:
- case 176:
- case 246:
- return 1;
- case 137:
- case 217:
- case 218:
- case 155:
- return 2;
+ case 147:
case 216:
+ case 176:
+ case 177:
+ case 247:
+ return 1;
+ case 138:
+ case 218:
case 219:
- return 1 | 2;
+ case 156:
+ return 2;
+ case 217:
case 220:
- if (node.name.kind === 9) {
+ return 1 | 2;
+ case 221:
+ if (ts.isAmbientModule(node)) {
return 4 | 1;
}
else if (ts.getModuleInstanceState(node) === 1) {
@@ -41960,14 +42531,14 @@ var ts;
else {
return 4;
}
- case 227:
case 228:
- case 223:
- case 224:
case 229:
+ case 224:
+ case 225:
case 230:
+ case 231:
return 1 | 2 | 4;
- case 250:
+ case 251:
return 4 | 1;
}
return 1 | 2 | 4;
@@ -41976,10 +42547,10 @@ var ts;
if (ts.isRightSideOfQualifiedNameOrPropertyAccess(node)) {
node = node.parent;
}
- return node.parent.kind === 151 ||
- (node.parent.kind === 190 && !ts.isExpressionWithTypeArgumentsInClassExtendsClause(node.parent)) ||
+ return node.parent.kind === 152 ||
+ (node.parent.kind === 191 && !ts.isExpressionWithTypeArgumentsInClassExtendsClause(node.parent)) ||
(node.kind === 97 && !ts.isExpression(node)) ||
- node.kind === 161;
+ node.kind === 162;
}
function isNamespaceReference(node) {
return isQualifiedNameNamespaceReference(node) || isPropertyAccessNamespaceReference(node);
@@ -41987,47 +42558,47 @@ var ts;
function isPropertyAccessNamespaceReference(node) {
var root = node;
var isLastClause = true;
- if (root.parent.kind === 168) {
- while (root.parent && root.parent.kind === 168) {
+ if (root.parent.kind === 169) {
+ while (root.parent && root.parent.kind === 169) {
root = root.parent;
}
isLastClause = root.name === node;
}
- if (!isLastClause && root.parent.kind === 190 && root.parent.parent.kind === 245) {
+ if (!isLastClause && root.parent.kind === 191 && root.parent.parent.kind === 246) {
var decl = root.parent.parent.parent;
- return (decl.kind === 216 && root.parent.parent.token === 106) ||
- (decl.kind === 217 && root.parent.parent.token === 83);
+ return (decl.kind === 217 && root.parent.parent.token === 106) ||
+ (decl.kind === 218 && root.parent.parent.token === 83);
}
return false;
}
function isQualifiedNameNamespaceReference(node) {
var root = node;
var isLastClause = true;
- if (root.parent.kind === 135) {
- while (root.parent && root.parent.kind === 135) {
+ if (root.parent.kind === 136) {
+ while (root.parent && root.parent.kind === 136) {
root = root.parent;
}
isLastClause = root.right === node;
}
- return root.parent.kind === 151 && !isLastClause;
+ return root.parent.kind === 152 && !isLastClause;
}
function isInRightSideOfImport(node) {
- while (node.parent.kind === 135) {
+ while (node.parent.kind === 136) {
node = node.parent;
}
return ts.isInternalModuleImportEqualsDeclaration(node.parent) && node.parent.moduleReference === node;
}
function getMeaningFromRightHandSideOfImportEquals(node) {
ts.Debug.assert(node.kind === 69);
- if (node.parent.kind === 135 &&
+ if (node.parent.kind === 136 &&
node.parent.right === node &&
- node.parent.parent.kind === 223) {
+ node.parent.parent.kind === 224) {
return 1 | 2 | 4;
}
return 4;
}
function getMeaningFromLocation(node) {
- if (node.parent.kind === 229) {
+ if (node.parent.kind === 230) {
return 1 | 2 | 4;
}
else if (isInRightSideOfImport(node)) {
@@ -42061,16 +42632,16 @@ var ts;
return;
}
switch (node.kind) {
- case 168:
- case 135:
+ case 169:
+ case 136:
case 9:
- case 162:
+ case 163:
case 84:
case 99:
case 93:
case 95:
case 97:
- case 161:
+ case 162:
case 69:
break;
default:
@@ -42082,7 +42653,7 @@ var ts;
nodeForStartPos = nodeForStartPos.parent;
}
else if (isNameOfModuleDeclaration(nodeForStartPos)) {
- if (nodeForStartPos.parent.parent.kind === 220 &&
+ if (nodeForStartPos.parent.parent.kind === 221 &&
nodeForStartPos.parent.parent.body === nodeForStartPos.parent) {
nodeForStartPos = nodeForStartPos.parent.parent.name;
}
@@ -42109,10 +42680,10 @@ var ts;
}
function checkForClassificationCancellation(kind) {
switch (kind) {
- case 220:
- case 216:
+ case 221:
case 217:
- case 215:
+ case 218:
+ case 216:
cancellationToken.throwIfCancellationRequested();
}
}
@@ -42160,7 +42731,7 @@ var ts;
return undefined;
function hasValueSideModule(symbol) {
return ts.forEach(symbol.declarations, function (declaration) {
- return declaration.kind === 220 &&
+ return declaration.kind === 221 &&
ts.getModuleInstanceState(declaration) === 1;
});
}
@@ -42207,6 +42778,9 @@ var ts;
case 19: return ClassificationTypeNames.jsxOpenTagName;
case 20: return ClassificationTypeNames.jsxCloseTagName;
case 21: return ClassificationTypeNames.jsxSelfClosingTagName;
+ case 22: return ClassificationTypeNames.jsxAttribute;
+ case 23: return ClassificationTypeNames.jsxText;
+ case 24: return ClassificationTypeNames.jsxAttributeStringLiteralValue;
}
}
function convertClassifications(classifications) {
@@ -42296,16 +42870,16 @@ var ts;
pushClassification(tag.tagName.pos, tag.tagName.end - tag.tagName.pos, 18);
pos = tag.tagName.end;
switch (tag.kind) {
- case 269:
+ case 270:
processJSDocParameterTag(tag);
break;
- case 272:
+ case 273:
processJSDocTemplateTag(tag);
break;
- case 271:
+ case 272:
processElement(tag.typeExpression);
break;
- case 270:
+ case 271:
processElement(tag.typeExpression);
break;
}
@@ -42340,7 +42914,8 @@ var ts;
}
}
function classifyDisabledMergeCode(text, start, end) {
- for (var i = start; i < end; i++) {
+ var i;
+ for (i = start; i < end; i++) {
if (ts.isLineBreak(text.charCodeAt(i))) {
break;
}
@@ -42360,11 +42935,11 @@ var ts;
pushClassification(start, end - start, type);
}
}
- function classifyToken(token) {
+ function classifyTokenOrJsxText(token) {
if (ts.nodeIsMissing(token)) {
return;
}
- var tokenStart = classifyLeadingTriviaAndGetTokenStart(token);
+ var tokenStart = token.kind === 239 ? token.pos : classifyLeadingTriviaAndGetTokenStart(token);
var tokenWidth = token.end - tokenStart;
ts.Debug.assert(tokenWidth >= 0);
if (tokenWidth > 0) {
@@ -42386,16 +42961,17 @@ var ts;
if (ts.isPunctuation(tokenKind)) {
if (token) {
if (tokenKind === 56) {
- if (token.parent.kind === 213 ||
- token.parent.kind === 141 ||
- token.parent.kind === 138) {
+ if (token.parent.kind === 214 ||
+ token.parent.kind === 142 ||
+ token.parent.kind === 139 ||
+ token.parent.kind === 241) {
return 5;
}
}
- if (token.parent.kind === 183 ||
- token.parent.kind === 181 ||
+ if (token.parent.kind === 184 ||
token.parent.kind === 182 ||
- token.parent.kind === 184) {
+ token.parent.kind === 183 ||
+ token.parent.kind === 185) {
return 5;
}
}
@@ -42404,8 +42980,8 @@ var ts;
else if (tokenKind === 8) {
return 4;
}
- else if (tokenKind === 9 || tokenKind === 162) {
- return 6;
+ else if (tokenKind === 9 || tokenKind === 163) {
+ return token.parent.kind === 241 ? 24 : 6;
}
else if (tokenKind === 10) {
return 6;
@@ -42413,54 +42989,61 @@ var ts;
else if (ts.isTemplateLiteralKind(tokenKind)) {
return 6;
}
+ else if (tokenKind === 239) {
+ return 23;
+ }
else if (tokenKind === 69) {
if (token) {
switch (token.parent.kind) {
- case 216:
+ case 217:
if (token.parent.name === token) {
return 11;
}
return;
- case 137:
+ case 138:
if (token.parent.name === token) {
return 15;
}
return;
- case 217:
+ case 218:
if (token.parent.name === token) {
return 13;
}
return;
- case 219:
+ case 220:
if (token.parent.name === token) {
return 12;
}
return;
- case 220:
+ case 221:
if (token.parent.name === token) {
return 14;
}
return;
- case 138:
+ case 139:
if (token.parent.name === token) {
return 17;
}
return;
- case 237:
+ case 238:
if (token.parent.tagName === token) {
return 19;
}
return;
- case 239:
+ case 240:
if (token.parent.tagName === token) {
return 20;
}
return;
- case 236:
+ case 237:
if (token.parent.tagName === token) {
return 21;
}
return;
+ case 241:
+ if (token.parent.name === token) {
+ return 22;
+ }
}
}
return 2;
@@ -42475,8 +43058,8 @@ var ts;
var children = element.getChildren(sourceFile);
for (var i = 0, n = children.length; i < n; i++) {
var child = children[i];
- if (ts.isToken(child)) {
- classifyToken(child);
+ if (ts.isToken(child) || child.kind === 239) {
+ classifyTokenOrJsxText(child);
}
else {
processElement(child);
@@ -42572,16 +43155,16 @@ var ts;
var commentOwner;
findOwner: for (commentOwner = tokenAtPos; commentOwner; commentOwner = commentOwner.parent) {
switch (commentOwner.kind) {
- case 215:
- case 143:
- case 144:
case 216:
- case 195:
+ case 144:
+ case 145:
+ case 217:
+ case 196:
break findOwner;
- case 250:
+ case 251:
return undefined;
- case 220:
- if (commentOwner.parent.kind === 220) {
+ case 221:
+ if (commentOwner.parent.kind === 221) {
return undefined;
}
break findOwner;
@@ -42615,7 +43198,7 @@ var ts;
if (ts.isFunctionLike(commentOwner)) {
return commentOwner.parameters;
}
- if (commentOwner.kind === 195) {
+ if (commentOwner.kind === 196) {
var varStatement = commentOwner;
var varDeclarations = varStatement.declarationList.declarations;
if (varDeclarations.length === 1 && varDeclarations[0].initializer) {
@@ -42625,17 +43208,17 @@ var ts;
return emptyArray;
}
function getParametersFromRightHandSideOfAssignment(rightHandSide) {
- while (rightHandSide.kind === 174) {
+ while (rightHandSide.kind === 175) {
rightHandSide = rightHandSide.expression;
}
switch (rightHandSide.kind) {
- case 175:
case 176:
+ case 177:
return rightHandSide.parameters;
- case 188:
+ case 189:
for (var _i = 0, _a = rightHandSide.members; _i < _a.length; _i++) {
var member = _a[_i];
- if (member.kind === 144) {
+ if (member.kind === 145) {
return member.parameters;
}
}
@@ -42815,7 +43398,7 @@ var ts;
case 9:
case 8:
if (ts.isDeclarationName(node) ||
- node.parent.kind === 234 ||
+ node.parent.kind === 235 ||
isArgumentOfElementAccessExpression(node)) {
nameTable[node.text] = node.text;
}
@@ -42828,7 +43411,7 @@ var ts;
function isArgumentOfElementAccessExpression(node) {
return node &&
node.parent &&
- node.parent.kind === 169 &&
+ node.parent.kind === 170 &&
node.parent.argumentExpression === node;
}
function createClassifier() {
@@ -43010,7 +43593,7 @@ var ts;
var end = scanner.getTextPos();
addResult(start, end, classFromKind(token));
if (end >= text.length) {
- if (token === 9 || token === 162) {
+ if (token === 9 || token === 163) {
var tokenText = scanner.getTokenText();
if (scanner.isUnterminated()) {
var lastCharIndex = tokenText.length - 1;
@@ -43124,7 +43707,7 @@ var ts;
}
}
function isKeyword(token) {
- return token >= 70 && token <= 134;
+ return token >= 70 && token <= 135;
}
function classFromKind(token) {
if (isKeyword(token)) {
@@ -43140,7 +43723,7 @@ var ts;
case 8:
return 4;
case 9:
- case 162:
+ case 163:
return 6;
case 10:
return 7;
@@ -44241,8 +44824,8 @@ var ts;
var newResolutions = {};
var resolvedModules = [];
var compilerOptions = this.getCompilationSettings();
- for (var _i = 0, moduleNames_1 = moduleNames; _i < moduleNames_1.length; _i++) {
- var moduleName = moduleNames_1[_i];
+ for (var _i = 0, moduleNames_2 = moduleNames; _i < moduleNames_2.length; _i++) {
+ var moduleName = moduleNames_2[_i];
var resolution = ts.lookUp(newResolutions, moduleName);
if (!resolution) {
var existingResolution = currentResolutionsInFile && ts.lookUp(currentResolutionsInFile, moduleName);
@@ -44913,7 +45496,7 @@ var ts;
info.setFormatOptions(this.getFormatCodeOptions());
this.filenameToScriptInfo[fileName] = info;
if (!info.isOpen) {
- info.fileWatcher = this.host.watchFile(fileName, function (_) { _this.watchedFileChanged(fileName); });
+ info.fileWatcher = this.host.watchFile(ts.toPath(fileName, fileName, ts.createGetCanonicalFileName(ts.sys.useCaseSensitiveFileNames)), function (_) { _this.watchedFileChanged(fileName); });
}
}
}
@@ -45095,7 +45678,7 @@ var ts;
}
}
project.finishGraph();
- project.projectFileWatcher = this.host.watchFile(configFilename, function (_) { return _this.watchedProjectConfigFileChanged(project); });
+ project.projectFileWatcher = this.host.watchFile(ts.toPath(configFilename, configFilename, ts.createGetCanonicalFileName(ts.sys.useCaseSensitiveFileNames)), function (_) { return _this.watchedProjectConfigFileChanged(project); });
this.log("Add recursive watcher for: " + ts.getDirectoryPath(configFilename));
project.directoryWatcher = this.host.watchDirectory(ts.getDirectoryPath(configFilename), function (path) { return _this.directoryWatchedForSourceFilesChanged(project, path); }, true);
return { success: true, project: project };
diff --git a/lib/typescript.d.ts b/lib/typescript.d.ts
index 3196ae2199f..412f4e793b0 100644
--- a/lib/typescript.d.ts
+++ b/lib/typescript.d.ts
@@ -167,161 +167,162 @@ declare namespace ts {
SymbolKeyword = 131,
TypeKeyword = 132,
FromKeyword = 133,
- OfKeyword = 134,
- QualifiedName = 135,
- ComputedPropertyName = 136,
- TypeParameter = 137,
- Parameter = 138,
- Decorator = 139,
- PropertySignature = 140,
- PropertyDeclaration = 141,
- MethodSignature = 142,
- MethodDeclaration = 143,
- Constructor = 144,
- GetAccessor = 145,
- SetAccessor = 146,
- CallSignature = 147,
- ConstructSignature = 148,
- IndexSignature = 149,
- TypePredicate = 150,
- TypeReference = 151,
- FunctionType = 152,
- ConstructorType = 153,
- TypeQuery = 154,
- TypeLiteral = 155,
- ArrayType = 156,
- TupleType = 157,
- UnionType = 158,
- IntersectionType = 159,
- ParenthesizedType = 160,
- ThisType = 161,
- StringLiteralType = 162,
- ObjectBindingPattern = 163,
- ArrayBindingPattern = 164,
- BindingElement = 165,
- ArrayLiteralExpression = 166,
- ObjectLiteralExpression = 167,
- PropertyAccessExpression = 168,
- ElementAccessExpression = 169,
- CallExpression = 170,
- NewExpression = 171,
- TaggedTemplateExpression = 172,
- TypeAssertionExpression = 173,
- ParenthesizedExpression = 174,
- FunctionExpression = 175,
- ArrowFunction = 176,
- DeleteExpression = 177,
- TypeOfExpression = 178,
- VoidExpression = 179,
- AwaitExpression = 180,
- PrefixUnaryExpression = 181,
- PostfixUnaryExpression = 182,
- BinaryExpression = 183,
- ConditionalExpression = 184,
- TemplateExpression = 185,
- YieldExpression = 186,
- SpreadElementExpression = 187,
- ClassExpression = 188,
- OmittedExpression = 189,
- ExpressionWithTypeArguments = 190,
- AsExpression = 191,
- TemplateSpan = 192,
- SemicolonClassElement = 193,
- Block = 194,
- VariableStatement = 195,
- EmptyStatement = 196,
- ExpressionStatement = 197,
- IfStatement = 198,
- DoStatement = 199,
- WhileStatement = 200,
- ForStatement = 201,
- ForInStatement = 202,
- ForOfStatement = 203,
- ContinueStatement = 204,
- BreakStatement = 205,
- ReturnStatement = 206,
- WithStatement = 207,
- SwitchStatement = 208,
- LabeledStatement = 209,
- ThrowStatement = 210,
- TryStatement = 211,
- DebuggerStatement = 212,
- VariableDeclaration = 213,
- VariableDeclarationList = 214,
- FunctionDeclaration = 215,
- ClassDeclaration = 216,
- InterfaceDeclaration = 217,
- TypeAliasDeclaration = 218,
- EnumDeclaration = 219,
- ModuleDeclaration = 220,
- ModuleBlock = 221,
- CaseBlock = 222,
- ImportEqualsDeclaration = 223,
- ImportDeclaration = 224,
- ImportClause = 225,
- NamespaceImport = 226,
- NamedImports = 227,
- ImportSpecifier = 228,
- ExportAssignment = 229,
- ExportDeclaration = 230,
- NamedExports = 231,
- ExportSpecifier = 232,
- MissingDeclaration = 233,
- ExternalModuleReference = 234,
- JsxElement = 235,
- JsxSelfClosingElement = 236,
- JsxOpeningElement = 237,
- JsxText = 238,
- JsxClosingElement = 239,
- JsxAttribute = 240,
- JsxSpreadAttribute = 241,
- JsxExpression = 242,
- CaseClause = 243,
- DefaultClause = 244,
- HeritageClause = 245,
- CatchClause = 246,
- PropertyAssignment = 247,
- ShorthandPropertyAssignment = 248,
- EnumMember = 249,
- SourceFile = 250,
- JSDocTypeExpression = 251,
- JSDocAllType = 252,
- JSDocUnknownType = 253,
- JSDocArrayType = 254,
- JSDocUnionType = 255,
- JSDocTupleType = 256,
- JSDocNullableType = 257,
- JSDocNonNullableType = 258,
- JSDocRecordType = 259,
- JSDocRecordMember = 260,
- JSDocTypeReference = 261,
- JSDocOptionalType = 262,
- JSDocFunctionType = 263,
- JSDocVariadicType = 264,
- JSDocConstructorType = 265,
- JSDocThisType = 266,
- JSDocComment = 267,
- JSDocTag = 268,
- JSDocParameterTag = 269,
- JSDocReturnTag = 270,
- JSDocTypeTag = 271,
- JSDocTemplateTag = 272,
- SyntaxList = 273,
- Count = 274,
+ GlobalKeyword = 134,
+ OfKeyword = 135,
+ QualifiedName = 136,
+ ComputedPropertyName = 137,
+ TypeParameter = 138,
+ Parameter = 139,
+ Decorator = 140,
+ PropertySignature = 141,
+ PropertyDeclaration = 142,
+ MethodSignature = 143,
+ MethodDeclaration = 144,
+ Constructor = 145,
+ GetAccessor = 146,
+ SetAccessor = 147,
+ CallSignature = 148,
+ ConstructSignature = 149,
+ IndexSignature = 150,
+ TypePredicate = 151,
+ TypeReference = 152,
+ FunctionType = 153,
+ ConstructorType = 154,
+ TypeQuery = 155,
+ TypeLiteral = 156,
+ ArrayType = 157,
+ TupleType = 158,
+ UnionType = 159,
+ IntersectionType = 160,
+ ParenthesizedType = 161,
+ ThisType = 162,
+ StringLiteralType = 163,
+ ObjectBindingPattern = 164,
+ ArrayBindingPattern = 165,
+ BindingElement = 166,
+ ArrayLiteralExpression = 167,
+ ObjectLiteralExpression = 168,
+ PropertyAccessExpression = 169,
+ ElementAccessExpression = 170,
+ CallExpression = 171,
+ NewExpression = 172,
+ TaggedTemplateExpression = 173,
+ TypeAssertionExpression = 174,
+ ParenthesizedExpression = 175,
+ FunctionExpression = 176,
+ ArrowFunction = 177,
+ DeleteExpression = 178,
+ TypeOfExpression = 179,
+ VoidExpression = 180,
+ AwaitExpression = 181,
+ PrefixUnaryExpression = 182,
+ PostfixUnaryExpression = 183,
+ BinaryExpression = 184,
+ ConditionalExpression = 185,
+ TemplateExpression = 186,
+ YieldExpression = 187,
+ SpreadElementExpression = 188,
+ ClassExpression = 189,
+ OmittedExpression = 190,
+ ExpressionWithTypeArguments = 191,
+ AsExpression = 192,
+ TemplateSpan = 193,
+ SemicolonClassElement = 194,
+ Block = 195,
+ VariableStatement = 196,
+ EmptyStatement = 197,
+ ExpressionStatement = 198,
+ IfStatement = 199,
+ DoStatement = 200,
+ WhileStatement = 201,
+ ForStatement = 202,
+ ForInStatement = 203,
+ ForOfStatement = 204,
+ ContinueStatement = 205,
+ BreakStatement = 206,
+ ReturnStatement = 207,
+ WithStatement = 208,
+ SwitchStatement = 209,
+ LabeledStatement = 210,
+ ThrowStatement = 211,
+ TryStatement = 212,
+ DebuggerStatement = 213,
+ VariableDeclaration = 214,
+ VariableDeclarationList = 215,
+ FunctionDeclaration = 216,
+ ClassDeclaration = 217,
+ InterfaceDeclaration = 218,
+ TypeAliasDeclaration = 219,
+ EnumDeclaration = 220,
+ ModuleDeclaration = 221,
+ ModuleBlock = 222,
+ CaseBlock = 223,
+ ImportEqualsDeclaration = 224,
+ ImportDeclaration = 225,
+ ImportClause = 226,
+ NamespaceImport = 227,
+ NamedImports = 228,
+ ImportSpecifier = 229,
+ ExportAssignment = 230,
+ ExportDeclaration = 231,
+ NamedExports = 232,
+ ExportSpecifier = 233,
+ MissingDeclaration = 234,
+ ExternalModuleReference = 235,
+ JsxElement = 236,
+ JsxSelfClosingElement = 237,
+ JsxOpeningElement = 238,
+ JsxText = 239,
+ JsxClosingElement = 240,
+ JsxAttribute = 241,
+ JsxSpreadAttribute = 242,
+ JsxExpression = 243,
+ CaseClause = 244,
+ DefaultClause = 245,
+ HeritageClause = 246,
+ CatchClause = 247,
+ PropertyAssignment = 248,
+ ShorthandPropertyAssignment = 249,
+ EnumMember = 250,
+ SourceFile = 251,
+ JSDocTypeExpression = 252,
+ JSDocAllType = 253,
+ JSDocUnknownType = 254,
+ JSDocArrayType = 255,
+ JSDocUnionType = 256,
+ JSDocTupleType = 257,
+ JSDocNullableType = 258,
+ JSDocNonNullableType = 259,
+ JSDocRecordType = 260,
+ JSDocRecordMember = 261,
+ JSDocTypeReference = 262,
+ JSDocOptionalType = 263,
+ JSDocFunctionType = 264,
+ JSDocVariadicType = 265,
+ JSDocConstructorType = 266,
+ JSDocThisType = 267,
+ JSDocComment = 268,
+ JSDocTag = 269,
+ JSDocParameterTag = 270,
+ JSDocReturnTag = 271,
+ JSDocTypeTag = 272,
+ JSDocTemplateTag = 273,
+ SyntaxList = 274,
+ Count = 275,
FirstAssignment = 56,
LastAssignment = 68,
FirstReservedWord = 70,
LastReservedWord = 105,
FirstKeyword = 70,
- LastKeyword = 134,
+ LastKeyword = 135,
FirstFutureReservedWord = 106,
LastFutureReservedWord = 114,
- FirstTypeNode = 150,
- LastTypeNode = 162,
+ FirstTypeNode = 151,
+ LastTypeNode = 163,
FirstPunctuation = 15,
LastPunctuation = 68,
FirstToken = 0,
- LastToken = 134,
+ LastToken = 135,
FirstTriviaToken = 2,
LastTriviaToken = 7,
FirstLiteralToken = 8,
@@ -330,7 +331,7 @@ declare namespace ts {
LastTemplateToken = 14,
FirstBinaryOperator = 25,
LastBinaryOperator = 68,
- FirstNode = 135,
+ FirstNode = 136,
}
enum NodeFlags {
None = 0,
@@ -354,10 +355,16 @@ declare namespace ts {
ContainsThis = 262144,
HasImplicitReturn = 524288,
HasExplicitReturn = 1048576,
+ GlobalAugmentation = 2097152,
+ HasClassExtends = 4194304,
+ HasDecorators = 8388608,
+ HasParamDecorators = 16777216,
+ HasAsyncFunctions = 33554432,
Modifier = 1022,
AccessibilityModifier = 56,
BlockScoped = 24576,
ReachabilityCheckFlags = 1572864,
+ EmitHelperFlags = 62914560,
}
enum JsxFlags {
None = 0,
@@ -1141,6 +1148,7 @@ declare namespace ts {
getSymbolAtLocation(node: Node): Symbol;
getSymbolsOfParameterPropertyDeclaration(parameter: ParameterDeclaration, parameterName: string): Symbol[];
getShorthandAssignmentValueSymbol(location: Node): Symbol;
+ getExportSpecifierLocalTargetSymbol(location: ExportSpecifier): Symbol;
getTypeAtLocation(node: Node): Type;
typeToString(type: Type, enclosingDeclaration?: Node, flags?: TypeFormatFlags): string;
symbolToString(symbol: Symbol, enclosingDeclaration?: Node, meaning?: SymbolFlags): string;
@@ -1154,6 +1162,7 @@ declare namespace ts {
isImplementationOfOverload(node: FunctionLikeDeclaration): boolean;
isUndefinedSymbol(symbol: Symbol): boolean;
isArgumentsSymbol(symbol: Symbol): boolean;
+ isUnknownSymbol(symbol: Symbol): boolean;
getConstantValue(node: EnumMember | PropertyAccessExpression | ElementAccessExpression): number;
isValidPropertyAccess(node: PropertyAccessExpression | QualifiedName, propertyName: string): boolean;
getAliasedSymbol(symbol: Symbol): Symbol;
@@ -1543,6 +1552,8 @@ declare namespace ts {
}
}
declare namespace ts {
+ type FileWatcherCallback = (path: string, removed?: boolean) => void;
+ type DirectoryWatcherCallback = (path: string) => void;
interface System {
args: string[];
newLine: string;
@@ -1550,8 +1561,8 @@ declare namespace ts {
write(s: string): void;
readFile(path: string, encoding?: string): string;
writeFile(path: string, data: string, writeByteOrderMark?: boolean): void;
- watchFile?(path: string, callback: (path: string, removed?: boolean) => void): FileWatcher;
- watchDirectory?(path: string, callback: (path: string) => void, recursive?: boolean): FileWatcher;
+ watchFile?(path: Path, callback: FileWatcherCallback): FileWatcher;
+ watchDirectory?(path: string, callback: DirectoryWatcherCallback, recursive?: boolean): FileWatcher;
resolvePath(path: string): string;
fileExists(path: string): boolean;
directoryExists(path: string): boolean;
@@ -1565,6 +1576,10 @@ declare namespace ts {
interface FileWatcher {
close(): void;
}
+ interface DirectoryWatcher extends FileWatcher {
+ directoryPath: Path;
+ referenceCount: number;
+ }
var sys: System;
}
declare namespace ts {
@@ -2237,6 +2252,9 @@ declare namespace ts {
static jsxOpenTagName: string;
static jsxCloseTagName: string;
static jsxSelfClosingTagName: string;
+ static jsxAttribute: string;
+ static jsxText: string;
+ static jsxAttributeStringLiteralValue: string;
}
enum ClassificationType {
comment = 1,
@@ -2260,6 +2278,9 @@ declare namespace ts {
jsxOpenTagName = 19,
jsxCloseTagName = 20,
jsxSelfClosingTagName = 21,
+ jsxAttribute = 22,
+ jsxText = 23,
+ jsxAttributeStringLiteralValue = 24,
}
interface DisplayPartsSymbolWriter extends SymbolWriter {
displayParts(): SymbolDisplayPart[];
@@ -2283,7 +2304,6 @@ declare namespace ts {
function createLanguageServiceSourceFile(fileName: string, scriptSnapshot: IScriptSnapshot, scriptTarget: ScriptTarget, version: string, setNodeParents: boolean): SourceFile;
let disableIncrementalParsing: boolean;
function updateLanguageServiceSourceFile(sourceFile: SourceFile, scriptSnapshot: IScriptSnapshot, version: string, textChangeRange: TextChangeRange, aggressiveChecks?: boolean): SourceFile;
- function createGetCanonicalFileName(useCaseSensitivefileNames: boolean): (fileName: string) => string;
function createDocumentRegistry(useCaseSensitiveFileNames?: boolean, currentDirectory?: string): DocumentRegistry;
function preProcessFile(sourceText: string, readImportFiles?: boolean, detectJavaScriptImports?: boolean): PreProcessedFileInfo;
function createLanguageService(host: LanguageServiceHost, documentRegistry?: DocumentRegistry): LanguageService;
diff --git a/lib/typescript.js b/lib/typescript.js
index 6608f585b61..bbe9a4b07e3 100644
--- a/lib/typescript.js
+++ b/lib/typescript.js
@@ -163,182 +163,183 @@ var ts;
SyntaxKind[SyntaxKind["SymbolKeyword"] = 131] = "SymbolKeyword";
SyntaxKind[SyntaxKind["TypeKeyword"] = 132] = "TypeKeyword";
SyntaxKind[SyntaxKind["FromKeyword"] = 133] = "FromKeyword";
- SyntaxKind[SyntaxKind["OfKeyword"] = 134] = "OfKeyword";
+ SyntaxKind[SyntaxKind["GlobalKeyword"] = 134] = "GlobalKeyword";
+ SyntaxKind[SyntaxKind["OfKeyword"] = 135] = "OfKeyword";
// Parse tree nodes
// Names
- SyntaxKind[SyntaxKind["QualifiedName"] = 135] = "QualifiedName";
- SyntaxKind[SyntaxKind["ComputedPropertyName"] = 136] = "ComputedPropertyName";
+ SyntaxKind[SyntaxKind["QualifiedName"] = 136] = "QualifiedName";
+ SyntaxKind[SyntaxKind["ComputedPropertyName"] = 137] = "ComputedPropertyName";
// Signature elements
- SyntaxKind[SyntaxKind["TypeParameter"] = 137] = "TypeParameter";
- SyntaxKind[SyntaxKind["Parameter"] = 138] = "Parameter";
- SyntaxKind[SyntaxKind["Decorator"] = 139] = "Decorator";
+ SyntaxKind[SyntaxKind["TypeParameter"] = 138] = "TypeParameter";
+ SyntaxKind[SyntaxKind["Parameter"] = 139] = "Parameter";
+ SyntaxKind[SyntaxKind["Decorator"] = 140] = "Decorator";
// TypeMember
- SyntaxKind[SyntaxKind["PropertySignature"] = 140] = "PropertySignature";
- SyntaxKind[SyntaxKind["PropertyDeclaration"] = 141] = "PropertyDeclaration";
- SyntaxKind[SyntaxKind["MethodSignature"] = 142] = "MethodSignature";
- SyntaxKind[SyntaxKind["MethodDeclaration"] = 143] = "MethodDeclaration";
- SyntaxKind[SyntaxKind["Constructor"] = 144] = "Constructor";
- SyntaxKind[SyntaxKind["GetAccessor"] = 145] = "GetAccessor";
- SyntaxKind[SyntaxKind["SetAccessor"] = 146] = "SetAccessor";
- SyntaxKind[SyntaxKind["CallSignature"] = 147] = "CallSignature";
- SyntaxKind[SyntaxKind["ConstructSignature"] = 148] = "ConstructSignature";
- SyntaxKind[SyntaxKind["IndexSignature"] = 149] = "IndexSignature";
+ SyntaxKind[SyntaxKind["PropertySignature"] = 141] = "PropertySignature";
+ SyntaxKind[SyntaxKind["PropertyDeclaration"] = 142] = "PropertyDeclaration";
+ SyntaxKind[SyntaxKind["MethodSignature"] = 143] = "MethodSignature";
+ SyntaxKind[SyntaxKind["MethodDeclaration"] = 144] = "MethodDeclaration";
+ SyntaxKind[SyntaxKind["Constructor"] = 145] = "Constructor";
+ SyntaxKind[SyntaxKind["GetAccessor"] = 146] = "GetAccessor";
+ SyntaxKind[SyntaxKind["SetAccessor"] = 147] = "SetAccessor";
+ SyntaxKind[SyntaxKind["CallSignature"] = 148] = "CallSignature";
+ SyntaxKind[SyntaxKind["ConstructSignature"] = 149] = "ConstructSignature";
+ SyntaxKind[SyntaxKind["IndexSignature"] = 150] = "IndexSignature";
// Type
- SyntaxKind[SyntaxKind["TypePredicate"] = 150] = "TypePredicate";
- SyntaxKind[SyntaxKind["TypeReference"] = 151] = "TypeReference";
- SyntaxKind[SyntaxKind["FunctionType"] = 152] = "FunctionType";
- SyntaxKind[SyntaxKind["ConstructorType"] = 153] = "ConstructorType";
- SyntaxKind[SyntaxKind["TypeQuery"] = 154] = "TypeQuery";
- SyntaxKind[SyntaxKind["TypeLiteral"] = 155] = "TypeLiteral";
- SyntaxKind[SyntaxKind["ArrayType"] = 156] = "ArrayType";
- SyntaxKind[SyntaxKind["TupleType"] = 157] = "TupleType";
- SyntaxKind[SyntaxKind["UnionType"] = 158] = "UnionType";
- SyntaxKind[SyntaxKind["IntersectionType"] = 159] = "IntersectionType";
- SyntaxKind[SyntaxKind["ParenthesizedType"] = 160] = "ParenthesizedType";
- SyntaxKind[SyntaxKind["ThisType"] = 161] = "ThisType";
- SyntaxKind[SyntaxKind["StringLiteralType"] = 162] = "StringLiteralType";
+ SyntaxKind[SyntaxKind["TypePredicate"] = 151] = "TypePredicate";
+ SyntaxKind[SyntaxKind["TypeReference"] = 152] = "TypeReference";
+ SyntaxKind[SyntaxKind["FunctionType"] = 153] = "FunctionType";
+ SyntaxKind[SyntaxKind["ConstructorType"] = 154] = "ConstructorType";
+ SyntaxKind[SyntaxKind["TypeQuery"] = 155] = "TypeQuery";
+ SyntaxKind[SyntaxKind["TypeLiteral"] = 156] = "TypeLiteral";
+ SyntaxKind[SyntaxKind["ArrayType"] = 157] = "ArrayType";
+ SyntaxKind[SyntaxKind["TupleType"] = 158] = "TupleType";
+ SyntaxKind[SyntaxKind["UnionType"] = 159] = "UnionType";
+ SyntaxKind[SyntaxKind["IntersectionType"] = 160] = "IntersectionType";
+ SyntaxKind[SyntaxKind["ParenthesizedType"] = 161] = "ParenthesizedType";
+ SyntaxKind[SyntaxKind["ThisType"] = 162] = "ThisType";
+ SyntaxKind[SyntaxKind["StringLiteralType"] = 163] = "StringLiteralType";
// Binding patterns
- SyntaxKind[SyntaxKind["ObjectBindingPattern"] = 163] = "ObjectBindingPattern";
- SyntaxKind[SyntaxKind["ArrayBindingPattern"] = 164] = "ArrayBindingPattern";
- SyntaxKind[SyntaxKind["BindingElement"] = 165] = "BindingElement";
+ SyntaxKind[SyntaxKind["ObjectBindingPattern"] = 164] = "ObjectBindingPattern";
+ SyntaxKind[SyntaxKind["ArrayBindingPattern"] = 165] = "ArrayBindingPattern";
+ SyntaxKind[SyntaxKind["BindingElement"] = 166] = "BindingElement";
// Expression
- SyntaxKind[SyntaxKind["ArrayLiteralExpression"] = 166] = "ArrayLiteralExpression";
- SyntaxKind[SyntaxKind["ObjectLiteralExpression"] = 167] = "ObjectLiteralExpression";
- SyntaxKind[SyntaxKind["PropertyAccessExpression"] = 168] = "PropertyAccessExpression";
- SyntaxKind[SyntaxKind["ElementAccessExpression"] = 169] = "ElementAccessExpression";
- SyntaxKind[SyntaxKind["CallExpression"] = 170] = "CallExpression";
- SyntaxKind[SyntaxKind["NewExpression"] = 171] = "NewExpression";
- SyntaxKind[SyntaxKind["TaggedTemplateExpression"] = 172] = "TaggedTemplateExpression";
- SyntaxKind[SyntaxKind["TypeAssertionExpression"] = 173] = "TypeAssertionExpression";
- SyntaxKind[SyntaxKind["ParenthesizedExpression"] = 174] = "ParenthesizedExpression";
- SyntaxKind[SyntaxKind["FunctionExpression"] = 175] = "FunctionExpression";
- SyntaxKind[SyntaxKind["ArrowFunction"] = 176] = "ArrowFunction";
- SyntaxKind[SyntaxKind["DeleteExpression"] = 177] = "DeleteExpression";
- SyntaxKind[SyntaxKind["TypeOfExpression"] = 178] = "TypeOfExpression";
- SyntaxKind[SyntaxKind["VoidExpression"] = 179] = "VoidExpression";
- SyntaxKind[SyntaxKind["AwaitExpression"] = 180] = "AwaitExpression";
- SyntaxKind[SyntaxKind["PrefixUnaryExpression"] = 181] = "PrefixUnaryExpression";
- SyntaxKind[SyntaxKind["PostfixUnaryExpression"] = 182] = "PostfixUnaryExpression";
- SyntaxKind[SyntaxKind["BinaryExpression"] = 183] = "BinaryExpression";
- SyntaxKind[SyntaxKind["ConditionalExpression"] = 184] = "ConditionalExpression";
- SyntaxKind[SyntaxKind["TemplateExpression"] = 185] = "TemplateExpression";
- SyntaxKind[SyntaxKind["YieldExpression"] = 186] = "YieldExpression";
- SyntaxKind[SyntaxKind["SpreadElementExpression"] = 187] = "SpreadElementExpression";
- SyntaxKind[SyntaxKind["ClassExpression"] = 188] = "ClassExpression";
- SyntaxKind[SyntaxKind["OmittedExpression"] = 189] = "OmittedExpression";
- SyntaxKind[SyntaxKind["ExpressionWithTypeArguments"] = 190] = "ExpressionWithTypeArguments";
- SyntaxKind[SyntaxKind["AsExpression"] = 191] = "AsExpression";
+ SyntaxKind[SyntaxKind["ArrayLiteralExpression"] = 167] = "ArrayLiteralExpression";
+ SyntaxKind[SyntaxKind["ObjectLiteralExpression"] = 168] = "ObjectLiteralExpression";
+ SyntaxKind[SyntaxKind["PropertyAccessExpression"] = 169] = "PropertyAccessExpression";
+ SyntaxKind[SyntaxKind["ElementAccessExpression"] = 170] = "ElementAccessExpression";
+ SyntaxKind[SyntaxKind["CallExpression"] = 171] = "CallExpression";
+ SyntaxKind[SyntaxKind["NewExpression"] = 172] = "NewExpression";
+ SyntaxKind[SyntaxKind["TaggedTemplateExpression"] = 173] = "TaggedTemplateExpression";
+ SyntaxKind[SyntaxKind["TypeAssertionExpression"] = 174] = "TypeAssertionExpression";
+ SyntaxKind[SyntaxKind["ParenthesizedExpression"] = 175] = "ParenthesizedExpression";
+ SyntaxKind[SyntaxKind["FunctionExpression"] = 176] = "FunctionExpression";
+ SyntaxKind[SyntaxKind["ArrowFunction"] = 177] = "ArrowFunction";
+ SyntaxKind[SyntaxKind["DeleteExpression"] = 178] = "DeleteExpression";
+ SyntaxKind[SyntaxKind["TypeOfExpression"] = 179] = "TypeOfExpression";
+ SyntaxKind[SyntaxKind["VoidExpression"] = 180] = "VoidExpression";
+ SyntaxKind[SyntaxKind["AwaitExpression"] = 181] = "AwaitExpression";
+ SyntaxKind[SyntaxKind["PrefixUnaryExpression"] = 182] = "PrefixUnaryExpression";
+ SyntaxKind[SyntaxKind["PostfixUnaryExpression"] = 183] = "PostfixUnaryExpression";
+ SyntaxKind[SyntaxKind["BinaryExpression"] = 184] = "BinaryExpression";
+ SyntaxKind[SyntaxKind["ConditionalExpression"] = 185] = "ConditionalExpression";
+ SyntaxKind[SyntaxKind["TemplateExpression"] = 186] = "TemplateExpression";
+ SyntaxKind[SyntaxKind["YieldExpression"] = 187] = "YieldExpression";
+ SyntaxKind[SyntaxKind["SpreadElementExpression"] = 188] = "SpreadElementExpression";
+ SyntaxKind[SyntaxKind["ClassExpression"] = 189] = "ClassExpression";
+ SyntaxKind[SyntaxKind["OmittedExpression"] = 190] = "OmittedExpression";
+ SyntaxKind[SyntaxKind["ExpressionWithTypeArguments"] = 191] = "ExpressionWithTypeArguments";
+ SyntaxKind[SyntaxKind["AsExpression"] = 192] = "AsExpression";
// Misc
- SyntaxKind[SyntaxKind["TemplateSpan"] = 192] = "TemplateSpan";
- SyntaxKind[SyntaxKind["SemicolonClassElement"] = 193] = "SemicolonClassElement";
+ SyntaxKind[SyntaxKind["TemplateSpan"] = 193] = "TemplateSpan";
+ SyntaxKind[SyntaxKind["SemicolonClassElement"] = 194] = "SemicolonClassElement";
// Element
- SyntaxKind[SyntaxKind["Block"] = 194] = "Block";
- SyntaxKind[SyntaxKind["VariableStatement"] = 195] = "VariableStatement";
- SyntaxKind[SyntaxKind["EmptyStatement"] = 196] = "EmptyStatement";
- SyntaxKind[SyntaxKind["ExpressionStatement"] = 197] = "ExpressionStatement";
- SyntaxKind[SyntaxKind["IfStatement"] = 198] = "IfStatement";
- SyntaxKind[SyntaxKind["DoStatement"] = 199] = "DoStatement";
- SyntaxKind[SyntaxKind["WhileStatement"] = 200] = "WhileStatement";
- SyntaxKind[SyntaxKind["ForStatement"] = 201] = "ForStatement";
- SyntaxKind[SyntaxKind["ForInStatement"] = 202] = "ForInStatement";
- SyntaxKind[SyntaxKind["ForOfStatement"] = 203] = "ForOfStatement";
- SyntaxKind[SyntaxKind["ContinueStatement"] = 204] = "ContinueStatement";
- SyntaxKind[SyntaxKind["BreakStatement"] = 205] = "BreakStatement";
- SyntaxKind[SyntaxKind["ReturnStatement"] = 206] = "ReturnStatement";
- SyntaxKind[SyntaxKind["WithStatement"] = 207] = "WithStatement";
- SyntaxKind[SyntaxKind["SwitchStatement"] = 208] = "SwitchStatement";
- SyntaxKind[SyntaxKind["LabeledStatement"] = 209] = "LabeledStatement";
- SyntaxKind[SyntaxKind["ThrowStatement"] = 210] = "ThrowStatement";
- SyntaxKind[SyntaxKind["TryStatement"] = 211] = "TryStatement";
- SyntaxKind[SyntaxKind["DebuggerStatement"] = 212] = "DebuggerStatement";
- SyntaxKind[SyntaxKind["VariableDeclaration"] = 213] = "VariableDeclaration";
- SyntaxKind[SyntaxKind["VariableDeclarationList"] = 214] = "VariableDeclarationList";
- SyntaxKind[SyntaxKind["FunctionDeclaration"] = 215] = "FunctionDeclaration";
- SyntaxKind[SyntaxKind["ClassDeclaration"] = 216] = "ClassDeclaration";
- SyntaxKind[SyntaxKind["InterfaceDeclaration"] = 217] = "InterfaceDeclaration";
- SyntaxKind[SyntaxKind["TypeAliasDeclaration"] = 218] = "TypeAliasDeclaration";
- SyntaxKind[SyntaxKind["EnumDeclaration"] = 219] = "EnumDeclaration";
- SyntaxKind[SyntaxKind["ModuleDeclaration"] = 220] = "ModuleDeclaration";
- SyntaxKind[SyntaxKind["ModuleBlock"] = 221] = "ModuleBlock";
- SyntaxKind[SyntaxKind["CaseBlock"] = 222] = "CaseBlock";
- SyntaxKind[SyntaxKind["ImportEqualsDeclaration"] = 223] = "ImportEqualsDeclaration";
- SyntaxKind[SyntaxKind["ImportDeclaration"] = 224] = "ImportDeclaration";
- SyntaxKind[SyntaxKind["ImportClause"] = 225] = "ImportClause";
- SyntaxKind[SyntaxKind["NamespaceImport"] = 226] = "NamespaceImport";
- SyntaxKind[SyntaxKind["NamedImports"] = 227] = "NamedImports";
- SyntaxKind[SyntaxKind["ImportSpecifier"] = 228] = "ImportSpecifier";
- SyntaxKind[SyntaxKind["ExportAssignment"] = 229] = "ExportAssignment";
- SyntaxKind[SyntaxKind["ExportDeclaration"] = 230] = "ExportDeclaration";
- SyntaxKind[SyntaxKind["NamedExports"] = 231] = "NamedExports";
- SyntaxKind[SyntaxKind["ExportSpecifier"] = 232] = "ExportSpecifier";
- SyntaxKind[SyntaxKind["MissingDeclaration"] = 233] = "MissingDeclaration";
+ SyntaxKind[SyntaxKind["Block"] = 195] = "Block";
+ SyntaxKind[SyntaxKind["VariableStatement"] = 196] = "VariableStatement";
+ SyntaxKind[SyntaxKind["EmptyStatement"] = 197] = "EmptyStatement";
+ SyntaxKind[SyntaxKind["ExpressionStatement"] = 198] = "ExpressionStatement";
+ SyntaxKind[SyntaxKind["IfStatement"] = 199] = "IfStatement";
+ SyntaxKind[SyntaxKind["DoStatement"] = 200] = "DoStatement";
+ SyntaxKind[SyntaxKind["WhileStatement"] = 201] = "WhileStatement";
+ SyntaxKind[SyntaxKind["ForStatement"] = 202] = "ForStatement";
+ SyntaxKind[SyntaxKind["ForInStatement"] = 203] = "ForInStatement";
+ SyntaxKind[SyntaxKind["ForOfStatement"] = 204] = "ForOfStatement";
+ SyntaxKind[SyntaxKind["ContinueStatement"] = 205] = "ContinueStatement";
+ SyntaxKind[SyntaxKind["BreakStatement"] = 206] = "BreakStatement";
+ SyntaxKind[SyntaxKind["ReturnStatement"] = 207] = "ReturnStatement";
+ SyntaxKind[SyntaxKind["WithStatement"] = 208] = "WithStatement";
+ SyntaxKind[SyntaxKind["SwitchStatement"] = 209] = "SwitchStatement";
+ SyntaxKind[SyntaxKind["LabeledStatement"] = 210] = "LabeledStatement";
+ SyntaxKind[SyntaxKind["ThrowStatement"] = 211] = "ThrowStatement";
+ SyntaxKind[SyntaxKind["TryStatement"] = 212] = "TryStatement";
+ SyntaxKind[SyntaxKind["DebuggerStatement"] = 213] = "DebuggerStatement";
+ SyntaxKind[SyntaxKind["VariableDeclaration"] = 214] = "VariableDeclaration";
+ SyntaxKind[SyntaxKind["VariableDeclarationList"] = 215] = "VariableDeclarationList";
+ SyntaxKind[SyntaxKind["FunctionDeclaration"] = 216] = "FunctionDeclaration";
+ SyntaxKind[SyntaxKind["ClassDeclaration"] = 217] = "ClassDeclaration";
+ SyntaxKind[SyntaxKind["InterfaceDeclaration"] = 218] = "InterfaceDeclaration";
+ SyntaxKind[SyntaxKind["TypeAliasDeclaration"] = 219] = "TypeAliasDeclaration";
+ SyntaxKind[SyntaxKind["EnumDeclaration"] = 220] = "EnumDeclaration";
+ SyntaxKind[SyntaxKind["ModuleDeclaration"] = 221] = "ModuleDeclaration";
+ SyntaxKind[SyntaxKind["ModuleBlock"] = 222] = "ModuleBlock";
+ SyntaxKind[SyntaxKind["CaseBlock"] = 223] = "CaseBlock";
+ SyntaxKind[SyntaxKind["ImportEqualsDeclaration"] = 224] = "ImportEqualsDeclaration";
+ SyntaxKind[SyntaxKind["ImportDeclaration"] = 225] = "ImportDeclaration";
+ SyntaxKind[SyntaxKind["ImportClause"] = 226] = "ImportClause";
+ SyntaxKind[SyntaxKind["NamespaceImport"] = 227] = "NamespaceImport";
+ SyntaxKind[SyntaxKind["NamedImports"] = 228] = "NamedImports";
+ SyntaxKind[SyntaxKind["ImportSpecifier"] = 229] = "ImportSpecifier";
+ SyntaxKind[SyntaxKind["ExportAssignment"] = 230] = "ExportAssignment";
+ SyntaxKind[SyntaxKind["ExportDeclaration"] = 231] = "ExportDeclaration";
+ SyntaxKind[SyntaxKind["NamedExports"] = 232] = "NamedExports";
+ SyntaxKind[SyntaxKind["ExportSpecifier"] = 233] = "ExportSpecifier";
+ SyntaxKind[SyntaxKind["MissingDeclaration"] = 234] = "MissingDeclaration";
// Module references
- SyntaxKind[SyntaxKind["ExternalModuleReference"] = 234] = "ExternalModuleReference";
+ SyntaxKind[SyntaxKind["ExternalModuleReference"] = 235] = "ExternalModuleReference";
// JSX
- SyntaxKind[SyntaxKind["JsxElement"] = 235] = "JsxElement";
- SyntaxKind[SyntaxKind["JsxSelfClosingElement"] = 236] = "JsxSelfClosingElement";
- SyntaxKind[SyntaxKind["JsxOpeningElement"] = 237] = "JsxOpeningElement";
- SyntaxKind[SyntaxKind["JsxText"] = 238] = "JsxText";
- SyntaxKind[SyntaxKind["JsxClosingElement"] = 239] = "JsxClosingElement";
- SyntaxKind[SyntaxKind["JsxAttribute"] = 240] = "JsxAttribute";
- SyntaxKind[SyntaxKind["JsxSpreadAttribute"] = 241] = "JsxSpreadAttribute";
- SyntaxKind[SyntaxKind["JsxExpression"] = 242] = "JsxExpression";
+ SyntaxKind[SyntaxKind["JsxElement"] = 236] = "JsxElement";
+ SyntaxKind[SyntaxKind["JsxSelfClosingElement"] = 237] = "JsxSelfClosingElement";
+ SyntaxKind[SyntaxKind["JsxOpeningElement"] = 238] = "JsxOpeningElement";
+ SyntaxKind[SyntaxKind["JsxText"] = 239] = "JsxText";
+ SyntaxKind[SyntaxKind["JsxClosingElement"] = 240] = "JsxClosingElement";
+ SyntaxKind[SyntaxKind["JsxAttribute"] = 241] = "JsxAttribute";
+ SyntaxKind[SyntaxKind["JsxSpreadAttribute"] = 242] = "JsxSpreadAttribute";
+ SyntaxKind[SyntaxKind["JsxExpression"] = 243] = "JsxExpression";
// Clauses
- SyntaxKind[SyntaxKind["CaseClause"] = 243] = "CaseClause";
- SyntaxKind[SyntaxKind["DefaultClause"] = 244] = "DefaultClause";
- SyntaxKind[SyntaxKind["HeritageClause"] = 245] = "HeritageClause";
- SyntaxKind[SyntaxKind["CatchClause"] = 246] = "CatchClause";
+ SyntaxKind[SyntaxKind["CaseClause"] = 244] = "CaseClause";
+ SyntaxKind[SyntaxKind["DefaultClause"] = 245] = "DefaultClause";
+ SyntaxKind[SyntaxKind["HeritageClause"] = 246] = "HeritageClause";
+ SyntaxKind[SyntaxKind["CatchClause"] = 247] = "CatchClause";
// Property assignments
- SyntaxKind[SyntaxKind["PropertyAssignment"] = 247] = "PropertyAssignment";
- SyntaxKind[SyntaxKind["ShorthandPropertyAssignment"] = 248] = "ShorthandPropertyAssignment";
+ SyntaxKind[SyntaxKind["PropertyAssignment"] = 248] = "PropertyAssignment";
+ SyntaxKind[SyntaxKind["ShorthandPropertyAssignment"] = 249] = "ShorthandPropertyAssignment";
// Enum
- SyntaxKind[SyntaxKind["EnumMember"] = 249] = "EnumMember";
+ SyntaxKind[SyntaxKind["EnumMember"] = 250] = "EnumMember";
// Top-level nodes
- SyntaxKind[SyntaxKind["SourceFile"] = 250] = "SourceFile";
+ SyntaxKind[SyntaxKind["SourceFile"] = 251] = "SourceFile";
// JSDoc nodes.
- SyntaxKind[SyntaxKind["JSDocTypeExpression"] = 251] = "JSDocTypeExpression";
+ SyntaxKind[SyntaxKind["JSDocTypeExpression"] = 252] = "JSDocTypeExpression";
// The * type.
- SyntaxKind[SyntaxKind["JSDocAllType"] = 252] = "JSDocAllType";
+ SyntaxKind[SyntaxKind["JSDocAllType"] = 253] = "JSDocAllType";
// The ? type.
- SyntaxKind[SyntaxKind["JSDocUnknownType"] = 253] = "JSDocUnknownType";
- SyntaxKind[SyntaxKind["JSDocArrayType"] = 254] = "JSDocArrayType";
- SyntaxKind[SyntaxKind["JSDocUnionType"] = 255] = "JSDocUnionType";
- SyntaxKind[SyntaxKind["JSDocTupleType"] = 256] = "JSDocTupleType";
- SyntaxKind[SyntaxKind["JSDocNullableType"] = 257] = "JSDocNullableType";
- SyntaxKind[SyntaxKind["JSDocNonNullableType"] = 258] = "JSDocNonNullableType";
- SyntaxKind[SyntaxKind["JSDocRecordType"] = 259] = "JSDocRecordType";
- SyntaxKind[SyntaxKind["JSDocRecordMember"] = 260] = "JSDocRecordMember";
- SyntaxKind[SyntaxKind["JSDocTypeReference"] = 261] = "JSDocTypeReference";
- SyntaxKind[SyntaxKind["JSDocOptionalType"] = 262] = "JSDocOptionalType";
- SyntaxKind[SyntaxKind["JSDocFunctionType"] = 263] = "JSDocFunctionType";
- SyntaxKind[SyntaxKind["JSDocVariadicType"] = 264] = "JSDocVariadicType";
- SyntaxKind[SyntaxKind["JSDocConstructorType"] = 265] = "JSDocConstructorType";
- SyntaxKind[SyntaxKind["JSDocThisType"] = 266] = "JSDocThisType";
- SyntaxKind[SyntaxKind["JSDocComment"] = 267] = "JSDocComment";
- SyntaxKind[SyntaxKind["JSDocTag"] = 268] = "JSDocTag";
- SyntaxKind[SyntaxKind["JSDocParameterTag"] = 269] = "JSDocParameterTag";
- SyntaxKind[SyntaxKind["JSDocReturnTag"] = 270] = "JSDocReturnTag";
- SyntaxKind[SyntaxKind["JSDocTypeTag"] = 271] = "JSDocTypeTag";
- SyntaxKind[SyntaxKind["JSDocTemplateTag"] = 272] = "JSDocTemplateTag";
+ SyntaxKind[SyntaxKind["JSDocUnknownType"] = 254] = "JSDocUnknownType";
+ SyntaxKind[SyntaxKind["JSDocArrayType"] = 255] = "JSDocArrayType";
+ SyntaxKind[SyntaxKind["JSDocUnionType"] = 256] = "JSDocUnionType";
+ SyntaxKind[SyntaxKind["JSDocTupleType"] = 257] = "JSDocTupleType";
+ SyntaxKind[SyntaxKind["JSDocNullableType"] = 258] = "JSDocNullableType";
+ SyntaxKind[SyntaxKind["JSDocNonNullableType"] = 259] = "JSDocNonNullableType";
+ SyntaxKind[SyntaxKind["JSDocRecordType"] = 260] = "JSDocRecordType";
+ SyntaxKind[SyntaxKind["JSDocRecordMember"] = 261] = "JSDocRecordMember";
+ SyntaxKind[SyntaxKind["JSDocTypeReference"] = 262] = "JSDocTypeReference";
+ SyntaxKind[SyntaxKind["JSDocOptionalType"] = 263] = "JSDocOptionalType";
+ SyntaxKind[SyntaxKind["JSDocFunctionType"] = 264] = "JSDocFunctionType";
+ SyntaxKind[SyntaxKind["JSDocVariadicType"] = 265] = "JSDocVariadicType";
+ SyntaxKind[SyntaxKind["JSDocConstructorType"] = 266] = "JSDocConstructorType";
+ SyntaxKind[SyntaxKind["JSDocThisType"] = 267] = "JSDocThisType";
+ SyntaxKind[SyntaxKind["JSDocComment"] = 268] = "JSDocComment";
+ SyntaxKind[SyntaxKind["JSDocTag"] = 269] = "JSDocTag";
+ SyntaxKind[SyntaxKind["JSDocParameterTag"] = 270] = "JSDocParameterTag";
+ SyntaxKind[SyntaxKind["JSDocReturnTag"] = 271] = "JSDocReturnTag";
+ SyntaxKind[SyntaxKind["JSDocTypeTag"] = 272] = "JSDocTypeTag";
+ SyntaxKind[SyntaxKind["JSDocTemplateTag"] = 273] = "JSDocTemplateTag";
// Synthesized list
- SyntaxKind[SyntaxKind["SyntaxList"] = 273] = "SyntaxList";
+ SyntaxKind[SyntaxKind["SyntaxList"] = 274] = "SyntaxList";
// Enum value count
- SyntaxKind[SyntaxKind["Count"] = 274] = "Count";
+ SyntaxKind[SyntaxKind["Count"] = 275] = "Count";
// Markers
SyntaxKind[SyntaxKind["FirstAssignment"] = 56] = "FirstAssignment";
SyntaxKind[SyntaxKind["LastAssignment"] = 68] = "LastAssignment";
SyntaxKind[SyntaxKind["FirstReservedWord"] = 70] = "FirstReservedWord";
SyntaxKind[SyntaxKind["LastReservedWord"] = 105] = "LastReservedWord";
SyntaxKind[SyntaxKind["FirstKeyword"] = 70] = "FirstKeyword";
- SyntaxKind[SyntaxKind["LastKeyword"] = 134] = "LastKeyword";
+ SyntaxKind[SyntaxKind["LastKeyword"] = 135] = "LastKeyword";
SyntaxKind[SyntaxKind["FirstFutureReservedWord"] = 106] = "FirstFutureReservedWord";
SyntaxKind[SyntaxKind["LastFutureReservedWord"] = 114] = "LastFutureReservedWord";
- SyntaxKind[SyntaxKind["FirstTypeNode"] = 150] = "FirstTypeNode";
- SyntaxKind[SyntaxKind["LastTypeNode"] = 162] = "LastTypeNode";
+ SyntaxKind[SyntaxKind["FirstTypeNode"] = 151] = "FirstTypeNode";
+ SyntaxKind[SyntaxKind["LastTypeNode"] = 163] = "LastTypeNode";
SyntaxKind[SyntaxKind["FirstPunctuation"] = 15] = "FirstPunctuation";
SyntaxKind[SyntaxKind["LastPunctuation"] = 68] = "LastPunctuation";
SyntaxKind[SyntaxKind["FirstToken"] = 0] = "FirstToken";
- SyntaxKind[SyntaxKind["LastToken"] = 134] = "LastToken";
+ SyntaxKind[SyntaxKind["LastToken"] = 135] = "LastToken";
SyntaxKind[SyntaxKind["FirstTriviaToken"] = 2] = "FirstTriviaToken";
SyntaxKind[SyntaxKind["LastTriviaToken"] = 7] = "LastTriviaToken";
SyntaxKind[SyntaxKind["FirstLiteralToken"] = 8] = "FirstLiteralToken";
@@ -347,7 +348,7 @@ var ts;
SyntaxKind[SyntaxKind["LastTemplateToken"] = 14] = "LastTemplateToken";
SyntaxKind[SyntaxKind["FirstBinaryOperator"] = 25] = "FirstBinaryOperator";
SyntaxKind[SyntaxKind["LastBinaryOperator"] = 68] = "LastBinaryOperator";
- SyntaxKind[SyntaxKind["FirstNode"] = 135] = "FirstNode";
+ SyntaxKind[SyntaxKind["FirstNode"] = 136] = "FirstNode";
})(ts.SyntaxKind || (ts.SyntaxKind = {}));
var SyntaxKind = ts.SyntaxKind;
(function (NodeFlags) {
@@ -372,10 +373,16 @@ var ts;
NodeFlags[NodeFlags["ContainsThis"] = 262144] = "ContainsThis";
NodeFlags[NodeFlags["HasImplicitReturn"] = 524288] = "HasImplicitReturn";
NodeFlags[NodeFlags["HasExplicitReturn"] = 1048576] = "HasExplicitReturn";
+ NodeFlags[NodeFlags["GlobalAugmentation"] = 2097152] = "GlobalAugmentation";
+ NodeFlags[NodeFlags["HasClassExtends"] = 4194304] = "HasClassExtends";
+ NodeFlags[NodeFlags["HasDecorators"] = 8388608] = "HasDecorators";
+ NodeFlags[NodeFlags["HasParamDecorators"] = 16777216] = "HasParamDecorators";
+ NodeFlags[NodeFlags["HasAsyncFunctions"] = 33554432] = "HasAsyncFunctions";
NodeFlags[NodeFlags["Modifier"] = 1022] = "Modifier";
NodeFlags[NodeFlags["AccessibilityModifier"] = 56] = "AccessibilityModifier";
NodeFlags[NodeFlags["BlockScoped"] = 24576] = "BlockScoped";
NodeFlags[NodeFlags["ReachabilityCheckFlags"] = 1572864] = "ReachabilityCheckFlags";
+ NodeFlags[NodeFlags["EmitHelperFlags"] = 62914560] = "EmitHelperFlags";
})(ts.NodeFlags || (ts.NodeFlags = {}));
var NodeFlags = ts.NodeFlags;
/* @internal */
@@ -584,11 +591,6 @@ var ts;
NodeCheckFlags[NodeCheckFlags["TypeChecked"] = 1] = "TypeChecked";
NodeCheckFlags[NodeCheckFlags["LexicalThis"] = 2] = "LexicalThis";
NodeCheckFlags[NodeCheckFlags["CaptureThis"] = 4] = "CaptureThis";
- NodeCheckFlags[NodeCheckFlags["EmitExtends"] = 8] = "EmitExtends";
- NodeCheckFlags[NodeCheckFlags["EmitDecorate"] = 16] = "EmitDecorate";
- NodeCheckFlags[NodeCheckFlags["EmitParam"] = 32] = "EmitParam";
- NodeCheckFlags[NodeCheckFlags["EmitAwaiter"] = 64] = "EmitAwaiter";
- NodeCheckFlags[NodeCheckFlags["EmitGenerator"] = 128] = "EmitGenerator";
NodeCheckFlags[NodeCheckFlags["SuperInstance"] = 256] = "SuperInstance";
NodeCheckFlags[NodeCheckFlags["SuperStatic"] = 512] = "SuperStatic";
NodeCheckFlags[NodeCheckFlags["ContextChecked"] = 1024] = "ContextChecked";
@@ -1532,7 +1534,8 @@ var ts;
directoryComponents.length--;
}
// Find the component that differs
- for (var joinStartIndex = 0; joinStartIndex < pathComponents.length && joinStartIndex < directoryComponents.length; joinStartIndex++) {
+ var joinStartIndex;
+ for (joinStartIndex = 0; joinStartIndex < pathComponents.length && joinStartIndex < directoryComponents.length; joinStartIndex++) {
if (getCanonicalFileName(directoryComponents[joinStartIndex]) !== getCanonicalFileName(pathComponents[joinStartIndex])) {
break;
}
@@ -1681,6 +1684,12 @@ var ts;
return copiedList;
}
ts.copyListRemovingItem = copyListRemovingItem;
+ function createGetCanonicalFileName(useCaseSensitivefileNames) {
+ return useCaseSensitivefileNames
+ ? (function (fileName) { return fileName; })
+ : (function (fileName) { return fileName.toLowerCase(); });
+ }
+ ts.createGetCanonicalFileName = createGetCanonicalFileName;
})(ts || (ts = {}));
///
var ts;
@@ -1829,7 +1838,7 @@ var ts;
var _os = require("os");
// average async stat takes about 30 microseconds
// set chunk size to do 30 files in < 1 millisecond
- function createWatchedFileSet(interval, chunkSize) {
+ function createPollingWatchedFileSet(interval, chunkSize) {
if (interval === void 0) { interval = 2500; }
if (chunkSize === void 0) { chunkSize = 30; }
var watchedFiles = [];
@@ -1843,13 +1852,13 @@ var ts;
if (!watchedFile) {
return;
}
- _fs.stat(watchedFile.fileName, function (err, stats) {
+ _fs.stat(watchedFile.filePath, function (err, stats) {
if (err) {
- watchedFile.callback(watchedFile.fileName);
+ watchedFile.callback(watchedFile.filePath);
}
else if (watchedFile.mtime.getTime() !== stats.mtime.getTime()) {
- watchedFile.mtime = getModifiedTime(watchedFile.fileName);
- watchedFile.callback(watchedFile.fileName, watchedFile.mtime.getTime() === 0);
+ watchedFile.mtime = getModifiedTime(watchedFile.filePath);
+ watchedFile.callback(watchedFile.filePath, watchedFile.mtime.getTime() === 0);
}
});
}
@@ -1875,11 +1884,11 @@ var ts;
nextFileToCheck = nextToCheck;
}, interval);
}
- function addFile(fileName, callback) {
+ function addFile(filePath, callback) {
var file = {
- fileName: fileName,
+ filePath: filePath,
callback: callback,
- mtime: getModifiedTime(fileName)
+ mtime: getModifiedTime(filePath)
};
watchedFiles.push(file);
if (watchedFiles.length === 1) {
@@ -1898,6 +1907,77 @@ var ts;
removeFile: removeFile
};
}
+ function createWatchedFileSet() {
+ var dirWatchers = ts.createFileMap();
+ // One file can have multiple watchers
+ var fileWatcherCallbacks = ts.createFileMap();
+ return { addFile: addFile, removeFile: removeFile };
+ function reduceDirWatcherRefCountForFile(filePath) {
+ var dirPath = ts.getDirectoryPath(filePath);
+ if (dirWatchers.contains(dirPath)) {
+ var watcher = dirWatchers.get(dirPath);
+ watcher.referenceCount -= 1;
+ if (watcher.referenceCount <= 0) {
+ watcher.close();
+ dirWatchers.remove(dirPath);
+ }
+ }
+ }
+ function addDirWatcher(dirPath) {
+ if (dirWatchers.contains(dirPath)) {
+ var watcher_1 = dirWatchers.get(dirPath);
+ watcher_1.referenceCount += 1;
+ return;
+ }
+ var watcher = _fs.watch(dirPath, { persistent: true }, function (eventName, relativeFileName) { return fileEventHandler(eventName, relativeFileName, dirPath); });
+ watcher.referenceCount = 1;
+ dirWatchers.set(dirPath, watcher);
+ return;
+ }
+ function addFileWatcherCallback(filePath, callback) {
+ if (fileWatcherCallbacks.contains(filePath)) {
+ fileWatcherCallbacks.get(filePath).push(callback);
+ }
+ else {
+ fileWatcherCallbacks.set(filePath, [callback]);
+ }
+ }
+ function addFile(filePath, callback) {
+ addFileWatcherCallback(filePath, callback);
+ addDirWatcher(ts.getDirectoryPath(filePath));
+ return { filePath: filePath, callback: callback };
+ }
+ function removeFile(watchedFile) {
+ removeFileWatcherCallback(watchedFile.filePath, watchedFile.callback);
+ reduceDirWatcherRefCountForFile(watchedFile.filePath);
+ }
+ function removeFileWatcherCallback(filePath, callback) {
+ if (fileWatcherCallbacks.contains(filePath)) {
+ var newCallbacks = ts.copyListRemovingItem(callback, fileWatcherCallbacks.get(filePath));
+ if (newCallbacks.length === 0) {
+ fileWatcherCallbacks.remove(filePath);
+ }
+ else {
+ fileWatcherCallbacks.set(filePath, newCallbacks);
+ }
+ }
+ }
+ /**
+ * @param watcherPath is the path from which the watcher is triggered.
+ */
+ function fileEventHandler(eventName, relativeFileName, baseDirPath) {
+ // When files are deleted from disk, the triggered "rename" event would have a relativefileName of "undefined"
+ var filePath = typeof relativeFileName !== "string"
+ ? undefined
+ : ts.toPath(relativeFileName, baseDirPath, ts.createGetCanonicalFileName(ts.sys.useCaseSensitiveFileNames));
+ if (eventName === "change" && fileWatcherCallbacks.contains(filePath)) {
+ for (var _i = 0, _a = fileWatcherCallbacks.get(filePath); _i < _a.length; _i++) {
+ var fileCallback = _a[_i];
+ fileCallback(filePath);
+ }
+ }
+ }
+ }
// REVIEW: for now this implementation uses polling.
// The advantage of polling is that it works reliably
// on all os and with network mounted files.
@@ -1911,7 +1991,11 @@ var ts;
// changes for large reference sets? If so, do we want
// to increase the chunk size or decrease the interval
// time dynamically to match the large reference set?
+ var pollingWatchedFileSet = createPollingWatchedFileSet();
var watchedFileSet = createWatchedFileSet();
+ function isNode4OrLater() {
+ return parseInt(process.version.charAt(1)) >= 4;
+ }
var platform = _os.platform();
// win32\win64 are case insensitive platforms, MacOS (darwin) by default is also case insensitive
var useCaseSensitiveFileNames = platform !== "win32" && platform !== "win64" && platform !== "darwin";
@@ -1960,7 +2044,7 @@ var ts;
}
}
function getCanonicalPath(path) {
- return useCaseSensitiveFileNames ? path.toLowerCase() : path;
+ return useCaseSensitiveFileNames ? path : path.toLowerCase();
}
function readDirectory(path, extension, exclude) {
var result = [];
@@ -2000,20 +2084,28 @@ var ts;
},
readFile: readFile,
writeFile: writeFile,
- watchFile: function (fileName, callback) {
+ watchFile: function (filePath, callback) {
// Node 4.0 stablized the `fs.watch` function on Windows which avoids polling
// and is more efficient than `fs.watchFile` (ref: https://github.com/nodejs/node/pull/2649
// and https://github.com/Microsoft/TypeScript/issues/4643), therefore
// if the current node.js version is newer than 4, use `fs.watch` instead.
- var watchedFile = watchedFileSet.addFile(fileName, callback);
+ var watchSet = isNode4OrLater() ? watchedFileSet : pollingWatchedFileSet;
+ var watchedFile = watchSet.addFile(filePath, callback);
return {
- close: function () { return watchedFileSet.removeFile(watchedFile); }
+ close: function () { return watchSet.removeFile(watchedFile); }
};
},
watchDirectory: function (path, callback, recursive) {
// Node 4.0 `fs.watch` function supports the "recursive" option on both OSX and Windows
// (ref: https://github.com/nodejs/node/pull/2649 and https://github.com/Microsoft/TypeScript/issues/4643)
- return _fs.watch(path, { persistent: true, recursive: !!recursive }, function (eventName, relativeFileName) {
+ var options;
+ if (isNode4OrLater() && (process.platform === "win32" || process.platform === "darwin")) {
+ options = { persistent: true, recursive: !!recursive };
+ }
+ else {
+ options = { persistent: true };
+ }
+ return _fs.watch(path, options, function (eventName, relativeFileName) {
// In watchDirectory we only care about adding and removing files (when event name is
// "rename"); changes made within files are handled by corresponding fileWatchers (when
// event name is "change")
@@ -2283,7 +2375,6 @@ var ts;
Cannot_find_parameter_0: { code: 1225, category: ts.DiagnosticCategory.Error, key: "Cannot_find_parameter_0_1225", message: "Cannot find parameter '{0}'." },
Type_predicate_0_is_not_assignable_to_1: { code: 1226, category: ts.DiagnosticCategory.Error, key: "Type_predicate_0_is_not_assignable_to_1_1226", message: "Type predicate '{0}' is not assignable to '{1}'." },
Parameter_0_is_not_in_the_same_position_as_parameter_1: { code: 1227, category: ts.DiagnosticCategory.Error, key: "Parameter_0_is_not_in_the_same_position_as_parameter_1_1227", message: "Parameter '{0}' is not in the same position as parameter '{1}'." },
- A_type_predicate_is_only_allowed_in_return_type_position_for_functions_and_methods: { code: 1228, category: ts.DiagnosticCategory.Error, key: "A_type_predicate_is_only_allowed_in_return_type_position_for_functions_and_methods_1228", message: "A type predicate is only allowed in return type position for functions and methods." },
A_type_predicate_cannot_reference_a_rest_parameter: { code: 1229, category: ts.DiagnosticCategory.Error, key: "A_type_predicate_cannot_reference_a_rest_parameter_1229", message: "A type predicate cannot reference a rest parameter." },
A_type_predicate_cannot_reference_element_0_in_a_binding_pattern: { code: 1230, category: ts.DiagnosticCategory.Error, key: "A_type_predicate_cannot_reference_element_0_in_a_binding_pattern_1230", message: "A type predicate cannot reference element '{0}' in a binding pattern." },
An_export_assignment_can_only_be_used_in_a_module: { code: 1231, category: ts.DiagnosticCategory.Error, key: "An_export_assignment_can_only_be_used_in_a_module_1231", message: "An export assignment can only be used in a module." },
@@ -2519,7 +2610,6 @@ var ts;
All_declarations_of_an_abstract_method_must_be_consecutive: { code: 2516, category: ts.DiagnosticCategory.Error, key: "All_declarations_of_an_abstract_method_must_be_consecutive_2516", message: "All declarations of an abstract method must be consecutive." },
Cannot_assign_an_abstract_constructor_type_to_a_non_abstract_constructor_type: { code: 2517, category: ts.DiagnosticCategory.Error, key: "Cannot_assign_an_abstract_constructor_type_to_a_non_abstract_constructor_type_2517", message: "Cannot assign an abstract constructor type to a non-abstract constructor type." },
A_this_based_type_guard_is_not_compatible_with_a_parameter_based_type_guard: { code: 2518, category: ts.DiagnosticCategory.Error, key: "A_this_based_type_guard_is_not_compatible_with_a_parameter_based_type_guard_2518", message: "A 'this'-based type guard is not compatible with a parameter-based type guard." },
- A_this_based_type_predicate_is_only_allowed_within_a_class_or_interface_s_members_get_accessors_or_return_type_positions_for_functions_and_methods: { code: 2519, category: ts.DiagnosticCategory.Error, key: "A_this_based_type_predicate_is_only_allowed_within_a_class_or_interface_s_members_get_accessors_or_r_2519", message: "A 'this'-based type predicate is only allowed within a class or interface's members, get accessors, or return type positions for functions and methods." },
Duplicate_identifier_0_Compiler_uses_declaration_1_to_support_async_functions: { code: 2520, category: ts.DiagnosticCategory.Error, key: "Duplicate_identifier_0_Compiler_uses_declaration_1_to_support_async_functions_2520", message: "Duplicate identifier '{0}'. Compiler uses declaration '{1}' to support async functions." },
Expression_resolves_to_variable_declaration_0_that_compiler_uses_to_support_async_functions: { code: 2521, category: ts.DiagnosticCategory.Error, key: "Expression_resolves_to_variable_declaration_0_that_compiler_uses_to_support_async_functions_2521", message: "Expression resolves to variable declaration '{0}' that compiler uses to support async functions." },
The_arguments_object_cannot_be_referenced_in_an_async_arrow_function_Consider_using_a_standard_async_function_expression: { code: 2522, category: ts.DiagnosticCategory.Error, key: "The_arguments_object_cannot_be_referenced_in_an_async_arrow_function_Consider_using_a_standard_async_2522", message: "The 'arguments' object cannot be referenced in an async arrow function. Consider using a standard async function expression." },
@@ -2548,6 +2638,16 @@ var ts;
Type_0_provides_no_match_for_the_signature_1: { code: 2658, category: ts.DiagnosticCategory.Error, key: "Type_0_provides_no_match_for_the_signature_1_2658", message: "Type '{0}' provides no match for the signature '{1}'" },
super_is_only_allowed_in_members_of_object_literal_expressions_when_option_target_is_ES2015_or_higher: { code: 2659, category: ts.DiagnosticCategory.Error, key: "super_is_only_allowed_in_members_of_object_literal_expressions_when_option_target_is_ES2015_or_highe_2659", message: "'super' is only allowed in members of object literal expressions when option 'target' is 'ES2015' or higher." },
super_can_only_be_referenced_in_members_of_derived_classes_or_object_literal_expressions: { code: 2660, category: ts.DiagnosticCategory.Error, key: "super_can_only_be_referenced_in_members_of_derived_classes_or_object_literal_expressions_2660", message: "'super' can only be referenced in members of derived classes or object literal expressions." },
+ Cannot_re_export_name_that_is_not_defined_in_the_module: { code: 2661, category: ts.DiagnosticCategory.Error, key: "Cannot_re_export_name_that_is_not_defined_in_the_module_2661", message: "Cannot re-export name that is not defined in the module." },
+ Cannot_find_name_0_Did_you_mean_the_static_member_1_0: { code: 2662, category: ts.DiagnosticCategory.Error, key: "Cannot_find_name_0_Did_you_mean_the_static_member_1_0_2662", message: "Cannot find name '{0}'. Did you mean the static member '{1}.{0}'?" },
+ Cannot_find_name_0_Did_you_mean_the_instance_member_this_0: { code: 2663, category: ts.DiagnosticCategory.Error, key: "Cannot_find_name_0_Did_you_mean_the_instance_member_this_0_2663", message: "Cannot find name '{0}'. Did you mean the instance member 'this.{0}'?" },
+ Invalid_module_name_in_augmentation_module_0_cannot_be_found: { code: 2664, category: ts.DiagnosticCategory.Error, key: "Invalid_module_name_in_augmentation_module_0_cannot_be_found_2664", message: "Invalid module name in augmentation, module '{0}' cannot be found." },
+ Module_augmentation_cannot_introduce_new_names_in_the_top_level_scope: { code: 2665, category: ts.DiagnosticCategory.Error, key: "Module_augmentation_cannot_introduce_new_names_in_the_top_level_scope_2665", message: "Module augmentation cannot introduce new names in the top level scope." },
+ Exports_and_export_assignments_are_not_permitted_in_module_augmentations: { code: 2666, category: ts.DiagnosticCategory.Error, key: "Exports_and_export_assignments_are_not_permitted_in_module_augmentations_2666", message: "Exports and export assignments are not permitted in module augmentations." },
+ Imports_are_not_permitted_in_module_augmentations_Consider_moving_them_to_the_enclosing_external_module: { code: 2667, category: ts.DiagnosticCategory.Error, key: "Imports_are_not_permitted_in_module_augmentations_Consider_moving_them_to_the_enclosing_external_mod_2667", message: "Imports are not permitted in module augmentations. Consider moving them to the enclosing external module." },
+ export_modifier_cannot_be_applied_to_ambient_modules_and_module_augmentations_since_they_are_always_visible: { code: 2668, category: ts.DiagnosticCategory.Error, key: "export_modifier_cannot_be_applied_to_ambient_modules_and_module_augmentations_since_they_are_always__2668", message: "'export' modifier cannot be applied to ambient modules and module augmentations since they are always visible." },
+ Augmentations_for_the_global_scope_can_only_be_directly_nested_in_external_modules_or_ambient_module_declarations: { code: 2669, category: ts.DiagnosticCategory.Error, key: "Augmentations_for_the_global_scope_can_only_be_directly_nested_in_external_modules_or_ambient_module_2669", message: "Augmentations for the global scope can only be directly nested in external modules or ambient module declarations." },
+ Augmentations_for_the_global_scope_should_have_declare_modifier_unless_they_appear_in_already_ambient_context: { code: 2670, category: ts.DiagnosticCategory.Error, key: "Augmentations_for_the_global_scope_should_have_declare_modifier_unless_they_appear_in_already_ambien_2670", message: "Augmentations for the global scope should have 'declare' modifier unless they appear in already ambient context." },
Import_declaration_0_is_using_private_name_1: { code: 4000, category: ts.DiagnosticCategory.Error, key: "Import_declaration_0_is_using_private_name_1_4000", message: "Import declaration '{0}' is using private name '{1}'." },
Type_parameter_0_of_exported_class_has_or_is_using_private_name_1: { code: 4002, category: ts.DiagnosticCategory.Error, key: "Type_parameter_0_of_exported_class_has_or_is_using_private_name_1_4002", message: "Type parameter '{0}' of exported class has or is using private name '{1}'." },
Type_parameter_0_of_exported_interface_has_or_is_using_private_name_1: { code: 4004, category: ts.DiagnosticCategory.Error, key: "Type_parameter_0_of_exported_interface_has_or_is_using_private_name_1_4004", message: "Type parameter '{0}' of exported interface has or is using private name '{1}'." },
@@ -2712,6 +2812,7 @@ var ts;
_0_which_lacks_return_type_annotation_implicitly_has_an_1_return_type: { code: 7010, category: ts.DiagnosticCategory.Error, key: "_0_which_lacks_return_type_annotation_implicitly_has_an_1_return_type_7010", message: "'{0}', which lacks return-type annotation, implicitly has an '{1}' return type." },
Function_expression_which_lacks_return_type_annotation_implicitly_has_an_0_return_type: { code: 7011, category: ts.DiagnosticCategory.Error, key: "Function_expression_which_lacks_return_type_annotation_implicitly_has_an_0_return_type_7011", message: "Function expression, which lacks return-type annotation, implicitly has an '{0}' return type." },
Construct_signature_which_lacks_return_type_annotation_implicitly_has_an_any_return_type: { code: 7013, category: ts.DiagnosticCategory.Error, key: "Construct_signature_which_lacks_return_type_annotation_implicitly_has_an_any_return_type_7013", message: "Construct signature, which lacks return-type annotation, implicitly has an 'any' return type." },
+ Element_implicitly_has_an_any_type_because_index_expression_is_not_of_type_number: { code: 7015, category: ts.DiagnosticCategory.Error, key: "Element_implicitly_has_an_any_type_because_index_expression_is_not_of_type_number_7015", message: "Element implicitly has an 'any' type because index expression is not of type 'number'." },
Property_0_implicitly_has_type_any_because_its_set_accessor_lacks_a_type_annotation: { code: 7016, category: ts.DiagnosticCategory.Error, key: "Property_0_implicitly_has_type_any_because_its_set_accessor_lacks_a_type_annotation_7016", message: "Property '{0}' implicitly has type 'any', because its 'set' accessor lacks a type annotation." },
Index_signature_of_object_type_implicitly_has_an_any_type: { code: 7017, category: ts.DiagnosticCategory.Error, key: "Index_signature_of_object_type_implicitly_has_an_any_type_7017", message: "Index signature of object type implicitly has an 'any' type." },
Object_literal_s_property_0_implicitly_has_an_1_type: { code: 7018, category: ts.DiagnosticCategory.Error, key: "Object_literal_s_property_0_implicitly_has_an_1_type_7018", message: "Object literal's property '{0}' implicitly has an '{1}' type." },
@@ -2810,6 +2911,7 @@ var ts;
"protected": 111 /* ProtectedKeyword */,
"public": 112 /* PublicKeyword */,
"require": 127 /* RequireKeyword */,
+ "global": 134 /* GlobalKeyword */,
"return": 94 /* ReturnKeyword */,
"set": 129 /* SetKeyword */,
"static": 113 /* StaticKeyword */,
@@ -2830,7 +2932,7 @@ var ts;
"yield": 114 /* YieldKeyword */,
"async": 118 /* AsyncKeyword */,
"await": 119 /* AwaitKeyword */,
- "of": 134 /* OfKeyword */,
+ "of": 135 /* OfKeyword */,
"{": 15 /* OpenBraceToken */,
"}": 16 /* CloseBraceToken */,
"(": 17 /* OpenParenToken */,
@@ -4246,7 +4348,7 @@ var ts;
break;
}
}
- return token = 238 /* JsxText */;
+ return token = 239 /* JsxText */;
}
// Scans a JSX identifier; these differ from normal identifiers in that
// they allow dashes
@@ -4429,7 +4531,7 @@ var ts;
}
}
function getSourceFileOfNode(node) {
- while (node && node.kind !== 250 /* SourceFile */) {
+ while (node && node.kind !== 251 /* SourceFile */) {
node = node.parent;
}
return node;
@@ -4532,6 +4634,31 @@ var ts;
isCatchClauseVariableDeclaration(declaration);
}
ts.isBlockOrCatchScoped = isBlockOrCatchScoped;
+ function isAmbientModule(node) {
+ return node && node.kind === 221 /* ModuleDeclaration */ &&
+ (node.name.kind === 9 /* StringLiteral */ || isGlobalScopeAugmentation(node));
+ }
+ ts.isAmbientModule = isAmbientModule;
+ function isGlobalScopeAugmentation(module) {
+ return !!(module.flags & 2097152 /* GlobalAugmentation */);
+ }
+ ts.isGlobalScopeAugmentation = isGlobalScopeAugmentation;
+ function isExternalModuleAugmentation(node) {
+ // external module augmentation is a ambient module declaration that is either:
+ // - defined in the top level scope and source file is an external module
+ // - defined inside ambient module declaration located in the top level scope and source file not an external module
+ if (!node || !isAmbientModule(node)) {
+ return false;
+ }
+ switch (node.parent.kind) {
+ case 251 /* SourceFile */:
+ return isExternalModule(node.parent);
+ case 222 /* ModuleBlock */:
+ return isAmbientModule(node.parent.parent) && !isExternalModule(node.parent.parent.parent);
+ }
+ return false;
+ }
+ ts.isExternalModuleAugmentation = isExternalModuleAugmentation;
// Gets the nearest enclosing block scope container that has the provided node
// as a descendant, that is not the provided node.
function getEnclosingBlockScopeContainer(node) {
@@ -4541,15 +4668,15 @@ var ts;
return current;
}
switch (current.kind) {
- case 250 /* SourceFile */:
- case 222 /* CaseBlock */:
- case 246 /* CatchClause */:
- case 220 /* ModuleDeclaration */:
- case 201 /* ForStatement */:
- case 202 /* ForInStatement */:
- case 203 /* ForOfStatement */:
+ case 251 /* SourceFile */:
+ case 223 /* CaseBlock */:
+ case 247 /* CatchClause */:
+ case 221 /* ModuleDeclaration */:
+ case 202 /* ForStatement */:
+ case 203 /* ForInStatement */:
+ case 204 /* ForOfStatement */:
return current;
- case 194 /* Block */:
+ case 195 /* Block */:
// function block is not considered block-scope container
// see comment in binder.ts: bind(...), case for SyntaxKind.Block
if (!isFunctionLike(current.parent)) {
@@ -4562,9 +4689,9 @@ var ts;
ts.getEnclosingBlockScopeContainer = getEnclosingBlockScopeContainer;
function isCatchClauseVariableDeclaration(declaration) {
return declaration &&
- declaration.kind === 213 /* VariableDeclaration */ &&
+ declaration.kind === 214 /* VariableDeclaration */ &&
declaration.parent &&
- declaration.parent.kind === 246 /* CatchClause */;
+ declaration.parent.kind === 247 /* CatchClause */;
}
ts.isCatchClauseVariableDeclaration = isCatchClauseVariableDeclaration;
// Return display name of an identifier
@@ -4603,7 +4730,7 @@ var ts;
function getErrorSpanForNode(sourceFile, node) {
var errorNode = node;
switch (node.kind) {
- case 250 /* SourceFile */:
+ case 251 /* SourceFile */:
var pos_1 = ts.skipTrivia(sourceFile.text, 0, /*stopAfterLineBreak*/ false);
if (pos_1 === sourceFile.text.length) {
// file is empty - return span for the beginning of the file
@@ -4612,17 +4739,18 @@ var ts;
return getSpanOfTokenAtPosition(sourceFile, pos_1);
// This list is a work in progress. Add missing node kinds to improve their error
// spans.
- case 213 /* VariableDeclaration */:
- case 165 /* BindingElement */:
- case 216 /* ClassDeclaration */:
- case 188 /* ClassExpression */:
- case 217 /* InterfaceDeclaration */:
- case 220 /* ModuleDeclaration */:
- case 219 /* EnumDeclaration */:
- case 249 /* EnumMember */:
- case 215 /* FunctionDeclaration */:
- case 175 /* FunctionExpression */:
- case 143 /* MethodDeclaration */:
+ case 214 /* VariableDeclaration */:
+ case 166 /* BindingElement */:
+ case 217 /* ClassDeclaration */:
+ case 189 /* ClassExpression */:
+ case 218 /* InterfaceDeclaration */:
+ case 221 /* ModuleDeclaration */:
+ case 220 /* EnumDeclaration */:
+ case 250 /* EnumMember */:
+ case 216 /* FunctionDeclaration */:
+ case 176 /* FunctionExpression */:
+ case 144 /* MethodDeclaration */:
+ case 219 /* TypeAliasDeclaration */:
errorNode = node.name;
break;
}
@@ -4650,11 +4778,11 @@ var ts;
}
ts.isDeclarationFile = isDeclarationFile;
function isConstEnumDeclaration(node) {
- return node.kind === 219 /* EnumDeclaration */ && isConst(node);
+ return node.kind === 220 /* EnumDeclaration */ && isConst(node);
}
ts.isConstEnumDeclaration = isConstEnumDeclaration;
function walkUpBindingElementsAndPatterns(node) {
- while (node && (node.kind === 165 /* BindingElement */ || isBindingPattern(node))) {
+ while (node && (node.kind === 166 /* BindingElement */ || isBindingPattern(node))) {
node = node.parent;
}
return node;
@@ -4669,14 +4797,14 @@ var ts;
function getCombinedNodeFlags(node) {
node = walkUpBindingElementsAndPatterns(node);
var flags = node.flags;
- if (node.kind === 213 /* VariableDeclaration */) {
+ if (node.kind === 214 /* VariableDeclaration */) {
node = node.parent;
}
- if (node && node.kind === 214 /* VariableDeclarationList */) {
+ if (node && node.kind === 215 /* VariableDeclarationList */) {
flags |= node.flags;
node = node.parent;
}
- if (node && node.kind === 195 /* VariableStatement */) {
+ if (node && node.kind === 196 /* VariableStatement */) {
flags |= node.flags;
}
return flags;
@@ -4691,7 +4819,7 @@ var ts;
}
ts.isLet = isLet;
function isPrologueDirective(node) {
- return node.kind === 197 /* ExpressionStatement */ && node.expression.kind === 9 /* StringLiteral */;
+ return node.kind === 198 /* ExpressionStatement */ && node.expression.kind === 9 /* StringLiteral */;
}
ts.isPrologueDirective = isPrologueDirective;
function getLeadingCommentRangesOfNode(node, sourceFileOfNode) {
@@ -4707,7 +4835,7 @@ var ts;
}
ts.getJsDocComments = getJsDocComments;
function getJsDocCommentsFromText(node, text) {
- var commentRanges = (node.kind === 138 /* Parameter */ || node.kind === 137 /* TypeParameter */) ?
+ var commentRanges = (node.kind === 139 /* Parameter */ || node.kind === 138 /* TypeParameter */) ?
ts.concatenate(ts.getTrailingCommentRanges(text, node.pos), ts.getLeadingCommentRanges(text, node.pos)) :
getLeadingCommentRangesOfNodeFromText(node, text);
return ts.filter(commentRanges, isJsDocComment);
@@ -4722,7 +4850,7 @@ var ts;
ts.fullTripleSlashReferencePathRegEx = /^(\/\/\/\s*/;
ts.fullTripleSlashAMDReferencePathRegEx = /^(\/\/\/\s*/;
function isTypeNode(node) {
- if (150 /* FirstTypeNode */ <= node.kind && node.kind <= 162 /* LastTypeNode */) {
+ if (151 /* FirstTypeNode */ <= node.kind && node.kind <= 163 /* LastTypeNode */) {
return true;
}
switch (node.kind) {
@@ -4733,26 +4861,26 @@ var ts;
case 131 /* SymbolKeyword */:
return true;
case 103 /* VoidKeyword */:
- return node.parent.kind !== 179 /* VoidExpression */;
- case 190 /* ExpressionWithTypeArguments */:
+ return node.parent.kind !== 180 /* VoidExpression */;
+ case 191 /* ExpressionWithTypeArguments */:
return !isExpressionWithTypeArgumentsInClassExtendsClause(node);
// Identifiers and qualified names may be type nodes, depending on their context. Climb
// above them to find the lowest container
case 69 /* Identifier */:
// If the identifier is the RHS of a qualified name, then it's a type iff its parent is.
- if (node.parent.kind === 135 /* QualifiedName */ && node.parent.right === node) {
+ if (node.parent.kind === 136 /* QualifiedName */ && node.parent.right === node) {
node = node.parent;
}
- else if (node.parent.kind === 168 /* PropertyAccessExpression */ && node.parent.name === node) {
+ else if (node.parent.kind === 169 /* PropertyAccessExpression */ && node.parent.name === node) {
node = node.parent;
}
// At this point, node is either a qualified name or an identifier
- ts.Debug.assert(node.kind === 69 /* Identifier */ || node.kind === 135 /* QualifiedName */ || node.kind === 168 /* PropertyAccessExpression */, "'node' was expected to be a qualified name, identifier or property access in 'isTypeNode'.");
- case 135 /* QualifiedName */:
- case 168 /* PropertyAccessExpression */:
+ ts.Debug.assert(node.kind === 69 /* Identifier */ || node.kind === 136 /* QualifiedName */ || node.kind === 169 /* PropertyAccessExpression */, "'node' was expected to be a qualified name, identifier or property access in 'isTypeNode'.");
+ case 136 /* QualifiedName */:
+ case 169 /* PropertyAccessExpression */:
case 97 /* ThisKeyword */:
var parent_1 = node.parent;
- if (parent_1.kind === 154 /* TypeQuery */) {
+ if (parent_1.kind === 155 /* TypeQuery */) {
return false;
}
// Do not recursively call isTypeNode on the parent. In the example:
@@ -4761,38 +4889,38 @@ var ts;
//
// Calling isTypeNode would consider the qualified name A.B a type node. Only C or
// A.B.C is a type node.
- if (150 /* FirstTypeNode */ <= parent_1.kind && parent_1.kind <= 162 /* LastTypeNode */) {
+ if (151 /* FirstTypeNode */ <= parent_1.kind && parent_1.kind <= 163 /* LastTypeNode */) {
return true;
}
switch (parent_1.kind) {
- case 190 /* ExpressionWithTypeArguments */:
+ case 191 /* ExpressionWithTypeArguments */:
return !isExpressionWithTypeArgumentsInClassExtendsClause(parent_1);
- case 137 /* TypeParameter */:
+ case 138 /* TypeParameter */:
return node === parent_1.constraint;
- case 141 /* PropertyDeclaration */:
- case 140 /* PropertySignature */:
- case 138 /* Parameter */:
- case 213 /* VariableDeclaration */:
+ case 142 /* PropertyDeclaration */:
+ case 141 /* PropertySignature */:
+ case 139 /* Parameter */:
+ case 214 /* VariableDeclaration */:
return node === parent_1.type;
- case 215 /* FunctionDeclaration */:
- case 175 /* FunctionExpression */:
- case 176 /* ArrowFunction */:
- case 144 /* Constructor */:
- case 143 /* MethodDeclaration */:
- case 142 /* MethodSignature */:
- case 145 /* GetAccessor */:
- case 146 /* SetAccessor */:
+ case 216 /* FunctionDeclaration */:
+ case 176 /* FunctionExpression */:
+ case 177 /* ArrowFunction */:
+ case 145 /* Constructor */:
+ case 144 /* MethodDeclaration */:
+ case 143 /* MethodSignature */:
+ case 146 /* GetAccessor */:
+ case 147 /* SetAccessor */:
return node === parent_1.type;
- case 147 /* CallSignature */:
- case 148 /* ConstructSignature */:
- case 149 /* IndexSignature */:
+ case 148 /* CallSignature */:
+ case 149 /* ConstructSignature */:
+ case 150 /* IndexSignature */:
return node === parent_1.type;
- case 173 /* TypeAssertionExpression */:
+ case 174 /* TypeAssertionExpression */:
return node === parent_1.type;
- case 170 /* CallExpression */:
- case 171 /* NewExpression */:
+ case 171 /* CallExpression */:
+ case 172 /* NewExpression */:
return parent_1.typeArguments && ts.indexOf(parent_1.typeArguments, node) >= 0;
- case 172 /* TaggedTemplateExpression */:
+ case 173 /* TaggedTemplateExpression */:
// TODO (drosen): TaggedTemplateExpressions may eventually support type arguments.
return false;
}
@@ -4806,23 +4934,23 @@ var ts;
return traverse(body);
function traverse(node) {
switch (node.kind) {
- case 206 /* ReturnStatement */:
+ case 207 /* ReturnStatement */:
return visitor(node);
- case 222 /* CaseBlock */:
- case 194 /* Block */:
- case 198 /* IfStatement */:
- case 199 /* DoStatement */:
- case 200 /* WhileStatement */:
- case 201 /* ForStatement */:
- case 202 /* ForInStatement */:
- case 203 /* ForOfStatement */:
- case 207 /* WithStatement */:
- case 208 /* SwitchStatement */:
- case 243 /* CaseClause */:
- case 244 /* DefaultClause */:
- case 209 /* LabeledStatement */:
- case 211 /* TryStatement */:
- case 246 /* CatchClause */:
+ case 223 /* CaseBlock */:
+ case 195 /* Block */:
+ case 199 /* IfStatement */:
+ case 200 /* DoStatement */:
+ case 201 /* WhileStatement */:
+ case 202 /* ForStatement */:
+ case 203 /* ForInStatement */:
+ case 204 /* ForOfStatement */:
+ case 208 /* WithStatement */:
+ case 209 /* SwitchStatement */:
+ case 244 /* CaseClause */:
+ case 245 /* DefaultClause */:
+ case 210 /* LabeledStatement */:
+ case 212 /* TryStatement */:
+ case 247 /* CatchClause */:
return ts.forEachChild(node, traverse);
}
}
@@ -4832,18 +4960,18 @@ var ts;
return traverse(body);
function traverse(node) {
switch (node.kind) {
- case 186 /* YieldExpression */:
+ case 187 /* YieldExpression */:
visitor(node);
var operand = node.expression;
if (operand) {
traverse(operand);
}
- case 219 /* EnumDeclaration */:
- case 217 /* InterfaceDeclaration */:
- case 220 /* ModuleDeclaration */:
- case 218 /* TypeAliasDeclaration */:
- case 216 /* ClassDeclaration */:
- case 188 /* ClassExpression */:
+ case 220 /* EnumDeclaration */:
+ case 218 /* InterfaceDeclaration */:
+ case 221 /* ModuleDeclaration */:
+ case 219 /* TypeAliasDeclaration */:
+ case 217 /* ClassDeclaration */:
+ case 189 /* ClassExpression */:
// These are not allowed inside a generator now, but eventually they may be allowed
// as local types. Regardless, any yield statements contained within them should be
// skipped in this traversal.
@@ -4851,7 +4979,7 @@ var ts;
default:
if (isFunctionLike(node)) {
var name_5 = node.name;
- if (name_5 && name_5.kind === 136 /* ComputedPropertyName */) {
+ if (name_5 && name_5.kind === 137 /* ComputedPropertyName */) {
// Note that we will not include methods/accessors of a class because they would require
// first descending into the class. This is by design.
traverse(name_5.expression);
@@ -4870,14 +4998,14 @@ var ts;
function isVariableLike(node) {
if (node) {
switch (node.kind) {
- case 165 /* BindingElement */:
- case 249 /* EnumMember */:
- case 138 /* Parameter */:
- case 247 /* PropertyAssignment */:
- case 141 /* PropertyDeclaration */:
- case 140 /* PropertySignature */:
- case 248 /* ShorthandPropertyAssignment */:
- case 213 /* VariableDeclaration */:
+ case 166 /* BindingElement */:
+ case 250 /* EnumMember */:
+ case 139 /* Parameter */:
+ case 248 /* PropertyAssignment */:
+ case 142 /* PropertyDeclaration */:
+ case 141 /* PropertySignature */:
+ case 249 /* ShorthandPropertyAssignment */:
+ case 214 /* VariableDeclaration */:
return true;
}
}
@@ -4885,11 +5013,11 @@ var ts;
}
ts.isVariableLike = isVariableLike;
function isAccessor(node) {
- return node && (node.kind === 145 /* GetAccessor */ || node.kind === 146 /* SetAccessor */);
+ return node && (node.kind === 146 /* GetAccessor */ || node.kind === 147 /* SetAccessor */);
}
ts.isAccessor = isAccessor;
function isClassLike(node) {
- return node && (node.kind === 216 /* ClassDeclaration */ || node.kind === 188 /* ClassExpression */);
+ return node && (node.kind === 217 /* ClassDeclaration */ || node.kind === 189 /* ClassExpression */);
}
ts.isClassLike = isClassLike;
function isFunctionLike(node) {
@@ -4898,32 +5026,32 @@ var ts;
ts.isFunctionLike = isFunctionLike;
function isFunctionLikeKind(kind) {
switch (kind) {
- case 144 /* Constructor */:
- case 175 /* FunctionExpression */:
- case 215 /* FunctionDeclaration */:
- case 176 /* ArrowFunction */:
- case 143 /* MethodDeclaration */:
- case 142 /* MethodSignature */:
- case 145 /* GetAccessor */:
- case 146 /* SetAccessor */:
- case 147 /* CallSignature */:
- case 148 /* ConstructSignature */:
- case 149 /* IndexSignature */:
- case 152 /* FunctionType */:
- case 153 /* ConstructorType */:
+ case 145 /* Constructor */:
+ case 176 /* FunctionExpression */:
+ case 216 /* FunctionDeclaration */:
+ case 177 /* ArrowFunction */:
+ case 144 /* MethodDeclaration */:
+ case 143 /* MethodSignature */:
+ case 146 /* GetAccessor */:
+ case 147 /* SetAccessor */:
+ case 148 /* CallSignature */:
+ case 149 /* ConstructSignature */:
+ case 150 /* IndexSignature */:
+ case 153 /* FunctionType */:
+ case 154 /* ConstructorType */:
return true;
}
}
ts.isFunctionLikeKind = isFunctionLikeKind;
function introducesArgumentsExoticObject(node) {
switch (node.kind) {
- case 143 /* MethodDeclaration */:
- case 142 /* MethodSignature */:
- case 144 /* Constructor */:
- case 145 /* GetAccessor */:
- case 146 /* SetAccessor */:
- case 215 /* FunctionDeclaration */:
- case 175 /* FunctionExpression */:
+ case 144 /* MethodDeclaration */:
+ case 143 /* MethodSignature */:
+ case 145 /* Constructor */:
+ case 146 /* GetAccessor */:
+ case 147 /* SetAccessor */:
+ case 216 /* FunctionDeclaration */:
+ case 176 /* FunctionExpression */:
return true;
}
return false;
@@ -4931,24 +5059,24 @@ var ts;
ts.introducesArgumentsExoticObject = introducesArgumentsExoticObject;
function isIterationStatement(node, lookInLabeledStatements) {
switch (node.kind) {
- case 201 /* ForStatement */:
- case 202 /* ForInStatement */:
- case 203 /* ForOfStatement */:
- case 199 /* DoStatement */:
- case 200 /* WhileStatement */:
+ case 202 /* ForStatement */:
+ case 203 /* ForInStatement */:
+ case 204 /* ForOfStatement */:
+ case 200 /* DoStatement */:
+ case 201 /* WhileStatement */:
return true;
- case 209 /* LabeledStatement */:
+ case 210 /* LabeledStatement */:
return lookInLabeledStatements && isIterationStatement(node.statement, lookInLabeledStatements);
}
return false;
}
ts.isIterationStatement = isIterationStatement;
function isFunctionBlock(node) {
- return node && node.kind === 194 /* Block */ && isFunctionLike(node.parent);
+ return node && node.kind === 195 /* Block */ && isFunctionLike(node.parent);
}
ts.isFunctionBlock = isFunctionBlock;
function isObjectLiteralMethod(node) {
- return node && node.kind === 143 /* MethodDeclaration */ && node.parent.kind === 167 /* ObjectLiteralExpression */;
+ return node && node.kind === 144 /* MethodDeclaration */ && node.parent.kind === 168 /* ObjectLiteralExpression */;
}
ts.isObjectLiteralMethod = isObjectLiteralMethod;
function isIdentifierTypePredicate(predicate) {
@@ -4980,7 +5108,7 @@ var ts;
return undefined;
}
switch (node.kind) {
- case 136 /* ComputedPropertyName */:
+ case 137 /* ComputedPropertyName */:
// If the grandparent node is an object literal (as opposed to a class),
// then the computed property is not a 'this' container.
// A computed property name in a class needs to be a this container
@@ -4995,9 +5123,9 @@ var ts;
// the *body* of the container.
node = node.parent;
break;
- case 139 /* Decorator */:
+ case 140 /* Decorator */:
// Decorators are always applied outside of the body of a class or method.
- if (node.parent.kind === 138 /* Parameter */ && isClassElement(node.parent.parent)) {
+ if (node.parent.kind === 139 /* Parameter */ && isClassElement(node.parent.parent)) {
// If the decorator's parent is a Parameter, we resolve the this container from
// the grandparent class declaration.
node = node.parent.parent;
@@ -5008,26 +5136,26 @@ var ts;
node = node.parent;
}
break;
- case 176 /* ArrowFunction */:
+ case 177 /* ArrowFunction */:
if (!includeArrowFunctions) {
continue;
}
// Fall through
- case 215 /* FunctionDeclaration */:
- case 175 /* FunctionExpression */:
- case 220 /* ModuleDeclaration */:
- case 141 /* PropertyDeclaration */:
- case 140 /* PropertySignature */:
- case 143 /* MethodDeclaration */:
- case 142 /* MethodSignature */:
- case 144 /* Constructor */:
- case 145 /* GetAccessor */:
- case 146 /* SetAccessor */:
- case 147 /* CallSignature */:
- case 148 /* ConstructSignature */:
- case 149 /* IndexSignature */:
- case 219 /* EnumDeclaration */:
- case 250 /* SourceFile */:
+ case 216 /* FunctionDeclaration */:
+ case 176 /* FunctionExpression */:
+ case 221 /* ModuleDeclaration */:
+ case 142 /* PropertyDeclaration */:
+ case 141 /* PropertySignature */:
+ case 144 /* MethodDeclaration */:
+ case 143 /* MethodSignature */:
+ case 145 /* Constructor */:
+ case 146 /* GetAccessor */:
+ case 147 /* SetAccessor */:
+ case 148 /* CallSignature */:
+ case 149 /* ConstructSignature */:
+ case 150 /* IndexSignature */:
+ case 220 /* EnumDeclaration */:
+ case 251 /* SourceFile */:
return node;
}
}
@@ -5048,26 +5176,26 @@ var ts;
return node;
}
switch (node.kind) {
- case 136 /* ComputedPropertyName */:
+ case 137 /* ComputedPropertyName */:
node = node.parent;
break;
- case 215 /* FunctionDeclaration */:
- case 175 /* FunctionExpression */:
- case 176 /* ArrowFunction */:
+ case 216 /* FunctionDeclaration */:
+ case 176 /* FunctionExpression */:
+ case 177 /* ArrowFunction */:
if (!stopOnFunctions) {
continue;
}
- case 141 /* PropertyDeclaration */:
- case 140 /* PropertySignature */:
- case 143 /* MethodDeclaration */:
- case 142 /* MethodSignature */:
- case 144 /* Constructor */:
- case 145 /* GetAccessor */:
- case 146 /* SetAccessor */:
+ case 142 /* PropertyDeclaration */:
+ case 141 /* PropertySignature */:
+ case 144 /* MethodDeclaration */:
+ case 143 /* MethodSignature */:
+ case 145 /* Constructor */:
+ case 146 /* GetAccessor */:
+ case 147 /* SetAccessor */:
return node;
- case 139 /* Decorator */:
+ case 140 /* Decorator */:
// Decorators are always applied outside of the body of a class or method.
- if (node.parent.kind === 138 /* Parameter */ && isClassElement(node.parent.parent)) {
+ if (node.parent.kind === 139 /* Parameter */ && isClassElement(node.parent.parent)) {
// If the decorator's parent is a Parameter, we resolve the this container from
// the grandparent class declaration.
node = node.parent.parent;
@@ -5085,12 +5213,12 @@ var ts;
function getEntityNameFromTypeNode(node) {
if (node) {
switch (node.kind) {
- case 151 /* TypeReference */:
+ case 152 /* TypeReference */:
return node.typeName;
- case 190 /* ExpressionWithTypeArguments */:
+ case 191 /* ExpressionWithTypeArguments */:
return node.expression;
case 69 /* Identifier */:
- case 135 /* QualifiedName */:
+ case 136 /* QualifiedName */:
return node;
}
}
@@ -5098,7 +5226,7 @@ var ts;
}
ts.getEntityNameFromTypeNode = getEntityNameFromTypeNode;
function getInvokedExpression(node) {
- if (node.kind === 172 /* TaggedTemplateExpression */) {
+ if (node.kind === 173 /* TaggedTemplateExpression */) {
return node.tag;
}
// Will either be a CallExpression, NewExpression, or Decorator.
@@ -5107,58 +5235,40 @@ var ts;
ts.getInvokedExpression = getInvokedExpression;
function nodeCanBeDecorated(node) {
switch (node.kind) {
- case 216 /* ClassDeclaration */:
+ case 217 /* ClassDeclaration */:
// classes are valid targets
return true;
- case 141 /* PropertyDeclaration */:
+ case 142 /* PropertyDeclaration */:
// property declarations are valid if their parent is a class declaration.
- return node.parent.kind === 216 /* ClassDeclaration */;
- case 138 /* Parameter */:
- // if the parameter's parent has a body and its grandparent is a class declaration, this is a valid target;
- return node.parent.body && node.parent.parent.kind === 216 /* ClassDeclaration */;
- case 145 /* GetAccessor */:
- case 146 /* SetAccessor */:
- case 143 /* MethodDeclaration */:
+ return node.parent.kind === 217 /* ClassDeclaration */;
+ case 146 /* GetAccessor */:
+ case 147 /* SetAccessor */:
+ case 144 /* MethodDeclaration */:
// if this method has a body and its parent is a class declaration, this is a valid target.
- return node.body && node.parent.kind === 216 /* ClassDeclaration */;
+ return node.body !== undefined
+ && node.parent.kind === 217 /* ClassDeclaration */;
+ case 139 /* Parameter */:
+ // if the parameter's parent has a body and its grandparent is a class declaration, this is a valid target;
+ return node.parent.body !== undefined
+ && (node.parent.kind === 145 /* Constructor */
+ || node.parent.kind === 144 /* MethodDeclaration */
+ || node.parent.kind === 147 /* SetAccessor */)
+ && node.parent.parent.kind === 217 /* ClassDeclaration */;
}
return false;
}
ts.nodeCanBeDecorated = nodeCanBeDecorated;
function nodeIsDecorated(node) {
- switch (node.kind) {
- case 216 /* ClassDeclaration */:
- if (node.decorators) {
- return true;
- }
- return false;
- case 141 /* PropertyDeclaration */:
- case 138 /* Parameter */:
- if (node.decorators) {
- return true;
- }
- return false;
- case 145 /* GetAccessor */:
- if (node.body && node.decorators) {
- return true;
- }
- return false;
- case 143 /* MethodDeclaration */:
- case 146 /* SetAccessor */:
- if (node.body && node.decorators) {
- return true;
- }
- return false;
- }
- return false;
+ return node.decorators !== undefined
+ && nodeCanBeDecorated(node);
}
ts.nodeIsDecorated = nodeIsDecorated;
function isPropertyAccessExpression(node) {
- return node.kind === 168 /* PropertyAccessExpression */;
+ return node.kind === 169 /* PropertyAccessExpression */;
}
ts.isPropertyAccessExpression = isPropertyAccessExpression;
function isElementAccessExpression(node) {
- return node.kind === 169 /* ElementAccessExpression */;
+ return node.kind === 170 /* ElementAccessExpression */;
}
ts.isElementAccessExpression = isElementAccessExpression;
function isExpression(node) {
@@ -5168,42 +5278,42 @@ var ts;
case 99 /* TrueKeyword */:
case 84 /* FalseKeyword */:
case 10 /* RegularExpressionLiteral */:
- case 166 /* ArrayLiteralExpression */:
- case 167 /* ObjectLiteralExpression */:
- case 168 /* PropertyAccessExpression */:
- case 169 /* ElementAccessExpression */:
- case 170 /* CallExpression */:
- case 171 /* NewExpression */:
- case 172 /* TaggedTemplateExpression */:
- case 191 /* AsExpression */:
- case 173 /* TypeAssertionExpression */:
- case 174 /* ParenthesizedExpression */:
- case 175 /* FunctionExpression */:
- case 188 /* ClassExpression */:
- case 176 /* ArrowFunction */:
- case 179 /* VoidExpression */:
- case 177 /* DeleteExpression */:
- case 178 /* TypeOfExpression */:
- case 181 /* PrefixUnaryExpression */:
- case 182 /* PostfixUnaryExpression */:
- case 183 /* BinaryExpression */:
- case 184 /* ConditionalExpression */:
- case 187 /* SpreadElementExpression */:
- case 185 /* TemplateExpression */:
+ case 167 /* ArrayLiteralExpression */:
+ case 168 /* ObjectLiteralExpression */:
+ case 169 /* PropertyAccessExpression */:
+ case 170 /* ElementAccessExpression */:
+ case 171 /* CallExpression */:
+ case 172 /* NewExpression */:
+ case 173 /* TaggedTemplateExpression */:
+ case 192 /* AsExpression */:
+ case 174 /* TypeAssertionExpression */:
+ case 175 /* ParenthesizedExpression */:
+ case 176 /* FunctionExpression */:
+ case 189 /* ClassExpression */:
+ case 177 /* ArrowFunction */:
+ case 180 /* VoidExpression */:
+ case 178 /* DeleteExpression */:
+ case 179 /* TypeOfExpression */:
+ case 182 /* PrefixUnaryExpression */:
+ case 183 /* PostfixUnaryExpression */:
+ case 184 /* BinaryExpression */:
+ case 185 /* ConditionalExpression */:
+ case 188 /* SpreadElementExpression */:
+ case 186 /* TemplateExpression */:
case 11 /* NoSubstitutionTemplateLiteral */:
- case 189 /* OmittedExpression */:
- case 235 /* JsxElement */:
- case 236 /* JsxSelfClosingElement */:
- case 186 /* YieldExpression */:
- case 180 /* AwaitExpression */:
+ case 190 /* OmittedExpression */:
+ case 236 /* JsxElement */:
+ case 237 /* JsxSelfClosingElement */:
+ case 187 /* YieldExpression */:
+ case 181 /* AwaitExpression */:
return true;
- case 135 /* QualifiedName */:
- while (node.parent.kind === 135 /* QualifiedName */) {
+ case 136 /* QualifiedName */:
+ while (node.parent.kind === 136 /* QualifiedName */) {
node = node.parent;
}
- return node.parent.kind === 154 /* TypeQuery */;
+ return node.parent.kind === 155 /* TypeQuery */;
case 69 /* Identifier */:
- if (node.parent.kind === 154 /* TypeQuery */) {
+ if (node.parent.kind === 155 /* TypeQuery */) {
return true;
}
// fall through
@@ -5212,47 +5322,47 @@ var ts;
case 97 /* ThisKeyword */:
var parent_2 = node.parent;
switch (parent_2.kind) {
- case 213 /* VariableDeclaration */:
- case 138 /* Parameter */:
- case 141 /* PropertyDeclaration */:
- case 140 /* PropertySignature */:
- case 249 /* EnumMember */:
- case 247 /* PropertyAssignment */:
- case 165 /* BindingElement */:
+ case 214 /* VariableDeclaration */:
+ case 139 /* Parameter */:
+ case 142 /* PropertyDeclaration */:
+ case 141 /* PropertySignature */:
+ case 250 /* EnumMember */:
+ case 248 /* PropertyAssignment */:
+ case 166 /* BindingElement */:
return parent_2.initializer === node;
- case 197 /* ExpressionStatement */:
- case 198 /* IfStatement */:
- case 199 /* DoStatement */:
- case 200 /* WhileStatement */:
- case 206 /* ReturnStatement */:
- case 207 /* WithStatement */:
- case 208 /* SwitchStatement */:
- case 243 /* CaseClause */:
- case 210 /* ThrowStatement */:
- case 208 /* SwitchStatement */:
+ case 198 /* ExpressionStatement */:
+ case 199 /* IfStatement */:
+ case 200 /* DoStatement */:
+ case 201 /* WhileStatement */:
+ case 207 /* ReturnStatement */:
+ case 208 /* WithStatement */:
+ case 209 /* SwitchStatement */:
+ case 244 /* CaseClause */:
+ case 211 /* ThrowStatement */:
+ case 209 /* SwitchStatement */:
return parent_2.expression === node;
- case 201 /* ForStatement */:
+ case 202 /* ForStatement */:
var forStatement = parent_2;
- return (forStatement.initializer === node && forStatement.initializer.kind !== 214 /* VariableDeclarationList */) ||
+ return (forStatement.initializer === node && forStatement.initializer.kind !== 215 /* VariableDeclarationList */) ||
forStatement.condition === node ||
forStatement.incrementor === node;
- case 202 /* ForInStatement */:
- case 203 /* ForOfStatement */:
+ case 203 /* ForInStatement */:
+ case 204 /* ForOfStatement */:
var forInStatement = parent_2;
- return (forInStatement.initializer === node && forInStatement.initializer.kind !== 214 /* VariableDeclarationList */) ||
+ return (forInStatement.initializer === node && forInStatement.initializer.kind !== 215 /* VariableDeclarationList */) ||
forInStatement.expression === node;
- case 173 /* TypeAssertionExpression */:
- case 191 /* AsExpression */:
+ case 174 /* TypeAssertionExpression */:
+ case 192 /* AsExpression */:
return node === parent_2.expression;
- case 192 /* TemplateSpan */:
+ case 193 /* TemplateSpan */:
return node === parent_2.expression;
- case 136 /* ComputedPropertyName */:
+ case 137 /* ComputedPropertyName */:
return node === parent_2.expression;
- case 139 /* Decorator */:
- case 242 /* JsxExpression */:
- case 241 /* JsxSpreadAttribute */:
+ case 140 /* Decorator */:
+ case 243 /* JsxExpression */:
+ case 242 /* JsxSpreadAttribute */:
return true;
- case 190 /* ExpressionWithTypeArguments */:
+ case 191 /* ExpressionWithTypeArguments */:
return parent_2.expression === node && isExpressionWithTypeArgumentsInClassExtendsClause(parent_2);
default:
if (isExpression(parent_2)) {
@@ -5276,7 +5386,7 @@ var ts;
}
ts.isInstantiatedModule = isInstantiatedModule;
function isExternalModuleImportEqualsDeclaration(node) {
- return node.kind === 223 /* ImportEqualsDeclaration */ && node.moduleReference.kind === 234 /* ExternalModuleReference */;
+ return node.kind === 224 /* ImportEqualsDeclaration */ && node.moduleReference.kind === 235 /* ExternalModuleReference */;
}
ts.isExternalModuleImportEqualsDeclaration = isExternalModuleImportEqualsDeclaration;
function getExternalModuleImportEqualsDeclarationExpression(node) {
@@ -5285,7 +5395,7 @@ var ts;
}
ts.getExternalModuleImportEqualsDeclarationExpression = getExternalModuleImportEqualsDeclarationExpression;
function isInternalModuleImportEqualsDeclaration(node) {
- return node.kind === 223 /* ImportEqualsDeclaration */ && node.moduleReference.kind !== 234 /* ExternalModuleReference */;
+ return node.kind === 224 /* ImportEqualsDeclaration */ && node.moduleReference.kind !== 235 /* ExternalModuleReference */;
}
ts.isInternalModuleImportEqualsDeclaration = isInternalModuleImportEqualsDeclaration;
function isSourceFileJavaScript(file) {
@@ -5303,7 +5413,7 @@ var ts;
*/
function isRequireCall(expression) {
// of the form 'require("name")'
- return expression.kind === 170 /* CallExpression */ &&
+ return expression.kind === 171 /* CallExpression */ &&
expression.expression.kind === 69 /* Identifier */ &&
expression.expression.text === "require" &&
expression.arguments.length === 1 &&
@@ -5313,11 +5423,11 @@ var ts;
/// Given a BinaryExpression, returns SpecialPropertyAssignmentKind for the various kinds of property
/// assignments we treat as special in the binder
function getSpecialPropertyAssignmentKind(expression) {
- if (expression.kind !== 183 /* BinaryExpression */) {
+ if (expression.kind !== 184 /* BinaryExpression */) {
return 0 /* None */;
}
var expr = expression;
- if (expr.operatorToken.kind !== 56 /* EqualsToken */ || expr.left.kind !== 168 /* PropertyAccessExpression */) {
+ if (expr.operatorToken.kind !== 56 /* EqualsToken */ || expr.left.kind !== 169 /* PropertyAccessExpression */) {
return 0 /* None */;
}
var lhs = expr.left;
@@ -5335,7 +5445,7 @@ var ts;
else if (lhs.expression.kind === 97 /* ThisKeyword */) {
return 4 /* ThisProperty */;
}
- else if (lhs.expression.kind === 168 /* PropertyAccessExpression */) {
+ else if (lhs.expression.kind === 169 /* PropertyAccessExpression */) {
// chained dot, e.g. x.y.z = expr; this var is the 'x.y' part
var innerPropertyAccess = lhs.expression;
if (innerPropertyAccess.expression.kind === 69 /* Identifier */ && innerPropertyAccess.name.text === "prototype") {
@@ -5346,30 +5456,33 @@ var ts;
}
ts.getSpecialPropertyAssignmentKind = getSpecialPropertyAssignmentKind;
function getExternalModuleName(node) {
- if (node.kind === 224 /* ImportDeclaration */) {
+ if (node.kind === 225 /* ImportDeclaration */) {
return node.moduleSpecifier;
}
- if (node.kind === 223 /* ImportEqualsDeclaration */) {
+ if (node.kind === 224 /* ImportEqualsDeclaration */) {
var reference = node.moduleReference;
- if (reference.kind === 234 /* ExternalModuleReference */) {
+ if (reference.kind === 235 /* ExternalModuleReference */) {
return reference.expression;
}
}
- if (node.kind === 230 /* ExportDeclaration */) {
+ if (node.kind === 231 /* ExportDeclaration */) {
return node.moduleSpecifier;
}
+ if (node.kind === 221 /* ModuleDeclaration */ && node.name.kind === 9 /* StringLiteral */) {
+ return node.name;
+ }
}
ts.getExternalModuleName = getExternalModuleName;
function hasQuestionToken(node) {
if (node) {
switch (node.kind) {
- case 138 /* Parameter */:
- case 143 /* MethodDeclaration */:
- case 142 /* MethodSignature */:
- case 248 /* ShorthandPropertyAssignment */:
- case 247 /* PropertyAssignment */:
- case 141 /* PropertyDeclaration */:
- case 140 /* PropertySignature */:
+ case 139 /* Parameter */:
+ case 144 /* MethodDeclaration */:
+ case 143 /* MethodSignature */:
+ case 249 /* ShorthandPropertyAssignment */:
+ case 248 /* PropertyAssignment */:
+ case 142 /* PropertyDeclaration */:
+ case 141 /* PropertySignature */:
return node.questionToken !== undefined;
}
}
@@ -5377,9 +5490,9 @@ var ts;
}
ts.hasQuestionToken = hasQuestionToken;
function isJSDocConstructSignature(node) {
- return node.kind === 263 /* JSDocFunctionType */ &&
+ return node.kind === 264 /* JSDocFunctionType */ &&
node.parameters.length > 0 &&
- node.parameters[0].type.kind === 265 /* JSDocConstructorType */;
+ node.parameters[0].type.kind === 266 /* JSDocConstructorType */;
}
ts.isJSDocConstructSignature = isJSDocConstructSignature;
function getJSDocTag(node, kind) {
@@ -5393,15 +5506,15 @@ var ts;
}
}
function getJSDocTypeTag(node) {
- return getJSDocTag(node, 271 /* JSDocTypeTag */);
+ return getJSDocTag(node, 272 /* JSDocTypeTag */);
}
ts.getJSDocTypeTag = getJSDocTypeTag;
function getJSDocReturnTag(node) {
- return getJSDocTag(node, 270 /* JSDocReturnTag */);
+ return getJSDocTag(node, 271 /* JSDocReturnTag */);
}
ts.getJSDocReturnTag = getJSDocReturnTag;
function getJSDocTemplateTag(node) {
- return getJSDocTag(node, 272 /* JSDocTemplateTag */);
+ return getJSDocTag(node, 273 /* JSDocTemplateTag */);
}
ts.getJSDocTemplateTag = getJSDocTemplateTag;
function getCorrespondingJSDocParameterTag(parameter) {
@@ -5412,7 +5525,7 @@ var ts;
var docComment = parameter.parent.jsDocComment;
if (docComment) {
return ts.forEach(docComment.tags, function (t) {
- if (t.kind === 269 /* JSDocParameterTag */) {
+ if (t.kind === 270 /* JSDocParameterTag */) {
var parameterTag = t;
var name_6 = parameterTag.preParameterName || parameterTag.postParameterName;
if (name_6.text === parameterName) {
@@ -5431,12 +5544,12 @@ var ts;
function isRestParameter(node) {
if (node) {
if (node.parserContextFlags & 32 /* JavaScriptFile */) {
- if (node.type && node.type.kind === 264 /* JSDocVariadicType */) {
+ if (node.type && node.type.kind === 265 /* JSDocVariadicType */) {
return true;
}
var paramTag = getCorrespondingJSDocParameterTag(node);
if (paramTag && paramTag.typeExpression) {
- return paramTag.typeExpression.type.kind === 264 /* JSDocVariadicType */;
+ return paramTag.typeExpression.type.kind === 265 /* JSDocVariadicType */;
}
}
return node.dotDotDotToken !== undefined;
@@ -5457,7 +5570,7 @@ var ts;
}
ts.isTemplateLiteralKind = isTemplateLiteralKind;
function isBindingPattern(node) {
- return !!node && (node.kind === 164 /* ArrayBindingPattern */ || node.kind === 163 /* ObjectBindingPattern */);
+ return !!node && (node.kind === 165 /* ArrayBindingPattern */ || node.kind === 164 /* ObjectBindingPattern */);
}
ts.isBindingPattern = isBindingPattern;
function isNodeDescendentOf(node, ancestor) {
@@ -5481,34 +5594,34 @@ var ts;
ts.isInAmbientContext = isInAmbientContext;
function isDeclaration(node) {
switch (node.kind) {
- case 176 /* ArrowFunction */:
- case 165 /* BindingElement */:
- case 216 /* ClassDeclaration */:
- case 188 /* ClassExpression */:
- case 144 /* Constructor */:
- case 219 /* EnumDeclaration */:
- case 249 /* EnumMember */:
- case 232 /* ExportSpecifier */:
- case 215 /* FunctionDeclaration */:
- case 175 /* FunctionExpression */:
- case 145 /* GetAccessor */:
- case 225 /* ImportClause */:
- case 223 /* ImportEqualsDeclaration */:
- case 228 /* ImportSpecifier */:
- case 217 /* InterfaceDeclaration */:
- case 143 /* MethodDeclaration */:
- case 142 /* MethodSignature */:
- case 220 /* ModuleDeclaration */:
- case 226 /* NamespaceImport */:
- case 138 /* Parameter */:
- case 247 /* PropertyAssignment */:
- case 141 /* PropertyDeclaration */:
- case 140 /* PropertySignature */:
- case 146 /* SetAccessor */:
- case 248 /* ShorthandPropertyAssignment */:
- case 218 /* TypeAliasDeclaration */:
- case 137 /* TypeParameter */:
- case 213 /* VariableDeclaration */:
+ case 177 /* ArrowFunction */:
+ case 166 /* BindingElement */:
+ case 217 /* ClassDeclaration */:
+ case 189 /* ClassExpression */:
+ case 145 /* Constructor */:
+ case 220 /* EnumDeclaration */:
+ case 250 /* EnumMember */:
+ case 233 /* ExportSpecifier */:
+ case 216 /* FunctionDeclaration */:
+ case 176 /* FunctionExpression */:
+ case 146 /* GetAccessor */:
+ case 226 /* ImportClause */:
+ case 224 /* ImportEqualsDeclaration */:
+ case 229 /* ImportSpecifier */:
+ case 218 /* InterfaceDeclaration */:
+ case 144 /* MethodDeclaration */:
+ case 143 /* MethodSignature */:
+ case 221 /* ModuleDeclaration */:
+ case 227 /* NamespaceImport */:
+ case 139 /* Parameter */:
+ case 248 /* PropertyAssignment */:
+ case 142 /* PropertyDeclaration */:
+ case 141 /* PropertySignature */:
+ case 147 /* SetAccessor */:
+ case 249 /* ShorthandPropertyAssignment */:
+ case 219 /* TypeAliasDeclaration */:
+ case 138 /* TypeParameter */:
+ case 214 /* VariableDeclaration */:
return true;
}
return false;
@@ -5516,25 +5629,25 @@ var ts;
ts.isDeclaration = isDeclaration;
function isStatement(n) {
switch (n.kind) {
- case 205 /* BreakStatement */:
- case 204 /* ContinueStatement */:
- case 212 /* DebuggerStatement */:
- case 199 /* DoStatement */:
- case 197 /* ExpressionStatement */:
- case 196 /* EmptyStatement */:
- case 202 /* ForInStatement */:
- case 203 /* ForOfStatement */:
- case 201 /* ForStatement */:
- case 198 /* IfStatement */:
- case 209 /* LabeledStatement */:
- case 206 /* ReturnStatement */:
- case 208 /* SwitchStatement */:
- case 210 /* ThrowStatement */:
- case 211 /* TryStatement */:
- case 195 /* VariableStatement */:
- case 200 /* WhileStatement */:
- case 207 /* WithStatement */:
- case 229 /* ExportAssignment */:
+ case 206 /* BreakStatement */:
+ case 205 /* ContinueStatement */:
+ case 213 /* DebuggerStatement */:
+ case 200 /* DoStatement */:
+ case 198 /* ExpressionStatement */:
+ case 197 /* EmptyStatement */:
+ case 203 /* ForInStatement */:
+ case 204 /* ForOfStatement */:
+ case 202 /* ForStatement */:
+ case 199 /* IfStatement */:
+ case 210 /* LabeledStatement */:
+ case 207 /* ReturnStatement */:
+ case 209 /* SwitchStatement */:
+ case 211 /* ThrowStatement */:
+ case 212 /* TryStatement */:
+ case 196 /* VariableStatement */:
+ case 201 /* WhileStatement */:
+ case 208 /* WithStatement */:
+ case 230 /* ExportAssignment */:
return true;
default:
return false;
@@ -5543,13 +5656,13 @@ var ts;
ts.isStatement = isStatement;
function isClassElement(n) {
switch (n.kind) {
- case 144 /* Constructor */:
- case 141 /* PropertyDeclaration */:
- case 143 /* MethodDeclaration */:
- case 145 /* GetAccessor */:
- case 146 /* SetAccessor */:
- case 142 /* MethodSignature */:
- case 149 /* IndexSignature */:
+ case 145 /* Constructor */:
+ case 142 /* PropertyDeclaration */:
+ case 144 /* MethodDeclaration */:
+ case 146 /* GetAccessor */:
+ case 147 /* SetAccessor */:
+ case 143 /* MethodSignature */:
+ case 150 /* IndexSignature */:
return true;
default:
return false;
@@ -5562,7 +5675,7 @@ var ts;
return false;
}
var parent = name.parent;
- if (parent.kind === 228 /* ImportSpecifier */ || parent.kind === 232 /* ExportSpecifier */) {
+ if (parent.kind === 229 /* ImportSpecifier */ || parent.kind === 233 /* ExportSpecifier */) {
if (parent.propertyName) {
return true;
}
@@ -5577,31 +5690,31 @@ var ts;
function isIdentifierName(node) {
var parent = node.parent;
switch (parent.kind) {
- case 141 /* PropertyDeclaration */:
- case 140 /* PropertySignature */:
- case 143 /* MethodDeclaration */:
- case 142 /* MethodSignature */:
- case 145 /* GetAccessor */:
- case 146 /* SetAccessor */:
- case 249 /* EnumMember */:
- case 247 /* PropertyAssignment */:
- case 168 /* PropertyAccessExpression */:
+ case 142 /* PropertyDeclaration */:
+ case 141 /* PropertySignature */:
+ case 144 /* MethodDeclaration */:
+ case 143 /* MethodSignature */:
+ case 146 /* GetAccessor */:
+ case 147 /* SetAccessor */:
+ case 250 /* EnumMember */:
+ case 248 /* PropertyAssignment */:
+ case 169 /* PropertyAccessExpression */:
// Name in member declaration or property name in property access
return parent.name === node;
- case 135 /* QualifiedName */:
+ case 136 /* QualifiedName */:
// Name on right hand side of dot in a type query
if (parent.right === node) {
- while (parent.kind === 135 /* QualifiedName */) {
+ while (parent.kind === 136 /* QualifiedName */) {
parent = parent.parent;
}
- return parent.kind === 154 /* TypeQuery */;
+ return parent.kind === 155 /* TypeQuery */;
}
return false;
- case 165 /* BindingElement */:
- case 228 /* ImportSpecifier */:
+ case 166 /* BindingElement */:
+ case 229 /* ImportSpecifier */:
// Property name in binding element or import specifier
return parent.propertyName === node;
- case 232 /* ExportSpecifier */:
+ case 233 /* ExportSpecifier */:
// Any name in an export specifier
return true;
}
@@ -5617,12 +5730,12 @@ var ts;
// export = ...
// export default ...
function isAliasSymbolDeclaration(node) {
- return node.kind === 223 /* ImportEqualsDeclaration */ ||
- node.kind === 225 /* ImportClause */ && !!node.name ||
- node.kind === 226 /* NamespaceImport */ ||
- node.kind === 228 /* ImportSpecifier */ ||
- node.kind === 232 /* ExportSpecifier */ ||
- node.kind === 229 /* ExportAssignment */ && node.expression.kind === 69 /* Identifier */;
+ return node.kind === 224 /* ImportEqualsDeclaration */ ||
+ node.kind === 226 /* ImportClause */ && !!node.name ||
+ node.kind === 227 /* NamespaceImport */ ||
+ node.kind === 229 /* ImportSpecifier */ ||
+ node.kind === 233 /* ExportSpecifier */ ||
+ node.kind === 230 /* ExportAssignment */ && node.expression.kind === 69 /* Identifier */;
}
ts.isAliasSymbolDeclaration = isAliasSymbolDeclaration;
function getClassExtendsHeritageClauseElement(node) {
@@ -5704,7 +5817,7 @@ var ts;
}
ts.getFileReferenceFromReferencePath = getFileReferenceFromReferencePath;
function isKeyword(token) {
- return 70 /* FirstKeyword */ <= token && token <= 134 /* LastKeyword */;
+ return 70 /* FirstKeyword */ <= token && token <= 135 /* LastKeyword */;
}
ts.isKeyword = isKeyword;
function isTrivia(token) {
@@ -5731,7 +5844,7 @@ var ts;
}
ts.hasDynamicName = hasDynamicName;
function isDynamicName(name) {
- return name.kind === 136 /* ComputedPropertyName */ &&
+ return name.kind === 137 /* ComputedPropertyName */ &&
!isStringOrNumericLiteral(name.expression.kind) &&
!isWellKnownSymbolSyntactically(name.expression);
}
@@ -5749,7 +5862,7 @@ var ts;
if (name.kind === 69 /* Identifier */ || name.kind === 9 /* StringLiteral */ || name.kind === 8 /* NumericLiteral */) {
return name.text;
}
- if (name.kind === 136 /* ComputedPropertyName */) {
+ if (name.kind === 137 /* ComputedPropertyName */) {
var nameExpression = name.expression;
if (isWellKnownSymbolSyntactically(nameExpression)) {
var rightHandSideName = nameExpression.name.text;
@@ -5789,18 +5902,18 @@ var ts;
ts.isModifierKind = isModifierKind;
function isParameterDeclaration(node) {
var root = getRootDeclaration(node);
- return root.kind === 138 /* Parameter */;
+ return root.kind === 139 /* Parameter */;
}
ts.isParameterDeclaration = isParameterDeclaration;
function getRootDeclaration(node) {
- while (node.kind === 165 /* BindingElement */) {
+ while (node.kind === 166 /* BindingElement */) {
node = node.parent.parent;
}
return node;
}
ts.getRootDeclaration = getRootDeclaration;
function nodeStartsNewLexicalEnvironment(n) {
- return isFunctionLike(n) || n.kind === 220 /* ModuleDeclaration */ || n.kind === 250 /* SourceFile */;
+ return isFunctionLike(n) || n.kind === 221 /* ModuleDeclaration */ || n.kind === 251 /* SourceFile */;
}
ts.nodeStartsNewLexicalEnvironment = nodeStartsNewLexicalEnvironment;
/**
@@ -5850,7 +5963,7 @@ var ts;
}
ts.cloneEntityName = cloneEntityName;
function isQualifiedName(node) {
- return node.kind === 135 /* QualifiedName */;
+ return node.kind === 136 /* QualifiedName */;
}
ts.isQualifiedName = isQualifiedName;
function nodeIsSynthesized(node) {
@@ -6180,7 +6293,7 @@ var ts;
ts.getLineOfLocalPositionFromLineMap = getLineOfLocalPositionFromLineMap;
function getFirstConstructorWithBody(node) {
return ts.forEach(node.members, function (member) {
- if (member.kind === 144 /* Constructor */ && nodeIsPresent(member.body)) {
+ if (member.kind === 145 /* Constructor */ && nodeIsPresent(member.body)) {
return member;
}
});
@@ -6197,10 +6310,10 @@ var ts;
var setAccessor;
if (hasDynamicName(accessor)) {
firstAccessor = accessor;
- if (accessor.kind === 145 /* GetAccessor */) {
+ if (accessor.kind === 146 /* GetAccessor */) {
getAccessor = accessor;
}
- else if (accessor.kind === 146 /* SetAccessor */) {
+ else if (accessor.kind === 147 /* SetAccessor */) {
setAccessor = accessor;
}
else {
@@ -6209,7 +6322,7 @@ var ts;
}
else {
ts.forEach(declarations, function (member) {
- if ((member.kind === 145 /* GetAccessor */ || member.kind === 146 /* SetAccessor */)
+ if ((member.kind === 146 /* GetAccessor */ || member.kind === 147 /* SetAccessor */)
&& (member.flags & 64 /* Static */) === (accessor.flags & 64 /* Static */)) {
var memberName = getPropertyNameForPropertyNameNode(member.name);
var accessorName = getPropertyNameForPropertyNameNode(accessor.name);
@@ -6220,10 +6333,10 @@ var ts;
else if (!secondAccessor) {
secondAccessor = member;
}
- if (member.kind === 145 /* GetAccessor */ && !getAccessor) {
+ if (member.kind === 146 /* GetAccessor */ && !getAccessor) {
getAccessor = member;
}
- if (member.kind === 146 /* SetAccessor */ && !setAccessor) {
+ if (member.kind === 147 /* SetAccessor */ && !setAccessor) {
setAccessor = member;
}
}
@@ -6433,24 +6546,24 @@ var ts;
function isLeftHandSideExpression(expr) {
if (expr) {
switch (expr.kind) {
- case 168 /* PropertyAccessExpression */:
- case 169 /* ElementAccessExpression */:
- case 171 /* NewExpression */:
- case 170 /* CallExpression */:
- case 235 /* JsxElement */:
- case 236 /* JsxSelfClosingElement */:
- case 172 /* TaggedTemplateExpression */:
- case 166 /* ArrayLiteralExpression */:
- case 174 /* ParenthesizedExpression */:
- case 167 /* ObjectLiteralExpression */:
- case 188 /* ClassExpression */:
- case 175 /* FunctionExpression */:
+ case 169 /* PropertyAccessExpression */:
+ case 170 /* ElementAccessExpression */:
+ case 172 /* NewExpression */:
+ case 171 /* CallExpression */:
+ case 236 /* JsxElement */:
+ case 237 /* JsxSelfClosingElement */:
+ case 173 /* TaggedTemplateExpression */:
+ case 167 /* ArrayLiteralExpression */:
+ case 175 /* ParenthesizedExpression */:
+ case 168 /* ObjectLiteralExpression */:
+ case 189 /* ClassExpression */:
+ case 176 /* FunctionExpression */:
case 69 /* Identifier */:
case 10 /* RegularExpressionLiteral */:
case 8 /* NumericLiteral */:
case 9 /* StringLiteral */:
case 11 /* NoSubstitutionTemplateLiteral */:
- case 185 /* TemplateExpression */:
+ case 186 /* TemplateExpression */:
case 84 /* FalseKeyword */:
case 93 /* NullKeyword */:
case 97 /* ThisKeyword */:
@@ -6467,7 +6580,7 @@ var ts;
}
ts.isAssignmentOperator = isAssignmentOperator;
function isExpressionWithTypeArgumentsInClassExtendsClause(node) {
- return node.kind === 190 /* ExpressionWithTypeArguments */ &&
+ return node.kind === 191 /* ExpressionWithTypeArguments */ &&
node.parent.token === 83 /* ExtendsKeyword */ &&
isClassLike(node.parent.parent);
}
@@ -6490,16 +6603,16 @@ var ts;
}
}
function isRightSideOfQualifiedNameOrPropertyAccess(node) {
- return (node.parent.kind === 135 /* QualifiedName */ && node.parent.right === node) ||
- (node.parent.kind === 168 /* PropertyAccessExpression */ && node.parent.name === node);
+ return (node.parent.kind === 136 /* QualifiedName */ && node.parent.right === node) ||
+ (node.parent.kind === 169 /* PropertyAccessExpression */ && node.parent.name === node);
}
ts.isRightSideOfQualifiedNameOrPropertyAccess = isRightSideOfQualifiedNameOrPropertyAccess;
function isEmptyObjectLiteralOrArrayLiteral(expression) {
var kind = expression.kind;
- if (kind === 167 /* ObjectLiteralExpression */) {
+ if (kind === 168 /* ObjectLiteralExpression */) {
return expression.properties.length === 0;
}
- if (kind === 166 /* ArrayLiteralExpression */) {
+ if (kind === 167 /* ArrayLiteralExpression */) {
return expression.elements.length === 0;
}
return false;
@@ -6854,9 +6967,9 @@ var ts;
}
ts.collapseTextChangeRangesAcrossMultipleVersions = collapseTextChangeRangesAcrossMultipleVersions;
function getTypeParameterOwner(d) {
- if (d && d.kind === 137 /* TypeParameter */) {
+ if (d && d.kind === 138 /* TypeParameter */) {
for (var current = d; current; current = current.parent) {
- if (ts.isFunctionLike(current) || ts.isClassLike(current) || current.kind === 217 /* InterfaceDeclaration */) {
+ if (ts.isFunctionLike(current) || ts.isClassLike(current) || current.kind === 218 /* InterfaceDeclaration */) {
return current;
}
}
@@ -6864,7 +6977,7 @@ var ts;
}
ts.getTypeParameterOwner = getTypeParameterOwner;
function isParameterPropertyDeclaration(node) {
- return node.flags & 56 /* AccessibilityModifier */ && node.parent.kind === 144 /* Constructor */ && ts.isClassLike(node.parent.parent);
+ return node.flags & 56 /* AccessibilityModifier */ && node.parent.kind === 145 /* Constructor */ && ts.isClassLike(node.parent.parent);
}
ts.isParameterPropertyDeclaration = isParameterPropertyDeclaration;
})(ts || (ts = {}));
@@ -6876,7 +6989,7 @@ var ts;
var NodeConstructor;
var SourceFileConstructor;
function createNode(kind, pos, end) {
- if (kind === 250 /* SourceFile */) {
+ if (kind === 251 /* SourceFile */) {
return new (SourceFileConstructor || (SourceFileConstructor = ts.objectAllocator.getSourceFileConstructor()))(kind, pos, end);
}
else {
@@ -6919,26 +7032,26 @@ var ts;
var visitNodes = cbNodeArray ? visitNodeArray : visitEachNode;
var cbNodes = cbNodeArray || cbNode;
switch (node.kind) {
- case 135 /* QualifiedName */:
+ case 136 /* QualifiedName */:
return visitNode(cbNode, node.left) ||
visitNode(cbNode, node.right);
- case 137 /* TypeParameter */:
+ case 138 /* TypeParameter */:
return visitNode(cbNode, node.name) ||
visitNode(cbNode, node.constraint) ||
visitNode(cbNode, node.expression);
- case 248 /* ShorthandPropertyAssignment */:
+ case 249 /* ShorthandPropertyAssignment */:
return visitNodes(cbNodes, node.decorators) ||
visitNodes(cbNodes, node.modifiers) ||
visitNode(cbNode, node.name) ||
visitNode(cbNode, node.questionToken) ||
visitNode(cbNode, node.equalsToken) ||
visitNode(cbNode, node.objectAssignmentInitializer);
- case 138 /* Parameter */:
- case 141 /* PropertyDeclaration */:
- case 140 /* PropertySignature */:
- case 247 /* PropertyAssignment */:
- case 213 /* VariableDeclaration */:
- case 165 /* BindingElement */:
+ case 139 /* Parameter */:
+ case 142 /* PropertyDeclaration */:
+ case 141 /* PropertySignature */:
+ case 248 /* PropertyAssignment */:
+ case 214 /* VariableDeclaration */:
+ case 166 /* BindingElement */:
return visitNodes(cbNodes, node.decorators) ||
visitNodes(cbNodes, node.modifiers) ||
visitNode(cbNode, node.propertyName) ||
@@ -6947,24 +7060,24 @@ var ts;
visitNode(cbNode, node.questionToken) ||
visitNode(cbNode, node.type) ||
visitNode(cbNode, node.initializer);
- case 152 /* FunctionType */:
- case 153 /* ConstructorType */:
- case 147 /* CallSignature */:
- case 148 /* ConstructSignature */:
- case 149 /* IndexSignature */:
+ case 153 /* FunctionType */:
+ case 154 /* ConstructorType */:
+ case 148 /* CallSignature */:
+ case 149 /* ConstructSignature */:
+ case 150 /* IndexSignature */:
return visitNodes(cbNodes, node.decorators) ||
visitNodes(cbNodes, node.modifiers) ||
visitNodes(cbNodes, node.typeParameters) ||
visitNodes(cbNodes, node.parameters) ||
visitNode(cbNode, node.type);
- case 143 /* MethodDeclaration */:
- case 142 /* MethodSignature */:
- case 144 /* Constructor */:
- case 145 /* GetAccessor */:
- case 146 /* SetAccessor */:
- case 175 /* FunctionExpression */:
- case 215 /* FunctionDeclaration */:
- case 176 /* ArrowFunction */:
+ case 144 /* MethodDeclaration */:
+ case 143 /* MethodSignature */:
+ case 145 /* Constructor */:
+ case 146 /* GetAccessor */:
+ case 147 /* SetAccessor */:
+ case 176 /* FunctionExpression */:
+ case 216 /* FunctionDeclaration */:
+ case 177 /* ArrowFunction */:
return visitNodes(cbNodes, node.decorators) ||
visitNodes(cbNodes, node.modifiers) ||
visitNode(cbNode, node.asteriskToken) ||
@@ -6975,290 +7088,290 @@ var ts;
visitNode(cbNode, node.type) ||
visitNode(cbNode, node.equalsGreaterThanToken) ||
visitNode(cbNode, node.body);
- case 151 /* TypeReference */:
+ case 152 /* TypeReference */:
return visitNode(cbNode, node.typeName) ||
visitNodes(cbNodes, node.typeArguments);
- case 150 /* TypePredicate */:
+ case 151 /* TypePredicate */:
return visitNode(cbNode, node.parameterName) ||
visitNode(cbNode, node.type);
- case 154 /* TypeQuery */:
+ case 155 /* TypeQuery */:
return visitNode(cbNode, node.exprName);
- case 155 /* TypeLiteral */:
+ case 156 /* TypeLiteral */:
return visitNodes(cbNodes, node.members);
- case 156 /* ArrayType */:
+ case 157 /* ArrayType */:
return visitNode(cbNode, node.elementType);
- case 157 /* TupleType */:
+ case 158 /* TupleType */:
return visitNodes(cbNodes, node.elementTypes);
- case 158 /* UnionType */:
- case 159 /* IntersectionType */:
+ case 159 /* UnionType */:
+ case 160 /* IntersectionType */:
return visitNodes(cbNodes, node.types);
- case 160 /* ParenthesizedType */:
+ case 161 /* ParenthesizedType */:
return visitNode(cbNode, node.type);
- case 163 /* ObjectBindingPattern */:
- case 164 /* ArrayBindingPattern */:
+ case 164 /* ObjectBindingPattern */:
+ case 165 /* ArrayBindingPattern */:
return visitNodes(cbNodes, node.elements);
- case 166 /* ArrayLiteralExpression */:
+ case 167 /* ArrayLiteralExpression */:
return visitNodes(cbNodes, node.elements);
- case 167 /* ObjectLiteralExpression */:
+ case 168 /* ObjectLiteralExpression */:
return visitNodes(cbNodes, node.properties);
- case 168 /* PropertyAccessExpression */:
+ case 169 /* PropertyAccessExpression */:
return visitNode(cbNode, node.expression) ||
visitNode(cbNode, node.dotToken) ||
visitNode(cbNode, node.name);
- case 169 /* ElementAccessExpression */:
+ case 170 /* ElementAccessExpression */:
return visitNode(cbNode, node.expression) ||
visitNode(cbNode, node.argumentExpression);
- case 170 /* CallExpression */:
- case 171 /* NewExpression */:
+ case 171 /* CallExpression */:
+ case 172 /* NewExpression */:
return visitNode(cbNode, node.expression) ||
visitNodes(cbNodes, node.typeArguments) ||
visitNodes(cbNodes, node.arguments);
- case 172 /* TaggedTemplateExpression */:
+ case 173 /* TaggedTemplateExpression */:
return visitNode(cbNode, node.tag) ||
visitNode(cbNode, node.template);
- case 173 /* TypeAssertionExpression */:
+ case 174 /* TypeAssertionExpression */:
return visitNode(cbNode, node.type) ||
visitNode(cbNode, node.expression);
- case 174 /* ParenthesizedExpression */:
+ case 175 /* ParenthesizedExpression */:
return visitNode(cbNode, node.expression);
- case 177 /* DeleteExpression */:
+ case 178 /* DeleteExpression */:
return visitNode(cbNode, node.expression);
- case 178 /* TypeOfExpression */:
+ case 179 /* TypeOfExpression */:
return visitNode(cbNode, node.expression);
- case 179 /* VoidExpression */:
+ case 180 /* VoidExpression */:
return visitNode(cbNode, node.expression);
- case 181 /* PrefixUnaryExpression */:
+ case 182 /* PrefixUnaryExpression */:
return visitNode(cbNode, node.operand);
- case 186 /* YieldExpression */:
+ case 187 /* YieldExpression */:
return visitNode(cbNode, node.asteriskToken) ||
visitNode(cbNode, node.expression);
- case 180 /* AwaitExpression */:
+ case 181 /* AwaitExpression */:
return visitNode(cbNode, node.expression);
- case 182 /* PostfixUnaryExpression */:
+ case 183 /* PostfixUnaryExpression */:
return visitNode(cbNode, node.operand);
- case 183 /* BinaryExpression */:
+ case 184 /* BinaryExpression */:
return visitNode(cbNode, node.left) ||
visitNode(cbNode, node.operatorToken) ||
visitNode(cbNode, node.right);
- case 191 /* AsExpression */:
+ case 192 /* AsExpression */:
return visitNode(cbNode, node.expression) ||
visitNode(cbNode, node.type);
- case 184 /* ConditionalExpression */:
+ case 185 /* ConditionalExpression */:
return visitNode(cbNode, node.condition) ||
visitNode(cbNode, node.questionToken) ||
visitNode(cbNode, node.whenTrue) ||
visitNode(cbNode, node.colonToken) ||
visitNode(cbNode, node.whenFalse);
- case 187 /* SpreadElementExpression */:
+ case 188 /* SpreadElementExpression */:
return visitNode(cbNode, node.expression);
- case 194 /* Block */:
- case 221 /* ModuleBlock */:
+ case 195 /* Block */:
+ case 222 /* ModuleBlock */:
return visitNodes(cbNodes, node.statements);
- case 250 /* SourceFile */:
+ case 251 /* SourceFile */:
return visitNodes(cbNodes, node.statements) ||
visitNode(cbNode, node.endOfFileToken);
- case 195 /* VariableStatement */:
+ case 196 /* VariableStatement */:
return visitNodes(cbNodes, node.decorators) ||
visitNodes(cbNodes, node.modifiers) ||
visitNode(cbNode, node.declarationList);
- case 214 /* VariableDeclarationList */:
+ case 215 /* VariableDeclarationList */:
return visitNodes(cbNodes, node.declarations);
- case 197 /* ExpressionStatement */:
+ case 198 /* ExpressionStatement */:
return visitNode(cbNode, node.expression);
- case 198 /* IfStatement */:
+ case 199 /* IfStatement */:
return visitNode(cbNode, node.expression) ||
visitNode(cbNode, node.thenStatement) ||
visitNode(cbNode, node.elseStatement);
- case 199 /* DoStatement */:
+ case 200 /* DoStatement */:
return visitNode(cbNode, node.statement) ||
visitNode(cbNode, node.expression);
- case 200 /* WhileStatement */:
+ case 201 /* WhileStatement */:
return visitNode(cbNode, node.expression) ||
visitNode(cbNode, node.statement);
- case 201 /* ForStatement */:
+ case 202 /* ForStatement */:
return visitNode(cbNode, node.initializer) ||
visitNode(cbNode, node.condition) ||
visitNode(cbNode, node.incrementor) ||
visitNode(cbNode, node.statement);
- case 202 /* ForInStatement */:
+ case 203 /* ForInStatement */:
return visitNode(cbNode, node.initializer) ||
visitNode(cbNode, node.expression) ||
visitNode(cbNode, node.statement);
- case 203 /* ForOfStatement */:
+ case 204 /* ForOfStatement */:
return visitNode(cbNode, node.initializer) ||
visitNode(cbNode, node.expression) ||
visitNode(cbNode, node.statement);
- case 204 /* ContinueStatement */:
- case 205 /* BreakStatement */:
+ case 205 /* ContinueStatement */:
+ case 206 /* BreakStatement */:
return visitNode(cbNode, node.label);
- case 206 /* ReturnStatement */:
+ case 207 /* ReturnStatement */:
return visitNode(cbNode, node.expression);
- case 207 /* WithStatement */:
+ case 208 /* WithStatement */:
return visitNode(cbNode, node.expression) ||
visitNode(cbNode, node.statement);
- case 208 /* SwitchStatement */:
+ case 209 /* SwitchStatement */:
return visitNode(cbNode, node.expression) ||
visitNode(cbNode, node.caseBlock);
- case 222 /* CaseBlock */:
+ case 223 /* CaseBlock */:
return visitNodes(cbNodes, node.clauses);
- case 243 /* CaseClause */:
+ case 244 /* CaseClause */:
return visitNode(cbNode, node.expression) ||
visitNodes(cbNodes, node.statements);
- case 244 /* DefaultClause */:
+ case 245 /* DefaultClause */:
return visitNodes(cbNodes, node.statements);
- case 209 /* LabeledStatement */:
+ case 210 /* LabeledStatement */:
return visitNode(cbNode, node.label) ||
visitNode(cbNode, node.statement);
- case 210 /* ThrowStatement */:
+ case 211 /* ThrowStatement */:
return visitNode(cbNode, node.expression);
- case 211 /* TryStatement */:
+ case 212 /* TryStatement */:
return visitNode(cbNode, node.tryBlock) ||
visitNode(cbNode, node.catchClause) ||
visitNode(cbNode, node.finallyBlock);
- case 246 /* CatchClause */:
+ case 247 /* CatchClause */:
return visitNode(cbNode, node.variableDeclaration) ||
visitNode(cbNode, node.block);
- case 139 /* Decorator */:
+ case 140 /* Decorator */:
return visitNode(cbNode, node.expression);
- case 216 /* ClassDeclaration */:
- case 188 /* ClassExpression */:
+ case 217 /* ClassDeclaration */:
+ case 189 /* ClassExpression */:
return visitNodes(cbNodes, node.decorators) ||
visitNodes(cbNodes, node.modifiers) ||
visitNode(cbNode, node.name) ||
visitNodes(cbNodes, node.typeParameters) ||
visitNodes(cbNodes, node.heritageClauses) ||
visitNodes(cbNodes, node.members);
- case 217 /* InterfaceDeclaration */:
+ case 218 /* InterfaceDeclaration */:
return visitNodes(cbNodes, node.decorators) ||
visitNodes(cbNodes, node.modifiers) ||
visitNode(cbNode, node.name) ||
visitNodes(cbNodes, node.typeParameters) ||
visitNodes(cbNodes, node.heritageClauses) ||
visitNodes(cbNodes, node.members);
- case 218 /* TypeAliasDeclaration */:
+ case 219 /* TypeAliasDeclaration */:
return visitNodes(cbNodes, node.decorators) ||
visitNodes(cbNodes, node.modifiers) ||
visitNode(cbNode, node.name) ||
visitNodes(cbNodes, node.typeParameters) ||
visitNode(cbNode, node.type);
- case 219 /* EnumDeclaration */:
+ case 220 /* EnumDeclaration */:
return visitNodes(cbNodes, node.decorators) ||
visitNodes(cbNodes, node.modifiers) ||
visitNode(cbNode, node.name) ||
visitNodes(cbNodes, node.members);
- case 249 /* EnumMember */:
+ case 250 /* EnumMember */:
return visitNode(cbNode, node.name) ||
visitNode(cbNode, node.initializer);
- case 220 /* ModuleDeclaration */:
+ case 221 /* ModuleDeclaration */:
return visitNodes(cbNodes, node.decorators) ||
visitNodes(cbNodes, node.modifiers) ||
visitNode(cbNode, node.name) ||
visitNode(cbNode, node.body);
- case 223 /* ImportEqualsDeclaration */:
+ case 224 /* ImportEqualsDeclaration */:
return visitNodes(cbNodes, node.decorators) ||
visitNodes(cbNodes, node.modifiers) ||
visitNode(cbNode, node.name) ||
visitNode(cbNode, node.moduleReference);
- case 224 /* ImportDeclaration */:
+ case 225 /* ImportDeclaration */:
return visitNodes(cbNodes, node.decorators) ||
visitNodes(cbNodes, node.modifiers) ||
visitNode(cbNode, node.importClause) ||
visitNode(cbNode, node.moduleSpecifier);
- case 225 /* ImportClause */:
+ case 226 /* ImportClause */:
return visitNode(cbNode, node.name) ||
visitNode(cbNode, node.namedBindings);
- case 226 /* NamespaceImport */:
+ case 227 /* NamespaceImport */:
return visitNode(cbNode, node.name);
- case 227 /* NamedImports */:
- case 231 /* NamedExports */:
+ case 228 /* NamedImports */:
+ case 232 /* NamedExports */:
return visitNodes(cbNodes, node.elements);
- case 230 /* ExportDeclaration */:
+ case 231 /* ExportDeclaration */:
return visitNodes(cbNodes, node.decorators) ||
visitNodes(cbNodes, node.modifiers) ||
visitNode(cbNode, node.exportClause) ||
visitNode(cbNode, node.moduleSpecifier);
- case 228 /* ImportSpecifier */:
- case 232 /* ExportSpecifier */:
+ case 229 /* ImportSpecifier */:
+ case 233 /* ExportSpecifier */:
return visitNode(cbNode, node.propertyName) ||
visitNode(cbNode, node.name);
- case 229 /* ExportAssignment */:
+ case 230 /* ExportAssignment */:
return visitNodes(cbNodes, node.decorators) ||
visitNodes(cbNodes, node.modifiers) ||
visitNode(cbNode, node.expression);
- case 185 /* TemplateExpression */:
+ case 186 /* TemplateExpression */:
return visitNode(cbNode, node.head) || visitNodes(cbNodes, node.templateSpans);
- case 192 /* TemplateSpan */:
+ case 193 /* TemplateSpan */:
return visitNode(cbNode, node.expression) || visitNode(cbNode, node.literal);
- case 136 /* ComputedPropertyName */:
+ case 137 /* ComputedPropertyName */:
return visitNode(cbNode, node.expression);
- case 245 /* HeritageClause */:
+ case 246 /* HeritageClause */:
return visitNodes(cbNodes, node.types);
- case 190 /* ExpressionWithTypeArguments */:
+ case 191 /* ExpressionWithTypeArguments */:
return visitNode(cbNode, node.expression) ||
visitNodes(cbNodes, node.typeArguments);
- case 234 /* ExternalModuleReference */:
+ case 235 /* ExternalModuleReference */:
return visitNode(cbNode, node.expression);
- case 233 /* MissingDeclaration */:
+ case 234 /* MissingDeclaration */:
return visitNodes(cbNodes, node.decorators);
- case 235 /* JsxElement */:
+ case 236 /* JsxElement */:
return visitNode(cbNode, node.openingElement) ||
visitNodes(cbNodes, node.children) ||
visitNode(cbNode, node.closingElement);
- case 236 /* JsxSelfClosingElement */:
- case 237 /* JsxOpeningElement */:
+ case 237 /* JsxSelfClosingElement */:
+ case 238 /* JsxOpeningElement */:
return visitNode(cbNode, node.tagName) ||
visitNodes(cbNodes, node.attributes);
- case 240 /* JsxAttribute */:
+ case 241 /* JsxAttribute */:
return visitNode(cbNode, node.name) ||
visitNode(cbNode, node.initializer);
- case 241 /* JsxSpreadAttribute */:
+ case 242 /* JsxSpreadAttribute */:
return visitNode(cbNode, node.expression);
- case 242 /* JsxExpression */:
+ case 243 /* JsxExpression */:
return visitNode(cbNode, node.expression);
- case 239 /* JsxClosingElement */:
+ case 240 /* JsxClosingElement */:
return visitNode(cbNode, node.tagName);
- case 251 /* JSDocTypeExpression */:
+ case 252 /* JSDocTypeExpression */:
return visitNode(cbNode, node.type);
- case 255 /* JSDocUnionType */:
+ case 256 /* JSDocUnionType */:
return visitNodes(cbNodes, node.types);
- case 256 /* JSDocTupleType */:
+ case 257 /* JSDocTupleType */:
return visitNodes(cbNodes, node.types);
- case 254 /* JSDocArrayType */:
+ case 255 /* JSDocArrayType */:
return visitNode(cbNode, node.elementType);
- case 258 /* JSDocNonNullableType */:
+ case 259 /* JSDocNonNullableType */:
return visitNode(cbNode, node.type);
- case 257 /* JSDocNullableType */:
+ case 258 /* JSDocNullableType */:
return visitNode(cbNode, node.type);
- case 259 /* JSDocRecordType */:
+ case 260 /* JSDocRecordType */:
return visitNodes(cbNodes, node.members);
- case 261 /* JSDocTypeReference */:
+ case 262 /* JSDocTypeReference */:
return visitNode(cbNode, node.name) ||
visitNodes(cbNodes, node.typeArguments);
- case 262 /* JSDocOptionalType */:
+ case 263 /* JSDocOptionalType */:
return visitNode(cbNode, node.type);
- case 263 /* JSDocFunctionType */:
+ case 264 /* JSDocFunctionType */:
return visitNodes(cbNodes, node.parameters) ||
visitNode(cbNode, node.type);
- case 264 /* JSDocVariadicType */:
+ case 265 /* JSDocVariadicType */:
return visitNode(cbNode, node.type);
- case 265 /* JSDocConstructorType */:
+ case 266 /* JSDocConstructorType */:
return visitNode(cbNode, node.type);
- case 266 /* JSDocThisType */:
+ case 267 /* JSDocThisType */:
return visitNode(cbNode, node.type);
- case 260 /* JSDocRecordMember */:
+ case 261 /* JSDocRecordMember */:
return visitNode(cbNode, node.name) ||
visitNode(cbNode, node.type);
- case 267 /* JSDocComment */:
+ case 268 /* JSDocComment */:
return visitNodes(cbNodes, node.tags);
- case 269 /* JSDocParameterTag */:
+ case 270 /* JSDocParameterTag */:
return visitNode(cbNode, node.preParameterName) ||
visitNode(cbNode, node.typeExpression) ||
visitNode(cbNode, node.postParameterName);
- case 270 /* JSDocReturnTag */:
+ case 271 /* JSDocReturnTag */:
return visitNode(cbNode, node.typeExpression);
- case 271 /* JSDocTypeTag */:
+ case 272 /* JSDocTypeTag */:
return visitNode(cbNode, node.typeExpression);
- case 272 /* JSDocTemplateTag */:
+ case 273 /* JSDocTemplateTag */:
return visitNodes(cbNodes, node.typeParameters);
}
}
@@ -7466,9 +7579,9 @@ var ts;
// Add additional cases as necessary depending on how we see JSDoc comments used
// in the wild.
switch (node.kind) {
- case 195 /* VariableStatement */:
- case 215 /* FunctionDeclaration */:
- case 138 /* Parameter */:
+ case 196 /* VariableStatement */:
+ case 216 /* FunctionDeclaration */:
+ case 139 /* Parameter */:
addJSDocComment(node);
}
forEachChild(node, visit);
@@ -7511,7 +7624,7 @@ var ts;
function createSourceFile(fileName, languageVersion) {
// code from createNode is inlined here so createNode won't have to deal with special case of creating source files
// this is quite rare comparing to other nodes and createNode should be as fast as possible
- var sourceFile = new SourceFileConstructor(250 /* SourceFile */, /*pos*/ 0, /* end */ sourceText.length);
+ var sourceFile = new SourceFileConstructor(251 /* SourceFile */, /*pos*/ 0, /* end */ sourceText.length);
nodeCount++;
sourceFile.text = sourceText;
sourceFile.bindDiagnostics = [];
@@ -7685,16 +7798,18 @@ var ts;
}
return result;
}
- // Invokes the provided callback then unconditionally restores the parser to the state it
- // was in immediately prior to invoking the callback. The result of invoking the callback
- // is returned from this function.
+ /** Invokes the provided callback then unconditionally restores the parser to the state it
+ * was in immediately prior to invoking the callback. The result of invoking the callback
+ * is returned from this function.
+ */
function lookAhead(callback) {
return speculationHelper(callback, /*isLookAhead*/ true);
}
- // Invokes the provided callback. If the callback returns something falsy, then it restores
- // the parser to the state it was in immediately prior to invoking the callback. If the
- // callback returns something truthy, then the parser state is not rolled back. The result
- // of invoking the callback is returned from this function.
+ /** Invokes the provided callback. If the callback returns something falsy, then it restores
+ * the parser to the state it was in immediately prior to invoking the callback. If the
+ * callback returns something truthy, then the parser state is not rolled back. The result
+ * of invoking the callback is returned from this function.
+ */
function tryParse(callback) {
return speculationHelper(callback, /*isLookAhead*/ false);
}
@@ -7861,7 +7976,7 @@ var ts;
// PropertyName [Yield]:
// LiteralPropertyName
// ComputedPropertyName[?Yield]
- var node = createNode(136 /* ComputedPropertyName */);
+ var node = createNode(137 /* ComputedPropertyName */);
parseExpected(19 /* OpenBracketToken */);
// We parse any expression (including a comma expression). But the grammar
// says that only an assignment expression is allowed, so the grammar checker
@@ -8262,14 +8377,14 @@ var ts;
function isReusableClassMember(node) {
if (node) {
switch (node.kind) {
- case 144 /* Constructor */:
- case 149 /* IndexSignature */:
- case 145 /* GetAccessor */:
- case 146 /* SetAccessor */:
- case 141 /* PropertyDeclaration */:
- case 193 /* SemicolonClassElement */:
+ case 145 /* Constructor */:
+ case 150 /* IndexSignature */:
+ case 146 /* GetAccessor */:
+ case 147 /* SetAccessor */:
+ case 142 /* PropertyDeclaration */:
+ case 194 /* SemicolonClassElement */:
return true;
- case 143 /* MethodDeclaration */:
+ case 144 /* MethodDeclaration */:
// Method declarations are not necessarily reusable. An object-literal
// may have a method calls "constructor(...)" and we must reparse that
// into an actual .ConstructorDeclaration.
@@ -8284,8 +8399,8 @@ var ts;
function isReusableSwitchClause(node) {
if (node) {
switch (node.kind) {
- case 243 /* CaseClause */:
- case 244 /* DefaultClause */:
+ case 244 /* CaseClause */:
+ case 245 /* DefaultClause */:
return true;
}
}
@@ -8294,58 +8409,58 @@ var ts;
function isReusableStatement(node) {
if (node) {
switch (node.kind) {
- case 215 /* FunctionDeclaration */:
- case 195 /* VariableStatement */:
- case 194 /* Block */:
- case 198 /* IfStatement */:
- case 197 /* ExpressionStatement */:
- case 210 /* ThrowStatement */:
- case 206 /* ReturnStatement */:
- case 208 /* SwitchStatement */:
- case 205 /* BreakStatement */:
- case 204 /* ContinueStatement */:
- case 202 /* ForInStatement */:
- case 203 /* ForOfStatement */:
- case 201 /* ForStatement */:
- case 200 /* WhileStatement */:
- case 207 /* WithStatement */:
- case 196 /* EmptyStatement */:
- case 211 /* TryStatement */:
- case 209 /* LabeledStatement */:
- case 199 /* DoStatement */:
- case 212 /* DebuggerStatement */:
- case 224 /* ImportDeclaration */:
- case 223 /* ImportEqualsDeclaration */:
- case 230 /* ExportDeclaration */:
- case 229 /* ExportAssignment */:
- case 220 /* ModuleDeclaration */:
- case 216 /* ClassDeclaration */:
- case 217 /* InterfaceDeclaration */:
- case 219 /* EnumDeclaration */:
- case 218 /* TypeAliasDeclaration */:
+ case 216 /* FunctionDeclaration */:
+ case 196 /* VariableStatement */:
+ case 195 /* Block */:
+ case 199 /* IfStatement */:
+ case 198 /* ExpressionStatement */:
+ case 211 /* ThrowStatement */:
+ case 207 /* ReturnStatement */:
+ case 209 /* SwitchStatement */:
+ case 206 /* BreakStatement */:
+ case 205 /* ContinueStatement */:
+ case 203 /* ForInStatement */:
+ case 204 /* ForOfStatement */:
+ case 202 /* ForStatement */:
+ case 201 /* WhileStatement */:
+ case 208 /* WithStatement */:
+ case 197 /* EmptyStatement */:
+ case 212 /* TryStatement */:
+ case 210 /* LabeledStatement */:
+ case 200 /* DoStatement */:
+ case 213 /* DebuggerStatement */:
+ case 225 /* ImportDeclaration */:
+ case 224 /* ImportEqualsDeclaration */:
+ case 231 /* ExportDeclaration */:
+ case 230 /* ExportAssignment */:
+ case 221 /* ModuleDeclaration */:
+ case 217 /* ClassDeclaration */:
+ case 218 /* InterfaceDeclaration */:
+ case 220 /* EnumDeclaration */:
+ case 219 /* TypeAliasDeclaration */:
return true;
}
}
return false;
}
function isReusableEnumMember(node) {
- return node.kind === 249 /* EnumMember */;
+ return node.kind === 250 /* EnumMember */;
}
function isReusableTypeMember(node) {
if (node) {
switch (node.kind) {
- case 148 /* ConstructSignature */:
- case 142 /* MethodSignature */:
- case 149 /* IndexSignature */:
- case 140 /* PropertySignature */:
- case 147 /* CallSignature */:
+ case 149 /* ConstructSignature */:
+ case 143 /* MethodSignature */:
+ case 150 /* IndexSignature */:
+ case 141 /* PropertySignature */:
+ case 148 /* CallSignature */:
return true;
}
}
return false;
}
function isReusableVariableDeclaration(node) {
- if (node.kind !== 213 /* VariableDeclaration */) {
+ if (node.kind !== 214 /* VariableDeclaration */) {
return false;
}
// Very subtle incremental parsing bug. Consider the following code:
@@ -8366,7 +8481,7 @@ var ts;
return variableDeclarator.initializer === undefined;
}
function isReusableParameter(node) {
- if (node.kind !== 138 /* Parameter */) {
+ if (node.kind !== 139 /* Parameter */) {
return false;
}
// See the comment in isReusableVariableDeclaration for why we do this.
@@ -8483,7 +8598,7 @@ var ts;
function parseEntityName(allowReservedWords, diagnosticMessage) {
var entity = parseIdentifier(diagnosticMessage);
while (parseOptional(21 /* DotToken */)) {
- var node = createNode(135 /* QualifiedName */, entity.pos);
+ var node = createNode(136 /* QualifiedName */, entity.pos);
node.left = entity;
node.right = parseRightSideOfDot(allowReservedWords);
entity = finishNode(node);
@@ -8522,7 +8637,7 @@ var ts;
return allowIdentifierNames ? parseIdentifierName() : parseIdentifier();
}
function parseTemplateExpression() {
- var template = createNode(185 /* TemplateExpression */);
+ var template = createNode(186 /* TemplateExpression */);
template.head = parseTemplateLiteralFragment();
ts.Debug.assert(template.head.kind === 12 /* TemplateHead */, "Template head has wrong token kind");
var templateSpans = [];
@@ -8535,7 +8650,7 @@ var ts;
return finishNode(template);
}
function parseTemplateSpan() {
- var span = createNode(192 /* TemplateSpan */);
+ var span = createNode(193 /* TemplateSpan */);
span.expression = allowInAnd(parseExpression);
var literal;
if (token === 16 /* CloseBraceToken */) {
@@ -8549,7 +8664,7 @@ var ts;
return finishNode(span);
}
function parseStringLiteralTypeNode() {
- return parseLiteralLikeNode(162 /* StringLiteralType */, /*internName*/ true);
+ return parseLiteralLikeNode(163 /* StringLiteralType */, /*internName*/ true);
}
function parseLiteralNode(internName) {
return parseLiteralLikeNode(token, internName);
@@ -8584,12 +8699,9 @@ var ts;
return node;
}
// TYPES
- function parseTypeReferenceOrTypePredicate() {
+ function parseTypeReference() {
var typeName = parseEntityName(/*allowReservedWords*/ false, ts.Diagnostics.Type_expected);
- if (typeName.kind === 69 /* Identifier */ && token === 124 /* IsKeyword */ && !scanner.hasPrecedingLineBreak()) {
- return parseTypePredicate(typeName);
- }
- var node = createNode(151 /* TypeReference */, typeName.pos);
+ var node = createNode(152 /* TypeReference */, typeName.pos);
node.typeName = typeName;
if (!scanner.hasPrecedingLineBreak() && token === 25 /* LessThanToken */) {
node.typeArguments = parseBracketedList(18 /* TypeArguments */, parseType, 25 /* LessThanToken */, 27 /* GreaterThanToken */);
@@ -8598,24 +8710,24 @@ var ts;
}
function parseTypePredicate(lhs) {
nextToken();
- var node = createNode(150 /* TypePredicate */, lhs.pos);
+ var node = createNode(151 /* TypePredicate */, lhs.pos);
node.parameterName = lhs;
node.type = parseType();
return finishNode(node);
}
function parseThisTypeNode() {
- var node = createNode(161 /* ThisType */);
+ var node = createNode(162 /* ThisType */);
nextToken();
return finishNode(node);
}
function parseTypeQuery() {
- var node = createNode(154 /* TypeQuery */);
+ var node = createNode(155 /* TypeQuery */);
parseExpected(101 /* TypeOfKeyword */);
node.exprName = parseEntityName(/*allowReservedWords*/ true);
return finishNode(node);
}
function parseTypeParameter() {
- var node = createNode(137 /* TypeParameter */);
+ var node = createNode(138 /* TypeParameter */);
node.name = parseIdentifier();
if (parseOptional(83 /* ExtendsKeyword */)) {
// It's not uncommon for people to write improper constraints to a generic. If the
@@ -8659,7 +8771,7 @@ var ts;
}
}
function parseParameter() {
- var node = createNode(138 /* Parameter */);
+ var node = createNode(139 /* Parameter */);
node.decorators = parseDecorators();
setModifiers(node, parseModifiers());
node.dotDotDotToken = parseOptionalToken(22 /* DotDotDotToken */);
@@ -8702,10 +8814,10 @@ var ts;
signature.parameters = parseParameterList(yieldContext, awaitContext, requireCompleteParameterList);
if (returnTokenRequired) {
parseExpected(returnToken);
- signature.type = parseType();
+ signature.type = parseTypeOrTypePredicate();
}
else if (parseOptional(returnToken)) {
- signature.type = parseType();
+ signature.type = parseTypeOrTypePredicate();
}
}
function parseParameterList(yieldContext, awaitContext, requireCompleteParameterList) {
@@ -8753,7 +8865,7 @@ var ts;
}
function parseSignatureMember(kind) {
var node = createNode(kind);
- if (kind === 148 /* ConstructSignature */) {
+ if (kind === 149 /* ConstructSignature */) {
parseExpected(92 /* NewKeyword */);
}
fillSignature(54 /* ColonToken */, /*yieldContext*/ false, /*awaitContext*/ false, /*requireCompleteParameterList*/ false, node);
@@ -8817,7 +8929,7 @@ var ts;
return token === 54 /* ColonToken */ || token === 24 /* CommaToken */ || token === 20 /* CloseBracketToken */;
}
function parseIndexSignatureDeclaration(fullStart, decorators, modifiers) {
- var node = createNode(149 /* IndexSignature */, fullStart);
+ var node = createNode(150 /* IndexSignature */, fullStart);
node.decorators = decorators;
setModifiers(node, modifiers);
node.parameters = parseBracketedList(16 /* Parameters */, parseParameter, 19 /* OpenBracketToken */, 20 /* CloseBracketToken */);
@@ -8830,7 +8942,7 @@ var ts;
var name = parsePropertyName();
var questionToken = parseOptionalToken(53 /* QuestionToken */);
if (token === 17 /* OpenParenToken */ || token === 25 /* LessThanToken */) {
- var method = createNode(142 /* MethodSignature */, fullStart);
+ var method = createNode(143 /* MethodSignature */, fullStart);
method.name = name;
method.questionToken = questionToken;
// Method signatues don't exist in expression contexts. So they have neither
@@ -8840,7 +8952,7 @@ var ts;
return finishNode(method);
}
else {
- var property = createNode(140 /* PropertySignature */, fullStart);
+ var property = createNode(141 /* PropertySignature */, fullStart);
property.name = name;
property.questionToken = questionToken;
property.type = parseTypeAnnotation();
@@ -8888,7 +9000,7 @@ var ts;
switch (token) {
case 17 /* OpenParenToken */:
case 25 /* LessThanToken */:
- return parseSignatureMember(147 /* CallSignature */);
+ return parseSignatureMember(148 /* CallSignature */);
case 19 /* OpenBracketToken */:
// Indexer or computed property
return isIndexSignature()
@@ -8896,7 +9008,7 @@ var ts;
: parsePropertyOrMethodSignature();
case 92 /* NewKeyword */:
if (lookAhead(isStartOfConstructSignature)) {
- return parseSignatureMember(148 /* ConstructSignature */);
+ return parseSignatureMember(149 /* ConstructSignature */);
}
// fall through.
case 9 /* StringLiteral */:
@@ -8933,7 +9045,7 @@ var ts;
return token === 17 /* OpenParenToken */ || token === 25 /* LessThanToken */;
}
function parseTypeLiteral() {
- var node = createNode(155 /* TypeLiteral */);
+ var node = createNode(156 /* TypeLiteral */);
node.members = parseObjectTypeMembers();
return finishNode(node);
}
@@ -8949,12 +9061,12 @@ var ts;
return members;
}
function parseTupleType() {
- var node = createNode(157 /* TupleType */);
+ var node = createNode(158 /* TupleType */);
node.elementTypes = parseBracketedList(19 /* TupleElementTypes */, parseType, 19 /* OpenBracketToken */, 20 /* CloseBracketToken */);
return finishNode(node);
}
function parseParenthesizedType() {
- var node = createNode(160 /* ParenthesizedType */);
+ var node = createNode(161 /* ParenthesizedType */);
parseExpected(17 /* OpenParenToken */);
node.type = parseType();
parseExpected(18 /* CloseParenToken */);
@@ -8962,7 +9074,7 @@ var ts;
}
function parseFunctionOrConstructorType(kind) {
var node = createNode(kind);
- if (kind === 153 /* ConstructorType */) {
+ if (kind === 154 /* ConstructorType */) {
parseExpected(92 /* NewKeyword */);
}
fillSignature(34 /* EqualsGreaterThanToken */, /*yieldContext*/ false, /*awaitContext*/ false, /*requireCompleteParameterList*/ false, node);
@@ -8981,7 +9093,7 @@ var ts;
case 131 /* SymbolKeyword */:
// If these are followed by a dot, then parse these out as a dotted type reference instead.
var node = tryParse(parseKeywordAndNoDot);
- return node || parseTypeReferenceOrTypePredicate();
+ return node || parseTypeReference();
case 9 /* StringLiteral */:
return parseStringLiteralTypeNode();
case 103 /* VoidKeyword */:
@@ -9004,7 +9116,7 @@ var ts;
case 17 /* OpenParenToken */:
return parseParenthesizedType();
default:
- return parseTypeReferenceOrTypePredicate();
+ return parseTypeReference();
}
}
function isStartOfType() {
@@ -9039,7 +9151,7 @@ var ts;
var type = parseNonArrayType();
while (!scanner.hasPrecedingLineBreak() && parseOptional(19 /* OpenBracketToken */)) {
parseExpected(20 /* CloseBracketToken */);
- var node = createNode(156 /* ArrayType */, type.pos);
+ var node = createNode(157 /* ArrayType */, type.pos);
node.elementType = type;
type = finishNode(node);
}
@@ -9061,10 +9173,10 @@ var ts;
return type;
}
function parseIntersectionTypeOrHigher() {
- return parseUnionOrIntersectionType(159 /* IntersectionType */, parseArrayTypeOrHigher, 46 /* AmpersandToken */);
+ return parseUnionOrIntersectionType(160 /* IntersectionType */, parseArrayTypeOrHigher, 46 /* AmpersandToken */);
}
function parseUnionTypeOrHigher() {
- return parseUnionOrIntersectionType(158 /* UnionType */, parseIntersectionTypeOrHigher, 47 /* BarToken */);
+ return parseUnionOrIntersectionType(159 /* UnionType */, parseIntersectionTypeOrHigher, 47 /* BarToken */);
}
function isStartOfFunctionType() {
if (token === 25 /* LessThanToken */) {
@@ -9101,6 +9213,26 @@ var ts;
}
return false;
}
+ function parseTypeOrTypePredicate() {
+ var typePredicateVariable = isIdentifier() && tryParse(parseTypePredicatePrefix);
+ var type = parseType();
+ if (typePredicateVariable) {
+ var node = createNode(151 /* TypePredicate */, typePredicateVariable.pos);
+ node.parameterName = typePredicateVariable;
+ node.type = type;
+ return finishNode(node);
+ }
+ else {
+ return type;
+ }
+ }
+ function parseTypePredicatePrefix() {
+ var id = parseIdentifier();
+ if (token === 124 /* IsKeyword */ && !scanner.hasPrecedingLineBreak()) {
+ nextToken();
+ return id;
+ }
+ }
function parseType() {
// The rules about 'yield' only apply to actual code/expression contexts. They don't
// apply to 'type' contexts. So we disable these parameters here before moving on.
@@ -9108,10 +9240,10 @@ var ts;
}
function parseTypeWorker() {
if (isStartOfFunctionType()) {
- return parseFunctionOrConstructorType(152 /* FunctionType */);
+ return parseFunctionOrConstructorType(153 /* FunctionType */);
}
if (token === 92 /* NewKeyword */) {
- return parseFunctionOrConstructorType(153 /* ConstructorType */);
+ return parseFunctionOrConstructorType(154 /* ConstructorType */);
}
return parseUnionTypeOrHigher();
}
@@ -9304,7 +9436,7 @@ var ts;
return !scanner.hasPrecedingLineBreak() && isIdentifier();
}
function parseYieldExpression() {
- var node = createNode(186 /* YieldExpression */);
+ var node = createNode(187 /* YieldExpression */);
// YieldExpression[In] :
// yield
// yield [no LineTerminator here] [Lexical goal InputElementRegExp]AssignmentExpression[?In, Yield]
@@ -9324,8 +9456,8 @@ var ts;
}
function parseSimpleArrowFunctionExpression(identifier) {
ts.Debug.assert(token === 34 /* EqualsGreaterThanToken */, "parseSimpleArrowFunctionExpression should only have been called if we had a =>");
- var node = createNode(176 /* ArrowFunction */, identifier.pos);
- var parameter = createNode(138 /* Parameter */, identifier.pos);
+ var node = createNode(177 /* ArrowFunction */, identifier.pos);
+ var parameter = createNode(139 /* Parameter */, identifier.pos);
parameter.name = identifier;
finishNode(parameter);
node.parameters = [parameter];
@@ -9477,7 +9609,7 @@ var ts;
return parseParenthesizedArrowFunctionExpressionHead(/*allowAmbiguity*/ false);
}
function parseParenthesizedArrowFunctionExpressionHead(allowAmbiguity) {
- var node = createNode(176 /* ArrowFunction */);
+ var node = createNode(177 /* ArrowFunction */);
setModifiers(node, parseModifiersForArrowFunction());
var isAsync = !!(node.flags & 256 /* Async */);
// Arrow functions are never generators.
@@ -9543,7 +9675,7 @@ var ts;
}
// Note: we explicitly 'allowIn' in the whenTrue part of the condition expression, and
// we do not that for the 'whenFalse' part.
- var node = createNode(184 /* ConditionalExpression */, leftOperand.pos);
+ var node = createNode(185 /* ConditionalExpression */, leftOperand.pos);
node.condition = leftOperand;
node.questionToken = questionToken;
node.whenTrue = doOutsideOfContext(disallowInAndDecoratorContext, parseAssignmentExpressionOrHigher);
@@ -9556,7 +9688,7 @@ var ts;
return parseBinaryExpressionRest(precedence, leftOperand);
}
function isInOrOfKeyword(t) {
- return t === 90 /* InKeyword */ || t === 134 /* OfKeyword */;
+ return t === 90 /* InKeyword */ || t === 135 /* OfKeyword */;
}
function parseBinaryExpressionRest(precedence, leftOperand) {
while (true) {
@@ -9664,39 +9796,39 @@ var ts;
return -1;
}
function makeBinaryExpression(left, operatorToken, right) {
- var node = createNode(183 /* BinaryExpression */, left.pos);
+ var node = createNode(184 /* BinaryExpression */, left.pos);
node.left = left;
node.operatorToken = operatorToken;
node.right = right;
return finishNode(node);
}
function makeAsExpression(left, right) {
- var node = createNode(191 /* AsExpression */, left.pos);
+ var node = createNode(192 /* AsExpression */, left.pos);
node.expression = left;
node.type = right;
return finishNode(node);
}
function parsePrefixUnaryExpression() {
- var node = createNode(181 /* PrefixUnaryExpression */);
+ var node = createNode(182 /* PrefixUnaryExpression */);
node.operator = token;
nextToken();
node.operand = parseSimpleUnaryExpression();
return finishNode(node);
}
function parseDeleteExpression() {
- var node = createNode(177 /* DeleteExpression */);
+ var node = createNode(178 /* DeleteExpression */);
nextToken();
node.expression = parseSimpleUnaryExpression();
return finishNode(node);
}
function parseTypeOfExpression() {
- var node = createNode(178 /* TypeOfExpression */);
+ var node = createNode(179 /* TypeOfExpression */);
nextToken();
node.expression = parseSimpleUnaryExpression();
return finishNode(node);
}
function parseVoidExpression() {
- var node = createNode(179 /* VoidExpression */);
+ var node = createNode(180 /* VoidExpression */);
nextToken();
node.expression = parseSimpleUnaryExpression();
return finishNode(node);
@@ -9712,7 +9844,7 @@ var ts;
return false;
}
function parseAwaitExpression() {
- var node = createNode(180 /* AwaitExpression */);
+ var node = createNode(181 /* AwaitExpression */);
nextToken();
node.expression = parseSimpleUnaryExpression();
return finishNode(node);
@@ -9738,7 +9870,7 @@ var ts;
var simpleUnaryExpression = parseSimpleUnaryExpression();
if (token === 38 /* AsteriskAsteriskToken */) {
var start = ts.skipTrivia(sourceText, simpleUnaryExpression.pos);
- if (simpleUnaryExpression.kind === 173 /* TypeAssertionExpression */) {
+ if (simpleUnaryExpression.kind === 174 /* TypeAssertionExpression */) {
parseErrorAtPosition(start, simpleUnaryExpression.end - start, ts.Diagnostics.A_type_assertion_expression_is_not_allowed_in_the_left_hand_side_of_an_exponentiation_expression_Consider_enclosing_the_expression_in_parentheses);
}
else {
@@ -9828,7 +9960,7 @@ var ts;
*/
function parseIncrementExpression() {
if (token === 41 /* PlusPlusToken */ || token === 42 /* MinusMinusToken */) {
- var node = createNode(181 /* PrefixUnaryExpression */);
+ var node = createNode(182 /* PrefixUnaryExpression */);
node.operator = token;
nextToken();
node.operand = parseLeftHandSideExpressionOrHigher();
@@ -9841,7 +9973,7 @@ var ts;
var expression = parseLeftHandSideExpressionOrHigher();
ts.Debug.assert(ts.isLeftHandSideExpression(expression));
if ((token === 41 /* PlusPlusToken */ || token === 42 /* MinusMinusToken */) && !scanner.hasPrecedingLineBreak()) {
- var node = createNode(182 /* PostfixUnaryExpression */, expression.pos);
+ var node = createNode(183 /* PostfixUnaryExpression */, expression.pos);
node.operand = expression;
node.operator = token;
nextToken();
@@ -9945,7 +10077,7 @@ var ts;
}
// If we have seen "super" it must be followed by '(' or '.'.
// If it wasn't then just try to parse out a '.' and report an error.
- var node = createNode(168 /* PropertyAccessExpression */, expression.pos);
+ var node = createNode(169 /* PropertyAccessExpression */, expression.pos);
node.expression = expression;
node.dotToken = parseExpectedToken(21 /* DotToken */, /*reportAtCurrentPosition*/ false, ts.Diagnostics.super_must_be_followed_by_an_argument_list_or_member_access);
node.name = parseRightSideOfDot(/*allowIdentifierNames*/ true);
@@ -9964,8 +10096,8 @@ var ts;
function parseJsxElementOrSelfClosingElement(inExpressionContext) {
var opening = parseJsxOpeningOrSelfClosingElement(inExpressionContext);
var result;
- if (opening.kind === 237 /* JsxOpeningElement */) {
- var node = createNode(235 /* JsxElement */, opening.pos);
+ if (opening.kind === 238 /* JsxOpeningElement */) {
+ var node = createNode(236 /* JsxElement */, opening.pos);
node.openingElement = opening;
node.children = parseJsxChildren(node.openingElement.tagName);
node.closingElement = parseJsxClosingElement(inExpressionContext);
@@ -9975,7 +10107,7 @@ var ts;
result = finishNode(node);
}
else {
- ts.Debug.assert(opening.kind === 236 /* JsxSelfClosingElement */);
+ ts.Debug.assert(opening.kind === 237 /* JsxSelfClosingElement */);
// Nothing else to do for self-closing elements
result = opening;
}
@@ -9990,7 +10122,7 @@ var ts;
var invalidElement = tryParse(function () { return parseJsxElementOrSelfClosingElement(/*inExpressionContext*/ true); });
if (invalidElement) {
parseErrorAtCurrentToken(ts.Diagnostics.JSX_expressions_must_have_one_parent_element);
- var badNode = createNode(183 /* BinaryExpression */, result.pos);
+ var badNode = createNode(184 /* BinaryExpression */, result.pos);
badNode.end = invalidElement.end;
badNode.left = result;
badNode.right = invalidElement;
@@ -10002,13 +10134,13 @@ var ts;
return result;
}
function parseJsxText() {
- var node = createNode(238 /* JsxText */, scanner.getStartPos());
+ var node = createNode(239 /* JsxText */, scanner.getStartPos());
token = scanner.scanJsxToken();
return finishNode(node);
}
function parseJsxChild() {
switch (token) {
- case 238 /* JsxText */:
+ case 239 /* JsxText */:
return parseJsxText();
case 15 /* OpenBraceToken */:
return parseJsxExpression(/*inExpressionContext*/ false);
@@ -10050,7 +10182,7 @@ var ts;
// Closing tag, so scan the immediately-following text with the JSX scanning instead
// of regular scanning to avoid treating illegal characters (e.g. '#') as immediate
// scanning errors
- node = createNode(237 /* JsxOpeningElement */, fullStart);
+ node = createNode(238 /* JsxOpeningElement */, fullStart);
scanJsxText();
}
else {
@@ -10062,7 +10194,7 @@ var ts;
parseExpected(27 /* GreaterThanToken */, /*diagnostic*/ undefined, /*shouldAdvance*/ false);
scanJsxText();
}
- node = createNode(236 /* JsxSelfClosingElement */, fullStart);
+ node = createNode(237 /* JsxSelfClosingElement */, fullStart);
}
node.tagName = tagName;
node.attributes = attributes;
@@ -10073,7 +10205,7 @@ var ts;
var elementName = parseIdentifierName();
while (parseOptional(21 /* DotToken */)) {
scanJsxIdentifier();
- var node = createNode(135 /* QualifiedName */, elementName.pos);
+ var node = createNode(136 /* QualifiedName */, elementName.pos);
node.left = elementName;
node.right = parseIdentifierName();
elementName = finishNode(node);
@@ -10081,7 +10213,7 @@ var ts;
return elementName;
}
function parseJsxExpression(inExpressionContext) {
- var node = createNode(242 /* JsxExpression */);
+ var node = createNode(243 /* JsxExpression */);
parseExpected(15 /* OpenBraceToken */);
if (token !== 16 /* CloseBraceToken */) {
node.expression = parseAssignmentExpressionOrHigher();
@@ -10100,7 +10232,7 @@ var ts;
return parseJsxSpreadAttribute();
}
scanJsxIdentifier();
- var node = createNode(240 /* JsxAttribute */);
+ var node = createNode(241 /* JsxAttribute */);
node.name = parseIdentifierName();
if (parseOptional(56 /* EqualsToken */)) {
switch (token) {
@@ -10115,7 +10247,7 @@ var ts;
return finishNode(node);
}
function parseJsxSpreadAttribute() {
- var node = createNode(241 /* JsxSpreadAttribute */);
+ var node = createNode(242 /* JsxSpreadAttribute */);
parseExpected(15 /* OpenBraceToken */);
parseExpected(22 /* DotDotDotToken */);
node.expression = parseExpression();
@@ -10123,7 +10255,7 @@ var ts;
return finishNode(node);
}
function parseJsxClosingElement(inExpressionContext) {
- var node = createNode(239 /* JsxClosingElement */);
+ var node = createNode(240 /* JsxClosingElement */);
parseExpected(26 /* LessThanSlashToken */);
node.tagName = parseJsxElementName();
if (inExpressionContext) {
@@ -10136,7 +10268,7 @@ var ts;
return finishNode(node);
}
function parseTypeAssertion() {
- var node = createNode(173 /* TypeAssertionExpression */);
+ var node = createNode(174 /* TypeAssertionExpression */);
parseExpected(25 /* LessThanToken */);
node.type = parseType();
parseExpected(27 /* GreaterThanToken */);
@@ -10147,7 +10279,7 @@ var ts;
while (true) {
var dotToken = parseOptionalToken(21 /* DotToken */);
if (dotToken) {
- var propertyAccess = createNode(168 /* PropertyAccessExpression */, expression.pos);
+ var propertyAccess = createNode(169 /* PropertyAccessExpression */, expression.pos);
propertyAccess.expression = expression;
propertyAccess.dotToken = dotToken;
propertyAccess.name = parseRightSideOfDot(/*allowIdentifierNames*/ true);
@@ -10156,7 +10288,7 @@ var ts;
}
// when in the [Decorator] context, we do not parse ElementAccess as it could be part of a ComputedPropertyName
if (!inDecoratorContext() && parseOptional(19 /* OpenBracketToken */)) {
- var indexedAccess = createNode(169 /* ElementAccessExpression */, expression.pos);
+ var indexedAccess = createNode(170 /* ElementAccessExpression */, expression.pos);
indexedAccess.expression = expression;
// It's not uncommon for a user to write: "new Type[]".
// Check for that common pattern and report a better error message.
@@ -10172,7 +10304,7 @@ var ts;
continue;
}
if (token === 11 /* NoSubstitutionTemplateLiteral */ || token === 12 /* TemplateHead */) {
- var tagExpression = createNode(172 /* TaggedTemplateExpression */, expression.pos);
+ var tagExpression = createNode(173 /* TaggedTemplateExpression */, expression.pos);
tagExpression.tag = expression;
tagExpression.template = token === 11 /* NoSubstitutionTemplateLiteral */
? parseLiteralNode()
@@ -10195,7 +10327,7 @@ var ts;
if (!typeArguments) {
return expression;
}
- var callExpr = createNode(170 /* CallExpression */, expression.pos);
+ var callExpr = createNode(171 /* CallExpression */, expression.pos);
callExpr.expression = expression;
callExpr.typeArguments = typeArguments;
callExpr.arguments = parseArgumentList();
@@ -10203,7 +10335,7 @@ var ts;
continue;
}
else if (token === 17 /* OpenParenToken */) {
- var callExpr = createNode(170 /* CallExpression */, expression.pos);
+ var callExpr = createNode(171 /* CallExpression */, expression.pos);
callExpr.expression = expression;
callExpr.arguments = parseArgumentList();
expression = finishNode(callExpr);
@@ -10313,28 +10445,28 @@ var ts;
return parseIdentifier(ts.Diagnostics.Expression_expected);
}
function parseParenthesizedExpression() {
- var node = createNode(174 /* ParenthesizedExpression */);
+ var node = createNode(175 /* ParenthesizedExpression */);
parseExpected(17 /* OpenParenToken */);
node.expression = allowInAnd(parseExpression);
parseExpected(18 /* CloseParenToken */);
return finishNode(node);
}
function parseSpreadElement() {
- var node = createNode(187 /* SpreadElementExpression */);
+ var node = createNode(188 /* SpreadElementExpression */);
parseExpected(22 /* DotDotDotToken */);
node.expression = parseAssignmentExpressionOrHigher();
return finishNode(node);
}
function parseArgumentOrArrayLiteralElement() {
return token === 22 /* DotDotDotToken */ ? parseSpreadElement() :
- token === 24 /* CommaToken */ ? createNode(189 /* OmittedExpression */) :
+ token === 24 /* CommaToken */ ? createNode(190 /* OmittedExpression */) :
parseAssignmentExpressionOrHigher();
}
function parseArgumentExpression() {
return doOutsideOfContext(disallowInAndDecoratorContext, parseArgumentOrArrayLiteralElement);
}
function parseArrayLiteralExpression() {
- var node = createNode(166 /* ArrayLiteralExpression */);
+ var node = createNode(167 /* ArrayLiteralExpression */);
parseExpected(19 /* OpenBracketToken */);
if (scanner.hasPrecedingLineBreak())
node.flags |= 1024 /* MultiLine */;
@@ -10344,10 +10476,10 @@ var ts;
}
function tryParseAccessorDeclaration(fullStart, decorators, modifiers) {
if (parseContextualModifier(123 /* GetKeyword */)) {
- return parseAccessorDeclaration(145 /* GetAccessor */, fullStart, decorators, modifiers);
+ return parseAccessorDeclaration(146 /* GetAccessor */, fullStart, decorators, modifiers);
}
else if (parseContextualModifier(129 /* SetKeyword */)) {
- return parseAccessorDeclaration(146 /* SetAccessor */, fullStart, decorators, modifiers);
+ return parseAccessorDeclaration(147 /* SetAccessor */, fullStart, decorators, modifiers);
}
return undefined;
}
@@ -10374,7 +10506,7 @@ var ts;
// this is necessary because ObjectLiteral productions are also used to cover grammar for ObjectAssignmentPattern
var isShorthandPropertyAssignment = tokenIsIdentifier && (token === 24 /* CommaToken */ || token === 16 /* CloseBraceToken */ || token === 56 /* EqualsToken */);
if (isShorthandPropertyAssignment) {
- var shorthandDeclaration = createNode(248 /* ShorthandPropertyAssignment */, fullStart);
+ var shorthandDeclaration = createNode(249 /* ShorthandPropertyAssignment */, fullStart);
shorthandDeclaration.name = propertyName;
shorthandDeclaration.questionToken = questionToken;
var equalsToken = parseOptionalToken(56 /* EqualsToken */);
@@ -10385,7 +10517,7 @@ var ts;
return finishNode(shorthandDeclaration);
}
else {
- var propertyAssignment = createNode(247 /* PropertyAssignment */, fullStart);
+ var propertyAssignment = createNode(248 /* PropertyAssignment */, fullStart);
propertyAssignment.modifiers = modifiers;
propertyAssignment.name = propertyName;
propertyAssignment.questionToken = questionToken;
@@ -10395,7 +10527,7 @@ var ts;
}
}
function parseObjectLiteralExpression() {
- var node = createNode(167 /* ObjectLiteralExpression */);
+ var node = createNode(168 /* ObjectLiteralExpression */);
parseExpected(15 /* OpenBraceToken */);
if (scanner.hasPrecedingLineBreak()) {
node.flags |= 1024 /* MultiLine */;
@@ -10414,7 +10546,7 @@ var ts;
if (saveDecoratorContext) {
setDecoratorContext(/*val*/ false);
}
- var node = createNode(175 /* FunctionExpression */);
+ var node = createNode(176 /* FunctionExpression */);
setModifiers(node, parseModifiers());
parseExpected(87 /* FunctionKeyword */);
node.asteriskToken = parseOptionalToken(37 /* AsteriskToken */);
@@ -10436,7 +10568,7 @@ var ts;
return isIdentifier() ? parseIdentifier() : undefined;
}
function parseNewExpression() {
- var node = createNode(171 /* NewExpression */);
+ var node = createNode(172 /* NewExpression */);
parseExpected(92 /* NewKeyword */);
node.expression = parseMemberExpressionOrHigher();
node.typeArguments = tryParse(parseTypeArgumentsInExpression);
@@ -10447,7 +10579,7 @@ var ts;
}
// STATEMENTS
function parseBlock(ignoreMissingOpenBrace, diagnosticMessage) {
- var node = createNode(194 /* Block */);
+ var node = createNode(195 /* Block */);
if (parseExpected(15 /* OpenBraceToken */, diagnosticMessage) || ignoreMissingOpenBrace) {
node.statements = parseList(1 /* BlockStatements */, parseStatement);
parseExpected(16 /* CloseBraceToken */);
@@ -10477,12 +10609,12 @@ var ts;
return block;
}
function parseEmptyStatement() {
- var node = createNode(196 /* EmptyStatement */);
+ var node = createNode(197 /* EmptyStatement */);
parseExpected(23 /* SemicolonToken */);
return finishNode(node);
}
function parseIfStatement() {
- var node = createNode(198 /* IfStatement */);
+ var node = createNode(199 /* IfStatement */);
parseExpected(88 /* IfKeyword */);
parseExpected(17 /* OpenParenToken */);
node.expression = allowInAnd(parseExpression);
@@ -10492,7 +10624,7 @@ var ts;
return finishNode(node);
}
function parseDoStatement() {
- var node = createNode(199 /* DoStatement */);
+ var node = createNode(200 /* DoStatement */);
parseExpected(79 /* DoKeyword */);
node.statement = parseStatement();
parseExpected(104 /* WhileKeyword */);
@@ -10507,7 +10639,7 @@ var ts;
return finishNode(node);
}
function parseWhileStatement() {
- var node = createNode(200 /* WhileStatement */);
+ var node = createNode(201 /* WhileStatement */);
parseExpected(104 /* WhileKeyword */);
parseExpected(17 /* OpenParenToken */);
node.expression = allowInAnd(parseExpression);
@@ -10530,21 +10662,21 @@ var ts;
}
var forOrForInOrForOfStatement;
if (parseOptional(90 /* InKeyword */)) {
- var forInStatement = createNode(202 /* ForInStatement */, pos);
+ var forInStatement = createNode(203 /* ForInStatement */, pos);
forInStatement.initializer = initializer;
forInStatement.expression = allowInAnd(parseExpression);
parseExpected(18 /* CloseParenToken */);
forOrForInOrForOfStatement = forInStatement;
}
- else if (parseOptional(134 /* OfKeyword */)) {
- var forOfStatement = createNode(203 /* ForOfStatement */, pos);
+ else if (parseOptional(135 /* OfKeyword */)) {
+ var forOfStatement = createNode(204 /* ForOfStatement */, pos);
forOfStatement.initializer = initializer;
forOfStatement.expression = allowInAnd(parseAssignmentExpressionOrHigher);
parseExpected(18 /* CloseParenToken */);
forOrForInOrForOfStatement = forOfStatement;
}
else {
- var forStatement = createNode(201 /* ForStatement */, pos);
+ var forStatement = createNode(202 /* ForStatement */, pos);
forStatement.initializer = initializer;
parseExpected(23 /* SemicolonToken */);
if (token !== 23 /* SemicolonToken */ && token !== 18 /* CloseParenToken */) {
@@ -10562,7 +10694,7 @@ var ts;
}
function parseBreakOrContinueStatement(kind) {
var node = createNode(kind);
- parseExpected(kind === 205 /* BreakStatement */ ? 70 /* BreakKeyword */ : 75 /* ContinueKeyword */);
+ parseExpected(kind === 206 /* BreakStatement */ ? 70 /* BreakKeyword */ : 75 /* ContinueKeyword */);
if (!canParseSemicolon()) {
node.label = parseIdentifier();
}
@@ -10570,7 +10702,7 @@ var ts;
return finishNode(node);
}
function parseReturnStatement() {
- var node = createNode(206 /* ReturnStatement */);
+ var node = createNode(207 /* ReturnStatement */);
parseExpected(94 /* ReturnKeyword */);
if (!canParseSemicolon()) {
node.expression = allowInAnd(parseExpression);
@@ -10579,7 +10711,7 @@ var ts;
return finishNode(node);
}
function parseWithStatement() {
- var node = createNode(207 /* WithStatement */);
+ var node = createNode(208 /* WithStatement */);
parseExpected(105 /* WithKeyword */);
parseExpected(17 /* OpenParenToken */);
node.expression = allowInAnd(parseExpression);
@@ -10588,7 +10720,7 @@ var ts;
return finishNode(node);
}
function parseCaseClause() {
- var node = createNode(243 /* CaseClause */);
+ var node = createNode(244 /* CaseClause */);
parseExpected(71 /* CaseKeyword */);
node.expression = allowInAnd(parseExpression);
parseExpected(54 /* ColonToken */);
@@ -10596,7 +10728,7 @@ var ts;
return finishNode(node);
}
function parseDefaultClause() {
- var node = createNode(244 /* DefaultClause */);
+ var node = createNode(245 /* DefaultClause */);
parseExpected(77 /* DefaultKeyword */);
parseExpected(54 /* ColonToken */);
node.statements = parseList(3 /* SwitchClauseStatements */, parseStatement);
@@ -10606,12 +10738,12 @@ var ts;
return token === 71 /* CaseKeyword */ ? parseCaseClause() : parseDefaultClause();
}
function parseSwitchStatement() {
- var node = createNode(208 /* SwitchStatement */);
+ var node = createNode(209 /* SwitchStatement */);
parseExpected(96 /* SwitchKeyword */);
parseExpected(17 /* OpenParenToken */);
node.expression = allowInAnd(parseExpression);
parseExpected(18 /* CloseParenToken */);
- var caseBlock = createNode(222 /* CaseBlock */, scanner.getStartPos());
+ var caseBlock = createNode(223 /* CaseBlock */, scanner.getStartPos());
parseExpected(15 /* OpenBraceToken */);
caseBlock.clauses = parseList(2 /* SwitchClauses */, parseCaseOrDefaultClause);
parseExpected(16 /* CloseBraceToken */);
@@ -10626,7 +10758,7 @@ var ts;
// directly as that might consume an expression on the following line.
// We just return 'undefined' in that case. The actual error will be reported in the
// grammar walker.
- var node = createNode(210 /* ThrowStatement */);
+ var node = createNode(211 /* ThrowStatement */);
parseExpected(98 /* ThrowKeyword */);
node.expression = scanner.hasPrecedingLineBreak() ? undefined : allowInAnd(parseExpression);
parseSemicolon();
@@ -10634,7 +10766,7 @@ var ts;
}
// TODO: Review for error recovery
function parseTryStatement() {
- var node = createNode(211 /* TryStatement */);
+ var node = createNode(212 /* TryStatement */);
parseExpected(100 /* TryKeyword */);
node.tryBlock = parseBlock(/*ignoreMissingOpenBrace*/ false);
node.catchClause = token === 72 /* CatchKeyword */ ? parseCatchClause() : undefined;
@@ -10647,7 +10779,7 @@ var ts;
return finishNode(node);
}
function parseCatchClause() {
- var result = createNode(246 /* CatchClause */);
+ var result = createNode(247 /* CatchClause */);
parseExpected(72 /* CatchKeyword */);
if (parseExpected(17 /* OpenParenToken */)) {
result.variableDeclaration = parseVariableDeclaration();
@@ -10657,7 +10789,7 @@ var ts;
return finishNode(result);
}
function parseDebuggerStatement() {
- var node = createNode(212 /* DebuggerStatement */);
+ var node = createNode(213 /* DebuggerStatement */);
parseExpected(76 /* DebuggerKeyword */);
parseSemicolon();
return finishNode(node);
@@ -10669,13 +10801,13 @@ var ts;
var fullStart = scanner.getStartPos();
var expression = allowInAnd(parseExpression);
if (expression.kind === 69 /* Identifier */ && parseOptional(54 /* ColonToken */)) {
- var labeledStatement = createNode(209 /* LabeledStatement */, fullStart);
+ var labeledStatement = createNode(210 /* LabeledStatement */, fullStart);
labeledStatement.label = expression;
labeledStatement.statement = parseStatement();
return finishNode(labeledStatement);
}
else {
- var expressionStatement = createNode(197 /* ExpressionStatement */, fullStart);
+ var expressionStatement = createNode(198 /* ExpressionStatement */, fullStart);
expressionStatement.expression = expression;
parseSemicolon();
return finishNode(expressionStatement);
@@ -10742,6 +10874,8 @@ var ts;
return false;
}
continue;
+ case 134 /* GlobalKeyword */:
+ return nextToken() === 15 /* OpenBraceToken */;
case 89 /* ImportKeyword */:
nextToken();
return token === 9 /* StringLiteral */ || token === 37 /* AsteriskToken */ ||
@@ -10801,6 +10935,7 @@ var ts;
case 125 /* ModuleKeyword */:
case 126 /* NamespaceKeyword */:
case 132 /* TypeKeyword */:
+ case 134 /* GlobalKeyword */:
// When these don't start a declaration, they're an identifier in an expression statement
return true;
case 112 /* PublicKeyword */:
@@ -10849,9 +10984,9 @@ var ts;
case 86 /* ForKeyword */:
return parseForOrForInOrForOfStatement();
case 75 /* ContinueKeyword */:
- return parseBreakOrContinueStatement(204 /* ContinueStatement */);
+ return parseBreakOrContinueStatement(205 /* ContinueStatement */);
case 70 /* BreakKeyword */:
- return parseBreakOrContinueStatement(205 /* BreakStatement */);
+ return parseBreakOrContinueStatement(206 /* BreakStatement */);
case 94 /* ReturnKeyword */:
return parseReturnStatement();
case 105 /* WithKeyword */:
@@ -10884,6 +11019,7 @@ var ts;
case 112 /* PublicKeyword */:
case 115 /* AbstractKeyword */:
case 113 /* StaticKeyword */:
+ case 134 /* GlobalKeyword */:
if (isStartOfDeclaration()) {
return parseDeclaration();
}
@@ -10910,6 +11046,7 @@ var ts;
return parseTypeAliasDeclaration(fullStart, decorators, modifiers);
case 81 /* EnumKeyword */:
return parseEnumDeclaration(fullStart, decorators, modifiers);
+ case 134 /* GlobalKeyword */:
case 125 /* ModuleKeyword */:
case 126 /* NamespaceKeyword */:
return parseModuleDeclaration(fullStart, decorators, modifiers);
@@ -10924,7 +11061,7 @@ var ts;
if (decorators || modifiers) {
// We reached this point because we encountered decorators and/or modifiers and assumed a declaration
// would follow. For recovery and error reporting purposes, return an incomplete declaration.
- var node = createMissingNode(233 /* MissingDeclaration */, /*reportAtCurrentPosition*/ true, ts.Diagnostics.Declaration_expected);
+ var node = createMissingNode(234 /* MissingDeclaration */, /*reportAtCurrentPosition*/ true, ts.Diagnostics.Declaration_expected);
node.pos = fullStart;
node.decorators = decorators;
setModifiers(node, modifiers);
@@ -10946,16 +11083,16 @@ var ts;
// DECLARATIONS
function parseArrayBindingElement() {
if (token === 24 /* CommaToken */) {
- return createNode(189 /* OmittedExpression */);
+ return createNode(190 /* OmittedExpression */);
}
- var node = createNode(165 /* BindingElement */);
+ var node = createNode(166 /* BindingElement */);
node.dotDotDotToken = parseOptionalToken(22 /* DotDotDotToken */);
node.name = parseIdentifierOrPattern();
node.initializer = parseBindingElementInitializer(/*inParameter*/ false);
return finishNode(node);
}
function parseObjectBindingElement() {
- var node = createNode(165 /* BindingElement */);
+ var node = createNode(166 /* BindingElement */);
var tokenIsIdentifier = isIdentifier();
var propertyName = parsePropertyName();
if (tokenIsIdentifier && token !== 54 /* ColonToken */) {
@@ -10970,14 +11107,14 @@ var ts;
return finishNode(node);
}
function parseObjectBindingPattern() {
- var node = createNode(163 /* ObjectBindingPattern */);
+ var node = createNode(164 /* ObjectBindingPattern */);
parseExpected(15 /* OpenBraceToken */);
node.elements = parseDelimitedList(9 /* ObjectBindingElements */, parseObjectBindingElement);
parseExpected(16 /* CloseBraceToken */);
return finishNode(node);
}
function parseArrayBindingPattern() {
- var node = createNode(164 /* ArrayBindingPattern */);
+ var node = createNode(165 /* ArrayBindingPattern */);
parseExpected(19 /* OpenBracketToken */);
node.elements = parseDelimitedList(10 /* ArrayBindingElements */, parseArrayBindingElement);
parseExpected(20 /* CloseBracketToken */);
@@ -10996,7 +11133,7 @@ var ts;
return parseIdentifier();
}
function parseVariableDeclaration() {
- var node = createNode(213 /* VariableDeclaration */);
+ var node = createNode(214 /* VariableDeclaration */);
node.name = parseIdentifierOrPattern();
node.type = parseTypeAnnotation();
if (!isInOrOfKeyword(token)) {
@@ -11005,7 +11142,7 @@ var ts;
return finishNode(node);
}
function parseVariableDeclarationList(inForStatementInitializer) {
- var node = createNode(214 /* VariableDeclarationList */);
+ var node = createNode(215 /* VariableDeclarationList */);
switch (token) {
case 102 /* VarKeyword */:
break;
@@ -11028,7 +11165,7 @@ var ts;
// So we need to look ahead to determine if 'of' should be treated as a keyword in
// this context.
// The checker will then give an error that there is an empty declaration list.
- if (token === 134 /* OfKeyword */ && lookAhead(canFollowContextualOfKeyword)) {
+ if (token === 135 /* OfKeyword */ && lookAhead(canFollowContextualOfKeyword)) {
node.declarations = createMissingList();
}
else {
@@ -11043,7 +11180,7 @@ var ts;
return nextTokenIsIdentifier() && nextToken() === 18 /* CloseParenToken */;
}
function parseVariableStatement(fullStart, decorators, modifiers) {
- var node = createNode(195 /* VariableStatement */, fullStart);
+ var node = createNode(196 /* VariableStatement */, fullStart);
node.decorators = decorators;
setModifiers(node, modifiers);
node.declarationList = parseVariableDeclarationList(/*inForStatementInitializer*/ false);
@@ -11051,7 +11188,7 @@ var ts;
return finishNode(node);
}
function parseFunctionDeclaration(fullStart, decorators, modifiers) {
- var node = createNode(215 /* FunctionDeclaration */, fullStart);
+ var node = createNode(216 /* FunctionDeclaration */, fullStart);
node.decorators = decorators;
setModifiers(node, modifiers);
parseExpected(87 /* FunctionKeyword */);
@@ -11064,7 +11201,7 @@ var ts;
return finishNode(node);
}
function parseConstructorDeclaration(pos, decorators, modifiers) {
- var node = createNode(144 /* Constructor */, pos);
+ var node = createNode(145 /* Constructor */, pos);
node.decorators = decorators;
setModifiers(node, modifiers);
parseExpected(121 /* ConstructorKeyword */);
@@ -11073,7 +11210,7 @@ var ts;
return finishNode(node);
}
function parseMethodDeclaration(fullStart, decorators, modifiers, asteriskToken, name, questionToken, diagnosticMessage) {
- var method = createNode(143 /* MethodDeclaration */, fullStart);
+ var method = createNode(144 /* MethodDeclaration */, fullStart);
method.decorators = decorators;
setModifiers(method, modifiers);
method.asteriskToken = asteriskToken;
@@ -11086,7 +11223,7 @@ var ts;
return finishNode(method);
}
function parsePropertyDeclaration(fullStart, decorators, modifiers, name, questionToken) {
- var property = createNode(141 /* PropertyDeclaration */, fullStart);
+ var property = createNode(142 /* PropertyDeclaration */, fullStart);
property.decorators = decorators;
setModifiers(property, modifiers);
property.name = name;
@@ -11212,7 +11349,7 @@ var ts;
decorators = [];
decorators.pos = decoratorStart;
}
- var decorator = createNode(139 /* Decorator */, decoratorStart);
+ var decorator = createNode(140 /* Decorator */, decoratorStart);
decorator.expression = doInDecoratorContext(parseLeftHandSideExpressionOrHigher);
decorators.push(finishNode(decorator));
}
@@ -11277,7 +11414,7 @@ var ts;
}
function parseClassElement() {
if (token === 23 /* SemicolonToken */) {
- var result = createNode(193 /* SemicolonClassElement */);
+ var result = createNode(194 /* SemicolonClassElement */);
nextToken();
return finishNode(result);
}
@@ -11315,10 +11452,10 @@ var ts;
return parseClassDeclarationOrExpression(
/*fullStart*/ scanner.getStartPos(),
/*decorators*/ undefined,
- /*modifiers*/ undefined, 188 /* ClassExpression */);
+ /*modifiers*/ undefined, 189 /* ClassExpression */);
}
function parseClassDeclaration(fullStart, decorators, modifiers) {
- return parseClassDeclarationOrExpression(fullStart, decorators, modifiers, 216 /* ClassDeclaration */);
+ return parseClassDeclarationOrExpression(fullStart, decorators, modifiers, 217 /* ClassDeclaration */);
}
function parseClassDeclarationOrExpression(fullStart, decorators, modifiers, kind) {
var node = createNode(kind, fullStart);
@@ -11362,7 +11499,7 @@ var ts;
}
function parseHeritageClause() {
if (token === 83 /* ExtendsKeyword */ || token === 106 /* ImplementsKeyword */) {
- var node = createNode(245 /* HeritageClause */);
+ var node = createNode(246 /* HeritageClause */);
node.token = token;
nextToken();
node.types = parseDelimitedList(7 /* HeritageClauseElement */, parseExpressionWithTypeArguments);
@@ -11371,7 +11508,7 @@ var ts;
return undefined;
}
function parseExpressionWithTypeArguments() {
- var node = createNode(190 /* ExpressionWithTypeArguments */);
+ var node = createNode(191 /* ExpressionWithTypeArguments */);
node.expression = parseLeftHandSideExpressionOrHigher();
if (token === 25 /* LessThanToken */) {
node.typeArguments = parseBracketedList(18 /* TypeArguments */, parseType, 25 /* LessThanToken */, 27 /* GreaterThanToken */);
@@ -11385,7 +11522,7 @@ var ts;
return parseList(5 /* ClassMembers */, parseClassElement);
}
function parseInterfaceDeclaration(fullStart, decorators, modifiers) {
- var node = createNode(217 /* InterfaceDeclaration */, fullStart);
+ var node = createNode(218 /* InterfaceDeclaration */, fullStart);
node.decorators = decorators;
setModifiers(node, modifiers);
parseExpected(107 /* InterfaceKeyword */);
@@ -11396,7 +11533,7 @@ var ts;
return finishNode(node);
}
function parseTypeAliasDeclaration(fullStart, decorators, modifiers) {
- var node = createNode(218 /* TypeAliasDeclaration */, fullStart);
+ var node = createNode(219 /* TypeAliasDeclaration */, fullStart);
node.decorators = decorators;
setModifiers(node, modifiers);
parseExpected(132 /* TypeKeyword */);
@@ -11412,13 +11549,13 @@ var ts;
// ConstantEnumMemberSection, which starts at the beginning of an enum declaration
// or any time an integer literal initializer is encountered.
function parseEnumMember() {
- var node = createNode(249 /* EnumMember */, scanner.getStartPos());
+ var node = createNode(250 /* EnumMember */, scanner.getStartPos());
node.name = parsePropertyName();
node.initializer = allowInAnd(parseNonParameterInitializer);
return finishNode(node);
}
function parseEnumDeclaration(fullStart, decorators, modifiers) {
- var node = createNode(219 /* EnumDeclaration */, fullStart);
+ var node = createNode(220 /* EnumDeclaration */, fullStart);
node.decorators = decorators;
setModifiers(node, modifiers);
parseExpected(81 /* EnumKeyword */);
@@ -11433,7 +11570,7 @@ var ts;
return finishNode(node);
}
function parseModuleBlock() {
- var node = createNode(221 /* ModuleBlock */, scanner.getStartPos());
+ var node = createNode(222 /* ModuleBlock */, scanner.getStartPos());
if (parseExpected(15 /* OpenBraceToken */)) {
node.statements = parseList(1 /* BlockStatements */, parseStatement);
parseExpected(16 /* CloseBraceToken */);
@@ -11444,7 +11581,7 @@ var ts;
return finishNode(node);
}
function parseModuleOrNamespaceDeclaration(fullStart, decorators, modifiers, flags) {
- var node = createNode(220 /* ModuleDeclaration */, fullStart);
+ var node = createNode(221 /* ModuleDeclaration */, fullStart);
// If we are parsing a dotted namespace name, we want to
// propagate the 'Namespace' flag across the names if set.
var namespaceFlag = flags & 65536 /* Namespace */;
@@ -11458,16 +11595,27 @@ var ts;
return finishNode(node);
}
function parseAmbientExternalModuleDeclaration(fullStart, decorators, modifiers) {
- var node = createNode(220 /* ModuleDeclaration */, fullStart);
+ var node = createNode(221 /* ModuleDeclaration */, fullStart);
node.decorators = decorators;
setModifiers(node, modifiers);
- node.name = parseLiteralNode(/*internName*/ true);
+ if (token === 134 /* GlobalKeyword */) {
+ // parse 'global' as name of global scope augmentation
+ node.name = parseIdentifier();
+ node.flags |= 2097152 /* GlobalAugmentation */;
+ }
+ else {
+ node.name = parseLiteralNode(/*internName*/ true);
+ }
node.body = parseModuleBlock();
return finishNode(node);
}
function parseModuleDeclaration(fullStart, decorators, modifiers) {
var flags = modifiers ? modifiers.flags : 0;
- if (parseOptional(126 /* NamespaceKeyword */)) {
+ if (token === 134 /* GlobalKeyword */) {
+ // global augmentation
+ return parseAmbientExternalModuleDeclaration(fullStart, decorators, modifiers);
+ }
+ else if (parseOptional(126 /* NamespaceKeyword */)) {
flags |= 65536 /* Namespace */;
}
else {
@@ -11498,7 +11646,7 @@ var ts;
// ImportEquals declaration of type:
// import x = require("mod"); or
// import x = M.x;
- var importEqualsDeclaration = createNode(223 /* ImportEqualsDeclaration */, fullStart);
+ var importEqualsDeclaration = createNode(224 /* ImportEqualsDeclaration */, fullStart);
importEqualsDeclaration.decorators = decorators;
setModifiers(importEqualsDeclaration, modifiers);
importEqualsDeclaration.name = identifier;
@@ -11509,7 +11657,7 @@ var ts;
}
}
// Import statement
- var importDeclaration = createNode(224 /* ImportDeclaration */, fullStart);
+ var importDeclaration = createNode(225 /* ImportDeclaration */, fullStart);
importDeclaration.decorators = decorators;
setModifiers(importDeclaration, modifiers);
// ImportDeclaration:
@@ -11532,7 +11680,7 @@ var ts;
// NamedImports
// ImportedDefaultBinding, NameSpaceImport
// ImportedDefaultBinding, NamedImports
- var importClause = createNode(225 /* ImportClause */, fullStart);
+ var importClause = createNode(226 /* ImportClause */, fullStart);
if (identifier) {
// ImportedDefaultBinding:
// ImportedBinding
@@ -11542,7 +11690,7 @@ var ts;
// parse namespace or named imports
if (!importClause.name ||
parseOptional(24 /* CommaToken */)) {
- importClause.namedBindings = token === 37 /* AsteriskToken */ ? parseNamespaceImport() : parseNamedImportsOrExports(227 /* NamedImports */);
+ importClause.namedBindings = token === 37 /* AsteriskToken */ ? parseNamespaceImport() : parseNamedImportsOrExports(228 /* NamedImports */);
}
return finishNode(importClause);
}
@@ -11552,7 +11700,7 @@ var ts;
: parseEntityName(/*allowReservedWords*/ false);
}
function parseExternalModuleReference() {
- var node = createNode(234 /* ExternalModuleReference */);
+ var node = createNode(235 /* ExternalModuleReference */);
parseExpected(127 /* RequireKeyword */);
parseExpected(17 /* OpenParenToken */);
node.expression = parseModuleSpecifier();
@@ -11575,7 +11723,7 @@ var ts;
function parseNamespaceImport() {
// NameSpaceImport:
// * as ImportedBinding
- var namespaceImport = createNode(226 /* NamespaceImport */);
+ var namespaceImport = createNode(227 /* NamespaceImport */);
parseExpected(37 /* AsteriskToken */);
parseExpected(116 /* AsKeyword */);
namespaceImport.name = parseIdentifier();
@@ -11590,14 +11738,14 @@ var ts;
// ImportsList:
// ImportSpecifier
// ImportsList, ImportSpecifier
- node.elements = parseBracketedList(21 /* ImportOrExportSpecifiers */, kind === 227 /* NamedImports */ ? parseImportSpecifier : parseExportSpecifier, 15 /* OpenBraceToken */, 16 /* CloseBraceToken */);
+ node.elements = parseBracketedList(21 /* ImportOrExportSpecifiers */, kind === 228 /* NamedImports */ ? parseImportSpecifier : parseExportSpecifier, 15 /* OpenBraceToken */, 16 /* CloseBraceToken */);
return finishNode(node);
}
function parseExportSpecifier() {
- return parseImportOrExportSpecifier(232 /* ExportSpecifier */);
+ return parseImportOrExportSpecifier(233 /* ExportSpecifier */);
}
function parseImportSpecifier() {
- return parseImportOrExportSpecifier(228 /* ImportSpecifier */);
+ return parseImportOrExportSpecifier(229 /* ImportSpecifier */);
}
function parseImportOrExportSpecifier(kind) {
var node = createNode(kind);
@@ -11622,14 +11770,14 @@ var ts;
else {
node.name = identifierName;
}
- if (kind === 228 /* ImportSpecifier */ && checkIdentifierIsKeyword) {
+ if (kind === 229 /* ImportSpecifier */ && checkIdentifierIsKeyword) {
// Report error identifier expected
parseErrorAtPosition(checkIdentifierStart, checkIdentifierEnd - checkIdentifierStart, ts.Diagnostics.Identifier_expected);
}
return finishNode(node);
}
function parseExportDeclaration(fullStart, decorators, modifiers) {
- var node = createNode(230 /* ExportDeclaration */, fullStart);
+ var node = createNode(231 /* ExportDeclaration */, fullStart);
node.decorators = decorators;
setModifiers(node, modifiers);
if (parseOptional(37 /* AsteriskToken */)) {
@@ -11637,7 +11785,7 @@ var ts;
node.moduleSpecifier = parseModuleSpecifier();
}
else {
- node.exportClause = parseNamedImportsOrExports(231 /* NamedExports */);
+ node.exportClause = parseNamedImportsOrExports(232 /* NamedExports */);
// It is not uncommon to accidentally omit the 'from' keyword. Additionally, in editing scenarios,
// the 'from' keyword can be parsed as a named export when the export clause is unterminated (i.e. `export { from "moduleName";`)
// If we don't have a 'from' keyword, see if we have a string literal such that ASI won't take effect.
@@ -11650,7 +11798,7 @@ var ts;
return finishNode(node);
}
function parseExportAssignment(fullStart, decorators, modifiers) {
- var node = createNode(229 /* ExportAssignment */, fullStart);
+ var node = createNode(230 /* ExportAssignment */, fullStart);
node.decorators = decorators;
setModifiers(node, modifiers);
if (parseOptional(56 /* EqualsToken */)) {
@@ -11725,10 +11873,10 @@ var ts;
function setExternalModuleIndicator(sourceFile) {
sourceFile.externalModuleIndicator = ts.forEach(sourceFile.statements, function (node) {
return node.flags & 2 /* Export */
- || node.kind === 223 /* ImportEqualsDeclaration */ && node.moduleReference.kind === 234 /* ExternalModuleReference */
- || node.kind === 224 /* ImportDeclaration */
- || node.kind === 229 /* ExportAssignment */
- || node.kind === 230 /* ExportDeclaration */
+ || node.kind === 224 /* ImportEqualsDeclaration */ && node.moduleReference.kind === 235 /* ExternalModuleReference */
+ || node.kind === 225 /* ImportDeclaration */
+ || node.kind === 230 /* ExportAssignment */
+ || node.kind === 231 /* ExportDeclaration */
? node
: undefined;
});
@@ -11803,7 +11951,7 @@ var ts;
scanner.setText(sourceText, start, length);
// Prime the first token for us to start processing.
token = nextToken();
- var result = createNode(251 /* JSDocTypeExpression */);
+ var result = createNode(252 /* JSDocTypeExpression */);
parseExpected(15 /* OpenBraceToken */);
result.type = parseJSDocTopLevelType();
parseExpected(16 /* CloseBraceToken */);
@@ -11814,12 +11962,12 @@ var ts;
function parseJSDocTopLevelType() {
var type = parseJSDocType();
if (token === 47 /* BarToken */) {
- var unionType = createNode(255 /* JSDocUnionType */, type.pos);
+ var unionType = createNode(256 /* JSDocUnionType */, type.pos);
unionType.types = parseJSDocTypeList(type);
type = finishNode(unionType);
}
if (token === 56 /* EqualsToken */) {
- var optionalType = createNode(262 /* JSDocOptionalType */, type.pos);
+ var optionalType = createNode(263 /* JSDocOptionalType */, type.pos);
nextToken();
optionalType.type = type;
type = finishNode(optionalType);
@@ -11830,20 +11978,20 @@ var ts;
var type = parseBasicTypeExpression();
while (true) {
if (token === 19 /* OpenBracketToken */) {
- var arrayType = createNode(254 /* JSDocArrayType */, type.pos);
+ var arrayType = createNode(255 /* JSDocArrayType */, type.pos);
arrayType.elementType = type;
nextToken();
parseExpected(20 /* CloseBracketToken */);
type = finishNode(arrayType);
}
else if (token === 53 /* QuestionToken */) {
- var nullableType = createNode(257 /* JSDocNullableType */, type.pos);
+ var nullableType = createNode(258 /* JSDocNullableType */, type.pos);
nullableType.type = type;
nextToken();
type = finishNode(nullableType);
}
else if (token === 49 /* ExclamationToken */) {
- var nonNullableType = createNode(258 /* JSDocNonNullableType */, type.pos);
+ var nonNullableType = createNode(259 /* JSDocNonNullableType */, type.pos);
nonNullableType.type = type;
nextToken();
type = finishNode(nonNullableType);
@@ -11888,27 +12036,27 @@ var ts;
return parseJSDocTypeReference();
}
function parseJSDocThisType() {
- var result = createNode(266 /* JSDocThisType */);
+ var result = createNode(267 /* JSDocThisType */);
nextToken();
parseExpected(54 /* ColonToken */);
result.type = parseJSDocType();
return finishNode(result);
}
function parseJSDocConstructorType() {
- var result = createNode(265 /* JSDocConstructorType */);
+ var result = createNode(266 /* JSDocConstructorType */);
nextToken();
parseExpected(54 /* ColonToken */);
result.type = parseJSDocType();
return finishNode(result);
}
function parseJSDocVariadicType() {
- var result = createNode(264 /* JSDocVariadicType */);
+ var result = createNode(265 /* JSDocVariadicType */);
nextToken();
result.type = parseJSDocType();
return finishNode(result);
}
function parseJSDocFunctionType() {
- var result = createNode(263 /* JSDocFunctionType */);
+ var result = createNode(264 /* JSDocFunctionType */);
nextToken();
parseExpected(17 /* OpenParenToken */);
result.parameters = parseDelimitedList(22 /* JSDocFunctionParameters */, parseJSDocParameter);
@@ -11921,12 +12069,12 @@ var ts;
return finishNode(result);
}
function parseJSDocParameter() {
- var parameter = createNode(138 /* Parameter */);
+ var parameter = createNode(139 /* Parameter */);
parameter.type = parseJSDocType();
return finishNode(parameter);
}
function parseJSDocTypeReference() {
- var result = createNode(261 /* JSDocTypeReference */);
+ var result = createNode(262 /* JSDocTypeReference */);
result.name = parseSimplePropertyName();
while (parseOptional(21 /* DotToken */)) {
if (token === 25 /* LessThanToken */) {
@@ -11956,13 +12104,13 @@ var ts;
}
}
function parseQualifiedName(left) {
- var result = createNode(135 /* QualifiedName */, left.pos);
+ var result = createNode(136 /* QualifiedName */, left.pos);
result.left = left;
result.right = parseIdentifierName();
return finishNode(result);
}
function parseJSDocRecordType() {
- var result = createNode(259 /* JSDocRecordType */);
+ var result = createNode(260 /* JSDocRecordType */);
nextToken();
result.members = parseDelimitedList(24 /* JSDocRecordMembers */, parseJSDocRecordMember);
checkForTrailingComma(result.members);
@@ -11970,7 +12118,7 @@ var ts;
return finishNode(result);
}
function parseJSDocRecordMember() {
- var result = createNode(260 /* JSDocRecordMember */);
+ var result = createNode(261 /* JSDocRecordMember */);
result.name = parseSimplePropertyName();
if (token === 54 /* ColonToken */) {
nextToken();
@@ -11979,13 +12127,13 @@ var ts;
return finishNode(result);
}
function parseJSDocNonNullableType() {
- var result = createNode(258 /* JSDocNonNullableType */);
+ var result = createNode(259 /* JSDocNonNullableType */);
nextToken();
result.type = parseJSDocType();
return finishNode(result);
}
function parseJSDocTupleType() {
- var result = createNode(256 /* JSDocTupleType */);
+ var result = createNode(257 /* JSDocTupleType */);
nextToken();
result.types = parseDelimitedList(25 /* JSDocTupleTypes */, parseJSDocType);
checkForTrailingComma(result.types);
@@ -11999,7 +12147,7 @@ var ts;
}
}
function parseJSDocUnionType() {
- var result = createNode(255 /* JSDocUnionType */);
+ var result = createNode(256 /* JSDocUnionType */);
nextToken();
result.types = parseJSDocTypeList(parseJSDocType());
parseExpected(18 /* CloseParenToken */);
@@ -12017,7 +12165,7 @@ var ts;
return types;
}
function parseJSDocAllType() {
- var result = createNode(252 /* JSDocAllType */);
+ var result = createNode(253 /* JSDocAllType */);
nextToken();
return finishNode(result);
}
@@ -12040,11 +12188,11 @@ var ts;
token === 27 /* GreaterThanToken */ ||
token === 56 /* EqualsToken */ ||
token === 47 /* BarToken */) {
- var result = createNode(253 /* JSDocUnknownType */, pos);
+ var result = createNode(254 /* JSDocUnknownType */, pos);
return finishNode(result);
}
else {
- var result = createNode(257 /* JSDocNullableType */, pos);
+ var result = createNode(258 /* JSDocNullableType */, pos);
result.type = parseJSDocType();
return finishNode(result);
}
@@ -12132,7 +12280,7 @@ var ts;
if (!tags) {
return undefined;
}
- var result = createNode(267 /* JSDocComment */, start);
+ var result = createNode(268 /* JSDocComment */, start);
result.tags = tags;
return finishNode(result, end);
}
@@ -12169,7 +12317,7 @@ var ts;
return undefined;
}
function handleUnknownTag(atToken, tagName) {
- var result = createNode(268 /* JSDocTag */, atToken.pos);
+ var result = createNode(269 /* JSDocTag */, atToken.pos);
result.atToken = atToken;
result.tagName = tagName;
return finishNode(result, pos);
@@ -12220,7 +12368,7 @@ var ts;
if (!typeExpression) {
typeExpression = tryParseTypeExpression();
}
- var result = createNode(269 /* JSDocParameterTag */, atToken.pos);
+ var result = createNode(270 /* JSDocParameterTag */, atToken.pos);
result.atToken = atToken;
result.tagName = tagName;
result.preParameterName = preName;
@@ -12230,27 +12378,27 @@ var ts;
return finishNode(result, pos);
}
function handleReturnTag(atToken, tagName) {
- if (ts.forEach(tags, function (t) { return t.kind === 270 /* JSDocReturnTag */; })) {
+ if (ts.forEach(tags, function (t) { return t.kind === 271 /* JSDocReturnTag */; })) {
parseErrorAtPosition(tagName.pos, pos - tagName.pos, ts.Diagnostics._0_tag_already_specified, tagName.text);
}
- var result = createNode(270 /* JSDocReturnTag */, atToken.pos);
+ var result = createNode(271 /* JSDocReturnTag */, atToken.pos);
result.atToken = atToken;
result.tagName = tagName;
result.typeExpression = tryParseTypeExpression();
return finishNode(result, pos);
}
function handleTypeTag(atToken, tagName) {
- if (ts.forEach(tags, function (t) { return t.kind === 271 /* JSDocTypeTag */; })) {
+ if (ts.forEach(tags, function (t) { return t.kind === 272 /* JSDocTypeTag */; })) {
parseErrorAtPosition(tagName.pos, pos - tagName.pos, ts.Diagnostics._0_tag_already_specified, tagName.text);
}
- var result = createNode(271 /* JSDocTypeTag */, atToken.pos);
+ var result = createNode(272 /* JSDocTypeTag */, atToken.pos);
result.atToken = atToken;
result.tagName = tagName;
result.typeExpression = tryParseTypeExpression();
return finishNode(result, pos);
}
function handleTemplateTag(atToken, tagName) {
- if (ts.forEach(tags, function (t) { return t.kind === 272 /* JSDocTemplateTag */; })) {
+ if (ts.forEach(tags, function (t) { return t.kind === 273 /* JSDocTemplateTag */; })) {
parseErrorAtPosition(tagName.pos, pos - tagName.pos, ts.Diagnostics._0_tag_already_specified, tagName.text);
}
var typeParameters = [];
@@ -12263,7 +12411,7 @@ var ts;
parseErrorAtPosition(startPos, 0, ts.Diagnostics.Identifier_expected);
return undefined;
}
- var typeParameter = createNode(137 /* TypeParameter */, name_8.pos);
+ var typeParameter = createNode(138 /* TypeParameter */, name_8.pos);
typeParameter.name = name_8;
finishNode(typeParameter, pos);
typeParameters.push(typeParameter);
@@ -12274,7 +12422,7 @@ var ts;
pos++;
}
typeParameters.end = pos;
- var result = createNode(272 /* JSDocTemplateTag */, atToken.pos);
+ var result = createNode(273 /* JSDocTemplateTag */, atToken.pos);
result.atToken = atToken;
result.tagName = tagName;
result.typeParameters = typeParameters;
@@ -12804,16 +12952,16 @@ var ts;
function getModuleInstanceState(node) {
// A module is uninstantiated if it contains only
// 1. interface declarations, type alias declarations
- if (node.kind === 217 /* InterfaceDeclaration */ || node.kind === 218 /* TypeAliasDeclaration */) {
+ if (node.kind === 218 /* InterfaceDeclaration */ || node.kind === 219 /* TypeAliasDeclaration */) {
return 0 /* NonInstantiated */;
}
else if (ts.isConstEnumDeclaration(node)) {
return 2 /* ConstEnumOnly */;
}
- else if ((node.kind === 224 /* ImportDeclaration */ || node.kind === 223 /* ImportEqualsDeclaration */) && !(node.flags & 2 /* Export */)) {
+ else if ((node.kind === 225 /* ImportDeclaration */ || node.kind === 224 /* ImportEqualsDeclaration */) && !(node.flags & 2 /* Export */)) {
return 0 /* NonInstantiated */;
}
- else if (node.kind === 221 /* ModuleBlock */) {
+ else if (node.kind === 222 /* ModuleBlock */) {
var state = 0 /* NonInstantiated */;
ts.forEachChild(node, function (n) {
switch (getModuleInstanceState(n)) {
@@ -12832,7 +12980,7 @@ var ts;
});
return state;
}
- else if (node.kind === 220 /* ModuleDeclaration */) {
+ else if (node.kind === 221 /* ModuleDeclaration */) {
return getModuleInstanceState(node.body);
}
else {
@@ -12882,6 +13030,11 @@ var ts;
var labelStack;
var labelIndexMap;
var implicitLabels;
+ // state used for emit helpers
+ var hasClassExtends;
+ var hasAsyncFunctions;
+ var hasDecorators;
+ var hasParameterDecorators;
// If this file is an external module, then it is automatically in strict-mode according to
// ES6. If it is not an external module, then we'll determine if it is in strict mode or
// not depending on if we see "use strict" in certain places (or if we hit a class/namespace).
@@ -12911,6 +13064,10 @@ var ts;
labelStack = undefined;
labelIndexMap = undefined;
implicitLabels = undefined;
+ hasClassExtends = false;
+ hasAsyncFunctions = false;
+ hasDecorators = false;
+ hasParameterDecorators = false;
}
return bindSourceFile;
function createSymbol(flags, name) {
@@ -12933,7 +13090,7 @@ var ts;
if (symbolFlags & 107455 /* Value */) {
var valueDeclaration = symbol.valueDeclaration;
if (!valueDeclaration ||
- (valueDeclaration.kind !== node.kind && valueDeclaration.kind === 220 /* ModuleDeclaration */)) {
+ (valueDeclaration.kind !== node.kind && valueDeclaration.kind === 221 /* ModuleDeclaration */)) {
// other kinds of value declarations take precedence over modules
symbol.valueDeclaration = node;
}
@@ -12943,10 +13100,10 @@ var ts;
// unless it is a well known Symbol.
function getDeclarationName(node) {
if (node.name) {
- if (node.kind === 220 /* ModuleDeclaration */ && node.name.kind === 9 /* StringLiteral */) {
- return "\"" + node.name.text + "\"";
+ if (ts.isAmbientModule(node)) {
+ return ts.isGlobalScopeAugmentation(node) ? "__global" : "\"" + node.name.text + "\"";
}
- if (node.name.kind === 136 /* ComputedPropertyName */) {
+ if (node.name.kind === 137 /* ComputedPropertyName */) {
var nameExpression = node.name.expression;
// treat computed property names where expression is string/numeric literal as just string/numeric literal
if (ts.isStringOrNumericLiteral(nameExpression.kind)) {
@@ -12958,21 +13115,21 @@ var ts;
return node.name.text;
}
switch (node.kind) {
- case 144 /* Constructor */:
+ case 145 /* Constructor */:
return "__constructor";
- case 152 /* FunctionType */:
- case 147 /* CallSignature */:
+ case 153 /* FunctionType */:
+ case 148 /* CallSignature */:
return "__call";
- case 153 /* ConstructorType */:
- case 148 /* ConstructSignature */:
+ case 154 /* ConstructorType */:
+ case 149 /* ConstructSignature */:
return "__new";
- case 149 /* IndexSignature */:
+ case 150 /* IndexSignature */:
return "__index";
- case 230 /* ExportDeclaration */:
+ case 231 /* ExportDeclaration */:
return "__export";
- case 229 /* ExportAssignment */:
+ case 230 /* ExportAssignment */:
return node.isExportEquals ? "export=" : "default";
- case 183 /* BinaryExpression */:
+ case 184 /* BinaryExpression */:
switch (ts.getSpecialPropertyAssignmentKind(node)) {
case 2 /* ModuleExports */:
// module.exports = ...
@@ -12987,8 +13144,8 @@ var ts;
}
ts.Debug.fail("Unknown binary declaration kind");
break;
- case 215 /* FunctionDeclaration */:
- case 216 /* ClassDeclaration */:
+ case 216 /* FunctionDeclaration */:
+ case 217 /* ClassDeclaration */:
return node.flags & 512 /* Default */ ? "default" : undefined;
}
}
@@ -13065,7 +13222,7 @@ var ts;
function declareModuleMember(node, symbolFlags, symbolExcludes) {
var hasExportModifier = ts.getCombinedNodeFlags(node) & 2 /* Export */;
if (symbolFlags & 8388608 /* Alias */) {
- if (node.kind === 232 /* ExportSpecifier */ || (node.kind === 223 /* ImportEqualsDeclaration */ && hasExportModifier)) {
+ if (node.kind === 233 /* ExportSpecifier */ || (node.kind === 224 /* ImportEqualsDeclaration */ && hasExportModifier)) {
return declareSymbol(container.symbol.exports, container.symbol, node, symbolFlags, symbolExcludes);
}
else {
@@ -13084,7 +13241,11 @@ var ts;
// 2. When we checkIdentifier in the checker, we set its resolved symbol to the local symbol,
// but return the export symbol (by calling getExportSymbolOfValueSymbolIfExported). That way
// when the emitter comes back to it, it knows not to qualify the name if it was found in a containing scope.
- if (hasExportModifier || container.flags & 131072 /* ExportContext */) {
+ // NOTE: Nested ambient modules always should go to to 'locals' table to prevent their automatic merge
+ // during global merging in the checker. Why? The only case when ambient module is permitted inside another module is module augmentation
+ // and this case is specially handled. Module augmentations should only be merged with original module definition
+ // and should never be merged directly with other augmentation, and the latter case would be possible if automatic merge is allowed.
+ if (!ts.isAmbientModule(node) && (hasExportModifier || container.flags & 131072 /* ExportContext */)) {
var exportKind = (symbolFlags & 107455 /* Value */ ? 1048576 /* ExportValue */ : 0) |
(symbolFlags & 793056 /* Type */ ? 2097152 /* ExportType */ : 0) |
(symbolFlags & 1536 /* Namespace */ ? 4194304 /* ExportNamespace */ : 0);
@@ -13148,10 +13309,12 @@ var ts;
var flags = node.flags;
// reset all reachability check related flags on node (for incremental scenarios)
flags &= ~1572864 /* ReachabilityCheckFlags */;
- if (kind === 217 /* InterfaceDeclaration */) {
+ // reset all emit helper flags on node (for incremental scenarios)
+ flags &= ~62914560 /* EmitHelperFlags */;
+ if (kind === 218 /* InterfaceDeclaration */) {
seenThisKeyword = false;
}
- var saveState = kind === 250 /* SourceFile */ || kind === 221 /* ModuleBlock */ || ts.isFunctionLikeKind(kind);
+ var saveState = kind === 251 /* SourceFile */ || kind === 222 /* ModuleBlock */ || ts.isFunctionLikeKind(kind);
if (saveState) {
savedReachabilityState = currentReachabilityState;
savedLabelStack = labelStack;
@@ -13169,9 +13332,23 @@ var ts;
flags |= 1048576 /* HasExplicitReturn */;
}
}
- if (kind === 217 /* InterfaceDeclaration */) {
+ if (kind === 218 /* InterfaceDeclaration */) {
flags = seenThisKeyword ? flags | 262144 /* ContainsThis */ : flags & ~262144 /* ContainsThis */;
}
+ if (kind === 251 /* SourceFile */) {
+ if (hasClassExtends) {
+ flags |= 4194304 /* HasClassExtends */;
+ }
+ if (hasDecorators) {
+ flags |= 8388608 /* HasDecorators */;
+ }
+ if (hasParameterDecorators) {
+ flags |= 16777216 /* HasParamDecorators */;
+ }
+ if (hasAsyncFunctions) {
+ flags |= 33554432 /* HasAsyncFunctions */;
+ }
+ }
node.flags = flags;
if (saveState) {
hasExplicitReturn = savedHasExplicitReturn;
@@ -13194,40 +13371,40 @@ var ts;
return;
}
switch (node.kind) {
- case 200 /* WhileStatement */:
+ case 201 /* WhileStatement */:
bindWhileStatement(node);
break;
- case 199 /* DoStatement */:
+ case 200 /* DoStatement */:
bindDoStatement(node);
break;
- case 201 /* ForStatement */:
+ case 202 /* ForStatement */:
bindForStatement(node);
break;
- case 202 /* ForInStatement */:
- case 203 /* ForOfStatement */:
+ case 203 /* ForInStatement */:
+ case 204 /* ForOfStatement */:
bindForInOrForOfStatement(node);
break;
- case 198 /* IfStatement */:
+ case 199 /* IfStatement */:
bindIfStatement(node);
break;
- case 206 /* ReturnStatement */:
- case 210 /* ThrowStatement */:
+ case 207 /* ReturnStatement */:
+ case 211 /* ThrowStatement */:
bindReturnOrThrow(node);
break;
- case 205 /* BreakStatement */:
- case 204 /* ContinueStatement */:
+ case 206 /* BreakStatement */:
+ case 205 /* ContinueStatement */:
bindBreakOrContinueStatement(node);
break;
- case 211 /* TryStatement */:
+ case 212 /* TryStatement */:
bindTryStatement(node);
break;
- case 208 /* SwitchStatement */:
+ case 209 /* SwitchStatement */:
bindSwitchStatement(node);
break;
- case 222 /* CaseBlock */:
+ case 223 /* CaseBlock */:
bindCaseBlock(node);
break;
- case 209 /* LabeledStatement */:
+ case 210 /* LabeledStatement */:
bindLabeledStatement(node);
break;
default:
@@ -13302,7 +13479,7 @@ var ts;
function bindReturnOrThrow(n) {
// bind expression (don't affect reachability)
bind(n.expression);
- if (n.kind === 206 /* ReturnStatement */) {
+ if (n.kind === 207 /* ReturnStatement */) {
hasExplicitReturn = true;
}
currentReachabilityState = 4 /* Unreachable */;
@@ -13311,7 +13488,7 @@ var ts;
// call bind on label (don't affect reachability)
bind(n.label);
// for continue case touch label so it will be marked a used
- var isValidJump = jumpToLabel(n.label, n.kind === 205 /* BreakStatement */ ? currentReachabilityState : 4 /* Unreachable */);
+ var isValidJump = jumpToLabel(n.label, n.kind === 206 /* BreakStatement */ ? currentReachabilityState : 4 /* Unreachable */);
if (isValidJump) {
currentReachabilityState = 4 /* Unreachable */;
}
@@ -13337,7 +13514,7 @@ var ts;
// bind expression (don't affect reachability)
bind(n.expression);
bind(n.caseBlock);
- var hasDefault = ts.forEach(n.caseBlock.clauses, function (c) { return c.kind === 244 /* DefaultClause */; });
+ var hasDefault = ts.forEach(n.caseBlock.clauses, function (c) { return c.kind === 245 /* DefaultClause */; });
// post switch state is unreachable if switch is exaustive (has a default case ) and does not have fallthrough from the last case
var postSwitchState = hasDefault && currentReachabilityState !== 2 /* Reachable */ ? 4 /* Unreachable */ : preSwitchState;
popImplicitLabel(postSwitchLabel, postSwitchState);
@@ -13364,37 +13541,37 @@ var ts;
}
function getContainerFlags(node) {
switch (node.kind) {
- case 188 /* ClassExpression */:
- case 216 /* ClassDeclaration */:
- case 217 /* InterfaceDeclaration */:
- case 219 /* EnumDeclaration */:
- case 155 /* TypeLiteral */:
- case 167 /* ObjectLiteralExpression */:
+ case 189 /* ClassExpression */:
+ case 217 /* ClassDeclaration */:
+ case 218 /* InterfaceDeclaration */:
+ case 220 /* EnumDeclaration */:
+ case 156 /* TypeLiteral */:
+ case 168 /* ObjectLiteralExpression */:
return 1 /* IsContainer */;
- case 147 /* CallSignature */:
- case 148 /* ConstructSignature */:
- case 149 /* IndexSignature */:
- case 143 /* MethodDeclaration */:
- case 142 /* MethodSignature */:
- case 215 /* FunctionDeclaration */:
- case 144 /* Constructor */:
- case 145 /* GetAccessor */:
- case 146 /* SetAccessor */:
- case 152 /* FunctionType */:
- case 153 /* ConstructorType */:
- case 175 /* FunctionExpression */:
- case 176 /* ArrowFunction */:
- case 220 /* ModuleDeclaration */:
- case 250 /* SourceFile */:
- case 218 /* TypeAliasDeclaration */:
+ case 148 /* CallSignature */:
+ case 149 /* ConstructSignature */:
+ case 150 /* IndexSignature */:
+ case 144 /* MethodDeclaration */:
+ case 143 /* MethodSignature */:
+ case 216 /* FunctionDeclaration */:
+ case 145 /* Constructor */:
+ case 146 /* GetAccessor */:
+ case 147 /* SetAccessor */:
+ case 153 /* FunctionType */:
+ case 154 /* ConstructorType */:
+ case 176 /* FunctionExpression */:
+ case 177 /* ArrowFunction */:
+ case 221 /* ModuleDeclaration */:
+ case 251 /* SourceFile */:
+ case 219 /* TypeAliasDeclaration */:
return 5 /* IsContainerWithLocals */;
- case 246 /* CatchClause */:
- case 201 /* ForStatement */:
- case 202 /* ForInStatement */:
- case 203 /* ForOfStatement */:
- case 222 /* CaseBlock */:
+ case 247 /* CatchClause */:
+ case 202 /* ForStatement */:
+ case 203 /* ForInStatement */:
+ case 204 /* ForOfStatement */:
+ case 223 /* CaseBlock */:
return 2 /* IsBlockScopedContainer */;
- case 194 /* Block */:
+ case 195 /* Block */:
// do not treat blocks directly inside a function as a block-scoped-container.
// Locals that reside in this block should go to the function locals. Othewise 'x'
// would not appear to be a redeclaration of a block scoped local in the following
@@ -13431,38 +13608,38 @@ var ts;
// members are declared (for example, a member of a class will go into a specific
// symbol table depending on if it is static or not). We defer to specialized
// handlers to take care of declaring these child members.
- case 220 /* ModuleDeclaration */:
+ case 221 /* ModuleDeclaration */:
return declareModuleMember(node, symbolFlags, symbolExcludes);
- case 250 /* SourceFile */:
+ case 251 /* SourceFile */:
return declareSourceFileMember(node, symbolFlags, symbolExcludes);
- case 188 /* ClassExpression */:
- case 216 /* ClassDeclaration */:
+ case 189 /* ClassExpression */:
+ case 217 /* ClassDeclaration */:
return declareClassMember(node, symbolFlags, symbolExcludes);
- case 219 /* EnumDeclaration */:
+ case 220 /* EnumDeclaration */:
return declareSymbol(container.symbol.exports, container.symbol, node, symbolFlags, symbolExcludes);
- case 155 /* TypeLiteral */:
- case 167 /* ObjectLiteralExpression */:
- case 217 /* InterfaceDeclaration */:
+ case 156 /* TypeLiteral */:
+ case 168 /* ObjectLiteralExpression */:
+ case 218 /* InterfaceDeclaration */:
// Interface/Object-types always have their children added to the 'members' of
// their container. They are only accessible through an instance of their
// container, and are never in scope otherwise (even inside the body of the
// object / type / interface declaring them). An exception is type parameters,
// which are in scope without qualification (similar to 'locals').
return declareSymbol(container.symbol.members, container.symbol, node, symbolFlags, symbolExcludes);
- case 152 /* FunctionType */:
- case 153 /* ConstructorType */:
- case 147 /* CallSignature */:
- case 148 /* ConstructSignature */:
- case 149 /* IndexSignature */:
- case 143 /* MethodDeclaration */:
- case 142 /* MethodSignature */:
- case 144 /* Constructor */:
- case 145 /* GetAccessor */:
- case 146 /* SetAccessor */:
- case 215 /* FunctionDeclaration */:
- case 175 /* FunctionExpression */:
- case 176 /* ArrowFunction */:
- case 218 /* TypeAliasDeclaration */:
+ case 153 /* FunctionType */:
+ case 154 /* ConstructorType */:
+ case 148 /* CallSignature */:
+ case 149 /* ConstructSignature */:
+ case 150 /* IndexSignature */:
+ case 144 /* MethodDeclaration */:
+ case 143 /* MethodSignature */:
+ case 145 /* Constructor */:
+ case 146 /* GetAccessor */:
+ case 147 /* SetAccessor */:
+ case 216 /* FunctionDeclaration */:
+ case 176 /* FunctionExpression */:
+ case 177 /* ArrowFunction */:
+ case 219 /* TypeAliasDeclaration */:
// All the children of these container types are never visible through another
// symbol (i.e. through another symbol's 'exports' or 'members'). Instead,
// they're only accessed 'lexically' (i.e. from code that exists underneath
@@ -13483,11 +13660,11 @@ var ts;
: declareSymbol(file.locals, undefined, node, symbolFlags, symbolExcludes);
}
function hasExportDeclarations(node) {
- var body = node.kind === 250 /* SourceFile */ ? node : node.body;
- if (body.kind === 250 /* SourceFile */ || body.kind === 221 /* ModuleBlock */) {
+ var body = node.kind === 251 /* SourceFile */ ? node : node.body;
+ if (body.kind === 251 /* SourceFile */ || body.kind === 222 /* ModuleBlock */) {
for (var _i = 0, _a = body.statements; _i < _a.length; _i++) {
var stat = _a[_i];
- if (stat.kind === 230 /* ExportDeclaration */ || stat.kind === 229 /* ExportAssignment */) {
+ if (stat.kind === 231 /* ExportDeclaration */ || stat.kind === 230 /* ExportAssignment */) {
return true;
}
}
@@ -13506,7 +13683,10 @@ var ts;
}
function bindModuleDeclaration(node) {
setExportContextFlag(node);
- if (node.name.kind === 9 /* StringLiteral */) {
+ if (ts.isAmbientModule(node)) {
+ if (node.flags & 2 /* Export */) {
+ errorOnFirstToken(node, ts.Diagnostics.export_modifier_cannot_be_applied_to_ambient_modules_and_module_augmentations_since_they_are_always_visible);
+ }
declareSymbolAndAddToSymbolTable(node, 512 /* ValueModule */, 106639 /* ValueModuleExcludes */);
}
else {
@@ -13571,7 +13751,7 @@ var ts;
// c.IsAccessorDescriptor(previous) is true and IsDataDescriptor(propId.descriptor) is true.
// d.IsAccessorDescriptor(previous) is true and IsAccessorDescriptor(propId.descriptor) is true
// and either both previous and propId.descriptor have[[Get]] fields or both previous and propId.descriptor have[[Set]] fields
- var currentKind = prop.kind === 247 /* PropertyAssignment */ || prop.kind === 248 /* ShorthandPropertyAssignment */ || prop.kind === 143 /* MethodDeclaration */
+ var currentKind = prop.kind === 248 /* PropertyAssignment */ || prop.kind === 249 /* ShorthandPropertyAssignment */ || prop.kind === 144 /* MethodDeclaration */
? 1 /* Property */
: 2 /* Accessor */;
var existingKind = seen[identifier.text];
@@ -13593,10 +13773,10 @@ var ts;
}
function bindBlockScopedDeclaration(node, symbolFlags, symbolExcludes) {
switch (blockScopeContainer.kind) {
- case 220 /* ModuleDeclaration */:
+ case 221 /* ModuleDeclaration */:
declareModuleMember(node, symbolFlags, symbolExcludes);
break;
- case 250 /* SourceFile */:
+ case 251 /* SourceFile */:
if (ts.isExternalModule(container)) {
declareModuleMember(node, symbolFlags, symbolExcludes);
break;
@@ -13756,17 +13936,17 @@ var ts;
}
function updateStrictMode(node) {
switch (node.kind) {
- case 250 /* SourceFile */:
- case 221 /* ModuleBlock */:
+ case 251 /* SourceFile */:
+ case 222 /* ModuleBlock */:
updateStrictModeStatementList(node.statements);
return;
- case 194 /* Block */:
+ case 195 /* Block */:
if (ts.isFunctionLike(node.parent)) {
updateStrictModeStatementList(node.statements);
}
return;
- case 216 /* ClassDeclaration */:
- case 188 /* ClassExpression */:
+ case 217 /* ClassDeclaration */:
+ case 189 /* ClassExpression */:
// All classes are automatically in strict mode in ES6.
inStrictMode = true;
return;
@@ -13796,7 +13976,7 @@ var ts;
/* Strict mode checks */
case 69 /* Identifier */:
return checkStrictModeIdentifier(node);
- case 183 /* BinaryExpression */:
+ case 184 /* BinaryExpression */:
if (ts.isInJavaScriptFile(node)) {
var specialKind = ts.getSpecialPropertyAssignmentKind(node);
switch (specialKind) {
@@ -13820,100 +14000,97 @@ var ts;
}
}
return checkStrictModeBinaryExpression(node);
- case 246 /* CatchClause */:
+ case 247 /* CatchClause */:
return checkStrictModeCatchClause(node);
- case 177 /* DeleteExpression */:
+ case 178 /* DeleteExpression */:
return checkStrictModeDeleteExpression(node);
case 8 /* NumericLiteral */:
return checkStrictModeNumericLiteral(node);
- case 182 /* PostfixUnaryExpression */:
+ case 183 /* PostfixUnaryExpression */:
return checkStrictModePostfixUnaryExpression(node);
- case 181 /* PrefixUnaryExpression */:
+ case 182 /* PrefixUnaryExpression */:
return checkStrictModePrefixUnaryExpression(node);
- case 207 /* WithStatement */:
+ case 208 /* WithStatement */:
return checkStrictModeWithStatement(node);
- case 161 /* ThisType */:
+ case 162 /* ThisType */:
seenThisKeyword = true;
return;
- case 150 /* TypePredicate */:
+ case 151 /* TypePredicate */:
return checkTypePredicate(node);
- case 137 /* TypeParameter */:
+ case 138 /* TypeParameter */:
return declareSymbolAndAddToSymbolTable(node, 262144 /* TypeParameter */, 530912 /* TypeParameterExcludes */);
- case 138 /* Parameter */:
+ case 139 /* Parameter */:
return bindParameter(node);
- case 213 /* VariableDeclaration */:
- case 165 /* BindingElement */:
+ case 214 /* VariableDeclaration */:
+ case 166 /* BindingElement */:
return bindVariableDeclarationOrBindingElement(node);
- case 141 /* PropertyDeclaration */:
- case 140 /* PropertySignature */:
+ case 142 /* PropertyDeclaration */:
+ case 141 /* PropertySignature */:
return bindPropertyOrMethodOrAccessor(node, 4 /* Property */ | (node.questionToken ? 536870912 /* Optional */ : 0 /* None */), 107455 /* PropertyExcludes */);
- case 247 /* PropertyAssignment */:
- case 248 /* ShorthandPropertyAssignment */:
+ case 248 /* PropertyAssignment */:
+ case 249 /* ShorthandPropertyAssignment */:
return bindPropertyOrMethodOrAccessor(node, 4 /* Property */, 107455 /* PropertyExcludes */);
- case 249 /* EnumMember */:
+ case 250 /* EnumMember */:
return bindPropertyOrMethodOrAccessor(node, 8 /* EnumMember */, 107455 /* EnumMemberExcludes */);
- case 147 /* CallSignature */:
- case 148 /* ConstructSignature */:
- case 149 /* IndexSignature */:
+ case 148 /* CallSignature */:
+ case 149 /* ConstructSignature */:
+ case 150 /* IndexSignature */:
return declareSymbolAndAddToSymbolTable(node, 131072 /* Signature */, 0 /* None */);
- case 143 /* MethodDeclaration */:
- case 142 /* MethodSignature */:
+ case 144 /* MethodDeclaration */:
+ case 143 /* MethodSignature */:
// If this is an ObjectLiteralExpression method, then it sits in the same space
// as other properties in the object literal. So we use SymbolFlags.PropertyExcludes
// so that it will conflict with any other object literal members with the same
// name.
return bindPropertyOrMethodOrAccessor(node, 8192 /* Method */ | (node.questionToken ? 536870912 /* Optional */ : 0 /* None */), ts.isObjectLiteralMethod(node) ? 107455 /* PropertyExcludes */ : 99263 /* MethodExcludes */);
- case 215 /* FunctionDeclaration */:
- checkStrictModeFunctionName(node);
- return declareSymbolAndAddToSymbolTable(node, 16 /* Function */, 106927 /* FunctionExcludes */);
- case 144 /* Constructor */:
+ case 216 /* FunctionDeclaration */:
+ return bindFunctionDeclaration(node);
+ case 145 /* Constructor */:
return declareSymbolAndAddToSymbolTable(node, 16384 /* Constructor */, /*symbolExcludes:*/ 0 /* None */);
- case 145 /* GetAccessor */:
+ case 146 /* GetAccessor */:
return bindPropertyOrMethodOrAccessor(node, 32768 /* GetAccessor */, 41919 /* GetAccessorExcludes */);
- case 146 /* SetAccessor */:
+ case 147 /* SetAccessor */:
return bindPropertyOrMethodOrAccessor(node, 65536 /* SetAccessor */, 74687 /* SetAccessorExcludes */);
- case 152 /* FunctionType */:
- case 153 /* ConstructorType */:
+ case 153 /* FunctionType */:
+ case 154 /* ConstructorType */:
return bindFunctionOrConstructorType(node);
- case 155 /* TypeLiteral */:
+ case 156 /* TypeLiteral */:
return bindAnonymousDeclaration(node, 2048 /* TypeLiteral */, "__type");
- case 167 /* ObjectLiteralExpression */:
+ case 168 /* ObjectLiteralExpression */:
return bindObjectLiteralExpression(node);
- case 175 /* FunctionExpression */:
- case 176 /* ArrowFunction */:
- checkStrictModeFunctionName(node);
- var bindingName = node.name ? node.name.text : "__function";
- return bindAnonymousDeclaration(node, 16 /* Function */, bindingName);
- case 170 /* CallExpression */:
+ case 176 /* FunctionExpression */:
+ case 177 /* ArrowFunction */:
+ return bindFunctionExpression(node);
+ case 171 /* CallExpression */:
if (ts.isInJavaScriptFile(node)) {
bindCallExpression(node);
}
break;
// Members of classes, interfaces, and modules
- case 188 /* ClassExpression */:
- case 216 /* ClassDeclaration */:
+ case 189 /* ClassExpression */:
+ case 217 /* ClassDeclaration */:
return bindClassLikeDeclaration(node);
- case 217 /* InterfaceDeclaration */:
+ case 218 /* InterfaceDeclaration */:
return bindBlockScopedDeclaration(node, 64 /* Interface */, 792960 /* InterfaceExcludes */);
- case 218 /* TypeAliasDeclaration */:
+ case 219 /* TypeAliasDeclaration */:
return bindBlockScopedDeclaration(node, 524288 /* TypeAlias */, 793056 /* TypeAliasExcludes */);
- case 219 /* EnumDeclaration */:
+ case 220 /* EnumDeclaration */:
return bindEnumDeclaration(node);
- case 220 /* ModuleDeclaration */:
+ case 221 /* ModuleDeclaration */:
return bindModuleDeclaration(node);
// Imports and exports
- case 223 /* ImportEqualsDeclaration */:
- case 226 /* NamespaceImport */:
- case 228 /* ImportSpecifier */:
- case 232 /* ExportSpecifier */:
+ case 224 /* ImportEqualsDeclaration */:
+ case 227 /* NamespaceImport */:
+ case 229 /* ImportSpecifier */:
+ case 233 /* ExportSpecifier */:
return declareSymbolAndAddToSymbolTable(node, 8388608 /* Alias */, 8388608 /* AliasExcludes */);
- case 225 /* ImportClause */:
+ case 226 /* ImportClause */:
return bindImportClause(node);
- case 230 /* ExportDeclaration */:
+ case 231 /* ExportDeclaration */:
return bindExportDeclaration(node);
- case 229 /* ExportAssignment */:
+ case 230 /* ExportAssignment */:
return bindExportAssignment(node);
- case 250 /* SourceFile */:
+ case 251 /* SourceFile */:
return bindSourceFileIfExternalModule();
}
}
@@ -13922,7 +14099,7 @@ var ts;
if (parameterName && parameterName.kind === 69 /* Identifier */) {
checkStrictModeIdentifier(parameterName);
}
- if (parameterName && parameterName.kind === 161 /* ThisType */) {
+ if (parameterName && parameterName.kind === 162 /* ThisType */) {
seenThisKeyword = true;
}
bind(type);
@@ -13937,7 +14114,7 @@ var ts;
bindAnonymousDeclaration(file, 512 /* ValueModule */, "\"" + ts.removeFileExtension(file.fileName) + "\"");
}
function bindExportAssignment(node) {
- var boundExpression = node.kind === 229 /* ExportAssignment */ ? node.expression : node.right;
+ var boundExpression = node.kind === 230 /* ExportAssignment */ ? node.expression : node.right;
if (!container.symbol || !container.symbol.exports) {
// Export assignment in some sort of block construct
bindAnonymousDeclaration(node, 8388608 /* Alias */, getDeclarationName(node));
@@ -13985,7 +14162,7 @@ var ts;
}
function bindThisPropertyAssignment(node) {
// Declare a 'member' in case it turns out the container was an ES5 class
- if (container.kind === 175 /* FunctionExpression */ || container.kind === 215 /* FunctionDeclaration */) {
+ if (container.kind === 176 /* FunctionExpression */ || container.kind === 216 /* FunctionDeclaration */) {
container.symbol.members = container.symbol.members || {};
declareSymbol(container.symbol.members, container.symbol, node, 4 /* Property */, 107455 /* PropertyExcludes */);
}
@@ -14014,7 +14191,15 @@ var ts;
}
}
function bindClassLikeDeclaration(node) {
- if (node.kind === 216 /* ClassDeclaration */) {
+ if (!ts.isDeclarationFile(file) && !ts.isInAmbientContext(node)) {
+ if (ts.getClassExtendsHeritageClauseElement(node) !== undefined) {
+ hasClassExtends = true;
+ }
+ if (ts.nodeIsDecorated(node)) {
+ hasDecorators = true;
+ }
+ }
+ if (node.kind === 217 /* ClassDeclaration */) {
bindBlockScopedDeclaration(node, 32 /* Class */, 899519 /* ClassExcludes */);
}
else {
@@ -14076,6 +14261,12 @@ var ts;
}
}
function bindParameter(node) {
+ if (!ts.isDeclarationFile(file) &&
+ !ts.isInAmbientContext(node) &&
+ ts.nodeIsDecorated(node)) {
+ hasDecorators = true;
+ hasParameterDecorators = true;
+ }
if (inStrictMode) {
// It is a SyntaxError if the identifier eval or arguments appears within a FormalParameterList of a
// strict mode FunctionLikeDeclaration or FunctionExpression(13.1)
@@ -14094,7 +14285,34 @@ var ts;
declareSymbol(classDeclaration.symbol.members, classDeclaration.symbol, node, 4 /* Property */, 107455 /* PropertyExcludes */);
}
}
+ function bindFunctionDeclaration(node) {
+ if (!ts.isDeclarationFile(file) && !ts.isInAmbientContext(node)) {
+ if (ts.isAsyncFunctionLike(node)) {
+ hasAsyncFunctions = true;
+ }
+ }
+ checkStrictModeFunctionName(node);
+ return declareSymbolAndAddToSymbolTable(node, 16 /* Function */, 106927 /* FunctionExcludes */);
+ }
+ function bindFunctionExpression(node) {
+ if (!ts.isDeclarationFile(file) && !ts.isInAmbientContext(node)) {
+ if (ts.isAsyncFunctionLike(node)) {
+ hasAsyncFunctions = true;
+ }
+ }
+ checkStrictModeFunctionName(node);
+ var bindingName = node.name ? node.name.text : "__function";
+ return bindAnonymousDeclaration(node, 16 /* Function */, bindingName);
+ }
function bindPropertyOrMethodOrAccessor(node, symbolFlags, symbolExcludes) {
+ if (!ts.isDeclarationFile(file) && !ts.isInAmbientContext(node)) {
+ if (ts.isAsyncFunctionLike(node)) {
+ hasAsyncFunctions = true;
+ }
+ if (ts.nodeIsDecorated(node)) {
+ hasDecorators = true;
+ }
+ }
return ts.hasDynamicName(node)
? bindAnonymousDeclaration(node, symbolFlags, "__computed")
: declareSymbolAndAddToSymbolTable(node, symbolFlags, symbolExcludes);
@@ -14159,13 +14377,13 @@ var ts;
case 4 /* Unreachable */:
var reportError =
// report error on all statements except empty ones
- (ts.isStatement(node) && node.kind !== 196 /* EmptyStatement */) ||
+ (ts.isStatement(node) && node.kind !== 197 /* EmptyStatement */) ||
// report error on class declarations
- node.kind === 216 /* ClassDeclaration */ ||
+ node.kind === 217 /* ClassDeclaration */ ||
// report error on instantiated modules or const-enums only modules if preserveConstEnums is set
- (node.kind === 220 /* ModuleDeclaration */ && shouldReportErrorOnModuleDeclaration(node)) ||
+ (node.kind === 221 /* ModuleDeclaration */ && shouldReportErrorOnModuleDeclaration(node)) ||
// report error on regular enums and const enums if preserveConstEnums is set
- (node.kind === 219 /* EnumDeclaration */ && (!ts.isConstEnumDeclaration(node) || options.preserveConstEnums));
+ (node.kind === 220 /* EnumDeclaration */ && (!ts.isConstEnumDeclaration(node) || options.preserveConstEnums));
if (reportError) {
currentReachabilityState = 8 /* ReportedUnreachable */;
// unreachable code is reported if
@@ -14179,7 +14397,7 @@ var ts;
// On the other side we do want to report errors on non-initialized 'lets' because of TDZ
var reportUnreachableCode = !options.allowUnreachableCode &&
!ts.isInAmbientContext(node) &&
- (node.kind !== 195 /* VariableStatement */ ||
+ (node.kind !== 196 /* VariableStatement */ ||
ts.getCombinedNodeFlags(node.declarationList) & 24576 /* BlockScoped */ ||
ts.forEach(node.declarationList.declarations, function (d) { return d.initializer; }));
if (reportUnreachableCode) {
@@ -14264,6 +14482,7 @@ var ts;
getTypeCount: function () { return typeCount; },
isUndefinedSymbol: function (symbol) { return symbol === undefinedSymbol; },
isArgumentsSymbol: function (symbol) { return symbol === argumentsSymbol; },
+ isUnknownSymbol: function (symbol) { return symbol === unknownSymbol; },
getDiagnostics: getDiagnostics,
getGlobalDiagnostics: getGlobalDiagnostics,
// The language service will always care about the narrowed type of a symbol, because that is
@@ -14280,6 +14499,7 @@ var ts;
getSymbolsInScope: getSymbolsInScope,
getSymbolAtLocation: getSymbolAtLocation,
getShorthandAssignmentValueSymbol: getShorthandAssignmentValueSymbol,
+ getExportSpecifierLocalTargetSymbol: getExportSpecifierLocalTargetSymbol,
getTypeAtLocation: getTypeOfNode,
typeToString: typeToString,
getSymbolDisplayBuilder: getSymbolDisplayBuilder,
@@ -14355,11 +14575,6 @@ var ts;
var unionTypes = {};
var intersectionTypes = {};
var stringLiteralTypes = {};
- var emitExtends = false;
- var emitDecorate = false;
- var emitParam = false;
- var emitAwaiter = false;
- var emitGenerator = false;
var resolutionTargets = [];
var resolutionResults = [];
var resolutionPropertyNames = [];
@@ -14504,7 +14719,7 @@ var ts;
target.flags |= source.flags;
if (source.valueDeclaration &&
(!target.valueDeclaration ||
- (target.valueDeclaration.kind === 220 /* ModuleDeclaration */ && source.valueDeclaration.kind !== 220 /* ModuleDeclaration */))) {
+ (target.valueDeclaration.kind === 221 /* ModuleDeclaration */ && source.valueDeclaration.kind !== 221 /* ModuleDeclaration */))) {
// other kinds of value declarations take precedence over modules
target.valueDeclaration = source.valueDeclaration;
}
@@ -14559,6 +14774,30 @@ var ts;
}
}
}
+ function mergeModuleAugmentation(moduleName) {
+ var moduleAugmentation = moduleName.parent;
+ if (moduleAugmentation.symbol.valueDeclaration !== moduleAugmentation) {
+ // this is a combined symbol for multiple augmentations within the same file.
+ // its symbol already has accumulated information for all declarations
+ // so we need to add it just once - do the work only for first declaration
+ ts.Debug.assert(moduleAugmentation.symbol.declarations.length > 1);
+ return;
+ }
+ if (ts.isGlobalScopeAugmentation(moduleAugmentation)) {
+ mergeSymbolTable(globals, moduleAugmentation.symbol.exports);
+ }
+ else {
+ // find a module that about to be augmented
+ var mainModule = resolveExternalModuleNameWorker(moduleName, moduleName, ts.Diagnostics.Invalid_module_name_in_augmentation_module_0_cannot_be_found);
+ if (!mainModule) {
+ return;
+ }
+ // if module symbol has already been merged - it is safe to use it.
+ // otherwise clone it
+ mainModule = mainModule.flags & 33554432 /* Merged */ ? mainModule : cloneSymbol(mainModule);
+ mergeSymbol(mainModule, moduleAugmentation.symbol);
+ }
+ }
function addToSymbolTable(target, source, message) {
for (var id in source) {
if (ts.hasProperty(source, id)) {
@@ -14585,18 +14824,8 @@ var ts;
var nodeId = getNodeId(node);
return nodeLinks[nodeId] || (nodeLinks[nodeId] = {});
}
- function getSourceFile(node) {
- return ts.getAncestor(node, 250 /* SourceFile */);
- }
function isGlobalSourceFile(node) {
- return node.kind === 250 /* SourceFile */ && !ts.isExternalOrCommonJsModule(node);
- }
- /** Is this type one of the apparent types created from the primitive types. */
- function isPrimitiveApparentType(type) {
- return type === globalStringType ||
- type === globalNumberType ||
- type === globalBooleanType ||
- type === globalESSymbolType;
+ return node.kind === 251 /* SourceFile */ && !ts.isExternalOrCommonJsModule(node);
}
function getSymbol(symbols, name, meaning) {
if (meaning && ts.hasProperty(symbols, name)) {
@@ -14645,7 +14874,7 @@ var ts;
if (declaration.pos <= usage.pos) {
// declaration is before usage
// still might be illegal if usage is in the initializer of the variable declaration
- return declaration.kind !== 213 /* VariableDeclaration */ ||
+ return declaration.kind !== 214 /* VariableDeclaration */ ||
!isImmediatelyUsedInInitializerOfBlockScopedVariable(declaration, usage);
}
// declaration is after usage
@@ -14653,14 +14882,14 @@ var ts;
return isUsedInFunctionOrNonStaticProperty(declaration, usage);
function isImmediatelyUsedInInitializerOfBlockScopedVariable(declaration, usage) {
var container = ts.getEnclosingBlockScopeContainer(declaration);
- if (declaration.parent.parent.kind === 195 /* VariableStatement */ ||
- declaration.parent.parent.kind === 201 /* ForStatement */) {
+ if (declaration.parent.parent.kind === 196 /* VariableStatement */ ||
+ declaration.parent.parent.kind === 202 /* ForStatement */) {
// variable statement/for statement case,
// use site should not be inside variable declaration (initializer of declaration or binding element)
return isSameScopeDescendentOf(usage, declaration, container);
}
- else if (declaration.parent.parent.kind === 203 /* ForOfStatement */ ||
- declaration.parent.parent.kind === 202 /* ForInStatement */) {
+ else if (declaration.parent.parent.kind === 204 /* ForOfStatement */ ||
+ declaration.parent.parent.kind === 203 /* ForInStatement */) {
// ForIn/ForOf case - use site should not be used in expression part
var expression = declaration.parent.parent.expression;
return isSameScopeDescendentOf(usage, expression, container);
@@ -14677,7 +14906,7 @@ var ts;
return true;
}
var initializerOfNonStaticProperty = current.parent &&
- current.parent.kind === 141 /* PropertyDeclaration */ &&
+ current.parent.kind === 142 /* PropertyDeclaration */ &&
(current.parent.flags & 64 /* Static */) === 0 &&
current.parent.initializer === current;
if (initializerOfNonStaticProperty) {
@@ -14710,8 +14939,8 @@ var ts;
if (meaning & result.flags & 793056 /* Type */) {
useResult = result.flags & 262144 /* TypeParameter */
? lastLocation === location.type ||
- lastLocation.kind === 138 /* Parameter */ ||
- lastLocation.kind === 137 /* TypeParameter */
+ lastLocation.kind === 139 /* Parameter */ ||
+ lastLocation.kind === 138 /* TypeParameter */
: false;
}
if (meaning & 107455 /* Value */ && result.flags & 1 /* FunctionScopedVariable */) {
@@ -14720,9 +14949,9 @@ var ts;
// however it is detected separately when checking initializers of parameters
// to make sure that they reference no variables declared after them.
useResult =
- lastLocation.kind === 138 /* Parameter */ ||
+ lastLocation.kind === 139 /* Parameter */ ||
(lastLocation === location.type &&
- result.valueDeclaration.kind === 138 /* Parameter */);
+ result.valueDeclaration.kind === 139 /* Parameter */);
}
}
if (useResult) {
@@ -14734,13 +14963,12 @@ var ts;
}
}
switch (location.kind) {
- case 250 /* SourceFile */:
+ case 251 /* SourceFile */:
if (!ts.isExternalOrCommonJsModule(location))
break;
- case 220 /* ModuleDeclaration */:
+ case 221 /* ModuleDeclaration */:
var moduleExports = getSymbolOfNode(location).exports;
- if (location.kind === 250 /* SourceFile */ ||
- (location.kind === 220 /* ModuleDeclaration */ && location.name.kind === 9 /* StringLiteral */)) {
+ if (location.kind === 251 /* SourceFile */ || ts.isAmbientModule(location)) {
// It's an external module. First see if the module has an export default and if the local
// name of that export default matches.
if (result = moduleExports["default"]) {
@@ -14763,7 +14991,7 @@ var ts;
// which is not the desired behavior.
if (ts.hasProperty(moduleExports, name) &&
moduleExports[name].flags === 8388608 /* Alias */ &&
- ts.getDeclarationOfKind(moduleExports[name], 232 /* ExportSpecifier */)) {
+ ts.getDeclarationOfKind(moduleExports[name], 233 /* ExportSpecifier */)) {
break;
}
}
@@ -14771,13 +14999,13 @@ var ts;
break loop;
}
break;
- case 219 /* EnumDeclaration */:
+ case 220 /* EnumDeclaration */:
if (result = getSymbol(getSymbolOfNode(location).exports, name, meaning & 8 /* EnumMember */)) {
break loop;
}
break;
- case 141 /* PropertyDeclaration */:
- case 140 /* PropertySignature */:
+ case 142 /* PropertyDeclaration */:
+ case 141 /* PropertySignature */:
// TypeScript 1.0 spec (April 2014): 8.4.1
// Initializer expressions for instance member variables are evaluated in the scope
// of the class constructor body but are not permitted to reference parameters or
@@ -14794,9 +15022,9 @@ var ts;
}
}
break;
- case 216 /* ClassDeclaration */:
- case 188 /* ClassExpression */:
- case 217 /* InterfaceDeclaration */:
+ case 217 /* ClassDeclaration */:
+ case 189 /* ClassExpression */:
+ case 218 /* InterfaceDeclaration */:
if (result = getSymbol(getSymbolOfNode(location).members, name, meaning & 793056 /* Type */)) {
if (lastLocation && lastLocation.flags & 64 /* Static */) {
// TypeScript 1.0 spec (April 2014): 3.4.1
@@ -14807,7 +15035,7 @@ var ts;
}
break loop;
}
- if (location.kind === 188 /* ClassExpression */ && meaning & 32 /* Class */) {
+ if (location.kind === 189 /* ClassExpression */ && meaning & 32 /* Class */) {
var className = location.name;
if (className && name === className.text) {
result = location.symbol;
@@ -14823,9 +15051,9 @@ var ts;
// [foo()]() { } // <-- Reference to T from class's own computed property
// }
//
- case 136 /* ComputedPropertyName */:
+ case 137 /* ComputedPropertyName */:
grandparent = location.parent.parent;
- if (ts.isClassLike(grandparent) || grandparent.kind === 217 /* InterfaceDeclaration */) {
+ if (ts.isClassLike(grandparent) || grandparent.kind === 218 /* InterfaceDeclaration */) {
// A reference to this grandparent's type parameters would be an error
if (result = getSymbol(getSymbolOfNode(grandparent).members, name, meaning & 793056 /* Type */)) {
error(errorLocation, ts.Diagnostics.A_computed_property_name_cannot_reference_a_type_parameter_from_its_containing_type);
@@ -14833,19 +15061,19 @@ var ts;
}
}
break;
- case 143 /* MethodDeclaration */:
- case 142 /* MethodSignature */:
- case 144 /* Constructor */:
- case 145 /* GetAccessor */:
- case 146 /* SetAccessor */:
- case 215 /* FunctionDeclaration */:
- case 176 /* ArrowFunction */:
+ case 144 /* MethodDeclaration */:
+ case 143 /* MethodSignature */:
+ case 145 /* Constructor */:
+ case 146 /* GetAccessor */:
+ case 147 /* SetAccessor */:
+ case 216 /* FunctionDeclaration */:
+ case 177 /* ArrowFunction */:
if (meaning & 3 /* Variable */ && name === "arguments") {
result = argumentsSymbol;
break loop;
}
break;
- case 175 /* FunctionExpression */:
+ case 176 /* FunctionExpression */:
if (meaning & 3 /* Variable */ && name === "arguments") {
result = argumentsSymbol;
break loop;
@@ -14858,7 +15086,7 @@ var ts;
}
}
break;
- case 139 /* Decorator */:
+ case 140 /* Decorator */:
// Decorators are resolved at the class declaration. Resolving at the parameter
// or member would result in looking up locals in the method.
//
@@ -14867,7 +15095,7 @@ var ts;
// method(@y x, y) {} // <-- decorator y should be resolved at the class declaration, not the parameter.
// }
//
- if (location.parent && location.parent.kind === 138 /* Parameter */) {
+ if (location.parent && location.parent.kind === 139 /* Parameter */) {
location = location.parent;
}
//
@@ -14889,7 +15117,9 @@ var ts;
}
if (!result) {
if (nameNotFoundMessage) {
- error(errorLocation, nameNotFoundMessage, typeof nameArg === "string" ? nameArg : ts.declarationNameToString(nameArg));
+ if (!checkAndReportErrorForMissingPrefix(errorLocation, name, nameArg)) {
+ error(errorLocation, nameNotFoundMessage, typeof nameArg === "string" ? nameArg : ts.declarationNameToString(nameArg));
+ }
}
return undefined;
}
@@ -14922,12 +15152,44 @@ var ts;
}
return result;
}
+ function checkAndReportErrorForMissingPrefix(errorLocation, name, nameArg) {
+ if (!errorLocation || (errorLocation.kind === 69 /* Identifier */ && (isTypeReferenceIdentifier(errorLocation)) || isInTypeQuery(errorLocation))) {
+ return false;
+ }
+ var container = ts.getThisContainer(errorLocation, /* includeArrowFunctions */ true);
+ var location = container;
+ while (location) {
+ if (ts.isClassLike(location.parent)) {
+ var classSymbol = getSymbolOfNode(location.parent);
+ if (!classSymbol) {
+ break;
+ }
+ // Check to see if a static member exists.
+ var constructorType = getTypeOfSymbol(classSymbol);
+ if (getPropertyOfType(constructorType, name)) {
+ error(errorLocation, ts.Diagnostics.Cannot_find_name_0_Did_you_mean_the_static_member_1_0, typeof nameArg === "string" ? nameArg : ts.declarationNameToString(nameArg), symbolToString(classSymbol));
+ return true;
+ }
+ // No static member is present.
+ // Check if we're in an instance method and look for a relevant instance member.
+ if (location === container && !(location.flags & 64 /* Static */)) {
+ var instanceType = getDeclaredTypeOfSymbol(classSymbol).thisType;
+ if (getPropertyOfType(instanceType, name)) {
+ error(errorLocation, ts.Diagnostics.Cannot_find_name_0_Did_you_mean_the_instance_member_this_0, typeof nameArg === "string" ? nameArg : ts.declarationNameToString(nameArg));
+ return true;
+ }
+ }
+ }
+ location = location.parent;
+ }
+ return false;
+ }
function checkResolvedBlockScopedVariable(result, errorLocation) {
ts.Debug.assert((result.flags & 2 /* BlockScopedVariable */) !== 0);
// Block-scoped variables cannot be used before their definition
var declaration = ts.forEach(result.declarations, function (d) { return ts.isBlockOrCatchScoped(d) ? d : undefined; });
ts.Debug.assert(declaration !== undefined, "Block-scoped variable declaration is undefined");
- if (!isBlockScopedNameDeclaredBeforeUse(ts.getAncestor(declaration, 213 /* VariableDeclaration */), errorLocation)) {
+ if (!isBlockScopedNameDeclaredBeforeUse(ts.getAncestor(declaration, 214 /* VariableDeclaration */), errorLocation)) {
error(errorLocation, ts.Diagnostics.Block_scoped_variable_0_used_before_its_declaration, ts.declarationNameToString(declaration.name));
}
}
@@ -14948,10 +15210,10 @@ var ts;
}
function getAnyImportSyntax(node) {
if (ts.isAliasSymbolDeclaration(node)) {
- if (node.kind === 223 /* ImportEqualsDeclaration */) {
+ if (node.kind === 224 /* ImportEqualsDeclaration */) {
return node;
}
- while (node && node.kind !== 224 /* ImportDeclaration */) {
+ while (node && node.kind !== 225 /* ImportDeclaration */) {
node = node.parent;
}
return node;
@@ -14961,7 +15223,7 @@ var ts;
return ts.forEach(symbol.declarations, function (d) { return ts.isAliasSymbolDeclaration(d) ? d : undefined; });
}
function getTargetOfImportEqualsDeclaration(node) {
- if (node.moduleReference.kind === 234 /* ExternalModuleReference */) {
+ if (node.moduleReference.kind === 235 /* ExternalModuleReference */) {
return resolveExternalModuleSymbol(resolveExternalModuleName(node, ts.getExternalModuleImportEqualsDeclarationExpression(node)));
}
return getSymbolOfPartOfRightHandSideOfImportEquals(node.moduleReference, node);
@@ -15063,17 +15325,17 @@ var ts;
}
function getTargetOfAliasDeclaration(node) {
switch (node.kind) {
- case 223 /* ImportEqualsDeclaration */:
+ case 224 /* ImportEqualsDeclaration */:
return getTargetOfImportEqualsDeclaration(node);
- case 225 /* ImportClause */:
+ case 226 /* ImportClause */:
return getTargetOfImportClause(node);
- case 226 /* NamespaceImport */:
+ case 227 /* NamespaceImport */:
return getTargetOfNamespaceImport(node);
- case 228 /* ImportSpecifier */:
+ case 229 /* ImportSpecifier */:
return getTargetOfImportSpecifier(node);
- case 232 /* ExportSpecifier */:
+ case 233 /* ExportSpecifier */:
return getTargetOfExportSpecifier(node);
- case 229 /* ExportAssignment */:
+ case 230 /* ExportAssignment */:
return getTargetOfExportAssignment(node);
}
}
@@ -15118,11 +15380,11 @@ var ts;
if (!links.referenced) {
links.referenced = true;
var node = getDeclarationOfAliasSymbol(symbol);
- if (node.kind === 229 /* ExportAssignment */) {
+ if (node.kind === 230 /* ExportAssignment */) {
// export default
checkExpressionCached(node.expression);
}
- else if (node.kind === 232 /* ExportSpecifier */) {
+ else if (node.kind === 233 /* ExportSpecifier */) {
// export { } or export { as foo }
checkExpressionCached(node.propertyName || node.name);
}
@@ -15135,7 +15397,7 @@ var ts;
// This function is only for imports with entity names
function getSymbolOfPartOfRightHandSideOfImportEquals(entityName, importDeclaration) {
if (!importDeclaration) {
- importDeclaration = ts.getAncestor(entityName, 223 /* ImportEqualsDeclaration */);
+ importDeclaration = ts.getAncestor(entityName, 224 /* ImportEqualsDeclaration */);
ts.Debug.assert(importDeclaration !== undefined);
}
// There are three things we might try to look for. In the following examples,
@@ -15148,13 +15410,13 @@ var ts;
entityName = entityName.parent;
}
// Check for case 1 and 3 in the above example
- if (entityName.kind === 69 /* Identifier */ || entityName.parent.kind === 135 /* QualifiedName */) {
+ if (entityName.kind === 69 /* Identifier */ || entityName.parent.kind === 136 /* QualifiedName */) {
return resolveEntityName(entityName, 1536 /* Namespace */);
}
else {
// Case 2 in above example
// entityName.kind could be a QualifiedName or a Missing identifier
- ts.Debug.assert(entityName.parent.kind === 223 /* ImportEqualsDeclaration */);
+ ts.Debug.assert(entityName.parent.kind === 224 /* ImportEqualsDeclaration */);
return resolveEntityName(entityName, 107455 /* Value */ | 793056 /* Type */ | 1536 /* Namespace */);
}
}
@@ -15174,9 +15436,9 @@ var ts;
return undefined;
}
}
- else if (name.kind === 135 /* QualifiedName */ || name.kind === 168 /* PropertyAccessExpression */) {
- var left = name.kind === 135 /* QualifiedName */ ? name.left : name.expression;
- var right = name.kind === 135 /* QualifiedName */ ? name.right : name.name;
+ else if (name.kind === 136 /* QualifiedName */ || name.kind === 169 /* PropertyAccessExpression */) {
+ var left = name.kind === 136 /* QualifiedName */ ? name.left : name.expression;
+ var right = name.kind === 136 /* QualifiedName */ ? name.right : name.name;
var namespace = resolveEntityName(left, 1536 /* Namespace */, ignoreErrors);
if (!namespace || namespace === unknownSymbol || ts.nodeIsMissing(right)) {
return undefined;
@@ -15196,6 +15458,9 @@ var ts;
return symbol.flags & meaning ? symbol : resolveAlias(symbol);
}
function resolveExternalModuleName(location, moduleReferenceExpression) {
+ return resolveExternalModuleNameWorker(location, moduleReferenceExpression, ts.Diagnostics.Cannot_find_module_0);
+ }
+ function resolveExternalModuleNameWorker(location, moduleReferenceExpression, moduleNotFoundError) {
if (moduleReferenceExpression.kind !== 9 /* StringLiteral */) {
return;
}
@@ -15210,19 +15475,28 @@ var ts;
if (!isRelative) {
var symbol = getSymbol(globals, "\"" + moduleName + "\"", 512 /* ValueModule */);
if (symbol) {
- return symbol;
+ // merged symbol is module declaration symbol combined with all augmentations
+ return getMergedSymbol(symbol);
}
}
- var resolvedModule = ts.getResolvedModule(getSourceFile(location), moduleReferenceLiteral.text);
+ var resolvedModule = ts.getResolvedModule(ts.getSourceFileOfNode(location), moduleReferenceLiteral.text);
var sourceFile = resolvedModule && host.getSourceFile(resolvedModule.resolvedFileName);
if (sourceFile) {
if (sourceFile.symbol) {
- return sourceFile.symbol;
+ // merged symbol is module declaration symbol combined with all augmentations
+ return getMergedSymbol(sourceFile.symbol);
}
- error(moduleReferenceLiteral, ts.Diagnostics.File_0_is_not_a_module, sourceFile.fileName);
- return;
+ if (moduleNotFoundError) {
+ // report errors only if it was requested
+ error(moduleReferenceLiteral, ts.Diagnostics.File_0_is_not_a_module, sourceFile.fileName);
+ }
+ return undefined;
}
- error(moduleReferenceLiteral, ts.Diagnostics.Cannot_find_module_0, moduleName);
+ if (moduleNotFoundError) {
+ // report errors only if it was requested
+ error(moduleReferenceLiteral, moduleNotFoundError, moduleName);
+ }
+ return undefined;
}
// An external module with an 'export =' declaration resolves to the target of the 'export =' declaration,
// and an external module with no 'export =' declaration resolves to the module itself.
@@ -15350,7 +15624,7 @@ var ts;
var members = node.members;
for (var _i = 0, members_1 = members; _i < members_1.length; _i++) {
var member = members_1[_i];
- if (member.kind === 144 /* Constructor */ && ts.nodeIsPresent(member.body)) {
+ if (member.kind === 145 /* Constructor */ && ts.nodeIsPresent(member.body)) {
return member;
}
}
@@ -15421,17 +15695,17 @@ var ts;
}
}
switch (location_1.kind) {
- case 250 /* SourceFile */:
+ case 251 /* SourceFile */:
if (!ts.isExternalOrCommonJsModule(location_1)) {
break;
}
- case 220 /* ModuleDeclaration */:
+ case 221 /* ModuleDeclaration */:
if (result = callback(getSymbolOfNode(location_1).exports)) {
return result;
}
break;
- case 216 /* ClassDeclaration */:
- case 217 /* InterfaceDeclaration */:
+ case 217 /* ClassDeclaration */:
+ case 218 /* InterfaceDeclaration */:
if (result = callback(getSymbolOfNode(location_1).members)) {
return result;
}
@@ -15472,7 +15746,7 @@ var ts;
return ts.forEachValue(symbols, function (symbolFromSymbolTable) {
if (symbolFromSymbolTable.flags & 8388608 /* Alias */
&& symbolFromSymbolTable.name !== "export="
- && !ts.getDeclarationOfKind(symbolFromSymbolTable, 232 /* ExportSpecifier */)) {
+ && !ts.getDeclarationOfKind(symbolFromSymbolTable, 233 /* ExportSpecifier */)) {
if (!useOnlyExternalAliasing ||
// Is this external alias, then use it to name
ts.forEach(symbolFromSymbolTable.declarations, ts.isExternalModuleImportEqualsDeclaration)) {
@@ -15509,7 +15783,7 @@ var ts;
return true;
}
// Qualify if the symbol from symbol table has same meaning as expected
- symbolFromSymbolTable = (symbolFromSymbolTable.flags & 8388608 /* Alias */ && !ts.getDeclarationOfKind(symbolFromSymbolTable, 232 /* ExportSpecifier */)) ? resolveAlias(symbolFromSymbolTable) : symbolFromSymbolTable;
+ symbolFromSymbolTable = (symbolFromSymbolTable.flags & 8388608 /* Alias */ && !ts.getDeclarationOfKind(symbolFromSymbolTable, 233 /* ExportSpecifier */)) ? resolveAlias(symbolFromSymbolTable) : symbolFromSymbolTable;
if (symbolFromSymbolTable.flags & meaning) {
qualify = true;
return true;
@@ -15582,8 +15856,7 @@ var ts;
}
}
function hasExternalModuleSymbol(declaration) {
- return (declaration.kind === 220 /* ModuleDeclaration */ && declaration.name.kind === 9 /* StringLiteral */) ||
- (declaration.kind === 250 /* SourceFile */ && ts.isExternalOrCommonJsModule(declaration));
+ return ts.isAmbientModule(declaration) || (declaration.kind === 251 /* SourceFile */ && ts.isExternalOrCommonJsModule(declaration));
}
function hasVisibleDeclarations(symbol) {
var aliasesToMakeVisible;
@@ -15619,12 +15892,12 @@ var ts;
function isEntityNameVisible(entityName, enclosingDeclaration) {
// get symbol of the first identifier of the entityName
var meaning;
- if (entityName.parent.kind === 154 /* TypeQuery */) {
+ if (entityName.parent.kind === 155 /* TypeQuery */) {
// Typeof value
meaning = 107455 /* Value */ | 1048576 /* ExportValue */;
}
- else if (entityName.kind === 135 /* QualifiedName */ || entityName.kind === 168 /* PropertyAccessExpression */ ||
- entityName.parent.kind === 223 /* ImportEqualsDeclaration */) {
+ else if (entityName.kind === 136 /* QualifiedName */ || entityName.kind === 169 /* PropertyAccessExpression */ ||
+ entityName.parent.kind === 224 /* ImportEqualsDeclaration */) {
// Left identifier from type reference or TypeAlias
// Entity name of the import declaration
meaning = 1536 /* Namespace */;
@@ -15679,15 +15952,20 @@ var ts;
function getTypeAliasForTypeLiteral(type) {
if (type.symbol && type.symbol.flags & 2048 /* TypeLiteral */) {
var node = type.symbol.declarations[0].parent;
- while (node.kind === 160 /* ParenthesizedType */) {
+ while (node.kind === 161 /* ParenthesizedType */) {
node = node.parent;
}
- if (node.kind === 218 /* TypeAliasDeclaration */) {
+ if (node.kind === 219 /* TypeAliasDeclaration */) {
return getSymbolOfNode(node);
}
}
return undefined;
}
+ function isTopLevelInExternalModuleAugmentation(node) {
+ return node && node.parent &&
+ node.parent.kind === 222 /* ModuleBlock */ &&
+ ts.isExternalModuleAugmentation(node.parent.parent);
+ }
function getSymbolDisplayBuilder() {
function getNameOfSymbol(symbol) {
if (symbol.declarations && symbol.declarations.length) {
@@ -15696,10 +15974,10 @@ var ts;
return ts.declarationNameToString(declaration.name);
}
switch (declaration.kind) {
- case 188 /* ClassExpression */:
+ case 189 /* ClassExpression */:
return "(Anonymous class)";
- case 175 /* FunctionExpression */:
- case 176 /* ArrowFunction */:
+ case 176 /* FunctionExpression */:
+ case 177 /* ArrowFunction */:
return "(Anonymous function)";
}
}
@@ -15954,7 +16232,7 @@ var ts;
var isNonLocalFunctionSymbol = !!(symbol.flags & 16 /* Function */) &&
(symbol.parent ||
ts.forEach(symbol.declarations, function (declaration) {
- return declaration.parent.kind === 250 /* SourceFile */ || declaration.parent.kind === 221 /* ModuleBlock */;
+ return declaration.parent.kind === 251 /* SourceFile */ || declaration.parent.kind === 222 /* ModuleBlock */;
}));
if (isStaticMethodSymbol || isNonLocalFunctionSymbol) {
// typeof is allowed only for static/non local functions
@@ -16215,70 +16493,74 @@ var ts;
return false;
function determineIfDeclarationIsVisible() {
switch (node.kind) {
- case 165 /* BindingElement */:
+ case 166 /* BindingElement */:
return isDeclarationVisible(node.parent.parent);
- case 213 /* VariableDeclaration */:
+ case 214 /* VariableDeclaration */:
if (ts.isBindingPattern(node.name) &&
!node.name.elements.length) {
// If the binding pattern is empty, this variable declaration is not visible
return false;
}
// Otherwise fall through
- case 220 /* ModuleDeclaration */:
- case 216 /* ClassDeclaration */:
- case 217 /* InterfaceDeclaration */:
- case 218 /* TypeAliasDeclaration */:
- case 215 /* FunctionDeclaration */:
- case 219 /* EnumDeclaration */:
- case 223 /* ImportEqualsDeclaration */:
+ case 221 /* ModuleDeclaration */:
+ case 217 /* ClassDeclaration */:
+ case 218 /* InterfaceDeclaration */:
+ case 219 /* TypeAliasDeclaration */:
+ case 216 /* FunctionDeclaration */:
+ case 220 /* EnumDeclaration */:
+ case 224 /* ImportEqualsDeclaration */:
+ // external module augmentation is always visible
+ if (ts.isExternalModuleAugmentation(node)) {
+ return true;
+ }
var parent_4 = getDeclarationContainer(node);
// If the node is not exported or it is not ambient module element (except import declaration)
if (!(ts.getCombinedNodeFlags(node) & 2 /* Export */) &&
- !(node.kind !== 223 /* ImportEqualsDeclaration */ && parent_4.kind !== 250 /* SourceFile */ && ts.isInAmbientContext(parent_4))) {
+ !(node.kind !== 224 /* ImportEqualsDeclaration */ && parent_4.kind !== 251 /* SourceFile */ && ts.isInAmbientContext(parent_4))) {
return isGlobalSourceFile(parent_4);
}
// Exported members/ambient module elements (exception import declaration) are visible if parent is visible
return isDeclarationVisible(parent_4);
- case 141 /* PropertyDeclaration */:
- case 140 /* PropertySignature */:
- case 145 /* GetAccessor */:
- case 146 /* SetAccessor */:
- case 143 /* MethodDeclaration */:
- case 142 /* MethodSignature */:
+ case 142 /* PropertyDeclaration */:
+ case 141 /* PropertySignature */:
+ case 146 /* GetAccessor */:
+ case 147 /* SetAccessor */:
+ case 144 /* MethodDeclaration */:
+ case 143 /* MethodSignature */:
if (node.flags & (16 /* Private */ | 32 /* Protected */)) {
// Private/protected properties/methods are not visible
return false;
}
// Public properties/methods are visible if its parents are visible, so const it fall into next case statement
- case 144 /* Constructor */:
- case 148 /* ConstructSignature */:
- case 147 /* CallSignature */:
- case 149 /* IndexSignature */:
- case 138 /* Parameter */:
- case 221 /* ModuleBlock */:
- case 152 /* FunctionType */:
- case 153 /* ConstructorType */:
- case 155 /* TypeLiteral */:
- case 151 /* TypeReference */:
- case 156 /* ArrayType */:
- case 157 /* TupleType */:
- case 158 /* UnionType */:
- case 159 /* IntersectionType */:
- case 160 /* ParenthesizedType */:
+ case 145 /* Constructor */:
+ case 149 /* ConstructSignature */:
+ case 148 /* CallSignature */:
+ case 150 /* IndexSignature */:
+ case 139 /* Parameter */:
+ case 222 /* ModuleBlock */:
+ case 153 /* FunctionType */:
+ case 154 /* ConstructorType */:
+ case 156 /* TypeLiteral */:
+ case 152 /* TypeReference */:
+ case 157 /* ArrayType */:
+ case 158 /* TupleType */:
+ case 159 /* UnionType */:
+ case 160 /* IntersectionType */:
+ case 161 /* ParenthesizedType */:
return isDeclarationVisible(node.parent);
// Default binding, import specifier and namespace import is visible
// only on demand so by default it is not visible
- case 225 /* ImportClause */:
- case 226 /* NamespaceImport */:
- case 228 /* ImportSpecifier */:
+ case 226 /* ImportClause */:
+ case 227 /* NamespaceImport */:
+ case 229 /* ImportSpecifier */:
return false;
// Type parameters are always visible
- case 137 /* TypeParameter */:
+ case 138 /* TypeParameter */:
// Source file is always visible
- case 250 /* SourceFile */:
+ case 251 /* SourceFile */:
return true;
// Export assignments do not create name bindings outside the module
- case 229 /* ExportAssignment */:
+ case 230 /* ExportAssignment */:
return false;
default:
ts.Debug.fail("isDeclarationVisible unknown: SyntaxKind: " + node.kind);
@@ -16287,10 +16569,10 @@ var ts;
}
function collectLinkedAliases(node) {
var exportSymbol;
- if (node.parent && node.parent.kind === 229 /* ExportAssignment */) {
+ if (node.parent && node.parent.kind === 230 /* ExportAssignment */) {
exportSymbol = resolveName(node.parent, node.text, 107455 /* Value */ | 793056 /* Type */ | 1536 /* Namespace */ | 8388608 /* Alias */, ts.Diagnostics.Cannot_find_name_0, node);
}
- else if (node.parent.kind === 232 /* ExportSpecifier */) {
+ else if (node.parent.kind === 233 /* ExportSpecifier */) {
var exportSpecifier = node.parent;
exportSymbol = exportSpecifier.parent.parent.moduleSpecifier ?
getExternalModuleMember(exportSpecifier.parent.parent, exportSpecifier) :
@@ -16313,7 +16595,9 @@ var ts;
var internalModuleReference = declaration.moduleReference;
var firstIdentifier = getFirstIdentifier(internalModuleReference);
var importSymbol = resolveName(declaration, firstIdentifier.text, 107455 /* Value */ | 793056 /* Type */ | 1536 /* Namespace */, ts.Diagnostics.Cannot_find_name_0, firstIdentifier);
- buildVisibleNodeList(importSymbol.declarations);
+ if (importSymbol) {
+ buildVisibleNodeList(importSymbol.declarations);
+ }
}
});
}
@@ -16382,14 +16666,14 @@ var ts;
node = ts.getRootDeclaration(node);
// Parent chain:
// VaribleDeclaration -> VariableDeclarationList -> VariableStatement -> 'Declaration Container'
- return node.kind === 213 /* VariableDeclaration */ ? node.parent.parent.parent : node.parent;
+ return node.kind === 214 /* VariableDeclaration */ ? node.parent.parent.parent : node.parent;
}
function getTypeOfPrototypeProperty(prototype) {
// TypeScript 1.0 spec (April 2014): 8.4
// Every class automatically contains a static property member named 'prototype',
// the type of which is an instantiation of the class type with type Any supplied as a type argument for each type parameter.
// It is an error to explicitly declare a static property member with the name 'prototype'.
- var classType = getDeclaredTypeOfSymbol(prototype.parent);
+ var classType = getDeclaredTypeOfSymbol(getMergedSymbol(prototype.parent));
return classType.typeParameters ? createTypeReference(classType, ts.map(classType.typeParameters, function (_) { return anyType; })) : classType;
}
// Return the type of the given property in the given type, or undefined if no such property exists
@@ -16413,7 +16697,7 @@ var ts;
case 9 /* StringLiteral */:
case 8 /* NumericLiteral */:
return name.text;
- case 136 /* ComputedPropertyName */:
+ case 137 /* ComputedPropertyName */:
if (ts.isStringOrNumericLiteral(name.expression.kind)) {
return name.expression.text;
}
@@ -16421,7 +16705,7 @@ var ts;
return undefined;
}
function isComputedNonLiteralName(name) {
- return name.kind === 136 /* ComputedPropertyName */ && !ts.isStringOrNumericLiteral(name.expression.kind);
+ return name.kind === 137 /* ComputedPropertyName */ && !ts.isStringOrNumericLiteral(name.expression.kind);
}
// Return the inferred type for a binding element
function getTypeForBindingElement(declaration) {
@@ -16441,7 +16725,7 @@ var ts;
return parentType;
}
var type;
- if (pattern.kind === 163 /* ObjectBindingPattern */) {
+ if (pattern.kind === 164 /* ObjectBindingPattern */) {
// Use explicitly specified property name ({ p: xxx } form), or otherwise the implied name ({ p } form)
var name_10 = declaration.propertyName || declaration.name;
if (isComputedNonLiteralName(name_10)) {
@@ -16489,11 +16773,11 @@ var ts;
}
// Return the inferred type for a variable, parameter, or property declaration
function getTypeForVariableLikeDeclaration(declaration) {
- // A variable declared in a for..in statement is always of type any
- if (declaration.parent.parent.kind === 202 /* ForInStatement */) {
- return anyType;
+ // A variable declared in a for..in statement is always of type string
+ if (declaration.parent.parent.kind === 203 /* ForInStatement */) {
+ return stringType;
}
- if (declaration.parent.parent.kind === 203 /* ForOfStatement */) {
+ if (declaration.parent.parent.kind === 204 /* ForOfStatement */) {
// checkRightHandSideOfForOf will return undefined if the for-of expression type was
// missing properties/signatures required to get its iteratedType (like
// [Symbol.iterator] or next). This may be because we accessed properties from anyType,
@@ -16507,11 +16791,11 @@ var ts;
if (declaration.type) {
return getTypeFromTypeNode(declaration.type);
}
- if (declaration.kind === 138 /* Parameter */) {
+ if (declaration.kind === 139 /* Parameter */) {
var func = declaration.parent;
// For a parameter of a set accessor, use the type of the get accessor if one is present
- if (func.kind === 146 /* SetAccessor */ && !ts.hasDynamicName(func)) {
- var getter = ts.getDeclarationOfKind(declaration.parent.symbol, 145 /* GetAccessor */);
+ if (func.kind === 147 /* SetAccessor */ && !ts.hasDynamicName(func)) {
+ var getter = ts.getDeclarationOfKind(declaration.parent.symbol, 146 /* GetAccessor */);
if (getter) {
return getReturnTypeOfSignature(getSignatureFromDeclaration(getter));
}
@@ -16527,7 +16811,7 @@ var ts;
return checkExpressionCached(declaration.initializer);
}
// If it is a short-hand property assignment, use the type of the identifier
- if (declaration.kind === 248 /* ShorthandPropertyAssignment */) {
+ if (declaration.kind === 249 /* ShorthandPropertyAssignment */) {
return checkIdentifier(declaration.name);
}
// If the declaration specifies a binding pattern, use the type implied by the binding pattern
@@ -16583,7 +16867,7 @@ var ts;
return languageVersion >= 2 /* ES6 */ ? createIterableType(anyType) : anyArrayType;
}
// If the pattern has at least one element, and no rest element, then it should imply a tuple type.
- var elementTypes = ts.map(elements, function (e) { return e.kind === 189 /* OmittedExpression */ ? anyType : getTypeFromBindingElement(e, includePatternInType); });
+ var elementTypes = ts.map(elements, function (e) { return e.kind === 190 /* OmittedExpression */ ? anyType : getTypeFromBindingElement(e, includePatternInType); });
if (includePatternInType) {
var result = createNewTupleType(elementTypes);
result.pattern = pattern;
@@ -16599,7 +16883,7 @@ var ts;
// parameter with no type annotation or initializer, the type implied by the binding pattern becomes the type of
// the parameter.
function getTypeFromBindingPattern(pattern, includePatternInType) {
- return pattern.kind === 163 /* ObjectBindingPattern */
+ return pattern.kind === 164 /* ObjectBindingPattern */
? getTypeFromObjectBindingPattern(pattern, includePatternInType)
: getTypeFromArrayBindingPattern(pattern, includePatternInType);
}
@@ -16621,10 +16905,10 @@ var ts;
// During a normal type check we'll never get to here with a property assignment (the check of the containing
// object literal uses a different path). We exclude widening only so that language services and type verification
// tools see the actual type.
- if (declaration.kind === 247 /* PropertyAssignment */) {
+ if (declaration.kind === 248 /* PropertyAssignment */) {
return type;
}
- if (type.flags & 134217728 /* PredicateType */ && (declaration.kind === 141 /* PropertyDeclaration */ || declaration.kind === 140 /* PropertySignature */)) {
+ if (type.flags & 134217728 /* PredicateType */ && (declaration.kind === 142 /* PropertyDeclaration */ || declaration.kind === 141 /* PropertySignature */)) {
return type;
}
return getWidenedType(type);
@@ -16634,7 +16918,7 @@ var ts;
// Report implicit any errors unless this is a private property within an ambient declaration
if (reportErrors && compilerOptions.noImplicitAny) {
var root = ts.getRootDeclaration(declaration);
- if (!isPrivateWithinAmbient(root) && !(root.kind === 138 /* Parameter */ && isPrivateWithinAmbient(root.parent))) {
+ if (!isPrivateWithinAmbient(root) && !(root.kind === 139 /* Parameter */ && isPrivateWithinAmbient(root.parent))) {
reportImplicitAnyError(declaration, type);
}
}
@@ -16649,21 +16933,21 @@ var ts;
}
// Handle catch clause variables
var declaration = symbol.valueDeclaration;
- if (declaration.parent.kind === 246 /* CatchClause */) {
+ if (declaration.parent.kind === 247 /* CatchClause */) {
return links.type = anyType;
}
// Handle export default expressions
- if (declaration.kind === 229 /* ExportAssignment */) {
+ if (declaration.kind === 230 /* ExportAssignment */) {
return links.type = checkExpression(declaration.expression);
}
// Handle module.exports = expr
- if (declaration.kind === 183 /* BinaryExpression */) {
+ if (declaration.kind === 184 /* BinaryExpression */) {
return links.type = checkExpression(declaration.right);
}
- if (declaration.kind === 168 /* PropertyAccessExpression */) {
+ if (declaration.kind === 169 /* PropertyAccessExpression */) {
// Declarations only exist for property access expressions for certain
// special assignment kinds
- if (declaration.parent.kind === 183 /* BinaryExpression */) {
+ if (declaration.parent.kind === 184 /* BinaryExpression */) {
// Handle exports.p = expr or this.p = expr or className.prototype.method = expr
return links.type = checkExpressionCached(declaration.parent.right);
}
@@ -16693,7 +16977,7 @@ var ts;
}
function getAnnotatedAccessorType(accessor) {
if (accessor) {
- if (accessor.kind === 145 /* GetAccessor */) {
+ if (accessor.kind === 146 /* GetAccessor */) {
return accessor.type && getTypeFromTypeNode(accessor.type);
}
else {
@@ -16709,8 +16993,8 @@ var ts;
if (!pushTypeResolution(symbol, 0 /* Type */)) {
return unknownType;
}
- var getter = ts.getDeclarationOfKind(symbol, 145 /* GetAccessor */);
- var setter = ts.getDeclarationOfKind(symbol, 146 /* SetAccessor */);
+ var getter = ts.getDeclarationOfKind(symbol, 146 /* GetAccessor */);
+ var setter = ts.getDeclarationOfKind(symbol, 147 /* SetAccessor */);
var type;
// First try to see if the user specified a return type on the get-accessor.
var getterReturnType = getAnnotatedAccessorType(getter);
@@ -16739,7 +17023,7 @@ var ts;
if (!popTypeResolution()) {
type = anyType;
if (compilerOptions.noImplicitAny) {
- var getter_1 = ts.getDeclarationOfKind(symbol, 145 /* GetAccessor */);
+ var getter_1 = ts.getDeclarationOfKind(symbol, 146 /* GetAccessor */);
error(getter_1, ts.Diagnostics._0_implicitly_has_return_type_any_because_it_does_not_have_a_return_type_annotation_and_is_referenced_directly_or_indirectly_in_one_of_its_return_expressions, symbolToString(symbol));
}
}
@@ -16839,9 +17123,9 @@ var ts;
if (!node) {
return typeParameters;
}
- if (node.kind === 216 /* ClassDeclaration */ || node.kind === 188 /* ClassExpression */ ||
- node.kind === 215 /* FunctionDeclaration */ || node.kind === 175 /* FunctionExpression */ ||
- node.kind === 143 /* MethodDeclaration */ || node.kind === 176 /* ArrowFunction */) {
+ if (node.kind === 217 /* ClassDeclaration */ || node.kind === 189 /* ClassExpression */ ||
+ node.kind === 216 /* FunctionDeclaration */ || node.kind === 176 /* FunctionExpression */ ||
+ node.kind === 144 /* MethodDeclaration */ || node.kind === 177 /* ArrowFunction */) {
var declarations = node.typeParameters;
if (declarations) {
return appendTypeParameters(appendOuterTypeParameters(typeParameters, node), declarations);
@@ -16851,7 +17135,7 @@ var ts;
}
// The outer type parameters are those defined by enclosing generic classes, methods, or functions.
function getOuterTypeParametersOfClassOrInterface(symbol) {
- var declaration = symbol.flags & 32 /* Class */ ? symbol.valueDeclaration : ts.getDeclarationOfKind(symbol, 217 /* InterfaceDeclaration */);
+ var declaration = symbol.flags & 32 /* Class */ ? symbol.valueDeclaration : ts.getDeclarationOfKind(symbol, 218 /* InterfaceDeclaration */);
return appendOuterTypeParameters(undefined, declaration);
}
// The local type parameters are the combined set of type parameters from all declarations of the class,
@@ -16860,8 +17144,8 @@ var ts;
var result;
for (var _i = 0, _a = symbol.declarations; _i < _a.length; _i++) {
var node = _a[_i];
- if (node.kind === 217 /* InterfaceDeclaration */ || node.kind === 216 /* ClassDeclaration */ ||
- node.kind === 188 /* ClassExpression */ || node.kind === 218 /* TypeAliasDeclaration */) {
+ if (node.kind === 218 /* InterfaceDeclaration */ || node.kind === 217 /* ClassDeclaration */ ||
+ node.kind === 189 /* ClassExpression */ || node.kind === 219 /* TypeAliasDeclaration */) {
var declaration = node;
if (declaration.typeParameters) {
result = appendTypeParameters(result, declaration.typeParameters);
@@ -17001,7 +17285,7 @@ var ts;
type.resolvedBaseTypes = type.resolvedBaseTypes || emptyArray;
for (var _i = 0, _a = type.symbol.declarations; _i < _a.length; _i++) {
var declaration = _a[_i];
- if (declaration.kind === 217 /* InterfaceDeclaration */ && ts.getInterfaceBaseTypeNodes(declaration)) {
+ if (declaration.kind === 218 /* InterfaceDeclaration */ && ts.getInterfaceBaseTypeNodes(declaration)) {
for (var _b = 0, _c = ts.getInterfaceBaseTypeNodes(declaration); _b < _c.length; _b++) {
var node = _c[_b];
var baseType = getTypeFromTypeNode(node);
@@ -17033,7 +17317,7 @@ var ts;
function isIndependentInterface(symbol) {
for (var _i = 0, _a = symbol.declarations; _i < _a.length; _i++) {
var declaration = _a[_i];
- if (declaration.kind === 217 /* InterfaceDeclaration */) {
+ if (declaration.kind === 218 /* InterfaceDeclaration */) {
if (declaration.flags & 262144 /* ContainsThis */) {
return false;
}
@@ -17089,7 +17373,7 @@ var ts;
if (!pushTypeResolution(symbol, 2 /* DeclaredType */)) {
return unknownType;
}
- var declaration = ts.getDeclarationOfKind(symbol, 218 /* TypeAliasDeclaration */);
+ var declaration = ts.getDeclarationOfKind(symbol, 219 /* TypeAliasDeclaration */);
var type = getTypeFromTypeNode(declaration.type);
if (popTypeResolution()) {
links.typeParameters = getLocalTypeParametersOfClassOrInterfaceOrTypeAlias(symbol);
@@ -17122,7 +17406,7 @@ var ts;
if (!links.declaredType) {
var type = createType(512 /* TypeParameter */);
type.symbol = symbol;
- if (!ts.getDeclarationOfKind(symbol, 137 /* TypeParameter */).constraint) {
+ if (!ts.getDeclarationOfKind(symbol, 138 /* TypeParameter */).constraint) {
type.constraint = noConstraintType;
}
links.declaredType = type;
@@ -17178,11 +17462,11 @@ var ts;
case 120 /* BooleanKeyword */:
case 131 /* SymbolKeyword */:
case 103 /* VoidKeyword */:
- case 162 /* StringLiteralType */:
+ case 163 /* StringLiteralType */:
return true;
- case 156 /* ArrayType */:
+ case 157 /* ArrayType */:
return isIndependentType(node.elementType);
- case 151 /* TypeReference */:
+ case 152 /* TypeReference */:
return isIndependentTypeReference(node);
}
return false;
@@ -17195,7 +17479,7 @@ var ts;
// A function-like declaration is considered independent (free of this references) if it has a return type
// annotation that is considered independent and if each parameter is considered independent.
function isIndependentFunctionLikeDeclaration(node) {
- if (node.kind !== 144 /* Constructor */ && (!node.type || !isIndependentType(node.type))) {
+ if (node.kind !== 145 /* Constructor */ && (!node.type || !isIndependentType(node.type))) {
return false;
}
for (var _i = 0, _a = node.parameters; _i < _a.length; _i++) {
@@ -17216,12 +17500,12 @@ var ts;
var declaration = symbol.declarations[0];
if (declaration) {
switch (declaration.kind) {
- case 141 /* PropertyDeclaration */:
- case 140 /* PropertySignature */:
+ case 142 /* PropertyDeclaration */:
+ case 141 /* PropertySignature */:
return isIndependentVariableLikeDeclaration(declaration);
- case 143 /* MethodDeclaration */:
- case 142 /* MethodSignature */:
- case 144 /* Constructor */:
+ case 144 /* MethodDeclaration */:
+ case 143 /* MethodSignature */:
+ case 145 /* Constructor */:
return isIndependentFunctionLikeDeclaration(declaration);
}
}
@@ -17783,7 +18067,7 @@ var ts;
function getSignatureFromDeclaration(declaration) {
var links = getNodeLinks(declaration);
if (!links.resolvedSignature) {
- var classType = declaration.kind === 144 /* Constructor */ ?
+ var classType = declaration.kind === 145 /* Constructor */ ?
getDeclaredTypeOfClassOrInterface(getMergedSymbol(declaration.parent.symbol))
: undefined;
var typeParameters = classType ? classType.localTypeParameters :
@@ -17800,7 +18084,7 @@ var ts;
paramSymbol = resolvedSymbol;
}
parameters.push(paramSymbol);
- if (param.type && param.type.kind === 162 /* StringLiteralType */) {
+ if (param.type && param.type.kind === 163 /* StringLiteralType */) {
hasStringLiterals = true;
}
if (param.initializer || param.questionToken || param.dotDotDotToken) {
@@ -17826,8 +18110,8 @@ var ts;
else {
// TypeScript 1.0 spec (April 2014):
// If only one accessor includes a type annotation, the other behaves as if it had the same type annotation.
- if (declaration.kind === 145 /* GetAccessor */ && !ts.hasDynamicName(declaration)) {
- var setter = ts.getDeclarationOfKind(declaration.symbol, 146 /* SetAccessor */);
+ if (declaration.kind === 146 /* GetAccessor */ && !ts.hasDynamicName(declaration)) {
+ var setter = ts.getDeclarationOfKind(declaration.symbol, 147 /* SetAccessor */);
returnType = getAnnotatedAccessorType(setter);
}
if (!returnType && ts.nodeIsMissing(declaration.body)) {
@@ -17845,19 +18129,19 @@ var ts;
for (var i = 0, len = symbol.declarations.length; i < len; i++) {
var node = symbol.declarations[i];
switch (node.kind) {
- case 152 /* FunctionType */:
- case 153 /* ConstructorType */:
- case 215 /* FunctionDeclaration */:
- case 143 /* MethodDeclaration */:
- case 142 /* MethodSignature */:
- case 144 /* Constructor */:
- case 147 /* CallSignature */:
- case 148 /* ConstructSignature */:
- case 149 /* IndexSignature */:
- case 145 /* GetAccessor */:
- case 146 /* SetAccessor */:
- case 175 /* FunctionExpression */:
- case 176 /* ArrowFunction */:
+ case 153 /* FunctionType */:
+ case 154 /* ConstructorType */:
+ case 216 /* FunctionDeclaration */:
+ case 144 /* MethodDeclaration */:
+ case 143 /* MethodSignature */:
+ case 145 /* Constructor */:
+ case 148 /* CallSignature */:
+ case 149 /* ConstructSignature */:
+ case 150 /* IndexSignature */:
+ case 146 /* GetAccessor */:
+ case 147 /* SetAccessor */:
+ case 176 /* FunctionExpression */:
+ case 177 /* ArrowFunction */:
// Don't include signature if node is the implementation of an overloaded function. A node is considered
// an implementation node if it has a body and the previous node is of the same kind and immediately
// precedes the implementation node (i.e. has the same parent and ends where the implementation starts).
@@ -17944,7 +18228,7 @@ var ts;
// object type literal or interface (using the new keyword). Each way of declaring a constructor
// will result in a different declaration kind.
if (!signature.isolatedSignatureType) {
- var isConstructor = signature.declaration.kind === 144 /* Constructor */ || signature.declaration.kind === 148 /* ConstructSignature */;
+ var isConstructor = signature.declaration.kind === 145 /* Constructor */ || signature.declaration.kind === 149 /* ConstructSignature */;
var type = createObjectType(65536 /* Anonymous */ | 262144 /* FromSignature */);
type.members = emptySymbols;
type.properties = emptyArray;
@@ -17981,7 +18265,7 @@ var ts;
: undefined;
}
function getConstraintDeclaration(type) {
- return ts.getDeclarationOfKind(type.symbol, 137 /* TypeParameter */).constraint;
+ return ts.getDeclarationOfKind(type.symbol, 138 /* TypeParameter */).constraint;
}
function hasConstraintReferenceTo(type, target) {
var checked;
@@ -18014,7 +18298,7 @@ var ts;
return typeParameter.constraint === noConstraintType ? undefined : typeParameter.constraint;
}
function getParentSymbolOfTypeParameter(typeParameter) {
- return getSymbolOfNode(ts.getDeclarationOfKind(typeParameter.symbol, 137 /* TypeParameter */).parent);
+ return getSymbolOfNode(ts.getDeclarationOfKind(typeParameter.symbol, 138 /* TypeParameter */).parent);
}
function getTypeListId(types) {
if (types) {
@@ -18113,7 +18397,7 @@ var ts;
var links = getNodeLinks(node);
if (!links.resolvedType) {
// We only support expressions that are simple qualified names. For other expressions this produces undefined.
- var typeNameOrExpression = node.kind === 151 /* TypeReference */ ? node.typeName :
+ var typeNameOrExpression = node.kind === 152 /* TypeReference */ ? node.typeName :
ts.isSupportedExpressionWithTypeArguments(node) ? node.expression :
undefined;
var symbol = typeNameOrExpression && resolveEntityName(typeNameOrExpression, 793056 /* Type */) || unknownSymbol;
@@ -18145,9 +18429,9 @@ var ts;
for (var _i = 0, declarations_3 = declarations; _i < declarations_3.length; _i++) {
var declaration = declarations_3[_i];
switch (declaration.kind) {
- case 216 /* ClassDeclaration */:
- case 217 /* InterfaceDeclaration */:
- case 219 /* EnumDeclaration */:
+ case 217 /* ClassDeclaration */:
+ case 218 /* InterfaceDeclaration */:
+ case 220 /* EnumDeclaration */:
return declaration;
}
}
@@ -18388,9 +18672,9 @@ var ts;
function getThisType(node) {
var container = ts.getThisContainer(node, /*includeArrowFunctions*/ false);
var parent = container && container.parent;
- if (parent && (ts.isClassLike(parent) || parent.kind === 217 /* InterfaceDeclaration */)) {
+ if (parent && (ts.isClassLike(parent) || parent.kind === 218 /* InterfaceDeclaration */)) {
if (!(container.flags & 64 /* Static */) &&
- (container.kind !== 144 /* Constructor */ || ts.isNodeDescendentOf(node, container.body))) {
+ (container.kind !== 145 /* Constructor */ || ts.isNodeDescendentOf(node, container.body))) {
return getDeclaredTypeOfClassOrInterface(getSymbolOfNode(parent)).thisType;
}
}
@@ -18434,36 +18718,36 @@ var ts;
return esSymbolType;
case 103 /* VoidKeyword */:
return voidType;
- case 161 /* ThisType */:
+ case 162 /* ThisType */:
return getTypeFromThisTypeNode(node);
- case 162 /* StringLiteralType */:
+ case 163 /* StringLiteralType */:
return getTypeFromStringLiteralTypeNode(node);
- case 151 /* TypeReference */:
+ case 152 /* TypeReference */:
return getTypeFromTypeReference(node);
- case 150 /* TypePredicate */:
+ case 151 /* TypePredicate */:
return getTypeFromPredicateTypeNode(node);
- case 190 /* ExpressionWithTypeArguments */:
+ case 191 /* ExpressionWithTypeArguments */:
return getTypeFromTypeReference(node);
- case 154 /* TypeQuery */:
+ case 155 /* TypeQuery */:
return getTypeFromTypeQueryNode(node);
- case 156 /* ArrayType */:
+ case 157 /* ArrayType */:
return getTypeFromArrayTypeNode(node);
- case 157 /* TupleType */:
+ case 158 /* TupleType */:
return getTypeFromTupleTypeNode(node);
- case 158 /* UnionType */:
+ case 159 /* UnionType */:
return getTypeFromUnionTypeNode(node);
- case 159 /* IntersectionType */:
+ case 160 /* IntersectionType */:
return getTypeFromIntersectionTypeNode(node);
- case 160 /* ParenthesizedType */:
+ case 161 /* ParenthesizedType */:
return getTypeFromTypeNode(node.type);
- case 152 /* FunctionType */:
- case 153 /* ConstructorType */:
- case 155 /* TypeLiteral */:
+ case 153 /* FunctionType */:
+ case 154 /* ConstructorType */:
+ case 156 /* TypeLiteral */:
return getTypeFromTypeLiteralOrFunctionOrConstructorTypeNode(node);
// This function assumes that an identifier or qualified name is a type expression
// Callers should first ensure this by calling isTypeNode
case 69 /* Identifier */:
- case 135 /* QualifiedName */:
+ case 136 /* QualifiedName */:
var symbol = getSymbolAtLocation(node);
return symbol && getDeclaredTypeOfSymbol(symbol);
default:
@@ -18654,27 +18938,27 @@ var ts;
// Returns true if the given expression contains (at any level of nesting) a function or arrow expression
// that is subject to contextual typing.
function isContextSensitive(node) {
- ts.Debug.assert(node.kind !== 143 /* MethodDeclaration */ || ts.isObjectLiteralMethod(node));
+ ts.Debug.assert(node.kind !== 144 /* MethodDeclaration */ || ts.isObjectLiteralMethod(node));
switch (node.kind) {
- case 175 /* FunctionExpression */:
- case 176 /* ArrowFunction */:
+ case 176 /* FunctionExpression */:
+ case 177 /* ArrowFunction */:
return isContextSensitiveFunctionLikeDeclaration(node);
- case 167 /* ObjectLiteralExpression */:
+ case 168 /* ObjectLiteralExpression */:
return ts.forEach(node.properties, isContextSensitive);
- case 166 /* ArrayLiteralExpression */:
+ case 167 /* ArrayLiteralExpression */:
return ts.forEach(node.elements, isContextSensitive);
- case 184 /* ConditionalExpression */:
+ case 185 /* ConditionalExpression */:
return isContextSensitive(node.whenTrue) ||
isContextSensitive(node.whenFalse);
- case 183 /* BinaryExpression */:
+ case 184 /* BinaryExpression */:
return node.operatorToken.kind === 52 /* BarBarToken */ &&
(isContextSensitive(node.left) || isContextSensitive(node.right));
- case 247 /* PropertyAssignment */:
+ case 248 /* PropertyAssignment */:
return isContextSensitive(node.initializer);
- case 143 /* MethodDeclaration */:
- case 142 /* MethodSignature */:
+ case 144 /* MethodDeclaration */:
+ case 143 /* MethodSignature */:
return isContextSensitiveFunctionLikeDeclaration(node);
- case 174 /* ParenthesizedExpression */:
+ case 175 /* ParenthesizedExpression */:
return isContextSensitive(node.expression);
}
return false;
@@ -18703,6 +18987,9 @@ var ts;
function compareTypesIdentical(source, target) {
return checkTypeRelatedTo(source, target, identityRelation, /*errorNode*/ undefined) ? -1 /* True */ : 0 /* False */;
}
+ function compareTypesAssignable(source, target) {
+ return checkTypeRelatedTo(source, target, assignableRelation, /*errorNode*/ undefined) ? -1 /* True */ : 0 /* False */;
+ }
function isTypeSubtypeOf(source, target) {
return checkTypeSubtypeOf(source, target, /*errorNode*/ undefined);
}
@@ -18715,47 +19002,60 @@ var ts;
function checkTypeAssignableTo(source, target, errorNode, headMessage, containingMessageChain) {
return checkTypeRelatedTo(source, target, assignableRelation, errorNode, headMessage, containingMessageChain);
}
+ function isSignatureAssignableTo(source, target, ignoreReturnTypes) {
+ return compareSignaturesRelated(source, target, ignoreReturnTypes, /*reportErrors*/ false, /*errorReporter*/ undefined, compareTypesAssignable) !== 0 /* False */;
+ }
/**
* See signatureRelatedTo, compareSignaturesIdentical
*/
- function isSignatureAssignableTo(source, target, ignoreReturnTypes) {
+ function compareSignaturesRelated(source, target, ignoreReturnTypes, reportErrors, errorReporter, compareTypes) {
// TODO (drosen): De-duplicate code between related functions.
if (source === target) {
- return true;
+ return -1 /* True */;
}
if (!target.hasRestParameter && source.minArgumentCount > target.parameters.length) {
- return false;
+ return 0 /* False */;
}
// Spec 1.0 Section 3.8.3 & 3.8.4:
// M and N (the signatures) are instantiated using type Any as the type argument for all type parameters declared by M and N
source = getErasedSignature(source);
target = getErasedSignature(target);
+ var result = -1 /* True */;
var sourceMax = getNumNonRestParameters(source);
var targetMax = getNumNonRestParameters(target);
var checkCount = getNumParametersToCheckForSignatureRelatability(source, sourceMax, target, targetMax);
+ var sourceParams = source.parameters;
+ var targetParams = target.parameters;
for (var i = 0; i < checkCount; i++) {
- var s = i < sourceMax ? getTypeOfSymbol(source.parameters[i]) : getRestTypeOfSignature(source);
- var t = i < targetMax ? getTypeOfSymbol(target.parameters[i]) : getRestTypeOfSignature(target);
- var related = isTypeAssignableTo(t, s) || isTypeAssignableTo(s, t);
+ var s = i < sourceMax ? getTypeOfSymbol(sourceParams[i]) : getRestTypeOfSignature(source);
+ var t = i < targetMax ? getTypeOfSymbol(targetParams[i]) : getRestTypeOfSignature(target);
+ var related = compareTypes(t, s, /*reportErrors*/ false) || compareTypes(s, t, reportErrors);
if (!related) {
- return false;
+ if (reportErrors) {
+ errorReporter(ts.Diagnostics.Types_of_parameters_0_and_1_are_incompatible, sourceParams[i < sourceMax ? i : sourceMax].name, targetParams[i < targetMax ? i : targetMax].name);
+ }
+ return 0 /* False */;
}
+ result &= related;
}
if (!ignoreReturnTypes) {
var targetReturnType = getReturnTypeOfSignature(target);
if (targetReturnType === voidType) {
- return true;
+ return result;
}
var sourceReturnType = getReturnTypeOfSignature(source);
// The following block preserves behavior forbidding boolean returning functions from being assignable to type guard returning functions
if (targetReturnType.flags & 134217728 /* PredicateType */ && targetReturnType.predicate.kind === 1 /* Identifier */) {
if (!(sourceReturnType.flags & 134217728 /* PredicateType */)) {
- return false;
+ if (reportErrors) {
+ errorReporter(ts.Diagnostics.Signature_0_must_have_a_type_predicate, signatureToString(source));
+ }
+ return 0 /* False */;
}
}
- return isTypeAssignableTo(sourceReturnType, targetReturnType);
+ result &= compareTypes(sourceReturnType, targetReturnType, reportErrors);
}
- return true;
+ return result;
}
function isImplementationCompatibleWithOverload(implementation, overload) {
var erasedSource = getErasedSignature(implementation);
@@ -18812,22 +19112,12 @@ var ts;
var expandingFlags;
var depth = 0;
var overflow = false;
- var elaborateErrors = false;
ts.Debug.assert(relation !== identityRelation || !errorNode, "no error reporting in identity checking");
- var result = isRelatedTo(source, target, errorNode !== undefined, headMessage);
+ var result = isRelatedTo(source, target, /*reportErrors*/ !!errorNode, headMessage);
if (overflow) {
error(errorNode, ts.Diagnostics.Excessive_stack_depth_comparing_types_0_and_1, typeToString(source), typeToString(target));
}
else if (errorInfo) {
- // If we already computed this relation, but in a context where we didn't want to report errors (e.g. overload resolution),
- // then we'll only have a top-level error (e.g. 'Class X does not implement interface Y') without any details. If this happened,
- // request a recompuation to get a complete error message. This will be skipped if we've already done this computation in a context
- // where errors were being reported.
- if (errorInfo.next === undefined) {
- errorInfo = undefined;
- elaborateErrors = true;
- isRelatedTo(source, target, errorNode !== undefined, headMessage);
- }
if (containingMessageChain) {
errorInfo = ts.concatenateDiagnosticMessageChains(containingMessageChain, errorInfo);
}
@@ -18835,6 +19125,7 @@ var ts;
}
return result !== 0 /* False */;
function reportError(message, arg0, arg1, arg2) {
+ ts.Debug.assert(!!errorNode);
errorInfo = ts.chainDiagnosticMessages(errorInfo, message, arg0, arg1, arg2);
}
function reportRelationError(message, source, target) {
@@ -18973,14 +19264,14 @@ var ts;
}
// Even if relationship doesn't hold for unions, intersections, or generic type references,
// it may hold in a structural comparison.
- var apparentType = getApparentType(source);
+ var apparentSource = getApparentType(source);
// In a check of the form X = A & B, we will have previously checked if A relates to X or B relates
// to X. Failing both of those we want to check if the aggregation of A and B's members structurally
// relates to X. Thus, we include intersection types on the source side here.
- if (apparentType.flags & (80896 /* ObjectType */ | 32768 /* Intersection */) && target.flags & 80896 /* ObjectType */) {
+ if (apparentSource.flags & (80896 /* ObjectType */ | 32768 /* Intersection */) && target.flags & 80896 /* ObjectType */) {
// Report structural errors only if we haven't reported any errors yet
- var reportStructuralErrors = reportErrors && errorInfo === saveErrorInfo;
- if (result = objectTypeRelatedTo(apparentType, source, target, reportStructuralErrors)) {
+ var reportStructuralErrors = reportErrors && errorInfo === saveErrorInfo && !(source.flags & 16777726 /* Primitive */);
+ if (result = objectTypeRelatedTo(apparentSource, source, target, reportStructuralErrors)) {
errorInfo = saveErrorInfo;
return result;
}
@@ -19043,6 +19334,7 @@ var ts;
// We know *exactly* where things went wrong when comparing the types.
// Use this property as the error node as this will be more helpful in
// reasoning about what went wrong.
+ ts.Debug.assert(!!errorNode);
errorNode = prop.valueDeclaration;
reportError(ts.Diagnostics.Object_literal_may_only_specify_known_properties_and_0_does_not_exist_in_type_1, symbolToString(prop), typeToString(target));
}
@@ -19140,7 +19432,7 @@ var ts;
var id = relation !== identityRelation || source.id < target.id ? source.id + "," + target.id : target.id + "," + source.id;
var related = relation[id];
if (related !== undefined) {
- if (elaborateErrors && related === 2 /* Failed */) {
+ if (reportErrors && related === 2 /* Failed */) {
// We are elaborating errors and the cached result is an unreported failure. Record the result as a reported
// failure and continue computing the relation such that errors get reported.
relation[id] = 3 /* FailedAndReported */;
@@ -19354,7 +19646,7 @@ var ts;
}
// don't elaborate the primitive apparent types (like Number)
// because the actual primitives will have already been reported.
- if (shouldElaborateErrors && !isPrimitiveApparentType(source)) {
+ if (shouldElaborateErrors) {
reportError(ts.Diagnostics.Type_0_provides_no_match_for_the_signature_1, typeToString(source), signatureToString(t, /*enclosingDeclaration*/ undefined, /*flags*/ undefined, kind));
}
return 0 /* False */;
@@ -19363,72 +19655,10 @@ var ts;
return result;
}
/**
- * See signatureAssignableTo, signatureAssignableTo
+ * See signatureAssignableTo, compareSignaturesIdentical
*/
function signatureRelatedTo(source, target, reportErrors) {
- // TODO (drosen): De-duplicate code between related functions.
- if (source === target) {
- return -1 /* True */;
- }
- if (!target.hasRestParameter && source.minArgumentCount > target.parameters.length) {
- return 0 /* False */;
- }
- var sourceMax = source.parameters.length;
- var targetMax = target.parameters.length;
- var checkCount;
- if (source.hasRestParameter && target.hasRestParameter) {
- checkCount = sourceMax > targetMax ? sourceMax : targetMax;
- sourceMax--;
- targetMax--;
- }
- else if (source.hasRestParameter) {
- sourceMax--;
- checkCount = targetMax;
- }
- else if (target.hasRestParameter) {
- targetMax--;
- checkCount = sourceMax;
- }
- else {
- checkCount = sourceMax < targetMax ? sourceMax : targetMax;
- }
- // Spec 1.0 Section 3.8.3 & 3.8.4:
- // M and N (the signatures) are instantiated using type Any as the type argument for all type parameters declared by M and N
- source = getErasedSignature(source);
- target = getErasedSignature(target);
- var result = -1 /* True */;
- for (var i = 0; i < checkCount; i++) {
- var s = i < sourceMax ? getTypeOfSymbol(source.parameters[i]) : getRestTypeOfSignature(source);
- var t = i < targetMax ? getTypeOfSymbol(target.parameters[i]) : getRestTypeOfSignature(target);
- var saveErrorInfo = errorInfo;
- var related = isRelatedTo(s, t, reportErrors);
- if (!related) {
- related = isRelatedTo(t, s, /*reportErrors*/ false);
- if (!related) {
- if (reportErrors) {
- reportError(ts.Diagnostics.Types_of_parameters_0_and_1_are_incompatible, source.parameters[i < sourceMax ? i : sourceMax].name, target.parameters[i < targetMax ? i : targetMax].name);
- }
- return 0 /* False */;
- }
- errorInfo = saveErrorInfo;
- }
- result &= related;
- }
- var targetReturnType = getReturnTypeOfSignature(target);
- if (targetReturnType === voidType) {
- return result;
- }
- var sourceReturnType = getReturnTypeOfSignature(source);
- // The following block preserves behavior forbidding boolean returning functions from being assignable to type guard returning functions
- if (targetReturnType.flags & 134217728 /* PredicateType */ && targetReturnType.predicate.kind === 1 /* Identifier */) {
- if (!(sourceReturnType.flags & 134217728 /* PredicateType */)) {
- if (reportErrors) {
- reportError(ts.Diagnostics.Signature_0_must_have_a_type_predicate, signatureToString(source));
- }
- return 0 /* False */;
- }
- }
- return result & isRelatedTo(sourceReturnType, targetReturnType, reportErrors);
+ return compareSignaturesRelated(source, target, /*ignoreReturnTypes*/ false, reportErrors, reportError, isRelatedTo);
}
function signaturesIdenticalTo(source, target, kind) {
var sourceSignatures = getSignaturesOfType(source, kind);
@@ -19844,22 +20074,22 @@ var ts;
var typeAsString = typeToString(getWidenedType(type));
var diagnostic;
switch (declaration.kind) {
- case 141 /* PropertyDeclaration */:
- case 140 /* PropertySignature */:
+ case 142 /* PropertyDeclaration */:
+ case 141 /* PropertySignature */:
diagnostic = ts.Diagnostics.Member_0_implicitly_has_an_1_type;
break;
- case 138 /* Parameter */:
+ case 139 /* Parameter */:
diagnostic = declaration.dotDotDotToken ?
ts.Diagnostics.Rest_parameter_0_implicitly_has_an_any_type :
ts.Diagnostics.Parameter_0_implicitly_has_an_1_type;
break;
- case 215 /* FunctionDeclaration */:
- case 143 /* MethodDeclaration */:
- case 142 /* MethodSignature */:
- case 145 /* GetAccessor */:
- case 146 /* SetAccessor */:
- case 175 /* FunctionExpression */:
- case 176 /* ArrowFunction */:
+ case 216 /* FunctionDeclaration */:
+ case 144 /* MethodDeclaration */:
+ case 143 /* MethodSignature */:
+ case 146 /* GetAccessor */:
+ case 147 /* SetAccessor */:
+ case 176 /* FunctionExpression */:
+ case 177 /* ArrowFunction */:
if (!declaration.name) {
error(declaration, ts.Diagnostics.Function_expression_which_lacks_return_type_annotation_implicitly_has_an_0_return_type, typeAsString);
return;
@@ -20196,10 +20426,10 @@ var ts;
// The expression is restricted to a single identifier or a sequence of identifiers separated by periods
while (node) {
switch (node.kind) {
- case 154 /* TypeQuery */:
+ case 155 /* TypeQuery */:
return true;
case 69 /* Identifier */:
- case 135 /* QualifiedName */:
+ case 136 /* QualifiedName */:
node = node.parent;
continue;
default:
@@ -20241,55 +20471,55 @@ var ts;
}
function isAssignedIn(node) {
switch (node.kind) {
- case 183 /* BinaryExpression */:
+ case 184 /* BinaryExpression */:
return isAssignedInBinaryExpression(node);
- case 213 /* VariableDeclaration */:
- case 165 /* BindingElement */:
+ case 214 /* VariableDeclaration */:
+ case 166 /* BindingElement */:
return isAssignedInVariableDeclaration(node);
- case 163 /* ObjectBindingPattern */:
- case 164 /* ArrayBindingPattern */:
- case 166 /* ArrayLiteralExpression */:
- case 167 /* ObjectLiteralExpression */:
- case 168 /* PropertyAccessExpression */:
- case 169 /* ElementAccessExpression */:
- case 170 /* CallExpression */:
- case 171 /* NewExpression */:
- case 173 /* TypeAssertionExpression */:
- case 191 /* AsExpression */:
- case 174 /* ParenthesizedExpression */:
- case 181 /* PrefixUnaryExpression */:
- case 177 /* DeleteExpression */:
- case 180 /* AwaitExpression */:
- case 178 /* TypeOfExpression */:
- case 179 /* VoidExpression */:
- case 182 /* PostfixUnaryExpression */:
- case 186 /* YieldExpression */:
- case 184 /* ConditionalExpression */:
- case 187 /* SpreadElementExpression */:
- case 194 /* Block */:
- case 195 /* VariableStatement */:
- case 197 /* ExpressionStatement */:
- case 198 /* IfStatement */:
- case 199 /* DoStatement */:
- case 200 /* WhileStatement */:
- case 201 /* ForStatement */:
- case 202 /* ForInStatement */:
- case 203 /* ForOfStatement */:
- case 206 /* ReturnStatement */:
- case 207 /* WithStatement */:
- case 208 /* SwitchStatement */:
- case 243 /* CaseClause */:
- case 244 /* DefaultClause */:
- case 209 /* LabeledStatement */:
- case 210 /* ThrowStatement */:
- case 211 /* TryStatement */:
- case 246 /* CatchClause */:
- case 235 /* JsxElement */:
- case 236 /* JsxSelfClosingElement */:
- case 240 /* JsxAttribute */:
- case 241 /* JsxSpreadAttribute */:
- case 237 /* JsxOpeningElement */:
- case 242 /* JsxExpression */:
+ case 164 /* ObjectBindingPattern */:
+ case 165 /* ArrayBindingPattern */:
+ case 167 /* ArrayLiteralExpression */:
+ case 168 /* ObjectLiteralExpression */:
+ case 169 /* PropertyAccessExpression */:
+ case 170 /* ElementAccessExpression */:
+ case 171 /* CallExpression */:
+ case 172 /* NewExpression */:
+ case 174 /* TypeAssertionExpression */:
+ case 192 /* AsExpression */:
+ case 175 /* ParenthesizedExpression */:
+ case 182 /* PrefixUnaryExpression */:
+ case 178 /* DeleteExpression */:
+ case 181 /* AwaitExpression */:
+ case 179 /* TypeOfExpression */:
+ case 180 /* VoidExpression */:
+ case 183 /* PostfixUnaryExpression */:
+ case 187 /* YieldExpression */:
+ case 185 /* ConditionalExpression */:
+ case 188 /* SpreadElementExpression */:
+ case 195 /* Block */:
+ case 196 /* VariableStatement */:
+ case 198 /* ExpressionStatement */:
+ case 199 /* IfStatement */:
+ case 200 /* DoStatement */:
+ case 201 /* WhileStatement */:
+ case 202 /* ForStatement */:
+ case 203 /* ForInStatement */:
+ case 204 /* ForOfStatement */:
+ case 207 /* ReturnStatement */:
+ case 208 /* WithStatement */:
+ case 209 /* SwitchStatement */:
+ case 244 /* CaseClause */:
+ case 245 /* DefaultClause */:
+ case 210 /* LabeledStatement */:
+ case 211 /* ThrowStatement */:
+ case 212 /* TryStatement */:
+ case 247 /* CatchClause */:
+ case 236 /* JsxElement */:
+ case 237 /* JsxSelfClosingElement */:
+ case 241 /* JsxAttribute */:
+ case 242 /* JsxSpreadAttribute */:
+ case 238 /* JsxOpeningElement */:
+ case 243 /* JsxExpression */:
return ts.forEachChild(node, isAssignedIn);
}
return false;
@@ -20301,7 +20531,7 @@ var ts;
// Only narrow when symbol is variable of type any or an object, union, or type parameter type
if (node && symbol.flags & 3 /* Variable */) {
if (isTypeAny(type) || type.flags & (80896 /* ObjectType */ | 16384 /* Union */ | 512 /* TypeParameter */)) {
- var declaration = ts.getDeclarationOfKind(symbol, 213 /* VariableDeclaration */);
+ var declaration = ts.getDeclarationOfKind(symbol, 214 /* VariableDeclaration */);
var top_1 = declaration && getDeclarationContainer(declaration);
var originalType = type;
var nodeStack = [];
@@ -20309,13 +20539,13 @@ var ts;
var child = node;
node = node.parent;
switch (node.kind) {
- case 198 /* IfStatement */:
- case 184 /* ConditionalExpression */:
- case 183 /* BinaryExpression */:
+ case 199 /* IfStatement */:
+ case 185 /* ConditionalExpression */:
+ case 184 /* BinaryExpression */:
nodeStack.push({ node: node, child: child });
break;
- case 250 /* SourceFile */:
- case 220 /* ModuleDeclaration */:
+ case 251 /* SourceFile */:
+ case 221 /* ModuleDeclaration */:
// Stop at the first containing file or module declaration
break loop;
}
@@ -20327,19 +20557,19 @@ var ts;
while (nodes = nodeStack.pop()) {
var node_1 = nodes.node, child = nodes.child;
switch (node_1.kind) {
- case 198 /* IfStatement */:
+ case 199 /* IfStatement */:
// In a branch of an if statement, narrow based on controlling expression
if (child !== node_1.expression) {
type = narrowType(type, node_1.expression, /*assumeTrue*/ child === node_1.thenStatement);
}
break;
- case 184 /* ConditionalExpression */:
+ case 185 /* ConditionalExpression */:
// In a branch of a conditional expression, narrow based on controlling condition
if (child !== node_1.condition) {
type = narrowType(type, node_1.condition, /*assumeTrue*/ child === node_1.whenTrue);
}
break;
- case 183 /* BinaryExpression */:
+ case 184 /* BinaryExpression */:
// In the right operand of an && or ||, narrow based on left operand
if (child === node_1.right) {
if (node_1.operatorToken.kind === 51 /* AmpersandAmpersandToken */) {
@@ -20367,7 +20597,7 @@ var ts;
return type;
function narrowTypeByEquality(type, expr, assumeTrue) {
// Check that we have 'typeof ' on the left and string literal on the right
- if (expr.left.kind !== 178 /* TypeOfExpression */ || expr.right.kind !== 9 /* StringLiteral */) {
+ if (expr.left.kind !== 179 /* TypeOfExpression */ || expr.right.kind !== 9 /* StringLiteral */) {
return type;
}
var left = expr.left;
@@ -20383,10 +20613,6 @@ var ts;
if (typeInfo && typeInfo.type === undefinedType) {
return type;
}
- // If the type to be narrowed is any and we're checking a primitive with assumeTrue=true, return the primitive
- if (!!(type.flags & 1 /* Any */) && typeInfo && assumeTrue) {
- return typeInfo.type;
- }
var flags;
if (typeInfo) {
flags = typeInfo.flags;
@@ -20397,6 +20623,10 @@ var ts;
}
// At this point we can bail if it's not a union
if (!(type.flags & 16384 /* Union */)) {
+ // If we're on the true branch and the type is a subtype, we should return the primitive type
+ if (assumeTrue && typeInfo && isTypeSubtypeOf(typeInfo.type, type)) {
+ return typeInfo.type;
+ }
// If the active non-union type would be removed from a union by this type guard, return an empty union
return filterUnion(type) ? type : emptyUnionType;
}
@@ -20525,7 +20755,7 @@ var ts;
return narrowTypeByThisTypePredicate(type, memberType.predicate, expr, assumeTrue);
}
function narrowTypeByThisTypePredicate(type, predicate, expression, assumeTrue) {
- if (expression.kind === 169 /* ElementAccessExpression */ || expression.kind === 168 /* PropertyAccessExpression */) {
+ if (expression.kind === 170 /* ElementAccessExpression */ || expression.kind === 169 /* PropertyAccessExpression */) {
var accessExpression = expression;
var possibleIdentifier = skipParenthesizedNodes(accessExpression.expression);
if (possibleIdentifier.kind === 69 /* Identifier */ && getSymbolAtTypePredicatePosition(possibleIdentifier) === symbol) {
@@ -20538,8 +20768,8 @@ var ts;
expr = skipParenthesizedNodes(expr);
switch (expr.kind) {
case 69 /* Identifier */:
- case 168 /* PropertyAccessExpression */:
- case 135 /* QualifiedName */:
+ case 169 /* PropertyAccessExpression */:
+ case 136 /* QualifiedName */:
return getSymbolOfEntityNameOrPropertyAccessExpression(expr);
}
}
@@ -20547,11 +20777,11 @@ var ts;
// will be a subtype or the same type as the argument.
function narrowType(type, expr, assumeTrue) {
switch (expr.kind) {
- case 170 /* CallExpression */:
+ case 171 /* CallExpression */:
return narrowTypeByTypePredicate(type, expr, assumeTrue);
- case 174 /* ParenthesizedExpression */:
+ case 175 /* ParenthesizedExpression */:
return narrowType(type, expr.expression, assumeTrue);
- case 183 /* BinaryExpression */:
+ case 184 /* BinaryExpression */:
var operator = expr.operatorToken.kind;
if (operator === 32 /* EqualsEqualsEqualsToken */ || operator === 33 /* ExclamationEqualsEqualsToken */) {
return narrowTypeByEquality(type, expr, assumeTrue);
@@ -20566,20 +20796,20 @@ var ts;
return narrowTypeByInstanceof(type, expr, assumeTrue);
}
break;
- case 181 /* PrefixUnaryExpression */:
+ case 182 /* PrefixUnaryExpression */:
if (expr.operator === 49 /* ExclamationToken */) {
return narrowType(type, expr.operand, !assumeTrue);
}
break;
- case 169 /* ElementAccessExpression */:
- case 168 /* PropertyAccessExpression */:
+ case 170 /* ElementAccessExpression */:
+ case 169 /* PropertyAccessExpression */:
return narrowTypeByTypePredicateMember(type, expr, assumeTrue);
}
return type;
}
}
function skipParenthesizedNodes(expression) {
- while (expression.kind === 174 /* ParenthesizedExpression */) {
+ while (expression.kind === 175 /* ParenthesizedExpression */) {
expression = expression.expression;
}
return expression;
@@ -20594,7 +20824,7 @@ var ts;
// can explicitly bound arguments objects
if (symbol === argumentsSymbol) {
var container = ts.getContainingFunction(node);
- if (container.kind === 176 /* ArrowFunction */) {
+ if (container.kind === 177 /* ArrowFunction */) {
if (languageVersion < 2 /* ES6 */) {
error(node, ts.Diagnostics.The_arguments_object_cannot_be_referenced_in_an_arrow_function_in_ES3_and_ES5_Consider_using_a_standard_function_expression);
}
@@ -20625,7 +20855,7 @@ var ts;
function checkBlockScopedBindingCapturedInLoop(node, symbol) {
if (languageVersion >= 2 /* ES6 */ ||
(symbol.flags & (2 /* BlockScopedVariable */ | 32 /* Class */)) === 0 ||
- symbol.valueDeclaration.parent.kind === 246 /* CatchClause */) {
+ symbol.valueDeclaration.parent.kind === 247 /* CatchClause */) {
return;
}
// 1. walk from the use site up to the declaration and check
@@ -20641,12 +20871,12 @@ var ts;
// nesting structure:
// (variable declaration or binding element) -> variable declaration list -> container
container = symbol.valueDeclaration;
- while (container.kind !== 214 /* VariableDeclarationList */) {
+ while (container.kind !== 215 /* VariableDeclarationList */) {
container = container.parent;
}
// get the parent of variable declaration list
container = container.parent;
- if (container.kind === 195 /* VariableStatement */) {
+ if (container.kind === 196 /* VariableStatement */) {
// if parent is variable statement - get its parent
container = container.parent;
}
@@ -20667,7 +20897,7 @@ var ts;
}
function captureLexicalThis(node, container) {
getNodeLinks(node).flags |= 2 /* LexicalThis */;
- if (container.kind === 141 /* PropertyDeclaration */ || container.kind === 144 /* Constructor */) {
+ if (container.kind === 142 /* PropertyDeclaration */ || container.kind === 145 /* Constructor */) {
var classNode = container.parent;
getNodeLinks(classNode).flags |= 4 /* CaptureThis */;
}
@@ -20681,32 +20911,32 @@ var ts;
var container = ts.getThisContainer(node, /* includeArrowFunctions */ true);
var needToCaptureLexicalThis = false;
// Now skip arrow functions to get the "real" owner of 'this'.
- if (container.kind === 176 /* ArrowFunction */) {
+ if (container.kind === 177 /* ArrowFunction */) {
container = ts.getThisContainer(container, /* includeArrowFunctions */ false);
// When targeting es6, arrow function lexically bind "this" so we do not need to do the work of binding "this" in emitted code
needToCaptureLexicalThis = (languageVersion < 2 /* ES6 */);
}
switch (container.kind) {
- case 220 /* ModuleDeclaration */:
+ case 221 /* ModuleDeclaration */:
error(node, ts.Diagnostics.this_cannot_be_referenced_in_a_module_or_namespace_body);
// do not return here so in case if lexical this is captured - it will be reflected in flags on NodeLinks
break;
- case 219 /* EnumDeclaration */:
+ case 220 /* EnumDeclaration */:
error(node, ts.Diagnostics.this_cannot_be_referenced_in_current_location);
// do not return here so in case if lexical this is captured - it will be reflected in flags on NodeLinks
break;
- case 144 /* Constructor */:
+ case 145 /* Constructor */:
if (isInConstructorArgumentInitializer(node, container)) {
error(node, ts.Diagnostics.this_cannot_be_referenced_in_constructor_arguments);
}
break;
- case 141 /* PropertyDeclaration */:
- case 140 /* PropertySignature */:
+ case 142 /* PropertyDeclaration */:
+ case 141 /* PropertySignature */:
if (container.flags & 64 /* Static */) {
error(node, ts.Diagnostics.this_cannot_be_referenced_in_a_static_property_initializer);
}
break;
- case 136 /* ComputedPropertyName */:
+ case 137 /* ComputedPropertyName */:
error(node, ts.Diagnostics.this_cannot_be_referenced_in_a_computed_property_name);
break;
}
@@ -20719,7 +20949,7 @@ var ts;
}
// If this is a function in a JS file, it might be a class method. Check if it's the RHS
// of a x.prototype.y = function [name]() { .... }
- if (ts.isInJavaScriptFile(node) && container.kind === 175 /* FunctionExpression */) {
+ if (ts.isInJavaScriptFile(node) && container.kind === 176 /* FunctionExpression */) {
if (ts.getSpecialPropertyAssignmentKind(container.parent) === 3 /* PrototypeProperty */) {
// Get the 'x' of 'x.prototype.y = f' (here, 'f' is 'container')
var className = container.parent // x.protoype.y = f
@@ -20736,19 +20966,19 @@ var ts;
}
function isInConstructorArgumentInitializer(node, constructorDecl) {
for (var n = node; n && n !== constructorDecl; n = n.parent) {
- if (n.kind === 138 /* Parameter */) {
+ if (n.kind === 139 /* Parameter */) {
return true;
}
}
return false;
}
function checkSuperExpression(node) {
- var isCallExpression = node.parent.kind === 170 /* CallExpression */ && node.parent.expression === node;
+ var isCallExpression = node.parent.kind === 171 /* CallExpression */ && node.parent.expression === node;
var container = ts.getSuperContainer(node, /*stopOnFunctions*/ true);
var needToCaptureLexicalThis = false;
if (!isCallExpression) {
// adjust the container reference in case if super is used inside arrow functions with arbitrary deep nesting
- while (container && container.kind === 176 /* ArrowFunction */) {
+ while (container && container.kind === 177 /* ArrowFunction */) {
container = ts.getSuperContainer(container, /*stopOnFunctions*/ true);
needToCaptureLexicalThis = languageVersion < 2 /* ES6 */;
}
@@ -20762,16 +20992,16 @@ var ts;
// [super.foo()]() {}
// }
var current = node;
- while (current && current !== container && current.kind !== 136 /* ComputedPropertyName */) {
+ while (current && current !== container && current.kind !== 137 /* ComputedPropertyName */) {
current = current.parent;
}
- if (current && current.kind === 136 /* ComputedPropertyName */) {
+ if (current && current.kind === 137 /* ComputedPropertyName */) {
error(node, ts.Diagnostics.super_cannot_be_referenced_in_a_computed_property_name);
}
else if (isCallExpression) {
error(node, ts.Diagnostics.Super_calls_are_not_permitted_outside_constructors_or_in_nested_functions_inside_constructors);
}
- else if (!container || !container.parent || !(ts.isClassLike(container.parent) || container.parent.kind === 167 /* ObjectLiteralExpression */)) {
+ else if (!container || !container.parent || !(ts.isClassLike(container.parent) || container.parent.kind === 168 /* ObjectLiteralExpression */)) {
error(node, ts.Diagnostics.super_can_only_be_referenced_in_members_of_derived_classes_or_object_literal_expressions);
}
else {
@@ -20792,7 +21022,7 @@ var ts;
// in this case they should also use correct lexical this
captureLexicalThis(node.parent, container);
}
- if (container.parent.kind === 167 /* ObjectLiteralExpression */) {
+ if (container.parent.kind === 168 /* ObjectLiteralExpression */) {
if (languageVersion < 2 /* ES6 */) {
error(node, ts.Diagnostics.super_is_only_allowed_in_members_of_object_literal_expressions_when_option_target_is_ES2015_or_higher);
return unknownType;
@@ -20812,7 +21042,7 @@ var ts;
}
return unknownType;
}
- if (container.kind === 144 /* Constructor */ && isInConstructorArgumentInitializer(node, container)) {
+ if (container.kind === 145 /* Constructor */ && isInConstructorArgumentInitializer(node, container)) {
// issue custom error message for super property access in constructor arguments (to be aligned with old compiler)
error(node, ts.Diagnostics.super_cannot_be_referenced_in_constructor_arguments);
return unknownType;
@@ -20827,7 +21057,7 @@ var ts;
if (isCallExpression) {
// TS 1.0 SPEC (April 2014): 4.8.1
// Super calls are only permitted in constructors of derived classes
- return container.kind === 144 /* Constructor */;
+ return container.kind === 145 /* Constructor */;
}
else {
// TS 1.0 SPEC (April 2014)
@@ -20835,21 +21065,21 @@ var ts;
// - In a constructor, instance member function, instance member accessor, or instance member variable initializer where this references a derived class instance
// - In a static member function or static member accessor
// topmost container must be something that is directly nested in the class declaration\object literal expression
- if (ts.isClassLike(container.parent) || container.parent.kind === 167 /* ObjectLiteralExpression */) {
+ if (ts.isClassLike(container.parent) || container.parent.kind === 168 /* ObjectLiteralExpression */) {
if (container.flags & 64 /* Static */) {
- return container.kind === 143 /* MethodDeclaration */ ||
- container.kind === 142 /* MethodSignature */ ||
- container.kind === 145 /* GetAccessor */ ||
- container.kind === 146 /* SetAccessor */;
+ return container.kind === 144 /* MethodDeclaration */ ||
+ container.kind === 143 /* MethodSignature */ ||
+ container.kind === 146 /* GetAccessor */ ||
+ container.kind === 147 /* SetAccessor */;
}
else {
- return container.kind === 143 /* MethodDeclaration */ ||
- container.kind === 142 /* MethodSignature */ ||
- container.kind === 145 /* GetAccessor */ ||
- container.kind === 146 /* SetAccessor */ ||
- container.kind === 141 /* PropertyDeclaration */ ||
- container.kind === 140 /* PropertySignature */ ||
- container.kind === 144 /* Constructor */;
+ return container.kind === 144 /* MethodDeclaration */ ||
+ container.kind === 143 /* MethodSignature */ ||
+ container.kind === 146 /* GetAccessor */ ||
+ container.kind === 147 /* SetAccessor */ ||
+ container.kind === 142 /* PropertyDeclaration */ ||
+ container.kind === 141 /* PropertySignature */ ||
+ container.kind === 145 /* Constructor */;
}
}
}
@@ -20891,7 +21121,7 @@ var ts;
if (declaration.type) {
return getTypeFromTypeNode(declaration.type);
}
- if (declaration.kind === 138 /* Parameter */) {
+ if (declaration.kind === 139 /* Parameter */) {
var type = getContextuallyTypedParameterType(declaration);
if (type) {
return type;
@@ -20924,7 +21154,7 @@ var ts;
}
function isInParameterInitializerBeforeContainingFunction(node) {
while (node.parent && !ts.isFunctionLike(node.parent)) {
- if (node.parent.kind === 138 /* Parameter */ && node.parent.initializer === node) {
+ if (node.parent.kind === 139 /* Parameter */ && node.parent.initializer === node) {
return true;
}
node = node.parent;
@@ -20935,8 +21165,8 @@ var ts;
// If the containing function has a return type annotation, is a constructor, or is a get accessor whose
// corresponding set accessor has a type annotation, return statements in the function are contextually typed
if (functionDecl.type ||
- functionDecl.kind === 144 /* Constructor */ ||
- functionDecl.kind === 145 /* GetAccessor */ && ts.getSetAccessorTypeAnnotationNode(ts.getDeclarationOfKind(functionDecl.symbol, 146 /* SetAccessor */))) {
+ functionDecl.kind === 145 /* Constructor */ ||
+ functionDecl.kind === 146 /* GetAccessor */ && ts.getSetAccessorTypeAnnotationNode(ts.getDeclarationOfKind(functionDecl.symbol, 147 /* SetAccessor */))) {
return getReturnTypeOfSignature(getSignatureFromDeclaration(functionDecl));
}
// Otherwise, if the containing function is contextually typed by a function type with exactly one call signature
@@ -20958,7 +21188,7 @@ var ts;
return undefined;
}
function getContextualTypeForSubstitutionExpression(template, substitutionExpression) {
- if (template.parent.kind === 172 /* TaggedTemplateExpression */) {
+ if (template.parent.kind === 173 /* TaggedTemplateExpression */) {
return getContextualTypeForArgument(template.parent, substitutionExpression);
}
return undefined;
@@ -21089,13 +21319,13 @@ var ts;
var kind = attribute.kind;
var jsxElement = attribute.parent;
var attrsType = getJsxElementAttributesType(jsxElement);
- if (attribute.kind === 240 /* JsxAttribute */) {
+ if (attribute.kind === 241 /* JsxAttribute */) {
if (!attrsType || isTypeAny(attrsType)) {
return undefined;
}
return getTypeOfPropertyOfType(attrsType, attribute.name.text);
}
- else if (attribute.kind === 241 /* JsxSpreadAttribute */) {
+ else if (attribute.kind === 242 /* JsxSpreadAttribute */) {
return attrsType;
}
ts.Debug.fail("Expected JsxAttribute or JsxSpreadAttribute, got ts.SyntaxKind[" + kind + "]");
@@ -21133,40 +21363,40 @@ var ts;
}
var parent = node.parent;
switch (parent.kind) {
- case 213 /* VariableDeclaration */:
- case 138 /* Parameter */:
- case 141 /* PropertyDeclaration */:
- case 140 /* PropertySignature */:
- case 165 /* BindingElement */:
+ case 214 /* VariableDeclaration */:
+ case 139 /* Parameter */:
+ case 142 /* PropertyDeclaration */:
+ case 141 /* PropertySignature */:
+ case 166 /* BindingElement */:
return getContextualTypeForInitializerExpression(node);
- case 176 /* ArrowFunction */:
- case 206 /* ReturnStatement */:
+ case 177 /* ArrowFunction */:
+ case 207 /* ReturnStatement */:
return getContextualTypeForReturnExpression(node);
- case 186 /* YieldExpression */:
+ case 187 /* YieldExpression */:
return getContextualTypeForYieldOperand(parent);
- case 170 /* CallExpression */:
- case 171 /* NewExpression */:
+ case 171 /* CallExpression */:
+ case 172 /* NewExpression */:
return getContextualTypeForArgument(parent, node);
- case 173 /* TypeAssertionExpression */:
- case 191 /* AsExpression */:
+ case 174 /* TypeAssertionExpression */:
+ case 192 /* AsExpression */:
return getTypeFromTypeNode(parent.type);
- case 183 /* BinaryExpression */:
+ case 184 /* BinaryExpression */:
return getContextualTypeForBinaryOperand(node);
- case 247 /* PropertyAssignment */:
+ case 248 /* PropertyAssignment */:
return getContextualTypeForObjectLiteralElement(parent);
- case 166 /* ArrayLiteralExpression */:
+ case 167 /* ArrayLiteralExpression */:
return getContextualTypeForElementExpression(node);
- case 184 /* ConditionalExpression */:
+ case 185 /* ConditionalExpression */:
return getContextualTypeForConditionalOperand(node);
- case 192 /* TemplateSpan */:
- ts.Debug.assert(parent.parent.kind === 185 /* TemplateExpression */);
+ case 193 /* TemplateSpan */:
+ ts.Debug.assert(parent.parent.kind === 186 /* TemplateExpression */);
return getContextualTypeForSubstitutionExpression(parent.parent, node);
- case 174 /* ParenthesizedExpression */:
+ case 175 /* ParenthesizedExpression */:
return getContextualType(parent);
- case 242 /* JsxExpression */:
+ case 243 /* JsxExpression */:
return getContextualType(parent);
- case 240 /* JsxAttribute */:
- case 241 /* JsxSpreadAttribute */:
+ case 241 /* JsxAttribute */:
+ case 242 /* JsxSpreadAttribute */:
return getContextualTypeForJsxAttribute(parent);
}
return undefined;
@@ -21183,7 +21413,7 @@ var ts;
}
}
function isFunctionExpressionOrArrowFunction(node) {
- return node.kind === 175 /* FunctionExpression */ || node.kind === 176 /* ArrowFunction */;
+ return node.kind === 176 /* FunctionExpression */ || node.kind === 177 /* ArrowFunction */;
}
function getContextualSignatureForFunctionLikeDeclaration(node) {
// Only function expressions, arrow functions, and object literal methods are contextually typed.
@@ -21197,7 +21427,7 @@ var ts;
// all identical ignoring their return type, the result is same signature but with return type as
// union type of return types from these signatures
function getContextualSignature(node) {
- ts.Debug.assert(node.kind !== 143 /* MethodDeclaration */ || ts.isObjectLiteralMethod(node));
+ ts.Debug.assert(node.kind !== 144 /* MethodDeclaration */ || ts.isObjectLiteralMethod(node));
var type = ts.isObjectLiteralMethod(node)
? getContextualTypeForObjectLiteralMethod(node)
: getApparentTypeOfContextualType(node);
@@ -21260,13 +21490,13 @@ var ts;
// an assignment target. Examples include 'a = xxx', '{ p: a } = xxx', '[{ p: a}] = xxx'.
function isAssignmentTarget(node) {
var parent = node.parent;
- if (parent.kind === 183 /* BinaryExpression */ && parent.operatorToken.kind === 56 /* EqualsToken */ && parent.left === node) {
+ if (parent.kind === 184 /* BinaryExpression */ && parent.operatorToken.kind === 56 /* EqualsToken */ && parent.left === node) {
return true;
}
- if (parent.kind === 247 /* PropertyAssignment */) {
+ if (parent.kind === 248 /* PropertyAssignment */) {
return isAssignmentTarget(parent.parent);
}
- if (parent.kind === 166 /* ArrayLiteralExpression */) {
+ if (parent.kind === 167 /* ArrayLiteralExpression */) {
return isAssignmentTarget(parent);
}
return false;
@@ -21282,8 +21512,8 @@ var ts;
return checkIteratedTypeOrElementType(arrayOrIterableType, node.expression, /*allowStringInput*/ false);
}
function hasDefaultValue(node) {
- return (node.kind === 165 /* BindingElement */ && !!node.initializer) ||
- (node.kind === 183 /* BinaryExpression */ && node.operatorToken.kind === 56 /* EqualsToken */);
+ return (node.kind === 166 /* BindingElement */ && !!node.initializer) ||
+ (node.kind === 184 /* BinaryExpression */ && node.operatorToken.kind === 56 /* EqualsToken */);
}
function checkArrayLiteral(node, contextualMapper) {
var elements = node.elements;
@@ -21292,7 +21522,7 @@ var ts;
var inDestructuringPattern = isAssignmentTarget(node);
for (var _i = 0, elements_1 = elements; _i < elements_1.length; _i++) {
var e = elements_1[_i];
- if (inDestructuringPattern && e.kind === 187 /* SpreadElementExpression */) {
+ if (inDestructuringPattern && e.kind === 188 /* SpreadElementExpression */) {
// Given the following situation:
// var c: {};
// [...c] = ["", 0];
@@ -21316,7 +21546,7 @@ var ts;
var type = checkExpression(e, contextualMapper);
elementTypes.push(type);
}
- hasSpreadElement = hasSpreadElement || e.kind === 187 /* SpreadElementExpression */;
+ hasSpreadElement = hasSpreadElement || e.kind === 188 /* SpreadElementExpression */;
}
if (!hasSpreadElement) {
// If array literal is actually a destructuring pattern, mark it as an implied type. We do this such
@@ -21331,7 +21561,7 @@ var ts;
var pattern = contextualType.pattern;
// If array literal is contextually typed by a binding pattern or an assignment pattern, pad the resulting
// tuple type with the corresponding binding or assignment element types to make the lengths equal.
- if (pattern && (pattern.kind === 164 /* ArrayBindingPattern */ || pattern.kind === 166 /* ArrayLiteralExpression */)) {
+ if (pattern && (pattern.kind === 165 /* ArrayBindingPattern */ || pattern.kind === 167 /* ArrayLiteralExpression */)) {
var patternElements = pattern.elements;
for (var i = elementTypes.length; i < patternElements.length; i++) {
var patternElement = patternElements[i];
@@ -21339,7 +21569,7 @@ var ts;
elementTypes.push(contextualType.elementTypes[i]);
}
else {
- if (patternElement.kind !== 189 /* OmittedExpression */) {
+ if (patternElement.kind !== 190 /* OmittedExpression */) {
error(patternElement, ts.Diagnostics.Initializer_provides_no_value_for_this_binding_element_and_the_binding_element_has_no_default_value);
}
elementTypes.push(unknownType);
@@ -21354,7 +21584,7 @@ var ts;
return createArrayType(elementTypes.length ? getUnionType(elementTypes) : undefinedType);
}
function isNumericName(name) {
- return name.kind === 136 /* ComputedPropertyName */ ? isNumericComputedName(name) : isNumericLiteralName(name.text);
+ return name.kind === 137 /* ComputedPropertyName */ ? isNumericComputedName(name) : isNumericLiteralName(name.text);
}
function isNumericComputedName(name) {
// It seems odd to consider an expression of type Any to result in a numeric name,
@@ -21411,24 +21641,24 @@ var ts;
var propertiesArray = [];
var contextualType = getApparentTypeOfContextualType(node);
var contextualTypeHasPattern = contextualType && contextualType.pattern &&
- (contextualType.pattern.kind === 163 /* ObjectBindingPattern */ || contextualType.pattern.kind === 167 /* ObjectLiteralExpression */);
+ (contextualType.pattern.kind === 164 /* ObjectBindingPattern */ || contextualType.pattern.kind === 168 /* ObjectLiteralExpression */);
var typeFlags = 0;
var patternWithComputedProperties = false;
for (var _i = 0, _a = node.properties; _i < _a.length; _i++) {
var memberDecl = _a[_i];
var member = memberDecl.symbol;
- if (memberDecl.kind === 247 /* PropertyAssignment */ ||
- memberDecl.kind === 248 /* ShorthandPropertyAssignment */ ||
+ if (memberDecl.kind === 248 /* PropertyAssignment */ ||
+ memberDecl.kind === 249 /* ShorthandPropertyAssignment */ ||
ts.isObjectLiteralMethod(memberDecl)) {
var type = void 0;
- if (memberDecl.kind === 247 /* PropertyAssignment */) {
+ if (memberDecl.kind === 248 /* PropertyAssignment */) {
type = checkPropertyAssignment(memberDecl, contextualMapper);
}
- else if (memberDecl.kind === 143 /* MethodDeclaration */) {
+ else if (memberDecl.kind === 144 /* MethodDeclaration */) {
type = checkObjectLiteralMethod(memberDecl, contextualMapper);
}
else {
- ts.Debug.assert(memberDecl.kind === 248 /* ShorthandPropertyAssignment */);
+ ts.Debug.assert(memberDecl.kind === 249 /* ShorthandPropertyAssignment */);
type = checkExpression(memberDecl.name, contextualMapper);
}
typeFlags |= type.flags;
@@ -21436,8 +21666,8 @@ var ts;
if (inDestructuringPattern) {
// If object literal is an assignment pattern and if the assignment pattern specifies a default value
// for the property, make the property optional.
- var isOptional = (memberDecl.kind === 247 /* PropertyAssignment */ && hasDefaultValue(memberDecl.initializer)) ||
- (memberDecl.kind === 248 /* ShorthandPropertyAssignment */ && memberDecl.objectAssignmentInitializer);
+ var isOptional = (memberDecl.kind === 248 /* PropertyAssignment */ && hasDefaultValue(memberDecl.initializer)) ||
+ (memberDecl.kind === 249 /* ShorthandPropertyAssignment */ && memberDecl.objectAssignmentInitializer);
if (isOptional) {
prop.flags |= 536870912 /* Optional */;
}
@@ -21471,7 +21701,7 @@ var ts;
// an ordinary function declaration(section 6.1) with no parameters.
// A set accessor declaration is processed in the same manner
// as an ordinary function declaration with a single parameter and a Void return type.
- ts.Debug.assert(memberDecl.kind === 145 /* GetAccessor */ || memberDecl.kind === 146 /* SetAccessor */);
+ ts.Debug.assert(memberDecl.kind === 146 /* GetAccessor */ || memberDecl.kind === 147 /* SetAccessor */);
checkAccessorDeclaration(memberDecl);
}
if (!ts.hasDynamicName(memberDecl)) {
@@ -21538,13 +21768,13 @@ var ts;
for (var _i = 0, _a = node.children; _i < _a.length; _i++) {
var child = _a[_i];
switch (child.kind) {
- case 242 /* JsxExpression */:
+ case 243 /* JsxExpression */:
checkJsxExpression(child);
break;
- case 235 /* JsxElement */:
+ case 236 /* JsxElement */:
checkJsxElement(child);
break;
- case 236 /* JsxSelfClosingElement */:
+ case 237 /* JsxSelfClosingElement */:
checkJsxSelfClosingElement(child);
break;
}
@@ -21562,7 +21792,7 @@ var ts;
* Returns true iff React would emit this tag name as a string rather than an identifier or qualified name
*/
function isJsxIntrinsicIdentifier(tagName) {
- if (tagName.kind === 135 /* QualifiedName */) {
+ if (tagName.kind === 136 /* QualifiedName */) {
return false;
}
else {
@@ -21672,6 +21902,7 @@ var ts;
if (compilerOptions.noImplicitAny) {
error(node, ts.Diagnostics.JSX_element_implicitly_has_type_any_because_no_interface_JSX_0_exists, JsxNames.IntrinsicElements);
}
+ return unknownSymbol;
}
}
function lookupClassTag(node) {
@@ -21771,21 +22002,25 @@ var ts;
if (links.jsxFlags & 4 /* ValueElement */) {
// Get the element instance type (the result of newing or invoking this tag)
var elemInstanceType = getJsxElementInstanceType(node);
- // Is this is a stateless function component? See if its single signature is
- // assignable to the JSX Element Type
- var callSignature = getSingleCallSignature(getTypeOfSymbol(sym));
- var callReturnType = callSignature && getReturnTypeOfSignature(callSignature);
- var paramType = callReturnType && (callSignature.parameters.length === 0 ? emptyObjectType : getTypeOfSymbol(callSignature.parameters[0]));
- if (callReturnType && isTypeAssignableTo(callReturnType, jsxElementType) && (paramType.flags & 80896 /* ObjectType */)) {
- // Intersect in JSX.IntrinsicAttributes if it exists
- var intrinsicAttributes = getJsxType(JsxNames.IntrinsicAttributes);
- if (intrinsicAttributes !== unknownType) {
- paramType = intersectTypes(intrinsicAttributes, paramType);
+ var elemClassType = getJsxGlobalElementClassType();
+ if (!elemClassType || !isTypeAssignableTo(elemInstanceType, elemClassType)) {
+ // Is this is a stateless function component? See if its single signature's return type is
+ // assignable to the JSX Element Type
+ var elemType = getTypeOfSymbol(sym);
+ var callSignatures = elemType && getSignaturesOfType(elemType, 0 /* Call */);
+ var callSignature = callSignatures && callSignatures.length > 0 && callSignatures[0];
+ var callReturnType = callSignature && getReturnTypeOfSignature(callSignature);
+ var paramType = callReturnType && (callSignature.parameters.length === 0 ? emptyObjectType : getTypeOfSymbol(callSignature.parameters[0]));
+ if (callReturnType && isTypeAssignableTo(callReturnType, jsxElementType)) {
+ // Intersect in JSX.IntrinsicAttributes if it exists
+ var intrinsicAttributes = getJsxType(JsxNames.IntrinsicAttributes);
+ if (intrinsicAttributes !== unknownType) {
+ paramType = intersectTypes(intrinsicAttributes, paramType);
+ }
+ return links.resolvedJsxType = paramType;
}
- return paramType;
}
// Issue an error if this return type isn't assignable to JSX.ElementClass
- var elemClassType = getJsxGlobalElementClassType();
if (elemClassType) {
checkTypeRelatedTo(elemInstanceType, elemClassType, assignableRelation, node, ts.Diagnostics.JSX_element_type_0_is_not_a_constructor_function_for_JSX_elements);
}
@@ -21902,11 +22137,11 @@ var ts;
// thus should have their types ignored
var sawSpreadedAny = false;
for (var i = node.attributes.length - 1; i >= 0; i--) {
- if (node.attributes[i].kind === 240 /* JsxAttribute */) {
+ if (node.attributes[i].kind === 241 /* JsxAttribute */) {
checkJsxAttribute((node.attributes[i]), targetAttributesType, nameTable);
}
else {
- ts.Debug.assert(node.attributes[i].kind === 241 /* JsxSpreadAttribute */);
+ ts.Debug.assert(node.attributes[i].kind === 242 /* JsxSpreadAttribute */);
var spreadType = checkJsxSpreadAttribute((node.attributes[i]), targetAttributesType, nameTable);
if (isTypeAny(spreadType)) {
sawSpreadedAny = true;
@@ -21936,7 +22171,7 @@ var ts;
// If a symbol is a synthesized symbol with no value declaration, we assume it is a property. Example of this are the synthesized
// '.prototype' property as well as synthesized tuple index properties.
function getDeclarationKindFromSymbol(s) {
- return s.valueDeclaration ? s.valueDeclaration.kind : 141 /* PropertyDeclaration */;
+ return s.valueDeclaration ? s.valueDeclaration.kind : 142 /* PropertyDeclaration */;
}
function getDeclarationFlagsFromSymbol(s) {
return s.valueDeclaration ? ts.getCombinedNodeFlags(s.valueDeclaration) : s.flags & 134217728 /* Prototype */ ? 8 /* Public */ | 64 /* Static */ : 0;
@@ -21953,7 +22188,7 @@ var ts;
var flags = getDeclarationFlagsFromSymbol(prop);
var declaringClass = getDeclaredTypeOfSymbol(prop.parent);
if (left.kind === 95 /* SuperKeyword */) {
- var errorNode = node.kind === 168 /* PropertyAccessExpression */ ?
+ var errorNode = node.kind === 169 /* PropertyAccessExpression */ ?
node.name :
node.right;
// TS 1.0 spec (April 2014): 4.8.2
@@ -21963,7 +22198,7 @@ var ts;
// - In a static member function or static member accessor
// where this references the constructor function object of a derived class,
// a super property access is permitted and must specify a public static member function of the base class.
- if (languageVersion < 2 /* ES6 */ && getDeclarationKindFromSymbol(prop) !== 143 /* MethodDeclaration */) {
+ if (languageVersion < 2 /* ES6 */ && getDeclarationKindFromSymbol(prop) !== 144 /* MethodDeclaration */) {
// `prop` refers to a *property* declared in the super class
// rather than a *method*, so it does not satisfy the above criteria.
error(errorNode, ts.Diagnostics.Only_public_and_protected_methods_of_the_base_class_are_accessible_via_the_super_keyword);
@@ -22050,7 +22285,7 @@ var ts;
return getTypeOfSymbol(prop);
}
function isValidPropertyAccess(node, propertyName) {
- var left = node.kind === 168 /* PropertyAccessExpression */
+ var left = node.kind === 169 /* PropertyAccessExpression */
? node.expression
: node.left;
var type = checkExpression(left);
@@ -22062,11 +22297,58 @@ var ts;
}
return true;
}
+ /**
+ * Return the symbol of the for-in variable declared or referenced by the given for-in statement.
+ */
+ function getForInVariableSymbol(node) {
+ var initializer = node.initializer;
+ if (initializer.kind === 215 /* VariableDeclarationList */) {
+ var variable = initializer.declarations[0];
+ if (variable && !ts.isBindingPattern(variable.name)) {
+ return getSymbolOfNode(variable);
+ }
+ }
+ else if (initializer.kind === 69 /* Identifier */) {
+ return getResolvedSymbol(initializer);
+ }
+ return undefined;
+ }
+ /**
+ * Return true if the given type is considered to have numeric property names.
+ */
+ function hasNumericPropertyNames(type) {
+ return getIndexTypeOfType(type, 1 /* Number */) && !getIndexTypeOfType(type, 0 /* String */);
+ }
+ /**
+ * Return true if given node is an expression consisting of an identifier (possibly parenthesized)
+ * that references a for-in variable for an object with numeric property names.
+ */
+ function isForInVariableForNumericPropertyNames(expr) {
+ var e = skipParenthesizedNodes(expr);
+ if (e.kind === 69 /* Identifier */) {
+ var symbol = getResolvedSymbol(e);
+ if (symbol.flags & 3 /* Variable */) {
+ var child = expr;
+ var node = expr.parent;
+ while (node) {
+ if (node.kind === 203 /* ForInStatement */ &&
+ child === node.statement &&
+ getForInVariableSymbol(node) === symbol &&
+ hasNumericPropertyNames(checkExpression(node.expression))) {
+ return true;
+ }
+ child = node;
+ node = node.parent;
+ }
+ }
+ }
+ return false;
+ }
function checkIndexedAccess(node) {
// Grammar checking
if (!node.argumentExpression) {
- var sourceFile = getSourceFile(node);
- if (node.parent.kind === 171 /* NewExpression */ && node.parent.expression === node) {
+ var sourceFile = ts.getSourceFileOfNode(node);
+ if (node.parent.kind === 172 /* NewExpression */ && node.parent.expression === node) {
var start = ts.skipTrivia(sourceFile.text, node.expression.end);
var end = node.end;
grammarErrorAtPos(sourceFile, start, end - start, ts.Diagnostics.new_T_cannot_be_used_to_create_an_array_Use_new_Array_T_instead);
@@ -22115,7 +22397,7 @@ var ts;
// Check for compatible indexer types.
if (isTypeAnyOrAllConstituentTypesHaveKind(indexType, 258 /* StringLike */ | 132 /* NumberLike */ | 16777216 /* ESSymbol */)) {
// Try to use a number indexer.
- if (isTypeAnyOrAllConstituentTypesHaveKind(indexType, 132 /* NumberLike */)) {
+ if (isTypeAnyOrAllConstituentTypesHaveKind(indexType, 132 /* NumberLike */) || isForInVariableForNumericPropertyNames(node.argumentExpression)) {
var numberIndexType = getIndexTypeOfType(objectType, 1 /* Number */);
if (numberIndexType) {
return numberIndexType;
@@ -22128,7 +22410,9 @@ var ts;
}
// Fall back to any.
if (compilerOptions.noImplicitAny && !compilerOptions.suppressImplicitAnyIndexErrors && !isTypeAny(objectType)) {
- error(node, ts.Diagnostics.Index_signature_of_object_type_implicitly_has_an_any_type);
+ error(node, getIndexTypeOfType(objectType, 1 /* Number */) ?
+ ts.Diagnostics.Element_implicitly_has_an_any_type_because_index_expression_is_not_of_type_number :
+ ts.Diagnostics.Index_signature_of_object_type_implicitly_has_an_any_type);
}
return anyType;
}
@@ -22147,7 +22431,7 @@ var ts;
if (indexArgumentExpression.kind === 9 /* StringLiteral */ || indexArgumentExpression.kind === 8 /* NumericLiteral */) {
return indexArgumentExpression.text;
}
- if (indexArgumentExpression.kind === 169 /* ElementAccessExpression */ || indexArgumentExpression.kind === 168 /* PropertyAccessExpression */) {
+ if (indexArgumentExpression.kind === 170 /* ElementAccessExpression */ || indexArgumentExpression.kind === 169 /* PropertyAccessExpression */) {
var value = getConstantValue(indexArgumentExpression);
if (value !== undefined) {
return value.toString();
@@ -22202,10 +22486,10 @@ var ts;
return true;
}
function resolveUntypedCall(node) {
- if (node.kind === 172 /* TaggedTemplateExpression */) {
+ if (node.kind === 173 /* TaggedTemplateExpression */) {
checkExpression(node.template);
}
- else if (node.kind !== 139 /* Decorator */) {
+ else if (node.kind !== 140 /* Decorator */) {
ts.forEach(node.arguments, function (argument) {
checkExpression(argument);
});
@@ -22271,7 +22555,7 @@ var ts;
function getSpreadArgumentIndex(args) {
for (var i = 0; i < args.length; i++) {
var arg = args[i];
- if (arg && arg.kind === 187 /* SpreadElementExpression */) {
+ if (arg && arg.kind === 188 /* SpreadElementExpression */) {
return i;
}
}
@@ -22283,13 +22567,13 @@ var ts;
var callIsIncomplete; // In incomplete call we want to be lenient when we have too few arguments
var isDecorator;
var spreadArgIndex = -1;
- if (node.kind === 172 /* TaggedTemplateExpression */) {
+ if (node.kind === 173 /* TaggedTemplateExpression */) {
var tagExpression = node;
// Even if the call is incomplete, we'll have a missing expression as our last argument,
// so we can say the count is just the arg list length
adjustedArgCount = args.length;
typeArguments = undefined;
- if (tagExpression.template.kind === 185 /* TemplateExpression */) {
+ if (tagExpression.template.kind === 186 /* TemplateExpression */) {
// If a tagged template expression lacks a tail literal, the call is incomplete.
// Specifically, a template only can end in a TemplateTail or a Missing literal.
var templateExpression = tagExpression.template;
@@ -22306,7 +22590,7 @@ var ts;
callIsIncomplete = !!templateLiteral.isUnterminated;
}
}
- else if (node.kind === 139 /* Decorator */) {
+ else if (node.kind === 140 /* Decorator */) {
isDecorator = true;
typeArguments = undefined;
adjustedArgCount = getEffectiveArgumentCount(node, /*args*/ undefined, signature);
@@ -22315,7 +22599,7 @@ var ts;
var callExpression = node;
if (!callExpression.arguments) {
// This only happens when we have something of the form: 'new C'
- ts.Debug.assert(callExpression.kind === 171 /* NewExpression */);
+ ts.Debug.assert(callExpression.kind === 172 /* NewExpression */);
return signature.minArgumentCount === 0;
}
// For IDE scenarios we may have an incomplete call, so a trailing comma is tantamount to adding another argument.
@@ -22394,7 +22678,7 @@ var ts;
for (var i = 0; i < argCount; i++) {
var arg = getEffectiveArgument(node, args, i);
// If the effective argument is 'undefined', then it is an argument that is present but is synthetic.
- if (arg === undefined || arg.kind !== 189 /* OmittedExpression */) {
+ if (arg === undefined || arg.kind !== 190 /* OmittedExpression */) {
var paramType = getTypeAtPosition(signature, i);
var argType = getEffectiveArgumentType(node, i, arg);
// If the effective argument type is 'undefined', there is no synthetic type
@@ -22454,7 +22738,7 @@ var ts;
for (var i = 0; i < argCount; i++) {
var arg = getEffectiveArgument(node, args, i);
// If the effective argument is 'undefined', then it is an argument that is present but is synthetic.
- if (arg === undefined || arg.kind !== 189 /* OmittedExpression */) {
+ if (arg === undefined || arg.kind !== 190 /* OmittedExpression */) {
// Check spread elements against rest type (from arity check we know spread argument corresponds to a rest parameter)
var paramType = getTypeAtPosition(signature, i);
var argType = getEffectiveArgumentType(node, i, arg);
@@ -22486,16 +22770,16 @@ var ts;
*/
function getEffectiveCallArguments(node) {
var args;
- if (node.kind === 172 /* TaggedTemplateExpression */) {
+ if (node.kind === 173 /* TaggedTemplateExpression */) {
var template = node.template;
args = [undefined];
- if (template.kind === 185 /* TemplateExpression */) {
+ if (template.kind === 186 /* TemplateExpression */) {
ts.forEach(template.templateSpans, function (span) {
args.push(span.expression);
});
}
}
- else if (node.kind === 139 /* Decorator */) {
+ else if (node.kind === 140 /* Decorator */) {
// For a decorator, we return undefined as we will determine
// the number and types of arguments for a decorator using
// `getEffectiveArgumentCount` and `getEffectiveArgumentType` below.
@@ -22520,19 +22804,19 @@ var ts;
* Otherwise, the argument count is the length of the 'args' array.
*/
function getEffectiveArgumentCount(node, args, signature) {
- if (node.kind === 139 /* Decorator */) {
+ if (node.kind === 140 /* Decorator */) {
switch (node.parent.kind) {
- case 216 /* ClassDeclaration */:
- case 188 /* ClassExpression */:
+ case 217 /* ClassDeclaration */:
+ case 189 /* ClassExpression */:
// A class decorator will have one argument (see `ClassDecorator` in core.d.ts)
return 1;
- case 141 /* PropertyDeclaration */:
+ case 142 /* PropertyDeclaration */:
// A property declaration decorator will have two arguments (see
// `PropertyDecorator` in core.d.ts)
return 2;
- case 143 /* MethodDeclaration */:
- case 145 /* GetAccessor */:
- case 146 /* SetAccessor */:
+ case 144 /* MethodDeclaration */:
+ case 146 /* GetAccessor */:
+ case 147 /* SetAccessor */:
// A method or accessor declaration decorator will have two or three arguments (see
// `PropertyDecorator` and `MethodDecorator` in core.d.ts)
// If we are emitting decorators for ES3, we will only pass two arguments.
@@ -22542,7 +22826,7 @@ var ts;
// If the method decorator signature only accepts a target and a key, we will only
// type check those arguments.
return signature.parameters.length >= 3 ? 3 : 2;
- case 138 /* Parameter */:
+ case 139 /* Parameter */:
// A parameter declaration decorator will have three arguments (see
// `ParameterDecorator` in core.d.ts)
return 3;
@@ -22566,25 +22850,25 @@ var ts;
*/
function getEffectiveDecoratorFirstArgumentType(node) {
// The first argument to a decorator is its `target`.
- if (node.kind === 216 /* ClassDeclaration */) {
+ if (node.kind === 217 /* ClassDeclaration */) {
// For a class decorator, the `target` is the type of the class (e.g. the
// "static" or "constructor" side of the class)
var classSymbol = getSymbolOfNode(node);
return getTypeOfSymbol(classSymbol);
}
- if (node.kind === 138 /* Parameter */) {
+ if (node.kind === 139 /* Parameter */) {
// For a parameter decorator, the `target` is the parent type of the
// parameter's containing method.
node = node.parent;
- if (node.kind === 144 /* Constructor */) {
+ if (node.kind === 145 /* Constructor */) {
var classSymbol = getSymbolOfNode(node);
return getTypeOfSymbol(classSymbol);
}
}
- if (node.kind === 141 /* PropertyDeclaration */ ||
- node.kind === 143 /* MethodDeclaration */ ||
- node.kind === 145 /* GetAccessor */ ||
- node.kind === 146 /* SetAccessor */) {
+ if (node.kind === 142 /* PropertyDeclaration */ ||
+ node.kind === 144 /* MethodDeclaration */ ||
+ node.kind === 146 /* GetAccessor */ ||
+ node.kind === 147 /* SetAccessor */) {
// For a property or method decorator, the `target` is the
// "static"-side type of the parent of the member if the member is
// declared "static"; otherwise, it is the "instance"-side type of the
@@ -22611,21 +22895,21 @@ var ts;
*/
function getEffectiveDecoratorSecondArgumentType(node) {
// The second argument to a decorator is its `propertyKey`
- if (node.kind === 216 /* ClassDeclaration */) {
+ if (node.kind === 217 /* ClassDeclaration */) {
ts.Debug.fail("Class decorators should not have a second synthetic argument.");
return unknownType;
}
- if (node.kind === 138 /* Parameter */) {
+ if (node.kind === 139 /* Parameter */) {
node = node.parent;
- if (node.kind === 144 /* Constructor */) {
+ if (node.kind === 145 /* Constructor */) {
// For a constructor parameter decorator, the `propertyKey` will be `undefined`.
return anyType;
}
}
- if (node.kind === 141 /* PropertyDeclaration */ ||
- node.kind === 143 /* MethodDeclaration */ ||
- node.kind === 145 /* GetAccessor */ ||
- node.kind === 146 /* SetAccessor */) {
+ if (node.kind === 142 /* PropertyDeclaration */ ||
+ node.kind === 144 /* MethodDeclaration */ ||
+ node.kind === 146 /* GetAccessor */ ||
+ node.kind === 147 /* SetAccessor */) {
// The `propertyKey` for a property or method decorator will be a
// string literal type if the member name is an identifier, number, or string;
// otherwise, if the member name is a computed property name it will
@@ -22636,7 +22920,7 @@ var ts;
case 8 /* NumericLiteral */:
case 9 /* StringLiteral */:
return getStringLiteralTypeForText(element.name.text);
- case 136 /* ComputedPropertyName */:
+ case 137 /* ComputedPropertyName */:
var nameType = checkComputedPropertyName(element.name);
if (allConstituentTypesHaveKind(nameType, 16777216 /* ESSymbol */)) {
return nameType;
@@ -22662,21 +22946,21 @@ var ts;
function getEffectiveDecoratorThirdArgumentType(node) {
// The third argument to a decorator is either its `descriptor` for a method decorator
// or its `parameterIndex` for a paramter decorator
- if (node.kind === 216 /* ClassDeclaration */) {
+ if (node.kind === 217 /* ClassDeclaration */) {
ts.Debug.fail("Class decorators should not have a third synthetic argument.");
return unknownType;
}
- if (node.kind === 138 /* Parameter */) {
+ if (node.kind === 139 /* Parameter */) {
// The `parameterIndex` for a parameter decorator is always a number
return numberType;
}
- if (node.kind === 141 /* PropertyDeclaration */) {
+ if (node.kind === 142 /* PropertyDeclaration */) {
ts.Debug.fail("Property decorators should not have a third synthetic argument.");
return unknownType;
}
- if (node.kind === 143 /* MethodDeclaration */ ||
- node.kind === 145 /* GetAccessor */ ||
- node.kind === 146 /* SetAccessor */) {
+ if (node.kind === 144 /* MethodDeclaration */ ||
+ node.kind === 146 /* GetAccessor */ ||
+ node.kind === 147 /* SetAccessor */) {
// The `descriptor` for a method decorator will be a `TypedPropertyDescriptor`
// for the type of the member.
var propertyType = getTypeOfNode(node);
@@ -22708,10 +22992,10 @@ var ts;
// Decorators provide special arguments, a tagged template expression provides
// a special first argument, and string literals get string literal types
// unless we're reporting errors
- if (node.kind === 139 /* Decorator */) {
+ if (node.kind === 140 /* Decorator */) {
return getEffectiveDecoratorArgumentType(node, argIndex);
}
- else if (argIndex === 0 && node.kind === 172 /* TaggedTemplateExpression */) {
+ else if (argIndex === 0 && node.kind === 173 /* TaggedTemplateExpression */) {
return globalTemplateStringsArrayType;
}
// This is not a synthetic argument, so we return 'undefined'
@@ -22723,8 +23007,8 @@ var ts;
*/
function getEffectiveArgument(node, args, argIndex) {
// For a decorator or the first argument of a tagged template expression we return undefined.
- if (node.kind === 139 /* Decorator */ ||
- (argIndex === 0 && node.kind === 172 /* TaggedTemplateExpression */)) {
+ if (node.kind === 140 /* Decorator */ ||
+ (argIndex === 0 && node.kind === 173 /* TaggedTemplateExpression */)) {
return undefined;
}
return args[argIndex];
@@ -22733,11 +23017,11 @@ var ts;
* Gets the error node to use when reporting errors for an effective argument.
*/
function getEffectiveArgumentErrorNode(node, argIndex, arg) {
- if (node.kind === 139 /* Decorator */) {
+ if (node.kind === 140 /* Decorator */) {
// For a decorator, we use the expression of the decorator for error reporting.
return node.expression;
}
- else if (argIndex === 0 && node.kind === 172 /* TaggedTemplateExpression */) {
+ else if (argIndex === 0 && node.kind === 173 /* TaggedTemplateExpression */) {
// For a the first argument of a tagged template expression, we use the template of the tag for error reporting.
return node.template;
}
@@ -22746,8 +23030,8 @@ var ts;
}
}
function resolveCall(node, signatures, candidatesOutArray, headMessage) {
- var isTaggedTemplate = node.kind === 172 /* TaggedTemplateExpression */;
- var isDecorator = node.kind === 139 /* Decorator */;
+ var isTaggedTemplate = node.kind === 173 /* TaggedTemplateExpression */;
+ var isDecorator = node.kind === 140 /* Decorator */;
var typeArguments;
if (!isTaggedTemplate && !isDecorator) {
typeArguments = node.typeArguments;
@@ -23093,16 +23377,16 @@ var ts;
*/
function getDiagnosticHeadMessageForDecoratorResolution(node) {
switch (node.parent.kind) {
- case 216 /* ClassDeclaration */:
- case 188 /* ClassExpression */:
+ case 217 /* ClassDeclaration */:
+ case 189 /* ClassExpression */:
return ts.Diagnostics.Unable_to_resolve_signature_of_class_decorator_when_called_as_an_expression;
- case 138 /* Parameter */:
+ case 139 /* Parameter */:
return ts.Diagnostics.Unable_to_resolve_signature_of_parameter_decorator_when_called_as_an_expression;
- case 141 /* PropertyDeclaration */:
+ case 142 /* PropertyDeclaration */:
return ts.Diagnostics.Unable_to_resolve_signature_of_property_decorator_when_called_as_an_expression;
- case 143 /* MethodDeclaration */:
- case 145 /* GetAccessor */:
- case 146 /* SetAccessor */:
+ case 144 /* MethodDeclaration */:
+ case 146 /* GetAccessor */:
+ case 147 /* SetAccessor */:
return ts.Diagnostics.Unable_to_resolve_signature_of_method_decorator_when_called_as_an_expression;
}
}
@@ -23139,16 +23423,16 @@ var ts;
// to correctly fill the candidatesOutArray.
if (!links.resolvedSignature || candidatesOutArray) {
links.resolvedSignature = anySignature;
- if (node.kind === 170 /* CallExpression */) {
+ if (node.kind === 171 /* CallExpression */) {
links.resolvedSignature = resolveCallExpression(node, candidatesOutArray);
}
- else if (node.kind === 171 /* NewExpression */) {
+ else if (node.kind === 172 /* NewExpression */) {
links.resolvedSignature = resolveNewExpression(node, candidatesOutArray);
}
- else if (node.kind === 172 /* TaggedTemplateExpression */) {
+ else if (node.kind === 173 /* TaggedTemplateExpression */) {
links.resolvedSignature = resolveTaggedTemplateExpression(node, candidatesOutArray);
}
- else if (node.kind === 139 /* Decorator */) {
+ else if (node.kind === 140 /* Decorator */) {
links.resolvedSignature = resolveDecorator(node, candidatesOutArray);
}
else {
@@ -23176,12 +23460,12 @@ var ts;
if (node.expression.kind === 95 /* SuperKeyword */) {
return voidType;
}
- if (node.kind === 171 /* NewExpression */) {
+ if (node.kind === 172 /* NewExpression */) {
var declaration = signature.declaration;
if (declaration &&
- declaration.kind !== 144 /* Constructor */ &&
- declaration.kind !== 148 /* ConstructSignature */ &&
- declaration.kind !== 153 /* ConstructorType */) {
+ declaration.kind !== 145 /* Constructor */ &&
+ declaration.kind !== 149 /* ConstructSignature */ &&
+ declaration.kind !== 154 /* ConstructorType */) {
// When resolved signature is a call signature (and not a construct signature) the result type is any, unless
// the declaring function had members created through 'x.prototype.y = expr' or 'this.y = expr' psuedodeclarations
// in a JS file
@@ -23242,7 +23526,7 @@ var ts;
if (ts.isBindingPattern(node.name)) {
for (var _i = 0, _a = node.name.elements; _i < _a.length; _i++) {
var element = _a[_i];
- if (element.kind !== 189 /* OmittedExpression */) {
+ if (element.kind !== 190 /* OmittedExpression */) {
if (element.name.kind === 69 /* Identifier */) {
getSymbolLinks(getSymbolOfNode(element)).type = getTypeForBindingElement(element);
}
@@ -23307,7 +23591,7 @@ var ts;
}
var isAsync = ts.isAsyncFunctionLike(func);
var type;
- if (func.body.kind !== 194 /* Block */) {
+ if (func.body.kind !== 195 /* Block */) {
type = checkExpressionCached(func.body, contextualMapper);
if (isAsync) {
// From within an async function you can return either a non-promise value or a promise. Any
@@ -23437,7 +23721,7 @@ var ts;
}
// If all we have is a function signature, or an arrow function with an expression body, then there is nothing to check.
// also if HasImplicitReturn flag is not set this means that all codepaths in function body end with return or throw
- if (ts.nodeIsMissing(func.body) || func.body.kind !== 194 /* Block */ || !(func.flags & 524288 /* HasImplicitReturn */)) {
+ if (ts.nodeIsMissing(func.body) || func.body.kind !== 195 /* Block */ || !(func.flags & 524288 /* HasImplicitReturn */)) {
return;
}
var hasExplicitReturn = func.flags & 1048576 /* HasExplicitReturn */;
@@ -23463,20 +23747,16 @@ var ts;
}
}
function checkFunctionExpressionOrObjectLiteralMethod(node, contextualMapper) {
- ts.Debug.assert(node.kind !== 143 /* MethodDeclaration */ || ts.isObjectLiteralMethod(node));
+ ts.Debug.assert(node.kind !== 144 /* MethodDeclaration */ || ts.isObjectLiteralMethod(node));
// Grammar checking
var hasGrammarError = checkGrammarFunctionLikeDeclaration(node);
- if (!hasGrammarError && node.kind === 175 /* FunctionExpression */) {
+ if (!hasGrammarError && node.kind === 176 /* FunctionExpression */) {
checkGrammarForGenerator(node);
}
// The identityMapper object is used to indicate that function expressions are wildcards
if (contextualMapper === identityMapper && isContextSensitive(node)) {
return anyFunctionType;
}
- var isAsync = ts.isAsyncFunctionLike(node);
- if (isAsync) {
- emitAwaiter = true;
- }
var links = getNodeLinks(node);
var type = getTypeOfSymbol(node.symbol);
var contextSensitive = isContextSensitive(node);
@@ -23510,18 +23790,15 @@ var ts;
}
}
}
- if (produceDiagnostics && node.kind !== 143 /* MethodDeclaration */ && node.kind !== 142 /* MethodSignature */) {
+ if (produceDiagnostics && node.kind !== 144 /* MethodDeclaration */ && node.kind !== 143 /* MethodSignature */) {
checkCollisionWithCapturedSuperVariable(node, node.name);
checkCollisionWithCapturedThisVariable(node, node.name);
}
return type;
}
function checkFunctionExpressionOrObjectLiteralMethodDeferred(node) {
- ts.Debug.assert(node.kind !== 143 /* MethodDeclaration */ || ts.isObjectLiteralMethod(node));
+ ts.Debug.assert(node.kind !== 144 /* MethodDeclaration */ || ts.isObjectLiteralMethod(node));
var isAsync = ts.isAsyncFunctionLike(node);
- if (isAsync) {
- emitAwaiter = true;
- }
var returnOrPromisedType = node.type && (isAsync ? checkAsyncFunctionReturnType(node) : getTypeFromTypeNode(node.type));
if (!node.asteriskToken) {
// return is not necessary in the body of generators
@@ -23536,7 +23813,7 @@ var ts;
// checkFunctionExpressionBodies). So it must be done now.
getReturnTypeOfSignature(getSignatureFromDeclaration(node));
}
- if (node.body.kind === 194 /* Block */) {
+ if (node.body.kind === 195 /* Block */) {
checkSourceElement(node.body);
}
else {
@@ -23588,17 +23865,17 @@ var ts;
// An identifier expression that references any other kind of entity is classified as a value(and therefore cannot be the target of an assignment).
return !symbol || symbol === unknownSymbol || symbol === argumentsSymbol || (symbol.flags & 3 /* Variable */) !== 0;
}
- case 168 /* PropertyAccessExpression */: {
+ case 169 /* PropertyAccessExpression */: {
var symbol = findSymbol(n);
// TypeScript 1.0 spec (April 2014): 4.10
// A property access expression is always classified as a reference.
// NOTE (not in spec): assignment to enum members should not be allowed
return !symbol || symbol === unknownSymbol || (symbol.flags & ~8 /* EnumMember */) !== 0;
}
- case 169 /* ElementAccessExpression */:
+ case 170 /* ElementAccessExpression */:
// old compiler doesn't check indexed access
return true;
- case 174 /* ParenthesizedExpression */:
+ case 175 /* ParenthesizedExpression */:
return isReferenceOrErrorExpression(n.expression);
default:
return false;
@@ -23607,11 +23884,11 @@ var ts;
function isConstVariableReference(n) {
switch (n.kind) {
case 69 /* Identifier */:
- case 168 /* PropertyAccessExpression */: {
+ case 169 /* PropertyAccessExpression */: {
var symbol = findSymbol(n);
return symbol && (symbol.flags & 3 /* Variable */) !== 0 && (getDeclarationFlagsFromSymbol(symbol) & 16384 /* Const */) !== 0;
}
- case 169 /* ElementAccessExpression */: {
+ case 170 /* ElementAccessExpression */: {
var index = n.argumentExpression;
var symbol = findSymbol(n.expression);
if (symbol && index && index.kind === 9 /* StringLiteral */) {
@@ -23621,7 +23898,7 @@ var ts;
}
return false;
}
- case 174 /* ParenthesizedExpression */:
+ case 175 /* ParenthesizedExpression */:
return isConstVariableReference(n.expression);
default:
return false;
@@ -23767,9 +24044,9 @@ var ts;
var properties = node.properties;
for (var _i = 0, properties_3 = properties; _i < properties_3.length; _i++) {
var p = properties_3[_i];
- if (p.kind === 247 /* PropertyAssignment */ || p.kind === 248 /* ShorthandPropertyAssignment */) {
+ if (p.kind === 248 /* PropertyAssignment */ || p.kind === 249 /* ShorthandPropertyAssignment */) {
var name_13 = p.name;
- if (name_13.kind === 136 /* ComputedPropertyName */) {
+ if (name_13.kind === 137 /* ComputedPropertyName */) {
checkComputedPropertyName(name_13);
}
if (isComputedNonLiteralName(name_13)) {
@@ -23782,7 +24059,7 @@ var ts;
isNumericLiteralName(text) && getIndexTypeOfType(sourceType, 1 /* Number */) ||
getIndexTypeOfType(sourceType, 0 /* String */);
if (type) {
- if (p.kind === 248 /* ShorthandPropertyAssignment */) {
+ if (p.kind === 249 /* ShorthandPropertyAssignment */) {
checkDestructuringAssignment(p, type);
}
else {
@@ -23808,8 +24085,8 @@ var ts;
var elements = node.elements;
for (var i = 0; i < elements.length; i++) {
var e = elements[i];
- if (e.kind !== 189 /* OmittedExpression */) {
- if (e.kind !== 187 /* SpreadElementExpression */) {
+ if (e.kind !== 190 /* OmittedExpression */) {
+ if (e.kind !== 188 /* SpreadElementExpression */) {
var propName = "" + i;
var type = isTypeAny(sourceType)
? sourceType
@@ -23834,7 +24111,7 @@ var ts;
}
else {
var restExpression = e.expression;
- if (restExpression.kind === 183 /* BinaryExpression */ && restExpression.operatorToken.kind === 56 /* EqualsToken */) {
+ if (restExpression.kind === 184 /* BinaryExpression */ && restExpression.operatorToken.kind === 56 /* EqualsToken */) {
error(restExpression.operatorToken, ts.Diagnostics.A_rest_element_cannot_have_an_initializer);
}
else {
@@ -23848,7 +24125,7 @@ var ts;
}
function checkDestructuringAssignment(exprOrAssignment, sourceType, contextualMapper) {
var target;
- if (exprOrAssignment.kind === 248 /* ShorthandPropertyAssignment */) {
+ if (exprOrAssignment.kind === 249 /* ShorthandPropertyAssignment */) {
var prop = exprOrAssignment;
if (prop.objectAssignmentInitializer) {
checkBinaryLikeExpression(prop.name, prop.equalsToken, prop.objectAssignmentInitializer, contextualMapper);
@@ -23858,14 +24135,14 @@ var ts;
else {
target = exprOrAssignment;
}
- if (target.kind === 183 /* BinaryExpression */ && target.operatorToken.kind === 56 /* EqualsToken */) {
+ if (target.kind === 184 /* BinaryExpression */ && target.operatorToken.kind === 56 /* EqualsToken */) {
checkBinaryExpression(target, contextualMapper);
target = target.left;
}
- if (target.kind === 167 /* ObjectLiteralExpression */) {
+ if (target.kind === 168 /* ObjectLiteralExpression */) {
return checkObjectLiteralAssignment(target, sourceType, contextualMapper);
}
- if (target.kind === 166 /* ArrayLiteralExpression */) {
+ if (target.kind === 167 /* ArrayLiteralExpression */) {
return checkArrayLiteralAssignment(target, sourceType, contextualMapper);
}
return checkReferenceAssignment(target, sourceType, contextualMapper);
@@ -23882,7 +24159,7 @@ var ts;
}
function checkBinaryLikeExpression(left, operatorToken, right, contextualMapper, errorNode) {
var operator = operatorToken.kind;
- if (operator === 56 /* EqualsToken */ && (left.kind === 167 /* ObjectLiteralExpression */ || left.kind === 166 /* ArrayLiteralExpression */)) {
+ if (operator === 56 /* EqualsToken */ && (left.kind === 168 /* ObjectLiteralExpression */ || left.kind === 167 /* ArrayLiteralExpression */)) {
return checkDestructuringAssignment(left, checkExpression(right, contextualMapper), contextualMapper);
}
var leftType = checkExpression(left, contextualMapper);
@@ -24151,7 +24428,7 @@ var ts;
// Do not use hasDynamicName here, because that returns false for well known symbols.
// We want to perform checkComputedPropertyName for all computed properties, including
// well known symbols.
- if (node.name.kind === 136 /* ComputedPropertyName */) {
+ if (node.name.kind === 137 /* ComputedPropertyName */) {
checkComputedPropertyName(node.name);
}
return checkExpression(node.initializer, contextualMapper);
@@ -24162,7 +24439,7 @@ var ts;
// Do not use hasDynamicName here, because that returns false for well known symbols.
// We want to perform checkComputedPropertyName for all computed properties, including
// well known symbols.
- if (node.name.kind === 136 /* ComputedPropertyName */) {
+ if (node.name.kind === 137 /* ComputedPropertyName */) {
checkComputedPropertyName(node.name);
}
var uninstantiatedType = checkFunctionExpressionOrObjectLiteralMethod(node, contextualMapper);
@@ -24192,7 +24469,7 @@ var ts;
// contextually typed function and arrow expressions in the initial phase.
function checkExpression(node, contextualMapper) {
var type;
- if (node.kind === 135 /* QualifiedName */) {
+ if (node.kind === 136 /* QualifiedName */) {
type = checkQualifiedName(node);
}
else {
@@ -24204,9 +24481,9 @@ var ts;
// - 'left' in property access
// - 'object' in indexed access
// - target in rhs of import statement
- var ok = (node.parent.kind === 168 /* PropertyAccessExpression */ && node.parent.expression === node) ||
- (node.parent.kind === 169 /* ElementAccessExpression */ && node.parent.expression === node) ||
- ((node.kind === 69 /* Identifier */ || node.kind === 135 /* QualifiedName */) && isInRightSideOfImportOrExportAssignment(node));
+ var ok = (node.parent.kind === 169 /* PropertyAccessExpression */ && node.parent.expression === node) ||
+ (node.parent.kind === 170 /* ElementAccessExpression */ && node.parent.expression === node) ||
+ ((node.kind === 69 /* Identifier */ || node.kind === 136 /* QualifiedName */) && isInRightSideOfImportOrExportAssignment(node));
if (!ok) {
error(node, ts.Diagnostics.const_enums_can_only_be_used_in_property_or_index_access_expressions_or_the_right_hand_side_of_an_import_declaration_or_export_assignment);
}
@@ -24233,7 +24510,7 @@ var ts;
return booleanType;
case 8 /* NumericLiteral */:
return checkNumericLiteral(node);
- case 185 /* TemplateExpression */:
+ case 186 /* TemplateExpression */:
return checkTemplateExpression(node);
case 9 /* StringLiteral */:
return checkStringLiteralExpression(node);
@@ -24241,58 +24518,58 @@ var ts;
return stringType;
case 10 /* RegularExpressionLiteral */:
return globalRegExpType;
- case 166 /* ArrayLiteralExpression */:
+ case 167 /* ArrayLiteralExpression */:
return checkArrayLiteral(node, contextualMapper);
- case 167 /* ObjectLiteralExpression */:
+ case 168 /* ObjectLiteralExpression */:
return checkObjectLiteral(node, contextualMapper);
- case 168 /* PropertyAccessExpression */:
+ case 169 /* PropertyAccessExpression */:
return checkPropertyAccessExpression(node);
- case 169 /* ElementAccessExpression */:
+ case 170 /* ElementAccessExpression */:
return checkIndexedAccess(node);
- case 170 /* CallExpression */:
- case 171 /* NewExpression */:
+ case 171 /* CallExpression */:
+ case 172 /* NewExpression */:
return checkCallExpression(node);
- case 172 /* TaggedTemplateExpression */:
+ case 173 /* TaggedTemplateExpression */:
return checkTaggedTemplateExpression(node);
- case 174 /* ParenthesizedExpression */:
+ case 175 /* ParenthesizedExpression */:
return checkExpression(node.expression, contextualMapper);
- case 188 /* ClassExpression */:
+ case 189 /* ClassExpression */:
return checkClassExpression(node);
- case 175 /* FunctionExpression */:
- case 176 /* ArrowFunction */:
+ case 176 /* FunctionExpression */:
+ case 177 /* ArrowFunction */:
return checkFunctionExpressionOrObjectLiteralMethod(node, contextualMapper);
- case 178 /* TypeOfExpression */:
+ case 179 /* TypeOfExpression */:
return checkTypeOfExpression(node);
- case 173 /* TypeAssertionExpression */:
- case 191 /* AsExpression */:
+ case 174 /* TypeAssertionExpression */:
+ case 192 /* AsExpression */:
return checkAssertion(node);
- case 177 /* DeleteExpression */:
+ case 178 /* DeleteExpression */:
return checkDeleteExpression(node);
- case 179 /* VoidExpression */:
+ case 180 /* VoidExpression */:
return checkVoidExpression(node);
- case 180 /* AwaitExpression */:
+ case 181 /* AwaitExpression */:
return checkAwaitExpression(node);
- case 181 /* PrefixUnaryExpression */:
+ case 182 /* PrefixUnaryExpression */:
return checkPrefixUnaryExpression(node);
- case 182 /* PostfixUnaryExpression */:
+ case 183 /* PostfixUnaryExpression */:
return checkPostfixUnaryExpression(node);
- case 183 /* BinaryExpression */:
+ case 184 /* BinaryExpression */:
return checkBinaryExpression(node, contextualMapper);
- case 184 /* ConditionalExpression */:
+ case 185 /* ConditionalExpression */:
return checkConditionalExpression(node, contextualMapper);
- case 187 /* SpreadElementExpression */:
+ case 188 /* SpreadElementExpression */:
return checkSpreadElementExpression(node, contextualMapper);
- case 189 /* OmittedExpression */:
+ case 190 /* OmittedExpression */:
return undefinedType;
- case 186 /* YieldExpression */:
+ case 187 /* YieldExpression */:
return checkYieldExpression(node);
- case 242 /* JsxExpression */:
+ case 243 /* JsxExpression */:
return checkJsxExpression(node);
- case 235 /* JsxElement */:
+ case 236 /* JsxElement */:
return checkJsxElement(node);
- case 236 /* JsxSelfClosingElement */:
+ case 237 /* JsxSelfClosingElement */:
return checkJsxSelfClosingElement(node);
- case 237 /* JsxOpeningElement */:
+ case 238 /* JsxOpeningElement */:
ts.Debug.fail("Shouldn't ever directly check a JsxOpeningElement");
}
return unknownType;
@@ -24320,7 +24597,7 @@ var ts;
var func = ts.getContainingFunction(node);
if (node.flags & 56 /* AccessibilityModifier */) {
func = ts.getContainingFunction(node);
- if (!(func.kind === 144 /* Constructor */ && ts.nodeIsPresent(func.body))) {
+ if (!(func.kind === 145 /* Constructor */ && ts.nodeIsPresent(func.body))) {
error(node, ts.Diagnostics.A_parameter_property_is_only_allowed_in_a_constructor_implementation);
}
}
@@ -24337,9 +24614,9 @@ var ts;
if (!node.asteriskToken || !node.body) {
return false;
}
- return node.kind === 143 /* MethodDeclaration */ ||
- node.kind === 215 /* FunctionDeclaration */ ||
- node.kind === 175 /* FunctionExpression */;
+ return node.kind === 144 /* MethodDeclaration */ ||
+ node.kind === 216 /* FunctionDeclaration */ ||
+ node.kind === 176 /* FunctionExpression */;
}
function getTypePredicateParameterIndex(parameterList, parameter) {
if (parameterList) {
@@ -24353,105 +24630,98 @@ var ts;
}
return -1;
}
- function isInLegalParameterTypePredicatePosition(node) {
- switch (node.parent.kind) {
- case 176 /* ArrowFunction */:
- case 147 /* CallSignature */:
- case 215 /* FunctionDeclaration */:
- case 175 /* FunctionExpression */:
- case 152 /* FunctionType */:
- case 143 /* MethodDeclaration */:
- case 142 /* MethodSignature */:
- return node === node.parent.type;
+ function checkTypePredicate(node) {
+ var parent = getTypePredicateParent(node);
+ if (!parent) {
+ return;
+ }
+ var returnType = getReturnTypeOfSignature(getSignatureFromDeclaration(parent));
+ if (!returnType || !(returnType.flags & 134217728 /* PredicateType */)) {
+ return;
+ }
+ var parameterName = node.parameterName;
+ if (parameterName.kind === 162 /* ThisType */) {
+ getTypeFromThisTypeNode(parameterName);
+ }
+ else {
+ var typePredicate = returnType.predicate;
+ if (typePredicate.parameterIndex >= 0) {
+ if (parent.parameters[typePredicate.parameterIndex].dotDotDotToken) {
+ error(parameterName, ts.Diagnostics.A_type_predicate_cannot_reference_a_rest_parameter);
+ }
+ else {
+ checkTypeAssignableTo(typePredicate.type, getTypeOfNode(parent.parameters[typePredicate.parameterIndex]), node.type);
+ }
+ }
+ else if (parameterName) {
+ var hasReportedError = false;
+ for (var _i = 0, _a = parent.parameters; _i < _a.length; _i++) {
+ var name_14 = _a[_i].name;
+ if ((name_14.kind === 164 /* ObjectBindingPattern */ ||
+ name_14.kind === 165 /* ArrayBindingPattern */) &&
+ checkIfTypePredicateVariableIsDeclaredInBindingPattern(name_14, parameterName, typePredicate.parameterName)) {
+ hasReportedError = true;
+ break;
+ }
+ }
+ if (!hasReportedError) {
+ error(node.parameterName, ts.Diagnostics.Cannot_find_parameter_0, typePredicate.parameterName);
+ }
+ }
}
- return false;
}
- function isInLegalThisTypePredicatePosition(node) {
- if (isInLegalParameterTypePredicatePosition(node)) {
- return true;
- }
+ function getTypePredicateParent(node) {
switch (node.parent.kind) {
- case 141 /* PropertyDeclaration */:
- case 140 /* PropertySignature */:
- case 145 /* GetAccessor */:
- return node === node.parent.type;
+ case 177 /* ArrowFunction */:
+ case 148 /* CallSignature */:
+ case 216 /* FunctionDeclaration */:
+ case 176 /* FunctionExpression */:
+ case 153 /* FunctionType */:
+ case 144 /* MethodDeclaration */:
+ case 143 /* MethodSignature */:
+ var parent_6 = node.parent;
+ if (node === parent_6.type) {
+ return parent_6;
+ }
+ }
+ }
+ function checkIfTypePredicateVariableIsDeclaredInBindingPattern(pattern, predicateVariableNode, predicateVariableName) {
+ for (var _i = 0, _a = pattern.elements; _i < _a.length; _i++) {
+ var name_15 = _a[_i].name;
+ if (name_15.kind === 69 /* Identifier */ &&
+ name_15.text === predicateVariableName) {
+ error(predicateVariableNode, ts.Diagnostics.A_type_predicate_cannot_reference_element_0_in_a_binding_pattern, predicateVariableName);
+ return true;
+ }
+ else if (name_15.kind === 165 /* ArrayBindingPattern */ ||
+ name_15.kind === 164 /* ObjectBindingPattern */) {
+ if (checkIfTypePredicateVariableIsDeclaredInBindingPattern(name_15, predicateVariableNode, predicateVariableName)) {
+ return true;
+ }
+ }
}
- return false;
}
function checkSignatureDeclaration(node) {
// Grammar checking
- if (node.kind === 149 /* IndexSignature */) {
+ if (node.kind === 150 /* IndexSignature */) {
checkGrammarIndexSignature(node);
}
- else if (node.kind === 152 /* FunctionType */ || node.kind === 215 /* FunctionDeclaration */ || node.kind === 153 /* ConstructorType */ ||
- node.kind === 147 /* CallSignature */ || node.kind === 144 /* Constructor */ ||
- node.kind === 148 /* ConstructSignature */) {
+ else if (node.kind === 153 /* FunctionType */ || node.kind === 216 /* FunctionDeclaration */ || node.kind === 154 /* ConstructorType */ ||
+ node.kind === 148 /* CallSignature */ || node.kind === 145 /* Constructor */ ||
+ node.kind === 149 /* ConstructSignature */) {
checkGrammarFunctionLikeDeclaration(node);
}
checkTypeParameters(node.typeParameters);
ts.forEach(node.parameters, checkParameter);
- if (node.type) {
- if (node.type.kind === 150 /* TypePredicate */) {
- var returnType = getReturnTypeOfSignature(getSignatureFromDeclaration(node));
- if (!returnType || !(returnType.flags & 134217728 /* PredicateType */)) {
- return;
- }
- var typePredicate = returnType.predicate;
- var typePredicateNode = node.type;
- checkSourceElement(typePredicateNode);
- if (ts.isIdentifierTypePredicate(typePredicate)) {
- if (typePredicate.parameterIndex >= 0) {
- if (node.parameters[typePredicate.parameterIndex].dotDotDotToken) {
- error(typePredicateNode.parameterName, ts.Diagnostics.A_type_predicate_cannot_reference_a_rest_parameter);
- }
- else {
- checkTypeAssignableTo(typePredicate.type, getTypeOfNode(node.parameters[typePredicate.parameterIndex]), typePredicateNode.type);
- }
- }
- else if (typePredicateNode.parameterName) {
- var hasReportedError = false;
- for (var _i = 0, _a = node.parameters; _i < _a.length; _i++) {
- var param = _a[_i];
- if (hasReportedError) {
- break;
- }
- if (param.name.kind === 163 /* ObjectBindingPattern */ ||
- param.name.kind === 164 /* ArrayBindingPattern */) {
- (function checkBindingPattern(pattern) {
- for (var _i = 0, _a = pattern.elements; _i < _a.length; _i++) {
- var element = _a[_i];
- if (element.name.kind === 69 /* Identifier */ &&
- element.name.text === typePredicate.parameterName) {
- error(typePredicateNode.parameterName, ts.Diagnostics.A_type_predicate_cannot_reference_element_0_in_a_binding_pattern, typePredicate.parameterName);
- hasReportedError = true;
- break;
- }
- else if (element.name.kind === 164 /* ArrayBindingPattern */ ||
- element.name.kind === 163 /* ObjectBindingPattern */) {
- checkBindingPattern(element.name);
- }
- }
- })(param.name);
- }
- }
- if (!hasReportedError) {
- error(typePredicateNode.parameterName, ts.Diagnostics.Cannot_find_parameter_0, typePredicate.parameterName);
- }
- }
- }
- }
- else {
- checkSourceElement(node.type);
- }
- }
+ checkSourceElement(node.type);
if (produceDiagnostics) {
checkCollisionWithArgumentsInGeneratedCode(node);
if (compilerOptions.noImplicitAny && !node.type) {
switch (node.kind) {
- case 148 /* ConstructSignature */:
+ case 149 /* ConstructSignature */:
error(node, ts.Diagnostics.Construct_signature_which_lacks_return_type_annotation_implicitly_has_an_any_return_type);
break;
- case 147 /* CallSignature */:
+ case 148 /* CallSignature */:
error(node, ts.Diagnostics.Call_signature_which_lacks_return_type_annotation_implicitly_has_an_any_return_type);
break;
}
@@ -24479,7 +24749,7 @@ var ts;
checkSpecializedSignatureDeclaration(node);
}
function checkTypeForDuplicateIndexSignatures(node) {
- if (node.kind === 217 /* InterfaceDeclaration */) {
+ if (node.kind === 218 /* InterfaceDeclaration */) {
var nodeSymbol = getSymbolOfNode(node);
// in case of merging interface declaration it is possible that we'll enter this check procedure several times for every declaration
// to prevent this run check only for the first declaration of a given kind
@@ -24556,7 +24826,7 @@ var ts;
return;
}
function isSuperCallExpression(n) {
- return n.kind === 170 /* CallExpression */ && n.expression.kind === 95 /* SuperKeyword */;
+ return n.kind === 171 /* CallExpression */ && n.expression.kind === 95 /* SuperKeyword */;
}
function containsSuperCallAsComputedPropertyName(n) {
return n.name && containsSuperCall(n.name);
@@ -24577,12 +24847,12 @@ var ts;
if (n.kind === 97 /* ThisKeyword */) {
error(n, ts.Diagnostics.this_cannot_be_referenced_in_current_location);
}
- else if (n.kind !== 175 /* FunctionExpression */ && n.kind !== 215 /* FunctionDeclaration */) {
+ else if (n.kind !== 176 /* FunctionExpression */ && n.kind !== 216 /* FunctionDeclaration */) {
ts.forEachChild(n, markThisReferencesAsErrors);
}
}
function isInstancePropertyWithInitializer(n) {
- return n.kind === 141 /* PropertyDeclaration */ &&
+ return n.kind === 142 /* PropertyDeclaration */ &&
!(n.flags & 64 /* Static */) &&
!!n.initializer;
}
@@ -24612,7 +24882,7 @@ var ts;
var superCallStatement;
for (var _i = 0, statements_2 = statements; _i < statements_2.length; _i++) {
var statement = statements_2[_i];
- if (statement.kind === 197 /* ExpressionStatement */ && isSuperCallExpression(statement.expression)) {
+ if (statement.kind === 198 /* ExpressionStatement */ && isSuperCallExpression(statement.expression)) {
superCallStatement = statement;
break;
}
@@ -24640,7 +24910,7 @@ var ts;
checkGrammarFunctionLikeDeclaration(node) || checkGrammarAccessor(node) || checkGrammarComputedPropertyName(node.name);
checkDecorators(node);
checkSignatureDeclaration(node);
- if (node.kind === 145 /* GetAccessor */) {
+ if (node.kind === 146 /* GetAccessor */) {
if (!ts.isInAmbientContext(node) && ts.nodeIsPresent(node.body) && (node.flags & 524288 /* HasImplicitReturn */)) {
if (node.flags & 1048576 /* HasExplicitReturn */) {
if (compilerOptions.noImplicitReturns) {
@@ -24655,13 +24925,13 @@ var ts;
// Do not use hasDynamicName here, because that returns false for well known symbols.
// We want to perform checkComputedPropertyName for all computed properties, including
// well known symbols.
- if (node.name.kind === 136 /* ComputedPropertyName */) {
+ if (node.name.kind === 137 /* ComputedPropertyName */) {
checkComputedPropertyName(node.name);
}
if (!ts.hasDynamicName(node)) {
// TypeScript 1.0 spec (April 2014): 8.4.3
// Accessors for the same member name must specify the same accessibility.
- var otherKind = node.kind === 145 /* GetAccessor */ ? 146 /* SetAccessor */ : 145 /* GetAccessor */;
+ var otherKind = node.kind === 146 /* GetAccessor */ ? 147 /* SetAccessor */ : 146 /* GetAccessor */;
var otherAccessor = ts.getDeclarationOfKind(node.symbol, otherKind);
if (otherAccessor) {
if (((node.flags & 56 /* AccessibilityModifier */) !== (otherAccessor.flags & 56 /* AccessibilityModifier */))) {
@@ -24680,7 +24950,7 @@ var ts;
}
getTypeOfAccessors(getSymbolOfNode(node));
}
- if (node.parent.kind !== 167 /* ObjectLiteralExpression */) {
+ if (node.parent.kind !== 168 /* ObjectLiteralExpression */) {
checkSourceElement(node.body);
}
else {
@@ -24771,9 +25041,9 @@ var ts;
var signaturesToCheck;
// Unnamed (call\construct) signatures in interfaces are inherited and not shadowed so examining just node symbol won't give complete answer.
// Use declaring type to obtain full list of signatures.
- if (!signatureDeclarationNode.name && signatureDeclarationNode.parent && signatureDeclarationNode.parent.kind === 217 /* InterfaceDeclaration */) {
- ts.Debug.assert(signatureDeclarationNode.kind === 147 /* CallSignature */ || signatureDeclarationNode.kind === 148 /* ConstructSignature */);
- var signatureKind = signatureDeclarationNode.kind === 147 /* CallSignature */ ? 0 /* Call */ : 1 /* Construct */;
+ if (!signatureDeclarationNode.name && signatureDeclarationNode.parent && signatureDeclarationNode.parent.kind === 218 /* InterfaceDeclaration */) {
+ ts.Debug.assert(signatureDeclarationNode.kind === 148 /* CallSignature */ || signatureDeclarationNode.kind === 149 /* ConstructSignature */);
+ var signatureKind = signatureDeclarationNode.kind === 148 /* CallSignature */ ? 0 /* Call */ : 1 /* Construct */;
var containingSymbol = getSymbolOfNode(signatureDeclarationNode.parent);
var containingType = getDeclaredTypeOfSymbol(containingSymbol);
signaturesToCheck = getSignaturesOfType(containingType, signatureKind);
@@ -24793,9 +25063,9 @@ var ts;
var flags = ts.getCombinedNodeFlags(n);
// children of classes (even ambient classes) should not be marked as ambient or export
// because those flags have no useful semantics there.
- if (n.parent.kind !== 217 /* InterfaceDeclaration */ &&
- n.parent.kind !== 216 /* ClassDeclaration */ &&
- n.parent.kind !== 188 /* ClassExpression */ &&
+ if (n.parent.kind !== 218 /* InterfaceDeclaration */ &&
+ n.parent.kind !== 217 /* ClassDeclaration */ &&
+ n.parent.kind !== 189 /* ClassExpression */ &&
ts.isInAmbientContext(n)) {
if (!(flags & 4 /* Ambient */)) {
// It is nested in an ambient context, which means it is automatically exported
@@ -24883,7 +25153,7 @@ var ts;
var errorNode_1 = subsequentNode.name || subsequentNode;
// TODO(jfreeman): These are methods, so handle computed name case
if (node.name && subsequentNode.name && node.name.text === subsequentNode.name.text) {
- var reportError = (node.kind === 143 /* MethodDeclaration */ || node.kind === 142 /* MethodSignature */) &&
+ var reportError = (node.kind === 144 /* MethodDeclaration */ || node.kind === 143 /* MethodSignature */) &&
(node.flags & 64 /* Static */) !== (subsequentNode.flags & 64 /* Static */);
// we can get here in two cases
// 1. mixed static and instance class members
@@ -24925,7 +25195,7 @@ var ts;
var current = declarations_4[_i];
var node = current;
var inAmbientContext = ts.isInAmbientContext(node);
- var inAmbientContextOrInterface = node.parent.kind === 217 /* InterfaceDeclaration */ || node.parent.kind === 155 /* TypeLiteral */ || inAmbientContext;
+ var inAmbientContextOrInterface = node.parent.kind === 218 /* InterfaceDeclaration */ || node.parent.kind === 156 /* TypeLiteral */ || inAmbientContext;
if (inAmbientContextOrInterface) {
// check if declarations are consecutive only if they are non-ambient
// 1. ambient declarations can be interleaved
@@ -24936,7 +25206,7 @@ var ts;
// 2. mixing ambient and non-ambient declarations is a separate error that will be reported - do not want to report an extra one
previousDeclaration = undefined;
}
- if (node.kind === 215 /* FunctionDeclaration */ || node.kind === 143 /* MethodDeclaration */ || node.kind === 142 /* MethodSignature */ || node.kind === 144 /* Constructor */) {
+ if (node.kind === 216 /* FunctionDeclaration */ || node.kind === 144 /* MethodDeclaration */ || node.kind === 143 /* MethodSignature */ || node.kind === 145 /* Constructor */) {
var currentNodeFlags = getEffectiveDeclarationFlags(node, flagsToCheck);
someNodeFlags |= currentNodeFlags;
allNodeFlags &= currentNodeFlags;
@@ -25076,16 +25346,16 @@ var ts;
}
function getDeclarationSpaces(d) {
switch (d.kind) {
- case 217 /* InterfaceDeclaration */:
+ case 218 /* InterfaceDeclaration */:
return 2097152 /* ExportType */;
- case 220 /* ModuleDeclaration */:
- return d.name.kind === 9 /* StringLiteral */ || ts.getModuleInstanceState(d) !== 0 /* NonInstantiated */
+ case 221 /* ModuleDeclaration */:
+ return ts.isAmbientModule(d) || ts.getModuleInstanceState(d) !== 0 /* NonInstantiated */
? 4194304 /* ExportNamespace */ | 1048576 /* ExportValue */
: 4194304 /* ExportNamespace */;
- case 216 /* ClassDeclaration */:
- case 219 /* EnumDeclaration */:
+ case 217 /* ClassDeclaration */:
+ case 220 /* EnumDeclaration */:
return 2097152 /* ExportType */ | 1048576 /* ExportValue */;
- case 223 /* ImportEqualsDeclaration */:
+ case 224 /* ImportEqualsDeclaration */:
var result = 0;
var target = resolveAlias(getSymbolOfNode(d));
ts.forEach(target.declarations, function (d) { result |= getDeclarationSpaces(d); });
@@ -25335,22 +25605,22 @@ var ts;
var headMessage = getDiagnosticHeadMessageForDecoratorResolution(node);
var errorInfo;
switch (node.parent.kind) {
- case 216 /* ClassDeclaration */:
+ case 217 /* ClassDeclaration */:
var classSymbol = getSymbolOfNode(node.parent);
var classConstructorType = getTypeOfSymbol(classSymbol);
expectedReturnType = getUnionType([classConstructorType, voidType]);
break;
- case 138 /* Parameter */:
+ case 139 /* Parameter */:
expectedReturnType = voidType;
errorInfo = ts.chainDiagnosticMessages(errorInfo, ts.Diagnostics.The_return_type_of_a_parameter_decorator_function_must_be_either_void_or_any);
break;
- case 141 /* PropertyDeclaration */:
+ case 142 /* PropertyDeclaration */:
expectedReturnType = voidType;
errorInfo = ts.chainDiagnosticMessages(errorInfo, ts.Diagnostics.The_return_type_of_a_property_decorator_function_must_be_either_void_or_any);
break;
- case 143 /* MethodDeclaration */:
- case 145 /* GetAccessor */:
- case 146 /* SetAccessor */:
+ case 144 /* MethodDeclaration */:
+ case 146 /* GetAccessor */:
+ case 147 /* SetAccessor */:
var methodType = getTypeOfNode(node.parent);
var descriptorType = createTypedPropertyDescriptorType(methodType);
expectedReturnType = getUnionType([descriptorType, voidType]);
@@ -25363,9 +25633,9 @@ var ts;
// When we are emitting type metadata for decorators, we need to try to check the type
// as if it were an expression so that we can emit the type in a value position when we
// serialize the type metadata.
- if (node && node.kind === 151 /* TypeReference */) {
+ if (node && node.kind === 152 /* TypeReference */) {
var root = getFirstIdentifier(node.typeName);
- var meaning = root.parent.kind === 151 /* TypeReference */ ? 793056 /* Type */ : 1536 /* Namespace */;
+ var meaning = root.parent.kind === 152 /* TypeReference */ ? 793056 /* Type */ : 1536 /* Namespace */;
// Resolve type so we know which symbol is referenced
var rootSymbol = resolveName(root, root.text, meaning | 8388608 /* Alias */, /*nameNotFoundMessage*/ undefined, /*nameArg*/ undefined);
// Resolved symbol is alias
@@ -25412,28 +25682,24 @@ var ts;
if (compilerOptions.emitDecoratorMetadata) {
// we only need to perform these checks if we are emitting serialized type metadata for the target of a decorator.
switch (node.kind) {
- case 216 /* ClassDeclaration */:
+ case 217 /* ClassDeclaration */:
var constructor = ts.getFirstConstructorWithBody(node);
if (constructor) {
checkParameterTypeAnnotationsAsExpressions(constructor);
}
break;
- case 143 /* MethodDeclaration */:
- case 145 /* GetAccessor */:
- case 146 /* SetAccessor */:
+ case 144 /* MethodDeclaration */:
+ case 146 /* GetAccessor */:
+ case 147 /* SetAccessor */:
checkParameterTypeAnnotationsAsExpressions(node);
checkReturnTypeAnnotationAsExpression(node);
break;
- case 141 /* PropertyDeclaration */:
- case 138 /* Parameter */:
+ case 142 /* PropertyDeclaration */:
+ case 139 /* Parameter */:
checkTypeAnnotationAsExpression(node);
break;
}
}
- emitDecorate = true;
- if (node.kind === 138 /* Parameter */) {
- emitParam = true;
- }
ts.forEach(node.decorators, checkDecorator);
}
function checkFunctionDeclaration(node) {
@@ -25448,13 +25714,10 @@ var ts;
checkDecorators(node);
checkSignatureDeclaration(node);
var isAsync = ts.isAsyncFunctionLike(node);
- if (isAsync) {
- emitAwaiter = true;
- }
// Do not use hasDynamicName here, because that returns false for well known symbols.
// We want to perform checkComputedPropertyName for all computed properties, including
// well known symbols.
- if (node.name && node.name.kind === 136 /* ComputedPropertyName */) {
+ if (node.name && node.name.kind === 137 /* ComputedPropertyName */) {
// This check will account for methods in class/interface declarations,
// as well as accessors in classes/object literals
checkComputedPropertyName(node.name);
@@ -25470,7 +25733,7 @@ var ts;
// checkFunctionOrConstructorSymbol wouldn't be called if we didnt ignore javascript function.
var firstDeclaration = ts.forEach(localSymbol.declarations,
// Get first non javascript function declaration
- function (declaration) { return declaration.kind === node.kind && !ts.isSourceFileJavaScript(getSourceFile(declaration)) ?
+ function (declaration) { return declaration.kind === node.kind && !ts.isSourceFileJavaScript(ts.getSourceFileOfNode(declaration)) ?
declaration : undefined; });
// Only type check the symbol once
if (node === firstDeclaration) {
@@ -25505,7 +25768,7 @@ var ts;
}
function checkBlock(node) {
// Grammar checking for SyntaxKind.Block
- if (node.kind === 194 /* Block */) {
+ if (node.kind === 195 /* Block */) {
checkGrammarStatementInAmbientContext(node);
}
ts.forEach(node.statements, checkSourceElement);
@@ -25525,12 +25788,12 @@ var ts;
if (!(identifier && identifier.text === name)) {
return false;
}
- if (node.kind === 141 /* PropertyDeclaration */ ||
- node.kind === 140 /* PropertySignature */ ||
- node.kind === 143 /* MethodDeclaration */ ||
- node.kind === 142 /* MethodSignature */ ||
- node.kind === 145 /* GetAccessor */ ||
- node.kind === 146 /* SetAccessor */) {
+ if (node.kind === 142 /* PropertyDeclaration */ ||
+ node.kind === 141 /* PropertySignature */ ||
+ node.kind === 144 /* MethodDeclaration */ ||
+ node.kind === 143 /* MethodSignature */ ||
+ node.kind === 146 /* GetAccessor */ ||
+ node.kind === 147 /* SetAccessor */) {
// it is ok to have member named '_super' or '_this' - member access is always qualified
return false;
}
@@ -25539,7 +25802,7 @@ var ts;
return false;
}
var root = ts.getRootDeclaration(node);
- if (root.kind === 138 /* Parameter */ && ts.nodeIsMissing(root.parent.body)) {
+ if (root.kind === 139 /* Parameter */ && ts.nodeIsMissing(root.parent.body)) {
// just an overload - no codegen impact
return false;
}
@@ -25592,12 +25855,12 @@ var ts;
return;
}
// Uninstantiated modules shouldnt do this check
- if (node.kind === 220 /* ModuleDeclaration */ && ts.getModuleInstanceState(node) !== 1 /* Instantiated */) {
+ if (node.kind === 221 /* ModuleDeclaration */ && ts.getModuleInstanceState(node) !== 1 /* Instantiated */) {
return;
}
// In case of variable declaration, node.parent is variable statement so look at the variable statement's parent
var parent = getDeclarationContainer(node);
- if (parent.kind === 250 /* SourceFile */ && ts.isExternalOrCommonJsModule(parent)) {
+ if (parent.kind === 251 /* SourceFile */ && ts.isExternalOrCommonJsModule(parent)) {
// If the declaration happens to be in external module, report error that require and exports are reserved keywords
error(name, ts.Diagnostics.Duplicate_identifier_0_Compiler_reserves_name_1_in_top_level_scope_of_a_module, ts.declarationNameToString(name), ts.declarationNameToString(name));
}
@@ -25632,7 +25895,7 @@ var ts;
// skip variable declarations that don't have initializers
// NOTE: in ES6 spec initializer is required in variable declarations where name is binding pattern
// so we'll always treat binding elements as initialized
- if (node.kind === 213 /* VariableDeclaration */ && !node.initializer) {
+ if (node.kind === 214 /* VariableDeclaration */ && !node.initializer) {
return;
}
var symbol = getSymbolOfNode(node);
@@ -25642,24 +25905,24 @@ var ts;
localDeclarationSymbol !== symbol &&
localDeclarationSymbol.flags & 2 /* BlockScopedVariable */) {
if (getDeclarationFlagsFromSymbol(localDeclarationSymbol) & 24576 /* BlockScoped */) {
- var varDeclList = ts.getAncestor(localDeclarationSymbol.valueDeclaration, 214 /* VariableDeclarationList */);
- var container = varDeclList.parent.kind === 195 /* VariableStatement */ && varDeclList.parent.parent
+ var varDeclList = ts.getAncestor(localDeclarationSymbol.valueDeclaration, 215 /* VariableDeclarationList */);
+ var container = varDeclList.parent.kind === 196 /* VariableStatement */ && varDeclList.parent.parent
? varDeclList.parent.parent
: undefined;
// names of block-scoped and function scoped variables can collide only
// if block scoped variable is defined in the function\module\source file scope (because of variable hoisting)
var namesShareScope = container &&
- (container.kind === 194 /* Block */ && ts.isFunctionLike(container.parent) ||
- container.kind === 221 /* ModuleBlock */ ||
- container.kind === 220 /* ModuleDeclaration */ ||
- container.kind === 250 /* SourceFile */);
+ (container.kind === 195 /* Block */ && ts.isFunctionLike(container.parent) ||
+ container.kind === 222 /* ModuleBlock */ ||
+ container.kind === 221 /* ModuleDeclaration */ ||
+ container.kind === 251 /* SourceFile */);
// here we know that function scoped variable is shadowed by block scoped one
// if they are defined in the same scope - binder has already reported redeclaration error
// otherwise if variable has an initializer - show error that initialization will fail
// since LHS will be block scoped name instead of function scoped
if (!namesShareScope) {
- var name_14 = symbolToString(localDeclarationSymbol);
- error(node, ts.Diagnostics.Cannot_initialize_outer_scoped_variable_0_in_the_same_scope_as_block_scoped_declaration_1, name_14, name_14);
+ var name_16 = symbolToString(localDeclarationSymbol);
+ error(node, ts.Diagnostics.Cannot_initialize_outer_scoped_variable_0_in_the_same_scope_as_block_scoped_declaration_1, name_16, name_16);
}
}
}
@@ -25667,7 +25930,7 @@ var ts;
}
// Check that a parameter initializer contains no references to parameters declared to the right of itself
function checkParameterInitializer(node) {
- if (ts.getRootDeclaration(node).kind !== 138 /* Parameter */) {
+ if (ts.getRootDeclaration(node).kind !== 139 /* Parameter */) {
return;
}
var func = ts.getContainingFunction(node);
@@ -25678,7 +25941,7 @@ var ts;
// check FunctionLikeDeclaration.locals (stores parameters\function local variable)
// if it contains entry with a specified name and if this entry matches the resolved symbol
if (referencedSymbol && referencedSymbol !== unknownSymbol && getSymbol(func.locals, referencedSymbol.name, 107455 /* Value */) === referencedSymbol) {
- if (referencedSymbol.valueDeclaration.kind === 138 /* Parameter */) {
+ if (referencedSymbol.valueDeclaration.kind === 139 /* Parameter */) {
if (referencedSymbol.valueDeclaration === node) {
error(n, ts.Diagnostics.Parameter_0_cannot_be_referenced_in_its_initializer, ts.declarationNameToString(node.name));
return;
@@ -25704,15 +25967,15 @@ var ts;
// Do not use hasDynamicName here, because that returns false for well known symbols.
// We want to perform checkComputedPropertyName for all computed properties, including
// well known symbols.
- if (node.name.kind === 136 /* ComputedPropertyName */) {
+ if (node.name.kind === 137 /* ComputedPropertyName */) {
checkComputedPropertyName(node.name);
if (node.initializer) {
checkExpressionCached(node.initializer);
}
}
- if (node.kind === 165 /* BindingElement */) {
+ if (node.kind === 166 /* BindingElement */) {
// check computed properties inside property names of binding elements
- if (node.propertyName && node.propertyName.kind === 136 /* ComputedPropertyName */) {
+ if (node.propertyName && node.propertyName.kind === 137 /* ComputedPropertyName */) {
checkComputedPropertyName(node.propertyName);
}
}
@@ -25721,13 +25984,14 @@ var ts;
ts.forEach(node.name.elements, checkSourceElement);
}
// For a parameter declaration with an initializer, error and exit if the containing function doesn't have a body
- if (node.initializer && ts.getRootDeclaration(node).kind === 138 /* Parameter */ && ts.nodeIsMissing(ts.getContainingFunction(node).body)) {
+ if (node.initializer && ts.getRootDeclaration(node).kind === 139 /* Parameter */ && ts.nodeIsMissing(ts.getContainingFunction(node).body)) {
error(node, ts.Diagnostics.A_parameter_initializer_is_only_allowed_in_a_function_or_constructor_implementation);
return;
}
// For a binding pattern, validate the initializer and exit
if (ts.isBindingPattern(node.name)) {
- if (node.initializer) {
+ // Don't validate for-in initializer as it is already an error
+ if (node.initializer && node.parent.parent.kind !== 203 /* ForInStatement */) {
checkTypeAssignableTo(checkExpressionCached(node.initializer), getWidenedTypeForVariableLikeDeclaration(node), node, /*headMessage*/ undefined);
checkParameterInitializer(node);
}
@@ -25737,7 +26001,8 @@ var ts;
var type = getTypeOfVariableOrParameterOrProperty(symbol);
if (node === symbol.valueDeclaration) {
// Node is the primary declaration of the symbol, just validate the initializer
- if (node.initializer) {
+ // Don't validate for-in initializer as it is already an error
+ if (node.initializer && node.parent.parent.kind !== 203 /* ForInStatement */) {
checkTypeAssignableTo(checkExpressionCached(node.initializer), type, node, /*headMessage*/ undefined);
checkParameterInitializer(node);
}
@@ -25753,10 +26018,10 @@ var ts;
checkTypeAssignableTo(checkExpressionCached(node.initializer), declarationType, node, /*headMessage*/ undefined);
}
}
- if (node.kind !== 141 /* PropertyDeclaration */ && node.kind !== 140 /* PropertySignature */) {
+ if (node.kind !== 142 /* PropertyDeclaration */ && node.kind !== 141 /* PropertySignature */) {
// We know we don't have a binding pattern or computed name here
checkExportsOnMergedDeclarations(node);
- if (node.kind === 213 /* VariableDeclaration */ || node.kind === 165 /* BindingElement */) {
+ if (node.kind === 214 /* VariableDeclaration */ || node.kind === 166 /* BindingElement */) {
checkVarDeclaredNamesNotShadowed(node);
}
checkCollisionWithCapturedSuperVariable(node, node.name);
@@ -25779,7 +26044,7 @@ var ts;
}
function checkGrammarDisallowedModifiersOnObjectLiteralExpressionMethod(node) {
// We only disallow modifier on a method declaration if it is a property of object-literal-expression
- if (node.modifiers && node.parent.kind === 167 /* ObjectLiteralExpression */) {
+ if (node.modifiers && node.parent.kind === 168 /* ObjectLiteralExpression */) {
if (ts.isAsyncFunctionLike(node)) {
if (node.modifiers.length > 1) {
return grammarErrorOnFirstToken(node, ts.Diagnostics.Modifiers_cannot_appear_here);
@@ -25800,7 +26065,7 @@ var ts;
checkGrammarStatementInAmbientContext(node);
checkExpression(node.expression);
checkSourceElement(node.thenStatement);
- if (node.thenStatement.kind === 196 /* EmptyStatement */) {
+ if (node.thenStatement.kind === 197 /* EmptyStatement */) {
error(node.thenStatement, ts.Diagnostics.The_body_of_an_if_statement_cannot_be_the_empty_statement);
}
checkSourceElement(node.elseStatement);
@@ -25820,12 +26085,12 @@ var ts;
function checkForStatement(node) {
// Grammar checking
if (!checkGrammarStatementInAmbientContext(node)) {
- if (node.initializer && node.initializer.kind === 214 /* VariableDeclarationList */) {
+ if (node.initializer && node.initializer.kind === 215 /* VariableDeclarationList */) {
checkGrammarVariableDeclarationList(node.initializer);
}
}
if (node.initializer) {
- if (node.initializer.kind === 214 /* VariableDeclarationList */) {
+ if (node.initializer.kind === 215 /* VariableDeclarationList */) {
ts.forEach(node.initializer.declarations, checkVariableDeclaration);
}
else {
@@ -25845,14 +26110,14 @@ var ts;
// via checkRightHandSideOfForOf.
// If the LHS is an expression, check the LHS, as a destructuring assignment or as a reference.
// Then check that the RHS is assignable to it.
- if (node.initializer.kind === 214 /* VariableDeclarationList */) {
+ if (node.initializer.kind === 215 /* VariableDeclarationList */) {
checkForInOrForOfVariableDeclaration(node);
}
else {
var varExpr = node.initializer;
var iteratedType = checkRightHandSideOfForOf(node.expression);
// There may be a destructuring assignment on the left side
- if (varExpr.kind === 166 /* ArrayLiteralExpression */ || varExpr.kind === 167 /* ObjectLiteralExpression */) {
+ if (varExpr.kind === 167 /* ArrayLiteralExpression */ || varExpr.kind === 168 /* ObjectLiteralExpression */) {
// iteratedType may be undefined. In this case, we still want to check the structure of
// varExpr, in particular making sure it's a valid LeftHandSideExpression. But we'd like
// to short circuit the type relation checking as much as possible, so we pass the unknownType.
@@ -25881,7 +26146,7 @@ var ts;
// for (let VarDecl in Expr) Statement
// VarDecl must be a variable declaration without a type annotation that declares a variable of type Any,
// and Expr must be an expression of type Any, an object type, or a type parameter type.
- if (node.initializer.kind === 214 /* VariableDeclarationList */) {
+ if (node.initializer.kind === 215 /* VariableDeclarationList */) {
var variable = node.initializer.declarations[0];
if (variable && ts.isBindingPattern(variable.name)) {
error(variable.name, ts.Diagnostics.The_left_hand_side_of_a_for_in_statement_cannot_be_a_destructuring_pattern);
@@ -25895,7 +26160,7 @@ var ts;
// and Expr must be an expression of type Any, an object type, or a type parameter type.
var varExpr = node.initializer;
var leftType = checkExpression(varExpr);
- if (varExpr.kind === 166 /* ArrayLiteralExpression */ || varExpr.kind === 167 /* ObjectLiteralExpression */) {
+ if (varExpr.kind === 167 /* ArrayLiteralExpression */ || varExpr.kind === 168 /* ObjectLiteralExpression */) {
error(varExpr, ts.Diagnostics.The_left_hand_side_of_a_for_in_statement_cannot_be_a_destructuring_pattern);
}
else if (!isTypeAnyOrAllConstituentTypesHaveKind(leftType, 258 /* StringLike */)) {
@@ -26140,7 +26405,7 @@ var ts;
// TODO: Check that target label is valid
}
function isGetAccessorWithAnnotatatedSetAccessor(node) {
- return !!(node.kind === 145 /* GetAccessor */ && ts.getSetAccessorTypeAnnotationNode(ts.getDeclarationOfKind(node.symbol, 146 /* SetAccessor */)));
+ return !!(node.kind === 146 /* GetAccessor */ && ts.getSetAccessorTypeAnnotationNode(ts.getDeclarationOfKind(node.symbol, 147 /* SetAccessor */)));
}
function checkReturnStatement(node) {
// Grammar checking
@@ -26163,10 +26428,10 @@ var ts;
// for generators.
return;
}
- if (func.kind === 146 /* SetAccessor */) {
+ if (func.kind === 147 /* SetAccessor */) {
error(node.expression, ts.Diagnostics.Setters_cannot_return_a_value);
}
- else if (func.kind === 144 /* Constructor */) {
+ else if (func.kind === 145 /* Constructor */) {
if (!checkTypeAssignableTo(exprType, returnType, node.expression)) {
error(node.expression, ts.Diagnostics.Return_type_of_constructor_signature_must_be_assignable_to_the_instance_type_of_the_class);
}
@@ -26208,7 +26473,7 @@ var ts;
var expressionTypeIsStringLike = someConstituentTypeHasKind(expressionType, 258 /* StringLike */);
ts.forEach(node.caseBlock.clauses, function (clause) {
// Grammar check for duplicate default clauses, skip if we already report duplicate default clause
- if (clause.kind === 244 /* DefaultClause */ && !hasDuplicateDefaultClause) {
+ if (clause.kind === 245 /* DefaultClause */ && !hasDuplicateDefaultClause) {
if (firstDefaultClause === undefined) {
firstDefaultClause = clause;
}
@@ -26220,7 +26485,7 @@ var ts;
hasDuplicateDefaultClause = true;
}
}
- if (produceDiagnostics && clause.kind === 243 /* CaseClause */) {
+ if (produceDiagnostics && clause.kind === 244 /* CaseClause */) {
var caseClause = clause;
// TypeScript 1.0 spec (April 2014):5.9
// In a 'switch' statement, each 'case' expression must be of a type that is assignable to or from the type of the 'switch' expression.
@@ -26245,7 +26510,7 @@ var ts;
if (ts.isFunctionLike(current)) {
break;
}
- if (current.kind === 209 /* LabeledStatement */ && current.label.text === node.label.text) {
+ if (current.kind === 210 /* LabeledStatement */ && current.label.text === node.label.text) {
var sourceFile = ts.getSourceFileOfNode(node);
grammarErrorOnNode(node.label, ts.Diagnostics.Duplicate_label_0, ts.getTextOfNodeFromSourceText(sourceFile.text, node.label));
break;
@@ -26350,7 +26615,7 @@ var ts;
// perform property check if property or indexer is declared in 'type'
// this allows to rule out cases when both property and indexer are inherited from the base class
var errorNode;
- if (prop.valueDeclaration.name.kind === 136 /* ComputedPropertyName */ || prop.parent === containingType.symbol) {
+ if (prop.valueDeclaration.name.kind === 137 /* ComputedPropertyName */ || prop.parent === containingType.symbol) {
errorNode = prop.valueDeclaration;
}
else if (indexDeclaration) {
@@ -26431,7 +26696,6 @@ var ts;
var staticType = getTypeOfSymbol(symbol);
var baseTypeNode = ts.getClassExtendsHeritageClauseElement(node);
if (baseTypeNode) {
- emitExtends = emitExtends || !ts.isInAmbientContext(node);
var baseTypes = getBaseTypes(type);
if (baseTypes.length && produceDiagnostics) {
var baseType = baseTypes[0];
@@ -26532,7 +26796,7 @@ var ts;
// If there is no declaration for the derived class (as in the case of class expressions),
// then the class cannot be declared abstract.
if (baseDeclarationFlags & 128 /* Abstract */ && (!derivedClassDecl || !(derivedClassDecl.flags & 128 /* Abstract */))) {
- if (derivedClassDecl.kind === 188 /* ClassExpression */) {
+ if (derivedClassDecl.kind === 189 /* ClassExpression */) {
error(derivedClassDecl, ts.Diagnostics.Non_abstract_class_expression_does_not_implement_inherited_abstract_member_0_from_class_1, symbolToString(baseProperty), typeToString(baseType));
}
else {
@@ -26580,7 +26844,7 @@ var ts;
}
}
function isAccessor(kind) {
- return kind === 145 /* GetAccessor */ || kind === 146 /* SetAccessor */;
+ return kind === 146 /* GetAccessor */ || kind === 147 /* SetAccessor */;
}
function areTypeParametersIdentical(list1, list2) {
if (!list1 && !list2) {
@@ -26650,7 +26914,7 @@ var ts;
checkTypeNameIsReserved(node.name, ts.Diagnostics.Interface_name_cannot_be_0);
checkExportsOnMergedDeclarations(node);
var symbol = getSymbolOfNode(node);
- var firstInterfaceDecl = ts.getDeclarationOfKind(symbol, 217 /* InterfaceDeclaration */);
+ var firstInterfaceDecl = ts.getDeclarationOfKind(symbol, 218 /* InterfaceDeclaration */);
if (symbol.declarations.length > 1) {
if (node !== firstInterfaceDecl && !areTypeParametersIdentical(firstInterfaceDecl.typeParameters, node.typeParameters)) {
error(node.name, ts.Diagnostics.All_declarations_of_an_interface_must_have_identical_type_parameters);
@@ -26760,7 +27024,7 @@ var ts;
return value;
function evalConstant(e) {
switch (e.kind) {
- case 181 /* PrefixUnaryExpression */:
+ case 182 /* PrefixUnaryExpression */:
var value_1 = evalConstant(e.operand);
if (value_1 === undefined) {
return undefined;
@@ -26771,7 +27035,7 @@ var ts;
case 50 /* TildeToken */: return ~value_1;
}
return undefined;
- case 183 /* BinaryExpression */:
+ case 184 /* BinaryExpression */:
var left = evalConstant(e.left);
if (left === undefined) {
return undefined;
@@ -26796,11 +27060,11 @@ var ts;
return undefined;
case 8 /* NumericLiteral */:
return +e.text;
- case 174 /* ParenthesizedExpression */:
+ case 175 /* ParenthesizedExpression */:
return evalConstant(e.expression);
case 69 /* Identifier */:
- case 169 /* ElementAccessExpression */:
- case 168 /* PropertyAccessExpression */:
+ case 170 /* ElementAccessExpression */:
+ case 169 /* PropertyAccessExpression */:
var member = initializer.parent;
var currentType = getTypeOfSymbol(getSymbolOfNode(member.parent));
var enumType_1;
@@ -26813,7 +27077,7 @@ var ts;
}
else {
var expression;
- if (e.kind === 169 /* ElementAccessExpression */) {
+ if (e.kind === 170 /* ElementAccessExpression */) {
if (e.argumentExpression === undefined ||
e.argumentExpression.kind !== 9 /* StringLiteral */) {
return undefined;
@@ -26831,7 +27095,7 @@ var ts;
if (current.kind === 69 /* Identifier */) {
break;
}
- else if (current.kind === 168 /* PropertyAccessExpression */) {
+ else if (current.kind === 169 /* PropertyAccessExpression */) {
current = current.expression;
}
else {
@@ -26902,7 +27166,7 @@ var ts;
var seenEnumMissingInitialInitializer = false;
ts.forEach(enumSymbol.declarations, function (declaration) {
// return true if we hit a violation of the rule, false otherwise
- if (declaration.kind !== 219 /* EnumDeclaration */) {
+ if (declaration.kind !== 220 /* EnumDeclaration */) {
return false;
}
var enumDeclaration = declaration;
@@ -26925,8 +27189,8 @@ var ts;
var declarations = symbol.declarations;
for (var _i = 0, declarations_5 = declarations; _i < declarations_5.length; _i++) {
var declaration = declarations_5[_i];
- if ((declaration.kind === 216 /* ClassDeclaration */ ||
- (declaration.kind === 215 /* FunctionDeclaration */ && ts.nodeIsPresent(declaration.body))) &&
+ if ((declaration.kind === 217 /* ClassDeclaration */ ||
+ (declaration.kind === 216 /* FunctionDeclaration */ && ts.nodeIsPresent(declaration.body))) &&
!ts.isInAmbientContext(declaration)) {
return declaration;
}
@@ -26949,7 +27213,12 @@ var ts;
function checkModuleDeclaration(node) {
if (produceDiagnostics) {
// Grammar checking
- var isAmbientExternalModule = node.name.kind === 9 /* StringLiteral */;
+ var isGlobalAugmentation = ts.isGlobalScopeAugmentation(node);
+ var inAmbientContext = ts.isInAmbientContext(node);
+ if (isGlobalAugmentation && !inAmbientContext) {
+ error(node.name, ts.Diagnostics.Augmentations_for_the_global_scope_should_have_declare_modifier_unless_they_appear_in_already_ambient_context);
+ }
+ var isAmbientExternalModule = ts.isAmbientModule(node);
var contextErrorMessage = isAmbientExternalModule
? ts.Diagnostics.An_ambient_module_declaration_is_only_allowed_at_the_top_level_in_a_file
: ts.Diagnostics.A_namespace_declaration_is_only_allowed_in_a_namespace_or_module;
@@ -26958,7 +27227,7 @@ var ts;
return;
}
if (!checkGrammarDecorators(node) && !checkGrammarModifiers(node)) {
- if (!ts.isInAmbientContext(node) && node.name.kind === 9 /* StringLiteral */) {
+ if (!inAmbientContext && node.name.kind === 9 /* StringLiteral */) {
grammarErrorOnNode(node.name, ts.Diagnostics.Only_ambient_modules_can_use_quoted_names);
}
}
@@ -26969,7 +27238,7 @@ var ts;
// The following checks only apply on a non-ambient instantiated module declaration.
if (symbol.flags & 512 /* ValueModule */
&& symbol.declarations.length > 1
- && !ts.isInAmbientContext(node)
+ && !inAmbientContext
&& ts.isInstantiatedModule(node, compilerOptions.preserveConstEnums || compilerOptions.isolatedModules)) {
var firstNonAmbientClassOrFunc = getFirstNonAmbientClassOrFunctionDeclaration(symbol);
if (firstNonAmbientClassOrFunc) {
@@ -26982,30 +27251,120 @@ var ts;
}
// if the module merges with a class declaration in the same lexical scope,
// we need to track this to ensure the correct emit.
- var mergedClass = ts.getDeclarationOfKind(symbol, 216 /* ClassDeclaration */);
+ var mergedClass = ts.getDeclarationOfKind(symbol, 217 /* ClassDeclaration */);
if (mergedClass &&
inSameLexicalScope(node, mergedClass)) {
getNodeLinks(node).flags |= 32768 /* LexicalModuleMergesWithClass */;
}
}
- // Checks for ambient external modules.
if (isAmbientExternalModule) {
- if (!isGlobalSourceFile(node.parent)) {
- error(node.name, ts.Diagnostics.Ambient_modules_cannot_be_nested_in_other_modules_or_namespaces);
+ if (ts.isExternalModuleAugmentation(node)) {
+ // body of the augmentation should be checked for consistency only if augmentation was applied to its target (either global scope or module)
+ // otherwise we'll be swamped in cascading errors.
+ // We can detect if augmentation was applied using following rules:
+ // - augmentation for a global scope is always applied
+ // - augmentation for some external module is applied if symbol for augmentation is merged (it was combined with target module).
+ var checkBody = isGlobalAugmentation || (getSymbolOfNode(node).flags & 33554432 /* Merged */);
+ if (checkBody) {
+ // body of ambient external module is always a module block
+ for (var _i = 0, _a = node.body.statements; _i < _a.length; _i++) {
+ var statement = _a[_i];
+ checkModuleAugmentationElement(statement, isGlobalAugmentation);
+ }
+ }
}
- if (ts.isExternalModuleNameRelative(node.name.text)) {
- error(node.name, ts.Diagnostics.Ambient_module_declaration_cannot_specify_relative_module_name);
+ else if (isGlobalSourceFile(node.parent)) {
+ if (isGlobalAugmentation) {
+ error(node.name, ts.Diagnostics.Augmentations_for_the_global_scope_can_only_be_directly_nested_in_external_modules_or_ambient_module_declarations);
+ }
+ else if (ts.isExternalModuleNameRelative(node.name.text)) {
+ error(node.name, ts.Diagnostics.Ambient_module_declaration_cannot_specify_relative_module_name);
+ }
+ }
+ else {
+ if (isGlobalAugmentation) {
+ error(node.name, ts.Diagnostics.Augmentations_for_the_global_scope_can_only_be_directly_nested_in_external_modules_or_ambient_module_declarations);
+ }
+ else {
+ // Node is not an augmentation and is not located on the script level.
+ // This means that this is declaration of ambient module that is located in other module or namespace which is prohibited.
+ error(node.name, ts.Diagnostics.Ambient_modules_cannot_be_nested_in_other_modules_or_namespaces);
+ }
}
}
}
checkSourceElement(node.body);
}
+ function checkModuleAugmentationElement(node, isGlobalAugmentation) {
+ switch (node.kind) {
+ case 196 /* VariableStatement */:
+ // error each individual name in variable statement instead of marking the entire variable statement
+ for (var _i = 0, _a = node.declarationList.declarations; _i < _a.length; _i++) {
+ var decl = _a[_i];
+ checkModuleAugmentationElement(decl, isGlobalAugmentation);
+ }
+ break;
+ case 230 /* ExportAssignment */:
+ case 231 /* ExportDeclaration */:
+ grammarErrorOnFirstToken(node, ts.Diagnostics.Exports_and_export_assignments_are_not_permitted_in_module_augmentations);
+ break;
+ case 224 /* ImportEqualsDeclaration */:
+ if (node.moduleReference.kind !== 9 /* StringLiteral */) {
+ error(node.name, ts.Diagnostics.Module_augmentation_cannot_introduce_new_names_in_the_top_level_scope);
+ break;
+ }
+ // fallthrough
+ case 225 /* ImportDeclaration */:
+ grammarErrorOnFirstToken(node, ts.Diagnostics.Imports_are_not_permitted_in_module_augmentations_Consider_moving_them_to_the_enclosing_external_module);
+ break;
+ case 166 /* BindingElement */:
+ case 214 /* VariableDeclaration */:
+ var name_17 = node.name;
+ if (ts.isBindingPattern(name_17)) {
+ for (var _b = 0, _c = name_17.elements; _b < _c.length; _b++) {
+ var el = _c[_b];
+ // mark individual names in binding pattern
+ checkModuleAugmentationElement(el, isGlobalAugmentation);
+ }
+ break;
+ }
+ // fallthrough
+ case 217 /* ClassDeclaration */:
+ case 220 /* EnumDeclaration */:
+ case 216 /* FunctionDeclaration */:
+ case 218 /* InterfaceDeclaration */:
+ case 221 /* ModuleDeclaration */:
+ case 219 /* TypeAliasDeclaration */:
+ var symbol = getSymbolOfNode(node);
+ if (symbol) {
+ // module augmentations cannot introduce new names on the top level scope of the module
+ // this is done it two steps
+ // 1. quick check - if symbol for node is not merged - this is local symbol to this augmentation - report error
+ // 2. main check - report error if value declaration of the parent symbol is module augmentation)
+ var reportError = !(symbol.flags & 33554432 /* Merged */);
+ if (!reportError) {
+ if (isGlobalAugmentation) {
+ // global symbol should not have parent since it is not explicitly exported
+ reportError = symbol.parent !== undefined;
+ }
+ else {
+ // symbol should not originate in augmentation
+ reportError = ts.isExternalModuleAugmentation(symbol.parent.valueDeclaration);
+ }
+ }
+ if (reportError) {
+ error(node, ts.Diagnostics.Module_augmentation_cannot_introduce_new_names_in_the_top_level_scope);
+ }
+ }
+ break;
+ }
+ }
function getFirstIdentifier(node) {
while (true) {
- if (node.kind === 135 /* QualifiedName */) {
+ if (node.kind === 136 /* QualifiedName */) {
node = node.left;
}
- else if (node.kind === 168 /* PropertyAccessExpression */) {
+ else if (node.kind === 169 /* PropertyAccessExpression */) {
node = node.expression;
}
else {
@@ -27021,20 +27380,24 @@ var ts;
error(moduleName, ts.Diagnostics.String_literal_expected);
return false;
}
- var inAmbientExternalModule = node.parent.kind === 221 /* ModuleBlock */ && node.parent.parent.name.kind === 9 /* StringLiteral */;
- if (node.parent.kind !== 250 /* SourceFile */ && !inAmbientExternalModule) {
- error(moduleName, node.kind === 230 /* ExportDeclaration */ ?
+ var inAmbientExternalModule = node.parent.kind === 222 /* ModuleBlock */ && ts.isAmbientModule(node.parent.parent);
+ if (node.parent.kind !== 251 /* SourceFile */ && !inAmbientExternalModule) {
+ error(moduleName, node.kind === 231 /* ExportDeclaration */ ?
ts.Diagnostics.Export_declarations_are_not_permitted_in_a_namespace :
ts.Diagnostics.Import_declarations_in_a_namespace_cannot_reference_a_module);
return false;
}
if (inAmbientExternalModule && ts.isExternalModuleNameRelative(moduleName.text)) {
- // TypeScript 1.0 spec (April 2013): 12.1.6
- // An ExternalImportDeclaration in an AmbientExternalModuleDeclaration may reference
- // other external modules only through top - level external module names.
- // Relative external module names are not permitted.
- error(node, ts.Diagnostics.Import_or_export_declaration_in_an_ambient_module_declaration_cannot_reference_module_through_relative_module_name);
- return false;
+ // we have already reported errors on top level imports\exports in external module augmentations in checkModuleDeclaration
+ // no need to do this again.
+ if (!isTopLevelInExternalModuleAugmentation(node)) {
+ // TypeScript 1.0 spec (April 2013): 12.1.6
+ // An ExternalImportDeclaration in an AmbientExternalModuleDeclaration may reference
+ // other external modules only through top - level external module names.
+ // Relative external module names are not permitted.
+ error(node, ts.Diagnostics.Import_or_export_declaration_in_an_ambient_module_declaration_cannot_reference_module_through_relative_module_name);
+ return false;
+ }
}
return true;
}
@@ -27046,7 +27409,7 @@ var ts;
(symbol.flags & 793056 /* Type */ ? 793056 /* Type */ : 0) |
(symbol.flags & 1536 /* Namespace */ ? 1536 /* Namespace */ : 0);
if (target.flags & excludedMeanings) {
- var message = node.kind === 232 /* ExportSpecifier */ ?
+ var message = node.kind === 233 /* ExportSpecifier */ ?
ts.Diagnostics.Export_declaration_conflicts_with_exported_declaration_of_0 :
ts.Diagnostics.Import_declaration_conflicts_with_local_declaration_of_0;
error(node, message, symbolToString(symbol));
@@ -27073,7 +27436,7 @@ var ts;
checkImportBinding(importClause);
}
if (importClause.namedBindings) {
- if (importClause.namedBindings.kind === 226 /* NamespaceImport */) {
+ if (importClause.namedBindings.kind === 227 /* NamespaceImport */) {
checkImportBinding(importClause.namedBindings);
}
else {
@@ -27130,8 +27493,8 @@ var ts;
// export { x, y }
// export { x, y } from "foo"
ts.forEach(node.exportClause.elements, checkExportSpecifier);
- var inAmbientExternalModule = node.parent.kind === 221 /* ModuleBlock */ && node.parent.parent.name.kind === 9 /* StringLiteral */;
- if (node.parent.kind !== 250 /* SourceFile */ && !inAmbientExternalModule) {
+ var inAmbientExternalModule = node.parent.kind === 222 /* ModuleBlock */ && ts.isAmbientModule(node.parent.parent);
+ if (node.parent.kind !== 251 /* SourceFile */ && !inAmbientExternalModule) {
error(node, ts.Diagnostics.Export_declarations_are_not_permitted_in_a_namespace);
}
}
@@ -27145,14 +27508,23 @@ var ts;
}
}
function checkGrammarModuleElementContext(node, errorMessage) {
- if (node.parent.kind !== 250 /* SourceFile */ && node.parent.kind !== 221 /* ModuleBlock */ && node.parent.kind !== 220 /* ModuleDeclaration */) {
+ if (node.parent.kind !== 251 /* SourceFile */ && node.parent.kind !== 222 /* ModuleBlock */ && node.parent.kind !== 221 /* ModuleDeclaration */) {
return grammarErrorOnFirstToken(node, errorMessage);
}
}
function checkExportSpecifier(node) {
checkAliasSymbol(node);
if (!node.parent.parent.moduleSpecifier) {
- markExportAsReferenced(node);
+ var exportedName = node.propertyName || node.name;
+ // find immediate value referenced by exported name (SymbolFlags.Alias is set so we don't chase down aliases)
+ var symbol = resolveName(exportedName, exportedName.text, 107455 /* Value */ | 793056 /* Type */ | 1536 /* Namespace */ | 8388608 /* Alias */,
+ /*nameNotFoundMessage*/ undefined, /*nameArg*/ undefined);
+ if (symbol && isGlobalSourceFile(getDeclarationContainer(symbol.declarations[0]))) {
+ error(exportedName, ts.Diagnostics.Cannot_re_export_name_that_is_not_defined_in_the_module);
+ }
+ else {
+ markExportAsReferenced(node);
+ }
}
}
function checkExportAssignment(node) {
@@ -27160,8 +27532,8 @@ var ts;
// If we hit an export assignment in an illegal context, just bail out to avoid cascading errors.
return;
}
- var container = node.parent.kind === 250 /* SourceFile */ ? node.parent : node.parent.parent;
- if (container.kind === 220 /* ModuleDeclaration */ && container.name.kind === 69 /* Identifier */) {
+ var container = node.parent.kind === 251 /* SourceFile */ ? node.parent : node.parent.parent;
+ if (container.kind === 221 /* ModuleDeclaration */ && !ts.isAmbientModule(container)) {
error(node, ts.Diagnostics.An_export_assignment_cannot_be_used_in_a_namespace);
return;
}
@@ -27202,7 +27574,9 @@ var ts;
var exportEqualsSymbol = moduleSymbol.exports["export="];
if (exportEqualsSymbol && hasExportedMembers(moduleSymbol)) {
var declaration = getDeclarationOfAliasSymbol(exportEqualsSymbol) || exportEqualsSymbol.valueDeclaration;
- error(declaration, ts.Diagnostics.An_export_assignment_cannot_be_used_in_a_module_with_other_exported_elements);
+ if (!isTopLevelInExternalModuleAugmentation(declaration)) {
+ error(declaration, ts.Diagnostics.An_export_assignment_cannot_be_used_in_a_module_with_other_exported_elements);
+ }
}
// Checks for export * conflicts
var exports = getExportsOfModule(moduleSymbol);
@@ -27225,21 +27599,7 @@ var ts;
links.exportsChecked = true;
}
function isNotOverload(declaration) {
- return declaration.kind !== 215 /* FunctionDeclaration */ || !!declaration.body;
- }
- }
- function checkTypePredicate(node) {
- var parameterName = node.parameterName;
- if (parameterName.kind === 69 /* Identifier */ && !isInLegalParameterTypePredicatePosition(node)) {
- error(node, ts.Diagnostics.A_type_predicate_is_only_allowed_in_return_type_position_for_functions_and_methods);
- }
- else if (parameterName.kind === 161 /* ThisType */) {
- if (!isInLegalThisTypePredicatePosition(node)) {
- error(node, ts.Diagnostics.A_this_based_type_predicate_is_only_allowed_within_a_class_or_interface_s_members_get_accessors_or_return_type_positions_for_functions_and_methods);
- }
- else {
- getTypeFromThisTypeNode(parameterName);
- }
+ return declaration.kind !== 216 /* FunctionDeclaration */ || !!declaration.body;
}
}
function checkSourceElement(node) {
@@ -27251,118 +27611,118 @@ var ts;
// Only bother checking on a few construct kinds. We don't want to be excessivly
// hitting the cancellation token on every node we check.
switch (kind) {
- case 220 /* ModuleDeclaration */:
- case 216 /* ClassDeclaration */:
- case 217 /* InterfaceDeclaration */:
- case 215 /* FunctionDeclaration */:
+ case 221 /* ModuleDeclaration */:
+ case 217 /* ClassDeclaration */:
+ case 218 /* InterfaceDeclaration */:
+ case 216 /* FunctionDeclaration */:
cancellationToken.throwIfCancellationRequested();
}
}
switch (kind) {
- case 137 /* TypeParameter */:
+ case 138 /* TypeParameter */:
return checkTypeParameter(node);
- case 138 /* Parameter */:
+ case 139 /* Parameter */:
return checkParameter(node);
- case 141 /* PropertyDeclaration */:
- case 140 /* PropertySignature */:
+ case 142 /* PropertyDeclaration */:
+ case 141 /* PropertySignature */:
return checkPropertyDeclaration(node);
- case 152 /* FunctionType */:
- case 153 /* ConstructorType */:
- case 147 /* CallSignature */:
- case 148 /* ConstructSignature */:
+ case 153 /* FunctionType */:
+ case 154 /* ConstructorType */:
+ case 148 /* CallSignature */:
+ case 149 /* ConstructSignature */:
return checkSignatureDeclaration(node);
- case 149 /* IndexSignature */:
+ case 150 /* IndexSignature */:
return checkSignatureDeclaration(node);
- case 143 /* MethodDeclaration */:
- case 142 /* MethodSignature */:
+ case 144 /* MethodDeclaration */:
+ case 143 /* MethodSignature */:
return checkMethodDeclaration(node);
- case 144 /* Constructor */:
+ case 145 /* Constructor */:
return checkConstructorDeclaration(node);
- case 145 /* GetAccessor */:
- case 146 /* SetAccessor */:
+ case 146 /* GetAccessor */:
+ case 147 /* SetAccessor */:
return checkAccessorDeclaration(node);
- case 151 /* TypeReference */:
+ case 152 /* TypeReference */:
return checkTypeReferenceNode(node);
- case 150 /* TypePredicate */:
+ case 151 /* TypePredicate */:
return checkTypePredicate(node);
- case 154 /* TypeQuery */:
+ case 155 /* TypeQuery */:
return checkTypeQuery(node);
- case 155 /* TypeLiteral */:
+ case 156 /* TypeLiteral */:
return checkTypeLiteral(node);
- case 156 /* ArrayType */:
+ case 157 /* ArrayType */:
return checkArrayType(node);
- case 157 /* TupleType */:
+ case 158 /* TupleType */:
return checkTupleType(node);
- case 158 /* UnionType */:
- case 159 /* IntersectionType */:
+ case 159 /* UnionType */:
+ case 160 /* IntersectionType */:
return checkUnionOrIntersectionType(node);
- case 160 /* ParenthesizedType */:
+ case 161 /* ParenthesizedType */:
return checkSourceElement(node.type);
- case 215 /* FunctionDeclaration */:
+ case 216 /* FunctionDeclaration */:
return checkFunctionDeclaration(node);
- case 194 /* Block */:
- case 221 /* ModuleBlock */:
+ case 195 /* Block */:
+ case 222 /* ModuleBlock */:
return checkBlock(node);
- case 195 /* VariableStatement */:
+ case 196 /* VariableStatement */:
return checkVariableStatement(node);
- case 197 /* ExpressionStatement */:
+ case 198 /* ExpressionStatement */:
return checkExpressionStatement(node);
- case 198 /* IfStatement */:
+ case 199 /* IfStatement */:
return checkIfStatement(node);
- case 199 /* DoStatement */:
+ case 200 /* DoStatement */:
return checkDoStatement(node);
- case 200 /* WhileStatement */:
+ case 201 /* WhileStatement */:
return checkWhileStatement(node);
- case 201 /* ForStatement */:
+ case 202 /* ForStatement */:
return checkForStatement(node);
- case 202 /* ForInStatement */:
+ case 203 /* ForInStatement */:
return checkForInStatement(node);
- case 203 /* ForOfStatement */:
+ case 204 /* ForOfStatement */:
return checkForOfStatement(node);
- case 204 /* ContinueStatement */:
- case 205 /* BreakStatement */:
+ case 205 /* ContinueStatement */:
+ case 206 /* BreakStatement */:
return checkBreakOrContinueStatement(node);
- case 206 /* ReturnStatement */:
+ case 207 /* ReturnStatement */:
return checkReturnStatement(node);
- case 207 /* WithStatement */:
+ case 208 /* WithStatement */:
return checkWithStatement(node);
- case 208 /* SwitchStatement */:
+ case 209 /* SwitchStatement */:
return checkSwitchStatement(node);
- case 209 /* LabeledStatement */:
+ case 210 /* LabeledStatement */:
return checkLabeledStatement(node);
- case 210 /* ThrowStatement */:
+ case 211 /* ThrowStatement */:
return checkThrowStatement(node);
- case 211 /* TryStatement */:
+ case 212 /* TryStatement */:
return checkTryStatement(node);
- case 213 /* VariableDeclaration */:
+ case 214 /* VariableDeclaration */:
return checkVariableDeclaration(node);
- case 165 /* BindingElement */:
+ case 166 /* BindingElement */:
return checkBindingElement(node);
- case 216 /* ClassDeclaration */:
+ case 217 /* ClassDeclaration */:
return checkClassDeclaration(node);
- case 217 /* InterfaceDeclaration */:
+ case 218 /* InterfaceDeclaration */:
return checkInterfaceDeclaration(node);
- case 218 /* TypeAliasDeclaration */:
+ case 219 /* TypeAliasDeclaration */:
return checkTypeAliasDeclaration(node);
- case 219 /* EnumDeclaration */:
+ case 220 /* EnumDeclaration */:
return checkEnumDeclaration(node);
- case 220 /* ModuleDeclaration */:
+ case 221 /* ModuleDeclaration */:
return checkModuleDeclaration(node);
- case 224 /* ImportDeclaration */:
+ case 225 /* ImportDeclaration */:
return checkImportDeclaration(node);
- case 223 /* ImportEqualsDeclaration */:
+ case 224 /* ImportEqualsDeclaration */:
return checkImportEqualsDeclaration(node);
- case 230 /* ExportDeclaration */:
+ case 231 /* ExportDeclaration */:
return checkExportDeclaration(node);
- case 229 /* ExportAssignment */:
+ case 230 /* ExportAssignment */:
return checkExportAssignment(node);
- case 196 /* EmptyStatement */:
+ case 197 /* EmptyStatement */:
checkGrammarStatementInAmbientContext(node);
return;
- case 212 /* DebuggerStatement */:
+ case 213 /* DebuggerStatement */:
checkGrammarStatementInAmbientContext(node);
return;
- case 233 /* MissingDeclaration */:
+ case 234 /* MissingDeclaration */:
return checkMissingDeclaration(node);
}
}
@@ -27384,17 +27744,17 @@ var ts;
for (var _i = 0, deferredNodes_1 = deferredNodes; _i < deferredNodes_1.length; _i++) {
var node = deferredNodes_1[_i];
switch (node.kind) {
- case 175 /* FunctionExpression */:
- case 176 /* ArrowFunction */:
- case 143 /* MethodDeclaration */:
- case 142 /* MethodSignature */:
+ case 176 /* FunctionExpression */:
+ case 177 /* ArrowFunction */:
+ case 144 /* MethodDeclaration */:
+ case 143 /* MethodSignature */:
checkFunctionExpressionOrObjectLiteralMethodDeferred(node);
break;
- case 145 /* GetAccessor */:
- case 146 /* SetAccessor */:
+ case 146 /* GetAccessor */:
+ case 147 /* SetAccessor */:
checkAccessorDeferred(node);
break;
- case 188 /* ClassExpression */:
+ case 189 /* ClassExpression */:
checkClassExpressionDeferred(node);
break;
}
@@ -27420,10 +27780,6 @@ var ts;
}
// Grammar checking
checkGrammarSourceFile(node);
- emitExtends = false;
- emitDecorate = false;
- emitParam = false;
- emitAwaiter = false;
potentialThisCollisions.length = 0;
deferredNodes = [];
ts.forEach(node.statements, checkSourceElement);
@@ -27436,21 +27792,6 @@ var ts;
ts.forEach(potentialThisCollisions, checkIfThisIsCapturedInEnclosingScope);
potentialThisCollisions.length = 0;
}
- if (emitExtends) {
- links.flags |= 8 /* EmitExtends */;
- }
- if (emitDecorate) {
- links.flags |= 16 /* EmitDecorate */;
- }
- if (emitParam) {
- links.flags |= 32 /* EmitParam */;
- }
- if (emitAwaiter) {
- links.flags |= 64 /* EmitAwaiter */;
- }
- if (emitGenerator || (emitAwaiter && languageVersion < 2 /* ES6 */)) {
- links.flags |= 128 /* EmitGenerator */;
- }
links.flags |= 1 /* TypeChecked */;
}
}
@@ -27488,7 +27829,7 @@ var ts;
function isInsideWithStatementBody(node) {
if (node) {
while (node.parent) {
- if (node.parent.kind === 207 /* WithStatement */ && node.parent.statement === node) {
+ if (node.parent.kind === 208 /* WithStatement */ && node.parent.statement === node) {
return true;
}
node = node.parent;
@@ -27511,25 +27852,25 @@ var ts;
copySymbols(location.locals, meaning);
}
switch (location.kind) {
- case 250 /* SourceFile */:
+ case 251 /* SourceFile */:
if (!ts.isExternalOrCommonJsModule(location)) {
break;
}
- case 220 /* ModuleDeclaration */:
+ case 221 /* ModuleDeclaration */:
copySymbols(getSymbolOfNode(location).exports, meaning & 8914931 /* ModuleMember */);
break;
- case 219 /* EnumDeclaration */:
+ case 220 /* EnumDeclaration */:
copySymbols(getSymbolOfNode(location).exports, meaning & 8 /* EnumMember */);
break;
- case 188 /* ClassExpression */:
+ case 189 /* ClassExpression */:
var className = location.name;
if (className) {
copySymbol(location.symbol, meaning);
}
// fall through; this fall-through is necessary because we would like to handle
// type parameter inside class expression similar to how we handle it in classDeclaration and interface Declaration
- case 216 /* ClassDeclaration */:
- case 217 /* InterfaceDeclaration */:
+ case 217 /* ClassDeclaration */:
+ case 218 /* InterfaceDeclaration */:
// If we didn't come from static member of class or interface,
// add the type parameters into the symbol table
// (type parameters of classDeclaration/classExpression and interface are in member property of the symbol.
@@ -27538,7 +27879,7 @@ var ts;
copySymbols(getSymbolOfNode(location).members, meaning & 793056 /* Type */);
}
break;
- case 175 /* FunctionExpression */:
+ case 176 /* FunctionExpression */:
var funcName = location.name;
if (funcName) {
copySymbol(location.symbol, meaning);
@@ -27587,37 +27928,37 @@ var ts;
}
function isTypeDeclaration(node) {
switch (node.kind) {
- case 137 /* TypeParameter */:
- case 216 /* ClassDeclaration */:
- case 217 /* InterfaceDeclaration */:
- case 218 /* TypeAliasDeclaration */:
- case 219 /* EnumDeclaration */:
+ case 138 /* TypeParameter */:
+ case 217 /* ClassDeclaration */:
+ case 218 /* InterfaceDeclaration */:
+ case 219 /* TypeAliasDeclaration */:
+ case 220 /* EnumDeclaration */:
return true;
}
}
// True if the given identifier is part of a type reference
function isTypeReferenceIdentifier(entityName) {
var node = entityName;
- while (node.parent && node.parent.kind === 135 /* QualifiedName */) {
+ while (node.parent && node.parent.kind === 136 /* QualifiedName */) {
node = node.parent;
}
- return node.parent && node.parent.kind === 151 /* TypeReference */;
+ return node.parent && node.parent.kind === 152 /* TypeReference */;
}
function isHeritageClauseElementIdentifier(entityName) {
var node = entityName;
- while (node.parent && node.parent.kind === 168 /* PropertyAccessExpression */) {
+ while (node.parent && node.parent.kind === 169 /* PropertyAccessExpression */) {
node = node.parent;
}
- return node.parent && node.parent.kind === 190 /* ExpressionWithTypeArguments */;
+ return node.parent && node.parent.kind === 191 /* ExpressionWithTypeArguments */;
}
function getLeftSideOfImportEqualsOrExportAssignment(nodeOnRightSide) {
- while (nodeOnRightSide.parent.kind === 135 /* QualifiedName */) {
+ while (nodeOnRightSide.parent.kind === 136 /* QualifiedName */) {
nodeOnRightSide = nodeOnRightSide.parent;
}
- if (nodeOnRightSide.parent.kind === 223 /* ImportEqualsDeclaration */) {
+ if (nodeOnRightSide.parent.kind === 224 /* ImportEqualsDeclaration */) {
return nodeOnRightSide.parent.moduleReference === nodeOnRightSide && nodeOnRightSide.parent;
}
- if (nodeOnRightSide.parent.kind === 229 /* ExportAssignment */) {
+ if (nodeOnRightSide.parent.kind === 230 /* ExportAssignment */) {
return nodeOnRightSide.parent.expression === nodeOnRightSide && nodeOnRightSide.parent;
}
return undefined;
@@ -27629,11 +27970,11 @@ var ts;
if (ts.isDeclarationName(entityName)) {
return getSymbolOfNode(entityName.parent);
}
- if (entityName.parent.kind === 229 /* ExportAssignment */) {
+ if (entityName.parent.kind === 230 /* ExportAssignment */) {
return resolveEntityName(entityName,
/*all meanings*/ 107455 /* Value */ | 793056 /* Type */ | 1536 /* Namespace */ | 8388608 /* Alias */);
}
- if (entityName.kind !== 168 /* PropertyAccessExpression */) {
+ if (entityName.kind !== 169 /* PropertyAccessExpression */) {
if (isInRightSideOfImportOrExportAssignment(entityName)) {
// Since we already checked for ExportAssignment, this really could only be an Import
return getSymbolOfPartOfRightHandSideOfImportEquals(entityName);
@@ -27645,7 +27986,7 @@ var ts;
if (isHeritageClauseElementIdentifier(entityName)) {
var meaning = 0 /* None */;
// In an interface or class, we're definitely interested in a type.
- if (entityName.parent.kind === 190 /* ExpressionWithTypeArguments */) {
+ if (entityName.parent.kind === 191 /* ExpressionWithTypeArguments */) {
meaning = 793056 /* Type */;
// In a class 'extends' clause we are also looking for a value.
if (ts.isExpressionWithTypeArgumentsInClassExtendsClause(entityName.parent)) {
@@ -27658,9 +27999,9 @@ var ts;
meaning |= 8388608 /* Alias */;
return resolveEntityName(entityName, meaning);
}
- else if ((entityName.parent.kind === 237 /* JsxOpeningElement */) ||
- (entityName.parent.kind === 236 /* JsxSelfClosingElement */) ||
- (entityName.parent.kind === 239 /* JsxClosingElement */)) {
+ else if ((entityName.parent.kind === 238 /* JsxOpeningElement */) ||
+ (entityName.parent.kind === 237 /* JsxSelfClosingElement */) ||
+ (entityName.parent.kind === 240 /* JsxClosingElement */)) {
return getJsxElementTagSymbol(entityName.parent);
}
else if (ts.isExpression(entityName)) {
@@ -27674,14 +28015,14 @@ var ts;
var meaning = 107455 /* Value */ | 8388608 /* Alias */;
return resolveEntityName(entityName, meaning);
}
- else if (entityName.kind === 168 /* PropertyAccessExpression */) {
+ else if (entityName.kind === 169 /* PropertyAccessExpression */) {
var symbol = getNodeLinks(entityName).resolvedSymbol;
if (!symbol) {
checkPropertyAccessExpression(entityName);
}
return getNodeLinks(entityName).resolvedSymbol;
}
- else if (entityName.kind === 135 /* QualifiedName */) {
+ else if (entityName.kind === 136 /* QualifiedName */) {
var symbol = getNodeLinks(entityName).resolvedSymbol;
if (!symbol) {
checkQualifiedName(entityName);
@@ -27690,16 +28031,16 @@ var ts;
}
}
else if (isTypeReferenceIdentifier(entityName)) {
- var meaning = entityName.parent.kind === 151 /* TypeReference */ ? 793056 /* Type */ : 1536 /* Namespace */;
+ var meaning = entityName.parent.kind === 152 /* TypeReference */ ? 793056 /* Type */ : 1536 /* Namespace */;
// Include aliases in the meaning, this ensures that we do not follow aliases to where they point and instead
// return the alias symbol.
meaning |= 8388608 /* Alias */;
return resolveEntityName(entityName, meaning);
}
- else if (entityName.parent.kind === 240 /* JsxAttribute */) {
+ else if (entityName.parent.kind === 241 /* JsxAttribute */) {
return getJsxAttributePropertySymbol(entityName.parent);
}
- if (entityName.parent.kind === 150 /* TypePredicate */) {
+ if (entityName.parent.kind === 151 /* TypePredicate */) {
return resolveEntityName(entityName, /*meaning*/ 1 /* FunctionScopedVariable */);
}
// Do we want to return undefined here?
@@ -27716,12 +28057,12 @@ var ts;
}
if (node.kind === 69 /* Identifier */) {
if (isInRightSideOfImportOrExportAssignment(node)) {
- return node.parent.kind === 229 /* ExportAssignment */
+ return node.parent.kind === 230 /* ExportAssignment */
? getSymbolOfEntityNameOrPropertyAccessExpression(node)
: getSymbolOfPartOfRightHandSideOfImportEquals(node);
}
- else if (node.parent.kind === 165 /* BindingElement */ &&
- node.parent.parent.kind === 163 /* ObjectBindingPattern */ &&
+ else if (node.parent.kind === 166 /* BindingElement */ &&
+ node.parent.parent.kind === 164 /* ObjectBindingPattern */ &&
node === node.parent.propertyName) {
var typeOfPattern = getTypeOfNode(node.parent.parent);
var propertyDeclaration = typeOfPattern && getPropertyOfType(typeOfPattern, node.text);
@@ -27732,19 +28073,19 @@ var ts;
}
switch (node.kind) {
case 69 /* Identifier */:
- case 168 /* PropertyAccessExpression */:
- case 135 /* QualifiedName */:
+ case 169 /* PropertyAccessExpression */:
+ case 136 /* QualifiedName */:
return getSymbolOfEntityNameOrPropertyAccessExpression(node);
case 97 /* ThisKeyword */:
case 95 /* SuperKeyword */:
var type = ts.isExpression(node) ? checkExpression(node) : getTypeFromTypeNode(node);
return type.symbol;
- case 161 /* ThisType */:
+ case 162 /* ThisType */:
return getTypeFromTypeNode(node).symbol;
case 121 /* ConstructorKeyword */:
// constructor keyword for an overload, should take us to the definition if it exist
var constructorDeclaration = node.parent;
- if (constructorDeclaration && constructorDeclaration.kind === 144 /* Constructor */) {
+ if (constructorDeclaration && constructorDeclaration.kind === 145 /* Constructor */) {
return constructorDeclaration.parent.symbol;
}
return undefined;
@@ -27752,14 +28093,14 @@ var ts;
// External module name in an import declaration
if ((ts.isExternalModuleImportEqualsDeclaration(node.parent.parent) &&
ts.getExternalModuleImportEqualsDeclarationExpression(node.parent.parent) === node) ||
- ((node.parent.kind === 224 /* ImportDeclaration */ || node.parent.kind === 230 /* ExportDeclaration */) &&
+ ((node.parent.kind === 225 /* ImportDeclaration */ || node.parent.kind === 231 /* ExportDeclaration */) &&
node.parent.moduleSpecifier === node)) {
return resolveExternalModuleName(node, node);
}
// Fall through
case 8 /* NumericLiteral */:
// index access
- if (node.parent.kind === 169 /* ElementAccessExpression */ && node.parent.argumentExpression === node) {
+ if (node.parent.kind === 170 /* ElementAccessExpression */ && node.parent.argumentExpression === node) {
var objectType = checkExpression(node.parent.expression);
if (objectType === unknownType)
return undefined;
@@ -27776,11 +28117,17 @@ var ts;
// The function returns a value symbol of an identifier in the short-hand property assignment.
// This is necessary as an identifier in short-hand property assignment can contains two meaning:
// property name and property value.
- if (location && location.kind === 248 /* ShorthandPropertyAssignment */) {
- return resolveEntityName(location.name, 107455 /* Value */);
+ if (location && location.kind === 249 /* ShorthandPropertyAssignment */) {
+ return resolveEntityName(location.name, 107455 /* Value */ | 8388608 /* Alias */);
}
return undefined;
}
+ /** Returns the target of an export specifier without following aliases */
+ function getExportSpecifierLocalTargetSymbol(node) {
+ return node.parent.parent.moduleSpecifier ?
+ getExternalModuleMember(node.parent.parent, node) :
+ resolveEntityName(node.propertyName || node.name, 107455 /* Value */ | 793056 /* Type */ | 1536 /* Namespace */ | 8388608 /* Alias */);
+ }
function getTypeOfNode(node) {
if (isInsideWithStatementBody(node)) {
// We cannot answer semantic questions within a with block, do not proceed any further
@@ -27858,9 +28205,9 @@ var ts;
function getRootSymbols(symbol) {
if (symbol.flags & 268435456 /* SyntheticProperty */) {
var symbols = [];
- var name_15 = symbol.name;
+ var name_18 = symbol.name;
ts.forEach(getSymbolLinks(symbol).containingType.types, function (t) {
- var symbol = getPropertyOfType(t, name_15);
+ var symbol = getPropertyOfType(t, name_18);
if (symbol) {
symbols.push(symbol);
}
@@ -27920,11 +28267,11 @@ var ts;
}
var parentSymbol = getParentOfSymbol(symbol);
if (parentSymbol) {
- if (parentSymbol.flags & 512 /* ValueModule */ && parentSymbol.valueDeclaration.kind === 250 /* SourceFile */) {
+ if (parentSymbol.flags & 512 /* ValueModule */ && parentSymbol.valueDeclaration.kind === 251 /* SourceFile */) {
return parentSymbol.valueDeclaration;
}
for (var n = node.parent; n; n = n.parent) {
- if ((n.kind === 220 /* ModuleDeclaration */ || n.kind === 219 /* EnumDeclaration */) && getSymbolOfNode(n) === parentSymbol) {
+ if ((n.kind === 221 /* ModuleDeclaration */ || n.kind === 220 /* EnumDeclaration */) && getSymbolOfNode(n) === parentSymbol) {
return n;
}
}
@@ -27939,11 +28286,11 @@ var ts;
}
function isStatementWithLocals(node) {
switch (node.kind) {
- case 194 /* Block */:
- case 222 /* CaseBlock */:
- case 201 /* ForStatement */:
- case 202 /* ForInStatement */:
- case 203 /* ForOfStatement */:
+ case 195 /* Block */:
+ case 223 /* CaseBlock */:
+ case 202 /* ForStatement */:
+ case 203 /* ForInStatement */:
+ case 204 /* ForOfStatement */:
return true;
}
return false;
@@ -27973,22 +28320,22 @@ var ts;
}
function isValueAliasDeclaration(node) {
switch (node.kind) {
- case 223 /* ImportEqualsDeclaration */:
- case 225 /* ImportClause */:
- case 226 /* NamespaceImport */:
- case 228 /* ImportSpecifier */:
- case 232 /* ExportSpecifier */:
+ case 224 /* ImportEqualsDeclaration */:
+ case 226 /* ImportClause */:
+ case 227 /* NamespaceImport */:
+ case 229 /* ImportSpecifier */:
+ case 233 /* ExportSpecifier */:
return isAliasResolvedToValue(getSymbolOfNode(node));
- case 230 /* ExportDeclaration */:
+ case 231 /* ExportDeclaration */:
var exportClause = node.exportClause;
return exportClause && ts.forEach(exportClause.elements, isValueAliasDeclaration);
- case 229 /* ExportAssignment */:
+ case 230 /* ExportAssignment */:
return node.expression && node.expression.kind === 69 /* Identifier */ ? isAliasResolvedToValue(getSymbolOfNode(node)) : true;
}
return false;
}
function isTopLevelValueImportEqualsWithEntityName(node) {
- if (node.parent.kind !== 250 /* SourceFile */ || !ts.isInternalModuleImportEqualsDeclaration(node)) {
+ if (node.parent.kind !== 251 /* SourceFile */ || !ts.isInternalModuleImportEqualsDeclaration(node)) {
// parent is not source file or it is not reference to internal module
return false;
}
@@ -28050,7 +28397,7 @@ var ts;
return getNodeLinks(node).enumMemberValue;
}
function getConstantValue(node) {
- if (node.kind === 249 /* EnumMember */) {
+ if (node.kind === 250 /* EnumMember */) {
return getEnumMemberValue(node);
}
var symbol = getNodeLinks(node).resolvedSymbol;
@@ -28172,23 +28519,38 @@ var ts;
}
function getExternalModuleFileFromDeclaration(declaration) {
var specifier = ts.getExternalModuleName(declaration);
- var moduleSymbol = getSymbolAtLocation(specifier);
+ var moduleSymbol = resolveExternalModuleNameWorker(specifier, specifier, /*moduleNotFoundError*/ undefined);
if (!moduleSymbol) {
return undefined;
}
- return ts.getDeclarationOfKind(moduleSymbol, 250 /* SourceFile */);
+ return ts.getDeclarationOfKind(moduleSymbol, 251 /* SourceFile */);
}
function initializeTypeChecker() {
// Bind all source files and propagate errors
ts.forEach(host.getSourceFiles(), function (file) {
ts.bindSourceFile(file, compilerOptions);
});
+ var augmentations;
// Initialize global symbol table
ts.forEach(host.getSourceFiles(), function (file) {
if (!ts.isExternalOrCommonJsModule(file)) {
mergeSymbolTable(globals, file.locals);
}
+ if (file.moduleAugmentations) {
+ (augmentations || (augmentations = [])).push(file.moduleAugmentations);
+ }
});
+ if (augmentations) {
+ // merge module augmentations.
+ // this needs to be done after global symbol table is initialized to make sure that all ambient modules are indexed
+ for (var _i = 0, augmentations_1 = augmentations; _i < augmentations_1.length; _i++) {
+ var list = augmentations_1[_i];
+ for (var _a = 0, list_2 = list; _a < list_2.length; _a++) {
+ var augmentation = list_2[_a];
+ mergeModuleAugmentation(augmentation);
+ }
+ }
+ }
// Setup global builtins
addToSymbolTable(globals, builtinGlobals, ts.Diagnostics.Declaration_name_conflicts_with_built_in_global_identifier_0);
getSymbolLinks(undefinedSymbol).type = undefinedType;
@@ -28262,14 +28624,14 @@ var ts;
return false;
}
if (!ts.nodeCanBeDecorated(node)) {
- if (node.kind === 143 /* MethodDeclaration */ && !ts.nodeIsPresent(node.body)) {
+ if (node.kind === 144 /* MethodDeclaration */ && !ts.nodeIsPresent(node.body)) {
return grammarErrorOnFirstToken(node, ts.Diagnostics.A_decorator_can_only_decorate_a_method_implementation_not_an_overload);
}
else {
return grammarErrorOnFirstToken(node, ts.Diagnostics.Decorators_are_not_valid_here);
}
}
- else if (node.kind === 145 /* GetAccessor */ || node.kind === 146 /* SetAccessor */) {
+ else if (node.kind === 146 /* GetAccessor */ || node.kind === 147 /* SetAccessor */) {
var accessors = ts.getAllAccessorDeclarations(node.parent.members, node);
if (accessors.firstAccessor.decorators && node === accessors.secondAccessor) {
return grammarErrorOnFirstToken(node, ts.Diagnostics.Decorators_cannot_be_applied_to_multiple_get_Slashset_accessors_of_the_same_name);
@@ -28279,38 +28641,38 @@ var ts;
}
function checkGrammarModifiers(node) {
switch (node.kind) {
- case 145 /* GetAccessor */:
- case 146 /* SetAccessor */:
- case 144 /* Constructor */:
- case 141 /* PropertyDeclaration */:
- case 140 /* PropertySignature */:
- case 143 /* MethodDeclaration */:
- case 142 /* MethodSignature */:
- case 149 /* IndexSignature */:
- case 220 /* ModuleDeclaration */:
- case 224 /* ImportDeclaration */:
- case 223 /* ImportEqualsDeclaration */:
- case 230 /* ExportDeclaration */:
- case 229 /* ExportAssignment */:
- case 138 /* Parameter */:
+ case 146 /* GetAccessor */:
+ case 147 /* SetAccessor */:
+ case 145 /* Constructor */:
+ case 142 /* PropertyDeclaration */:
+ case 141 /* PropertySignature */:
+ case 144 /* MethodDeclaration */:
+ case 143 /* MethodSignature */:
+ case 150 /* IndexSignature */:
+ case 221 /* ModuleDeclaration */:
+ case 225 /* ImportDeclaration */:
+ case 224 /* ImportEqualsDeclaration */:
+ case 231 /* ExportDeclaration */:
+ case 230 /* ExportAssignment */:
+ case 139 /* Parameter */:
break;
- case 215 /* FunctionDeclaration */:
+ case 216 /* FunctionDeclaration */:
if (node.modifiers && (node.modifiers.length > 1 || node.modifiers[0].kind !== 118 /* AsyncKeyword */) &&
- node.parent.kind !== 221 /* ModuleBlock */ && node.parent.kind !== 250 /* SourceFile */) {
+ node.parent.kind !== 222 /* ModuleBlock */ && node.parent.kind !== 251 /* SourceFile */) {
return grammarErrorOnFirstToken(node, ts.Diagnostics.Modifiers_cannot_appear_here);
}
break;
- case 216 /* ClassDeclaration */:
- case 217 /* InterfaceDeclaration */:
- case 195 /* VariableStatement */:
- case 218 /* TypeAliasDeclaration */:
- if (node.modifiers && node.parent.kind !== 221 /* ModuleBlock */ && node.parent.kind !== 250 /* SourceFile */) {
+ case 217 /* ClassDeclaration */:
+ case 218 /* InterfaceDeclaration */:
+ case 196 /* VariableStatement */:
+ case 219 /* TypeAliasDeclaration */:
+ if (node.modifiers && node.parent.kind !== 222 /* ModuleBlock */ && node.parent.kind !== 251 /* SourceFile */) {
return grammarErrorOnFirstToken(node, ts.Diagnostics.Modifiers_cannot_appear_here);
}
break;
- case 219 /* EnumDeclaration */:
+ case 220 /* EnumDeclaration */:
if (node.modifiers && (node.modifiers.length > 1 || node.modifiers[0].kind !== 74 /* ConstKeyword */) &&
- node.parent.kind !== 221 /* ModuleBlock */ && node.parent.kind !== 250 /* SourceFile */) {
+ node.parent.kind !== 222 /* ModuleBlock */ && node.parent.kind !== 251 /* SourceFile */) {
return grammarErrorOnFirstToken(node, ts.Diagnostics.Modifiers_cannot_appear_here);
}
break;
@@ -28326,7 +28688,7 @@ var ts;
var modifier = _a[_i];
switch (modifier.kind) {
case 74 /* ConstKeyword */:
- if (node.kind !== 219 /* EnumDeclaration */ && node.parent.kind === 216 /* ClassDeclaration */) {
+ if (node.kind !== 220 /* EnumDeclaration */ && node.parent.kind === 217 /* ClassDeclaration */) {
return grammarErrorOnNode(node, ts.Diagnostics.A_class_member_cannot_have_the_0_keyword, ts.tokenToString(74 /* ConstKeyword */));
}
break;
@@ -28354,7 +28716,7 @@ var ts;
else if (flags & 256 /* Async */) {
return grammarErrorOnNode(modifier, ts.Diagnostics._0_modifier_must_precede_1_modifier, text, "async");
}
- else if (node.parent.kind === 221 /* ModuleBlock */ || node.parent.kind === 250 /* SourceFile */) {
+ else if (node.parent.kind === 222 /* ModuleBlock */ || node.parent.kind === 251 /* SourceFile */) {
return grammarErrorOnNode(modifier, ts.Diagnostics._0_modifier_cannot_appear_on_a_module_element, text);
}
else if (flags & 128 /* Abstract */) {
@@ -28374,10 +28736,10 @@ var ts;
else if (flags & 256 /* Async */) {
return grammarErrorOnNode(modifier, ts.Diagnostics._0_modifier_must_precede_1_modifier, "static", "async");
}
- else if (node.parent.kind === 221 /* ModuleBlock */ || node.parent.kind === 250 /* SourceFile */) {
+ else if (node.parent.kind === 222 /* ModuleBlock */ || node.parent.kind === 251 /* SourceFile */) {
return grammarErrorOnNode(modifier, ts.Diagnostics._0_modifier_cannot_appear_on_a_module_element, "static");
}
- else if (node.kind === 138 /* Parameter */) {
+ else if (node.kind === 139 /* Parameter */) {
return grammarErrorOnNode(modifier, ts.Diagnostics._0_modifier_cannot_appear_on_a_parameter, "static");
}
else if (flags & 128 /* Abstract */) {
@@ -28399,10 +28761,10 @@ var ts;
else if (flags & 256 /* Async */) {
return grammarErrorOnNode(modifier, ts.Diagnostics._0_modifier_must_precede_1_modifier, "export", "async");
}
- else if (node.parent.kind === 216 /* ClassDeclaration */) {
+ else if (node.parent.kind === 217 /* ClassDeclaration */) {
return grammarErrorOnNode(modifier, ts.Diagnostics._0_modifier_cannot_appear_on_a_class_element, "export");
}
- else if (node.kind === 138 /* Parameter */) {
+ else if (node.kind === 139 /* Parameter */) {
return grammarErrorOnNode(modifier, ts.Diagnostics._0_modifier_cannot_appear_on_a_parameter, "export");
}
flags |= 2 /* Export */;
@@ -28414,13 +28776,13 @@ var ts;
else if (flags & 256 /* Async */) {
return grammarErrorOnNode(modifier, ts.Diagnostics._0_modifier_cannot_be_used_in_an_ambient_context, "async");
}
- else if (node.parent.kind === 216 /* ClassDeclaration */) {
+ else if (node.parent.kind === 217 /* ClassDeclaration */) {
return grammarErrorOnNode(modifier, ts.Diagnostics._0_modifier_cannot_appear_on_a_class_element, "declare");
}
- else if (node.kind === 138 /* Parameter */) {
+ else if (node.kind === 139 /* Parameter */) {
return grammarErrorOnNode(modifier, ts.Diagnostics._0_modifier_cannot_appear_on_a_parameter, "declare");
}
- else if (ts.isInAmbientContext(node.parent) && node.parent.kind === 221 /* ModuleBlock */) {
+ else if (ts.isInAmbientContext(node.parent) && node.parent.kind === 222 /* ModuleBlock */) {
return grammarErrorOnNode(modifier, ts.Diagnostics.A_declare_modifier_cannot_be_used_in_an_already_ambient_context);
}
flags |= 4 /* Ambient */;
@@ -28430,11 +28792,11 @@ var ts;
if (flags & 128 /* Abstract */) {
return grammarErrorOnNode(modifier, ts.Diagnostics._0_modifier_already_seen, "abstract");
}
- if (node.kind !== 216 /* ClassDeclaration */) {
- if (node.kind !== 143 /* MethodDeclaration */) {
+ if (node.kind !== 217 /* ClassDeclaration */) {
+ if (node.kind !== 144 /* MethodDeclaration */) {
return grammarErrorOnNode(modifier, ts.Diagnostics.abstract_modifier_can_only_appear_on_a_class_or_method_declaration);
}
- if (!(node.parent.kind === 216 /* ClassDeclaration */ && node.parent.flags & 128 /* Abstract */)) {
+ if (!(node.parent.kind === 217 /* ClassDeclaration */ && node.parent.flags & 128 /* Abstract */)) {
return grammarErrorOnNode(modifier, ts.Diagnostics.Abstract_methods_can_only_appear_within_an_abstract_class);
}
if (flags & 64 /* Static */) {
@@ -28453,7 +28815,7 @@ var ts;
else if (flags & 4 /* Ambient */ || ts.isInAmbientContext(node.parent)) {
return grammarErrorOnNode(modifier, ts.Diagnostics._0_modifier_cannot_be_used_in_an_ambient_context, "async");
}
- else if (node.kind === 138 /* Parameter */) {
+ else if (node.kind === 139 /* Parameter */) {
return grammarErrorOnNode(modifier, ts.Diagnostics._0_modifier_cannot_appear_on_a_parameter, "async");
}
flags |= 256 /* Async */;
@@ -28461,7 +28823,7 @@ var ts;
break;
}
}
- if (node.kind === 144 /* Constructor */) {
+ if (node.kind === 145 /* Constructor */) {
if (flags & 64 /* Static */) {
return grammarErrorOnNode(lastStatic, ts.Diagnostics._0_modifier_cannot_appear_on_a_constructor_declaration, "static");
}
@@ -28479,10 +28841,10 @@ var ts;
}
return;
}
- else if ((node.kind === 224 /* ImportDeclaration */ || node.kind === 223 /* ImportEqualsDeclaration */) && flags & 4 /* Ambient */) {
+ else if ((node.kind === 225 /* ImportDeclaration */ || node.kind === 224 /* ImportEqualsDeclaration */) && flags & 4 /* Ambient */) {
return grammarErrorOnNode(lastDeclare, ts.Diagnostics.A_0_modifier_cannot_be_used_with_an_import_declaration, "declare");
}
- else if (node.kind === 138 /* Parameter */ && (flags & 56 /* AccessibilityModifier */) && ts.isBindingPattern(node.name)) {
+ else if (node.kind === 139 /* Parameter */ && (flags & 56 /* AccessibilityModifier */) && ts.isBindingPattern(node.name)) {
return grammarErrorOnNode(node, ts.Diagnostics.A_parameter_property_may_not_be_a_binding_pattern);
}
if (flags & 256 /* Async */) {
@@ -28494,10 +28856,10 @@ var ts;
return grammarErrorOnNode(asyncModifier, ts.Diagnostics.Async_functions_are_only_available_when_targeting_ECMAScript_6_and_higher);
}
switch (node.kind) {
- case 143 /* MethodDeclaration */:
- case 215 /* FunctionDeclaration */:
- case 175 /* FunctionExpression */:
- case 176 /* ArrowFunction */:
+ case 144 /* MethodDeclaration */:
+ case 216 /* FunctionDeclaration */:
+ case 176 /* FunctionExpression */:
+ case 177 /* ArrowFunction */:
if (!node.asteriskToken) {
return false;
}
@@ -28563,7 +28925,7 @@ var ts;
checkGrammarParameterList(node.parameters) || checkGrammarArrowFunction(node, file);
}
function checkGrammarArrowFunction(node, file) {
- if (node.kind === 176 /* ArrowFunction */) {
+ if (node.kind === 177 /* ArrowFunction */) {
var arrowFunction = node;
var startLine = ts.getLineAndCharacterOfPosition(file, arrowFunction.equalsGreaterThanToken.pos).line;
var endLine = ts.getLineAndCharacterOfPosition(file, arrowFunction.equalsGreaterThanToken.end).line;
@@ -28631,7 +28993,7 @@ var ts;
var sourceFile = ts.getSourceFileOfNode(node);
for (var _i = 0, args_1 = args; _i < args_1.length; _i++) {
var arg = args_1[_i];
- if (arg.kind === 189 /* OmittedExpression */) {
+ if (arg.kind === 190 /* OmittedExpression */) {
return grammarErrorAtPos(sourceFile, arg.pos, 0, ts.Diagnostics.Argument_expression_expected);
}
}
@@ -28705,19 +29067,19 @@ var ts;
}
function checkGrammarComputedPropertyName(node) {
// If node is not a computedPropertyName, just skip the grammar checking
- if (node.kind !== 136 /* ComputedPropertyName */) {
+ if (node.kind !== 137 /* ComputedPropertyName */) {
return false;
}
var computedPropertyName = node;
- if (computedPropertyName.expression.kind === 183 /* BinaryExpression */ && computedPropertyName.expression.operatorToken.kind === 24 /* CommaToken */) {
+ if (computedPropertyName.expression.kind === 184 /* BinaryExpression */ && computedPropertyName.expression.operatorToken.kind === 24 /* CommaToken */) {
return grammarErrorOnNode(computedPropertyName.expression, ts.Diagnostics.A_comma_expression_is_not_allowed_in_a_computed_property_name);
}
}
function checkGrammarForGenerator(node) {
if (node.asteriskToken) {
- ts.Debug.assert(node.kind === 215 /* FunctionDeclaration */ ||
- node.kind === 175 /* FunctionExpression */ ||
- node.kind === 143 /* MethodDeclaration */);
+ ts.Debug.assert(node.kind === 216 /* FunctionDeclaration */ ||
+ node.kind === 176 /* FunctionExpression */ ||
+ node.kind === 144 /* MethodDeclaration */);
if (ts.isInAmbientContext(node)) {
return grammarErrorOnNode(node.asteriskToken, ts.Diagnostics.Generators_are_not_allowed_in_an_ambient_context);
}
@@ -28741,21 +29103,21 @@ var ts;
var SetAccesor = 4;
var GetOrSetAccessor = GetAccessor | SetAccesor;
var _loop_1 = function(prop) {
- var name_16 = prop.name;
- if (prop.kind === 189 /* OmittedExpression */ ||
- name_16.kind === 136 /* ComputedPropertyName */) {
+ var name_19 = prop.name;
+ if (prop.kind === 190 /* OmittedExpression */ ||
+ name_19.kind === 137 /* ComputedPropertyName */) {
// If the name is not a ComputedPropertyName, the grammar checking will skip it
- checkGrammarComputedPropertyName(name_16);
+ checkGrammarComputedPropertyName(name_19);
return "continue";
}
- if (prop.kind === 248 /* ShorthandPropertyAssignment */ && !inDestructuring && prop.objectAssignmentInitializer) {
+ if (prop.kind === 249 /* ShorthandPropertyAssignment */ && !inDestructuring && prop.objectAssignmentInitializer) {
// having objectAssignmentInitializer is only valid in ObjectAssignmentPattern
// outside of destructuring it is a syntax error
return { value: grammarErrorOnNode(prop.equalsToken, ts.Diagnostics.can_only_be_used_in_an_object_literal_property_inside_a_destructuring_assignment) };
}
// Modifiers are never allowed on properties except for 'async' on a method declaration
ts.forEach(prop.modifiers, function (mod) {
- if (mod.kind !== 118 /* AsyncKeyword */ || prop.kind !== 143 /* MethodDeclaration */) {
+ if (mod.kind !== 118 /* AsyncKeyword */ || prop.kind !== 144 /* MethodDeclaration */) {
grammarErrorOnNode(mod, ts.Diagnostics._0_modifier_cannot_be_used_here, ts.getTextOfNode(mod));
}
});
@@ -28768,44 +29130,44 @@ var ts;
// d.IsAccessorDescriptor(previous) is true and IsAccessorDescriptor(propId.descriptor) is true
// and either both previous and propId.descriptor have[[Get]] fields or both previous and propId.descriptor have[[Set]] fields
var currentKind = void 0;
- if (prop.kind === 247 /* PropertyAssignment */ || prop.kind === 248 /* ShorthandPropertyAssignment */) {
+ if (prop.kind === 248 /* PropertyAssignment */ || prop.kind === 249 /* ShorthandPropertyAssignment */) {
// Grammar checking for computedPropertName and shorthandPropertyAssignment
checkGrammarForInvalidQuestionMark(prop, prop.questionToken, ts.Diagnostics.An_object_member_cannot_be_declared_optional);
- if (name_16.kind === 8 /* NumericLiteral */) {
- checkGrammarNumericLiteral(name_16);
+ if (name_19.kind === 8 /* NumericLiteral */) {
+ checkGrammarNumericLiteral(name_19);
}
currentKind = Property;
}
- else if (prop.kind === 143 /* MethodDeclaration */) {
+ else if (prop.kind === 144 /* MethodDeclaration */) {
currentKind = Property;
}
- else if (prop.kind === 145 /* GetAccessor */) {
+ else if (prop.kind === 146 /* GetAccessor */) {
currentKind = GetAccessor;
}
- else if (prop.kind === 146 /* SetAccessor */) {
+ else if (prop.kind === 147 /* SetAccessor */) {
currentKind = SetAccesor;
}
else {
ts.Debug.fail("Unexpected syntax kind:" + prop.kind);
}
- if (!ts.hasProperty(seen, name_16.text)) {
- seen[name_16.text] = currentKind;
+ if (!ts.hasProperty(seen, name_19.text)) {
+ seen[name_19.text] = currentKind;
}
else {
- var existingKind = seen[name_16.text];
+ var existingKind = seen[name_19.text];
if (currentKind === Property && existingKind === Property) {
return "continue";
}
else if ((currentKind & GetOrSetAccessor) && (existingKind & GetOrSetAccessor)) {
if (existingKind !== GetOrSetAccessor && currentKind !== existingKind) {
- seen[name_16.text] = currentKind | existingKind;
+ seen[name_19.text] = currentKind | existingKind;
}
else {
- return { value: grammarErrorOnNode(name_16, ts.Diagnostics.An_object_literal_cannot_have_multiple_get_Slashset_accessors_with_the_same_name) };
+ return { value: grammarErrorOnNode(name_19, ts.Diagnostics.An_object_literal_cannot_have_multiple_get_Slashset_accessors_with_the_same_name) };
}
}
else {
- return { value: grammarErrorOnNode(name_16, ts.Diagnostics.An_object_literal_cannot_have_property_and_accessor_with_the_same_name) };
+ return { value: grammarErrorOnNode(name_19, ts.Diagnostics.An_object_literal_cannot_have_property_and_accessor_with_the_same_name) };
}
}
};
@@ -28820,19 +29182,19 @@ var ts;
var seen = {};
for (var _i = 0, _a = node.attributes; _i < _a.length; _i++) {
var attr = _a[_i];
- if (attr.kind === 241 /* JsxSpreadAttribute */) {
+ if (attr.kind === 242 /* JsxSpreadAttribute */) {
continue;
}
var jsxAttr = attr;
- var name_17 = jsxAttr.name;
- if (!ts.hasProperty(seen, name_17.text)) {
- seen[name_17.text] = true;
+ var name_20 = jsxAttr.name;
+ if (!ts.hasProperty(seen, name_20.text)) {
+ seen[name_20.text] = true;
}
else {
- return grammarErrorOnNode(name_17, ts.Diagnostics.JSX_elements_cannot_have_multiple_attributes_with_the_same_name);
+ return grammarErrorOnNode(name_20, ts.Diagnostics.JSX_elements_cannot_have_multiple_attributes_with_the_same_name);
}
var initializer = jsxAttr.initializer;
- if (initializer && initializer.kind === 242 /* JsxExpression */ && !initializer.expression) {
+ if (initializer && initializer.kind === 243 /* JsxExpression */ && !initializer.expression) {
return grammarErrorOnNode(jsxAttr.initializer, ts.Diagnostics.JSX_attributes_must_only_be_assigned_a_non_empty_expression);
}
}
@@ -28841,7 +29203,7 @@ var ts;
if (checkGrammarStatementInAmbientContext(forInOrOfStatement)) {
return true;
}
- if (forInOrOfStatement.initializer.kind === 214 /* VariableDeclarationList */) {
+ if (forInOrOfStatement.initializer.kind === 215 /* VariableDeclarationList */) {
var variableList = forInOrOfStatement.initializer;
if (!checkGrammarVariableDeclarationList(variableList)) {
var declarations = variableList.declarations;
@@ -28856,20 +29218,20 @@ var ts;
return false;
}
if (declarations.length > 1) {
- var diagnostic = forInOrOfStatement.kind === 202 /* ForInStatement */
+ var diagnostic = forInOrOfStatement.kind === 203 /* ForInStatement */
? ts.Diagnostics.Only_a_single_variable_declaration_is_allowed_in_a_for_in_statement
: ts.Diagnostics.Only_a_single_variable_declaration_is_allowed_in_a_for_of_statement;
return grammarErrorOnFirstToken(variableList.declarations[1], diagnostic);
}
var firstDeclaration = declarations[0];
if (firstDeclaration.initializer) {
- var diagnostic = forInOrOfStatement.kind === 202 /* ForInStatement */
+ var diagnostic = forInOrOfStatement.kind === 203 /* ForInStatement */
? ts.Diagnostics.The_variable_declaration_of_a_for_in_statement_cannot_have_an_initializer
: ts.Diagnostics.The_variable_declaration_of_a_for_of_statement_cannot_have_an_initializer;
return grammarErrorOnNode(firstDeclaration.name, diagnostic);
}
if (firstDeclaration.type) {
- var diagnostic = forInOrOfStatement.kind === 202 /* ForInStatement */
+ var diagnostic = forInOrOfStatement.kind === 203 /* ForInStatement */
? ts.Diagnostics.The_left_hand_side_of_a_for_in_statement_cannot_use_a_type_annotation
: ts.Diagnostics.The_left_hand_side_of_a_for_of_statement_cannot_use_a_type_annotation;
return grammarErrorOnNode(firstDeclaration, diagnostic);
@@ -28892,10 +29254,10 @@ var ts;
else if (accessor.typeParameters) {
return grammarErrorOnNode(accessor.name, ts.Diagnostics.An_accessor_cannot_have_type_parameters);
}
- else if (kind === 145 /* GetAccessor */ && accessor.parameters.length) {
+ else if (kind === 146 /* GetAccessor */ && accessor.parameters.length) {
return grammarErrorOnNode(accessor.name, ts.Diagnostics.A_get_accessor_cannot_have_parameters);
}
- else if (kind === 146 /* SetAccessor */) {
+ else if (kind === 147 /* SetAccessor */) {
if (accessor.type) {
return grammarErrorOnNode(accessor.name, ts.Diagnostics.A_set_accessor_cannot_have_a_return_type_annotation);
}
@@ -28930,12 +29292,12 @@ var ts;
checkGrammarForGenerator(node)) {
return true;
}
- if (node.parent.kind === 167 /* ObjectLiteralExpression */) {
+ if (node.parent.kind === 168 /* ObjectLiteralExpression */) {
if (checkGrammarForInvalidQuestionMark(node, node.questionToken, ts.Diagnostics.A_class_member_cannot_be_declared_optional)) {
return true;
}
else if (node.body === undefined) {
- return grammarErrorAtPos(getSourceFile(node), node.end - 1, ";".length, ts.Diagnostics._0_expected, "{");
+ return grammarErrorAtPos(ts.getSourceFileOfNode(node), node.end - 1, ";".length, ts.Diagnostics._0_expected, "{");
}
}
if (ts.isClassLike(node.parent)) {
@@ -28954,10 +29316,10 @@ var ts;
return checkGrammarForNonSymbolComputedProperty(node.name, ts.Diagnostics.A_computed_property_name_in_a_method_overload_must_directly_refer_to_a_built_in_symbol);
}
}
- else if (node.parent.kind === 217 /* InterfaceDeclaration */) {
+ else if (node.parent.kind === 218 /* InterfaceDeclaration */) {
return checkGrammarForNonSymbolComputedProperty(node.name, ts.Diagnostics.A_computed_property_name_in_an_interface_must_directly_refer_to_a_built_in_symbol);
}
- else if (node.parent.kind === 155 /* TypeLiteral */) {
+ else if (node.parent.kind === 156 /* TypeLiteral */) {
return checkGrammarForNonSymbolComputedProperty(node.name, ts.Diagnostics.A_computed_property_name_in_a_type_literal_must_directly_refer_to_a_built_in_symbol);
}
}
@@ -28968,11 +29330,11 @@ var ts;
return grammarErrorOnNode(node, ts.Diagnostics.Jump_target_cannot_cross_function_boundary);
}
switch (current.kind) {
- case 209 /* LabeledStatement */:
+ case 210 /* LabeledStatement */:
if (node.label && current.label.text === node.label.text) {
// found matching label - verify that label usage is correct
// continue can only target labels that are on iteration statements
- var isMisplacedContinueLabel = node.kind === 204 /* ContinueStatement */
+ var isMisplacedContinueLabel = node.kind === 205 /* ContinueStatement */
&& !ts.isIterationStatement(current.statement, /*lookInLabeledStatement*/ true);
if (isMisplacedContinueLabel) {
return grammarErrorOnNode(node, ts.Diagnostics.A_continue_statement_can_only_jump_to_a_label_of_an_enclosing_iteration_statement);
@@ -28980,8 +29342,8 @@ var ts;
return false;
}
break;
- case 208 /* SwitchStatement */:
- if (node.kind === 205 /* BreakStatement */ && !node.label) {
+ case 209 /* SwitchStatement */:
+ if (node.kind === 206 /* BreakStatement */ && !node.label) {
// unlabeled break within switch statement - ok
return false;
}
@@ -28996,13 +29358,13 @@ var ts;
current = current.parent;
}
if (node.label) {
- var message = node.kind === 205 /* BreakStatement */
+ var message = node.kind === 206 /* BreakStatement */
? ts.Diagnostics.A_break_statement_can_only_jump_to_a_label_of_an_enclosing_statement
: ts.Diagnostics.A_continue_statement_can_only_jump_to_a_label_of_an_enclosing_iteration_statement;
return grammarErrorOnNode(node, message);
}
else {
- var message = node.kind === 205 /* BreakStatement */
+ var message = node.kind === 206 /* BreakStatement */
? ts.Diagnostics.A_break_statement_can_only_be_used_within_an_enclosing_iteration_or_switch_statement
: ts.Diagnostics.A_continue_statement_can_only_be_used_within_an_enclosing_iteration_statement;
return grammarErrorOnNode(node, message);
@@ -29014,7 +29376,7 @@ var ts;
if (node !== ts.lastOrUndefined(elements)) {
return grammarErrorOnNode(node, ts.Diagnostics.A_rest_element_must_be_last_in_an_array_destructuring_pattern);
}
- if (node.name.kind === 164 /* ArrayBindingPattern */ || node.name.kind === 163 /* ObjectBindingPattern */) {
+ if (node.name.kind === 165 /* ArrayBindingPattern */ || node.name.kind === 164 /* ObjectBindingPattern */) {
return grammarErrorOnNode(node.name, ts.Diagnostics.A_rest_element_cannot_contain_a_binding_pattern);
}
if (node.initializer) {
@@ -29024,7 +29386,7 @@ var ts;
}
}
function checkGrammarVariableDeclaration(node) {
- if (node.parent.parent.kind !== 202 /* ForInStatement */ && node.parent.parent.kind !== 203 /* ForOfStatement */) {
+ if (node.parent.parent.kind !== 203 /* ForInStatement */ && node.parent.parent.kind !== 204 /* ForOfStatement */) {
if (ts.isInAmbientContext(node)) {
if (node.initializer) {
// Error on equals token which immediate precedes the initializer
@@ -29060,7 +29422,7 @@ var ts;
var elements = name.elements;
for (var _i = 0, elements_2 = elements; _i < elements_2.length; _i++) {
var element = elements_2[_i];
- if (element.kind !== 189 /* OmittedExpression */) {
+ if (element.kind !== 190 /* OmittedExpression */) {
checkGrammarNameInLetOrConstDeclarations(element.name);
}
}
@@ -29077,15 +29439,15 @@ var ts;
}
function allowLetAndConstDeclarations(parent) {
switch (parent.kind) {
- case 198 /* IfStatement */:
- case 199 /* DoStatement */:
- case 200 /* WhileStatement */:
- case 207 /* WithStatement */:
- case 201 /* ForStatement */:
- case 202 /* ForInStatement */:
- case 203 /* ForOfStatement */:
+ case 199 /* IfStatement */:
+ case 200 /* DoStatement */:
+ case 201 /* WhileStatement */:
+ case 208 /* WithStatement */:
+ case 202 /* ForStatement */:
+ case 203 /* ForInStatement */:
+ case 204 /* ForOfStatement */:
return false;
- case 209 /* LabeledStatement */:
+ case 210 /* LabeledStatement */:
return allowLetAndConstDeclarations(parent.parent);
}
return true;
@@ -29141,7 +29503,7 @@ var ts;
return true;
}
}
- else if (node.parent.kind === 217 /* InterfaceDeclaration */) {
+ else if (node.parent.kind === 218 /* InterfaceDeclaration */) {
if (checkGrammarForNonSymbolComputedProperty(node.name, ts.Diagnostics.A_computed_property_name_in_an_interface_must_directly_refer_to_a_built_in_symbol)) {
return true;
}
@@ -29149,7 +29511,7 @@ var ts;
return grammarErrorOnNode(node.initializer, ts.Diagnostics.An_interface_property_cannot_have_an_initializer);
}
}
- else if (node.parent.kind === 155 /* TypeLiteral */) {
+ else if (node.parent.kind === 156 /* TypeLiteral */) {
if (checkGrammarForNonSymbolComputedProperty(node.name, ts.Diagnostics.A_computed_property_name_in_a_type_literal_must_directly_refer_to_a_built_in_symbol)) {
return true;
}
@@ -29174,12 +29536,12 @@ var ts;
// export_opt AmbientDeclaration
//
// TODO: The spec needs to be amended to reflect this grammar.
- if (node.kind === 217 /* InterfaceDeclaration */ ||
- node.kind === 218 /* TypeAliasDeclaration */ ||
- node.kind === 224 /* ImportDeclaration */ ||
- node.kind === 223 /* ImportEqualsDeclaration */ ||
- node.kind === 230 /* ExportDeclaration */ ||
- node.kind === 229 /* ExportAssignment */ ||
+ if (node.kind === 218 /* InterfaceDeclaration */ ||
+ node.kind === 219 /* TypeAliasDeclaration */ ||
+ node.kind === 225 /* ImportDeclaration */ ||
+ node.kind === 224 /* ImportEqualsDeclaration */ ||
+ node.kind === 231 /* ExportDeclaration */ ||
+ node.kind === 230 /* ExportAssignment */ ||
(node.flags & 4 /* Ambient */) ||
(node.flags & (2 /* Export */ | 512 /* Default */))) {
return false;
@@ -29189,7 +29551,7 @@ var ts;
function checkGrammarTopLevelElementsForRequiredDeclareModifier(file) {
for (var _i = 0, _a = file.statements; _i < _a.length; _i++) {
var decl = _a[_i];
- if (ts.isDeclaration(decl) || decl.kind === 195 /* VariableStatement */) {
+ if (ts.isDeclaration(decl) || decl.kind === 196 /* VariableStatement */) {
if (checkGrammarTopLevelElementForRequiredDeclareModifier(decl)) {
return true;
}
@@ -29215,7 +29577,7 @@ var ts;
// to prevent noisyness. So use a bit on the block to indicate if
// this has already been reported, and don't report if it has.
//
- if (node.parent.kind === 194 /* Block */ || node.parent.kind === 221 /* ModuleBlock */ || node.parent.kind === 250 /* SourceFile */) {
+ if (node.parent.kind === 195 /* Block */ || node.parent.kind === 222 /* ModuleBlock */ || node.parent.kind === 251 /* SourceFile */) {
var links_1 = getNodeLinks(node.parent);
// Check if the containing block ever report this error
if (!links_1.hasReportedStatementInAmbientContext) {
@@ -29255,8 +29617,9 @@ var ts;
getSourceMapData: function () { return undefined; },
setSourceFile: function (sourceFile) { },
emitStart: function (range) { },
- emitEnd: function (range) { },
+ emitEnd: function (range, stopOverridingSpan) { },
emitPos: function (pos) { },
+ changeEmitSourcePos: function () { },
getText: function () { return undefined; },
getSourceMappingURL: function () { return undefined; },
initialize: function (filePath, sourceMapFilePath, sourceFiles, isBundledEmit) { },
@@ -29270,6 +29633,8 @@ var ts;
var compilerOptions = host.getCompilerOptions();
var currentSourceFile;
var sourceMapDir; // The directory in which sourcemap will be
+ var stopOverridingSpan = false;
+ var modifyLastSourcePos = false;
// Current source map file and its index in the sources list
var sourceMapSourceIndex;
// Last recorded and encoded spans
@@ -29284,6 +29649,7 @@ var ts;
emitPos: emitPos,
emitStart: emitStart,
emitEnd: emitEnd,
+ changeEmitSourcePos: changeEmitSourcePos,
getText: getText,
getSourceMappingURL: getSourceMappingURL,
initialize: initialize,
@@ -29358,6 +29724,39 @@ var ts;
lastEncodedNameIndex = undefined;
sourceMapData = undefined;
}
+ function updateLastEncodedAndRecordedSpans() {
+ if (modifyLastSourcePos) {
+ // Reset the source pos
+ modifyLastSourcePos = false;
+ // Change Last recorded Map with last encoded emit line and character
+ lastRecordedSourceMapSpan.emittedLine = lastEncodedSourceMapSpan.emittedLine;
+ lastRecordedSourceMapSpan.emittedColumn = lastEncodedSourceMapSpan.emittedColumn;
+ // Pop sourceMapDecodedMappings to remove last entry
+ sourceMapData.sourceMapDecodedMappings.pop();
+ // Change the last encoded source map
+ lastEncodedSourceMapSpan = sourceMapData.sourceMapDecodedMappings.length ?
+ sourceMapData.sourceMapDecodedMappings[sourceMapData.sourceMapDecodedMappings.length - 1] :
+ undefined;
+ // TODO: Update lastEncodedNameIndex
+ // Since we dont support this any more, lets not worry about it right now.
+ // When we start supporting nameIndex, we will get back to this
+ // Change the encoded source map
+ var sourceMapMappings = sourceMapData.sourceMapMappings;
+ var lenthToSet = sourceMapMappings.length - 1;
+ for (; lenthToSet >= 0; lenthToSet--) {
+ var currentChar = sourceMapMappings.charAt(lenthToSet);
+ if (currentChar === ",") {
+ // Separator for the entry found
+ break;
+ }
+ if (currentChar === ";" && lenthToSet !== 0 && sourceMapMappings.charAt(lenthToSet - 1) !== ";") {
+ // Last line separator found
+ break;
+ }
+ }
+ sourceMapData.sourceMapMappings = sourceMapMappings.substr(0, Math.max(0, lenthToSet));
+ }
+ }
// Encoding for sourcemap span
function encodeLastRecordedSourceMapSpan() {
if (!lastRecordedSourceMapSpan || lastRecordedSourceMapSpan === lastEncodedSourceMapSpan) {
@@ -29388,6 +29787,7 @@ var ts;
sourceMapData.sourceMapMappings += base64VLQFormatEncode(lastRecordedSourceMapSpan.sourceColumn - lastEncodedSourceMapSpan.sourceColumn);
// 5. Relative namePosition 0 based
if (lastRecordedSourceMapSpan.nameIndex >= 0) {
+ ts.Debug.assert(false, "We do not support name index right now, Make sure to update updateLastEncodedAndRecordedSpans when we start using this");
sourceMapData.sourceMapMappings += base64VLQFormatEncode(lastRecordedSourceMapSpan.nameIndex - lastEncodedNameIndex);
lastEncodedNameIndex = lastRecordedSourceMapSpan.nameIndex;
}
@@ -29421,20 +29821,30 @@ var ts;
sourceColumn: sourceLinePos.character,
sourceIndex: sourceMapSourceIndex
};
+ stopOverridingSpan = false;
}
- else {
+ else if (!stopOverridingSpan) {
// Take the new pos instead since there is no change in emittedLine and column since last location
lastRecordedSourceMapSpan.sourceLine = sourceLinePos.line;
lastRecordedSourceMapSpan.sourceColumn = sourceLinePos.character;
lastRecordedSourceMapSpan.sourceIndex = sourceMapSourceIndex;
}
+ updateLastEncodedAndRecordedSpans();
+ }
+ function getStartPos(range) {
+ var rangeHasDecorators = !!range.decorators;
+ return range.pos !== -1 ? ts.skipTrivia(currentSourceFile.text, rangeHasDecorators ? range.decorators.end : range.pos) : -1;
}
function emitStart(range) {
- var rangeHasDecorators = !!range.decorators;
- emitPos(range.pos !== -1 ? ts.skipTrivia(currentSourceFile.text, rangeHasDecorators ? range.decorators.end : range.pos) : -1);
+ emitPos(getStartPos(range));
}
- function emitEnd(range) {
+ function emitEnd(range, stopOverridingEnd) {
emitPos(range.end);
+ stopOverridingSpan = stopOverridingEnd;
+ }
+ function changeEmitSourcePos() {
+ ts.Debug.assert(!modifyLastSourcePos);
+ modifyLastSourcePos = true;
}
function setSourceFile(sourceFile) {
currentSourceFile = sourceFile;
@@ -29536,6 +29946,7 @@ var ts;
var writeTextOfNode;
var writer = createAndSetNewTextWriterWithSymbolWriter();
var enclosingDeclaration;
+ var resultHasExternalModuleIndicator;
var currentText;
var currentLineMap;
var currentIdentifiers;
@@ -29577,6 +29988,7 @@ var ts;
}
});
}
+ resultHasExternalModuleIndicator = false;
if (!isBundledEmit || !ts.isExternalModule(sourceFile)) {
noDeclare = false;
emitSourceFile(sourceFile);
@@ -29596,7 +30008,7 @@ var ts;
var oldWriter = writer;
ts.forEach(moduleElementDeclarationEmitInfo, function (aliasEmitInfo) {
if (aliasEmitInfo.isVisible && !aliasEmitInfo.asynchronousOutput) {
- ts.Debug.assert(aliasEmitInfo.node.kind === 224 /* ImportDeclaration */);
+ ts.Debug.assert(aliasEmitInfo.node.kind === 225 /* ImportDeclaration */);
createAndSetNewTextWriterWithSymbolWriter();
ts.Debug.assert(aliasEmitInfo.indent === 0 || (aliasEmitInfo.indent === 1 && isBundledEmit));
for (var i = 0; i < aliasEmitInfo.indent; i++) {
@@ -29613,6 +30025,13 @@ var ts;
allSourcesModuleElementDeclarationEmitInfo = allSourcesModuleElementDeclarationEmitInfo.concat(moduleElementDeclarationEmitInfo);
moduleElementDeclarationEmitInfo = [];
}
+ if (!isBundledEmit && ts.isExternalModule(sourceFile) && sourceFile.moduleAugmentations.length && !resultHasExternalModuleIndicator) {
+ // if file was external module with augmentations - this fact should be preserved in .d.ts as well.
+ // in case if we didn't write any external module specifiers in .d.ts we need to emit something
+ // that will force compiler to think that this file is an external module - 'export {}' is a reasonable choice here.
+ write("export {};");
+ writeLine();
+ }
});
return {
reportedDeclarationError: reportedDeclarationError,
@@ -29659,10 +30078,10 @@ var ts;
var oldWriter = writer;
ts.forEach(nodes, function (declaration) {
var nodeToCheck;
- if (declaration.kind === 213 /* VariableDeclaration */) {
+ if (declaration.kind === 214 /* VariableDeclaration */) {
nodeToCheck = declaration.parent.parent;
}
- else if (declaration.kind === 227 /* NamedImports */ || declaration.kind === 228 /* ImportSpecifier */ || declaration.kind === 225 /* ImportClause */) {
+ else if (declaration.kind === 228 /* NamedImports */ || declaration.kind === 229 /* ImportSpecifier */ || declaration.kind === 226 /* ImportClause */) {
ts.Debug.fail("We should be getting ImportDeclaration instead to write");
}
else {
@@ -29680,7 +30099,7 @@ var ts;
// Writing of function bar would mark alias declaration foo as visible but we haven't yet visited that declaration so do nothing,
// we would write alias foo declaration when we visit it since it would now be marked as visible
if (moduleElementEmitInfo) {
- if (moduleElementEmitInfo.node.kind === 224 /* ImportDeclaration */) {
+ if (moduleElementEmitInfo.node.kind === 225 /* ImportDeclaration */) {
// we have to create asynchronous output only after we have collected complete information
// because it is possible to enable multiple bindings as asynchronously visible
moduleElementEmitInfo.isVisible = true;
@@ -29690,12 +30109,12 @@ var ts;
for (var declarationIndent = moduleElementEmitInfo.indent; declarationIndent; declarationIndent--) {
increaseIndent();
}
- if (nodeToCheck.kind === 220 /* ModuleDeclaration */) {
+ if (nodeToCheck.kind === 221 /* ModuleDeclaration */) {
ts.Debug.assert(asynchronousSubModuleDeclarationEmitInfo === undefined);
asynchronousSubModuleDeclarationEmitInfo = [];
}
writeModuleElement(nodeToCheck);
- if (nodeToCheck.kind === 220 /* ModuleDeclaration */) {
+ if (nodeToCheck.kind === 221 /* ModuleDeclaration */) {
moduleElementEmitInfo.subModuleElementDeclarationEmitInfo = asynchronousSubModuleDeclarationEmitInfo;
asynchronousSubModuleDeclarationEmitInfo = undefined;
}
@@ -29803,35 +30222,35 @@ var ts;
case 120 /* BooleanKeyword */:
case 131 /* SymbolKeyword */:
case 103 /* VoidKeyword */:
- case 161 /* ThisType */:
- case 162 /* StringLiteralType */:
+ case 162 /* ThisType */:
+ case 163 /* StringLiteralType */:
return writeTextOfNode(currentText, type);
- case 190 /* ExpressionWithTypeArguments */:
+ case 191 /* ExpressionWithTypeArguments */:
return emitExpressionWithTypeArguments(type);
- case 151 /* TypeReference */:
+ case 152 /* TypeReference */:
return emitTypeReference(type);
- case 154 /* TypeQuery */:
+ case 155 /* TypeQuery */:
return emitTypeQuery(type);
- case 156 /* ArrayType */:
+ case 157 /* ArrayType */:
return emitArrayType(type);
- case 157 /* TupleType */:
+ case 158 /* TupleType */:
return emitTupleType(type);
- case 158 /* UnionType */:
+ case 159 /* UnionType */:
return emitUnionType(type);
- case 159 /* IntersectionType */:
+ case 160 /* IntersectionType */:
return emitIntersectionType(type);
- case 160 /* ParenthesizedType */:
+ case 161 /* ParenthesizedType */:
return emitParenType(type);
- case 152 /* FunctionType */:
- case 153 /* ConstructorType */:
+ case 153 /* FunctionType */:
+ case 154 /* ConstructorType */:
return emitSignatureDeclarationWithJsDocComments(type);
- case 155 /* TypeLiteral */:
+ case 156 /* TypeLiteral */:
return emitTypeLiteral(type);
case 69 /* Identifier */:
return emitEntityName(type);
- case 135 /* QualifiedName */:
+ case 136 /* QualifiedName */:
return emitEntityName(type);
- case 150 /* TypePredicate */:
+ case 151 /* TypePredicate */:
return emitTypePredicate(type);
}
function writeEntityName(entityName) {
@@ -29839,8 +30258,8 @@ var ts;
writeTextOfNode(currentText, entityName);
}
else {
- var left = entityName.kind === 135 /* QualifiedName */ ? entityName.left : entityName.expression;
- var right = entityName.kind === 135 /* QualifiedName */ ? entityName.right : entityName.name;
+ var left = entityName.kind === 136 /* QualifiedName */ ? entityName.left : entityName.expression;
+ var right = entityName.kind === 136 /* QualifiedName */ ? entityName.right : entityName.name;
writeEntityName(left);
write(".");
writeTextOfNode(currentText, right);
@@ -29849,13 +30268,13 @@ var ts;
function emitEntityName(entityName) {
var visibilityResult = resolver.isEntityNameVisible(entityName,
// Aliases can be written asynchronously so use correct enclosing declaration
- entityName.parent.kind === 223 /* ImportEqualsDeclaration */ ? entityName.parent : enclosingDeclaration);
+ entityName.parent.kind === 224 /* ImportEqualsDeclaration */ ? entityName.parent : enclosingDeclaration);
handleSymbolAccessibilityError(visibilityResult);
writeEntityName(entityName);
}
function emitExpressionWithTypeArguments(node) {
if (ts.isSupportedExpressionWithTypeArguments(node)) {
- ts.Debug.assert(node.expression.kind === 69 /* Identifier */ || node.expression.kind === 168 /* PropertyAccessExpression */);
+ ts.Debug.assert(node.expression.kind === 69 /* Identifier */ || node.expression.kind === 169 /* PropertyAccessExpression */);
emitEntityName(node.expression);
if (node.typeArguments) {
write("<");
@@ -29934,9 +30353,9 @@ var ts;
var count = 0;
while (true) {
count++;
- var name_18 = baseName + "_" + count;
- if (!ts.hasProperty(currentIdentifiers, name_18)) {
- return name_18;
+ var name_21 = baseName + "_" + count;
+ if (!ts.hasProperty(currentIdentifiers, name_21)) {
+ return name_21;
}
}
}
@@ -29980,10 +30399,10 @@ var ts;
if (isModuleElementVisible) {
writeModuleElement(node);
}
- else if (node.kind === 223 /* ImportEqualsDeclaration */ ||
- (node.parent.kind === 250 /* SourceFile */ && isCurrentFileExternalModule)) {
+ else if (node.kind === 224 /* ImportEqualsDeclaration */ ||
+ (node.parent.kind === 251 /* SourceFile */ && isCurrentFileExternalModule)) {
var isVisible;
- if (asynchronousSubModuleDeclarationEmitInfo && node.parent.kind !== 250 /* SourceFile */) {
+ if (asynchronousSubModuleDeclarationEmitInfo && node.parent.kind !== 251 /* SourceFile */) {
// Import declaration of another module that is visited async so lets put it in right spot
asynchronousSubModuleDeclarationEmitInfo.push({
node: node,
@@ -29993,7 +30412,7 @@ var ts;
});
}
else {
- if (node.kind === 224 /* ImportDeclaration */) {
+ if (node.kind === 225 /* ImportDeclaration */) {
var importDeclaration = node;
if (importDeclaration.importClause) {
isVisible = (importDeclaration.importClause.name && resolver.isDeclarationVisible(importDeclaration.importClause)) ||
@@ -30011,23 +30430,23 @@ var ts;
}
function writeModuleElement(node) {
switch (node.kind) {
- case 215 /* FunctionDeclaration */:
+ case 216 /* FunctionDeclaration */:
return writeFunctionDeclaration(node);
- case 195 /* VariableStatement */:
+ case 196 /* VariableStatement */:
return writeVariableStatement(node);
- case 217 /* InterfaceDeclaration */:
+ case 218 /* InterfaceDeclaration */:
return writeInterfaceDeclaration(node);
- case 216 /* ClassDeclaration */:
+ case 217 /* ClassDeclaration */:
return writeClassDeclaration(node);
- case 218 /* TypeAliasDeclaration */:
+ case 219 /* TypeAliasDeclaration */:
return writeTypeAliasDeclaration(node);
- case 219 /* EnumDeclaration */:
+ case 220 /* EnumDeclaration */:
return writeEnumDeclaration(node);
- case 220 /* ModuleDeclaration */:
+ case 221 /* ModuleDeclaration */:
return writeModuleDeclaration(node);
- case 223 /* ImportEqualsDeclaration */:
+ case 224 /* ImportEqualsDeclaration */:
return writeImportEqualsDeclaration(node);
- case 224 /* ImportDeclaration */:
+ case 225 /* ImportDeclaration */:
return writeImportDeclaration(node);
default:
ts.Debug.fail("Unknown symbol kind");
@@ -30035,7 +30454,7 @@ var ts;
}
function emitModuleElementDeclarationFlags(node) {
// If the node is parented in the current source file we need to emit export declare or just export
- if (node.parent.kind === 250 /* SourceFile */) {
+ if (node.parent.kind === 251 /* SourceFile */) {
// If the node is exported
if (node.flags & 2 /* Export */) {
write("export ");
@@ -30043,7 +30462,7 @@ var ts;
if (node.flags & 512 /* Default */) {
write("default ");
}
- else if (node.kind !== 217 /* InterfaceDeclaration */ && !noDeclare) {
+ else if (node.kind !== 218 /* InterfaceDeclaration */ && !noDeclare) {
write("declare ");
}
}
@@ -30092,7 +30511,7 @@ var ts;
}
function isVisibleNamedBinding(namedBindings) {
if (namedBindings) {
- if (namedBindings.kind === 226 /* NamespaceImport */) {
+ if (namedBindings.kind === 227 /* NamespaceImport */) {
return resolver.isDeclarationVisible(namedBindings);
}
else {
@@ -30120,7 +30539,7 @@ var ts;
// If the default binding was emitted, write the separated
write(", ");
}
- if (node.importClause.namedBindings.kind === 226 /* NamespaceImport */) {
+ if (node.importClause.namedBindings.kind === 227 /* NamespaceImport */) {
write("* as ");
writeTextOfNode(currentText, node.importClause.namedBindings.name);
}
@@ -30137,11 +30556,19 @@ var ts;
writer.writeLine();
}
function emitExternalModuleSpecifier(parent) {
+ // emitExternalModuleSpecifier is usually called when we emit something in the.d.ts file that will make it an external module (i.e. import/export declarations).
+ // the only case when it is not true is when we call it to emit correct name for module augmentation - d.ts files with just module augmentations are not considered
+ // external modules since they are indistingushable from script files with ambient modules. To fix this in such d.ts files we'll emit top level 'export {}'
+ // so compiler will treat them as external modules.
+ resultHasExternalModuleIndicator = resultHasExternalModuleIndicator || parent.kind !== 221 /* ModuleDeclaration */;
var moduleSpecifier;
- if (parent.kind === 223 /* ImportEqualsDeclaration */) {
+ if (parent.kind === 224 /* ImportEqualsDeclaration */) {
var node = parent;
moduleSpecifier = ts.getExternalModuleImportEqualsDeclarationExpression(node);
}
+ else if (parent.kind === 221 /* ModuleDeclaration */) {
+ moduleSpecifier = parent.name;
+ }
else {
var node = parent;
moduleSpecifier = node.moduleSpecifier;
@@ -30192,14 +30619,24 @@ var ts;
function writeModuleDeclaration(node) {
emitJsDocComments(node);
emitModuleElementDeclarationFlags(node);
- if (node.flags & 65536 /* Namespace */) {
- write("namespace ");
+ if (ts.isGlobalScopeAugmentation(node)) {
+ write("global ");
}
else {
- write("module ");
+ if (node.flags & 65536 /* Namespace */) {
+ write("namespace ");
+ }
+ else {
+ write("module ");
+ }
+ if (ts.isExternalModuleAugmentation(node)) {
+ emitExternalModuleSpecifier(node);
+ }
+ else {
+ writeTextOfNode(currentText, node.name);
+ }
}
- writeTextOfNode(currentText, node.name);
- while (node.body.kind !== 221 /* ModuleBlock */) {
+ while (node.body.kind !== 222 /* ModuleBlock */) {
node = node.body;
write(".");
writeTextOfNode(currentText, node.name);
@@ -30264,7 +30701,7 @@ var ts;
writeLine();
}
function isPrivateMethodTypeParameter(node) {
- return node.parent.kind === 143 /* MethodDeclaration */ && (node.parent.flags & 16 /* Private */);
+ return node.parent.kind === 144 /* MethodDeclaration */ && (node.parent.flags & 16 /* Private */);
}
function emitTypeParameters(typeParameters) {
function emitTypeParameter(node) {
@@ -30275,15 +30712,15 @@ var ts;
// If there is constraint present and this is not a type parameter of the private method emit the constraint
if (node.constraint && !isPrivateMethodTypeParameter(node)) {
write(" extends ");
- if (node.parent.kind === 152 /* FunctionType */ ||
- node.parent.kind === 153 /* ConstructorType */ ||
- (node.parent.parent && node.parent.parent.kind === 155 /* TypeLiteral */)) {
- ts.Debug.assert(node.parent.kind === 143 /* MethodDeclaration */ ||
- node.parent.kind === 142 /* MethodSignature */ ||
- node.parent.kind === 152 /* FunctionType */ ||
- node.parent.kind === 153 /* ConstructorType */ ||
- node.parent.kind === 147 /* CallSignature */ ||
- node.parent.kind === 148 /* ConstructSignature */);
+ if (node.parent.kind === 153 /* FunctionType */ ||
+ node.parent.kind === 154 /* ConstructorType */ ||
+ (node.parent.parent && node.parent.parent.kind === 156 /* TypeLiteral */)) {
+ ts.Debug.assert(node.parent.kind === 144 /* MethodDeclaration */ ||
+ node.parent.kind === 143 /* MethodSignature */ ||
+ node.parent.kind === 153 /* FunctionType */ ||
+ node.parent.kind === 154 /* ConstructorType */ ||
+ node.parent.kind === 148 /* CallSignature */ ||
+ node.parent.kind === 149 /* ConstructSignature */);
emitType(node.constraint);
}
else {
@@ -30294,31 +30731,31 @@ var ts;
// Type parameter constraints are named by user so we should always be able to name it
var diagnosticMessage;
switch (node.parent.kind) {
- case 216 /* ClassDeclaration */:
+ case 217 /* ClassDeclaration */:
diagnosticMessage = ts.Diagnostics.Type_parameter_0_of_exported_class_has_or_is_using_private_name_1;
break;
- case 217 /* InterfaceDeclaration */:
+ case 218 /* InterfaceDeclaration */:
diagnosticMessage = ts.Diagnostics.Type_parameter_0_of_exported_interface_has_or_is_using_private_name_1;
break;
- case 148 /* ConstructSignature */:
+ case 149 /* ConstructSignature */:
diagnosticMessage = ts.Diagnostics.Type_parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_1;
break;
- case 147 /* CallSignature */:
+ case 148 /* CallSignature */:
diagnosticMessage = ts.Diagnostics.Type_parameter_0_of_call_signature_from_exported_interface_has_or_is_using_private_name_1;
break;
- case 143 /* MethodDeclaration */:
- case 142 /* MethodSignature */:
+ case 144 /* MethodDeclaration */:
+ case 143 /* MethodSignature */:
if (node.parent.flags & 64 /* Static */) {
diagnosticMessage = ts.Diagnostics.Type_parameter_0_of_public_static_method_from_exported_class_has_or_is_using_private_name_1;
}
- else if (node.parent.parent.kind === 216 /* ClassDeclaration */) {
+ else if (node.parent.parent.kind === 217 /* ClassDeclaration */) {
diagnosticMessage = ts.Diagnostics.Type_parameter_0_of_public_method_from_exported_class_has_or_is_using_private_name_1;
}
else {
diagnosticMessage = ts.Diagnostics.Type_parameter_0_of_method_from_exported_interface_has_or_is_using_private_name_1;
}
break;
- case 215 /* FunctionDeclaration */:
+ case 216 /* FunctionDeclaration */:
diagnosticMessage = ts.Diagnostics.Type_parameter_0_of_exported_function_has_or_is_using_private_name_1;
break;
default:
@@ -30352,7 +30789,7 @@ var ts;
function getHeritageClauseVisibilityError(symbolAccesibilityResult) {
var diagnosticMessage;
// Heritage clause is written by user so it can always be named
- if (node.parent.parent.kind === 216 /* ClassDeclaration */) {
+ if (node.parent.parent.kind === 217 /* ClassDeclaration */) {
// Class or Interface implemented/extended is inaccessible
diagnosticMessage = isImplementsList ?
ts.Diagnostics.Implements_clause_of_exported_class_0_has_or_is_using_private_name_1 :
@@ -30436,7 +30873,7 @@ var ts;
function emitVariableDeclaration(node) {
// If we are emitting property it isn't moduleElement and hence we already know it needs to be emitted
// so there is no check needed to see if declaration is visible
- if (node.kind !== 213 /* VariableDeclaration */ || resolver.isDeclarationVisible(node)) {
+ if (node.kind !== 214 /* VariableDeclaration */ || resolver.isDeclarationVisible(node)) {
if (ts.isBindingPattern(node.name)) {
emitBindingPattern(node.name);
}
@@ -30446,10 +30883,10 @@ var ts;
// what we want, namely the name expression enclosed in brackets.
writeTextOfNode(currentText, node.name);
// If optional property emit ?
- if ((node.kind === 141 /* PropertyDeclaration */ || node.kind === 140 /* PropertySignature */) && ts.hasQuestionToken(node)) {
+ if ((node.kind === 142 /* PropertyDeclaration */ || node.kind === 141 /* PropertySignature */) && ts.hasQuestionToken(node)) {
write("?");
}
- if ((node.kind === 141 /* PropertyDeclaration */ || node.kind === 140 /* PropertySignature */) && node.parent.kind === 155 /* TypeLiteral */) {
+ if ((node.kind === 142 /* PropertyDeclaration */ || node.kind === 141 /* PropertySignature */) && node.parent.kind === 156 /* TypeLiteral */) {
emitTypeOfVariableDeclarationFromTypeLiteral(node);
}
else if (!(node.flags & 16 /* Private */)) {
@@ -30458,14 +30895,14 @@ var ts;
}
}
function getVariableDeclarationTypeVisibilityDiagnosticMessage(symbolAccesibilityResult) {
- if (node.kind === 213 /* VariableDeclaration */) {
+ if (node.kind === 214 /* VariableDeclaration */) {
return symbolAccesibilityResult.errorModuleName ?
symbolAccesibilityResult.accessibility === 2 /* CannotBeNamed */ ?
ts.Diagnostics.Exported_variable_0_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named :
ts.Diagnostics.Exported_variable_0_has_or_is_using_name_1_from_private_module_2 :
ts.Diagnostics.Exported_variable_0_has_or_is_using_private_name_1;
}
- else if (node.kind === 141 /* PropertyDeclaration */ || node.kind === 140 /* PropertySignature */) {
+ else if (node.kind === 142 /* PropertyDeclaration */ || node.kind === 141 /* PropertySignature */) {
// TODO(jfreeman): Deal with computed properties in error reporting.
if (node.flags & 64 /* Static */) {
return symbolAccesibilityResult.errorModuleName ?
@@ -30474,7 +30911,7 @@ var ts;
ts.Diagnostics.Public_static_property_0_of_exported_class_has_or_is_using_name_1_from_private_module_2 :
ts.Diagnostics.Public_static_property_0_of_exported_class_has_or_is_using_private_name_1;
}
- else if (node.parent.kind === 216 /* ClassDeclaration */) {
+ else if (node.parent.kind === 217 /* ClassDeclaration */) {
return symbolAccesibilityResult.errorModuleName ?
symbolAccesibilityResult.accessibility === 2 /* CannotBeNamed */ ?
ts.Diagnostics.Public_property_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named :
@@ -30506,7 +30943,7 @@ var ts;
var elements = [];
for (var _i = 0, _a = bindingPattern.elements; _i < _a.length; _i++) {
var element = _a[_i];
- if (element.kind !== 189 /* OmittedExpression */) {
+ if (element.kind !== 190 /* OmittedExpression */) {
elements.push(element);
}
}
@@ -30576,7 +31013,7 @@ var ts;
var type = getTypeAnnotationFromAccessor(node);
if (!type) {
// couldn't get type for the first accessor, try the another one
- var anotherAccessor = node.kind === 145 /* GetAccessor */ ? accessors.setAccessor : accessors.getAccessor;
+ var anotherAccessor = node.kind === 146 /* GetAccessor */ ? accessors.setAccessor : accessors.getAccessor;
type = getTypeAnnotationFromAccessor(anotherAccessor);
if (type) {
accessorWithTypeAnnotation = anotherAccessor;
@@ -30589,7 +31026,7 @@ var ts;
}
function getTypeAnnotationFromAccessor(accessor) {
if (accessor) {
- return accessor.kind === 145 /* GetAccessor */
+ return accessor.kind === 146 /* GetAccessor */
? accessor.type // Getter - return type
: accessor.parameters.length > 0
? accessor.parameters[0].type // Setter parameter type
@@ -30598,7 +31035,7 @@ var ts;
}
function getAccessorDeclarationTypeVisibilityError(symbolAccesibilityResult) {
var diagnosticMessage;
- if (accessorWithTypeAnnotation.kind === 146 /* SetAccessor */) {
+ if (accessorWithTypeAnnotation.kind === 147 /* SetAccessor */) {
// Setters have to have type named and cannot infer it so, the type should always be named
if (accessorWithTypeAnnotation.parent.flags & 64 /* Static */) {
diagnosticMessage = symbolAccesibilityResult.errorModuleName ?
@@ -30648,17 +31085,17 @@ var ts;
// so no need to verify if the declaration is visible
if (!resolver.isImplementationOfOverload(node)) {
emitJsDocComments(node);
- if (node.kind === 215 /* FunctionDeclaration */) {
+ if (node.kind === 216 /* FunctionDeclaration */) {
emitModuleElementDeclarationFlags(node);
}
- else if (node.kind === 143 /* MethodDeclaration */) {
+ else if (node.kind === 144 /* MethodDeclaration */) {
emitClassMemberDeclarationFlags(node);
}
- if (node.kind === 215 /* FunctionDeclaration */) {
+ if (node.kind === 216 /* FunctionDeclaration */) {
write("function ");
writeTextOfNode(currentText, node.name);
}
- else if (node.kind === 144 /* Constructor */) {
+ else if (node.kind === 145 /* Constructor */) {
write("constructor");
}
else {
@@ -30678,11 +31115,11 @@ var ts;
var prevEnclosingDeclaration = enclosingDeclaration;
enclosingDeclaration = node;
// Construct signature or constructor type write new Signature
- if (node.kind === 148 /* ConstructSignature */ || node.kind === 153 /* ConstructorType */) {
+ if (node.kind === 149 /* ConstructSignature */ || node.kind === 154 /* ConstructorType */) {
write("new ");
}
emitTypeParameters(node.typeParameters);
- if (node.kind === 149 /* IndexSignature */) {
+ if (node.kind === 150 /* IndexSignature */) {
write("[");
}
else {
@@ -30690,22 +31127,22 @@ var ts;
}
// Parameters
emitCommaList(node.parameters, emitParameterDeclaration);
- if (node.kind === 149 /* IndexSignature */) {
+ if (node.kind === 150 /* IndexSignature */) {
write("]");
}
else {
write(")");
}
// If this is not a constructor and is not private, emit the return type
- var isFunctionTypeOrConstructorType = node.kind === 152 /* FunctionType */ || node.kind === 153 /* ConstructorType */;
- if (isFunctionTypeOrConstructorType || node.parent.kind === 155 /* TypeLiteral */) {
+ var isFunctionTypeOrConstructorType = node.kind === 153 /* FunctionType */ || node.kind === 154 /* ConstructorType */;
+ if (isFunctionTypeOrConstructorType || node.parent.kind === 156 /* TypeLiteral */) {
// Emit type literal signature return type only if specified
if (node.type) {
write(isFunctionTypeOrConstructorType ? " => " : ": ");
emitType(node.type);
}
}
- else if (node.kind !== 144 /* Constructor */ && !(node.flags & 16 /* Private */)) {
+ else if (node.kind !== 145 /* Constructor */ && !(node.flags & 16 /* Private */)) {
writeReturnTypeAtSignature(node, getReturnTypeVisibilityError);
}
enclosingDeclaration = prevEnclosingDeclaration;
@@ -30716,26 +31153,26 @@ var ts;
function getReturnTypeVisibilityError(symbolAccesibilityResult) {
var diagnosticMessage;
switch (node.kind) {
- case 148 /* ConstructSignature */:
+ case 149 /* ConstructSignature */:
// Interfaces cannot have return types that cannot be named
diagnosticMessage = symbolAccesibilityResult.errorModuleName ?
ts.Diagnostics.Return_type_of_constructor_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1 :
ts.Diagnostics.Return_type_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_0;
break;
- case 147 /* CallSignature */:
+ case 148 /* CallSignature */:
// Interfaces cannot have return types that cannot be named
diagnosticMessage = symbolAccesibilityResult.errorModuleName ?
ts.Diagnostics.Return_type_of_call_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1 :
ts.Diagnostics.Return_type_of_call_signature_from_exported_interface_has_or_is_using_private_name_0;
break;
- case 149 /* IndexSignature */:
+ case 150 /* IndexSignature */:
// Interfaces cannot have return types that cannot be named
diagnosticMessage = symbolAccesibilityResult.errorModuleName ?
ts.Diagnostics.Return_type_of_index_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1 :
ts.Diagnostics.Return_type_of_index_signature_from_exported_interface_has_or_is_using_private_name_0;
break;
- case 143 /* MethodDeclaration */:
- case 142 /* MethodSignature */:
+ case 144 /* MethodDeclaration */:
+ case 143 /* MethodSignature */:
if (node.flags & 64 /* Static */) {
diagnosticMessage = symbolAccesibilityResult.errorModuleName ?
symbolAccesibilityResult.accessibility === 2 /* CannotBeNamed */ ?
@@ -30743,7 +31180,7 @@ var ts;
ts.Diagnostics.Return_type_of_public_static_method_from_exported_class_has_or_is_using_name_0_from_private_module_1 :
ts.Diagnostics.Return_type_of_public_static_method_from_exported_class_has_or_is_using_private_name_0;
}
- else if (node.parent.kind === 216 /* ClassDeclaration */) {
+ else if (node.parent.kind === 217 /* ClassDeclaration */) {
diagnosticMessage = symbolAccesibilityResult.errorModuleName ?
symbolAccesibilityResult.accessibility === 2 /* CannotBeNamed */ ?
ts.Diagnostics.Return_type_of_public_method_from_exported_class_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named :
@@ -30757,7 +31194,7 @@ var ts;
ts.Diagnostics.Return_type_of_method_from_exported_interface_has_or_is_using_private_name_0;
}
break;
- case 215 /* FunctionDeclaration */:
+ case 216 /* FunctionDeclaration */:
diagnosticMessage = symbolAccesibilityResult.errorModuleName ?
symbolAccesibilityResult.accessibility === 2 /* CannotBeNamed */ ?
ts.Diagnostics.Return_type_of_exported_function_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named :
@@ -30792,9 +31229,9 @@ var ts;
write("?");
}
decreaseIndent();
- if (node.parent.kind === 152 /* FunctionType */ ||
- node.parent.kind === 153 /* ConstructorType */ ||
- node.parent.parent.kind === 155 /* TypeLiteral */) {
+ if (node.parent.kind === 153 /* FunctionType */ ||
+ node.parent.kind === 154 /* ConstructorType */ ||
+ node.parent.parent.kind === 156 /* TypeLiteral */) {
emitTypeOfVariableDeclarationFromTypeLiteral(node);
}
else if (!(node.parent.flags & 16 /* Private */)) {
@@ -30810,24 +31247,24 @@ var ts;
}
function getParameterDeclarationTypeVisibilityDiagnosticMessage(symbolAccesibilityResult) {
switch (node.parent.kind) {
- case 144 /* Constructor */:
+ case 145 /* Constructor */:
return symbolAccesibilityResult.errorModuleName ?
symbolAccesibilityResult.accessibility === 2 /* CannotBeNamed */ ?
ts.Diagnostics.Parameter_0_of_constructor_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named :
ts.Diagnostics.Parameter_0_of_constructor_from_exported_class_has_or_is_using_name_1_from_private_module_2 :
ts.Diagnostics.Parameter_0_of_constructor_from_exported_class_has_or_is_using_private_name_1;
- case 148 /* ConstructSignature */:
+ case 149 /* ConstructSignature */:
// Interfaces cannot have parameter types that cannot be named
return symbolAccesibilityResult.errorModuleName ?
ts.Diagnostics.Parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_name_1_from_private_module_2 :
ts.Diagnostics.Parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_1;
- case 147 /* CallSignature */:
+ case 148 /* CallSignature */:
// Interfaces cannot have parameter types that cannot be named
return symbolAccesibilityResult.errorModuleName ?
ts.Diagnostics.Parameter_0_of_call_signature_from_exported_interface_has_or_is_using_name_1_from_private_module_2 :
ts.Diagnostics.Parameter_0_of_call_signature_from_exported_interface_has_or_is_using_private_name_1;
- case 143 /* MethodDeclaration */:
- case 142 /* MethodSignature */:
+ case 144 /* MethodDeclaration */:
+ case 143 /* MethodSignature */:
if (node.parent.flags & 64 /* Static */) {
return symbolAccesibilityResult.errorModuleName ?
symbolAccesibilityResult.accessibility === 2 /* CannotBeNamed */ ?
@@ -30835,7 +31272,7 @@ var ts;
ts.Diagnostics.Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_name_1_from_private_module_2 :
ts.Diagnostics.Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_private_name_1;
}
- else if (node.parent.parent.kind === 216 /* ClassDeclaration */) {
+ else if (node.parent.parent.kind === 217 /* ClassDeclaration */) {
return symbolAccesibilityResult.errorModuleName ?
symbolAccesibilityResult.accessibility === 2 /* CannotBeNamed */ ?
ts.Diagnostics.Parameter_0_of_public_method_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named :
@@ -30848,7 +31285,7 @@ var ts;
ts.Diagnostics.Parameter_0_of_method_from_exported_interface_has_or_is_using_name_1_from_private_module_2 :
ts.Diagnostics.Parameter_0_of_method_from_exported_interface_has_or_is_using_private_name_1;
}
- case 215 /* FunctionDeclaration */:
+ case 216 /* FunctionDeclaration */:
return symbolAccesibilityResult.errorModuleName ?
symbolAccesibilityResult.accessibility === 2 /* CannotBeNamed */ ?
ts.Diagnostics.Parameter_0_of_exported_function_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named :
@@ -30860,12 +31297,12 @@ var ts;
}
function emitBindingPattern(bindingPattern) {
// We have to explicitly emit square bracket and bracket because these tokens are not store inside the node.
- if (bindingPattern.kind === 163 /* ObjectBindingPattern */) {
+ if (bindingPattern.kind === 164 /* ObjectBindingPattern */) {
write("{");
emitCommaList(bindingPattern.elements, emitBindingElement);
write("}");
}
- else if (bindingPattern.kind === 164 /* ArrayBindingPattern */) {
+ else if (bindingPattern.kind === 165 /* ArrayBindingPattern */) {
write("[");
var elements = bindingPattern.elements;
emitCommaList(elements, emitBindingElement);
@@ -30876,7 +31313,7 @@ var ts;
}
}
function emitBindingElement(bindingElement) {
- if (bindingElement.kind === 189 /* OmittedExpression */) {
+ if (bindingElement.kind === 190 /* OmittedExpression */) {
// If bindingElement is an omittedExpression (i.e. containing elision),
// we will emit blank space (although this may differ from users' original code,
// it allows emitSeparatedList to write separator appropriately)
@@ -30885,7 +31322,7 @@ var ts;
// emit : function foo([ , x, , ]) {}
write(" ");
}
- else if (bindingElement.kind === 165 /* BindingElement */) {
+ else if (bindingElement.kind === 166 /* BindingElement */) {
if (bindingElement.propertyName) {
// bindingElement has propertyName property in the following case:
// { y: [a,b,c] ...} -> bindingPattern will have a property called propertyName for "y"
@@ -30924,40 +31361,40 @@ var ts;
}
function emitNode(node) {
switch (node.kind) {
- case 215 /* FunctionDeclaration */:
- case 220 /* ModuleDeclaration */:
- case 223 /* ImportEqualsDeclaration */:
- case 217 /* InterfaceDeclaration */:
- case 216 /* ClassDeclaration */:
- case 218 /* TypeAliasDeclaration */:
- case 219 /* EnumDeclaration */:
+ case 216 /* FunctionDeclaration */:
+ case 221 /* ModuleDeclaration */:
+ case 224 /* ImportEqualsDeclaration */:
+ case 218 /* InterfaceDeclaration */:
+ case 217 /* ClassDeclaration */:
+ case 219 /* TypeAliasDeclaration */:
+ case 220 /* EnumDeclaration */:
return emitModuleElement(node, isModuleElementVisible(node));
- case 195 /* VariableStatement */:
+ case 196 /* VariableStatement */:
return emitModuleElement(node, isVariableStatementVisible(node));
- case 224 /* ImportDeclaration */:
+ case 225 /* ImportDeclaration */:
// Import declaration without import clause is visible, otherwise it is not visible
return emitModuleElement(node, /*isModuleElementVisible*/ !node.importClause);
- case 230 /* ExportDeclaration */:
+ case 231 /* ExportDeclaration */:
return emitExportDeclaration(node);
- case 144 /* Constructor */:
- case 143 /* MethodDeclaration */:
- case 142 /* MethodSignature */:
+ case 145 /* Constructor */:
+ case 144 /* MethodDeclaration */:
+ case 143 /* MethodSignature */:
return writeFunctionDeclaration(node);
- case 148 /* ConstructSignature */:
- case 147 /* CallSignature */:
- case 149 /* IndexSignature */:
+ case 149 /* ConstructSignature */:
+ case 148 /* CallSignature */:
+ case 150 /* IndexSignature */:
return emitSignatureDeclarationWithJsDocComments(node);
- case 145 /* GetAccessor */:
- case 146 /* SetAccessor */:
+ case 146 /* GetAccessor */:
+ case 147 /* SetAccessor */:
return emitAccessorDeclaration(node);
- case 141 /* PropertyDeclaration */:
- case 140 /* PropertySignature */:
+ case 142 /* PropertyDeclaration */:
+ case 141 /* PropertySignature */:
return emitPropertyDeclaration(node);
- case 249 /* EnumMember */:
+ case 250 /* EnumMember */:
return emitEnumMemberDeclaration(node);
- case 229 /* ExportAssignment */:
+ case 230 /* ExportAssignment */:
return emitExportAssignment(node);
- case 250 /* SourceFile */:
+ case 251 /* SourceFile */:
return emitSourceFile(node);
}
}
@@ -31317,7 +31754,7 @@ var ts;
var metadataHelper = "\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};";
// emit output for the __param helper function
var paramHelper = "\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};";
- var awaiterHelper = "\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, Promise, generator) {\n return new Promise(function (resolve, reject) {\n generator = generator.call(thisArg, _arguments);\n function cast(value) { return value instanceof Promise && value.constructor === Promise ? value : new Promise(function (resolve) { resolve(value); }); }\n function onfulfill(value) { try { step(\"next\", value); } catch (e) { reject(e); } }\n function onreject(value) { try { step(\"throw\", value); } catch (e) { reject(e); } }\n function step(verb, value) {\n var result = generator[verb](value);\n result.done ? resolve(result.value) : cast(result.value).then(onfulfill, onreject);\n }\n step(\"next\", void 0);\n });\n};";
+ var awaiterHelper = "\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n return new P(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator.throw(value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\n step((generator = generator.call(thisArg, _arguments)).next());\n });\n};";
var compilerOptions = host.getCompilerOptions();
var languageVersion = ts.getEmitScriptTarget(compilerOptions);
var modulekind = ts.getEmitModuleKind(compilerOptions);
@@ -31415,6 +31852,7 @@ var ts;
var isOwnFileEmit;
/** If removeComments is true, no leading-comments needed to be emitted **/
var emitLeadingCommentsOfPosition = compilerOptions.removeComments ? function (pos) { } : emitLeadingCommentsOfPositionWorker;
+ var setSourceMapWriterEmit = compilerOptions.sourceMap || compilerOptions.inlineSourceMap ? changeSourceMapEmit : function (writer) { };
var moduleEmitDelegates = (_a = {},
_a[5 /* ES6 */] = emitES6Module,
_a[2 /* AMD */] = emitAMDModule,
@@ -31499,10 +31937,10 @@ var ts;
// Note that names generated by makeTempVariableName and makeUniqueName will never conflict.
function makeTempVariableName(flags) {
if (flags && !(tempFlags & flags)) {
- var name_19 = flags === 268435456 /* _i */ ? "_i" : "_n";
- if (isUniqueName(name_19)) {
+ var name_22 = flags === 268435456 /* _i */ ? "_i" : "_n";
+ if (isUniqueName(name_22)) {
tempFlags |= flags;
- return name_19;
+ return name_22;
}
}
while (true) {
@@ -31510,9 +31948,9 @@ var ts;
tempFlags++;
// Skip over 'i' and 'n'
if (count !== 8 && count !== 13) {
- var name_20 = count < 26 ? "_" + String.fromCharCode(97 /* a */ + count) : "_" + (count - 26);
- if (isUniqueName(name_20)) {
- return name_20;
+ var name_23 = count < 26 ? "_" + String.fromCharCode(97 /* a */ + count) : "_" + (count - 26);
+ if (isUniqueName(name_23)) {
+ return name_23;
}
}
}
@@ -31556,17 +31994,17 @@ var ts;
switch (node.kind) {
case 69 /* Identifier */:
return makeUniqueName(node.text);
- case 220 /* ModuleDeclaration */:
- case 219 /* EnumDeclaration */:
+ case 221 /* ModuleDeclaration */:
+ case 220 /* EnumDeclaration */:
return generateNameForModuleOrEnum(node);
- case 224 /* ImportDeclaration */:
- case 230 /* ExportDeclaration */:
+ case 225 /* ImportDeclaration */:
+ case 231 /* ExportDeclaration */:
return generateNameForImportOrExportDeclaration(node);
- case 215 /* FunctionDeclaration */:
- case 216 /* ClassDeclaration */:
- case 229 /* ExportAssignment */:
+ case 216 /* FunctionDeclaration */:
+ case 217 /* ClassDeclaration */:
+ case 230 /* ExportAssignment */:
return generateNameForExportDefault();
- case 188 /* ClassExpression */:
+ case 189 /* ClassExpression */:
return generateNameForClassExpression();
}
}
@@ -31836,10 +32274,10 @@ var ts;
write("(");
emit(tempVariable);
// Now we emit the expressions
- if (node.template.kind === 185 /* TemplateExpression */) {
+ if (node.template.kind === 186 /* TemplateExpression */) {
ts.forEach(node.template.templateSpans, function (templateSpan) {
write(", ");
- var needsParens = templateSpan.expression.kind === 183 /* BinaryExpression */
+ var needsParens = templateSpan.expression.kind === 184 /* BinaryExpression */
&& templateSpan.expression.operatorToken.kind === 24 /* CommaToken */;
emitParenthesizedIf(templateSpan.expression, needsParens);
});
@@ -31874,7 +32312,7 @@ var ts;
// ("abc" + 1) << (2 + "")
// rather than
// "abc" + (1 << 2) + ""
- var needsParens = templateSpan.expression.kind !== 174 /* ParenthesizedExpression */
+ var needsParens = templateSpan.expression.kind !== 175 /* ParenthesizedExpression */
&& comparePrecedenceToBinaryPlus(templateSpan.expression) !== 1 /* GreaterThan */;
if (i > 0 || headEmitted) {
// If this is the first span and the head was not emitted, then this templateSpan's
@@ -31916,11 +32354,11 @@ var ts;
}
function templateNeedsParens(template, parent) {
switch (parent.kind) {
- case 170 /* CallExpression */:
- case 171 /* NewExpression */:
+ case 171 /* CallExpression */:
+ case 172 /* NewExpression */:
return parent.expression === template;
- case 172 /* TaggedTemplateExpression */:
- case 174 /* ParenthesizedExpression */:
+ case 173 /* TaggedTemplateExpression */:
+ case 175 /* ParenthesizedExpression */:
return false;
default:
return comparePrecedenceToBinaryPlus(parent) !== -1 /* LessThan */;
@@ -31941,7 +32379,7 @@ var ts;
// TODO (drosen): Note that we need to account for the upcoming 'yield' and
// spread ('...') unary operators that are anticipated for ES6.
switch (expression.kind) {
- case 183 /* BinaryExpression */:
+ case 184 /* BinaryExpression */:
switch (expression.operatorToken.kind) {
case 37 /* AsteriskToken */:
case 39 /* SlashToken */:
@@ -31953,8 +32391,8 @@ var ts;
default:
return -1 /* LessThan */;
}
- case 186 /* YieldExpression */:
- case 184 /* ConditionalExpression */:
+ case 187 /* YieldExpression */:
+ case 185 /* ConditionalExpression */:
return -1 /* LessThan */;
default:
return 1 /* GreaterThan */;
@@ -32021,38 +32459,38 @@ var ts;
// Either emit one big object literal (no spread attribs), or
// a call to React.__spread
var attrs = openingNode.attributes;
- if (ts.forEach(attrs, function (attr) { return attr.kind === 241 /* JsxSpreadAttribute */; })) {
+ if (ts.forEach(attrs, function (attr) { return attr.kind === 242 /* JsxSpreadAttribute */; })) {
emitExpressionIdentifier(syntheticReactRef);
write(".__spread(");
var haveOpenedObjectLiteral = false;
- for (var i_1 = 0; i_1 < attrs.length; i_1++) {
- if (attrs[i_1].kind === 241 /* JsxSpreadAttribute */) {
+ for (var i = 0; i < attrs.length; i++) {
+ if (attrs[i].kind === 242 /* JsxSpreadAttribute */) {
// If this is the first argument, we need to emit a {} as the first argument
- if (i_1 === 0) {
+ if (i === 0) {
write("{}, ");
}
if (haveOpenedObjectLiteral) {
write("}");
haveOpenedObjectLiteral = false;
}
- if (i_1 > 0) {
+ if (i > 0) {
write(", ");
}
- emit(attrs[i_1].expression);
+ emit(attrs[i].expression);
}
else {
- ts.Debug.assert(attrs[i_1].kind === 240 /* JsxAttribute */);
+ ts.Debug.assert(attrs[i].kind === 241 /* JsxAttribute */);
if (haveOpenedObjectLiteral) {
write(", ");
}
else {
haveOpenedObjectLiteral = true;
- if (i_1 > 0) {
+ if (i > 0) {
write(", ");
}
write("{");
}
- emitJsxAttribute(attrs[i_1]);
+ emitJsxAttribute(attrs[i]);
}
}
if (haveOpenedObjectLiteral)
@@ -32062,7 +32500,7 @@ var ts;
else {
// One object literal with all the attributes in them
write("{");
- for (var i = 0; i < attrs.length; i++) {
+ for (var i = 0, n = attrs.length; i < n; i++) {
if (i > 0) {
write(", ");
}
@@ -32075,11 +32513,11 @@ var ts;
if (children) {
for (var i = 0; i < children.length; i++) {
// Don't emit empty expressions
- if (children[i].kind === 242 /* JsxExpression */ && !(children[i].expression)) {
+ if (children[i].kind === 243 /* JsxExpression */ && !(children[i].expression)) {
continue;
}
// Don't emit empty strings
- if (children[i].kind === 238 /* JsxText */) {
+ if (children[i].kind === 239 /* JsxText */) {
var text = getTextToEmit(children[i]);
if (text !== undefined) {
write(", \"");
@@ -32097,11 +32535,11 @@ var ts;
write(")"); // closes "React.createElement("
emitTrailingComments(openingNode);
}
- if (node.kind === 235 /* JsxElement */) {
+ if (node.kind === 236 /* JsxElement */) {
emitJsxElement(node.openingElement, node.children);
}
else {
- ts.Debug.assert(node.kind === 236 /* JsxSelfClosingElement */);
+ ts.Debug.assert(node.kind === 237 /* JsxSelfClosingElement */);
emitJsxElement(node);
}
}
@@ -32123,11 +32561,11 @@ var ts;
if (i > 0) {
write(" ");
}
- if (attribs[i].kind === 241 /* JsxSpreadAttribute */) {
+ if (attribs[i].kind === 242 /* JsxSpreadAttribute */) {
emitJsxSpreadAttribute(attribs[i]);
}
else {
- ts.Debug.assert(attribs[i].kind === 240 /* JsxAttribute */);
+ ts.Debug.assert(attribs[i].kind === 241 /* JsxAttribute */);
emitJsxAttribute(attribs[i]);
}
}
@@ -32135,11 +32573,11 @@ var ts;
function emitJsxOpeningOrSelfClosingElement(node) {
write("<");
emit(node.tagName);
- if (node.attributes.length > 0 || (node.kind === 236 /* JsxSelfClosingElement */)) {
+ if (node.attributes.length > 0 || (node.kind === 237 /* JsxSelfClosingElement */)) {
write(" ");
}
emitAttributes(node.attributes);
- if (node.kind === 236 /* JsxSelfClosingElement */) {
+ if (node.kind === 237 /* JsxSelfClosingElement */) {
write("/>");
}
else {
@@ -32158,11 +32596,11 @@ var ts;
}
emitJsxClosingElement(node.closingElement);
}
- if (node.kind === 235 /* JsxElement */) {
+ if (node.kind === 236 /* JsxElement */) {
emitJsxElement(node);
}
else {
- ts.Debug.assert(node.kind === 236 /* JsxSelfClosingElement */);
+ ts.Debug.assert(node.kind === 237 /* JsxSelfClosingElement */);
emitJsxOpeningOrSelfClosingElement(node);
}
}
@@ -32170,11 +32608,11 @@ var ts;
// In a sense, it does not actually emit identifiers as much as it declares a name for a specific property.
// For example, this is utilized when feeding in a result to Object.defineProperty.
function emitExpressionForPropertyName(node) {
- ts.Debug.assert(node.kind !== 165 /* BindingElement */);
+ ts.Debug.assert(node.kind !== 166 /* BindingElement */);
if (node.kind === 9 /* StringLiteral */) {
emitLiteral(node);
}
- else if (node.kind === 136 /* ComputedPropertyName */) {
+ else if (node.kind === 137 /* ComputedPropertyName */) {
// if this is a decorated computed property, we will need to capture the result
// of the property expression so that we can apply decorators later. This is to ensure
// we don't introduce unintended side effects:
@@ -32218,62 +32656,62 @@ var ts;
function isExpressionIdentifier(node) {
var parent = node.parent;
switch (parent.kind) {
- case 166 /* ArrayLiteralExpression */:
- case 191 /* AsExpression */:
- case 183 /* BinaryExpression */:
- case 170 /* CallExpression */:
- case 243 /* CaseClause */:
- case 136 /* ComputedPropertyName */:
- case 184 /* ConditionalExpression */:
- case 139 /* Decorator */:
- case 177 /* DeleteExpression */:
- case 199 /* DoStatement */:
- case 169 /* ElementAccessExpression */:
- case 229 /* ExportAssignment */:
- case 197 /* ExpressionStatement */:
- case 190 /* ExpressionWithTypeArguments */:
- case 201 /* ForStatement */:
- case 202 /* ForInStatement */:
- case 203 /* ForOfStatement */:
- case 198 /* IfStatement */:
- case 239 /* JsxClosingElement */:
- case 236 /* JsxSelfClosingElement */:
- case 237 /* JsxOpeningElement */:
- case 241 /* JsxSpreadAttribute */:
- case 242 /* JsxExpression */:
- case 171 /* NewExpression */:
- case 174 /* ParenthesizedExpression */:
- case 182 /* PostfixUnaryExpression */:
- case 181 /* PrefixUnaryExpression */:
- case 206 /* ReturnStatement */:
- case 248 /* ShorthandPropertyAssignment */:
- case 187 /* SpreadElementExpression */:
- case 208 /* SwitchStatement */:
- case 172 /* TaggedTemplateExpression */:
- case 192 /* TemplateSpan */:
- case 210 /* ThrowStatement */:
- case 173 /* TypeAssertionExpression */:
- case 178 /* TypeOfExpression */:
- case 179 /* VoidExpression */:
- case 200 /* WhileStatement */:
- case 207 /* WithStatement */:
- case 186 /* YieldExpression */:
+ case 167 /* ArrayLiteralExpression */:
+ case 192 /* AsExpression */:
+ case 184 /* BinaryExpression */:
+ case 171 /* CallExpression */:
+ case 244 /* CaseClause */:
+ case 137 /* ComputedPropertyName */:
+ case 185 /* ConditionalExpression */:
+ case 140 /* Decorator */:
+ case 178 /* DeleteExpression */:
+ case 200 /* DoStatement */:
+ case 170 /* ElementAccessExpression */:
+ case 230 /* ExportAssignment */:
+ case 198 /* ExpressionStatement */:
+ case 191 /* ExpressionWithTypeArguments */:
+ case 202 /* ForStatement */:
+ case 203 /* ForInStatement */:
+ case 204 /* ForOfStatement */:
+ case 199 /* IfStatement */:
+ case 240 /* JsxClosingElement */:
+ case 237 /* JsxSelfClosingElement */:
+ case 238 /* JsxOpeningElement */:
+ case 242 /* JsxSpreadAttribute */:
+ case 243 /* JsxExpression */:
+ case 172 /* NewExpression */:
+ case 175 /* ParenthesizedExpression */:
+ case 183 /* PostfixUnaryExpression */:
+ case 182 /* PrefixUnaryExpression */:
+ case 207 /* ReturnStatement */:
+ case 249 /* ShorthandPropertyAssignment */:
+ case 188 /* SpreadElementExpression */:
+ case 209 /* SwitchStatement */:
+ case 173 /* TaggedTemplateExpression */:
+ case 193 /* TemplateSpan */:
+ case 211 /* ThrowStatement */:
+ case 174 /* TypeAssertionExpression */:
+ case 179 /* TypeOfExpression */:
+ case 180 /* VoidExpression */:
+ case 201 /* WhileStatement */:
+ case 208 /* WithStatement */:
+ case 187 /* YieldExpression */:
return true;
- case 165 /* BindingElement */:
- case 249 /* EnumMember */:
- case 138 /* Parameter */:
- case 247 /* PropertyAssignment */:
- case 141 /* PropertyDeclaration */:
- case 213 /* VariableDeclaration */:
+ case 166 /* BindingElement */:
+ case 250 /* EnumMember */:
+ case 139 /* Parameter */:
+ case 248 /* PropertyAssignment */:
+ case 142 /* PropertyDeclaration */:
+ case 214 /* VariableDeclaration */:
return parent.initializer === node;
- case 168 /* PropertyAccessExpression */:
+ case 169 /* PropertyAccessExpression */:
return parent.expression === node;
- case 176 /* ArrowFunction */:
- case 175 /* FunctionExpression */:
+ case 177 /* ArrowFunction */:
+ case 176 /* FunctionExpression */:
return parent.body === node;
- case 223 /* ImportEqualsDeclaration */:
+ case 224 /* ImportEqualsDeclaration */:
return parent.moduleReference === node;
- case 135 /* QualifiedName */:
+ case 136 /* QualifiedName */:
return parent.left === node;
}
return false;
@@ -32285,7 +32723,7 @@ var ts;
}
var container = resolver.getReferencedExportContainer(node);
if (container) {
- if (container.kind === 250 /* SourceFile */) {
+ if (container.kind === 251 /* SourceFile */) {
// Identifier references module export
if (modulekind !== 5 /* ES6 */ && modulekind !== 4 /* System */) {
write("exports.");
@@ -32301,17 +32739,17 @@ var ts;
if (modulekind !== 5 /* ES6 */) {
var declaration = resolver.getReferencedImportDeclaration(node);
if (declaration) {
- if (declaration.kind === 225 /* ImportClause */) {
+ if (declaration.kind === 226 /* ImportClause */) {
// Identifier references default import
write(getGeneratedNameForNode(declaration.parent));
write(languageVersion === 0 /* ES3 */ ? "[\"default\"]" : ".default");
return;
}
- else if (declaration.kind === 228 /* ImportSpecifier */) {
+ else if (declaration.kind === 229 /* ImportSpecifier */) {
// Identifier references named import
write(getGeneratedNameForNode(declaration.parent.parent.parent));
- var name_21 = declaration.propertyName || declaration.name;
- var identifier = ts.getTextOfNodeFromSourceText(currentText, name_21);
+ var name_24 = declaration.propertyName || declaration.name;
+ var identifier = ts.getTextOfNodeFromSourceText(currentText, name_24);
if (languageVersion === 0 /* ES3 */ && identifier === "default") {
write("[\"default\"]");
}
@@ -32340,13 +32778,13 @@ var ts;
}
function isNameOfNestedRedeclaration(node) {
if (languageVersion < 2 /* ES6 */) {
- var parent_6 = node.parent;
- switch (parent_6.kind) {
- case 165 /* BindingElement */:
- case 216 /* ClassDeclaration */:
- case 219 /* EnumDeclaration */:
- case 213 /* VariableDeclaration */:
- return parent_6.name === node && resolver.isNestedRedeclaration(parent_6);
+ var parent_7 = node.parent;
+ switch (parent_7.kind) {
+ case 166 /* BindingElement */:
+ case 217 /* ClassDeclaration */:
+ case 220 /* EnumDeclaration */:
+ case 214 /* VariableDeclaration */:
+ return parent_7.name === node && resolver.isNestedRedeclaration(parent_7);
}
}
return false;
@@ -32355,8 +32793,8 @@ var ts;
if (convertedLoopState) {
if (node.text == "arguments" && resolver.isArgumentsLocalBinding(node)) {
// in converted loop body arguments cannot be used directly.
- var name_22 = convertedLoopState.argumentsName || (convertedLoopState.argumentsName = makeUniqueName("arguments"));
- write(name_22);
+ var name_25 = convertedLoopState.argumentsName || (convertedLoopState.argumentsName = makeUniqueName("arguments"));
+ write(name_25);
return;
}
}
@@ -32456,10 +32894,10 @@ var ts;
}
}
function needsParenthesisForAwaitExpressionAsYield(node) {
- if (node.parent.kind === 183 /* BinaryExpression */ && !ts.isAssignmentOperator(node.parent.operatorToken.kind)) {
+ if (node.parent.kind === 184 /* BinaryExpression */ && !ts.isAssignmentOperator(node.parent.operatorToken.kind)) {
return true;
}
- else if (node.parent.kind === 184 /* ConditionalExpression */ && node.parent.condition === node) {
+ else if (node.parent.kind === 185 /* ConditionalExpression */ && node.parent.condition === node) {
return true;
}
return false;
@@ -32467,11 +32905,11 @@ var ts;
function needsParenthesisForPropertyAccessOrInvocation(node) {
switch (node.kind) {
case 69 /* Identifier */:
- case 166 /* ArrayLiteralExpression */:
- case 168 /* PropertyAccessExpression */:
- case 169 /* ElementAccessExpression */:
- case 170 /* CallExpression */:
- case 174 /* ParenthesizedExpression */:
+ case 167 /* ArrayLiteralExpression */:
+ case 169 /* PropertyAccessExpression */:
+ case 170 /* ElementAccessExpression */:
+ case 171 /* CallExpression */:
+ case 175 /* ParenthesizedExpression */:
// This list is not exhaustive and only includes those cases that are relevant
// to the check in emitArrayLiteral. More cases can be added as needed.
return false;
@@ -32491,17 +32929,17 @@ var ts;
write(", ");
}
var e = elements[pos];
- if (e.kind === 187 /* SpreadElementExpression */) {
+ if (e.kind === 188 /* SpreadElementExpression */) {
e = e.expression;
emitParenthesizedIf(e, /*parenthesized*/ group === 0 && needsParenthesisForPropertyAccessOrInvocation(e));
pos++;
- if (pos === length && group === 0 && needsUniqueCopy && e.kind !== 166 /* ArrayLiteralExpression */) {
+ if (pos === length && group === 0 && needsUniqueCopy && e.kind !== 167 /* ArrayLiteralExpression */) {
write(".slice()");
}
}
else {
var i = pos;
- while (i < length && elements[i].kind !== 187 /* SpreadElementExpression */) {
+ while (i < length && elements[i].kind !== 188 /* SpreadElementExpression */) {
i++;
}
write("[");
@@ -32524,7 +32962,7 @@ var ts;
}
}
function isSpreadElementExpression(node) {
- return node.kind === 187 /* SpreadElementExpression */;
+ return node.kind === 188 /* SpreadElementExpression */;
}
function emitArrayLiteral(node) {
var elements = node.elements;
@@ -32594,7 +33032,7 @@ var ts;
writeComma();
var property = properties[i];
emitStart(property);
- if (property.kind === 145 /* GetAccessor */ || property.kind === 146 /* SetAccessor */) {
+ if (property.kind === 146 /* GetAccessor */ || property.kind === 147 /* SetAccessor */) {
// TODO (drosen): Reconcile with 'emitMemberFunctions'.
var accessors = ts.getAllAccessorDeclarations(node.properties, property);
if (property !== accessors.firstAccessor) {
@@ -32646,13 +33084,13 @@ var ts;
emitMemberAccessForPropertyName(property.name);
emitEnd(property.name);
write(" = ");
- if (property.kind === 247 /* PropertyAssignment */) {
+ if (property.kind === 248 /* PropertyAssignment */) {
emit(property.initializer);
}
- else if (property.kind === 248 /* ShorthandPropertyAssignment */) {
+ else if (property.kind === 249 /* ShorthandPropertyAssignment */) {
emitExpressionIdentifier(property.name);
}
- else if (property.kind === 143 /* MethodDeclaration */) {
+ else if (property.kind === 144 /* MethodDeclaration */) {
emitFunctionDeclaration(property);
}
else {
@@ -32686,7 +33124,7 @@ var ts;
// Everything until that point can be emitted as part of the initial object literal.
var numInitialNonComputedProperties = numProperties;
for (var i = 0, n = properties.length; i < n; i++) {
- if (properties[i].name.kind === 136 /* ComputedPropertyName */) {
+ if (properties[i].name.kind === 137 /* ComputedPropertyName */) {
numInitialNonComputedProperties = i;
break;
}
@@ -32702,21 +33140,21 @@ var ts;
emitObjectLiteralBody(node, properties.length);
}
function createBinaryExpression(left, operator, right, startsOnNewLine) {
- var result = ts.createSynthesizedNode(183 /* BinaryExpression */, startsOnNewLine);
+ var result = ts.createSynthesizedNode(184 /* BinaryExpression */, startsOnNewLine);
result.operatorToken = ts.createSynthesizedNode(operator);
result.left = left;
result.right = right;
return result;
}
function createPropertyAccessExpression(expression, name) {
- var result = ts.createSynthesizedNode(168 /* PropertyAccessExpression */);
+ var result = ts.createSynthesizedNode(169 /* PropertyAccessExpression */);
result.expression = parenthesizeForAccess(expression);
result.dotToken = ts.createSynthesizedNode(21 /* DotToken */);
result.name = name;
return result;
}
function createElementAccessExpression(expression, argumentExpression) {
- var result = ts.createSynthesizedNode(169 /* ElementAccessExpression */);
+ var result = ts.createSynthesizedNode(170 /* ElementAccessExpression */);
result.expression = parenthesizeForAccess(expression);
result.argumentExpression = argumentExpression;
return result;
@@ -32724,7 +33162,7 @@ var ts;
function parenthesizeForAccess(expr) {
// When diagnosing whether the expression needs parentheses, the decision should be based
// on the innermost expression in a chain of nested type assertions.
- while (expr.kind === 173 /* TypeAssertionExpression */ || expr.kind === 191 /* AsExpression */) {
+ while (expr.kind === 174 /* TypeAssertionExpression */ || expr.kind === 192 /* AsExpression */) {
expr = expr.expression;
}
// isLeftHandSideExpression is almost the correct criterion for when it is not necessary
@@ -32736,11 +33174,11 @@ var ts;
// 1.x -> not the same as (1).x
//
if (ts.isLeftHandSideExpression(expr) &&
- expr.kind !== 171 /* NewExpression */ &&
+ expr.kind !== 172 /* NewExpression */ &&
expr.kind !== 8 /* NumericLiteral */) {
return expr;
}
- var node = ts.createSynthesizedNode(174 /* ParenthesizedExpression */);
+ var node = ts.createSynthesizedNode(175 /* ParenthesizedExpression */);
node.expression = expr;
return node;
}
@@ -32775,7 +33213,7 @@ var ts;
// Return true if identifier resolves to an exported member of a namespace
function isNamespaceExportReference(node) {
var container = resolver.getReferencedExportContainer(node);
- return container && container.kind !== 250 /* SourceFile */;
+ return container && container.kind !== 251 /* SourceFile */;
}
function emitShorthandPropertyAssignment(node) {
// The name property of a short-hand property assignment is considered an expression position, so here
@@ -32805,7 +33243,7 @@ var ts;
if (constantValue !== undefined) {
write(constantValue.toString());
if (!compilerOptions.removeComments) {
- var propertyName = node.kind === 168 /* PropertyAccessExpression */ ? ts.declarationNameToString(node.name) : ts.getTextOfNode(node.argumentExpression);
+ var propertyName = node.kind === 169 /* PropertyAccessExpression */ ? ts.declarationNameToString(node.name) : ts.getTextOfNode(node.argumentExpression);
write(" /* " + propertyName + " */");
}
return true;
@@ -32816,7 +33254,7 @@ var ts;
if (compilerOptions.isolatedModules) {
return undefined;
}
- return node.kind === 168 /* PropertyAccessExpression */ || node.kind === 169 /* ElementAccessExpression */
+ return node.kind === 169 /* PropertyAccessExpression */ || node.kind === 170 /* ElementAccessExpression */
? resolver.getConstantValue(node)
: undefined;
}
@@ -32905,7 +33343,7 @@ var ts;
}
emitExpressionIdentifier(node);
break;
- case 135 /* QualifiedName */:
+ case 136 /* QualifiedName */:
emitQualifiedNameAsExpression(node, useFallback);
break;
default:
@@ -32923,10 +33361,10 @@ var ts;
write("]");
}
function hasSpreadElement(elements) {
- return ts.forEach(elements, function (e) { return e.kind === 187 /* SpreadElementExpression */; });
+ return ts.forEach(elements, function (e) { return e.kind === 188 /* SpreadElementExpression */; });
}
function skipParentheses(node) {
- while (node.kind === 174 /* ParenthesizedExpression */ || node.kind === 173 /* TypeAssertionExpression */ || node.kind === 191 /* AsExpression */) {
+ while (node.kind === 175 /* ParenthesizedExpression */ || node.kind === 174 /* TypeAssertionExpression */ || node.kind === 192 /* AsExpression */) {
node = node.expression;
}
return node;
@@ -32947,13 +33385,13 @@ var ts;
function emitCallWithSpread(node) {
var target;
var expr = skipParentheses(node.expression);
- if (expr.kind === 168 /* PropertyAccessExpression */) {
+ if (expr.kind === 169 /* PropertyAccessExpression */) {
// Target will be emitted as "this" argument
target = emitCallTarget(expr.expression);
write(".");
emit(expr.name);
}
- else if (expr.kind === 169 /* ElementAccessExpression */) {
+ else if (expr.kind === 170 /* ElementAccessExpression */) {
// Target will be emitted as "this" argument
target = emitCallTarget(expr.expression);
write("[");
@@ -32998,7 +33436,7 @@ var ts;
}
else {
emit(node.expression);
- superCall = node.expression.kind === 168 /* PropertyAccessExpression */ && node.expression.expression.kind === 95 /* SuperKeyword */;
+ superCall = node.expression.kind === 169 /* PropertyAccessExpression */ && node.expression.expression.kind === 95 /* SuperKeyword */;
}
if (superCall && languageVersion < 2 /* ES6 */) {
write(".call(");
@@ -33067,12 +33505,12 @@ var ts;
// If the node is synthesized, it means the emitter put the parentheses there,
// not the user. If we didn't want them, the emitter would not have put them
// there.
- if (!ts.nodeIsSynthesized(node) && node.parent.kind !== 176 /* ArrowFunction */) {
- if (node.expression.kind === 173 /* TypeAssertionExpression */ || node.expression.kind === 191 /* AsExpression */) {
+ if (!ts.nodeIsSynthesized(node) && node.parent.kind !== 177 /* ArrowFunction */) {
+ if (node.expression.kind === 174 /* TypeAssertionExpression */ || node.expression.kind === 192 /* AsExpression */) {
var operand = node.expression.expression;
// Make sure we consider all nested cast expressions, e.g.:
// (-A).x;
- while (operand.kind === 173 /* TypeAssertionExpression */ || operand.kind === 191 /* AsExpression */) {
+ while (operand.kind === 174 /* TypeAssertionExpression */ || operand.kind === 192 /* AsExpression */) {
operand = operand.expression;
}
// We have an expression of the form: (