/*--------------------------------------------------------------------------------------------- * Copyright (c) Microsoft Corporation. All rights reserved. * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ // Defined a subset of ES6 built ins that run in IE11 // CHECK WITH http://kangax.github.io/compat-table/es6/#ie11 interface Map { clear(): void; delete(key: K): boolean; forEach(callbackfn: (value: V, index: K, map: Map) => void, thisArg?: any): void; get(key: K): V | undefined; has(key: K): boolean; set(key: K, value?: V): Map; readonly size: number; // not supported on IE11: // entries(): IterableIterator<[K, V]>; // keys(): IterableIterator; // values(): IterableIterator; // [Symbol.iterator]():IterableIterator<[K,V]>; // [Symbol.toStringTag]: string; } interface MapConstructor { new (): Map; // not supported on IE11: // new (iterable: Iterable<[K, V]>): Map; } declare var Map: MapConstructor; interface Set { add(value: T): Set; clear(): void; delete(value: T): boolean; forEach(callbackfn: (value: T, index: T, set: Set) => void, thisArg?: any): void; has(value: T): boolean; readonly size: number; // not supported on IE11: // entries(): IterableIterator<[T, T]>; // keys(): IterableIterator; // values(): IterableIterator; // [Symbol.iterator]():IterableIterator; // [Symbol.toStringTag]: string; } interface SetConstructor { new (): Set; // not supported on IE11: // new (iterable: Iterable): Set; } declare var Set: SetConstructor; interface WeakMap { delete(key: K): boolean; get(key: K): V | undefined; has(key: K): boolean; // IE11 doesn't return this // set(key: K, value?: V): this; set(key: K, value?: V): undefined; } interface WeakMapConstructor { new(): WeakMap; new (): WeakMap; // new (entries?: [K, V][]): WeakMap; readonly prototype: WeakMap; } declare var WeakMap: WeakMapConstructor;