mirror of
https://github.com/microsoft/TypeScript.git
synced 2025-11-18 17:21:48 +00:00
Merge branch 'master' into theyreNotTHATSpecial
Conflicts: src/compiler/checker.ts
This commit is contained in:
@@ -1,3 +1,45 @@
|
||||
# Instructions for Logging Issues
|
||||
|
||||
## 1. Read the FAQ
|
||||
|
||||
Please [read the FAQ](https://github.com/Microsoft/TypeScript/wiki/FAQ) before logging new issues, even if you think you have found a bug.
|
||||
|
||||
Issues that ask questions answered in the FAQ will be closed without elaboration.
|
||||
|
||||
## 2. Search for Duplicates
|
||||
|
||||
[Search the existing issues](https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93&q=is%3Aissue) before logging a new one.
|
||||
|
||||
## 3. Do you have a question?
|
||||
|
||||
The issue tracker is for **issues**, in other words, bugs and suggestions.
|
||||
If you have a *question*, please use [http://stackoverflow.com/questions/tagged/typescript](Stack Overflow), [https://gitter.im/Microsoft/TypeScript](Gitter), your favorite search engine, or other resources.
|
||||
Due to increased traffic, we can no longer answer questions in the issue tracker.
|
||||
|
||||
## 4. Did you find a bug?
|
||||
|
||||
When logging a bug, please be sure to include the following:
|
||||
* What version of TypeScript you're using (run `tsc --v`)
|
||||
* If at all possible, an *isolated* way to reproduce the behavior
|
||||
* The behavior you expect to see, and the actual behavior
|
||||
|
||||
You can try out the nightly build of TypeScript (`npm install typescript@next`) to see if the bug has already been fixed.
|
||||
|
||||
## 5. Do you have a suggestion?
|
||||
|
||||
We also accept suggestions in the issue tracker.
|
||||
Be sure to [check the FAQ](https://github.com/Microsoft/TypeScript/wiki/FAQ) and [search](https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93&q=is%3Aissue) first.
|
||||
|
||||
In general, things we find useful when reviewing suggestins are:
|
||||
* A description of the problem you're trying to solve
|
||||
* An overview of the suggested solution
|
||||
* Examples of how the suggestion would work in various places
|
||||
* Code examples showing e.g. "this would be an error, this wouldn't"
|
||||
* Code examples showing the generated JavaScript (if applicable)
|
||||
* If relevant, precedent in other languages can be useful for establishing context and expected behavior
|
||||
|
||||
# Instructions for Contributing Code
|
||||
|
||||
## Contributing bug fixes
|
||||
|
||||
TypeScript is currently accepting contributions in the form of bug fixes. A bug must have an issue tracking it in the issue tracker that has been approved ("Milestone == Community") by the TypeScript team. Your pull request should include a link to the bug that you are fixing. If you've submitted a PR for a bug, please post a comment in the bug to avoid duplication of effort.
|
||||
|
||||
+5
-4
@@ -163,13 +163,13 @@ var harnessSources = harnessCoreSources.concat([
|
||||
}));
|
||||
|
||||
var librarySourceMap = [
|
||||
{ target: "lib.core.d.ts", sources: ["core.d.ts"] },
|
||||
{ target: "lib.core.d.ts", sources: ["header.d.ts", "core.d.ts"] },
|
||||
{ target: "lib.dom.d.ts", sources: ["importcore.d.ts", "intl.d.ts", "dom.generated.d.ts"], },
|
||||
{ target: "lib.webworker.d.ts", sources: ["importcore.d.ts", "intl.d.ts", "webworker.generated.d.ts"], },
|
||||
{ target: "lib.scriptHost.d.ts", sources: ["importcore.d.ts", "scriptHost.d.ts"], },
|
||||
{ target: "lib.d.ts", sources: ["core.d.ts", "intl.d.ts", "dom.generated.d.ts", "webworker.importscripts.d.ts", "scriptHost.d.ts"], },
|
||||
{ target: "lib.core.es6.d.ts", sources: ["core.d.ts", "es6.d.ts"]},
|
||||
{ target: "lib.es6.d.ts", sources: ["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.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"] }
|
||||
];
|
||||
|
||||
var libraryTargets = librarySourceMap.map(function (f) {
|
||||
@@ -893,6 +893,7 @@ function getLinterOptions() {
|
||||
|
||||
function lintFileContents(options, path, contents) {
|
||||
var ll = new Linter(path, contents, options);
|
||||
console.log("Linting '" + path + "'.")
|
||||
return ll.lint();
|
||||
}
|
||||
|
||||
|
||||
Vendored
+31
-13
@@ -3847,7 +3847,7 @@ interface Symbol {
|
||||
/** Returns the primitive value of the specified object. */
|
||||
valueOf(): Object;
|
||||
|
||||
[Symbol.toStringTag]: string;
|
||||
[Symbol.toStringTag]: "Symbol";
|
||||
}
|
||||
|
||||
interface SymbolConstructor {
|
||||
@@ -4405,7 +4405,7 @@ interface IterableIterator<T> extends Iterator<T> {
|
||||
}
|
||||
|
||||
interface GeneratorFunction extends Function {
|
||||
|
||||
[Symbol.toStringTag]: "GeneratorFunction";
|
||||
}
|
||||
|
||||
interface GeneratorFunctionConstructor {
|
||||
@@ -4530,7 +4530,7 @@ interface Math {
|
||||
*/
|
||||
cbrt(x: number): number;
|
||||
|
||||
[Symbol.toStringTag]: string;
|
||||
[Symbol.toStringTag]: "Math";
|
||||
}
|
||||
|
||||
interface Date {
|
||||
@@ -4647,7 +4647,7 @@ interface Map<K, V> {
|
||||
size: number;
|
||||
values(): IterableIterator<V>;
|
||||
[Symbol.iterator]():IterableIterator<[K,V]>;
|
||||
[Symbol.toStringTag]: string;
|
||||
[Symbol.toStringTag]: "Map";
|
||||
}
|
||||
|
||||
interface MapConstructor {
|
||||
@@ -4664,7 +4664,7 @@ interface WeakMap<K, V> {
|
||||
get(key: K): V;
|
||||
has(key: K): boolean;
|
||||
set(key: K, value?: V): WeakMap<K, V>;
|
||||
[Symbol.toStringTag]: string;
|
||||
[Symbol.toStringTag]: "WeakMap";
|
||||
}
|
||||
|
||||
interface WeakMapConstructor {
|
||||
@@ -4686,7 +4686,7 @@ interface Set<T> {
|
||||
size: number;
|
||||
values(): IterableIterator<T>;
|
||||
[Symbol.iterator]():IterableIterator<T>;
|
||||
[Symbol.toStringTag]: string;
|
||||
[Symbol.toStringTag]: "Set";
|
||||
}
|
||||
|
||||
interface SetConstructor {
|
||||
@@ -4702,7 +4702,7 @@ interface WeakSet<T> {
|
||||
clear(): void;
|
||||
delete(value: T): boolean;
|
||||
has(value: T): boolean;
|
||||
[Symbol.toStringTag]: string;
|
||||
[Symbol.toStringTag]: "WeakSet";
|
||||
}
|
||||
|
||||
interface WeakSetConstructor {
|
||||
@@ -4714,7 +4714,7 @@ interface WeakSetConstructor {
|
||||
declare var WeakSet: WeakSetConstructor;
|
||||
|
||||
interface JSON {
|
||||
[Symbol.toStringTag]: string;
|
||||
[Symbol.toStringTag]: "JSON";
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -4724,11 +4724,11 @@ interface JSON {
|
||||
* buffer as needed.
|
||||
*/
|
||||
interface ArrayBuffer {
|
||||
[Symbol.toStringTag]: string;
|
||||
[Symbol.toStringTag]: "ArrayBuffer";
|
||||
}
|
||||
|
||||
interface DataView {
|
||||
[Symbol.toStringTag]: string;
|
||||
[Symbol.toStringTag]: "DataView";
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -4749,6 +4749,7 @@ interface Int8Array {
|
||||
*/
|
||||
values(): IterableIterator<number>;
|
||||
[Symbol.iterator](): IterableIterator<number>;
|
||||
[Symbol.toStringTag]: "Int8Array";
|
||||
}
|
||||
|
||||
interface Int8ArrayConstructor {
|
||||
@@ -4781,6 +4782,7 @@ interface Uint8Array {
|
||||
*/
|
||||
values(): IterableIterator<number>;
|
||||
[Symbol.iterator](): IterableIterator<number>;
|
||||
[Symbol.toStringTag]: "UInt8Array";
|
||||
}
|
||||
|
||||
interface Uint8ArrayConstructor {
|
||||
@@ -4816,6 +4818,7 @@ interface Uint8ClampedArray {
|
||||
values(): IterableIterator<number>;
|
||||
|
||||
[Symbol.iterator](): IterableIterator<number>;
|
||||
[Symbol.toStringTag]: "Uint8ClampedArray";
|
||||
}
|
||||
|
||||
interface Uint8ClampedArrayConstructor {
|
||||
@@ -4853,6 +4856,7 @@ interface Int16Array {
|
||||
|
||||
|
||||
[Symbol.iterator](): IterableIterator<number>;
|
||||
[Symbol.toStringTag]: "Int16Array";
|
||||
}
|
||||
|
||||
interface Int16ArrayConstructor {
|
||||
@@ -4885,6 +4889,7 @@ interface Uint16Array {
|
||||
*/
|
||||
values(): IterableIterator<number>;
|
||||
[Symbol.iterator](): IterableIterator<number>;
|
||||
[Symbol.toStringTag]: "Uint16Array";
|
||||
}
|
||||
|
||||
interface Uint16ArrayConstructor {
|
||||
@@ -4917,6 +4922,7 @@ interface Int32Array {
|
||||
*/
|
||||
values(): IterableIterator<number>;
|
||||
[Symbol.iterator](): IterableIterator<number>;
|
||||
[Symbol.toStringTag]: "Int32Array";
|
||||
}
|
||||
|
||||
interface Int32ArrayConstructor {
|
||||
@@ -4949,6 +4955,7 @@ interface Uint32Array {
|
||||
*/
|
||||
values(): IterableIterator<number>;
|
||||
[Symbol.iterator](): IterableIterator<number>;
|
||||
[Symbol.toStringTag]: "Uint32Array";
|
||||
}
|
||||
|
||||
interface Uint32ArrayConstructor {
|
||||
@@ -4981,6 +4988,7 @@ interface Float32Array {
|
||||
*/
|
||||
values(): IterableIterator<number>;
|
||||
[Symbol.iterator](): IterableIterator<number>;
|
||||
[Symbol.toStringTag]: "Float32Array";
|
||||
}
|
||||
|
||||
interface Float32ArrayConstructor {
|
||||
@@ -5013,6 +5021,7 @@ interface Float64Array {
|
||||
*/
|
||||
values(): IterableIterator<number>;
|
||||
[Symbol.iterator](): IterableIterator<number>;
|
||||
[Symbol.toStringTag]: "Float64Array";
|
||||
}
|
||||
|
||||
interface Float64ArrayConstructor {
|
||||
@@ -5064,7 +5073,7 @@ declare namespace Reflect {
|
||||
function isExtensible(target: any): boolean;
|
||||
function ownKeys(target: any): Array<PropertyKey>;
|
||||
function preventExtensions(target: any): boolean;
|
||||
function set(target: any, propertyKey: PropertyKey, value: any, receiver? :any): boolean;
|
||||
function set(target: any, propertyKey: PropertyKey, value: any, receiver?: any): boolean;
|
||||
function setPrototypeOf(target: any, proto: any): boolean;
|
||||
}
|
||||
|
||||
@@ -5089,7 +5098,7 @@ interface Promise<T> {
|
||||
catch(onrejected?: (reason: any) => T | PromiseLike<T>): Promise<T>;
|
||||
catch(onrejected?: (reason: any) => void): Promise<T>;
|
||||
|
||||
[Symbol.toStringTag]: string;
|
||||
[Symbol.toStringTag]: "Promise";
|
||||
}
|
||||
|
||||
interface PromiseConstructor {
|
||||
@@ -5112,7 +5121,16 @@ interface PromiseConstructor {
|
||||
* @param values An array of Promises.
|
||||
* @returns A new Promise.
|
||||
*/
|
||||
all<T>(values: Iterable<T | PromiseLike<T>>): Promise<T[]>;
|
||||
all<T1, T2>(values: [T1 | PromiseLike<T1>, T2 | PromiseLike<T2>]): Promise<[T1, T2]>;
|
||||
all<T1, T2, T3>(values: [T1 | PromiseLike<T1>, T2 | PromiseLike<T2>, T3 | PromiseLike<T3>]): Promise<[T1, T2, T3]>;
|
||||
all<T1, T2, T3, T4>(values: [T1 | PromiseLike<T1>, T2 | PromiseLike<T2>, T3 | PromiseLike<T3>, T4 | PromiseLike <T4>]): Promise<[T1, T2, T3, T4]>;
|
||||
all<T1, T2, T3, T4, T5>(values: [T1 | PromiseLike<T1>, T2 | PromiseLike<T2>, T3 | PromiseLike<T3>, T4 | PromiseLike <T4>, T5 | PromiseLike<T5>]): Promise<[T1, T2, T3, T4, T5]>;
|
||||
all<T1, T2, T3, T4, T5, T6>(values: [T1 | PromiseLike<T1>, T2 | PromiseLike<T2>, T3 | PromiseLike<T3>, T4 | PromiseLike <T4>, T5 | PromiseLike<T5>, T6 | PromiseLike<T6>]): Promise<[T1, T2, T3, T4, T5, T6]>;
|
||||
all<T1, T2, T3, T4, T5, T6, T7>(values: [T1 | PromiseLike<T1>, T2 | PromiseLike<T2>, T3 | PromiseLike<T3>, T4 | PromiseLike <T4>, T5 | PromiseLike<T5>, T6 | PromiseLike<T6>, T7 | PromiseLike<T7>]): Promise<[T1, T2, T3, T4, T5, T6, T7]>;
|
||||
all<T1, T2, T3, T4, T5, T6, T7, T8>(values: [T1 | PromiseLike<T1>, T2 | PromiseLike<T2>, T3 | PromiseLike<T3>, T4 | PromiseLike <T4>, T5 | PromiseLike<T5>, T6 | PromiseLike<T6>, T7 | PromiseLike<T7>, T8 | PromiseLike<T8>]): Promise<[T1, T2, T3, T4, T5, T6, T7, T8]>;
|
||||
all<T1, T2, T3, T4, T5, T6, T7, T8, T9>(values: [T1 | PromiseLike<T1>, T2 | PromiseLike<T2>, T3 | PromiseLike<T3>, T4 | PromiseLike <T4>, T5 | PromiseLike<T5>, T6 | PromiseLike<T6>, T7 | PromiseLike<T7>, T8 | PromiseLike<T8>, T9 | PromiseLike<T9>]): Promise<[T1, T2, T3, T4, T5, T6, T7, T8, T9]>;
|
||||
all<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10>(values: [T1 | PromiseLike<T1>, T2 | PromiseLike<T2>, T3 | PromiseLike<T3>, T4 | PromiseLike <T4>, T5 | PromiseLike<T5>, T6 | PromiseLike<T6>, T7 | PromiseLike<T7>, T8 | PromiseLike<T8>, T9 | PromiseLike<T9>, T10 | PromiseLike<T10>]): Promise<[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10]>;
|
||||
all<TAll>(values: Iterable<TAll | PromiseLike<TAll>>): Promise<TAll[]>;
|
||||
|
||||
/**
|
||||
* Creates a Promise that is resolved or rejected when any of the provided Promises are resolved
|
||||
|
||||
Vendored
+41
-15
@@ -4362,6 +4362,7 @@ interface AudioContext extends EventTarget {
|
||||
destination: AudioDestinationNode;
|
||||
listener: AudioListener;
|
||||
sampleRate: number;
|
||||
state: string;
|
||||
createAnalyser(): AnalyserNode;
|
||||
createBiquadFilter(): BiquadFilterNode;
|
||||
createBuffer(numberOfChannels: number, length: number, sampleRate: number): AudioBuffer;
|
||||
@@ -6099,6 +6100,7 @@ interface Document extends Node, GlobalEventHandlers, NodeSelector, DocumentEven
|
||||
* Gets or sets the version attribute specified in the declaration of an XML document.
|
||||
*/
|
||||
xmlVersion: string;
|
||||
currentScript: HTMLScriptElement;
|
||||
adoptNode(source: Node): Node;
|
||||
captureEvents(): void;
|
||||
clear(): void;
|
||||
@@ -6814,6 +6816,7 @@ interface Element extends Node, GlobalEventHandlers, ElementTraversal, NodeSelec
|
||||
tagName: string;
|
||||
id: string;
|
||||
className: string;
|
||||
innerHTML: string;
|
||||
getAttribute(name?: string): string;
|
||||
getAttributeNS(namespaceURI: string, localName: string): string;
|
||||
getAttributeNode(name: string): Attr;
|
||||
@@ -7009,7 +7012,7 @@ interface Element extends Node, GlobalEventHandlers, ElementTraversal, NodeSelec
|
||||
removeAttributeNode(oldAttr: Attr): Attr;
|
||||
requestFullscreen(): void;
|
||||
requestPointerLock(): void;
|
||||
setAttribute(name?: string, value?: string): void;
|
||||
setAttribute(name: string, value: string): void;
|
||||
setAttributeNS(namespaceURI: string, qualifiedName: string, value: string): void;
|
||||
setAttributeNode(newAttr: Attr): Attr;
|
||||
setAttributeNodeNS(newAttr: Attr): Attr;
|
||||
@@ -7018,6 +7021,7 @@ interface Element extends Node, GlobalEventHandlers, ElementTraversal, NodeSelec
|
||||
webkitRequestFullScreen(): void;
|
||||
webkitRequestFullscreen(): void;
|
||||
getElementsByClassName(classNames: string): NodeListOf<Element>;
|
||||
matches(selector: string): boolean;
|
||||
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;
|
||||
@@ -8002,7 +8006,6 @@ interface HTMLElement extends Element {
|
||||
title: string;
|
||||
blur(): void;
|
||||
click(): void;
|
||||
contains(child: HTMLElement): boolean;
|
||||
dragDrop(): boolean;
|
||||
focus(): void;
|
||||
insertAdjacentElement(position: string, insertedElement: Element): Element;
|
||||
@@ -9552,7 +9555,7 @@ interface HTMLMediaElement extends HTMLElement {
|
||||
* Gets or sets the current playback position, in seconds.
|
||||
*/
|
||||
preload: string;
|
||||
readyState: any;
|
||||
readyState: number;
|
||||
/**
|
||||
* Returns a TimeRanges object that represents the ranges of the current media resource that can be seeked.
|
||||
*/
|
||||
@@ -10176,7 +10179,7 @@ interface HTMLSelectElement extends HTMLElement {
|
||||
* Sets or retrieves the name of the object.
|
||||
*/
|
||||
name: string;
|
||||
options: HTMLSelectElement;
|
||||
options: HTMLCollection;
|
||||
/**
|
||||
* When present, marks an element that can't be submitted without a value.
|
||||
*/
|
||||
@@ -10209,6 +10212,7 @@ interface HTMLSelectElement extends HTMLElement {
|
||||
* Returns whether an element will successfully validate based on forms validation rules and constraints.
|
||||
*/
|
||||
willValidate: boolean;
|
||||
selectedOptions: HTMLCollection;
|
||||
/**
|
||||
* Adds an element to the areas, controlRange, or options collection.
|
||||
* @param element Variant of type Number that specifies the index position in the collection where the element is placed. If no value is given, the method places the element at the end of the collection.
|
||||
@@ -10462,19 +10466,19 @@ interface HTMLTableElement extends HTMLElement {
|
||||
/**
|
||||
* Creates an empty caption element in the table.
|
||||
*/
|
||||
createCaption(): HTMLElement;
|
||||
createCaption(): HTMLTableCaptionElement;
|
||||
/**
|
||||
* Creates an empty tBody element in the table.
|
||||
*/
|
||||
createTBody(): HTMLElement;
|
||||
createTBody(): HTMLTableSectionElement;
|
||||
/**
|
||||
* Creates an empty tFoot element in the table.
|
||||
*/
|
||||
createTFoot(): HTMLElement;
|
||||
createTFoot(): HTMLTableSectionElement;
|
||||
/**
|
||||
* Returns the tHead element object if successful, or null otherwise.
|
||||
*/
|
||||
createTHead(): HTMLElement;
|
||||
createTHead(): HTMLTableSectionElement;
|
||||
/**
|
||||
* Deletes the caption element and its contents from the table.
|
||||
*/
|
||||
@@ -10496,7 +10500,7 @@ interface HTMLTableElement extends HTMLElement {
|
||||
* Creates a new row (tr) in the table, and adds the row to the rows collection.
|
||||
* @param index Number that specifies where to insert the row in the rows collection. The default value is -1, which appends the new row to the end of the rows collection.
|
||||
*/
|
||||
insertRow(index?: number): HTMLElement;
|
||||
insertRow(index?: number): HTMLTableRowElement;
|
||||
}
|
||||
|
||||
declare var HTMLTableElement: {
|
||||
@@ -10547,7 +10551,7 @@ interface HTMLTableRowElement extends HTMLElement, HTMLTableAlignment {
|
||||
* Creates a new cell in the table row, and adds the cell to the cells collection.
|
||||
* @param index Number that specifies where to insert the cell in the tr. The default value is -1, which appends the new cell to the end of the cells collection.
|
||||
*/
|
||||
insertCell(index?: number): HTMLElement;
|
||||
insertCell(index?: number): HTMLTableCellElement;
|
||||
addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;
|
||||
}
|
||||
|
||||
@@ -10574,7 +10578,7 @@ interface HTMLTableSectionElement extends HTMLElement, HTMLTableAlignment {
|
||||
* Creates a new row (tr) in the table, and adds the row to the rows collection.
|
||||
* @param index Number that specifies where to insert the row in the rows collection. The default value is -1, which appends the new row to the end of the rows collection.
|
||||
*/
|
||||
insertRow(index?: number): HTMLElement;
|
||||
insertRow(index?: number): HTMLTableRowElement;
|
||||
addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;
|
||||
}
|
||||
|
||||
@@ -10963,7 +10967,7 @@ interface IDBDatabase extends EventTarget {
|
||||
onerror: (ev: Event) => any;
|
||||
version: string;
|
||||
close(): void;
|
||||
createObjectStore(name: string, optionalParameters?: any): IDBObjectStore;
|
||||
createObjectStore(name: string, optionalParameters?: IDBObjectStoreParameters): IDBObjectStore;
|
||||
deleteObjectStore(name: string): void;
|
||||
transaction(storeNames: any, mode?: string): IDBTransaction;
|
||||
addEventListener(type: "abort", listener: (ev: Event) => any, useCapture?: boolean): void;
|
||||
@@ -10988,10 +10992,11 @@ declare var IDBFactory: {
|
||||
}
|
||||
|
||||
interface IDBIndex {
|
||||
keyPath: string;
|
||||
keyPath: string | string[];
|
||||
name: string;
|
||||
objectStore: IDBObjectStore;
|
||||
unique: boolean;
|
||||
multiEntry: boolean;
|
||||
count(key?: any): IDBRequest;
|
||||
get(key: any): IDBRequest;
|
||||
getKey(key: any): IDBRequest;
|
||||
@@ -11028,7 +11033,7 @@ interface IDBObjectStore {
|
||||
add(value: any, key?: any): IDBRequest;
|
||||
clear(): IDBRequest;
|
||||
count(key?: any): IDBRequest;
|
||||
createIndex(name: string, keyPath: string, optionalParameters?: any): IDBIndex;
|
||||
createIndex(name: string, keyPath: string | string[], optionalParameters?: IDBIndexParameters): IDBIndex;
|
||||
delete(key: any): IDBRequest;
|
||||
deleteIndex(indexName: string): void;
|
||||
get(key: any): IDBRequest;
|
||||
@@ -11112,7 +11117,7 @@ declare var IDBVersionChangeEvent: {
|
||||
}
|
||||
|
||||
interface ImageData {
|
||||
data: number[];
|
||||
data: Uint8ClampedArray;
|
||||
height: number;
|
||||
width: number;
|
||||
}
|
||||
@@ -11910,6 +11915,7 @@ interface Navigator extends Object, NavigatorID, NavigatorOnLine, NavigatorConte
|
||||
getGamepads(): Gamepad[];
|
||||
javaEnabled(): boolean;
|
||||
msLaunchUri(uri: string, successCallback?: MSLaunchUriCallback, noHandlerCallback?: MSLaunchUriCallback): void;
|
||||
vibrate(pattern: number | number[]): boolean;
|
||||
addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;
|
||||
}
|
||||
|
||||
@@ -11950,6 +11956,7 @@ interface Node extends EventTarget {
|
||||
normalize(): void;
|
||||
removeChild(oldChild: Node): Node;
|
||||
replaceChild(newChild: Node, oldChild: Node): Node;
|
||||
contains(node: Node): boolean;
|
||||
ATTRIBUTE_NODE: number;
|
||||
CDATA_SECTION_NODE: number;
|
||||
COMMENT_NODE: number;
|
||||
@@ -16613,6 +16620,16 @@ interface XMLHttpRequestEventTarget {
|
||||
addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;
|
||||
}
|
||||
|
||||
interface IDBObjectStoreParameters {
|
||||
keyPath?: string | string[];
|
||||
autoIncrement?: boolean;
|
||||
}
|
||||
|
||||
interface IDBIndexParameters {
|
||||
unique?: boolean;
|
||||
multiEntry?: boolean;
|
||||
}
|
||||
|
||||
interface NodeListOf<TNode extends Node> extends NodeList {
|
||||
length: number;
|
||||
item(index: number): TNode;
|
||||
@@ -16648,6 +16665,15 @@ interface ProgressEventInit extends EventInit {
|
||||
total?: number;
|
||||
}
|
||||
|
||||
interface HTMLTemplateElement extends HTMLElement {
|
||||
content: DocumentFragment;
|
||||
}
|
||||
|
||||
declare var HTMLTemplateElement: {
|
||||
prototype: HTMLTemplateElement;
|
||||
new(): HTMLTemplateElement;
|
||||
}
|
||||
|
||||
declare type EventListenerOrEventListenerObject = EventListener | EventListenerObject;
|
||||
|
||||
interface ErrorEventHandler {
|
||||
|
||||
Vendored
+41
-15
@@ -538,6 +538,7 @@ interface AudioContext extends EventTarget {
|
||||
destination: AudioDestinationNode;
|
||||
listener: AudioListener;
|
||||
sampleRate: number;
|
||||
state: string;
|
||||
createAnalyser(): AnalyserNode;
|
||||
createBiquadFilter(): BiquadFilterNode;
|
||||
createBuffer(numberOfChannels: number, length: number, sampleRate: number): AudioBuffer;
|
||||
@@ -2275,6 +2276,7 @@ interface Document extends Node, GlobalEventHandlers, NodeSelector, DocumentEven
|
||||
* Gets or sets the version attribute specified in the declaration of an XML document.
|
||||
*/
|
||||
xmlVersion: string;
|
||||
currentScript: HTMLScriptElement;
|
||||
adoptNode(source: Node): Node;
|
||||
captureEvents(): void;
|
||||
clear(): void;
|
||||
@@ -2990,6 +2992,7 @@ interface Element extends Node, GlobalEventHandlers, ElementTraversal, NodeSelec
|
||||
tagName: string;
|
||||
id: string;
|
||||
className: string;
|
||||
innerHTML: string;
|
||||
getAttribute(name?: string): string;
|
||||
getAttributeNS(namespaceURI: string, localName: string): string;
|
||||
getAttributeNode(name: string): Attr;
|
||||
@@ -3185,7 +3188,7 @@ interface Element extends Node, GlobalEventHandlers, ElementTraversal, NodeSelec
|
||||
removeAttributeNode(oldAttr: Attr): Attr;
|
||||
requestFullscreen(): void;
|
||||
requestPointerLock(): void;
|
||||
setAttribute(name?: string, value?: string): void;
|
||||
setAttribute(name: string, value: string): void;
|
||||
setAttributeNS(namespaceURI: string, qualifiedName: string, value: string): void;
|
||||
setAttributeNode(newAttr: Attr): Attr;
|
||||
setAttributeNodeNS(newAttr: Attr): Attr;
|
||||
@@ -3194,6 +3197,7 @@ interface Element extends Node, GlobalEventHandlers, ElementTraversal, NodeSelec
|
||||
webkitRequestFullScreen(): void;
|
||||
webkitRequestFullscreen(): void;
|
||||
getElementsByClassName(classNames: string): NodeListOf<Element>;
|
||||
matches(selector: string): boolean;
|
||||
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;
|
||||
@@ -4178,7 +4182,6 @@ interface HTMLElement extends Element {
|
||||
title: string;
|
||||
blur(): void;
|
||||
click(): void;
|
||||
contains(child: HTMLElement): boolean;
|
||||
dragDrop(): boolean;
|
||||
focus(): void;
|
||||
insertAdjacentElement(position: string, insertedElement: Element): Element;
|
||||
@@ -5728,7 +5731,7 @@ interface HTMLMediaElement extends HTMLElement {
|
||||
* Gets or sets the current playback position, in seconds.
|
||||
*/
|
||||
preload: string;
|
||||
readyState: any;
|
||||
readyState: number;
|
||||
/**
|
||||
* Returns a TimeRanges object that represents the ranges of the current media resource that can be seeked.
|
||||
*/
|
||||
@@ -6352,7 +6355,7 @@ interface HTMLSelectElement extends HTMLElement {
|
||||
* Sets or retrieves the name of the object.
|
||||
*/
|
||||
name: string;
|
||||
options: HTMLSelectElement;
|
||||
options: HTMLCollection;
|
||||
/**
|
||||
* When present, marks an element that can't be submitted without a value.
|
||||
*/
|
||||
@@ -6385,6 +6388,7 @@ interface HTMLSelectElement extends HTMLElement {
|
||||
* Returns whether an element will successfully validate based on forms validation rules and constraints.
|
||||
*/
|
||||
willValidate: boolean;
|
||||
selectedOptions: HTMLCollection;
|
||||
/**
|
||||
* Adds an element to the areas, controlRange, or options collection.
|
||||
* @param element Variant of type Number that specifies the index position in the collection where the element is placed. If no value is given, the method places the element at the end of the collection.
|
||||
@@ -6638,19 +6642,19 @@ interface HTMLTableElement extends HTMLElement {
|
||||
/**
|
||||
* Creates an empty caption element in the table.
|
||||
*/
|
||||
createCaption(): HTMLElement;
|
||||
createCaption(): HTMLTableCaptionElement;
|
||||
/**
|
||||
* Creates an empty tBody element in the table.
|
||||
*/
|
||||
createTBody(): HTMLElement;
|
||||
createTBody(): HTMLTableSectionElement;
|
||||
/**
|
||||
* Creates an empty tFoot element in the table.
|
||||
*/
|
||||
createTFoot(): HTMLElement;
|
||||
createTFoot(): HTMLTableSectionElement;
|
||||
/**
|
||||
* Returns the tHead element object if successful, or null otherwise.
|
||||
*/
|
||||
createTHead(): HTMLElement;
|
||||
createTHead(): HTMLTableSectionElement;
|
||||
/**
|
||||
* Deletes the caption element and its contents from the table.
|
||||
*/
|
||||
@@ -6672,7 +6676,7 @@ interface HTMLTableElement extends HTMLElement {
|
||||
* Creates a new row (tr) in the table, and adds the row to the rows collection.
|
||||
* @param index Number that specifies where to insert the row in the rows collection. The default value is -1, which appends the new row to the end of the rows collection.
|
||||
*/
|
||||
insertRow(index?: number): HTMLElement;
|
||||
insertRow(index?: number): HTMLTableRowElement;
|
||||
}
|
||||
|
||||
declare var HTMLTableElement: {
|
||||
@@ -6723,7 +6727,7 @@ interface HTMLTableRowElement extends HTMLElement, HTMLTableAlignment {
|
||||
* Creates a new cell in the table row, and adds the cell to the cells collection.
|
||||
* @param index Number that specifies where to insert the cell in the tr. The default value is -1, which appends the new cell to the end of the cells collection.
|
||||
*/
|
||||
insertCell(index?: number): HTMLElement;
|
||||
insertCell(index?: number): HTMLTableCellElement;
|
||||
addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;
|
||||
}
|
||||
|
||||
@@ -6750,7 +6754,7 @@ interface HTMLTableSectionElement extends HTMLElement, HTMLTableAlignment {
|
||||
* Creates a new row (tr) in the table, and adds the row to the rows collection.
|
||||
* @param index Number that specifies where to insert the row in the rows collection. The default value is -1, which appends the new row to the end of the rows collection.
|
||||
*/
|
||||
insertRow(index?: number): HTMLElement;
|
||||
insertRow(index?: number): HTMLTableRowElement;
|
||||
addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;
|
||||
}
|
||||
|
||||
@@ -7139,7 +7143,7 @@ interface IDBDatabase extends EventTarget {
|
||||
onerror: (ev: Event) => any;
|
||||
version: string;
|
||||
close(): void;
|
||||
createObjectStore(name: string, optionalParameters?: any): IDBObjectStore;
|
||||
createObjectStore(name: string, optionalParameters?: IDBObjectStoreParameters): IDBObjectStore;
|
||||
deleteObjectStore(name: string): void;
|
||||
transaction(storeNames: any, mode?: string): IDBTransaction;
|
||||
addEventListener(type: "abort", listener: (ev: Event) => any, useCapture?: boolean): void;
|
||||
@@ -7164,10 +7168,11 @@ declare var IDBFactory: {
|
||||
}
|
||||
|
||||
interface IDBIndex {
|
||||
keyPath: string;
|
||||
keyPath: string | string[];
|
||||
name: string;
|
||||
objectStore: IDBObjectStore;
|
||||
unique: boolean;
|
||||
multiEntry: boolean;
|
||||
count(key?: any): IDBRequest;
|
||||
get(key: any): IDBRequest;
|
||||
getKey(key: any): IDBRequest;
|
||||
@@ -7204,7 +7209,7 @@ interface IDBObjectStore {
|
||||
add(value: any, key?: any): IDBRequest;
|
||||
clear(): IDBRequest;
|
||||
count(key?: any): IDBRequest;
|
||||
createIndex(name: string, keyPath: string, optionalParameters?: any): IDBIndex;
|
||||
createIndex(name: string, keyPath: string | string[], optionalParameters?: IDBIndexParameters): IDBIndex;
|
||||
delete(key: any): IDBRequest;
|
||||
deleteIndex(indexName: string): void;
|
||||
get(key: any): IDBRequest;
|
||||
@@ -7288,7 +7293,7 @@ declare var IDBVersionChangeEvent: {
|
||||
}
|
||||
|
||||
interface ImageData {
|
||||
data: number[];
|
||||
data: Uint8ClampedArray;
|
||||
height: number;
|
||||
width: number;
|
||||
}
|
||||
@@ -8086,6 +8091,7 @@ interface Navigator extends Object, NavigatorID, NavigatorOnLine, NavigatorConte
|
||||
getGamepads(): Gamepad[];
|
||||
javaEnabled(): boolean;
|
||||
msLaunchUri(uri: string, successCallback?: MSLaunchUriCallback, noHandlerCallback?: MSLaunchUriCallback): void;
|
||||
vibrate(pattern: number | number[]): boolean;
|
||||
addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;
|
||||
}
|
||||
|
||||
@@ -8126,6 +8132,7 @@ interface Node extends EventTarget {
|
||||
normalize(): void;
|
||||
removeChild(oldChild: Node): Node;
|
||||
replaceChild(newChild: Node, oldChild: Node): Node;
|
||||
contains(node: Node): boolean;
|
||||
ATTRIBUTE_NODE: number;
|
||||
CDATA_SECTION_NODE: number;
|
||||
COMMENT_NODE: number;
|
||||
@@ -12789,6 +12796,16 @@ interface XMLHttpRequestEventTarget {
|
||||
addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;
|
||||
}
|
||||
|
||||
interface IDBObjectStoreParameters {
|
||||
keyPath?: string | string[];
|
||||
autoIncrement?: boolean;
|
||||
}
|
||||
|
||||
interface IDBIndexParameters {
|
||||
unique?: boolean;
|
||||
multiEntry?: boolean;
|
||||
}
|
||||
|
||||
interface NodeListOf<TNode extends Node> extends NodeList {
|
||||
length: number;
|
||||
item(index: number): TNode;
|
||||
@@ -12824,6 +12841,15 @@ interface ProgressEventInit extends EventInit {
|
||||
total?: number;
|
||||
}
|
||||
|
||||
interface HTMLTemplateElement extends HTMLElement {
|
||||
content: DocumentFragment;
|
||||
}
|
||||
|
||||
declare var HTMLTemplateElement: {
|
||||
prototype: HTMLTemplateElement;
|
||||
new(): HTMLTemplateElement;
|
||||
}
|
||||
|
||||
declare type EventListenerOrEventListenerObject = EventListener | EventListenerObject;
|
||||
|
||||
interface ErrorEventHandler {
|
||||
|
||||
Vendored
+72
-28
@@ -22,7 +22,7 @@ interface Symbol {
|
||||
/** Returns the primitive value of the specified object. */
|
||||
valueOf(): Object;
|
||||
|
||||
[Symbol.toStringTag]: string;
|
||||
[Symbol.toStringTag]: "Symbol";
|
||||
}
|
||||
|
||||
interface SymbolConstructor {
|
||||
@@ -580,7 +580,7 @@ interface IterableIterator<T> extends Iterator<T> {
|
||||
}
|
||||
|
||||
interface GeneratorFunction extends Function {
|
||||
|
||||
[Symbol.toStringTag]: "GeneratorFunction";
|
||||
}
|
||||
|
||||
interface GeneratorFunctionConstructor {
|
||||
@@ -705,7 +705,7 @@ interface Math {
|
||||
*/
|
||||
cbrt(x: number): number;
|
||||
|
||||
[Symbol.toStringTag]: string;
|
||||
[Symbol.toStringTag]: "Math";
|
||||
}
|
||||
|
||||
interface Date {
|
||||
@@ -822,7 +822,7 @@ interface Map<K, V> {
|
||||
size: number;
|
||||
values(): IterableIterator<V>;
|
||||
[Symbol.iterator]():IterableIterator<[K,V]>;
|
||||
[Symbol.toStringTag]: string;
|
||||
[Symbol.toStringTag]: "Map";
|
||||
}
|
||||
|
||||
interface MapConstructor {
|
||||
@@ -839,7 +839,7 @@ interface WeakMap<K, V> {
|
||||
get(key: K): V;
|
||||
has(key: K): boolean;
|
||||
set(key: K, value?: V): WeakMap<K, V>;
|
||||
[Symbol.toStringTag]: string;
|
||||
[Symbol.toStringTag]: "WeakMap";
|
||||
}
|
||||
|
||||
interface WeakMapConstructor {
|
||||
@@ -861,7 +861,7 @@ interface Set<T> {
|
||||
size: number;
|
||||
values(): IterableIterator<T>;
|
||||
[Symbol.iterator]():IterableIterator<T>;
|
||||
[Symbol.toStringTag]: string;
|
||||
[Symbol.toStringTag]: "Set";
|
||||
}
|
||||
|
||||
interface SetConstructor {
|
||||
@@ -877,7 +877,7 @@ interface WeakSet<T> {
|
||||
clear(): void;
|
||||
delete(value: T): boolean;
|
||||
has(value: T): boolean;
|
||||
[Symbol.toStringTag]: string;
|
||||
[Symbol.toStringTag]: "WeakSet";
|
||||
}
|
||||
|
||||
interface WeakSetConstructor {
|
||||
@@ -889,7 +889,7 @@ interface WeakSetConstructor {
|
||||
declare var WeakSet: WeakSetConstructor;
|
||||
|
||||
interface JSON {
|
||||
[Symbol.toStringTag]: string;
|
||||
[Symbol.toStringTag]: "JSON";
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -899,11 +899,11 @@ interface JSON {
|
||||
* buffer as needed.
|
||||
*/
|
||||
interface ArrayBuffer {
|
||||
[Symbol.toStringTag]: string;
|
||||
[Symbol.toStringTag]: "ArrayBuffer";
|
||||
}
|
||||
|
||||
interface DataView {
|
||||
[Symbol.toStringTag]: string;
|
||||
[Symbol.toStringTag]: "DataView";
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -924,6 +924,7 @@ interface Int8Array {
|
||||
*/
|
||||
values(): IterableIterator<number>;
|
||||
[Symbol.iterator](): IterableIterator<number>;
|
||||
[Symbol.toStringTag]: "Int8Array";
|
||||
}
|
||||
|
||||
interface Int8ArrayConstructor {
|
||||
@@ -956,6 +957,7 @@ interface Uint8Array {
|
||||
*/
|
||||
values(): IterableIterator<number>;
|
||||
[Symbol.iterator](): IterableIterator<number>;
|
||||
[Symbol.toStringTag]: "UInt8Array";
|
||||
}
|
||||
|
||||
interface Uint8ArrayConstructor {
|
||||
@@ -991,6 +993,7 @@ interface Uint8ClampedArray {
|
||||
values(): IterableIterator<number>;
|
||||
|
||||
[Symbol.iterator](): IterableIterator<number>;
|
||||
[Symbol.toStringTag]: "Uint8ClampedArray";
|
||||
}
|
||||
|
||||
interface Uint8ClampedArrayConstructor {
|
||||
@@ -1028,6 +1031,7 @@ interface Int16Array {
|
||||
|
||||
|
||||
[Symbol.iterator](): IterableIterator<number>;
|
||||
[Symbol.toStringTag]: "Int16Array";
|
||||
}
|
||||
|
||||
interface Int16ArrayConstructor {
|
||||
@@ -1060,6 +1064,7 @@ interface Uint16Array {
|
||||
*/
|
||||
values(): IterableIterator<number>;
|
||||
[Symbol.iterator](): IterableIterator<number>;
|
||||
[Symbol.toStringTag]: "Uint16Array";
|
||||
}
|
||||
|
||||
interface Uint16ArrayConstructor {
|
||||
@@ -1092,6 +1097,7 @@ interface Int32Array {
|
||||
*/
|
||||
values(): IterableIterator<number>;
|
||||
[Symbol.iterator](): IterableIterator<number>;
|
||||
[Symbol.toStringTag]: "Int32Array";
|
||||
}
|
||||
|
||||
interface Int32ArrayConstructor {
|
||||
@@ -1124,6 +1130,7 @@ interface Uint32Array {
|
||||
*/
|
||||
values(): IterableIterator<number>;
|
||||
[Symbol.iterator](): IterableIterator<number>;
|
||||
[Symbol.toStringTag]: "Uint32Array";
|
||||
}
|
||||
|
||||
interface Uint32ArrayConstructor {
|
||||
@@ -1156,6 +1163,7 @@ interface Float32Array {
|
||||
*/
|
||||
values(): IterableIterator<number>;
|
||||
[Symbol.iterator](): IterableIterator<number>;
|
||||
[Symbol.toStringTag]: "Float32Array";
|
||||
}
|
||||
|
||||
interface Float32ArrayConstructor {
|
||||
@@ -1188,6 +1196,7 @@ interface Float64Array {
|
||||
*/
|
||||
values(): IterableIterator<number>;
|
||||
[Symbol.iterator](): IterableIterator<number>;
|
||||
[Symbol.toStringTag]: "Float64Array";
|
||||
}
|
||||
|
||||
interface Float64ArrayConstructor {
|
||||
@@ -1239,7 +1248,7 @@ declare namespace Reflect {
|
||||
function isExtensible(target: any): boolean;
|
||||
function ownKeys(target: any): Array<PropertyKey>;
|
||||
function preventExtensions(target: any): boolean;
|
||||
function set(target: any, propertyKey: PropertyKey, value: any, receiver? :any): boolean;
|
||||
function set(target: any, propertyKey: PropertyKey, value: any, receiver?: any): boolean;
|
||||
function setPrototypeOf(target: any, proto: any): boolean;
|
||||
}
|
||||
|
||||
@@ -1264,7 +1273,7 @@ interface Promise<T> {
|
||||
catch(onrejected?: (reason: any) => T | PromiseLike<T>): Promise<T>;
|
||||
catch(onrejected?: (reason: any) => void): Promise<T>;
|
||||
|
||||
[Symbol.toStringTag]: string;
|
||||
[Symbol.toStringTag]: "Promise";
|
||||
}
|
||||
|
||||
interface PromiseConstructor {
|
||||
@@ -1287,7 +1296,16 @@ interface PromiseConstructor {
|
||||
* @param values An array of Promises.
|
||||
* @returns A new Promise.
|
||||
*/
|
||||
all<T>(values: Iterable<T | PromiseLike<T>>): Promise<T[]>;
|
||||
all<T1, T2>(values: [T1 | PromiseLike<T1>, T2 | PromiseLike<T2>]): Promise<[T1, T2]>;
|
||||
all<T1, T2, T3>(values: [T1 | PromiseLike<T1>, T2 | PromiseLike<T2>, T3 | PromiseLike<T3>]): Promise<[T1, T2, T3]>;
|
||||
all<T1, T2, T3, T4>(values: [T1 | PromiseLike<T1>, T2 | PromiseLike<T2>, T3 | PromiseLike<T3>, T4 | PromiseLike <T4>]): Promise<[T1, T2, T3, T4]>;
|
||||
all<T1, T2, T3, T4, T5>(values: [T1 | PromiseLike<T1>, T2 | PromiseLike<T2>, T3 | PromiseLike<T3>, T4 | PromiseLike <T4>, T5 | PromiseLike<T5>]): Promise<[T1, T2, T3, T4, T5]>;
|
||||
all<T1, T2, T3, T4, T5, T6>(values: [T1 | PromiseLike<T1>, T2 | PromiseLike<T2>, T3 | PromiseLike<T3>, T4 | PromiseLike <T4>, T5 | PromiseLike<T5>, T6 | PromiseLike<T6>]): Promise<[T1, T2, T3, T4, T5, T6]>;
|
||||
all<T1, T2, T3, T4, T5, T6, T7>(values: [T1 | PromiseLike<T1>, T2 | PromiseLike<T2>, T3 | PromiseLike<T3>, T4 | PromiseLike <T4>, T5 | PromiseLike<T5>, T6 | PromiseLike<T6>, T7 | PromiseLike<T7>]): Promise<[T1, T2, T3, T4, T5, T6, T7]>;
|
||||
all<T1, T2, T3, T4, T5, T6, T7, T8>(values: [T1 | PromiseLike<T1>, T2 | PromiseLike<T2>, T3 | PromiseLike<T3>, T4 | PromiseLike <T4>, T5 | PromiseLike<T5>, T6 | PromiseLike<T6>, T7 | PromiseLike<T7>, T8 | PromiseLike<T8>]): Promise<[T1, T2, T3, T4, T5, T6, T7, T8]>;
|
||||
all<T1, T2, T3, T4, T5, T6, T7, T8, T9>(values: [T1 | PromiseLike<T1>, T2 | PromiseLike<T2>, T3 | PromiseLike<T3>, T4 | PromiseLike <T4>, T5 | PromiseLike<T5>, T6 | PromiseLike<T6>, T7 | PromiseLike<T7>, T8 | PromiseLike<T8>, T9 | PromiseLike<T9>]): Promise<[T1, T2, T3, T4, T5, T6, T7, T8, T9]>;
|
||||
all<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10>(values: [T1 | PromiseLike<T1>, T2 | PromiseLike<T2>, T3 | PromiseLike<T3>, T4 | PromiseLike <T4>, T5 | PromiseLike<T5>, T6 | PromiseLike<T6>, T7 | PromiseLike<T7>, T8 | PromiseLike<T8>, T9 | PromiseLike<T9>, T10 | PromiseLike<T10>]): Promise<[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10]>;
|
||||
all<TAll>(values: Iterable<TAll | PromiseLike<TAll>>): Promise<TAll[]>;
|
||||
|
||||
/**
|
||||
* Creates a Promise that is resolved or rejected when any of the provided Promises are resolved
|
||||
@@ -5677,6 +5695,7 @@ interface AudioContext extends EventTarget {
|
||||
destination: AudioDestinationNode;
|
||||
listener: AudioListener;
|
||||
sampleRate: number;
|
||||
state: string;
|
||||
createAnalyser(): AnalyserNode;
|
||||
createBiquadFilter(): BiquadFilterNode;
|
||||
createBuffer(numberOfChannels: number, length: number, sampleRate: number): AudioBuffer;
|
||||
@@ -7414,6 +7433,7 @@ interface Document extends Node, GlobalEventHandlers, NodeSelector, DocumentEven
|
||||
* Gets or sets the version attribute specified in the declaration of an XML document.
|
||||
*/
|
||||
xmlVersion: string;
|
||||
currentScript: HTMLScriptElement;
|
||||
adoptNode(source: Node): Node;
|
||||
captureEvents(): void;
|
||||
clear(): void;
|
||||
@@ -8129,6 +8149,7 @@ interface Element extends Node, GlobalEventHandlers, ElementTraversal, NodeSelec
|
||||
tagName: string;
|
||||
id: string;
|
||||
className: string;
|
||||
innerHTML: string;
|
||||
getAttribute(name?: string): string;
|
||||
getAttributeNS(namespaceURI: string, localName: string): string;
|
||||
getAttributeNode(name: string): Attr;
|
||||
@@ -8324,7 +8345,7 @@ interface Element extends Node, GlobalEventHandlers, ElementTraversal, NodeSelec
|
||||
removeAttributeNode(oldAttr: Attr): Attr;
|
||||
requestFullscreen(): void;
|
||||
requestPointerLock(): void;
|
||||
setAttribute(name?: string, value?: string): void;
|
||||
setAttribute(name: string, value: string): void;
|
||||
setAttributeNS(namespaceURI: string, qualifiedName: string, value: string): void;
|
||||
setAttributeNode(newAttr: Attr): Attr;
|
||||
setAttributeNodeNS(newAttr: Attr): Attr;
|
||||
@@ -8333,6 +8354,7 @@ interface Element extends Node, GlobalEventHandlers, ElementTraversal, NodeSelec
|
||||
webkitRequestFullScreen(): void;
|
||||
webkitRequestFullscreen(): void;
|
||||
getElementsByClassName(classNames: string): NodeListOf<Element>;
|
||||
matches(selector: string): boolean;
|
||||
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;
|
||||
@@ -9317,7 +9339,6 @@ interface HTMLElement extends Element {
|
||||
title: string;
|
||||
blur(): void;
|
||||
click(): void;
|
||||
contains(child: HTMLElement): boolean;
|
||||
dragDrop(): boolean;
|
||||
focus(): void;
|
||||
insertAdjacentElement(position: string, insertedElement: Element): Element;
|
||||
@@ -10867,7 +10888,7 @@ interface HTMLMediaElement extends HTMLElement {
|
||||
* Gets or sets the current playback position, in seconds.
|
||||
*/
|
||||
preload: string;
|
||||
readyState: any;
|
||||
readyState: number;
|
||||
/**
|
||||
* Returns a TimeRanges object that represents the ranges of the current media resource that can be seeked.
|
||||
*/
|
||||
@@ -11491,7 +11512,7 @@ interface HTMLSelectElement extends HTMLElement {
|
||||
* Sets or retrieves the name of the object.
|
||||
*/
|
||||
name: string;
|
||||
options: HTMLSelectElement;
|
||||
options: HTMLCollection;
|
||||
/**
|
||||
* When present, marks an element that can't be submitted without a value.
|
||||
*/
|
||||
@@ -11524,6 +11545,7 @@ interface HTMLSelectElement extends HTMLElement {
|
||||
* Returns whether an element will successfully validate based on forms validation rules and constraints.
|
||||
*/
|
||||
willValidate: boolean;
|
||||
selectedOptions: HTMLCollection;
|
||||
/**
|
||||
* Adds an element to the areas, controlRange, or options collection.
|
||||
* @param element Variant of type Number that specifies the index position in the collection where the element is placed. If no value is given, the method places the element at the end of the collection.
|
||||
@@ -11777,19 +11799,19 @@ interface HTMLTableElement extends HTMLElement {
|
||||
/**
|
||||
* Creates an empty caption element in the table.
|
||||
*/
|
||||
createCaption(): HTMLElement;
|
||||
createCaption(): HTMLTableCaptionElement;
|
||||
/**
|
||||
* Creates an empty tBody element in the table.
|
||||
*/
|
||||
createTBody(): HTMLElement;
|
||||
createTBody(): HTMLTableSectionElement;
|
||||
/**
|
||||
* Creates an empty tFoot element in the table.
|
||||
*/
|
||||
createTFoot(): HTMLElement;
|
||||
createTFoot(): HTMLTableSectionElement;
|
||||
/**
|
||||
* Returns the tHead element object if successful, or null otherwise.
|
||||
*/
|
||||
createTHead(): HTMLElement;
|
||||
createTHead(): HTMLTableSectionElement;
|
||||
/**
|
||||
* Deletes the caption element and its contents from the table.
|
||||
*/
|
||||
@@ -11811,7 +11833,7 @@ interface HTMLTableElement extends HTMLElement {
|
||||
* Creates a new row (tr) in the table, and adds the row to the rows collection.
|
||||
* @param index Number that specifies where to insert the row in the rows collection. The default value is -1, which appends the new row to the end of the rows collection.
|
||||
*/
|
||||
insertRow(index?: number): HTMLElement;
|
||||
insertRow(index?: number): HTMLTableRowElement;
|
||||
}
|
||||
|
||||
declare var HTMLTableElement: {
|
||||
@@ -11862,7 +11884,7 @@ interface HTMLTableRowElement extends HTMLElement, HTMLTableAlignment {
|
||||
* Creates a new cell in the table row, and adds the cell to the cells collection.
|
||||
* @param index Number that specifies where to insert the cell in the tr. The default value is -1, which appends the new cell to the end of the cells collection.
|
||||
*/
|
||||
insertCell(index?: number): HTMLElement;
|
||||
insertCell(index?: number): HTMLTableCellElement;
|
||||
addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;
|
||||
}
|
||||
|
||||
@@ -11889,7 +11911,7 @@ interface HTMLTableSectionElement extends HTMLElement, HTMLTableAlignment {
|
||||
* Creates a new row (tr) in the table, and adds the row to the rows collection.
|
||||
* @param index Number that specifies where to insert the row in the rows collection. The default value is -1, which appends the new row to the end of the rows collection.
|
||||
*/
|
||||
insertRow(index?: number): HTMLElement;
|
||||
insertRow(index?: number): HTMLTableRowElement;
|
||||
addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;
|
||||
}
|
||||
|
||||
@@ -12278,7 +12300,7 @@ interface IDBDatabase extends EventTarget {
|
||||
onerror: (ev: Event) => any;
|
||||
version: string;
|
||||
close(): void;
|
||||
createObjectStore(name: string, optionalParameters?: any): IDBObjectStore;
|
||||
createObjectStore(name: string, optionalParameters?: IDBObjectStoreParameters): IDBObjectStore;
|
||||
deleteObjectStore(name: string): void;
|
||||
transaction(storeNames: any, mode?: string): IDBTransaction;
|
||||
addEventListener(type: "abort", listener: (ev: Event) => any, useCapture?: boolean): void;
|
||||
@@ -12303,10 +12325,11 @@ declare var IDBFactory: {
|
||||
}
|
||||
|
||||
interface IDBIndex {
|
||||
keyPath: string;
|
||||
keyPath: string | string[];
|
||||
name: string;
|
||||
objectStore: IDBObjectStore;
|
||||
unique: boolean;
|
||||
multiEntry: boolean;
|
||||
count(key?: any): IDBRequest;
|
||||
get(key: any): IDBRequest;
|
||||
getKey(key: any): IDBRequest;
|
||||
@@ -12343,7 +12366,7 @@ interface IDBObjectStore {
|
||||
add(value: any, key?: any): IDBRequest;
|
||||
clear(): IDBRequest;
|
||||
count(key?: any): IDBRequest;
|
||||
createIndex(name: string, keyPath: string, optionalParameters?: any): IDBIndex;
|
||||
createIndex(name: string, keyPath: string | string[], optionalParameters?: IDBIndexParameters): IDBIndex;
|
||||
delete(key: any): IDBRequest;
|
||||
deleteIndex(indexName: string): void;
|
||||
get(key: any): IDBRequest;
|
||||
@@ -12427,7 +12450,7 @@ declare var IDBVersionChangeEvent: {
|
||||
}
|
||||
|
||||
interface ImageData {
|
||||
data: number[];
|
||||
data: Uint8ClampedArray;
|
||||
height: number;
|
||||
width: number;
|
||||
}
|
||||
@@ -13225,6 +13248,7 @@ interface Navigator extends Object, NavigatorID, NavigatorOnLine, NavigatorConte
|
||||
getGamepads(): Gamepad[];
|
||||
javaEnabled(): boolean;
|
||||
msLaunchUri(uri: string, successCallback?: MSLaunchUriCallback, noHandlerCallback?: MSLaunchUriCallback): void;
|
||||
vibrate(pattern: number | number[]): boolean;
|
||||
addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;
|
||||
}
|
||||
|
||||
@@ -13265,6 +13289,7 @@ interface Node extends EventTarget {
|
||||
normalize(): void;
|
||||
removeChild(oldChild: Node): Node;
|
||||
replaceChild(newChild: Node, oldChild: Node): Node;
|
||||
contains(node: Node): boolean;
|
||||
ATTRIBUTE_NODE: number;
|
||||
CDATA_SECTION_NODE: number;
|
||||
COMMENT_NODE: number;
|
||||
@@ -17928,6 +17953,16 @@ interface XMLHttpRequestEventTarget {
|
||||
addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;
|
||||
}
|
||||
|
||||
interface IDBObjectStoreParameters {
|
||||
keyPath?: string | string[];
|
||||
autoIncrement?: boolean;
|
||||
}
|
||||
|
||||
interface IDBIndexParameters {
|
||||
unique?: boolean;
|
||||
multiEntry?: boolean;
|
||||
}
|
||||
|
||||
interface NodeListOf<TNode extends Node> extends NodeList {
|
||||
length: number;
|
||||
item(index: number): TNode;
|
||||
@@ -17963,6 +17998,15 @@ interface ProgressEventInit extends EventInit {
|
||||
total?: number;
|
||||
}
|
||||
|
||||
interface HTMLTemplateElement extends HTMLElement {
|
||||
content: DocumentFragment;
|
||||
}
|
||||
|
||||
declare var HTMLTemplateElement: {
|
||||
prototype: HTMLTemplateElement;
|
||||
new(): HTMLTemplateElement;
|
||||
}
|
||||
|
||||
declare type EventListenerOrEventListenerObject = EventListener | EventListenerObject;
|
||||
|
||||
interface ErrorEventHandler {
|
||||
|
||||
Vendored
+15
-4
@@ -528,7 +528,7 @@ interface IDBDatabase extends EventTarget {
|
||||
onerror: (ev: Event) => any;
|
||||
version: string;
|
||||
close(): void;
|
||||
createObjectStore(name: string, optionalParameters?: any): IDBObjectStore;
|
||||
createObjectStore(name: string, optionalParameters?: IDBObjectStoreParameters): IDBObjectStore;
|
||||
deleteObjectStore(name: string): void;
|
||||
transaction(storeNames: any, mode?: string): IDBTransaction;
|
||||
addEventListener(type: "abort", listener: (ev: Event) => any, useCapture?: boolean): void;
|
||||
@@ -553,10 +553,11 @@ declare var IDBFactory: {
|
||||
}
|
||||
|
||||
interface IDBIndex {
|
||||
keyPath: string;
|
||||
keyPath: string | string[];
|
||||
name: string;
|
||||
objectStore: IDBObjectStore;
|
||||
unique: boolean;
|
||||
multiEntry: boolean;
|
||||
count(key?: any): IDBRequest;
|
||||
get(key: any): IDBRequest;
|
||||
getKey(key: any): IDBRequest;
|
||||
@@ -593,7 +594,7 @@ interface IDBObjectStore {
|
||||
add(value: any, key?: any): IDBRequest;
|
||||
clear(): IDBRequest;
|
||||
count(key?: any): IDBRequest;
|
||||
createIndex(name: string, keyPath: string, optionalParameters?: any): IDBIndex;
|
||||
createIndex(name: string, keyPath: string | string[], optionalParameters?: IDBIndexParameters): IDBIndex;
|
||||
delete(key: any): IDBRequest;
|
||||
deleteIndex(indexName: string): void;
|
||||
get(key: any): IDBRequest;
|
||||
@@ -677,7 +678,7 @@ declare var IDBVersionChangeEvent: {
|
||||
}
|
||||
|
||||
interface ImageData {
|
||||
data: number[];
|
||||
data: Uint8ClampedArray;
|
||||
height: number;
|
||||
width: number;
|
||||
}
|
||||
@@ -1109,6 +1110,16 @@ interface WorkerUtils extends Object, WindowBase64 {
|
||||
setTimeout(handler: any, timeout?: any, ...args: any[]): number;
|
||||
}
|
||||
|
||||
interface IDBObjectStoreParameters {
|
||||
keyPath?: string | string[];
|
||||
autoIncrement?: boolean;
|
||||
}
|
||||
|
||||
interface IDBIndexParameters {
|
||||
unique?: boolean;
|
||||
multiEntry?: boolean;
|
||||
}
|
||||
|
||||
interface BlobPropertyBag {
|
||||
type?: string;
|
||||
endings?: string;
|
||||
|
||||
+4090
-3335
File diff suppressed because it is too large
Load Diff
+5111
-4590
File diff suppressed because it is too large
Load Diff
Vendored
+274
-167
@@ -194,118 +194,120 @@ declare namespace ts {
|
||||
UnionType = 158,
|
||||
IntersectionType = 159,
|
||||
ParenthesizedType = 160,
|
||||
ObjectBindingPattern = 161,
|
||||
ArrayBindingPattern = 162,
|
||||
BindingElement = 163,
|
||||
ArrayLiteralExpression = 164,
|
||||
ObjectLiteralExpression = 165,
|
||||
PropertyAccessExpression = 166,
|
||||
ElementAccessExpression = 167,
|
||||
CallExpression = 168,
|
||||
NewExpression = 169,
|
||||
TaggedTemplateExpression = 170,
|
||||
TypeAssertionExpression = 171,
|
||||
ParenthesizedExpression = 172,
|
||||
FunctionExpression = 173,
|
||||
ArrowFunction = 174,
|
||||
DeleteExpression = 175,
|
||||
TypeOfExpression = 176,
|
||||
VoidExpression = 177,
|
||||
AwaitExpression = 178,
|
||||
PrefixUnaryExpression = 179,
|
||||
PostfixUnaryExpression = 180,
|
||||
BinaryExpression = 181,
|
||||
ConditionalExpression = 182,
|
||||
TemplateExpression = 183,
|
||||
YieldExpression = 184,
|
||||
SpreadElementExpression = 185,
|
||||
ClassExpression = 186,
|
||||
OmittedExpression = 187,
|
||||
ExpressionWithTypeArguments = 188,
|
||||
AsExpression = 189,
|
||||
TemplateSpan = 190,
|
||||
SemicolonClassElement = 191,
|
||||
Block = 192,
|
||||
VariableStatement = 193,
|
||||
EmptyStatement = 194,
|
||||
ExpressionStatement = 195,
|
||||
IfStatement = 196,
|
||||
DoStatement = 197,
|
||||
WhileStatement = 198,
|
||||
ForStatement = 199,
|
||||
ForInStatement = 200,
|
||||
ForOfStatement = 201,
|
||||
ContinueStatement = 202,
|
||||
BreakStatement = 203,
|
||||
ReturnStatement = 204,
|
||||
WithStatement = 205,
|
||||
SwitchStatement = 206,
|
||||
LabeledStatement = 207,
|
||||
ThrowStatement = 208,
|
||||
TryStatement = 209,
|
||||
DebuggerStatement = 210,
|
||||
VariableDeclaration = 211,
|
||||
VariableDeclarationList = 212,
|
||||
FunctionDeclaration = 213,
|
||||
ClassDeclaration = 214,
|
||||
InterfaceDeclaration = 215,
|
||||
TypeAliasDeclaration = 216,
|
||||
EnumDeclaration = 217,
|
||||
ModuleDeclaration = 218,
|
||||
ModuleBlock = 219,
|
||||
CaseBlock = 220,
|
||||
ImportEqualsDeclaration = 221,
|
||||
ImportDeclaration = 222,
|
||||
ImportClause = 223,
|
||||
NamespaceImport = 224,
|
||||
NamedImports = 225,
|
||||
ImportSpecifier = 226,
|
||||
ExportAssignment = 227,
|
||||
ExportDeclaration = 228,
|
||||
NamedExports = 229,
|
||||
ExportSpecifier = 230,
|
||||
MissingDeclaration = 231,
|
||||
ExternalModuleReference = 232,
|
||||
JsxElement = 233,
|
||||
JsxSelfClosingElement = 234,
|
||||
JsxOpeningElement = 235,
|
||||
JsxText = 236,
|
||||
JsxClosingElement = 237,
|
||||
JsxAttribute = 238,
|
||||
JsxSpreadAttribute = 239,
|
||||
JsxExpression = 240,
|
||||
CaseClause = 241,
|
||||
DefaultClause = 242,
|
||||
HeritageClause = 243,
|
||||
CatchClause = 244,
|
||||
PropertyAssignment = 245,
|
||||
ShorthandPropertyAssignment = 246,
|
||||
EnumMember = 247,
|
||||
SourceFile = 248,
|
||||
JSDocTypeExpression = 249,
|
||||
JSDocAllType = 250,
|
||||
JSDocUnknownType = 251,
|
||||
JSDocArrayType = 252,
|
||||
JSDocUnionType = 253,
|
||||
JSDocTupleType = 254,
|
||||
JSDocNullableType = 255,
|
||||
JSDocNonNullableType = 256,
|
||||
JSDocRecordType = 257,
|
||||
JSDocRecordMember = 258,
|
||||
JSDocTypeReference = 259,
|
||||
JSDocOptionalType = 260,
|
||||
JSDocFunctionType = 261,
|
||||
JSDocVariadicType = 262,
|
||||
JSDocConstructorType = 263,
|
||||
JSDocThisType = 264,
|
||||
JSDocComment = 265,
|
||||
JSDocTag = 266,
|
||||
JSDocParameterTag = 267,
|
||||
JSDocReturnTag = 268,
|
||||
JSDocTypeTag = 269,
|
||||
JSDocTemplateTag = 270,
|
||||
SyntaxList = 271,
|
||||
Count = 272,
|
||||
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,
|
||||
FirstAssignment = 56,
|
||||
LastAssignment = 68,
|
||||
FirstReservedWord = 70,
|
||||
@@ -314,8 +316,8 @@ declare namespace ts {
|
||||
LastKeyword = 134,
|
||||
FirstFutureReservedWord = 106,
|
||||
LastFutureReservedWord = 114,
|
||||
FirstTypeNode = 151,
|
||||
LastTypeNode = 160,
|
||||
FirstTypeNode = 150,
|
||||
LastTypeNode = 162,
|
||||
FirstPunctuation = 15,
|
||||
LastPunctuation = 68,
|
||||
FirstToken = 0,
|
||||
@@ -359,10 +361,14 @@ declare namespace ts {
|
||||
}
|
||||
enum JsxFlags {
|
||||
None = 0,
|
||||
/** An element from a named property of the JSX.IntrinsicElements interface */
|
||||
IntrinsicNamedElement = 1,
|
||||
/** An element inferred from the string index signature of the JSX.IntrinsicElements interface */
|
||||
IntrinsicIndexedElement = 2,
|
||||
ClassElement = 4,
|
||||
UnknownElement = 8,
|
||||
/** An element backed by a class, class-like, or function value */
|
||||
ValueElement = 4,
|
||||
/** Element resolution failed */
|
||||
UnknownElement = 16,
|
||||
IntrinsicElement = 3,
|
||||
}
|
||||
interface Node extends TextRange {
|
||||
@@ -375,9 +381,11 @@ declare namespace ts {
|
||||
interface NodeArray<T> extends Array<T>, TextRange {
|
||||
hasTrailingComma?: boolean;
|
||||
}
|
||||
interface ModifiersArray extends NodeArray<Node> {
|
||||
interface ModifiersArray extends NodeArray<Modifier> {
|
||||
flags: number;
|
||||
}
|
||||
interface Modifier extends Node {
|
||||
}
|
||||
interface Identifier extends PrimaryExpression {
|
||||
text: string;
|
||||
originalKeywordKind?: SyntaxKind;
|
||||
@@ -393,6 +401,9 @@ declare namespace ts {
|
||||
_declarationBrand: any;
|
||||
name?: DeclarationName;
|
||||
}
|
||||
interface DeclarationStatement extends Declaration, Statement {
|
||||
name?: Identifier;
|
||||
}
|
||||
interface ComputedPropertyName extends Node {
|
||||
expression: Expression;
|
||||
}
|
||||
@@ -405,10 +416,15 @@ declare namespace ts {
|
||||
expression?: Expression;
|
||||
}
|
||||
interface SignatureDeclaration extends Declaration {
|
||||
name?: PropertyName;
|
||||
typeParameters?: NodeArray<TypeParameterDeclaration>;
|
||||
parameters: NodeArray<ParameterDeclaration>;
|
||||
type?: TypeNode;
|
||||
}
|
||||
interface CallSignatureDeclaration extends SignatureDeclaration, TypeElement {
|
||||
}
|
||||
interface ConstructSignatureDeclaration extends SignatureDeclaration, TypeElement {
|
||||
}
|
||||
interface VariableDeclaration extends Declaration {
|
||||
parent?: VariableDeclarationList;
|
||||
name: Identifier | BindingPattern;
|
||||
@@ -431,18 +447,25 @@ declare namespace ts {
|
||||
name: Identifier | BindingPattern;
|
||||
initializer?: Expression;
|
||||
}
|
||||
interface PropertyDeclaration extends Declaration, ClassElement {
|
||||
name: DeclarationName;
|
||||
interface PropertySignature extends TypeElement {
|
||||
name: PropertyName;
|
||||
questionToken?: Node;
|
||||
type?: TypeNode;
|
||||
initializer?: Expression;
|
||||
}
|
||||
interface PropertyDeclaration extends ClassElement {
|
||||
questionToken?: Node;
|
||||
name: PropertyName;
|
||||
type?: TypeNode;
|
||||
initializer?: Expression;
|
||||
}
|
||||
interface ObjectLiteralElement extends Declaration {
|
||||
_objectLiteralBrandBrand: any;
|
||||
name?: PropertyName;
|
||||
}
|
||||
interface PropertyAssignment extends ObjectLiteralElement {
|
||||
_propertyAssignmentBrand: any;
|
||||
name: DeclarationName;
|
||||
name: PropertyName;
|
||||
questionToken?: Node;
|
||||
initializer: Expression;
|
||||
}
|
||||
@@ -460,9 +483,16 @@ declare namespace ts {
|
||||
type?: TypeNode;
|
||||
initializer?: Expression;
|
||||
}
|
||||
interface PropertyLikeDeclaration extends Declaration {
|
||||
name: PropertyName;
|
||||
}
|
||||
interface BindingPattern extends Node {
|
||||
elements: NodeArray<BindingElement>;
|
||||
}
|
||||
interface ObjectBindingPattern extends BindingPattern {
|
||||
}
|
||||
interface ArrayBindingPattern extends BindingPattern {
|
||||
}
|
||||
/**
|
||||
* Several node kinds share function-like features such as a signature,
|
||||
* a name, and a body. These nodes should extend FunctionLikeDeclaration.
|
||||
@@ -477,45 +507,61 @@ declare namespace ts {
|
||||
questionToken?: Node;
|
||||
body?: Block | Expression;
|
||||
}
|
||||
interface FunctionDeclaration extends FunctionLikeDeclaration, Statement {
|
||||
interface FunctionDeclaration extends FunctionLikeDeclaration, DeclarationStatement {
|
||||
name?: Identifier;
|
||||
body?: Block;
|
||||
body?: FunctionBody;
|
||||
}
|
||||
interface MethodSignature extends SignatureDeclaration, TypeElement {
|
||||
name: PropertyName;
|
||||
}
|
||||
interface MethodDeclaration extends FunctionLikeDeclaration, ClassElement, ObjectLiteralElement {
|
||||
body?: Block;
|
||||
name: PropertyName;
|
||||
body?: FunctionBody;
|
||||
}
|
||||
interface ConstructorDeclaration extends FunctionLikeDeclaration, ClassElement {
|
||||
body?: Block;
|
||||
body?: FunctionBody;
|
||||
}
|
||||
interface SemicolonClassElement extends ClassElement {
|
||||
_semicolonClassElementBrand: any;
|
||||
}
|
||||
interface AccessorDeclaration extends FunctionLikeDeclaration, ClassElement, ObjectLiteralElement {
|
||||
_accessorDeclarationBrand: any;
|
||||
body: Block;
|
||||
name: PropertyName;
|
||||
body: FunctionBody;
|
||||
}
|
||||
interface IndexSignatureDeclaration extends SignatureDeclaration, ClassElement {
|
||||
interface GetAccessorDeclaration extends AccessorDeclaration {
|
||||
}
|
||||
interface SetAccessorDeclaration extends AccessorDeclaration {
|
||||
}
|
||||
interface IndexSignatureDeclaration extends SignatureDeclaration, ClassElement, TypeElement {
|
||||
_indexSignatureDeclarationBrand: any;
|
||||
}
|
||||
interface TypeNode extends Node {
|
||||
_typeNodeBrand: any;
|
||||
}
|
||||
interface ThisTypeNode extends TypeNode {
|
||||
_thisTypeNodeBrand: any;
|
||||
}
|
||||
interface FunctionOrConstructorTypeNode extends TypeNode, SignatureDeclaration {
|
||||
_functionOrConstructorTypeNodeBrand: any;
|
||||
}
|
||||
interface FunctionTypeNode extends FunctionOrConstructorTypeNode {
|
||||
}
|
||||
interface ConstructorTypeNode extends FunctionOrConstructorTypeNode {
|
||||
}
|
||||
interface TypeReferenceNode extends TypeNode {
|
||||
typeName: EntityName;
|
||||
typeArguments?: NodeArray<TypeNode>;
|
||||
}
|
||||
interface TypePredicateNode extends TypeNode {
|
||||
parameterName: Identifier;
|
||||
parameterName: Identifier | ThisTypeNode;
|
||||
type: TypeNode;
|
||||
}
|
||||
interface TypeQueryNode extends TypeNode {
|
||||
exprName: EntityName;
|
||||
}
|
||||
interface TypeLiteralNode extends TypeNode, Declaration {
|
||||
members: NodeArray<Node>;
|
||||
members: NodeArray<TypeElement>;
|
||||
}
|
||||
interface ArrayTypeNode extends TypeNode {
|
||||
elementType: TypeNode;
|
||||
@@ -533,13 +579,18 @@ declare namespace ts {
|
||||
interface ParenthesizedTypeNode extends TypeNode {
|
||||
type: TypeNode;
|
||||
}
|
||||
interface StringLiteral extends LiteralExpression, TypeNode {
|
||||
interface StringLiteralTypeNode extends LiteralLikeNode, TypeNode {
|
||||
_stringLiteralTypeBrand: any;
|
||||
}
|
||||
interface StringLiteral extends LiteralExpression {
|
||||
_stringLiteralBrand: any;
|
||||
}
|
||||
interface Expression extends Node {
|
||||
_expressionBrand: any;
|
||||
contextualType?: Type;
|
||||
}
|
||||
interface OmittedExpression extends Expression {
|
||||
}
|
||||
interface UnaryExpression extends Expression {
|
||||
_unaryExpressionBrand: any;
|
||||
}
|
||||
@@ -594,25 +645,34 @@ declare namespace ts {
|
||||
colonToken: Node;
|
||||
whenFalse: Expression;
|
||||
}
|
||||
type FunctionBody = Block;
|
||||
type ConciseBody = FunctionBody | Expression;
|
||||
interface FunctionExpression extends PrimaryExpression, FunctionLikeDeclaration {
|
||||
name?: Identifier;
|
||||
body: Block | Expression;
|
||||
body: FunctionBody;
|
||||
}
|
||||
interface ArrowFunction extends Expression, FunctionLikeDeclaration {
|
||||
equalsGreaterThanToken: Node;
|
||||
body: ConciseBody;
|
||||
}
|
||||
interface LiteralExpression extends PrimaryExpression {
|
||||
interface LiteralLikeNode extends Node {
|
||||
text: string;
|
||||
isUnterminated?: boolean;
|
||||
hasExtendedUnicodeEscape?: boolean;
|
||||
}
|
||||
interface LiteralExpression extends LiteralLikeNode, PrimaryExpression {
|
||||
_literalExpressionBrand: any;
|
||||
}
|
||||
interface TemplateLiteralFragment extends LiteralLikeNode {
|
||||
_templateLiteralFragmentBrand: any;
|
||||
}
|
||||
interface TemplateExpression extends PrimaryExpression {
|
||||
head: LiteralExpression;
|
||||
head: TemplateLiteralFragment;
|
||||
templateSpans: NodeArray<TemplateSpan>;
|
||||
}
|
||||
interface TemplateSpan extends Node {
|
||||
expression: Expression;
|
||||
literal: LiteralExpression;
|
||||
literal: TemplateLiteralFragment;
|
||||
}
|
||||
interface ParenthesizedExpression extends PrimaryExpression {
|
||||
expression: Expression;
|
||||
@@ -694,6 +754,14 @@ declare namespace ts {
|
||||
interface Statement extends Node {
|
||||
_statementBrand: any;
|
||||
}
|
||||
interface EmptyStatement extends Statement {
|
||||
}
|
||||
interface DebuggerStatement extends Statement {
|
||||
}
|
||||
interface MissingDeclaration extends DeclarationStatement, ClassElement, ObjectLiteralElement, TypeElement {
|
||||
name?: Identifier;
|
||||
}
|
||||
type BlockLike = SourceFile | Block | ModuleBlock | CaseClause;
|
||||
interface Block extends Statement {
|
||||
statements: NodeArray<Statement>;
|
||||
}
|
||||
@@ -730,9 +798,13 @@ declare namespace ts {
|
||||
initializer: VariableDeclarationList | Expression;
|
||||
expression: Expression;
|
||||
}
|
||||
interface BreakOrContinueStatement extends Statement {
|
||||
interface BreakStatement extends Statement {
|
||||
label?: Identifier;
|
||||
}
|
||||
interface ContinueStatement extends Statement {
|
||||
label?: Identifier;
|
||||
}
|
||||
type BreakOrContinueStatement = BreakStatement | ContinueStatement;
|
||||
interface ReturnStatement extends Statement {
|
||||
expression?: Expression;
|
||||
}
|
||||
@@ -748,7 +820,7 @@ declare namespace ts {
|
||||
clauses: NodeArray<CaseOrDefaultClause>;
|
||||
}
|
||||
interface CaseClause extends Node {
|
||||
expression?: Expression;
|
||||
expression: Expression;
|
||||
statements: NodeArray<Statement>;
|
||||
}
|
||||
interface DefaultClause extends Node {
|
||||
@@ -777,24 +849,31 @@ declare namespace ts {
|
||||
heritageClauses?: NodeArray<HeritageClause>;
|
||||
members: NodeArray<ClassElement>;
|
||||
}
|
||||
interface ClassDeclaration extends ClassLikeDeclaration, Statement {
|
||||
interface ClassDeclaration extends ClassLikeDeclaration, DeclarationStatement {
|
||||
name?: Identifier;
|
||||
}
|
||||
interface ClassExpression extends ClassLikeDeclaration, PrimaryExpression {
|
||||
}
|
||||
interface ClassElement extends Declaration {
|
||||
_classElementBrand: any;
|
||||
name?: PropertyName;
|
||||
}
|
||||
interface InterfaceDeclaration extends Declaration, Statement {
|
||||
interface TypeElement extends Declaration {
|
||||
_typeElementBrand: any;
|
||||
name?: PropertyName;
|
||||
questionToken?: Node;
|
||||
}
|
||||
interface InterfaceDeclaration extends DeclarationStatement {
|
||||
name: Identifier;
|
||||
typeParameters?: NodeArray<TypeParameterDeclaration>;
|
||||
heritageClauses?: NodeArray<HeritageClause>;
|
||||
members: NodeArray<Declaration>;
|
||||
members: NodeArray<TypeElement>;
|
||||
}
|
||||
interface HeritageClause extends Node {
|
||||
token: SyntaxKind;
|
||||
types?: NodeArray<ExpressionWithTypeArguments>;
|
||||
}
|
||||
interface TypeAliasDeclaration extends Declaration, Statement {
|
||||
interface TypeAliasDeclaration extends DeclarationStatement {
|
||||
name: Identifier;
|
||||
typeParameters?: NodeArray<TypeParameterDeclaration>;
|
||||
type: TypeNode;
|
||||
@@ -803,18 +882,19 @@ declare namespace ts {
|
||||
name: DeclarationName;
|
||||
initializer?: Expression;
|
||||
}
|
||||
interface EnumDeclaration extends Declaration, Statement {
|
||||
interface EnumDeclaration extends DeclarationStatement {
|
||||
name: Identifier;
|
||||
members: NodeArray<EnumMember>;
|
||||
}
|
||||
interface ModuleDeclaration extends Declaration, Statement {
|
||||
type ModuleBody = ModuleBlock | ModuleDeclaration;
|
||||
interface ModuleDeclaration extends DeclarationStatement {
|
||||
name: Identifier | LiteralExpression;
|
||||
body: ModuleBlock | ModuleDeclaration;
|
||||
}
|
||||
interface ModuleBlock extends Node, Statement {
|
||||
statements: NodeArray<Statement>;
|
||||
}
|
||||
interface ImportEqualsDeclaration extends Declaration, Statement {
|
||||
interface ImportEqualsDeclaration extends DeclarationStatement {
|
||||
name: Identifier;
|
||||
moduleReference: EntityName | ExternalModuleReference;
|
||||
}
|
||||
@@ -832,22 +912,27 @@ declare namespace ts {
|
||||
interface NamespaceImport extends Declaration {
|
||||
name: Identifier;
|
||||
}
|
||||
interface ExportDeclaration extends Declaration, Statement {
|
||||
interface ExportDeclaration extends DeclarationStatement {
|
||||
exportClause?: NamedExports;
|
||||
moduleSpecifier?: Expression;
|
||||
}
|
||||
interface NamedImportsOrExports extends Node {
|
||||
elements: NodeArray<ImportOrExportSpecifier>;
|
||||
interface NamedImports extends Node {
|
||||
elements: NodeArray<ImportSpecifier>;
|
||||
}
|
||||
type NamedImports = NamedImportsOrExports;
|
||||
type NamedExports = NamedImportsOrExports;
|
||||
interface ImportOrExportSpecifier extends Declaration {
|
||||
interface NamedExports extends Node {
|
||||
elements: NodeArray<ExportSpecifier>;
|
||||
}
|
||||
type NamedImportsOrExports = NamedImports | NamedExports;
|
||||
interface ImportSpecifier extends Declaration {
|
||||
propertyName?: Identifier;
|
||||
name: Identifier;
|
||||
}
|
||||
type ImportSpecifier = ImportOrExportSpecifier;
|
||||
type ExportSpecifier = ImportOrExportSpecifier;
|
||||
interface ExportAssignment extends Declaration, Statement {
|
||||
interface ExportSpecifier extends Declaration {
|
||||
propertyName?: Identifier;
|
||||
name: Identifier;
|
||||
}
|
||||
type ImportOrExportSpecifier = ImportSpecifier | ExportSpecifier;
|
||||
interface ExportAssignment extends DeclarationStatement {
|
||||
isExportEquals?: boolean;
|
||||
expression: Expression;
|
||||
}
|
||||
@@ -908,7 +993,7 @@ declare namespace ts {
|
||||
interface JSDocThisType extends JSDocType {
|
||||
type: JSDocType;
|
||||
}
|
||||
interface JSDocRecordMember extends PropertyDeclaration {
|
||||
interface JSDocRecordMember extends PropertySignature {
|
||||
name: Identifier | LiteralExpression;
|
||||
type?: JSDocType;
|
||||
}
|
||||
@@ -934,16 +1019,17 @@ declare namespace ts {
|
||||
postParameterName?: Identifier;
|
||||
isBracketed: boolean;
|
||||
}
|
||||
interface AmdDependency {
|
||||
path: string;
|
||||
name: string;
|
||||
}
|
||||
interface SourceFile extends Declaration {
|
||||
statements: NodeArray<Statement>;
|
||||
endOfFileToken: Node;
|
||||
fileName: string;
|
||||
path: Path;
|
||||
text: string;
|
||||
amdDependencies: {
|
||||
path: string;
|
||||
name: string;
|
||||
}[];
|
||||
amdDependencies: AmdDependency[];
|
||||
moduleName: string;
|
||||
referencedFiles: FileReference[];
|
||||
languageVariant: LanguageVariant;
|
||||
@@ -1053,6 +1139,7 @@ declare namespace ts {
|
||||
getReturnTypeOfSignature(signature: Signature): Type;
|
||||
getSymbolsInScope(location: Node, meaning: SymbolFlags): Symbol[];
|
||||
getSymbolAtLocation(node: Node): Symbol;
|
||||
getSymbolsOfParameterPropertyDeclaration(parameter: ParameterDeclaration, parameterName: string): Symbol[];
|
||||
getShorthandAssignmentValueSymbol(location: Node): Symbol;
|
||||
getTypeAtLocation(node: Node): Type;
|
||||
typeToString(type: Type, enclosingDeclaration?: Node, flags?: TypeFormatFlags): string;
|
||||
@@ -1078,7 +1165,7 @@ declare namespace ts {
|
||||
interface SymbolDisplayBuilder {
|
||||
buildTypeDisplay(type: Type, writer: SymbolWriter, enclosingDeclaration?: Node, flags?: TypeFormatFlags): void;
|
||||
buildSymbolDisplay(symbol: Symbol, writer: SymbolWriter, enclosingDeclaration?: Node, meaning?: SymbolFlags, flags?: SymbolFormatFlags): void;
|
||||
buildSignatureDisplay(signatures: Signature, writer: SymbolWriter, enclosingDeclaration?: Node, flags?: TypeFormatFlags): void;
|
||||
buildSignatureDisplay(signatures: Signature, writer: SymbolWriter, enclosingDeclaration?: Node, flags?: TypeFormatFlags, kind?: SignatureKind): void;
|
||||
buildParameterDisplay(parameter: Symbol, writer: SymbolWriter, enclosingDeclaration?: Node, flags?: TypeFormatFlags): void;
|
||||
buildTypeParameterDisplay(tp: TypeParameter, writer: SymbolWriter, enclosingDeclaration?: Node, flags?: TypeFormatFlags): void;
|
||||
buildTypeParameterDisplayFromSymbol(symbol: Symbol, writer: SymbolWriter, enclosingDeclaraiton?: Node, flags?: TypeFormatFlags): void;
|
||||
@@ -1117,10 +1204,20 @@ declare namespace ts {
|
||||
WriteTypeParametersOrArguments = 1,
|
||||
UseOnlyExternalAliasing = 2,
|
||||
}
|
||||
enum TypePredicateKind {
|
||||
This = 0,
|
||||
Identifier = 1,
|
||||
}
|
||||
interface TypePredicate {
|
||||
kind: TypePredicateKind;
|
||||
type: Type;
|
||||
}
|
||||
interface ThisTypePredicate extends TypePredicate {
|
||||
_thisTypePredicateBrand: any;
|
||||
}
|
||||
interface IdentifierTypePredicate extends TypePredicate {
|
||||
parameterName: string;
|
||||
parameterIndex: number;
|
||||
type: Type;
|
||||
}
|
||||
enum SymbolFlags {
|
||||
None = 0,
|
||||
@@ -1222,6 +1319,7 @@ declare namespace ts {
|
||||
ESSymbol = 16777216,
|
||||
ThisType = 33554432,
|
||||
ObjectLiteralPatternWithComputedProperties = 67108864,
|
||||
PredicateType = 134217728,
|
||||
StringLike = 258,
|
||||
NumberLike = 132,
|
||||
ObjectType = 80896,
|
||||
@@ -1234,6 +1332,9 @@ declare namespace ts {
|
||||
symbol?: Symbol;
|
||||
pattern?: DestructuringPattern;
|
||||
}
|
||||
interface PredicateType extends Type {
|
||||
predicate: ThisTypePredicate | IdentifierTypePredicate;
|
||||
}
|
||||
interface StringLiteralType extends Type {
|
||||
text: string;
|
||||
}
|
||||
@@ -1279,7 +1380,6 @@ declare namespace ts {
|
||||
declaration: SignatureDeclaration;
|
||||
typeParameters: TypeParameter[];
|
||||
parameters: Symbol[];
|
||||
typePredicate?: TypePredicate;
|
||||
}
|
||||
enum IndexKind {
|
||||
String = 0,
|
||||
@@ -1331,6 +1431,7 @@ declare namespace ts {
|
||||
inlineSourceMap?: boolean;
|
||||
inlineSources?: boolean;
|
||||
jsx?: JsxEmit;
|
||||
reactNamespace?: string;
|
||||
listFiles?: boolean;
|
||||
locale?: string;
|
||||
mapRoot?: string;
|
||||
@@ -1366,6 +1467,8 @@ declare namespace ts {
|
||||
noImplicitReturns?: boolean;
|
||||
noFallthroughCasesInSwitch?: boolean;
|
||||
forceConsistentCasingInFileNames?: boolean;
|
||||
allowSyntheticDefaultImports?: boolean;
|
||||
allowJs?: boolean;
|
||||
[option: string]: string | number | boolean;
|
||||
}
|
||||
enum ModuleKind {
|
||||
@@ -1409,6 +1512,7 @@ declare namespace ts {
|
||||
interface ModuleResolutionHost {
|
||||
fileExists(fileName: string): boolean;
|
||||
readFile(fileName: string): string;
|
||||
directoryExists?(directoryName: string): boolean;
|
||||
}
|
||||
interface ResolvedModule {
|
||||
resolvedFileName: string;
|
||||
@@ -1537,6 +1641,7 @@ declare namespace ts {
|
||||
*/
|
||||
function collapseTextChangeRangesAcrossMultipleVersions(changes: TextChangeRange[]): TextChangeRange;
|
||||
function getTypeParameterOwner(d: Declaration): Declaration;
|
||||
function isParameterPropertyDeclaration(node: ParameterDeclaration): boolean;
|
||||
}
|
||||
declare namespace ts {
|
||||
function createNode(kind: SyntaxKind, pos?: number, end?: number): Node;
|
||||
@@ -1546,10 +1651,10 @@ declare namespace ts {
|
||||
}
|
||||
declare namespace ts {
|
||||
const version: string;
|
||||
function findConfigFile(searchPath: string): string;
|
||||
function findConfigFile(searchPath: string, fileExists: (fileName: string) => boolean): string;
|
||||
function resolveTripleslashReference(moduleName: string, containingFile: string): string;
|
||||
function resolveModuleName(moduleName: string, containingFile: string, compilerOptions: CompilerOptions, host: ModuleResolutionHost): ResolvedModuleWithFailedLookupLocations;
|
||||
function nodeModuleNameResolver(moduleName: string, containingFile: string, host: ModuleResolutionHost): ResolvedModuleWithFailedLookupLocations;
|
||||
function nodeModuleNameResolver(moduleName: string, containingFile: string, compilerOptions: CompilerOptions, host: ModuleResolutionHost): ResolvedModuleWithFailedLookupLocations;
|
||||
function classicNameResolver(moduleName: string, containingFile: string, compilerOptions: CompilerOptions, host: ModuleResolutionHost): ResolvedModuleWithFailedLookupLocations;
|
||||
function createCompilerHost(options: CompilerOptions, setParentNodes?: boolean): CompilerHost;
|
||||
function getPreEmitDiagnostics(program: Program, sourceFile?: SourceFile, cancellationToken?: CancellationToken): Diagnostic[];
|
||||
@@ -1582,7 +1687,7 @@ declare namespace ts {
|
||||
* @param basePath A root directory to resolve relative path entries in the config
|
||||
* file to. e.g. outDir
|
||||
*/
|
||||
function parseJsonConfigFileContent(json: any, host: ParseConfigHost, basePath: string): ParsedCommandLine;
|
||||
function parseJsonConfigFileContent(json: any, host: ParseConfigHost, basePath: string, existingOptions?: CompilerOptions): ParsedCommandLine;
|
||||
function convertCompilerOptionsFromJson(jsonOptions: any, basePath: string): {
|
||||
options: CompilerOptions;
|
||||
errors: Diagnostic[];
|
||||
@@ -1590,7 +1695,7 @@ declare namespace ts {
|
||||
}
|
||||
declare namespace ts {
|
||||
/** The version of the language service API */
|
||||
let servicesVersion: string;
|
||||
const servicesVersion: string;
|
||||
interface Node {
|
||||
getSourceFile(): SourceFile;
|
||||
getChildCount(sourceFile?: SourceFile): number;
|
||||
@@ -1659,7 +1764,7 @@ declare namespace ts {
|
||||
/** Releases all resources held by this script snapshot */
|
||||
dispose?(): void;
|
||||
}
|
||||
module ScriptSnapshot {
|
||||
namespace ScriptSnapshot {
|
||||
function fromString(text: string): IScriptSnapshot;
|
||||
}
|
||||
interface PreProcessedFileInfo {
|
||||
@@ -1687,6 +1792,7 @@ declare namespace ts {
|
||||
error?(s: string): void;
|
||||
useCaseSensitiveFileNames?(): boolean;
|
||||
resolveModuleNames?(moduleNames: string[], containingFile: string): ResolvedModule[];
|
||||
directoryExists?(directoryName: string): boolean;
|
||||
}
|
||||
interface LanguageService {
|
||||
cleanupSemanticCache(): void;
|
||||
@@ -1782,7 +1888,7 @@ declare namespace ts {
|
||||
fileName: string;
|
||||
highlightSpans: HighlightSpan[];
|
||||
}
|
||||
module HighlightSpanKind {
|
||||
namespace HighlightSpanKind {
|
||||
const none: string;
|
||||
const definition: string;
|
||||
const reference: string;
|
||||
@@ -1824,6 +1930,7 @@ declare namespace ts {
|
||||
InsertSpaceAfterFunctionKeywordForAnonymousFunctions: boolean;
|
||||
InsertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis: boolean;
|
||||
InsertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets: boolean;
|
||||
InsertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces: boolean;
|
||||
PlaceOpenBraceOnNewLineForFunctions: boolean;
|
||||
PlaceOpenBraceOnNewLineForControlBlocks: boolean;
|
||||
[s: string]: boolean | number | string;
|
||||
@@ -2068,7 +2175,7 @@ declare namespace ts {
|
||||
releaseDocument(fileName: string, compilationSettings: CompilerOptions): void;
|
||||
reportStats(): string;
|
||||
}
|
||||
module ScriptElementKind {
|
||||
namespace ScriptElementKind {
|
||||
const unknown: string;
|
||||
const warning: string;
|
||||
const keyword: string;
|
||||
@@ -2099,7 +2206,7 @@ declare namespace ts {
|
||||
const constElement: string;
|
||||
const letElement: string;
|
||||
}
|
||||
module ScriptElementKindModifier {
|
||||
namespace ScriptElementKindModifier {
|
||||
const none: string;
|
||||
const publicMemberModifier: string;
|
||||
const privateMemberModifier: string;
|
||||
|
||||
+5708
-4963
File diff suppressed because it is too large
Load Diff
Vendored
+274
-167
@@ -194,118 +194,120 @@ declare namespace ts {
|
||||
UnionType = 158,
|
||||
IntersectionType = 159,
|
||||
ParenthesizedType = 160,
|
||||
ObjectBindingPattern = 161,
|
||||
ArrayBindingPattern = 162,
|
||||
BindingElement = 163,
|
||||
ArrayLiteralExpression = 164,
|
||||
ObjectLiteralExpression = 165,
|
||||
PropertyAccessExpression = 166,
|
||||
ElementAccessExpression = 167,
|
||||
CallExpression = 168,
|
||||
NewExpression = 169,
|
||||
TaggedTemplateExpression = 170,
|
||||
TypeAssertionExpression = 171,
|
||||
ParenthesizedExpression = 172,
|
||||
FunctionExpression = 173,
|
||||
ArrowFunction = 174,
|
||||
DeleteExpression = 175,
|
||||
TypeOfExpression = 176,
|
||||
VoidExpression = 177,
|
||||
AwaitExpression = 178,
|
||||
PrefixUnaryExpression = 179,
|
||||
PostfixUnaryExpression = 180,
|
||||
BinaryExpression = 181,
|
||||
ConditionalExpression = 182,
|
||||
TemplateExpression = 183,
|
||||
YieldExpression = 184,
|
||||
SpreadElementExpression = 185,
|
||||
ClassExpression = 186,
|
||||
OmittedExpression = 187,
|
||||
ExpressionWithTypeArguments = 188,
|
||||
AsExpression = 189,
|
||||
TemplateSpan = 190,
|
||||
SemicolonClassElement = 191,
|
||||
Block = 192,
|
||||
VariableStatement = 193,
|
||||
EmptyStatement = 194,
|
||||
ExpressionStatement = 195,
|
||||
IfStatement = 196,
|
||||
DoStatement = 197,
|
||||
WhileStatement = 198,
|
||||
ForStatement = 199,
|
||||
ForInStatement = 200,
|
||||
ForOfStatement = 201,
|
||||
ContinueStatement = 202,
|
||||
BreakStatement = 203,
|
||||
ReturnStatement = 204,
|
||||
WithStatement = 205,
|
||||
SwitchStatement = 206,
|
||||
LabeledStatement = 207,
|
||||
ThrowStatement = 208,
|
||||
TryStatement = 209,
|
||||
DebuggerStatement = 210,
|
||||
VariableDeclaration = 211,
|
||||
VariableDeclarationList = 212,
|
||||
FunctionDeclaration = 213,
|
||||
ClassDeclaration = 214,
|
||||
InterfaceDeclaration = 215,
|
||||
TypeAliasDeclaration = 216,
|
||||
EnumDeclaration = 217,
|
||||
ModuleDeclaration = 218,
|
||||
ModuleBlock = 219,
|
||||
CaseBlock = 220,
|
||||
ImportEqualsDeclaration = 221,
|
||||
ImportDeclaration = 222,
|
||||
ImportClause = 223,
|
||||
NamespaceImport = 224,
|
||||
NamedImports = 225,
|
||||
ImportSpecifier = 226,
|
||||
ExportAssignment = 227,
|
||||
ExportDeclaration = 228,
|
||||
NamedExports = 229,
|
||||
ExportSpecifier = 230,
|
||||
MissingDeclaration = 231,
|
||||
ExternalModuleReference = 232,
|
||||
JsxElement = 233,
|
||||
JsxSelfClosingElement = 234,
|
||||
JsxOpeningElement = 235,
|
||||
JsxText = 236,
|
||||
JsxClosingElement = 237,
|
||||
JsxAttribute = 238,
|
||||
JsxSpreadAttribute = 239,
|
||||
JsxExpression = 240,
|
||||
CaseClause = 241,
|
||||
DefaultClause = 242,
|
||||
HeritageClause = 243,
|
||||
CatchClause = 244,
|
||||
PropertyAssignment = 245,
|
||||
ShorthandPropertyAssignment = 246,
|
||||
EnumMember = 247,
|
||||
SourceFile = 248,
|
||||
JSDocTypeExpression = 249,
|
||||
JSDocAllType = 250,
|
||||
JSDocUnknownType = 251,
|
||||
JSDocArrayType = 252,
|
||||
JSDocUnionType = 253,
|
||||
JSDocTupleType = 254,
|
||||
JSDocNullableType = 255,
|
||||
JSDocNonNullableType = 256,
|
||||
JSDocRecordType = 257,
|
||||
JSDocRecordMember = 258,
|
||||
JSDocTypeReference = 259,
|
||||
JSDocOptionalType = 260,
|
||||
JSDocFunctionType = 261,
|
||||
JSDocVariadicType = 262,
|
||||
JSDocConstructorType = 263,
|
||||
JSDocThisType = 264,
|
||||
JSDocComment = 265,
|
||||
JSDocTag = 266,
|
||||
JSDocParameterTag = 267,
|
||||
JSDocReturnTag = 268,
|
||||
JSDocTypeTag = 269,
|
||||
JSDocTemplateTag = 270,
|
||||
SyntaxList = 271,
|
||||
Count = 272,
|
||||
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,
|
||||
FirstAssignment = 56,
|
||||
LastAssignment = 68,
|
||||
FirstReservedWord = 70,
|
||||
@@ -314,8 +316,8 @@ declare namespace ts {
|
||||
LastKeyword = 134,
|
||||
FirstFutureReservedWord = 106,
|
||||
LastFutureReservedWord = 114,
|
||||
FirstTypeNode = 151,
|
||||
LastTypeNode = 160,
|
||||
FirstTypeNode = 150,
|
||||
LastTypeNode = 162,
|
||||
FirstPunctuation = 15,
|
||||
LastPunctuation = 68,
|
||||
FirstToken = 0,
|
||||
@@ -359,10 +361,14 @@ declare namespace ts {
|
||||
}
|
||||
enum JsxFlags {
|
||||
None = 0,
|
||||
/** An element from a named property of the JSX.IntrinsicElements interface */
|
||||
IntrinsicNamedElement = 1,
|
||||
/** An element inferred from the string index signature of the JSX.IntrinsicElements interface */
|
||||
IntrinsicIndexedElement = 2,
|
||||
ClassElement = 4,
|
||||
UnknownElement = 8,
|
||||
/** An element backed by a class, class-like, or function value */
|
||||
ValueElement = 4,
|
||||
/** Element resolution failed */
|
||||
UnknownElement = 16,
|
||||
IntrinsicElement = 3,
|
||||
}
|
||||
interface Node extends TextRange {
|
||||
@@ -375,9 +381,11 @@ declare namespace ts {
|
||||
interface NodeArray<T> extends Array<T>, TextRange {
|
||||
hasTrailingComma?: boolean;
|
||||
}
|
||||
interface ModifiersArray extends NodeArray<Node> {
|
||||
interface ModifiersArray extends NodeArray<Modifier> {
|
||||
flags: number;
|
||||
}
|
||||
interface Modifier extends Node {
|
||||
}
|
||||
interface Identifier extends PrimaryExpression {
|
||||
text: string;
|
||||
originalKeywordKind?: SyntaxKind;
|
||||
@@ -393,6 +401,9 @@ declare namespace ts {
|
||||
_declarationBrand: any;
|
||||
name?: DeclarationName;
|
||||
}
|
||||
interface DeclarationStatement extends Declaration, Statement {
|
||||
name?: Identifier;
|
||||
}
|
||||
interface ComputedPropertyName extends Node {
|
||||
expression: Expression;
|
||||
}
|
||||
@@ -405,10 +416,15 @@ declare namespace ts {
|
||||
expression?: Expression;
|
||||
}
|
||||
interface SignatureDeclaration extends Declaration {
|
||||
name?: PropertyName;
|
||||
typeParameters?: NodeArray<TypeParameterDeclaration>;
|
||||
parameters: NodeArray<ParameterDeclaration>;
|
||||
type?: TypeNode;
|
||||
}
|
||||
interface CallSignatureDeclaration extends SignatureDeclaration, TypeElement {
|
||||
}
|
||||
interface ConstructSignatureDeclaration extends SignatureDeclaration, TypeElement {
|
||||
}
|
||||
interface VariableDeclaration extends Declaration {
|
||||
parent?: VariableDeclarationList;
|
||||
name: Identifier | BindingPattern;
|
||||
@@ -431,18 +447,25 @@ declare namespace ts {
|
||||
name: Identifier | BindingPattern;
|
||||
initializer?: Expression;
|
||||
}
|
||||
interface PropertyDeclaration extends Declaration, ClassElement {
|
||||
name: DeclarationName;
|
||||
interface PropertySignature extends TypeElement {
|
||||
name: PropertyName;
|
||||
questionToken?: Node;
|
||||
type?: TypeNode;
|
||||
initializer?: Expression;
|
||||
}
|
||||
interface PropertyDeclaration extends ClassElement {
|
||||
questionToken?: Node;
|
||||
name: PropertyName;
|
||||
type?: TypeNode;
|
||||
initializer?: Expression;
|
||||
}
|
||||
interface ObjectLiteralElement extends Declaration {
|
||||
_objectLiteralBrandBrand: any;
|
||||
name?: PropertyName;
|
||||
}
|
||||
interface PropertyAssignment extends ObjectLiteralElement {
|
||||
_propertyAssignmentBrand: any;
|
||||
name: DeclarationName;
|
||||
name: PropertyName;
|
||||
questionToken?: Node;
|
||||
initializer: Expression;
|
||||
}
|
||||
@@ -460,9 +483,16 @@ declare namespace ts {
|
||||
type?: TypeNode;
|
||||
initializer?: Expression;
|
||||
}
|
||||
interface PropertyLikeDeclaration extends Declaration {
|
||||
name: PropertyName;
|
||||
}
|
||||
interface BindingPattern extends Node {
|
||||
elements: NodeArray<BindingElement>;
|
||||
}
|
||||
interface ObjectBindingPattern extends BindingPattern {
|
||||
}
|
||||
interface ArrayBindingPattern extends BindingPattern {
|
||||
}
|
||||
/**
|
||||
* Several node kinds share function-like features such as a signature,
|
||||
* a name, and a body. These nodes should extend FunctionLikeDeclaration.
|
||||
@@ -477,45 +507,61 @@ declare namespace ts {
|
||||
questionToken?: Node;
|
||||
body?: Block | Expression;
|
||||
}
|
||||
interface FunctionDeclaration extends FunctionLikeDeclaration, Statement {
|
||||
interface FunctionDeclaration extends FunctionLikeDeclaration, DeclarationStatement {
|
||||
name?: Identifier;
|
||||
body?: Block;
|
||||
body?: FunctionBody;
|
||||
}
|
||||
interface MethodSignature extends SignatureDeclaration, TypeElement {
|
||||
name: PropertyName;
|
||||
}
|
||||
interface MethodDeclaration extends FunctionLikeDeclaration, ClassElement, ObjectLiteralElement {
|
||||
body?: Block;
|
||||
name: PropertyName;
|
||||
body?: FunctionBody;
|
||||
}
|
||||
interface ConstructorDeclaration extends FunctionLikeDeclaration, ClassElement {
|
||||
body?: Block;
|
||||
body?: FunctionBody;
|
||||
}
|
||||
interface SemicolonClassElement extends ClassElement {
|
||||
_semicolonClassElementBrand: any;
|
||||
}
|
||||
interface AccessorDeclaration extends FunctionLikeDeclaration, ClassElement, ObjectLiteralElement {
|
||||
_accessorDeclarationBrand: any;
|
||||
body: Block;
|
||||
name: PropertyName;
|
||||
body: FunctionBody;
|
||||
}
|
||||
interface IndexSignatureDeclaration extends SignatureDeclaration, ClassElement {
|
||||
interface GetAccessorDeclaration extends AccessorDeclaration {
|
||||
}
|
||||
interface SetAccessorDeclaration extends AccessorDeclaration {
|
||||
}
|
||||
interface IndexSignatureDeclaration extends SignatureDeclaration, ClassElement, TypeElement {
|
||||
_indexSignatureDeclarationBrand: any;
|
||||
}
|
||||
interface TypeNode extends Node {
|
||||
_typeNodeBrand: any;
|
||||
}
|
||||
interface ThisTypeNode extends TypeNode {
|
||||
_thisTypeNodeBrand: any;
|
||||
}
|
||||
interface FunctionOrConstructorTypeNode extends TypeNode, SignatureDeclaration {
|
||||
_functionOrConstructorTypeNodeBrand: any;
|
||||
}
|
||||
interface FunctionTypeNode extends FunctionOrConstructorTypeNode {
|
||||
}
|
||||
interface ConstructorTypeNode extends FunctionOrConstructorTypeNode {
|
||||
}
|
||||
interface TypeReferenceNode extends TypeNode {
|
||||
typeName: EntityName;
|
||||
typeArguments?: NodeArray<TypeNode>;
|
||||
}
|
||||
interface TypePredicateNode extends TypeNode {
|
||||
parameterName: Identifier;
|
||||
parameterName: Identifier | ThisTypeNode;
|
||||
type: TypeNode;
|
||||
}
|
||||
interface TypeQueryNode extends TypeNode {
|
||||
exprName: EntityName;
|
||||
}
|
||||
interface TypeLiteralNode extends TypeNode, Declaration {
|
||||
members: NodeArray<Node>;
|
||||
members: NodeArray<TypeElement>;
|
||||
}
|
||||
interface ArrayTypeNode extends TypeNode {
|
||||
elementType: TypeNode;
|
||||
@@ -533,13 +579,18 @@ declare namespace ts {
|
||||
interface ParenthesizedTypeNode extends TypeNode {
|
||||
type: TypeNode;
|
||||
}
|
||||
interface StringLiteral extends LiteralExpression, TypeNode {
|
||||
interface StringLiteralTypeNode extends LiteralLikeNode, TypeNode {
|
||||
_stringLiteralTypeBrand: any;
|
||||
}
|
||||
interface StringLiteral extends LiteralExpression {
|
||||
_stringLiteralBrand: any;
|
||||
}
|
||||
interface Expression extends Node {
|
||||
_expressionBrand: any;
|
||||
contextualType?: Type;
|
||||
}
|
||||
interface OmittedExpression extends Expression {
|
||||
}
|
||||
interface UnaryExpression extends Expression {
|
||||
_unaryExpressionBrand: any;
|
||||
}
|
||||
@@ -594,25 +645,34 @@ declare namespace ts {
|
||||
colonToken: Node;
|
||||
whenFalse: Expression;
|
||||
}
|
||||
type FunctionBody = Block;
|
||||
type ConciseBody = FunctionBody | Expression;
|
||||
interface FunctionExpression extends PrimaryExpression, FunctionLikeDeclaration {
|
||||
name?: Identifier;
|
||||
body: Block | Expression;
|
||||
body: FunctionBody;
|
||||
}
|
||||
interface ArrowFunction extends Expression, FunctionLikeDeclaration {
|
||||
equalsGreaterThanToken: Node;
|
||||
body: ConciseBody;
|
||||
}
|
||||
interface LiteralExpression extends PrimaryExpression {
|
||||
interface LiteralLikeNode extends Node {
|
||||
text: string;
|
||||
isUnterminated?: boolean;
|
||||
hasExtendedUnicodeEscape?: boolean;
|
||||
}
|
||||
interface LiteralExpression extends LiteralLikeNode, PrimaryExpression {
|
||||
_literalExpressionBrand: any;
|
||||
}
|
||||
interface TemplateLiteralFragment extends LiteralLikeNode {
|
||||
_templateLiteralFragmentBrand: any;
|
||||
}
|
||||
interface TemplateExpression extends PrimaryExpression {
|
||||
head: LiteralExpression;
|
||||
head: TemplateLiteralFragment;
|
||||
templateSpans: NodeArray<TemplateSpan>;
|
||||
}
|
||||
interface TemplateSpan extends Node {
|
||||
expression: Expression;
|
||||
literal: LiteralExpression;
|
||||
literal: TemplateLiteralFragment;
|
||||
}
|
||||
interface ParenthesizedExpression extends PrimaryExpression {
|
||||
expression: Expression;
|
||||
@@ -694,6 +754,14 @@ declare namespace ts {
|
||||
interface Statement extends Node {
|
||||
_statementBrand: any;
|
||||
}
|
||||
interface EmptyStatement extends Statement {
|
||||
}
|
||||
interface DebuggerStatement extends Statement {
|
||||
}
|
||||
interface MissingDeclaration extends DeclarationStatement, ClassElement, ObjectLiteralElement, TypeElement {
|
||||
name?: Identifier;
|
||||
}
|
||||
type BlockLike = SourceFile | Block | ModuleBlock | CaseClause;
|
||||
interface Block extends Statement {
|
||||
statements: NodeArray<Statement>;
|
||||
}
|
||||
@@ -730,9 +798,13 @@ declare namespace ts {
|
||||
initializer: VariableDeclarationList | Expression;
|
||||
expression: Expression;
|
||||
}
|
||||
interface BreakOrContinueStatement extends Statement {
|
||||
interface BreakStatement extends Statement {
|
||||
label?: Identifier;
|
||||
}
|
||||
interface ContinueStatement extends Statement {
|
||||
label?: Identifier;
|
||||
}
|
||||
type BreakOrContinueStatement = BreakStatement | ContinueStatement;
|
||||
interface ReturnStatement extends Statement {
|
||||
expression?: Expression;
|
||||
}
|
||||
@@ -748,7 +820,7 @@ declare namespace ts {
|
||||
clauses: NodeArray<CaseOrDefaultClause>;
|
||||
}
|
||||
interface CaseClause extends Node {
|
||||
expression?: Expression;
|
||||
expression: Expression;
|
||||
statements: NodeArray<Statement>;
|
||||
}
|
||||
interface DefaultClause extends Node {
|
||||
@@ -777,24 +849,31 @@ declare namespace ts {
|
||||
heritageClauses?: NodeArray<HeritageClause>;
|
||||
members: NodeArray<ClassElement>;
|
||||
}
|
||||
interface ClassDeclaration extends ClassLikeDeclaration, Statement {
|
||||
interface ClassDeclaration extends ClassLikeDeclaration, DeclarationStatement {
|
||||
name?: Identifier;
|
||||
}
|
||||
interface ClassExpression extends ClassLikeDeclaration, PrimaryExpression {
|
||||
}
|
||||
interface ClassElement extends Declaration {
|
||||
_classElementBrand: any;
|
||||
name?: PropertyName;
|
||||
}
|
||||
interface InterfaceDeclaration extends Declaration, Statement {
|
||||
interface TypeElement extends Declaration {
|
||||
_typeElementBrand: any;
|
||||
name?: PropertyName;
|
||||
questionToken?: Node;
|
||||
}
|
||||
interface InterfaceDeclaration extends DeclarationStatement {
|
||||
name: Identifier;
|
||||
typeParameters?: NodeArray<TypeParameterDeclaration>;
|
||||
heritageClauses?: NodeArray<HeritageClause>;
|
||||
members: NodeArray<Declaration>;
|
||||
members: NodeArray<TypeElement>;
|
||||
}
|
||||
interface HeritageClause extends Node {
|
||||
token: SyntaxKind;
|
||||
types?: NodeArray<ExpressionWithTypeArguments>;
|
||||
}
|
||||
interface TypeAliasDeclaration extends Declaration, Statement {
|
||||
interface TypeAliasDeclaration extends DeclarationStatement {
|
||||
name: Identifier;
|
||||
typeParameters?: NodeArray<TypeParameterDeclaration>;
|
||||
type: TypeNode;
|
||||
@@ -803,18 +882,19 @@ declare namespace ts {
|
||||
name: DeclarationName;
|
||||
initializer?: Expression;
|
||||
}
|
||||
interface EnumDeclaration extends Declaration, Statement {
|
||||
interface EnumDeclaration extends DeclarationStatement {
|
||||
name: Identifier;
|
||||
members: NodeArray<EnumMember>;
|
||||
}
|
||||
interface ModuleDeclaration extends Declaration, Statement {
|
||||
type ModuleBody = ModuleBlock | ModuleDeclaration;
|
||||
interface ModuleDeclaration extends DeclarationStatement {
|
||||
name: Identifier | LiteralExpression;
|
||||
body: ModuleBlock | ModuleDeclaration;
|
||||
}
|
||||
interface ModuleBlock extends Node, Statement {
|
||||
statements: NodeArray<Statement>;
|
||||
}
|
||||
interface ImportEqualsDeclaration extends Declaration, Statement {
|
||||
interface ImportEqualsDeclaration extends DeclarationStatement {
|
||||
name: Identifier;
|
||||
moduleReference: EntityName | ExternalModuleReference;
|
||||
}
|
||||
@@ -832,22 +912,27 @@ declare namespace ts {
|
||||
interface NamespaceImport extends Declaration {
|
||||
name: Identifier;
|
||||
}
|
||||
interface ExportDeclaration extends Declaration, Statement {
|
||||
interface ExportDeclaration extends DeclarationStatement {
|
||||
exportClause?: NamedExports;
|
||||
moduleSpecifier?: Expression;
|
||||
}
|
||||
interface NamedImportsOrExports extends Node {
|
||||
elements: NodeArray<ImportOrExportSpecifier>;
|
||||
interface NamedImports extends Node {
|
||||
elements: NodeArray<ImportSpecifier>;
|
||||
}
|
||||
type NamedImports = NamedImportsOrExports;
|
||||
type NamedExports = NamedImportsOrExports;
|
||||
interface ImportOrExportSpecifier extends Declaration {
|
||||
interface NamedExports extends Node {
|
||||
elements: NodeArray<ExportSpecifier>;
|
||||
}
|
||||
type NamedImportsOrExports = NamedImports | NamedExports;
|
||||
interface ImportSpecifier extends Declaration {
|
||||
propertyName?: Identifier;
|
||||
name: Identifier;
|
||||
}
|
||||
type ImportSpecifier = ImportOrExportSpecifier;
|
||||
type ExportSpecifier = ImportOrExportSpecifier;
|
||||
interface ExportAssignment extends Declaration, Statement {
|
||||
interface ExportSpecifier extends Declaration {
|
||||
propertyName?: Identifier;
|
||||
name: Identifier;
|
||||
}
|
||||
type ImportOrExportSpecifier = ImportSpecifier | ExportSpecifier;
|
||||
interface ExportAssignment extends DeclarationStatement {
|
||||
isExportEquals?: boolean;
|
||||
expression: Expression;
|
||||
}
|
||||
@@ -908,7 +993,7 @@ declare namespace ts {
|
||||
interface JSDocThisType extends JSDocType {
|
||||
type: JSDocType;
|
||||
}
|
||||
interface JSDocRecordMember extends PropertyDeclaration {
|
||||
interface JSDocRecordMember extends PropertySignature {
|
||||
name: Identifier | LiteralExpression;
|
||||
type?: JSDocType;
|
||||
}
|
||||
@@ -934,16 +1019,17 @@ declare namespace ts {
|
||||
postParameterName?: Identifier;
|
||||
isBracketed: boolean;
|
||||
}
|
||||
interface AmdDependency {
|
||||
path: string;
|
||||
name: string;
|
||||
}
|
||||
interface SourceFile extends Declaration {
|
||||
statements: NodeArray<Statement>;
|
||||
endOfFileToken: Node;
|
||||
fileName: string;
|
||||
path: Path;
|
||||
text: string;
|
||||
amdDependencies: {
|
||||
path: string;
|
||||
name: string;
|
||||
}[];
|
||||
amdDependencies: AmdDependency[];
|
||||
moduleName: string;
|
||||
referencedFiles: FileReference[];
|
||||
languageVariant: LanguageVariant;
|
||||
@@ -1053,6 +1139,7 @@ declare namespace ts {
|
||||
getReturnTypeOfSignature(signature: Signature): Type;
|
||||
getSymbolsInScope(location: Node, meaning: SymbolFlags): Symbol[];
|
||||
getSymbolAtLocation(node: Node): Symbol;
|
||||
getSymbolsOfParameterPropertyDeclaration(parameter: ParameterDeclaration, parameterName: string): Symbol[];
|
||||
getShorthandAssignmentValueSymbol(location: Node): Symbol;
|
||||
getTypeAtLocation(node: Node): Type;
|
||||
typeToString(type: Type, enclosingDeclaration?: Node, flags?: TypeFormatFlags): string;
|
||||
@@ -1078,7 +1165,7 @@ declare namespace ts {
|
||||
interface SymbolDisplayBuilder {
|
||||
buildTypeDisplay(type: Type, writer: SymbolWriter, enclosingDeclaration?: Node, flags?: TypeFormatFlags): void;
|
||||
buildSymbolDisplay(symbol: Symbol, writer: SymbolWriter, enclosingDeclaration?: Node, meaning?: SymbolFlags, flags?: SymbolFormatFlags): void;
|
||||
buildSignatureDisplay(signatures: Signature, writer: SymbolWriter, enclosingDeclaration?: Node, flags?: TypeFormatFlags): void;
|
||||
buildSignatureDisplay(signatures: Signature, writer: SymbolWriter, enclosingDeclaration?: Node, flags?: TypeFormatFlags, kind?: SignatureKind): void;
|
||||
buildParameterDisplay(parameter: Symbol, writer: SymbolWriter, enclosingDeclaration?: Node, flags?: TypeFormatFlags): void;
|
||||
buildTypeParameterDisplay(tp: TypeParameter, writer: SymbolWriter, enclosingDeclaration?: Node, flags?: TypeFormatFlags): void;
|
||||
buildTypeParameterDisplayFromSymbol(symbol: Symbol, writer: SymbolWriter, enclosingDeclaraiton?: Node, flags?: TypeFormatFlags): void;
|
||||
@@ -1117,10 +1204,20 @@ declare namespace ts {
|
||||
WriteTypeParametersOrArguments = 1,
|
||||
UseOnlyExternalAliasing = 2,
|
||||
}
|
||||
enum TypePredicateKind {
|
||||
This = 0,
|
||||
Identifier = 1,
|
||||
}
|
||||
interface TypePredicate {
|
||||
kind: TypePredicateKind;
|
||||
type: Type;
|
||||
}
|
||||
interface ThisTypePredicate extends TypePredicate {
|
||||
_thisTypePredicateBrand: any;
|
||||
}
|
||||
interface IdentifierTypePredicate extends TypePredicate {
|
||||
parameterName: string;
|
||||
parameterIndex: number;
|
||||
type: Type;
|
||||
}
|
||||
enum SymbolFlags {
|
||||
None = 0,
|
||||
@@ -1222,6 +1319,7 @@ declare namespace ts {
|
||||
ESSymbol = 16777216,
|
||||
ThisType = 33554432,
|
||||
ObjectLiteralPatternWithComputedProperties = 67108864,
|
||||
PredicateType = 134217728,
|
||||
StringLike = 258,
|
||||
NumberLike = 132,
|
||||
ObjectType = 80896,
|
||||
@@ -1234,6 +1332,9 @@ declare namespace ts {
|
||||
symbol?: Symbol;
|
||||
pattern?: DestructuringPattern;
|
||||
}
|
||||
interface PredicateType extends Type {
|
||||
predicate: ThisTypePredicate | IdentifierTypePredicate;
|
||||
}
|
||||
interface StringLiteralType extends Type {
|
||||
text: string;
|
||||
}
|
||||
@@ -1279,7 +1380,6 @@ declare namespace ts {
|
||||
declaration: SignatureDeclaration;
|
||||
typeParameters: TypeParameter[];
|
||||
parameters: Symbol[];
|
||||
typePredicate?: TypePredicate;
|
||||
}
|
||||
enum IndexKind {
|
||||
String = 0,
|
||||
@@ -1331,6 +1431,7 @@ declare namespace ts {
|
||||
inlineSourceMap?: boolean;
|
||||
inlineSources?: boolean;
|
||||
jsx?: JsxEmit;
|
||||
reactNamespace?: string;
|
||||
listFiles?: boolean;
|
||||
locale?: string;
|
||||
mapRoot?: string;
|
||||
@@ -1366,6 +1467,8 @@ declare namespace ts {
|
||||
noImplicitReturns?: boolean;
|
||||
noFallthroughCasesInSwitch?: boolean;
|
||||
forceConsistentCasingInFileNames?: boolean;
|
||||
allowSyntheticDefaultImports?: boolean;
|
||||
allowJs?: boolean;
|
||||
[option: string]: string | number | boolean;
|
||||
}
|
||||
enum ModuleKind {
|
||||
@@ -1409,6 +1512,7 @@ declare namespace ts {
|
||||
interface ModuleResolutionHost {
|
||||
fileExists(fileName: string): boolean;
|
||||
readFile(fileName: string): string;
|
||||
directoryExists?(directoryName: string): boolean;
|
||||
}
|
||||
interface ResolvedModule {
|
||||
resolvedFileName: string;
|
||||
@@ -1537,6 +1641,7 @@ declare namespace ts {
|
||||
*/
|
||||
function collapseTextChangeRangesAcrossMultipleVersions(changes: TextChangeRange[]): TextChangeRange;
|
||||
function getTypeParameterOwner(d: Declaration): Declaration;
|
||||
function isParameterPropertyDeclaration(node: ParameterDeclaration): boolean;
|
||||
}
|
||||
declare namespace ts {
|
||||
function createNode(kind: SyntaxKind, pos?: number, end?: number): Node;
|
||||
@@ -1546,10 +1651,10 @@ declare namespace ts {
|
||||
}
|
||||
declare namespace ts {
|
||||
const version: string;
|
||||
function findConfigFile(searchPath: string): string;
|
||||
function findConfigFile(searchPath: string, fileExists: (fileName: string) => boolean): string;
|
||||
function resolveTripleslashReference(moduleName: string, containingFile: string): string;
|
||||
function resolveModuleName(moduleName: string, containingFile: string, compilerOptions: CompilerOptions, host: ModuleResolutionHost): ResolvedModuleWithFailedLookupLocations;
|
||||
function nodeModuleNameResolver(moduleName: string, containingFile: string, host: ModuleResolutionHost): ResolvedModuleWithFailedLookupLocations;
|
||||
function nodeModuleNameResolver(moduleName: string, containingFile: string, compilerOptions: CompilerOptions, host: ModuleResolutionHost): ResolvedModuleWithFailedLookupLocations;
|
||||
function classicNameResolver(moduleName: string, containingFile: string, compilerOptions: CompilerOptions, host: ModuleResolutionHost): ResolvedModuleWithFailedLookupLocations;
|
||||
function createCompilerHost(options: CompilerOptions, setParentNodes?: boolean): CompilerHost;
|
||||
function getPreEmitDiagnostics(program: Program, sourceFile?: SourceFile, cancellationToken?: CancellationToken): Diagnostic[];
|
||||
@@ -1582,7 +1687,7 @@ declare namespace ts {
|
||||
* @param basePath A root directory to resolve relative path entries in the config
|
||||
* file to. e.g. outDir
|
||||
*/
|
||||
function parseJsonConfigFileContent(json: any, host: ParseConfigHost, basePath: string): ParsedCommandLine;
|
||||
function parseJsonConfigFileContent(json: any, host: ParseConfigHost, basePath: string, existingOptions?: CompilerOptions): ParsedCommandLine;
|
||||
function convertCompilerOptionsFromJson(jsonOptions: any, basePath: string): {
|
||||
options: CompilerOptions;
|
||||
errors: Diagnostic[];
|
||||
@@ -1590,7 +1695,7 @@ declare namespace ts {
|
||||
}
|
||||
declare namespace ts {
|
||||
/** The version of the language service API */
|
||||
let servicesVersion: string;
|
||||
const servicesVersion: string;
|
||||
interface Node {
|
||||
getSourceFile(): SourceFile;
|
||||
getChildCount(sourceFile?: SourceFile): number;
|
||||
@@ -1659,7 +1764,7 @@ declare namespace ts {
|
||||
/** Releases all resources held by this script snapshot */
|
||||
dispose?(): void;
|
||||
}
|
||||
module ScriptSnapshot {
|
||||
namespace ScriptSnapshot {
|
||||
function fromString(text: string): IScriptSnapshot;
|
||||
}
|
||||
interface PreProcessedFileInfo {
|
||||
@@ -1687,6 +1792,7 @@ declare namespace ts {
|
||||
error?(s: string): void;
|
||||
useCaseSensitiveFileNames?(): boolean;
|
||||
resolveModuleNames?(moduleNames: string[], containingFile: string): ResolvedModule[];
|
||||
directoryExists?(directoryName: string): boolean;
|
||||
}
|
||||
interface LanguageService {
|
||||
cleanupSemanticCache(): void;
|
||||
@@ -1782,7 +1888,7 @@ declare namespace ts {
|
||||
fileName: string;
|
||||
highlightSpans: HighlightSpan[];
|
||||
}
|
||||
module HighlightSpanKind {
|
||||
namespace HighlightSpanKind {
|
||||
const none: string;
|
||||
const definition: string;
|
||||
const reference: string;
|
||||
@@ -1824,6 +1930,7 @@ declare namespace ts {
|
||||
InsertSpaceAfterFunctionKeywordForAnonymousFunctions: boolean;
|
||||
InsertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis: boolean;
|
||||
InsertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets: boolean;
|
||||
InsertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces: boolean;
|
||||
PlaceOpenBraceOnNewLineForFunctions: boolean;
|
||||
PlaceOpenBraceOnNewLineForControlBlocks: boolean;
|
||||
[s: string]: boolean | number | string;
|
||||
@@ -2068,7 +2175,7 @@ declare namespace ts {
|
||||
releaseDocument(fileName: string, compilationSettings: CompilerOptions): void;
|
||||
reportStats(): string;
|
||||
}
|
||||
module ScriptElementKind {
|
||||
namespace ScriptElementKind {
|
||||
const unknown: string;
|
||||
const warning: string;
|
||||
const keyword: string;
|
||||
@@ -2099,7 +2206,7 @@ declare namespace ts {
|
||||
const constElement: string;
|
||||
const letElement: string;
|
||||
}
|
||||
module ScriptElementKindModifier {
|
||||
namespace ScriptElementKindModifier {
|
||||
const none: string;
|
||||
const publicMemberModifier: string;
|
||||
const privateMemberModifier: string;
|
||||
|
||||
+5708
-4963
File diff suppressed because it is too large
Load Diff
+13
-4
@@ -131,6 +131,7 @@ namespace ts {
|
||||
options = opts;
|
||||
inStrictMode = !!file.externalModuleIndicator;
|
||||
classifiableNames = {};
|
||||
|
||||
Symbol = objectAllocator.getSymbolConstructor();
|
||||
|
||||
if (!file.locals) {
|
||||
@@ -191,8 +192,8 @@ namespace ts {
|
||||
// unless it is a well known Symbol.
|
||||
function getDeclarationName(node: Declaration): string {
|
||||
if (node.name) {
|
||||
if (node.kind === SyntaxKind.ModuleDeclaration && node.name.kind === SyntaxKind.StringLiteral) {
|
||||
return `"${(<LiteralExpression>node.name).text}"`;
|
||||
if (isAmbientModule(node)) {
|
||||
return isGlobalScopeAugmentation(<ModuleDeclaration>node) ? "__global" : `"${(<LiteralExpression>node.name).text}"`;
|
||||
}
|
||||
if (node.name.kind === SyntaxKind.ComputedPropertyName) {
|
||||
const nameExpression = (<ComputedPropertyName>node.name).expression;
|
||||
@@ -348,7 +349,12 @@ namespace 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 & NodeFlags.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 (!isAmbientModule(node) && (hasExportModifier || container.flags & NodeFlags.ExportContext)) {
|
||||
const exportKind =
|
||||
(symbolFlags & SymbolFlags.Value ? SymbolFlags.ExportValue : 0) |
|
||||
(symbolFlags & SymbolFlags.Type ? SymbolFlags.ExportType : 0) |
|
||||
@@ -843,7 +849,10 @@ namespace ts {
|
||||
|
||||
function bindModuleDeclaration(node: ModuleDeclaration) {
|
||||
setExportContextFlag(node);
|
||||
if (node.name.kind === SyntaxKind.StringLiteral) {
|
||||
if (isAmbientModule(node)) {
|
||||
if (node.flags & NodeFlags.Export) {
|
||||
errorOnFirstToken(node, Diagnostics.export_modifier_cannot_be_applied_to_ambient_modules_and_module_augmentations_since_they_are_always_visible);
|
||||
}
|
||||
declareSymbolAndAddToSymbolTable(node, SymbolFlags.ValueModule, SymbolFlags.ValueModuleExcludes);
|
||||
}
|
||||
else {
|
||||
|
||||
+471
-267
File diff suppressed because it is too large
Load Diff
+12
-2
@@ -616,7 +616,9 @@ namespace ts {
|
||||
return path.substr(0, rootLength) + normalized.join(directorySeparator);
|
||||
}
|
||||
|
||||
export function getDirectoryPath(path: string) {
|
||||
export function getDirectoryPath(path: Path): Path;
|
||||
export function getDirectoryPath(path: string): string;
|
||||
export function getDirectoryPath(path: string): any {
|
||||
return path.substr(0, Math.max(getRootLength(path), path.lastIndexOf(directorySeparator)));
|
||||
}
|
||||
|
||||
@@ -716,7 +718,8 @@ namespace ts {
|
||||
}
|
||||
|
||||
// Find the component that differs
|
||||
for (var joinStartIndex = 0; joinStartIndex < pathComponents.length && joinStartIndex < directoryComponents.length; joinStartIndex++) {
|
||||
let joinStartIndex: number;
|
||||
for (joinStartIndex = 0; joinStartIndex < pathComponents.length && joinStartIndex < directoryComponents.length; joinStartIndex++) {
|
||||
if (getCanonicalFileName(directoryComponents[joinStartIndex]) !== getCanonicalFileName(pathComponents[joinStartIndex])) {
|
||||
break;
|
||||
}
|
||||
@@ -874,4 +877,11 @@ namespace ts {
|
||||
}
|
||||
return copiedList;
|
||||
}
|
||||
|
||||
export function createGetCanonicalFileName(useCaseSensitivefileNames: boolean): (fileName: string) => string {
|
||||
return useCaseSensitivefileNames
|
||||
? ((fileName) => fileName)
|
||||
: ((fileName) => fileName.toLowerCase());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -54,6 +54,7 @@ namespace ts {
|
||||
let writer = createAndSetNewTextWriterWithSymbolWriter();
|
||||
|
||||
let enclosingDeclaration: Node;
|
||||
let resultHasExternalModuleIndicator: boolean;
|
||||
let currentText: string;
|
||||
let currentLineMap: number[];
|
||||
let currentIdentifiers: Map<string>;
|
||||
@@ -101,6 +102,7 @@ namespace ts {
|
||||
});
|
||||
}
|
||||
|
||||
resultHasExternalModuleIndicator = false;
|
||||
if (!isBundledEmit || !isExternalModule(sourceFile)) {
|
||||
noDeclare = false;
|
||||
emitSourceFile(sourceFile);
|
||||
@@ -139,6 +141,14 @@ namespace ts {
|
||||
allSourcesModuleElementDeclarationEmitInfo = allSourcesModuleElementDeclarationEmitInfo.concat(moduleElementDeclarationEmitInfo);
|
||||
moduleElementDeclarationEmitInfo = [];
|
||||
}
|
||||
|
||||
if (!isBundledEmit && 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 {
|
||||
@@ -721,16 +731,25 @@ namespace ts {
|
||||
writer.writeLine();
|
||||
}
|
||||
|
||||
function emitExternalModuleSpecifier(parent: ImportEqualsDeclaration | ImportDeclaration | ExportDeclaration) {
|
||||
function emitExternalModuleSpecifier(parent: ImportEqualsDeclaration | ImportDeclaration | ExportDeclaration | ModuleDeclaration) {
|
||||
// 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 !== SyntaxKind.ModuleDeclaration;
|
||||
let moduleSpecifier: Node;
|
||||
if (parent.kind === SyntaxKind.ImportEqualsDeclaration) {
|
||||
const node = parent as ImportEqualsDeclaration;
|
||||
moduleSpecifier = getExternalModuleImportEqualsDeclarationExpression(node);
|
||||
}
|
||||
else if (parent.kind === SyntaxKind.ModuleDeclaration) {
|
||||
moduleSpecifier = (<ModuleDeclaration>parent).name;
|
||||
}
|
||||
else {
|
||||
const node = parent as (ImportDeclaration | ExportDeclaration);
|
||||
moduleSpecifier = node.moduleSpecifier;
|
||||
}
|
||||
|
||||
if (moduleSpecifier.kind === SyntaxKind.StringLiteral && isBundledEmit && (compilerOptions.out || compilerOptions.outFile)) {
|
||||
const moduleName = getExternalModuleNameFromDeclaration(host, resolver, parent);
|
||||
if (moduleName) {
|
||||
@@ -784,13 +803,23 @@ namespace ts {
|
||||
function writeModuleDeclaration(node: ModuleDeclaration) {
|
||||
emitJsDocComments(node);
|
||||
emitModuleElementDeclarationFlags(node);
|
||||
if (node.flags & NodeFlags.Namespace) {
|
||||
write("namespace ");
|
||||
if (isGlobalScopeAugmentation(node)) {
|
||||
write("global ");
|
||||
}
|
||||
else {
|
||||
write("module ");
|
||||
if (node.flags & NodeFlags.Namespace) {
|
||||
write("namespace ");
|
||||
}
|
||||
else {
|
||||
write("module ");
|
||||
}
|
||||
if (isExternalModuleAugmentation(node)) {
|
||||
emitExternalModuleSpecifier(node);
|
||||
}
|
||||
else {
|
||||
writeTextOfNode(currentText, node.name);
|
||||
}
|
||||
}
|
||||
writeTextOfNode(currentText, node.name);
|
||||
while (node.body.kind !== SyntaxKind.ModuleBlock) {
|
||||
node = <ModuleDeclaration>node.body;
|
||||
write(".");
|
||||
|
||||
@@ -711,10 +711,6 @@
|
||||
"category": "Error",
|
||||
"code": 1227
|
||||
},
|
||||
"A type predicate is only allowed in return type position for functions and methods.": {
|
||||
"category": "Error",
|
||||
"code": 1228
|
||||
},
|
||||
"A type predicate cannot reference a rest parameter.": {
|
||||
"category": "Error",
|
||||
"code": 1229
|
||||
@@ -1655,10 +1651,6 @@
|
||||
"category": "Error",
|
||||
"code": 2518
|
||||
},
|
||||
"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.": {
|
||||
"category": "Error",
|
||||
"code": 2519
|
||||
},
|
||||
"Duplicate identifier '{0}'. Compiler uses declaration '{1}' to support async functions.": {
|
||||
"category": "Error",
|
||||
"code": 2520
|
||||
@@ -1771,6 +1763,46 @@
|
||||
"category": "Error",
|
||||
"code": 2660
|
||||
},
|
||||
"Cannot re-export name that is not defined in the module.": {
|
||||
"category": "Error",
|
||||
"code": 2661
|
||||
},
|
||||
"Cannot find name '{0}'. Did you mean the static member '{1}.{0}'?": {
|
||||
"category": "Error",
|
||||
"code": 2662
|
||||
},
|
||||
"Cannot find name '{0}'. Did you mean the instance member 'this.{0}'?": {
|
||||
"category": "Error",
|
||||
"code": 2663
|
||||
},
|
||||
"Invalid module name in augmentation, module '{0}' cannot be found.": {
|
||||
"category": "Error",
|
||||
"code": 2664
|
||||
},
|
||||
"Module augmentation cannot introduce new names in the top level scope.": {
|
||||
"category": "Error",
|
||||
"code": 2665
|
||||
},
|
||||
"Exports and export assignments are not permitted in module augmentations.": {
|
||||
"category": "Error",
|
||||
"code": 2666
|
||||
},
|
||||
"Imports are not permitted in module augmentations. Consider moving them to the enclosing external module.": {
|
||||
"category": "Error",
|
||||
"code": 2667
|
||||
},
|
||||
"'export' modifier cannot be applied to ambient modules and module augmentations since they are always visible.": {
|
||||
"category": "Error",
|
||||
"code": 2668
|
||||
},
|
||||
"Augmentations for the global scope can only be directly nested in external modules or ambient module declarations.": {
|
||||
"category": "Error",
|
||||
"code": 2669
|
||||
},
|
||||
"Augmentations for the global scope should have 'declare' modifier unless they appear in already ambient context.": {
|
||||
"category": "Error",
|
||||
"code": 2670
|
||||
},
|
||||
"Import declaration '{0}' is using private name '{1}'.": {
|
||||
"category": "Error",
|
||||
"code": 4000
|
||||
@@ -2430,6 +2462,10 @@
|
||||
"category": "Error",
|
||||
"code": 7013
|
||||
},
|
||||
"Element implicitly has an 'any' type because index expression is not of type 'number'.": {
|
||||
"category": "Error",
|
||||
"code": 7015
|
||||
},
|
||||
"Property '{0}' implicitly has type 'any', because its 'set' accessor lacks a type annotation.": {
|
||||
"category": "Error",
|
||||
"code": 7016
|
||||
|
||||
+109
-72
@@ -464,8 +464,8 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, Promi
|
||||
const writer = createTextWriter(newLine);
|
||||
const { write, writeTextOfNode, writeLine, increaseIndent, decreaseIndent } = writer;
|
||||
|
||||
const sourceMap = compilerOptions.sourceMap || compilerOptions.inlineSourceMap ? createSourceMapWriter(host, writer) : getNullSourceMapWriter();
|
||||
const { setSourceFile, emitStart, emitEnd, emitPos } = sourceMap;
|
||||
let sourceMap = compilerOptions.sourceMap || compilerOptions.inlineSourceMap ? createSourceMapWriter(host, writer) : getNullSourceMapWriter();
|
||||
let { setSourceFile, emitStart, emitEnd, emitPos } = sourceMap;
|
||||
|
||||
let currentSourceFile: SourceFile;
|
||||
let currentText: string;
|
||||
@@ -512,6 +512,8 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, Promi
|
||||
/** If removeComments is true, no leading-comments needed to be emitted **/
|
||||
const emitLeadingCommentsOfPosition = compilerOptions.removeComments ? function (pos: number) { } : emitLeadingCommentsOfPositionWorker;
|
||||
|
||||
const setSourceMapWriterEmit = compilerOptions.sourceMap || compilerOptions.inlineSourceMap ? changeSourceMapEmit : function (writer: SourceMapWriter) { };
|
||||
|
||||
const moduleEmitDelegates: Map<(node: SourceFile, emitRelativePathAsModuleName?: boolean) => void> = {
|
||||
[ModuleKind.ES6]: emitES6Module,
|
||||
[ModuleKind.AMD]: emitAMDModule,
|
||||
@@ -1248,7 +1250,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, Promi
|
||||
else {
|
||||
// One object literal with all the attributes in them
|
||||
write("{");
|
||||
for (var i = 0; i < attrs.length; i++) {
|
||||
for (let i = 0, n = attrs.length; i < n; i++) {
|
||||
if (i > 0) {
|
||||
write(", ");
|
||||
}
|
||||
@@ -1260,7 +1262,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, Promi
|
||||
|
||||
// Children
|
||||
if (children) {
|
||||
for (var i = 0; i < children.length; i++) {
|
||||
for (let i = 0; i < children.length; i++) {
|
||||
// Don't emit empty expressions
|
||||
if (children[i].kind === SyntaxKind.JsxExpression && !((<JsxExpression>children[i]).expression)) {
|
||||
continue;
|
||||
@@ -1354,7 +1356,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, Promi
|
||||
function emitJsxElement(node: JsxElement) {
|
||||
emitJsxOpeningOrSelfClosingElement(node.openingElement);
|
||||
|
||||
for (var i = 0, n = node.children.length; i < n; i++) {
|
||||
for (let i = 0, n = node.children.length; i < n; i++) {
|
||||
emit(node.children[i]);
|
||||
}
|
||||
|
||||
@@ -1975,7 +1977,6 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, Promi
|
||||
result.expression = parenthesizeForAccess(expression);
|
||||
result.dotToken = createSynthesizedNode(SyntaxKind.DotToken);
|
||||
result.name = name;
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
@@ -2568,7 +2569,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, Promi
|
||||
leftHandSideExpression.argumentExpression.kind !== SyntaxKind.StringLiteral) {
|
||||
const tempArgumentExpression = createAndRecordTempVariable(TempFlags._i);
|
||||
(<ElementAccessExpression>synthesizedLHS).argumentExpression = tempArgumentExpression;
|
||||
emitAssignment(tempArgumentExpression, leftHandSideExpression.argumentExpression, /*shouldEmitCommaBeforeAssignment*/ true);
|
||||
emitAssignment(tempArgumentExpression, leftHandSideExpression.argumentExpression, /*shouldEmitCommaBeforeAssignment*/ true, leftHandSideExpression.expression);
|
||||
}
|
||||
else {
|
||||
(<ElementAccessExpression>synthesizedLHS).argumentExpression = leftHandSideExpression.argumentExpression;
|
||||
@@ -2796,7 +2797,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, Promi
|
||||
* Returns false if nothing was written - this can happen for source file level variable declarations
|
||||
* in system modules where such variable declarations are hoisted.
|
||||
*/
|
||||
function tryEmitStartOfVariableDeclarationList(decl: VariableDeclarationList, startPos?: number): boolean {
|
||||
function tryEmitStartOfVariableDeclarationList(decl: VariableDeclarationList): boolean {
|
||||
if (shouldHoistVariable(decl, /*checkIfSourceFileLevelDecl*/ true)) {
|
||||
// variables in variable declaration list were already hoisted
|
||||
return false;
|
||||
@@ -2811,34 +2812,23 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, Promi
|
||||
return false;
|
||||
}
|
||||
|
||||
let tokenKind = SyntaxKind.VarKeyword;
|
||||
emitStart(decl);
|
||||
if (decl && languageVersion >= ScriptTarget.ES6) {
|
||||
if (isLet(decl)) {
|
||||
tokenKind = SyntaxKind.LetKeyword;
|
||||
write("let ");
|
||||
}
|
||||
else if (isConst(decl)) {
|
||||
tokenKind = SyntaxKind.ConstKeyword;
|
||||
write("const ");
|
||||
}
|
||||
else {
|
||||
write("var ");
|
||||
}
|
||||
}
|
||||
|
||||
if (startPos !== undefined) {
|
||||
emitToken(tokenKind, startPos);
|
||||
write(" ");
|
||||
}
|
||||
else {
|
||||
switch (tokenKind) {
|
||||
case SyntaxKind.VarKeyword:
|
||||
write("var ");
|
||||
break;
|
||||
case SyntaxKind.LetKeyword:
|
||||
write("let ");
|
||||
break;
|
||||
case SyntaxKind.ConstKeyword:
|
||||
write("const ");
|
||||
break;
|
||||
}
|
||||
write("var ");
|
||||
}
|
||||
|
||||
// Note here we specifically dont emit end so that if we are going to emit binding pattern
|
||||
// we can alter the source map correctly
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -2896,7 +2886,8 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, Promi
|
||||
case SyntaxKind.ForStatement:
|
||||
case SyntaxKind.ForInStatement:
|
||||
case SyntaxKind.ForOfStatement:
|
||||
if ((<ForStatement | ForInStatement | ForOfStatement>node).initializer.kind === SyntaxKind.VariableDeclarationList) {
|
||||
const initializer = (<ForStatement | ForInStatement | ForOfStatement>node).initializer;
|
||||
if (initializer && initializer.kind === SyntaxKind.VariableDeclarationList) {
|
||||
loopInitializer = <VariableDeclarationList>(<ForStatement | ForInStatement | ForOfStatement>node).initializer;
|
||||
}
|
||||
break;
|
||||
@@ -3177,7 +3168,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, Promi
|
||||
endPos = emitToken(SyntaxKind.OpenParenToken, endPos);
|
||||
if (node.initializer && node.initializer.kind === SyntaxKind.VariableDeclarationList) {
|
||||
const variableDeclarationList = <VariableDeclarationList>node.initializer;
|
||||
const startIsEmitted = tryEmitStartOfVariableDeclarationList(variableDeclarationList, endPos);
|
||||
const startIsEmitted = tryEmitStartOfVariableDeclarationList(variableDeclarationList);
|
||||
if (startIsEmitted) {
|
||||
emitCommaList(variableDeclarationList.declarations);
|
||||
}
|
||||
@@ -3218,7 +3209,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, Promi
|
||||
if (node.initializer.kind === SyntaxKind.VariableDeclarationList) {
|
||||
const variableDeclarationList = <VariableDeclarationList>node.initializer;
|
||||
if (variableDeclarationList.declarations.length >= 1) {
|
||||
tryEmitStartOfVariableDeclarationList(variableDeclarationList, endPos);
|
||||
tryEmitStartOfVariableDeclarationList(variableDeclarationList);
|
||||
emit(variableDeclarationList.declarations[0]);
|
||||
}
|
||||
}
|
||||
@@ -3305,21 +3296,21 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, Promi
|
||||
write("; ");
|
||||
|
||||
// _i < _a.length;
|
||||
emitStart(node.initializer);
|
||||
emitStart(node.expression);
|
||||
emitNodeWithoutSourceMap(counter);
|
||||
write(" < ");
|
||||
|
||||
emitNodeWithCommentsAndWithoutSourcemap(rhsReference);
|
||||
write(".length");
|
||||
|
||||
emitEnd(node.initializer);
|
||||
emitEnd(node.expression);
|
||||
write("; ");
|
||||
|
||||
// _i++)
|
||||
emitStart(node.initializer);
|
||||
emitStart(node.expression);
|
||||
emitNodeWithoutSourceMap(counter);
|
||||
write("++");
|
||||
emitEnd(node.initializer);
|
||||
emitEnd(node.expression);
|
||||
emitToken(SyntaxKind.CloseParenToken, node.expression.end);
|
||||
|
||||
// Body
|
||||
@@ -3719,7 +3710,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, Promi
|
||||
* @param value an expression as a right-hand-side operand of the assignment
|
||||
* @param shouldEmitCommaBeforeAssignment a boolean indicating whether to prefix an assignment with comma
|
||||
*/
|
||||
function emitAssignment(name: Identifier, value: Expression, shouldEmitCommaBeforeAssignment: boolean) {
|
||||
function emitAssignment(name: Identifier, value: Expression, shouldEmitCommaBeforeAssignment: boolean, nodeForSourceMap: Node) {
|
||||
if (shouldEmitCommaBeforeAssignment) {
|
||||
write(", ");
|
||||
}
|
||||
@@ -3735,15 +3726,21 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, Promi
|
||||
const isVariableDeclarationOrBindingElement =
|
||||
name.parent && (name.parent.kind === SyntaxKind.VariableDeclaration || name.parent.kind === SyntaxKind.BindingElement);
|
||||
|
||||
if (isVariableDeclarationOrBindingElement) {
|
||||
emitModuleMemberName(<Declaration>name.parent);
|
||||
}
|
||||
else {
|
||||
emit(name);
|
||||
}
|
||||
// If this is first var declaration, we need to start at var/let/const keyword instead
|
||||
// otherwise use nodeForSourceMap as the start position
|
||||
emitStart(isFirstVariableDeclaration(nodeForSourceMap) ? nodeForSourceMap.parent : nodeForSourceMap);
|
||||
withTemporaryNoSourceMap(() => {
|
||||
if (isVariableDeclarationOrBindingElement) {
|
||||
emitModuleMemberName(<Declaration>name.parent);
|
||||
}
|
||||
else {
|
||||
emit(name);
|
||||
}
|
||||
|
||||
write(" = ");
|
||||
emit(value);
|
||||
write(" = ");
|
||||
emit(value);
|
||||
});
|
||||
emitEnd(nodeForSourceMap, /*stopOverridingSpan*/true);
|
||||
|
||||
if (exportChanged) {
|
||||
write(")");
|
||||
@@ -3756,15 +3753,21 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, Promi
|
||||
* @param canDefineTempVariablesInPlace a boolean indicating whether you can define the temporary variable at an assignment location
|
||||
* @param shouldEmitCommaBeforeAssignment a boolean indicating whether an assignment should prefix with comma
|
||||
*/
|
||||
function emitTempVariableAssignment(expression: Expression, canDefineTempVariablesInPlace: boolean, shouldEmitCommaBeforeAssignment: boolean): Identifier {
|
||||
function emitTempVariableAssignment(expression: Expression, canDefineTempVariablesInPlace: boolean, shouldEmitCommaBeforeAssignment: boolean, sourceMapNode?: Node): Identifier {
|
||||
const identifier = createTempVariable(TempFlags.Auto);
|
||||
if (!canDefineTempVariablesInPlace) {
|
||||
recordTempDeclaration(identifier);
|
||||
}
|
||||
emitAssignment(identifier, expression, shouldEmitCommaBeforeAssignment);
|
||||
emitAssignment(identifier, expression, shouldEmitCommaBeforeAssignment, sourceMapNode || expression.parent);
|
||||
return identifier;
|
||||
}
|
||||
|
||||
function isFirstVariableDeclaration(root: Node) {
|
||||
return root.kind === SyntaxKind.VariableDeclaration &&
|
||||
root.parent.kind === SyntaxKind.VariableDeclarationList &&
|
||||
(<VariableDeclarationList>root.parent).declarations[0] === root;
|
||||
}
|
||||
|
||||
function emitDestructuring(root: BinaryExpression | VariableDeclaration | ParameterDeclaration, isAssignmentExpressionStatement: boolean, value?: Expression) {
|
||||
let emitCount = 0;
|
||||
|
||||
@@ -3787,6 +3790,11 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, Promi
|
||||
}
|
||||
else {
|
||||
Debug.assert(!isAssignmentExpressionStatement);
|
||||
// If first variable declaration of variable statement correct the start location
|
||||
if (isFirstVariableDeclaration(root)) {
|
||||
// Use emit location of "var " as next emit start entry
|
||||
sourceMap.changeEmitSourcePos();
|
||||
}
|
||||
emitBindingElement(<BindingElement>root, value);
|
||||
}
|
||||
|
||||
@@ -3800,20 +3808,21 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, Promi
|
||||
* @param reuseIdentifierExpressions true if identifier expressions can simply be returned;
|
||||
* false if it is necessary to always emit an identifier.
|
||||
*/
|
||||
function ensureIdentifier(expr: Expression, reuseIdentifierExpressions: boolean): Expression {
|
||||
function ensureIdentifier(expr: Expression, reuseIdentifierExpressions: boolean, sourceMapNode: Node): Expression {
|
||||
if (expr.kind === SyntaxKind.Identifier && reuseIdentifierExpressions) {
|
||||
return expr;
|
||||
}
|
||||
|
||||
const identifier = emitTempVariableAssignment(expr, canDefineTempVariablesInPlace, emitCount > 0);
|
||||
const identifier = emitTempVariableAssignment(expr, canDefineTempVariablesInPlace, emitCount > 0, sourceMapNode);
|
||||
emitCount++;
|
||||
return identifier;
|
||||
}
|
||||
|
||||
function createDefaultValueCheck(value: Expression, defaultValue: Expression): Expression {
|
||||
function createDefaultValueCheck(value: Expression, defaultValue: Expression, sourceMapNode: Node): Expression {
|
||||
// The value expression will be evaluated twice, so for anything but a simple identifier
|
||||
// we need to generate a temporary variable
|
||||
value = ensureIdentifier(value, /*reuseIdentifierExpressions*/ true);
|
||||
// If the temporary variable needs to be emitted use the source Map node for assignment of that statement
|
||||
value = ensureIdentifier(value, /*reuseIdentifierExpressions*/ true, sourceMapNode);
|
||||
// Return the expression 'value === void 0 ? defaultValue : value'
|
||||
const equals = <BinaryExpression>createSynthesizedNode(SyntaxKind.BinaryExpression);
|
||||
equals.left = value;
|
||||
@@ -3842,7 +3851,8 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, Promi
|
||||
let index: Expression;
|
||||
const nameIsComputed = propName.kind === SyntaxKind.ComputedPropertyName;
|
||||
if (nameIsComputed) {
|
||||
index = ensureIdentifier((<ComputedPropertyName>propName).expression, /*reuseIdentifierExpressions*/ false);
|
||||
// TODO to handle when we look into sourcemaps for computed properties, for now use propName
|
||||
index = ensureIdentifier((<ComputedPropertyName>propName).expression, /*reuseIdentifierExpressions*/ false, propName);
|
||||
}
|
||||
else {
|
||||
// We create a synthetic copy of the identifier in order to avoid the rewriting that might
|
||||
@@ -3866,61 +3876,66 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, Promi
|
||||
return call;
|
||||
}
|
||||
|
||||
function emitObjectLiteralAssignment(target: ObjectLiteralExpression, value: Expression) {
|
||||
function emitObjectLiteralAssignment(target: ObjectLiteralExpression, value: Expression, sourceMapNode: Node) {
|
||||
const properties = target.properties;
|
||||
if (properties.length !== 1) {
|
||||
// For anything but a single element destructuring we need to generate a temporary
|
||||
// to ensure value is evaluated exactly once.
|
||||
value = ensureIdentifier(value, /*reuseIdentifierExpressions*/ true);
|
||||
// When doing so we want to hightlight the passed in source map node since thats the one needing this temp assignment
|
||||
value = ensureIdentifier(value, /*reuseIdentifierExpressions*/ true, sourceMapNode);
|
||||
}
|
||||
for (const p of properties) {
|
||||
if (p.kind === SyntaxKind.PropertyAssignment || p.kind === SyntaxKind.ShorthandPropertyAssignment) {
|
||||
const propName = <Identifier | LiteralExpression>(<PropertyAssignment>p).name;
|
||||
const target = p.kind === SyntaxKind.ShorthandPropertyAssignment ? <ShorthandPropertyAssignment>p : (<PropertyAssignment>p).initializer || propName;
|
||||
emitDestructuringAssignment(target, createPropertyAccessForDestructuringProperty(value, propName));
|
||||
// Assignment for target = value.propName should highligh whole property, hence use p as source map node
|
||||
emitDestructuringAssignment(target, createPropertyAccessForDestructuringProperty(value, propName), p);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function emitArrayLiteralAssignment(target: ArrayLiteralExpression, value: Expression) {
|
||||
function emitArrayLiteralAssignment(target: ArrayLiteralExpression, value: Expression, sourceMapNode: Node) {
|
||||
const elements = target.elements;
|
||||
if (elements.length !== 1) {
|
||||
// For anything but a single element destructuring we need to generate a temporary
|
||||
// to ensure value is evaluated exactly once.
|
||||
value = ensureIdentifier(value, /*reuseIdentifierExpressions*/ true);
|
||||
// When doing so we want to hightlight the passed in source map node since thats the one needing this temp assignment
|
||||
value = ensureIdentifier(value, /*reuseIdentifierExpressions*/ true, sourceMapNode);
|
||||
}
|
||||
for (let i = 0; i < elements.length; i++) {
|
||||
const e = elements[i];
|
||||
if (e.kind !== SyntaxKind.OmittedExpression) {
|
||||
// Assignment for target = value.propName should highligh whole property, hence use e as source map node
|
||||
if (e.kind !== SyntaxKind.SpreadElementExpression) {
|
||||
emitDestructuringAssignment(e, createElementAccessExpression(value, createNumericLiteral(i)));
|
||||
emitDestructuringAssignment(e, createElementAccessExpression(value, createNumericLiteral(i)), e);
|
||||
}
|
||||
else if (i === elements.length - 1) {
|
||||
emitDestructuringAssignment((<SpreadElementExpression>e).expression, createSliceCall(value, i));
|
||||
emitDestructuringAssignment((<SpreadElementExpression>e).expression, createSliceCall(value, i), e);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function emitDestructuringAssignment(target: Expression | ShorthandPropertyAssignment, value: Expression) {
|
||||
function emitDestructuringAssignment(target: Expression | ShorthandPropertyAssignment, value: Expression, sourceMapNode: Node) {
|
||||
// When emitting target = value use source map node to highlight, including any temporary assignments needed for this
|
||||
if (target.kind === SyntaxKind.ShorthandPropertyAssignment) {
|
||||
if ((<ShorthandPropertyAssignment>target).objectAssignmentInitializer) {
|
||||
value = createDefaultValueCheck(value, (<ShorthandPropertyAssignment>target).objectAssignmentInitializer);
|
||||
value = createDefaultValueCheck(value, (<ShorthandPropertyAssignment>target).objectAssignmentInitializer, sourceMapNode);
|
||||
}
|
||||
target = (<ShorthandPropertyAssignment>target).name;
|
||||
}
|
||||
else if (target.kind === SyntaxKind.BinaryExpression && (<BinaryExpression>target).operatorToken.kind === SyntaxKind.EqualsToken) {
|
||||
value = createDefaultValueCheck(value, (<BinaryExpression>target).right);
|
||||
value = createDefaultValueCheck(value, (<BinaryExpression>target).right, sourceMapNode);
|
||||
target = (<BinaryExpression>target).left;
|
||||
}
|
||||
if (target.kind === SyntaxKind.ObjectLiteralExpression) {
|
||||
emitObjectLiteralAssignment(<ObjectLiteralExpression>target, value);
|
||||
emitObjectLiteralAssignment(<ObjectLiteralExpression>target, value, sourceMapNode);
|
||||
}
|
||||
else if (target.kind === SyntaxKind.ArrayLiteralExpression) {
|
||||
emitArrayLiteralAssignment(<ArrayLiteralExpression>target, value);
|
||||
emitArrayLiteralAssignment(<ArrayLiteralExpression>target, value, sourceMapNode);
|
||||
}
|
||||
else {
|
||||
emitAssignment(<Identifier>target, value, /*shouldEmitCommaBeforeAssignment*/ emitCount > 0);
|
||||
emitAssignment(<Identifier>target, value, /*shouldEmitCommaBeforeAssignment*/ emitCount > 0, sourceMapNode);
|
||||
emitCount++;
|
||||
}
|
||||
}
|
||||
@@ -3933,14 +3948,20 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, Promi
|
||||
emit(value);
|
||||
}
|
||||
else if (isAssignmentExpressionStatement) {
|
||||
emitDestructuringAssignment(target, value);
|
||||
// Source map node for root.left = root.right is root
|
||||
// but if root is synthetic, which could be in below case, use the target which is { a }
|
||||
// for ({a} of {a: string}) {
|
||||
// }
|
||||
emitDestructuringAssignment(target, value, nodeIsSynthesized(root) ? target : root);
|
||||
}
|
||||
else {
|
||||
if (root.parent.kind !== SyntaxKind.ParenthesizedExpression) {
|
||||
write("(");
|
||||
}
|
||||
value = ensureIdentifier(value, /*reuseIdentifierExpressions*/ true);
|
||||
emitDestructuringAssignment(target, value);
|
||||
// Temporary assignment needed to emit root should highlight whole binary expression
|
||||
value = ensureIdentifier(value, /*reuseIdentifierExpressions*/ true, root);
|
||||
// Source map node for root.left = root.right is root
|
||||
emitDestructuringAssignment(target, value, root);
|
||||
write(", ");
|
||||
emit(value);
|
||||
if (root.parent.kind !== SyntaxKind.ParenthesizedExpression) {
|
||||
@@ -3950,9 +3971,10 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, Promi
|
||||
}
|
||||
|
||||
function emitBindingElement(target: BindingElement | VariableDeclaration, value: Expression) {
|
||||
// Any temporary assignments needed to emit target = value should point to target
|
||||
if (target.initializer) {
|
||||
// Combine value and initializer
|
||||
value = value ? createDefaultValueCheck(value, target.initializer) : target.initializer;
|
||||
value = value ? createDefaultValueCheck(value, target.initializer, target) : target.initializer;
|
||||
}
|
||||
else if (!value) {
|
||||
// Use 'void 0' in absence of value and initializer
|
||||
@@ -3968,7 +3990,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, Promi
|
||||
// to ensure value is evaluated exactly once. Additionally, if we have zero elements
|
||||
// we need to emit *something* to ensure that in case a 'var' keyword was already emitted,
|
||||
// so in that case, we'll intentionally create that temporary.
|
||||
value = ensureIdentifier(value, /*reuseIdentifierExpressions*/ numElements !== 0);
|
||||
value = ensureIdentifier(value, /*reuseIdentifierExpressions*/ numElements !== 0, target);
|
||||
}
|
||||
|
||||
for (let i = 0; i < numElements; i++) {
|
||||
@@ -3990,7 +4012,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, Promi
|
||||
}
|
||||
}
|
||||
else {
|
||||
emitAssignment(<Identifier>target.name, value, /*shouldEmitCommaBeforeAssignment*/ emitCount > 0);
|
||||
emitAssignment(<Identifier>target.name, value, /*shouldEmitCommaBeforeAssignment*/ emitCount > 0, target);
|
||||
emitCount++;
|
||||
}
|
||||
}
|
||||
@@ -5150,7 +5172,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, Promi
|
||||
// a lexical declaration such as a LexicalDeclaration or a ClassDeclaration.
|
||||
|
||||
if (isClassExpressionWithStaticProperties) {
|
||||
for (var property of staticProperties) {
|
||||
for (const property of staticProperties) {
|
||||
write(",");
|
||||
writeLine();
|
||||
emitPropertyDeclaration(node, property, /*receiver*/ tempVariable, /*isExpression*/ true);
|
||||
@@ -5697,7 +5719,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, Promi
|
||||
const parameters = valueDeclaration.parameters;
|
||||
const parameterCount = parameters.length;
|
||||
if (parameterCount > 0) {
|
||||
for (var i = 0; i < parameterCount; i++) {
|
||||
for (let i = 0; i < parameterCount; i++) {
|
||||
if (i > 0) {
|
||||
write(", ");
|
||||
}
|
||||
@@ -7434,6 +7456,21 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, Promi
|
||||
}
|
||||
}
|
||||
|
||||
function changeSourceMapEmit(writer: SourceMapWriter) {
|
||||
sourceMap = writer;
|
||||
emitStart = writer.emitStart;
|
||||
emitEnd = writer.emitEnd;
|
||||
emitPos = writer.emitPos;
|
||||
setSourceFile = writer.setSourceFile;
|
||||
}
|
||||
|
||||
function withTemporaryNoSourceMap(callback: () => void) {
|
||||
const prevSourceMap = sourceMap;
|
||||
setSourceMapWriterEmit(getNullSourceMapWriter());
|
||||
callback();
|
||||
setSourceMapWriterEmit(prevSourceMap);
|
||||
}
|
||||
|
||||
function isSpecializedCommentHandling(node: Node): boolean {
|
||||
switch (node.kind) {
|
||||
// All of these entities are emitted in a specialized fashion. As such, we allow
|
||||
|
||||
+55
-17
@@ -896,17 +896,19 @@ namespace 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<T>(callback: () => T): T {
|
||||
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<T>(callback: () => T): T {
|
||||
return speculationHelper(callback, /*isLookAhead*/ false);
|
||||
}
|
||||
@@ -1948,11 +1950,8 @@ namespace ts {
|
||||
|
||||
// TYPES
|
||||
|
||||
function parseTypeReferenceOrTypePredicate(): TypeReferenceNode | TypePredicateNode {
|
||||
function parseTypeReference(): TypeReferenceNode {
|
||||
const typeName = parseEntityName(/*allowReservedWords*/ false, Diagnostics.Type_expected);
|
||||
if (typeName.kind === SyntaxKind.Identifier && token === SyntaxKind.IsKeyword && !scanner.hasPrecedingLineBreak()) {
|
||||
return parseTypePredicate(typeName as Identifier);
|
||||
}
|
||||
const node = <TypeReferenceNode>createNode(SyntaxKind.TypeReference, typeName.pos);
|
||||
node.typeName = typeName;
|
||||
if (!scanner.hasPrecedingLineBreak() && token === SyntaxKind.LessThanToken) {
|
||||
@@ -2092,10 +2091,10 @@ namespace ts {
|
||||
|
||||
if (returnTokenRequired) {
|
||||
parseExpected(returnToken);
|
||||
signature.type = parseType();
|
||||
signature.type = parseTypeOrTypePredicate();
|
||||
}
|
||||
else if (parseOptional(returnToken)) {
|
||||
signature.type = parseType();
|
||||
signature.type = parseTypeOrTypePredicate();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2411,7 +2410,7 @@ namespace ts {
|
||||
case SyntaxKind.SymbolKeyword:
|
||||
// If these are followed by a dot, then parse these out as a dotted type reference instead.
|
||||
const node = tryParse(parseKeywordAndNoDot);
|
||||
return node || parseTypeReferenceOrTypePredicate();
|
||||
return node || parseTypeReference();
|
||||
case SyntaxKind.StringLiteral:
|
||||
return parseStringLiteralTypeNode();
|
||||
case SyntaxKind.VoidKeyword:
|
||||
@@ -2434,7 +2433,7 @@ namespace ts {
|
||||
case SyntaxKind.OpenParenToken:
|
||||
return parseParenthesizedType();
|
||||
default:
|
||||
return parseTypeReferenceOrTypePredicate();
|
||||
return parseTypeReference();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2541,6 +2540,28 @@ namespace ts {
|
||||
return false;
|
||||
}
|
||||
|
||||
function parseTypeOrTypePredicate(): TypeNode {
|
||||
const typePredicateVariable = isIdentifier() && tryParse(parseTypePredicatePrefix);
|
||||
const type = parseType();
|
||||
if (typePredicateVariable) {
|
||||
const node = <TypePredicateNode>createNode(SyntaxKind.TypePredicate, typePredicateVariable.pos);
|
||||
node.parameterName = typePredicateVariable;
|
||||
node.type = type;
|
||||
return finishNode(node);
|
||||
}
|
||||
else {
|
||||
return type;
|
||||
}
|
||||
}
|
||||
|
||||
function parseTypePredicatePrefix() {
|
||||
const id = parseIdentifier();
|
||||
if (token === SyntaxKind.IsKeyword && !scanner.hasPrecedingLineBreak()) {
|
||||
nextToken();
|
||||
return id;
|
||||
}
|
||||
}
|
||||
|
||||
function parseType(): TypeNode {
|
||||
// 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.
|
||||
@@ -4409,6 +4430,9 @@ namespace ts {
|
||||
}
|
||||
continue;
|
||||
|
||||
case SyntaxKind.GlobalKeyword:
|
||||
return nextToken() === SyntaxKind.OpenBraceToken;
|
||||
|
||||
case SyntaxKind.ImportKeyword:
|
||||
nextToken();
|
||||
return token === SyntaxKind.StringLiteral || token === SyntaxKind.AsteriskToken ||
|
||||
@@ -4473,6 +4497,7 @@ namespace ts {
|
||||
case SyntaxKind.ModuleKeyword:
|
||||
case SyntaxKind.NamespaceKeyword:
|
||||
case SyntaxKind.TypeKeyword:
|
||||
case SyntaxKind.GlobalKeyword:
|
||||
// When these don't start a declaration, they're an identifier in an expression statement
|
||||
return true;
|
||||
|
||||
@@ -4561,6 +4586,7 @@ namespace ts {
|
||||
case SyntaxKind.PublicKeyword:
|
||||
case SyntaxKind.AbstractKeyword:
|
||||
case SyntaxKind.StaticKeyword:
|
||||
case SyntaxKind.GlobalKeyword:
|
||||
if (isStartOfDeclaration()) {
|
||||
return parseDeclaration();
|
||||
}
|
||||
@@ -4588,6 +4614,7 @@ namespace ts {
|
||||
return parseTypeAliasDeclaration(fullStart, decorators, modifiers);
|
||||
case SyntaxKind.EnumKeyword:
|
||||
return parseEnumDeclaration(fullStart, decorators, modifiers);
|
||||
case SyntaxKind.GlobalKeyword:
|
||||
case SyntaxKind.ModuleKeyword:
|
||||
case SyntaxKind.NamespaceKeyword:
|
||||
return parseModuleDeclaration(fullStart, decorators, modifiers);
|
||||
@@ -5222,14 +5249,25 @@ namespace ts {
|
||||
const node = <ModuleDeclaration>createNode(SyntaxKind.ModuleDeclaration, fullStart);
|
||||
node.decorators = decorators;
|
||||
setModifiers(node, modifiers);
|
||||
node.name = parseLiteralNode(/*internName*/ true);
|
||||
if (token === SyntaxKind.GlobalKeyword) {
|
||||
// parse 'global' as name of global scope augmentation
|
||||
node.name = parseIdentifier();
|
||||
node.flags |= NodeFlags.GlobalAugmentation;
|
||||
}
|
||||
else {
|
||||
node.name = parseLiteralNode(/*internName*/ true);
|
||||
}
|
||||
node.body = parseModuleBlock();
|
||||
return finishNode(node);
|
||||
}
|
||||
|
||||
function parseModuleDeclaration(fullStart: number, decorators: NodeArray<Decorator>, modifiers: ModifiersArray): ModuleDeclaration {
|
||||
let flags = modifiers ? modifiers.flags : 0;
|
||||
if (parseOptional(SyntaxKind.NamespaceKeyword)) {
|
||||
if (token === SyntaxKind.GlobalKeyword) {
|
||||
// global augmentation
|
||||
return parseAmbientExternalModuleDeclaration(fullStart, decorators, modifiers);
|
||||
}
|
||||
else if (parseOptional(SyntaxKind.NamespaceKeyword)) {
|
||||
flags |= NodeFlags.Namespace;
|
||||
}
|
||||
else {
|
||||
|
||||
+95
-46
@@ -361,7 +361,24 @@ namespace ts {
|
||||
const currentDirectory = host.getCurrentDirectory();
|
||||
const resolveModuleNamesWorker = host.resolveModuleNames
|
||||
? ((moduleNames: string[], containingFile: string) => host.resolveModuleNames(moduleNames, containingFile))
|
||||
: ((moduleNames: string[], containingFile: string) => map(moduleNames, moduleName => resolveModuleName(moduleName, containingFile, options, host).resolvedModule));
|
||||
: ((moduleNames: string[], containingFile: string) => {
|
||||
const resolvedModuleNames: ResolvedModule[] = [];
|
||||
// resolveModuleName does not store any results between calls.
|
||||
// lookup is a local cache to avoid resolving the same module name several times
|
||||
const lookup: Map<ResolvedModule> = {};
|
||||
for (const moduleName of moduleNames) {
|
||||
let resolvedName: ResolvedModule;
|
||||
if (hasProperty(lookup, moduleName)) {
|
||||
resolvedName = lookup[moduleName];
|
||||
}
|
||||
else {
|
||||
resolvedName = resolveModuleName(moduleName, containingFile, options, host).resolvedModule;
|
||||
lookup[moduleName] = resolvedName;
|
||||
}
|
||||
resolvedModuleNames.push(resolvedName);
|
||||
}
|
||||
return resolvedModuleNames;
|
||||
});
|
||||
|
||||
const filesByName = createFileMap<SourceFile>();
|
||||
// stores 'filename -> file association' ignoring case
|
||||
@@ -498,15 +515,19 @@ namespace ts {
|
||||
return false;
|
||||
}
|
||||
|
||||
// check imports
|
||||
// check imports and module augmentations
|
||||
collectExternalModuleReferences(newSourceFile);
|
||||
if (!arrayIsEqualTo(oldSourceFile.imports, newSourceFile.imports, moduleNameIsEqualTo)) {
|
||||
// imports has changed
|
||||
return false;
|
||||
}
|
||||
if (!arrayIsEqualTo(oldSourceFile.moduleAugmentations, newSourceFile.moduleAugmentations, moduleNameIsEqualTo)) {
|
||||
// moduleAugmentations has changed
|
||||
return false;
|
||||
}
|
||||
|
||||
if (resolveModuleNamesWorker) {
|
||||
const moduleNames = map(newSourceFile.imports, name => name.text);
|
||||
const moduleNames = map(concatenate(newSourceFile.imports, newSourceFile.moduleAugmentations), getTextOfLiteral);
|
||||
const resolutions = resolveModuleNamesWorker(moduleNames, getNormalizedAbsolutePath(newSourceFile.fileName, currentDirectory));
|
||||
// ensure that module resolution results are still correct
|
||||
for (let i = 0; i < moduleNames.length; i++) {
|
||||
@@ -895,65 +916,85 @@ namespace ts {
|
||||
return a.text === b.text;
|
||||
}
|
||||
|
||||
function getTextOfLiteral(literal: LiteralExpression): string {
|
||||
return literal.text;
|
||||
}
|
||||
|
||||
function collectExternalModuleReferences(file: SourceFile): void {
|
||||
if (file.imports) {
|
||||
return;
|
||||
}
|
||||
|
||||
const isJavaScriptFile = isSourceFileJavaScript(file);
|
||||
const isExternalModuleFile = isExternalModule(file);
|
||||
|
||||
let imports: LiteralExpression[];
|
||||
let moduleAugmentations: LiteralExpression[];
|
||||
|
||||
for (const node of file.statements) {
|
||||
collect(node, /*allowRelativeModuleNames*/ true, /*collectOnlyRequireCalls*/ false);
|
||||
collectModuleReferences(node, /*inAmbientModule*/ false);
|
||||
if (isJavaScriptFile) {
|
||||
collectRequireCalls(node);
|
||||
}
|
||||
}
|
||||
|
||||
file.imports = imports || emptyArray;
|
||||
file.moduleAugmentations = moduleAugmentations || emptyArray;
|
||||
|
||||
return;
|
||||
|
||||
function collect(node: Node, allowRelativeModuleNames: boolean, collectOnlyRequireCalls: boolean): void {
|
||||
if (!collectOnlyRequireCalls) {
|
||||
switch (node.kind) {
|
||||
case SyntaxKind.ImportDeclaration:
|
||||
case SyntaxKind.ImportEqualsDeclaration:
|
||||
case SyntaxKind.ExportDeclaration:
|
||||
let moduleNameExpr = getExternalModuleName(node);
|
||||
if (!moduleNameExpr || moduleNameExpr.kind !== SyntaxKind.StringLiteral) {
|
||||
break;
|
||||
}
|
||||
if (!(<LiteralExpression>moduleNameExpr).text) {
|
||||
break;
|
||||
}
|
||||
|
||||
if (allowRelativeModuleNames || !isExternalModuleNameRelative((<LiteralExpression>moduleNameExpr).text)) {
|
||||
(imports || (imports = [])).push(<LiteralExpression>moduleNameExpr);
|
||||
}
|
||||
function collectModuleReferences(node: Node, inAmbientModule: boolean): void {
|
||||
switch (node.kind) {
|
||||
case SyntaxKind.ImportDeclaration:
|
||||
case SyntaxKind.ImportEqualsDeclaration:
|
||||
case SyntaxKind.ExportDeclaration:
|
||||
let moduleNameExpr = getExternalModuleName(node);
|
||||
if (!moduleNameExpr || moduleNameExpr.kind !== SyntaxKind.StringLiteral) {
|
||||
break;
|
||||
case SyntaxKind.ModuleDeclaration:
|
||||
if ((<ModuleDeclaration>node).name.kind === SyntaxKind.StringLiteral && (node.flags & NodeFlags.Ambient || isDeclarationFile(file))) {
|
||||
// TypeScript 1.0 spec (April 2014): 12.1.6
|
||||
}
|
||||
if (!(<LiteralExpression>moduleNameExpr).text) {
|
||||
break;
|
||||
}
|
||||
|
||||
// TypeScript 1.0 spec (April 2014): 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.
|
||||
if (!inAmbientModule || !isExternalModuleNameRelative((<LiteralExpression>moduleNameExpr).text)) {
|
||||
(imports || (imports = [])).push(<LiteralExpression>moduleNameExpr);
|
||||
}
|
||||
break;
|
||||
case SyntaxKind.ModuleDeclaration:
|
||||
if (isAmbientModule(<ModuleDeclaration>node) && (inAmbientModule || node.flags & NodeFlags.Ambient || isDeclarationFile(file))) {
|
||||
const moduleName = <LiteralExpression>(<ModuleDeclaration>node).name;
|
||||
// Ambient module declarations can be interpreted as augmentations for some existing external modules.
|
||||
// This will happen in two cases:
|
||||
// - if current file is external module then module augmentation is a ambient module declaration defined in the top level scope
|
||||
// - if current file is not external module then module augmentation is an ambient module declaration with non-relative module name
|
||||
// immediately nested in top level ambient module declaration .
|
||||
if (isExternalModuleFile || (inAmbientModule && !isExternalModuleNameRelative(moduleName.text))) {
|
||||
(moduleAugmentations || (moduleAugmentations = [])).push(moduleName);
|
||||
}
|
||||
else if (!inAmbientModule) {
|
||||
// An AmbientExternalModuleDeclaration declares an external module.
|
||||
// This type of declaration is permitted only in the global module.
|
||||
// The StringLiteral must specify a top - level external module name.
|
||||
// Relative external module names are not permitted
|
||||
forEachChild((<ModuleDeclaration>node).body, node => {
|
||||
// TypeScript 1.0 spec (April 2014): 12.1.6
|
||||
// An ExternalImportDeclaration in anAmbientExternalModuleDeclaration may reference other external modules
|
||||
// only through top - level external module names. Relative external module names are not permitted.
|
||||
collect(node, /*allowRelativeModuleNames*/ false, collectOnlyRequireCalls);
|
||||
});
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (isJavaScriptFile) {
|
||||
if (isRequireCall(node)) {
|
||||
(imports || (imports = [])).push(<StringLiteral>(<CallExpression>node).arguments[0]);
|
||||
}
|
||||
else {
|
||||
forEachChild(node, node => collect(node, allowRelativeModuleNames, /*collectOnlyRequireCalls*/ true));
|
||||
}
|
||||
// NOTE: body of ambient module is always a module block
|
||||
for (const statement of (<ModuleBlock>(<ModuleDeclaration>node).body).statements) {
|
||||
collectModuleReferences(statement, /*inAmbientModule*/ true);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function collectRequireCalls(node: Node): void {
|
||||
if (isRequireCall(node)) {
|
||||
(imports || (imports = [])).push(<StringLiteral>(<CallExpression>node).arguments[0]);
|
||||
}
|
||||
else {
|
||||
forEachChild(node, collectRequireCalls);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1083,14 +1124,22 @@ namespace ts {
|
||||
|
||||
function processImportedModules(file: SourceFile, basePath: string) {
|
||||
collectExternalModuleReferences(file);
|
||||
if (file.imports.length) {
|
||||
if (file.imports.length || file.moduleAugmentations.length) {
|
||||
file.resolvedModules = {};
|
||||
const moduleNames = map(file.imports, name => name.text);
|
||||
const moduleNames = map(concatenate(file.imports, file.moduleAugmentations), getTextOfLiteral);
|
||||
const resolutions = resolveModuleNamesWorker(moduleNames, getNormalizedAbsolutePath(file.fileName, currentDirectory));
|
||||
for (let i = 0; i < file.imports.length; i++) {
|
||||
for (let i = 0; i < moduleNames.length; i++) {
|
||||
const resolution = resolutions[i];
|
||||
setResolvedModule(file, moduleNames[i], resolution);
|
||||
if (resolution && !options.noResolve) {
|
||||
// add file to program only if:
|
||||
// - resolution was successfull
|
||||
// - noResolve is falsy
|
||||
// - module name come from the list fo imports
|
||||
const shouldAddFile = resolution &&
|
||||
!options.noResolve &&
|
||||
i < file.imports.length;
|
||||
|
||||
if (shouldAddFile) {
|
||||
const importedFile = findSourceFile(resolution.resolvedFileName, toPath(resolution.resolvedFileName, currentDirectory, getCanonicalFileName), /*isDefaultLib*/ false, file, skipTrivia(file.text, file.imports[i].pos), file.imports[i].end);
|
||||
|
||||
if (importedFile && resolution.isExternalLibraryImport) {
|
||||
@@ -1168,7 +1217,7 @@ namespace ts {
|
||||
if (sourceFiles) {
|
||||
const absoluteRootDirectoryPath = host.getCanonicalFileName(getNormalizedAbsolutePath(rootDirectory, currentDirectory));
|
||||
|
||||
for (var sourceFile of sourceFiles) {
|
||||
for (const sourceFile of sourceFiles) {
|
||||
if (!isDeclarationFile(sourceFile)) {
|
||||
const absoluteSourceFilePath = host.getCanonicalFileName(getNormalizedAbsolutePath(sourceFile.fileName, currentDirectory));
|
||||
if (absoluteSourceFilePath.indexOf(absoluteRootDirectoryPath) !== 0) {
|
||||
|
||||
@@ -94,6 +94,7 @@ namespace ts {
|
||||
"protected": SyntaxKind.ProtectedKeyword,
|
||||
"public": SyntaxKind.PublicKeyword,
|
||||
"require": SyntaxKind.RequireKeyword,
|
||||
"global": SyntaxKind.GlobalKeyword,
|
||||
"return": SyntaxKind.ReturnKeyword,
|
||||
"set": SyntaxKind.SetKeyword,
|
||||
"static": SyntaxKind.StaticKeyword,
|
||||
|
||||
@@ -7,7 +7,8 @@ namespace ts {
|
||||
setSourceFile(sourceFile: SourceFile): void;
|
||||
emitPos(pos: number): void;
|
||||
emitStart(range: TextRange): void;
|
||||
emitEnd(range: TextRange): void;
|
||||
emitEnd(range: TextRange, stopOverridingSpan?: boolean): void;
|
||||
changeEmitSourcePos(): void;
|
||||
getText(): string;
|
||||
getSourceMappingURL(): string;
|
||||
initialize(filePath: string, sourceMapFilePath: string, sourceFiles: SourceFile[], isBundledEmit: boolean): void;
|
||||
@@ -22,8 +23,9 @@ namespace ts {
|
||||
getSourceMapData(): SourceMapData { return undefined; },
|
||||
setSourceFile(sourceFile: SourceFile): void { },
|
||||
emitStart(range: TextRange): void { },
|
||||
emitEnd(range: TextRange): void { },
|
||||
emitEnd(range: TextRange, stopOverridingSpan?: boolean): void { },
|
||||
emitPos(pos: number): void { },
|
||||
changeEmitSourcePos(): void { },
|
||||
getText(): string { return undefined; },
|
||||
getSourceMappingURL(): string { return undefined; },
|
||||
initialize(filePath: string, sourceMapFilePath: string, sourceFiles: SourceFile[], isBundledEmit: boolean): void { },
|
||||
@@ -38,6 +40,8 @@ namespace ts {
|
||||
const compilerOptions = host.getCompilerOptions();
|
||||
let currentSourceFile: SourceFile;
|
||||
let sourceMapDir: string; // The directory in which sourcemap will be
|
||||
let stopOverridingSpan = false;
|
||||
let modifyLastSourcePos = false;
|
||||
|
||||
// Current source map file and its index in the sources list
|
||||
let sourceMapSourceIndex: number;
|
||||
@@ -56,6 +60,7 @@ namespace ts {
|
||||
emitPos,
|
||||
emitStart,
|
||||
emitEnd,
|
||||
changeEmitSourcePos,
|
||||
getText,
|
||||
getSourceMappingURL,
|
||||
initialize,
|
||||
@@ -142,6 +147,45 @@ namespace ts {
|
||||
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
|
||||
const sourceMapMappings = sourceMapData.sourceMapMappings;
|
||||
let lenthToSet = sourceMapMappings.length - 1;
|
||||
for (; lenthToSet >= 0; lenthToSet--) {
|
||||
const 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) {
|
||||
@@ -178,6 +222,7 @@ namespace ts {
|
||||
|
||||
// 5. Relative namePosition 0 based
|
||||
if (lastRecordedSourceMapSpan.nameIndex >= 0) {
|
||||
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;
|
||||
}
|
||||
@@ -219,22 +264,36 @@ namespace 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: TextRange) {
|
||||
const rangeHasDecorators = !!(range as Node).decorators;
|
||||
return range.pos !== -1 ? skipTrivia(currentSourceFile.text, rangeHasDecorators ? (range as Node).decorators.end : range.pos) : -1;
|
||||
}
|
||||
|
||||
function emitStart(range: TextRange) {
|
||||
const rangeHasDecorators = !!(range as Node).decorators;
|
||||
emitPos(range.pos !== -1 ? skipTrivia(currentSourceFile.text, rangeHasDecorators ? (range as Node).decorators.end : range.pos) : -1);
|
||||
emitPos(getStartPos(range));
|
||||
}
|
||||
|
||||
function emitEnd(range: TextRange) {
|
||||
function emitEnd(range: TextRange, stopOverridingEnd?: boolean) {
|
||||
emitPos(range.end);
|
||||
stopOverridingSpan = stopOverridingEnd;
|
||||
}
|
||||
|
||||
function changeEmitSourcePos() {
|
||||
Debug.assert(!modifyLastSourcePos);
|
||||
modifyLastSourcePos = true;
|
||||
}
|
||||
|
||||
function setSourceFile(sourceFile: SourceFile) {
|
||||
|
||||
+127
-23
@@ -1,6 +1,9 @@
|
||||
/// <reference path="core.ts"/>
|
||||
|
||||
namespace ts {
|
||||
export type FileWatcherCallback = (path: string, removed?: boolean) => void;
|
||||
export type DirectoryWatcherCallback = (path: string) => void;
|
||||
|
||||
export interface System {
|
||||
args: string[];
|
||||
newLine: string;
|
||||
@@ -8,8 +11,8 @@ 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;
|
||||
@@ -22,15 +25,20 @@ namespace ts {
|
||||
}
|
||||
|
||||
interface WatchedFile {
|
||||
fileName: string;
|
||||
callback: (fileName: string, removed?: boolean) => void;
|
||||
mtime: Date;
|
||||
filePath: Path;
|
||||
callback: FileWatcherCallback;
|
||||
mtime?: Date;
|
||||
}
|
||||
|
||||
export interface FileWatcher {
|
||||
close(): void;
|
||||
}
|
||||
|
||||
export interface DirectoryWatcher extends FileWatcher {
|
||||
directoryPath: Path;
|
||||
referenceCount: number;
|
||||
}
|
||||
|
||||
declare var require: any;
|
||||
declare var module: any;
|
||||
declare var process: any;
|
||||
@@ -62,8 +70,8 @@ namespace ts {
|
||||
readFile(path: string): string;
|
||||
writeFile(path: string, contents: string): void;
|
||||
readDirectory(path: string, extension?: string, exclude?: string[]): string[];
|
||||
watchFile?(path: string, callback: (path: string, removed?: boolean) => void): FileWatcher;
|
||||
watchDirectory?(path: string, callback: (path: string) => void, recursive?: boolean): FileWatcher;
|
||||
watchFile?(path: string, callback: FileWatcherCallback): FileWatcher;
|
||||
watchDirectory?(path: string, callback: DirectoryWatcherCallback, recursive?: boolean): FileWatcher;
|
||||
};
|
||||
|
||||
export var sys: System = (function () {
|
||||
@@ -221,7 +229,7 @@ namespace ts {
|
||||
|
||||
// average async stat takes about 30 microseconds
|
||||
// set chunk size to do 30 files in < 1 millisecond
|
||||
function createWatchedFileSet(interval = 2500, chunkSize = 30) {
|
||||
function createPollingWatchedFileSet(interval = 2500, chunkSize = 30) {
|
||||
let watchedFiles: WatchedFile[] = [];
|
||||
let nextFileToCheck = 0;
|
||||
let watchTimer: any;
|
||||
@@ -236,13 +244,13 @@ namespace ts {
|
||||
return;
|
||||
}
|
||||
|
||||
_fs.stat(watchedFile.fileName, (err: any, stats: any) => {
|
||||
_fs.stat(watchedFile.filePath, (err: any, stats: any) => {
|
||||
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);
|
||||
}
|
||||
});
|
||||
}
|
||||
@@ -270,11 +278,11 @@ namespace ts {
|
||||
}, interval);
|
||||
}
|
||||
|
||||
function addFile(fileName: string, callback: (fileName: string, removed?: boolean) => void): WatchedFile {
|
||||
function addFile(filePath: Path, callback: FileWatcherCallback): WatchedFile {
|
||||
const file: WatchedFile = {
|
||||
fileName,
|
||||
filePath,
|
||||
callback,
|
||||
mtime: getModifiedTime(fileName)
|
||||
mtime: getModifiedTime(filePath)
|
||||
};
|
||||
|
||||
watchedFiles.push(file);
|
||||
@@ -297,6 +305,90 @@ namespace ts {
|
||||
};
|
||||
}
|
||||
|
||||
function createWatchedFileSet() {
|
||||
const dirWatchers = createFileMap<DirectoryWatcher>();
|
||||
// One file can have multiple watchers
|
||||
const fileWatcherCallbacks = createFileMap<FileWatcherCallback[]>();
|
||||
return { addFile, removeFile };
|
||||
|
||||
function reduceDirWatcherRefCountForFile(filePath: Path) {
|
||||
const dirPath = getDirectoryPath(filePath);
|
||||
if (dirWatchers.contains(dirPath)) {
|
||||
const watcher = dirWatchers.get(dirPath);
|
||||
watcher.referenceCount -= 1;
|
||||
if (watcher.referenceCount <= 0) {
|
||||
watcher.close();
|
||||
dirWatchers.remove(dirPath);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function addDirWatcher(dirPath: Path): void {
|
||||
if (dirWatchers.contains(dirPath)) {
|
||||
const watcher = dirWatchers.get(dirPath);
|
||||
watcher.referenceCount += 1;
|
||||
return;
|
||||
}
|
||||
|
||||
const watcher: DirectoryWatcher = _fs.watch(
|
||||
dirPath,
|
||||
{ persistent: true },
|
||||
(eventName: string, relativeFileName: string) => fileEventHandler(eventName, relativeFileName, dirPath)
|
||||
);
|
||||
watcher.referenceCount = 1;
|
||||
dirWatchers.set(dirPath, watcher);
|
||||
return;
|
||||
}
|
||||
|
||||
function addFileWatcherCallback(filePath: Path, callback: FileWatcherCallback): void {
|
||||
if (fileWatcherCallbacks.contains(filePath)) {
|
||||
fileWatcherCallbacks.get(filePath).push(callback);
|
||||
}
|
||||
else {
|
||||
fileWatcherCallbacks.set(filePath, [callback]);
|
||||
}
|
||||
}
|
||||
|
||||
function addFile(filePath: Path, callback: FileWatcherCallback): WatchedFile {
|
||||
addFileWatcherCallback(filePath, callback);
|
||||
addDirWatcher(getDirectoryPath(filePath));
|
||||
|
||||
return { filePath, callback };
|
||||
}
|
||||
|
||||
function removeFile(watchedFile: WatchedFile) {
|
||||
removeFileWatcherCallback(watchedFile.filePath, watchedFile.callback);
|
||||
reduceDirWatcherRefCountForFile(watchedFile.filePath);
|
||||
}
|
||||
|
||||
function removeFileWatcherCallback(filePath: Path, callback: FileWatcherCallback) {
|
||||
if (fileWatcherCallbacks.contains(filePath)) {
|
||||
const newCallbacks = 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: string, relativeFileName: string, baseDirPath: Path) {
|
||||
// When files are deleted from disk, the triggered "rename" event would have a relativefileName of "undefined"
|
||||
const filePath = typeof relativeFileName !== "string"
|
||||
? undefined
|
||||
: toPath(relativeFileName, baseDirPath, createGetCanonicalFileName(sys.useCaseSensitiveFileNames));
|
||||
if (eventName === "change" && fileWatcherCallbacks.contains(filePath)) {
|
||||
for (const fileCallback of fileWatcherCallbacks.get(filePath)) {
|
||||
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.
|
||||
@@ -310,8 +402,13 @@ namespace 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?
|
||||
const pollingWatchedFileSet = createPollingWatchedFileSet();
|
||||
const watchedFileSet = createWatchedFileSet();
|
||||
|
||||
function isNode4OrLater(): boolean {
|
||||
return parseInt(process.version.charAt(1)) >= 4;
|
||||
}
|
||||
|
||||
const platform: string = _os.platform();
|
||||
// win32\win64 are case insensitive platforms, MacOS (darwin) by default is also case insensitive
|
||||
const useCaseSensitiveFileNames = platform !== "win32" && platform !== "win64" && platform !== "darwin";
|
||||
@@ -365,7 +462,7 @@ namespace ts {
|
||||
}
|
||||
|
||||
function getCanonicalPath(path: string): string {
|
||||
return useCaseSensitiveFileNames ? path.toLowerCase() : path;
|
||||
return useCaseSensitiveFileNames ? path : path.toLowerCase();
|
||||
}
|
||||
|
||||
function readDirectory(path: string, extension?: string, exclude?: string[]): string[] {
|
||||
@@ -405,29 +502,38 @@ namespace ts {
|
||||
},
|
||||
readFile,
|
||||
writeFile,
|
||||
watchFile: (fileName, callback) => {
|
||||
watchFile: (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.
|
||||
const watchedFile = watchedFileSet.addFile(fileName, callback);
|
||||
const watchSet = isNode4OrLater() ? watchedFileSet : pollingWatchedFileSet;
|
||||
const watchedFile = watchSet.addFile(filePath, callback);
|
||||
return {
|
||||
close: () => watchedFileSet.removeFile(watchedFile)
|
||||
close: () => watchSet.removeFile(watchedFile)
|
||||
};
|
||||
},
|
||||
watchDirectory: (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)
|
||||
let options: any;
|
||||
if (isNode4OrLater() && (process.platform === "win32" || process.platform === "darwin")) {
|
||||
options = { persistent: true, recursive: !!recursive };
|
||||
}
|
||||
else {
|
||||
options = { persistent: true };
|
||||
}
|
||||
|
||||
return _fs.watch(
|
||||
path,
|
||||
{ persistent: true, recursive: !!recursive },
|
||||
options,
|
||||
(eventName: string, relativeFileName: string) => {
|
||||
// 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")
|
||||
if (eventName === "rename") {
|
||||
// When deleting a file, the passed baseFileName is null
|
||||
callback(!relativeFileName ? relativeFileName : normalizePath(ts.combinePaths(path, relativeFileName)));
|
||||
callback(!relativeFileName ? relativeFileName : normalizePath(combinePaths(path, relativeFileName)));
|
||||
};
|
||||
}
|
||||
);
|
||||
@@ -511,5 +617,3 @@ namespace ts {
|
||||
}
|
||||
})();
|
||||
}
|
||||
|
||||
|
||||
|
||||
+4
-2
@@ -334,7 +334,8 @@ namespace ts {
|
||||
return sys.exit(ExitStatus.DiagnosticsPresent_OutputsSkipped);
|
||||
}
|
||||
if (configFileName) {
|
||||
configFileWatcher = sys.watchFile(configFileName, configFileChanged);
|
||||
const configFilePath = toPath(configFileName, sys.getCurrentDirectory(), createGetCanonicalFileName(sys.useCaseSensitiveFileNames));
|
||||
configFileWatcher = sys.watchFile(configFilePath, configFileChanged);
|
||||
}
|
||||
if (sys.watchDirectory && configFileName) {
|
||||
const directory = ts.getDirectoryPath(configFileName);
|
||||
@@ -442,7 +443,8 @@ namespace ts {
|
||||
const sourceFile = hostGetSourceFile(fileName, languageVersion, onError);
|
||||
if (sourceFile && compilerOptions.watch) {
|
||||
// Attach a file watcher
|
||||
sourceFile.fileWatcher = sys.watchFile(sourceFile.fileName, (fileName: string, removed?: boolean) => sourceFileChanged(sourceFile, removed));
|
||||
const filePath = toPath(sourceFile.fileName, sys.getCurrentDirectory(), createGetCanonicalFileName(sys.useCaseSensitiveFileNames));
|
||||
sourceFile.fileWatcher = sys.watchFile(filePath, (fileName: string, removed?: boolean) => sourceFileChanged(sourceFile, removed));
|
||||
}
|
||||
return sourceFile;
|
||||
}
|
||||
|
||||
@@ -170,6 +170,7 @@ namespace ts {
|
||||
SymbolKeyword,
|
||||
TypeKeyword,
|
||||
FromKeyword,
|
||||
GlobalKeyword,
|
||||
OfKeyword, // LastKeyword and LastToken
|
||||
|
||||
// Parse tree nodes
|
||||
@@ -389,6 +390,7 @@ namespace ts {
|
||||
ContainsThis = 1 << 18, // Interface contains references to "this"
|
||||
HasImplicitReturn = 1 << 19, // If function implicitly returns on one of codepaths (initialized by binding)
|
||||
HasExplicitReturn = 1 << 20, // If function has explicit reachable return on one of codepaths (initialized by binding)
|
||||
GlobalAugmentation = 1 << 21, // Set if module declaration is an augmentation for the global scope
|
||||
Modifier = Export | Ambient | Public | Private | Protected | Static | Abstract | Default | Async,
|
||||
AccessibilityModifier = Public | Private | Protected,
|
||||
BlockScoped = Let | Const,
|
||||
@@ -1577,6 +1579,7 @@ namespace ts {
|
||||
// Content of this fiels should never be used directly - use getResolvedModuleFileName/setResolvedModuleFileName functions instead
|
||||
/* @internal */ resolvedModules: Map<ResolvedModule>;
|
||||
/* @internal */ imports: LiteralExpression[];
|
||||
/* @internal */ moduleAugmentations: LiteralExpression[];
|
||||
}
|
||||
|
||||
export interface ScriptReferenceHost {
|
||||
@@ -1725,6 +1728,7 @@ 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;
|
||||
@@ -1738,6 +1742,7 @@ 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;
|
||||
@@ -1909,7 +1914,7 @@ namespace ts {
|
||||
isOptionalParameter(node: ParameterDeclaration): boolean;
|
||||
moduleExportsSomeValue(moduleReferenceExpression: Expression): boolean;
|
||||
isArgumentsLocalBinding(node: Identifier): boolean;
|
||||
getExternalModuleFileFromDeclaration(declaration: ImportEqualsDeclaration | ImportDeclaration | ExportDeclaration): SourceFile;
|
||||
getExternalModuleFileFromDeclaration(declaration: ImportEqualsDeclaration | ImportDeclaration | ExportDeclaration | ModuleDeclaration): SourceFile;
|
||||
}
|
||||
|
||||
export const enum SymbolFlags {
|
||||
|
||||
@@ -251,6 +251,31 @@ namespace ts {
|
||||
isCatchClauseVariableDeclaration(declaration);
|
||||
}
|
||||
|
||||
export function isAmbientModule(node: Node): boolean {
|
||||
return node && node.kind === SyntaxKind.ModuleDeclaration &&
|
||||
((<ModuleDeclaration>node).name.kind === SyntaxKind.StringLiteral || isGlobalScopeAugmentation(<ModuleDeclaration>node));
|
||||
}
|
||||
|
||||
export function isGlobalScopeAugmentation(module: ModuleDeclaration): boolean {
|
||||
return !!(module.flags & NodeFlags.GlobalAugmentation);
|
||||
}
|
||||
|
||||
export function isExternalModuleAugmentation(node: Node): boolean {
|
||||
// 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 SyntaxKind.SourceFile:
|
||||
return isExternalModule(<SourceFile>node.parent);
|
||||
case SyntaxKind.ModuleBlock:
|
||||
return isAmbientModule(node.parent.parent) && !isExternalModule(<SourceFile>node.parent.parent.parent);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
// Gets the nearest enclosing block scope container that has the provided node
|
||||
// as a descendant, that is not the provided node.
|
||||
export function getEnclosingBlockScopeContainer(node: Node): Node {
|
||||
@@ -343,6 +368,7 @@ namespace ts {
|
||||
case SyntaxKind.FunctionDeclaration:
|
||||
case SyntaxKind.FunctionExpression:
|
||||
case SyntaxKind.MethodDeclaration:
|
||||
case SyntaxKind.TypeAliasDeclaration:
|
||||
errorNode = (<Declaration>node).name;
|
||||
break;
|
||||
}
|
||||
@@ -779,7 +805,7 @@ namespace ts {
|
||||
* Given an super call\property node returns a closest node where either
|
||||
* - super call\property is legal in the node and not legal in the parent node the node.
|
||||
* i.e. super call is legal in constructor but not legal in the class body.
|
||||
* - node is arrow function (so caller might need to call getSuperContainer in case if he needs to climb higher)
|
||||
* - node is arrow function (so caller might need to call getSuperContainer in case it needs to climb higher)
|
||||
* - super call\property is definitely illegal in the node (but might be legal in some subnode)
|
||||
* i.e. super property access is illegal in function declaration but can be legal in the statement list
|
||||
*/
|
||||
@@ -1115,6 +1141,9 @@ namespace ts {
|
||||
if (node.kind === SyntaxKind.ExportDeclaration) {
|
||||
return (<ExportDeclaration>node).moduleSpecifier;
|
||||
}
|
||||
if (node.kind === SyntaxKind.ModuleDeclaration && (<ModuleDeclaration>node).name.kind === SyntaxKind.StringLiteral) {
|
||||
return (<ModuleDeclaration>node).name;
|
||||
}
|
||||
}
|
||||
|
||||
export function hasQuestionToken(node: Node) {
|
||||
|
||||
@@ -1080,9 +1080,15 @@ namespace FourSlash {
|
||||
}
|
||||
|
||||
public baselineCurrentFileBreakpointLocations() {
|
||||
let baselineFile = this.testData.globalOptions[metadataOptionNames.baselineFile];
|
||||
if (!baselineFile) {
|
||||
baselineFile = this.activeFile.fileName.replace(this.basePath + "/breakpointValidation", "bpSpan");
|
||||
baselineFile = baselineFile.replace(".ts", ".baseline");
|
||||
|
||||
}
|
||||
Harness.Baseline.runBaseline(
|
||||
"Breakpoint Locations for " + this.activeFile.fileName,
|
||||
this.testData.globalOptions[metadataOptionNames.baselineFile],
|
||||
baselineFile,
|
||||
() => {
|
||||
return this.baselineCurrentFileLocations(pos => this.getBreakpointStatementLocation(pos));
|
||||
},
|
||||
@@ -3285,6 +3291,30 @@ namespace FourSlashInterface {
|
||||
return getClassification("typeAliasName", text, position);
|
||||
}
|
||||
|
||||
export function jsxOpenTagName(text: string, position?: number): { classificationType: string; text: string; textSpan?: FourSlash.TextSpan } {
|
||||
return getClassification("jsxOpenTagName", text, position);
|
||||
}
|
||||
|
||||
export function jsxCloseTagName(text: string, position?: number): { classificationType: string; text: string; textSpan?: FourSlash.TextSpan } {
|
||||
return getClassification("jsxCloseTagName", text, position);
|
||||
}
|
||||
|
||||
export function jsxSelfClosingTagName(text: string, position?: number): { classificationType: string; text: string; textSpan?: FourSlash.TextSpan } {
|
||||
return getClassification("jsxSelfClosingTagName", text, position);
|
||||
}
|
||||
|
||||
export function jsxAttribute(text: string, position?: number): { classificationType: string; text: string; textSpan?: FourSlash.TextSpan } {
|
||||
return getClassification("jsxAttribute", text, position);
|
||||
}
|
||||
|
||||
export function jsxText(text: string, position?: number): { classificationType: string; text: string; textSpan?: FourSlash.TextSpan } {
|
||||
return getClassification("jsxText", text, position);
|
||||
}
|
||||
|
||||
export function jsxAttributeStringLiteralValue(text: string, position?: number): { classificationType: string; text: string; textSpan?: FourSlash.TextSpan } {
|
||||
return getClassification("jsxAttributeStringLiteralValue", text, position);
|
||||
}
|
||||
|
||||
function getClassification(type: string, text: string, position?: number) {
|
||||
return {
|
||||
classificationType: type,
|
||||
|
||||
Vendored
-2
@@ -1,5 +1,3 @@
|
||||
/// <reference no-default-lib="true"/>
|
||||
|
||||
/////////////////////////////
|
||||
/// ECMAScript APIs
|
||||
/////////////////////////////
|
||||
|
||||
Vendored
+8
-8
@@ -1281,15 +1281,15 @@ interface PromiseConstructor {
|
||||
* @param values An array of Promises.
|
||||
* @returns A new Promise.
|
||||
*/
|
||||
all<T1, T2>(values: [T1 | PromiseLike<T1>, T2 | PromiseLike<T2>]): Promise<[T1, T2]>;
|
||||
all<T1, T2, T3>(values: [T1 | PromiseLike<T1>, T2 | PromiseLike<T2>, T3 | PromiseLike<T3>]): Promise<[T1, T2, T3]>;
|
||||
all<T1, T2, T3, T4>(values: [T1 | PromiseLike<T1>, T2 | PromiseLike<T2>, T3 | PromiseLike<T3>, T4 | PromiseLike <T4>]): Promise<[T1, T2, T3, T4]>;
|
||||
all<T1, T2, T3, T4, T5>(values: [T1 | PromiseLike<T1>, T2 | PromiseLike<T2>, T3 | PromiseLike<T3>, T4 | PromiseLike <T4>, T5 | PromiseLike<T5>]): Promise<[T1, T2, T3, T4, T5]>;
|
||||
all<T1, T2, T3, T4, T5, T6>(values: [T1 | PromiseLike<T1>, T2 | PromiseLike<T2>, T3 | PromiseLike<T3>, T4 | PromiseLike <T4>, T5 | PromiseLike<T5>, T6 | PromiseLike<T6>]): Promise<[T1, T2, T3, T4, T5, T6]>;
|
||||
all<T1, T2, T3, T4, T5, T6, T7>(values: [T1 | PromiseLike<T1>, T2 | PromiseLike<T2>, T3 | PromiseLike<T3>, T4 | PromiseLike <T4>, T5 | PromiseLike<T5>, T6 | PromiseLike<T6>, T7 | PromiseLike<T7>]): Promise<[T1, T2, T3, T4, T5, T6, T7]>;
|
||||
all<T1, T2, T3, T4, T5, T6, T7, T8>(values: [T1 | PromiseLike<T1>, T2 | PromiseLike<T2>, T3 | PromiseLike<T3>, T4 | PromiseLike <T4>, T5 | PromiseLike<T5>, T6 | PromiseLike<T6>, T7 | PromiseLike<T7>, T8 | PromiseLike<T8>]): Promise<[T1, T2, T3, T4, T5, T6, T7, T8]>;
|
||||
all<T1, T2, T3, T4, T5, T6, T7, T8, T9>(values: [T1 | PromiseLike<T1>, T2 | PromiseLike<T2>, T3 | PromiseLike<T3>, T4 | PromiseLike <T4>, T5 | PromiseLike<T5>, T6 | PromiseLike<T6>, T7 | PromiseLike<T7>, T8 | PromiseLike<T8>, T9 | PromiseLike<T9>]): Promise<[T1, T2, T3, T4, T5, T6, T7, T8, T9]>;
|
||||
all<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10>(values: [T1 | PromiseLike<T1>, T2 | PromiseLike<T2>, T3 | PromiseLike<T3>, T4 | PromiseLike <T4>, T5 | PromiseLike<T5>, T6 | PromiseLike<T6>, T7 | PromiseLike<T7>, T8 | PromiseLike<T8>, T9 | PromiseLike<T9>, T10 | PromiseLike<T10>]): Promise<[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10]>;
|
||||
all<T1, T2, T3, T4, T5, T6, T7, T8, T9>(values: [T1 | PromiseLike<T1>, T2 | PromiseLike<T2>, T3 | PromiseLike<T3>, T4 | PromiseLike <T4>, T5 | PromiseLike<T5>, T6 | PromiseLike<T6>, T7 | PromiseLike<T7>, T8 | PromiseLike<T8>, T9 | PromiseLike<T9>]): Promise<[T1, T2, T3, T4, T5, T6, T7, T8, T9]>;
|
||||
all<T1, T2, T3, T4, T5, T6, T7, T8>(values: [T1 | PromiseLike<T1>, T2 | PromiseLike<T2>, T3 | PromiseLike<T3>, T4 | PromiseLike <T4>, T5 | PromiseLike<T5>, T6 | PromiseLike<T6>, T7 | PromiseLike<T7>, T8 | PromiseLike<T8>]): Promise<[T1, T2, T3, T4, T5, T6, T7, T8]>;
|
||||
all<T1, T2, T3, T4, T5, T6, T7>(values: [T1 | PromiseLike<T1>, T2 | PromiseLike<T2>, T3 | PromiseLike<T3>, T4 | PromiseLike <T4>, T5 | PromiseLike<T5>, T6 | PromiseLike<T6>, T7 | PromiseLike<T7>]): Promise<[T1, T2, T3, T4, T5, T6, T7]>;
|
||||
all<T1, T2, T3, T4, T5, T6>(values: [T1 | PromiseLike<T1>, T2 | PromiseLike<T2>, T3 | PromiseLike<T3>, T4 | PromiseLike <T4>, T5 | PromiseLike<T5>, T6 | PromiseLike<T6>]): Promise<[T1, T2, T3, T4, T5, T6]>;
|
||||
all<T1, T2, T3, T4, T5>(values: [T1 | PromiseLike<T1>, T2 | PromiseLike<T2>, T3 | PromiseLike<T3>, T4 | PromiseLike <T4>, T5 | PromiseLike<T5>]): Promise<[T1, T2, T3, T4, T5]>;
|
||||
all<T1, T2, T3, T4>(values: [T1 | PromiseLike<T1>, T2 | PromiseLike<T2>, T3 | PromiseLike<T3>, T4 | PromiseLike <T4>]): Promise<[T1, T2, T3, T4]>;
|
||||
all<T1, T2, T3>(values: [T1 | PromiseLike<T1>, T2 | PromiseLike<T2>, T3 | PromiseLike<T3>]): Promise<[T1, T2, T3]>;
|
||||
all<T1, T2>(values: [T1 | PromiseLike<T1>, T2 | PromiseLike<T2>]): Promise<[T1, T2]>;
|
||||
all<TAll>(values: Iterable<TAll | PromiseLike<TAll>>): Promise<TAll[]>;
|
||||
|
||||
/**
|
||||
|
||||
Vendored
+1
@@ -0,0 +1 @@
|
||||
/// <reference no-default-lib="true"/>
|
||||
@@ -1002,7 +1002,9 @@ namespace ts.server {
|
||||
info.setFormatOptions(this.getFormatCodeOptions());
|
||||
this.filenameToScriptInfo[fileName] = info;
|
||||
if (!info.isOpen) {
|
||||
info.fileWatcher = this.host.watchFile(fileName, _ => { this.watchedFileChanged(fileName); });
|
||||
info.fileWatcher = this.host.watchFile(
|
||||
toPath(fileName, fileName, createGetCanonicalFileName(sys.useCaseSensitiveFileNames)),
|
||||
_ => { this.watchedFileChanged(fileName); });
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1215,7 +1217,9 @@ namespace ts.server {
|
||||
}
|
||||
}
|
||||
project.finishGraph();
|
||||
project.projectFileWatcher = this.host.watchFile(configFilename, _ => this.watchedProjectConfigFileChanged(project));
|
||||
project.projectFileWatcher = this.host.watchFile(
|
||||
toPath(configFilename, configFilename, createGetCanonicalFileName(sys.useCaseSensitiveFileNames)),
|
||||
_ => this.watchedProjectConfigFileChanged(project));
|
||||
this.log("Add recursive watcher for: " + ts.getDirectoryPath(configFilename));
|
||||
project.directoryWatcher = this.host.watchDirectory(
|
||||
ts.getDirectoryPath(configFilename),
|
||||
|
||||
+271
-86
@@ -45,6 +45,10 @@ namespace ts.BreakpointResolver {
|
||||
return createTextSpanFromBounds(start, (endNode || startNode).getEnd());
|
||||
}
|
||||
|
||||
function textSpanEndingAtNextToken(startNode: Node, previousTokenToFindNextEndToken: Node): TextSpan {
|
||||
return textSpan(startNode, findNextToken(previousTokenToFindNextEndToken, previousTokenToFindNextEndToken.parent));
|
||||
}
|
||||
|
||||
function spanInNodeIfStartsOnSameLine(node: Node, otherwiseOnNode?: Node): TextSpan {
|
||||
if (node && lineOfPosition === sourceFile.getLineAndCharacterOfPosition(node.getStart(sourceFile)).line) {
|
||||
return spanInNode(node);
|
||||
@@ -66,33 +70,6 @@ namespace ts.BreakpointResolver {
|
||||
|
||||
function spanInNode(node: Node): TextSpan {
|
||||
if (node) {
|
||||
if (isExpression(node)) {
|
||||
if (node.parent.kind === SyntaxKind.DoStatement) {
|
||||
// Set span as if on while keyword
|
||||
return spanInPreviousNode(node);
|
||||
}
|
||||
|
||||
if (node.parent.kind === SyntaxKind.Decorator) {
|
||||
// Set breakpoint on the decorator emit
|
||||
return spanInNode(node.parent);
|
||||
}
|
||||
|
||||
if (node.parent.kind === SyntaxKind.ForStatement) {
|
||||
// For now lets set the span on this expression, fix it later
|
||||
return textSpan(node);
|
||||
}
|
||||
|
||||
if (node.parent.kind === SyntaxKind.BinaryExpression && (<BinaryExpression>node.parent).operatorToken.kind === SyntaxKind.CommaToken) {
|
||||
// if this is comma expression, the breakpoint is possible in this expression
|
||||
return textSpan(node);
|
||||
}
|
||||
|
||||
if (node.parent.kind === SyntaxKind.ArrowFunction && (<FunctionLikeDeclaration>node.parent).body === node) {
|
||||
// If this is body of arrow function, it is allowed to have the breakpoint
|
||||
return textSpan(node);
|
||||
}
|
||||
}
|
||||
|
||||
switch (node.kind) {
|
||||
case SyntaxKind.VariableStatement:
|
||||
// Span on first variable declaration
|
||||
@@ -120,7 +97,7 @@ namespace ts.BreakpointResolver {
|
||||
if (isFunctionBlock(node)) {
|
||||
return spanInFunctionBlock(<Block>node);
|
||||
}
|
||||
// Fall through
|
||||
// Fall through
|
||||
case SyntaxKind.ModuleBlock:
|
||||
return spanInBlock(<Block>node);
|
||||
|
||||
@@ -137,7 +114,7 @@ namespace ts.BreakpointResolver {
|
||||
|
||||
case SyntaxKind.WhileStatement:
|
||||
// Span on while(...)
|
||||
return textSpan(node, findNextToken((<WhileStatement>node).expression, node));
|
||||
return textSpanEndingAtNextToken(node, (<WhileStatement>node).expression);
|
||||
|
||||
case SyntaxKind.DoStatement:
|
||||
// span in statement of the do statement
|
||||
@@ -149,7 +126,7 @@ namespace ts.BreakpointResolver {
|
||||
|
||||
case SyntaxKind.IfStatement:
|
||||
// set on if(..) span
|
||||
return textSpan(node, findNextToken((<IfStatement>node).expression, node));
|
||||
return textSpanEndingAtNextToken(node, (<IfStatement>node).expression);
|
||||
|
||||
case SyntaxKind.LabeledStatement:
|
||||
// span in statement
|
||||
@@ -164,13 +141,16 @@ namespace ts.BreakpointResolver {
|
||||
return spanInForStatement(<ForStatement>node);
|
||||
|
||||
case SyntaxKind.ForInStatement:
|
||||
// span of for (a in ...)
|
||||
return textSpanEndingAtNextToken(node, (<ForInStatement>node).expression);
|
||||
|
||||
case SyntaxKind.ForOfStatement:
|
||||
// span on for (a in ...)
|
||||
return textSpan(node, findNextToken((<ForInStatement | ForOfStatement>node).expression, node));
|
||||
// span in initializer
|
||||
return spanInInitializerOfForLike(<ForOfStatement | ForInStatement>node);
|
||||
|
||||
case SyntaxKind.SwitchStatement:
|
||||
// span on switch(...)
|
||||
return textSpan(node, findNextToken((<SwitchStatement>node).expression, node));
|
||||
return textSpanEndingAtNextToken(node, (<SwitchStatement>node).expression);
|
||||
|
||||
case SyntaxKind.CaseClause:
|
||||
case SyntaxKind.DefaultClause:
|
||||
@@ -210,8 +190,7 @@ namespace ts.BreakpointResolver {
|
||||
case SyntaxKind.ClassDeclaration:
|
||||
case SyntaxKind.EnumDeclaration:
|
||||
case SyntaxKind.EnumMember:
|
||||
case SyntaxKind.CallExpression:
|
||||
case SyntaxKind.NewExpression:
|
||||
case SyntaxKind.BindingElement:
|
||||
// span on complete node
|
||||
return textSpan(node);
|
||||
|
||||
@@ -222,6 +201,10 @@ namespace ts.BreakpointResolver {
|
||||
case SyntaxKind.Decorator:
|
||||
return spanInNodeArray(node.parent.decorators);
|
||||
|
||||
case SyntaxKind.ObjectBindingPattern:
|
||||
case SyntaxKind.ArrayBindingPattern:
|
||||
return spanInBindingPattern(<BindingPattern>node);
|
||||
|
||||
// No breakpoint in interface, type alias
|
||||
case SyntaxKind.InterfaceDeclaration:
|
||||
case SyntaxKind.TypeAliasDeclaration:
|
||||
@@ -234,14 +217,17 @@ namespace ts.BreakpointResolver {
|
||||
|
||||
case SyntaxKind.CommaToken:
|
||||
return spanInPreviousNode(node)
|
||||
|
||||
|
||||
case SyntaxKind.OpenBraceToken:
|
||||
return spanInOpenBraceToken(node);
|
||||
|
||||
case SyntaxKind.CloseBraceToken:
|
||||
return spanInCloseBraceToken(node);
|
||||
|
||||
case SyntaxKind.OpenParenToken:
|
||||
case SyntaxKind.CloseBracketToken:
|
||||
return spanInCloseBracketToken(node);
|
||||
|
||||
case SyntaxKind.OpenParenToken:
|
||||
return spanInOpenParenToken(node);
|
||||
|
||||
case SyntaxKind.CloseParenToken:
|
||||
@@ -263,15 +249,93 @@ namespace ts.BreakpointResolver {
|
||||
case SyntaxKind.FinallyKeyword:
|
||||
return spanInNextNode(node);
|
||||
|
||||
case SyntaxKind.OfKeyword:
|
||||
return spanInOfKeyword(node);
|
||||
|
||||
default:
|
||||
// If this is name of property assignment, set breakpoint in the initializer
|
||||
if (node.parent.kind === SyntaxKind.PropertyAssignment && (<PropertyDeclaration>node.parent).name === node) {
|
||||
return spanInNode((<PropertyDeclaration>node.parent).initializer);
|
||||
// Destructuring pattern in destructuring assignment
|
||||
// [a, b, c] of
|
||||
// [a, b, c] = expression
|
||||
if (isArrayLiteralOrObjectLiteralDestructuringPattern(node)) {
|
||||
return spanInArrayLiteralOrObjectLiteralDestructuringPattern(<DestructuringPattern>node);
|
||||
}
|
||||
|
||||
// Set breakpoint on identifier element of destructuring pattern
|
||||
// a or ...c or d: x from
|
||||
// [a, b, ...c] or { a, b } or { d: x } from destructuring pattern
|
||||
if ((node.kind === SyntaxKind.Identifier ||
|
||||
node.kind == SyntaxKind.SpreadElementExpression ||
|
||||
node.kind === SyntaxKind.PropertyAssignment ||
|
||||
node.kind === SyntaxKind.ShorthandPropertyAssignment) &&
|
||||
isArrayLiteralOrObjectLiteralDestructuringPattern(node.parent)) {
|
||||
return textSpan(node);
|
||||
}
|
||||
|
||||
if (node.kind === SyntaxKind.BinaryExpression) {
|
||||
const binaryExpression = <BinaryExpression>node;
|
||||
// Set breakpoint in destructuring pattern if its destructuring assignment
|
||||
// [a, b, c] or {a, b, c} of
|
||||
// [a, b, c] = expression or
|
||||
// {a, b, c} = expression
|
||||
if (isArrayLiteralOrObjectLiteralDestructuringPattern(binaryExpression.left)) {
|
||||
return spanInArrayLiteralOrObjectLiteralDestructuringPattern(
|
||||
<ArrayLiteralExpression | ObjectLiteralExpression>binaryExpression.left);
|
||||
}
|
||||
|
||||
if (binaryExpression.operatorToken.kind === SyntaxKind.EqualsToken &&
|
||||
isArrayLiteralOrObjectLiteralDestructuringPattern(binaryExpression.parent)) {
|
||||
// Set breakpoint on assignment expression element of destructuring pattern
|
||||
// a = expression of
|
||||
// [a = expression, b, c] = someExpression or
|
||||
// { a = expression, b, c } = someExpression
|
||||
return textSpan(node);
|
||||
}
|
||||
|
||||
if (binaryExpression.operatorToken.kind === SyntaxKind.CommaToken) {
|
||||
return spanInNode(binaryExpression.left);
|
||||
}
|
||||
}
|
||||
|
||||
if (isExpression(node)) {
|
||||
switch (node.parent.kind) {
|
||||
case SyntaxKind.DoStatement:
|
||||
// Set span as if on while keyword
|
||||
return spanInPreviousNode(node);
|
||||
|
||||
case SyntaxKind.Decorator:
|
||||
// Set breakpoint on the decorator emit
|
||||
return spanInNode(node.parent);
|
||||
|
||||
case SyntaxKind.ForStatement:
|
||||
case SyntaxKind.ForOfStatement:
|
||||
return textSpan(node);
|
||||
|
||||
case SyntaxKind.BinaryExpression:
|
||||
if ((<BinaryExpression>node.parent).operatorToken.kind === SyntaxKind.CommaToken) {
|
||||
// if this is comma expression, the breakpoint is possible in this expression
|
||||
return textSpan(node);
|
||||
}
|
||||
break;
|
||||
|
||||
case SyntaxKind.ArrowFunction:
|
||||
if ((<FunctionLikeDeclaration>node.parent).body === node) {
|
||||
// If this is body of arrow function, it is allowed to have the breakpoint
|
||||
return textSpan(node);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// If this is name of property assignment, set breakpoint in the initializer
|
||||
if (node.parent.kind === SyntaxKind.PropertyAssignment &&
|
||||
(<PropertyDeclaration>node.parent).name === node &&
|
||||
!isArrayLiteralOrObjectLiteralDestructuringPattern(node.parent.parent)) {
|
||||
return spanInNode((<PropertyDeclaration>node.parent).initializer);
|
||||
}
|
||||
|
||||
// Breakpoint in type assertion goes to its operand
|
||||
if (node.parent.kind === SyntaxKind.TypeAssertionExpression && (<TypeAssertion>node.parent).type === node) {
|
||||
return spanInNode((<TypeAssertion>node.parent).expression);
|
||||
return spanInNextNode((<TypeAssertion>node.parent).type);
|
||||
}
|
||||
|
||||
// return type of function go to previous token
|
||||
@@ -279,48 +343,70 @@ namespace ts.BreakpointResolver {
|
||||
return spanInPreviousNode(node);
|
||||
}
|
||||
|
||||
// initializer of variable/parameter declaration go to previous node
|
||||
if ((node.parent.kind === SyntaxKind.VariableDeclaration ||
|
||||
node.parent.kind === SyntaxKind.Parameter)) {
|
||||
const paramOrVarDecl = <VariableDeclaration | ParameterDeclaration>node.parent;
|
||||
if (paramOrVarDecl.initializer === node ||
|
||||
paramOrVarDecl.type === node ||
|
||||
isAssignmentOperator(node.kind)) {
|
||||
return spanInPreviousNode(node);
|
||||
}
|
||||
}
|
||||
|
||||
if (node.parent.kind === SyntaxKind.BinaryExpression) {
|
||||
const binaryExpression = <BinaryExpression>node.parent;
|
||||
if (isArrayLiteralOrObjectLiteralDestructuringPattern(binaryExpression.left) &&
|
||||
(binaryExpression.right === node ||
|
||||
binaryExpression.operatorToken === node)) {
|
||||
// If initializer of destructuring assignment move to previous token
|
||||
return spanInPreviousNode(node);
|
||||
}
|
||||
}
|
||||
|
||||
// Default go to parent to set the breakpoint
|
||||
return spanInNode(node.parent);
|
||||
}
|
||||
}
|
||||
|
||||
function textSpanFromVariableDeclaration(variableDeclaration: VariableDeclaration): TextSpan {
|
||||
let declarations = variableDeclaration.parent.declarations;
|
||||
if (declarations && declarations[0] === variableDeclaration) {
|
||||
// First declaration - include let keyword
|
||||
return textSpan(findPrecedingToken(variableDeclaration.pos, sourceFile, variableDeclaration.parent), variableDeclaration);
|
||||
}
|
||||
else {
|
||||
// Span only on this declaration
|
||||
return textSpan(variableDeclaration);
|
||||
}
|
||||
}
|
||||
|
||||
function spanInVariableDeclaration(variableDeclaration: VariableDeclaration): TextSpan {
|
||||
// If declaration of for in statement, just set the span in parent
|
||||
if (variableDeclaration.parent.parent.kind === SyntaxKind.ForInStatement ||
|
||||
variableDeclaration.parent.parent.kind === SyntaxKind.ForOfStatement) {
|
||||
if (variableDeclaration.parent.parent.kind === SyntaxKind.ForInStatement) {
|
||||
return spanInNode(variableDeclaration.parent.parent);
|
||||
}
|
||||
|
||||
let isParentVariableStatement = variableDeclaration.parent.parent.kind === SyntaxKind.VariableStatement;
|
||||
let isDeclarationOfForStatement = variableDeclaration.parent.parent.kind === SyntaxKind.ForStatement && contains((<VariableDeclarationList>(<ForStatement>variableDeclaration.parent.parent).initializer).declarations, variableDeclaration);
|
||||
let declarations = isParentVariableStatement
|
||||
? (<VariableStatement>variableDeclaration.parent.parent).declarationList.declarations
|
||||
: isDeclarationOfForStatement
|
||||
? (<VariableDeclarationList>(<ForStatement>variableDeclaration.parent.parent).initializer).declarations
|
||||
: undefined;
|
||||
|
||||
// If this is a destructuring pattern set breakpoint in binding pattern
|
||||
if (isBindingPattern(variableDeclaration.name)) {
|
||||
return spanInBindingPattern(<BindingPattern>variableDeclaration.name);
|
||||
}
|
||||
|
||||
// Breakpoint is possible in variableDeclaration only if there is initialization
|
||||
if (variableDeclaration.initializer || (variableDeclaration.flags & NodeFlags.Export)) {
|
||||
if (declarations && declarations[0] === variableDeclaration) {
|
||||
if (isParentVariableStatement) {
|
||||
// First declaration - include let keyword
|
||||
return textSpan(variableDeclaration.parent, variableDeclaration);
|
||||
}
|
||||
else {
|
||||
Debug.assert(isDeclarationOfForStatement);
|
||||
// Include let keyword from for statement declarations in the span
|
||||
return textSpan(findPrecedingToken(variableDeclaration.pos, sourceFile, variableDeclaration.parent), variableDeclaration);
|
||||
}
|
||||
}
|
||||
else {
|
||||
// Span only on this declaration
|
||||
return textSpan(variableDeclaration);
|
||||
}
|
||||
// or its declaration from 'for of'
|
||||
if (variableDeclaration.initializer ||
|
||||
(variableDeclaration.flags & NodeFlags.Export) ||
|
||||
variableDeclaration.parent.parent.kind === SyntaxKind.ForOfStatement) {
|
||||
return textSpanFromVariableDeclaration(variableDeclaration);
|
||||
}
|
||||
else if (declarations && declarations[0] !== variableDeclaration) {
|
||||
|
||||
let declarations = variableDeclaration.parent.declarations;
|
||||
if (declarations && declarations[0] !== variableDeclaration) {
|
||||
// If we cant set breakpoint on this declaration, set it on previous one
|
||||
let indexOfCurrentDeclaration = indexOf(declarations, variableDeclaration);
|
||||
return spanInVariableDeclaration(declarations[indexOfCurrentDeclaration - 1]);
|
||||
// Because the variable declaration may be binding pattern and
|
||||
// we would like to set breakpoint in last binding element if thats the case,
|
||||
// use preceding token instead
|
||||
return spanInNode(findPrecedingToken(variableDeclaration.pos, sourceFile, variableDeclaration.parent));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -331,7 +417,11 @@ namespace ts.BreakpointResolver {
|
||||
}
|
||||
|
||||
function spanInParameterDeclaration(parameter: ParameterDeclaration): TextSpan {
|
||||
if (canHaveSpanInParameterDeclaration(parameter)) {
|
||||
if (isBindingPattern(parameter.name)) {
|
||||
// set breakpoint in binding pattern
|
||||
return spanInBindingPattern(<BindingPattern>parameter.name);
|
||||
}
|
||||
else if (canHaveSpanInParameterDeclaration(parameter)) {
|
||||
return textSpan(parameter);
|
||||
}
|
||||
else {
|
||||
@@ -388,11 +478,11 @@ namespace ts.BreakpointResolver {
|
||||
case SyntaxKind.WhileStatement:
|
||||
case SyntaxKind.IfStatement:
|
||||
case SyntaxKind.ForInStatement:
|
||||
case SyntaxKind.ForOfStatement:
|
||||
return spanInNodeIfStartsOnSameLine(block.parent, block.statements[0]);
|
||||
|
||||
// Set span on previous token if it starts on same line otherwise on the first statement of the block
|
||||
case SyntaxKind.ForStatement:
|
||||
case SyntaxKind.ForOfStatement:
|
||||
return spanInNodeIfStartsOnSameLine(findPrecedingToken(block.pos, sourceFile, block.parent), block.statements[0]);
|
||||
}
|
||||
|
||||
@@ -400,17 +490,23 @@ namespace ts.BreakpointResolver {
|
||||
return spanInNode(block.statements[0]);
|
||||
}
|
||||
|
||||
function spanInInitializerOfForLike(forLikeStaement: ForStatement | ForOfStatement | ForInStatement): TextSpan {
|
||||
if (forLikeStaement.initializer.kind === SyntaxKind.VariableDeclarationList) {
|
||||
// declaration list, set breakpoint in first declaration
|
||||
let variableDeclarationList = <VariableDeclarationList>forLikeStaement.initializer;
|
||||
if (variableDeclarationList.declarations.length > 0) {
|
||||
return spanInNode(variableDeclarationList.declarations[0]);
|
||||
}
|
||||
}
|
||||
else {
|
||||
// Expression - set breakpoint in it
|
||||
return spanInNode(forLikeStaement.initializer);
|
||||
}
|
||||
}
|
||||
|
||||
function spanInForStatement(forStatement: ForStatement): TextSpan {
|
||||
if (forStatement.initializer) {
|
||||
if (forStatement.initializer.kind === SyntaxKind.VariableDeclarationList) {
|
||||
let variableDeclarationList = <VariableDeclarationList>forStatement.initializer;
|
||||
if (variableDeclarationList.declarations.length > 0) {
|
||||
return spanInNode(variableDeclarationList.declarations[0]);
|
||||
}
|
||||
}
|
||||
else {
|
||||
return spanInNode(forStatement.initializer);
|
||||
}
|
||||
return spanInInitializerOfForLike(forStatement);
|
||||
}
|
||||
|
||||
if (forStatement.condition) {
|
||||
@@ -421,6 +517,45 @@ namespace ts.BreakpointResolver {
|
||||
}
|
||||
}
|
||||
|
||||
function spanInBindingPattern(bindingPattern: BindingPattern): TextSpan {
|
||||
// Set breakpoint in first binding element
|
||||
let firstBindingElement = forEach(bindingPattern.elements,
|
||||
element => element.kind !== SyntaxKind.OmittedExpression ? element : undefined);
|
||||
|
||||
if (firstBindingElement) {
|
||||
return spanInNode(firstBindingElement);
|
||||
}
|
||||
|
||||
// Empty binding pattern of binding element, set breakpoint on binding element
|
||||
if (bindingPattern.parent.kind === SyntaxKind.BindingElement) {
|
||||
return textSpan(bindingPattern.parent);
|
||||
}
|
||||
|
||||
// Variable declaration is used as the span
|
||||
return textSpanFromVariableDeclaration(<VariableDeclaration>bindingPattern.parent);
|
||||
}
|
||||
|
||||
function spanInArrayLiteralOrObjectLiteralDestructuringPattern(node: DestructuringPattern): TextSpan {
|
||||
Debug.assert(node.kind !== SyntaxKind.ArrayBindingPattern && node.kind !== SyntaxKind.ObjectBindingPattern);
|
||||
const elements: NodeArray<Expression | ObjectLiteralElement> =
|
||||
node.kind === SyntaxKind.ArrayLiteralExpression ?
|
||||
(<ArrayLiteralExpression>node).elements :
|
||||
(<ObjectLiteralExpression>node).properties;
|
||||
|
||||
const firstBindingElement = forEach(elements,
|
||||
element => element.kind !== SyntaxKind.OmittedExpression ? element : undefined);
|
||||
|
||||
if (firstBindingElement) {
|
||||
return spanInNode(firstBindingElement);
|
||||
}
|
||||
|
||||
// Could be ArrayLiteral from destructuring assignment or
|
||||
// just nested element in another destructuring assignment
|
||||
// set breakpoint on assignment when parent is destructuring assignment
|
||||
// Otherwise set breakpoint for this element
|
||||
return textSpan(node.parent.kind === SyntaxKind.BinaryExpression ? node.parent : node);
|
||||
}
|
||||
|
||||
// Tokens:
|
||||
function spanInOpenBraceToken(node: Node): TextSpan {
|
||||
switch (node.parent.kind) {
|
||||
@@ -472,18 +607,52 @@ namespace ts.BreakpointResolver {
|
||||
}
|
||||
return undefined;
|
||||
|
||||
case SyntaxKind.ObjectBindingPattern:
|
||||
// Breakpoint in last binding element or binding pattern if it contains no elements
|
||||
let bindingPattern = <BindingPattern>node.parent;
|
||||
return spanInNode(lastOrUndefined(bindingPattern.elements) || bindingPattern);
|
||||
|
||||
// Default to parent node
|
||||
default:
|
||||
if (isArrayLiteralOrObjectLiteralDestructuringPattern(node.parent)) {
|
||||
// Breakpoint in last binding element or binding pattern if it contains no elements
|
||||
let objectLiteral = <ObjectLiteralExpression>node.parent;
|
||||
return textSpan(lastOrUndefined(objectLiteral.properties) || objectLiteral);
|
||||
}
|
||||
return spanInNode(node.parent);
|
||||
}
|
||||
}
|
||||
|
||||
function spanInCloseBracketToken(node: Node): TextSpan {
|
||||
switch (node.parent.kind) {
|
||||
case SyntaxKind.ArrayBindingPattern:
|
||||
// Breakpoint in last binding element or binding pattern if it contains no elements
|
||||
let bindingPattern = <BindingPattern>node.parent;
|
||||
return textSpan(lastOrUndefined(bindingPattern.elements) || bindingPattern);
|
||||
|
||||
default:
|
||||
if (isArrayLiteralOrObjectLiteralDestructuringPattern(node.parent)) {
|
||||
// Breakpoint in last binding element or binding pattern if it contains no elements
|
||||
let arrayLiteral = <ArrayLiteralExpression>node.parent;
|
||||
return textSpan(lastOrUndefined(arrayLiteral.elements) || arrayLiteral);
|
||||
}
|
||||
|
||||
// Default to parent node
|
||||
return spanInNode(node.parent);
|
||||
}
|
||||
}
|
||||
|
||||
function spanInOpenParenToken(node: Node): TextSpan {
|
||||
if (node.parent.kind === SyntaxKind.DoStatement) {
|
||||
// Go to while keyword and do action instead
|
||||
if (node.parent.kind === SyntaxKind.DoStatement || // Go to while keyword and do action instead
|
||||
node.parent.kind === SyntaxKind.CallExpression ||
|
||||
node.parent.kind === SyntaxKind.NewExpression) {
|
||||
return spanInPreviousNode(node);
|
||||
}
|
||||
|
||||
if (node.parent.kind === SyntaxKind.ParenthesizedExpression) {
|
||||
return spanInNextNode(node);
|
||||
}
|
||||
|
||||
// Default to parent node
|
||||
return spanInNode(node.parent);
|
||||
}
|
||||
@@ -502,6 +671,10 @@ namespace ts.BreakpointResolver {
|
||||
case SyntaxKind.WhileStatement:
|
||||
case SyntaxKind.DoStatement:
|
||||
case SyntaxKind.ForStatement:
|
||||
case SyntaxKind.ForOfStatement:
|
||||
case SyntaxKind.CallExpression:
|
||||
case SyntaxKind.NewExpression:
|
||||
case SyntaxKind.ParenthesizedExpression:
|
||||
return spanInPreviousNode(node);
|
||||
|
||||
// Default to parent node
|
||||
@@ -512,7 +685,9 @@ namespace ts.BreakpointResolver {
|
||||
|
||||
function spanInColonToken(node: Node): TextSpan {
|
||||
// Is this : specifying return annotation of the function declaration
|
||||
if (isFunctionLike(node.parent) || node.parent.kind === SyntaxKind.PropertyAssignment) {
|
||||
if (isFunctionLike(node.parent) ||
|
||||
node.parent.kind === SyntaxKind.PropertyAssignment ||
|
||||
node.parent.kind === SyntaxKind.Parameter) {
|
||||
return spanInPreviousNode(node);
|
||||
}
|
||||
|
||||
@@ -521,7 +696,7 @@ namespace ts.BreakpointResolver {
|
||||
|
||||
function spanInGreaterThanOrLessThanToken(node: Node): TextSpan {
|
||||
if (node.parent.kind === SyntaxKind.TypeAssertionExpression) {
|
||||
return spanInNode((<TypeAssertion>node.parent).expression);
|
||||
return spanInNextNode(node);
|
||||
}
|
||||
|
||||
return spanInNode(node.parent);
|
||||
@@ -530,7 +705,17 @@ namespace ts.BreakpointResolver {
|
||||
function spanInWhileKeyword(node: Node): TextSpan {
|
||||
if (node.parent.kind === SyntaxKind.DoStatement) {
|
||||
// Set span on while expression
|
||||
return textSpan(node, findNextToken((<DoStatement>node.parent).expression, node.parent));
|
||||
return textSpanEndingAtNextToken(node, (<DoStatement>node.parent).expression);
|
||||
}
|
||||
|
||||
// Default to parent node
|
||||
return spanInNode(node.parent);
|
||||
}
|
||||
|
||||
function spanInOfKeyword(node: Node): TextSpan {
|
||||
if (node.parent.kind === SyntaxKind.ForOfStatement) {
|
||||
// set using next token
|
||||
return spanInNextNode(node);
|
||||
}
|
||||
|
||||
// Default to parent node
|
||||
|
||||
@@ -387,7 +387,7 @@ namespace ts.NavigationBar {
|
||||
|
||||
function getModuleName(moduleDeclaration: ModuleDeclaration): string {
|
||||
// We want to maintain quotation marks.
|
||||
if (moduleDeclaration.name.kind === SyntaxKind.StringLiteral) {
|
||||
if (isAmbientModule(moduleDeclaration)) {
|
||||
return getTextOfNode(moduleDeclaration.name);
|
||||
}
|
||||
|
||||
|
||||
+109
-31
@@ -811,6 +811,7 @@ namespace ts {
|
||||
public nameTable: Map<string>;
|
||||
public resolvedModules: Map<ResolvedModule>;
|
||||
public imports: LiteralExpression[];
|
||||
public moduleAugmentations: LiteralExpression[];
|
||||
private namedDeclarations: Map<Declaration[]>;
|
||||
|
||||
constructor(kind: SyntaxKind, pos: number, end: number) {
|
||||
@@ -1616,6 +1617,9 @@ namespace ts {
|
||||
public static jsxOpenTagName = "jsx open tag name";
|
||||
public static jsxCloseTagName = "jsx close tag name";
|
||||
public static jsxSelfClosingTagName = "jsx self closing tag name";
|
||||
public static jsxAttribute = "jsx attribute";
|
||||
public static jsxText = "jsx text";
|
||||
public static jsxAttributeStringLiteralValue = "jsx attribute string literal value";
|
||||
}
|
||||
|
||||
export const enum ClassificationType {
|
||||
@@ -1640,6 +1644,9 @@ namespace ts {
|
||||
jsxOpenTagName = 19,
|
||||
jsxCloseTagName = 20,
|
||||
jsxSelfClosingTagName = 21,
|
||||
jsxAttribute = 22,
|
||||
jsxText = 23,
|
||||
jsxAttributeStringLiteralValue = 24,
|
||||
}
|
||||
|
||||
/// Language Service
|
||||
@@ -2012,13 +2019,6 @@ namespace ts {
|
||||
return createLanguageServiceSourceFile(sourceFile.fileName, scriptSnapshot, sourceFile.languageVersion, version, /*setNodeParents*/ true);
|
||||
}
|
||||
|
||||
export function createGetCanonicalFileName(useCaseSensitivefileNames: boolean): (fileName: string) => string {
|
||||
return useCaseSensitivefileNames
|
||||
? ((fileName) => fileName)
|
||||
: ((fileName) => fileName.toLowerCase());
|
||||
}
|
||||
|
||||
|
||||
export function createDocumentRegistry(useCaseSensitiveFileNames?: boolean, currentDirectory = ""): DocumentRegistry {
|
||||
// Maps from compiler setting target (ES3, ES5, etc.) to all the cached documents we have
|
||||
// for those settings.
|
||||
@@ -3099,6 +3099,7 @@ namespace ts {
|
||||
}
|
||||
else if (kind === SyntaxKind.SlashToken && contextToken.parent.kind === SyntaxKind.JsxClosingElement) {
|
||||
isStartingCloseTag = true;
|
||||
location = contextToken;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -3124,8 +3125,11 @@ namespace ts {
|
||||
}
|
||||
else if (isStartingCloseTag) {
|
||||
const tagName = (<JsxElement>contextToken.parent.parent).openingElement.tagName;
|
||||
symbols = [typeChecker.getSymbolAtLocation(tagName)];
|
||||
const tagSymbol = typeChecker.getSymbolAtLocation(tagName);
|
||||
|
||||
if (!typeChecker.isUnknownSymbol(tagSymbol)) {
|
||||
symbols = [tagSymbol];
|
||||
}
|
||||
isMemberCompletion = true;
|
||||
isNewIdentifierLocation = false;
|
||||
}
|
||||
@@ -3831,7 +3835,23 @@ namespace ts {
|
||||
}
|
||||
else {
|
||||
if (!symbols || symbols.length === 0) {
|
||||
return undefined;
|
||||
if (sourceFile.languageVariant === LanguageVariant.JSX &&
|
||||
location.parent && location.parent.kind === SyntaxKind.JsxClosingElement) {
|
||||
// In the TypeScript JSX element, if such element is not defined. When users query for completion at closing tag,
|
||||
// instead of simply giving unknown value, the completion will return the tag-name of an associated opening-element.
|
||||
// For example:
|
||||
// var x = <div> </ /*1*/> completion list at "1" will contain "div" with type any
|
||||
const tagName = (<JsxElement>location.parent.parent).openingElement.tagName;
|
||||
entries.push({
|
||||
name: (<Identifier>tagName).text,
|
||||
kind: undefined,
|
||||
kindModifiers: undefined,
|
||||
sortText: "0",
|
||||
});
|
||||
}
|
||||
else {
|
||||
return undefined;
|
||||
}
|
||||
}
|
||||
|
||||
getCompletionEntriesFromSymbols(symbols, entries);
|
||||
@@ -4439,7 +4459,7 @@ namespace ts {
|
||||
const typeChecker = program.getTypeChecker();
|
||||
const symbol = typeChecker.getSymbolAtLocation(node);
|
||||
|
||||
if (!symbol) {
|
||||
if (!symbol || typeChecker.isUnknownSymbol(symbol)) {
|
||||
// Try getting just type at this position and show
|
||||
switch (node.kind) {
|
||||
case SyntaxKind.Identifier:
|
||||
@@ -5491,10 +5511,8 @@ namespace ts {
|
||||
};
|
||||
}
|
||||
|
||||
function isImportOrExportSpecifierImportSymbol(symbol: Symbol) {
|
||||
return (symbol.flags & SymbolFlags.Alias) && forEach(symbol.declarations, declaration => {
|
||||
return declaration.kind === SyntaxKind.ImportSpecifier || declaration.kind === SyntaxKind.ExportSpecifier;
|
||||
});
|
||||
function isImportSpecifierSymbol(symbol: Symbol) {
|
||||
return (symbol.flags & SymbolFlags.Alias) && !!getDeclarationOfKind(symbol, SyntaxKind.ImportSpecifier);
|
||||
}
|
||||
|
||||
function getInternedName(symbol: Symbol, location: Node, declarations: Declaration[]): string {
|
||||
@@ -5938,8 +5956,17 @@ namespace ts {
|
||||
let result = [symbol];
|
||||
|
||||
// If the symbol is an alias, add what it alaises to the list
|
||||
if (isImportOrExportSpecifierImportSymbol(symbol)) {
|
||||
result.push(typeChecker.getAliasedSymbol(symbol));
|
||||
if (isImportSpecifierSymbol(symbol)) {
|
||||
result.push(typeChecker.getAliasedSymbol(symbol));
|
||||
}
|
||||
|
||||
// For export specifiers, the exported name can be refering to a local symbol, e.g.:
|
||||
// import {a} from "mod";
|
||||
// export {a as somethingElse}
|
||||
// We want the *local* declaration of 'a' as declared in the import,
|
||||
// *not* as declared within "mod" (or farther)
|
||||
if (location.parent.kind === SyntaxKind.ExportSpecifier) {
|
||||
result.push(typeChecker.getExportSpecifierLocalTargetSymbol(<ExportSpecifier>location.parent));
|
||||
}
|
||||
|
||||
// If the location is in a context sensitive location (i.e. in an object literal) try
|
||||
@@ -5985,15 +6012,43 @@ namespace ts {
|
||||
|
||||
// Add symbol of properties/methods of the same name in base classes and implemented interfaces definitions
|
||||
if (rootSymbol.parent && rootSymbol.parent.flags & (SymbolFlags.Class | SymbolFlags.Interface)) {
|
||||
getPropertySymbolsFromBaseTypes(rootSymbol.parent, rootSymbol.getName(), result);
|
||||
getPropertySymbolsFromBaseTypes(rootSymbol.parent, rootSymbol.getName(), result, /*previousIterationSymbolsCache*/ {});
|
||||
}
|
||||
});
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
function getPropertySymbolsFromBaseTypes(symbol: Symbol, propertyName: string, result: Symbol[]): void {
|
||||
if (symbol && symbol.flags & (SymbolFlags.Class | SymbolFlags.Interface)) {
|
||||
/**
|
||||
* Find symbol of the given property-name and add the symbol to the given result array
|
||||
* @param symbol a symbol to start searching for the given propertyName
|
||||
* @param propertyName a name of property to serach for
|
||||
* @param result an array of symbol of found property symbols
|
||||
* @param previousIterationSymbolsCache a cache of symbol from previous iterations of calling this function to prevent infinite revisitng of the same symbol.
|
||||
* The value of previousIterationSymbol is undefined when the function is first called.
|
||||
*/
|
||||
function getPropertySymbolsFromBaseTypes(symbol: Symbol, propertyName: string, result: Symbol[],
|
||||
previousIterationSymbolsCache: SymbolTable): void {
|
||||
if (!symbol) {
|
||||
return;
|
||||
}
|
||||
|
||||
// If the current symbol is the same as the previous-iteration symbol, we can just return the symbol that has already been visited
|
||||
// This is particularly important for the following cases, so that we do not infinitely visit the same symbol.
|
||||
// For example:
|
||||
// interface C extends C {
|
||||
// /*findRef*/propName: string;
|
||||
// }
|
||||
// The first time getPropertySymbolsFromBaseTypes is called when finding-all-references at propName,
|
||||
// the symbol argument will be the symbol of an interface "C" and previousIterationSymbol is undefined,
|
||||
// the function will add any found symbol of the property-name, then its sub-routine will call
|
||||
// getPropertySymbolsFromBaseTypes again to walk up any base types to prevent revisiting already
|
||||
// visited symbol, interface "C", the sub-routine will pass the current symbol as previousIterationSymbol.
|
||||
if (hasProperty(previousIterationSymbolsCache, symbol.name)) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (symbol.flags & (SymbolFlags.Class | SymbolFlags.Interface)) {
|
||||
forEach(symbol.getDeclarations(), declaration => {
|
||||
if (declaration.kind === SyntaxKind.ClassDeclaration) {
|
||||
getPropertySymbolFromTypeReference(getClassExtendsHeritageClauseElement(<ClassDeclaration>declaration));
|
||||
@@ -6016,7 +6071,8 @@ namespace ts {
|
||||
}
|
||||
|
||||
// Visit the typeReference as well to see if it directly or indirectly use that property
|
||||
getPropertySymbolsFromBaseTypes(type.symbol, propertyName, result);
|
||||
previousIterationSymbolsCache[symbol.name] = symbol;
|
||||
getPropertySymbolsFromBaseTypes(type.symbol, propertyName, result, previousIterationSymbolsCache);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -6029,13 +6085,24 @@ namespace ts {
|
||||
|
||||
// If the reference symbol is an alias, check if what it is aliasing is one of the search
|
||||
// symbols.
|
||||
if (isImportOrExportSpecifierImportSymbol(referenceSymbol)) {
|
||||
if (isImportSpecifierSymbol(referenceSymbol)) {
|
||||
const aliasedSymbol = typeChecker.getAliasedSymbol(referenceSymbol);
|
||||
if (searchSymbols.indexOf(aliasedSymbol) >= 0) {
|
||||
return aliasedSymbol;
|
||||
}
|
||||
}
|
||||
|
||||
// For export specifiers, it can be a local symbol, e.g.
|
||||
// import {a} from "mod";
|
||||
// export {a as somethingElse}
|
||||
// We want the local target of the export (i.e. the import symbol) and not the final target (i.e. "mod".a)
|
||||
if (referenceLocation.parent.kind === SyntaxKind.ExportSpecifier) {
|
||||
const aliasedSymbol = typeChecker.getExportSpecifierLocalTargetSymbol(<ExportSpecifier>referenceLocation.parent);
|
||||
if (searchSymbols.indexOf(aliasedSymbol) >= 0) {
|
||||
return aliasedSymbol;
|
||||
}
|
||||
}
|
||||
|
||||
// If the reference location is in an object literal, try to get the contextual type for the
|
||||
// object literal, lookup the property symbol in the contextual type, and use this symbol to
|
||||
// compare to our searchSymbol
|
||||
@@ -6057,7 +6124,7 @@ namespace ts {
|
||||
// see if any is in the list
|
||||
if (rootSymbol.parent && rootSymbol.parent.flags & (SymbolFlags.Class | SymbolFlags.Interface)) {
|
||||
const result: Symbol[] = [];
|
||||
getPropertySymbolsFromBaseTypes(rootSymbol.parent, rootSymbol.getName(), result);
|
||||
getPropertySymbolsFromBaseTypes(rootSymbol.parent, rootSymbol.getName(), result, /*previousIterationSymbolsCache*/ {});
|
||||
return forEach(result, s => searchSymbols.indexOf(s) >= 0 ? s : undefined);
|
||||
}
|
||||
|
||||
@@ -6230,7 +6297,7 @@ namespace ts {
|
||||
return SemanticMeaning.Value | SemanticMeaning.Type;
|
||||
|
||||
case SyntaxKind.ModuleDeclaration:
|
||||
if ((<ModuleDeclaration>node).name.kind === SyntaxKind.StringLiteral) {
|
||||
if (isAmbientModule(<ModuleDeclaration>node)) {
|
||||
return SemanticMeaning.Namespace | SemanticMeaning.Value;
|
||||
}
|
||||
else if (getModuleInstanceState(node) === ModuleInstanceState.Instantiated) {
|
||||
@@ -6574,6 +6641,9 @@ namespace ts {
|
||||
case ClassificationType.jsxOpenTagName: return ClassificationTypeNames.jsxOpenTagName;
|
||||
case ClassificationType.jsxCloseTagName: return ClassificationTypeNames.jsxCloseTagName;
|
||||
case ClassificationType.jsxSelfClosingTagName: return ClassificationTypeNames.jsxSelfClosingTagName;
|
||||
case ClassificationType.jsxAttribute: return ClassificationTypeNames.jsxAttribute;
|
||||
case ClassificationType.jsxText: return ClassificationTypeNames.jsxText;
|
||||
case ClassificationType.jsxAttributeStringLiteralValue: return ClassificationTypeNames.jsxAttributeStringLiteralValue;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6758,7 +6828,8 @@ namespace ts {
|
||||
function classifyDisabledMergeCode(text: string, start: number, end: number) {
|
||||
// Classify the line that the ======= marker is on as a comment. Then just lex
|
||||
// all further tokens and add them to the result.
|
||||
for (var i = start; i < end; i++) {
|
||||
let i: number;
|
||||
for (i = start; i < end; i++) {
|
||||
if (isLineBreak(text.charCodeAt(i))) {
|
||||
break;
|
||||
}
|
||||
@@ -6782,12 +6853,12 @@ namespace ts {
|
||||
}
|
||||
}
|
||||
|
||||
function classifyToken(token: Node): void {
|
||||
function classifyTokenOrJsxText(token: Node): void {
|
||||
if (nodeIsMissing(token)) {
|
||||
return;
|
||||
}
|
||||
|
||||
const tokenStart = classifyLeadingTriviaAndGetTokenStart(token);
|
||||
const tokenStart = token.kind === SyntaxKind.JsxText ? token.pos : classifyLeadingTriviaAndGetTokenStart(token);
|
||||
|
||||
const tokenWidth = token.end - tokenStart;
|
||||
Debug.assert(tokenWidth >= 0);
|
||||
@@ -6823,7 +6894,8 @@ namespace ts {
|
||||
// the '=' in a variable declaration is special cased here.
|
||||
if (token.parent.kind === SyntaxKind.VariableDeclaration ||
|
||||
token.parent.kind === SyntaxKind.PropertyDeclaration ||
|
||||
token.parent.kind === SyntaxKind.Parameter) {
|
||||
token.parent.kind === SyntaxKind.Parameter ||
|
||||
token.parent.kind === SyntaxKind.JsxAttribute) {
|
||||
return ClassificationType.operator;
|
||||
}
|
||||
}
|
||||
@@ -6842,7 +6914,7 @@ namespace ts {
|
||||
return ClassificationType.numericLiteral;
|
||||
}
|
||||
else if (tokenKind === SyntaxKind.StringLiteral || tokenKind === SyntaxKind.StringLiteralType) {
|
||||
return ClassificationType.stringLiteral;
|
||||
return token.parent.kind === SyntaxKind.JsxAttribute ? ClassificationType.jsxAttributeStringLiteralValue : ClassificationType.stringLiteral;
|
||||
}
|
||||
else if (tokenKind === SyntaxKind.RegularExpressionLiteral) {
|
||||
// TODO: we should get another classification type for these literals.
|
||||
@@ -6852,6 +6924,9 @@ namespace ts {
|
||||
// TODO (drosen): we should *also* get another classification type for these literals.
|
||||
return ClassificationType.stringLiteral;
|
||||
}
|
||||
else if (tokenKind === SyntaxKind.JsxText) {
|
||||
return ClassificationType.jsxText;
|
||||
}
|
||||
else if (tokenKind === SyntaxKind.Identifier) {
|
||||
if (token) {
|
||||
switch (token.parent.kind) {
|
||||
@@ -6903,9 +6978,12 @@ namespace ts {
|
||||
return ClassificationType.jsxSelfClosingTagName;
|
||||
}
|
||||
return;
|
||||
case SyntaxKind.JsxAttribute:
|
||||
if ((<JsxAttribute>token.parent).name === token) {
|
||||
return ClassificationType.jsxAttribute;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return ClassificationType.identifier;
|
||||
}
|
||||
}
|
||||
@@ -6922,8 +7000,8 @@ namespace ts {
|
||||
const children = element.getChildren(sourceFile);
|
||||
for (let i = 0, n = children.length; i < n; i++) {
|
||||
const child = children[i];
|
||||
if (isToken(child)) {
|
||||
classifyToken(child);
|
||||
if (isToken(child) || child.kind === SyntaxKind.JsxText) {
|
||||
classifyTokenOrJsxText(child);
|
||||
}
|
||||
else {
|
||||
// Recurse into our child nodes.
|
||||
|
||||
@@ -608,6 +608,36 @@ namespace ts {
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
export function isArrayLiteralOrObjectLiteralDestructuringPattern(node: Node) {
|
||||
if (node.kind === SyntaxKind.ArrayLiteralExpression ||
|
||||
node.kind === SyntaxKind.ObjectLiteralExpression) {
|
||||
// [a,b,c] from:
|
||||
// [a, b, c] = someExpression;
|
||||
if (node.parent.kind === SyntaxKind.BinaryExpression &&
|
||||
(<BinaryExpression>node.parent).left === node &&
|
||||
(<BinaryExpression>node.parent).operatorToken.kind === SyntaxKind.EqualsToken) {
|
||||
return true;
|
||||
}
|
||||
|
||||
// [a, b, c] from:
|
||||
// for([a, b, c] of expression)
|
||||
if (node.parent.kind === SyntaxKind.ForOfStatement &&
|
||||
(<ForOfStatement>node.parent).initializer === node) {
|
||||
return true;
|
||||
}
|
||||
|
||||
// [a, b, c] of
|
||||
// [x, [a, b, c] ] = someExpression
|
||||
// or
|
||||
// {x, a: {a, b, c} } = someExpression
|
||||
if (isArrayLiteralOrObjectLiteralDestructuringPattern(node.parent.kind === SyntaxKind.PropertyAssignment ? node.parent.parent : node.parent)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
// Display-part writer helpers
|
||||
|
||||
@@ -1,2 +1,2 @@
|
||||
//// [ES5For-of1.js.map]
|
||||
{"version":3,"file":"ES5For-of1.js","sourceRoot":"","sources":["ES5For-of1.ts"],"names":[],"mappings":"AAAA,GAAG,CAAC,CAAU,UAAe,EAAf,MAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAxB,cAAK,EAAL,IAAwB,CAAC;IAAzB,IAAI,CAAC,SAAA;IACN,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAClB"}
|
||||
{"version":3,"file":"ES5For-of1.js","sourceRoot":"","sources":["ES5For-of1.ts"],"names":[],"mappings":"AAAA,GAAG,CAAC,CAAU,UAAe,EAAf,MAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAf,cAAe,EAAf,IAAe,CAAC;IAAzB,IAAI,CAAC,SAAA;IACN,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAClB"}
|
||||
@@ -41,9 +41,9 @@ sourceFile:ES5For-of1.ts
|
||||
12> 'c'
|
||||
13> ]
|
||||
14>
|
||||
15> var v
|
||||
15> ['a', 'b', 'c']
|
||||
16>
|
||||
17> var v of ['a', 'b', 'c']
|
||||
17> ['a', 'b', 'c']
|
||||
18> )
|
||||
1 >Emitted(1, 1) Source(1, 1) + SourceIndex(0)
|
||||
2 >Emitted(1, 4) Source(1, 4) + SourceIndex(0)
|
||||
@@ -58,9 +58,9 @@ sourceFile:ES5For-of1.ts
|
||||
11>Emitted(1, 34) Source(1, 26) + SourceIndex(0)
|
||||
12>Emitted(1, 37) Source(1, 29) + SourceIndex(0)
|
||||
13>Emitted(1, 38) Source(1, 30) + SourceIndex(0)
|
||||
14>Emitted(1, 40) Source(1, 6) + SourceIndex(0)
|
||||
15>Emitted(1, 54) Source(1, 11) + SourceIndex(0)
|
||||
16>Emitted(1, 56) Source(1, 6) + SourceIndex(0)
|
||||
14>Emitted(1, 40) Source(1, 15) + SourceIndex(0)
|
||||
15>Emitted(1, 54) Source(1, 30) + SourceIndex(0)
|
||||
16>Emitted(1, 56) Source(1, 15) + SourceIndex(0)
|
||||
17>Emitted(1, 60) Source(1, 30) + SourceIndex(0)
|
||||
18>Emitted(1, 61) Source(1, 31) + SourceIndex(0)
|
||||
---
|
||||
|
||||
@@ -1,2 +1,2 @@
|
||||
//// [ES5For-of13.js.map]
|
||||
{"version":3,"file":"ES5For-of13.js","sourceRoot":"","sources":["ES5For-of13.ts"],"names":[],"mappings":"AAAA,GAAG,CAAC,CAAU,UAAe,EAAf,MAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAxB,cAAK,EAAL,IAAwB,CAAC;IAAzB,IAAI,CAAC,SAAA;IACN,IAAI,CAAC,GAAG,CAAC,CAAC;CACb"}
|
||||
{"version":3,"file":"ES5For-of13.js","sourceRoot":"","sources":["ES5For-of13.ts"],"names":[],"mappings":"AAAA,GAAG,CAAC,CAAU,UAAe,EAAf,MAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAf,cAAe,EAAf,IAAe,CAAC;IAAzB,IAAI,CAAC,SAAA;IACN,IAAI,CAAC,GAAG,CAAC,CAAC;CACb"}
|
||||
@@ -41,9 +41,9 @@ sourceFile:ES5For-of13.ts
|
||||
12> 'c'
|
||||
13> ]
|
||||
14>
|
||||
15> let v
|
||||
15> ['a', 'b', 'c']
|
||||
16>
|
||||
17> let v of ['a', 'b', 'c']
|
||||
17> ['a', 'b', 'c']
|
||||
18> )
|
||||
1 >Emitted(1, 1) Source(1, 1) + SourceIndex(0)
|
||||
2 >Emitted(1, 4) Source(1, 4) + SourceIndex(0)
|
||||
@@ -58,9 +58,9 @@ sourceFile:ES5For-of13.ts
|
||||
11>Emitted(1, 34) Source(1, 26) + SourceIndex(0)
|
||||
12>Emitted(1, 37) Source(1, 29) + SourceIndex(0)
|
||||
13>Emitted(1, 38) Source(1, 30) + SourceIndex(0)
|
||||
14>Emitted(1, 40) Source(1, 6) + SourceIndex(0)
|
||||
15>Emitted(1, 54) Source(1, 11) + SourceIndex(0)
|
||||
16>Emitted(1, 56) Source(1, 6) + SourceIndex(0)
|
||||
14>Emitted(1, 40) Source(1, 15) + SourceIndex(0)
|
||||
15>Emitted(1, 54) Source(1, 30) + SourceIndex(0)
|
||||
16>Emitted(1, 56) Source(1, 15) + SourceIndex(0)
|
||||
17>Emitted(1, 60) Source(1, 30) + SourceIndex(0)
|
||||
18>Emitted(1, 61) Source(1, 31) + SourceIndex(0)
|
||||
---
|
||||
|
||||
@@ -1,2 +1,2 @@
|
||||
//// [ES5For-of25.js.map]
|
||||
{"version":3,"file":"ES5For-of25.js","sourceRoot":"","sources":["ES5For-of25.ts"],"names":[],"mappings":"AAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAClB,GAAG,CAAC,CAAU,UAAC,EAAD,OAAC,EAAV,eAAK,EAAL,IAAU,CAAC;IAAX,IAAI,CAAC,UAAA;IACN,CAAC,CAAC;IACF,CAAC,CAAC;CACL"}
|
||||
{"version":3,"file":"ES5For-of25.js","sourceRoot":"","sources":["ES5For-of25.ts"],"names":[],"mappings":"AAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAClB,GAAG,CAAC,CAAU,UAAC,EAAD,OAAC,EAAD,eAAC,EAAD,IAAC,CAAC;IAAX,IAAI,CAAC,UAAA;IACN,CAAC,CAAC;IACF,CAAC,CAAC;CACL"}
|
||||
@@ -69,9 +69,9 @@ sourceFile:ES5For-of25.ts
|
||||
6 >
|
||||
7 > a
|
||||
8 >
|
||||
9 > var v
|
||||
9 > a
|
||||
10>
|
||||
11> var v of a
|
||||
11> a
|
||||
12> )
|
||||
1->Emitted(2, 1) Source(2, 1) + SourceIndex(0)
|
||||
2 >Emitted(2, 4) Source(2, 4) + SourceIndex(0)
|
||||
@@ -80,9 +80,9 @@ sourceFile:ES5For-of25.ts
|
||||
5 >Emitted(2, 16) Source(2, 16) + SourceIndex(0)
|
||||
6 >Emitted(2, 18) Source(2, 15) + SourceIndex(0)
|
||||
7 >Emitted(2, 25) Source(2, 16) + SourceIndex(0)
|
||||
8 >Emitted(2, 27) Source(2, 6) + SourceIndex(0)
|
||||
9 >Emitted(2, 42) Source(2, 11) + SourceIndex(0)
|
||||
10>Emitted(2, 44) Source(2, 6) + SourceIndex(0)
|
||||
8 >Emitted(2, 27) Source(2, 15) + SourceIndex(0)
|
||||
9 >Emitted(2, 42) Source(2, 16) + SourceIndex(0)
|
||||
10>Emitted(2, 44) Source(2, 15) + SourceIndex(0)
|
||||
11>Emitted(2, 48) Source(2, 16) + SourceIndex(0)
|
||||
12>Emitted(2, 49) Source(2, 17) + SourceIndex(0)
|
||||
---
|
||||
|
||||
@@ -1,2 +1,2 @@
|
||||
//// [ES5For-of26.js.map]
|
||||
{"version":3,"file":"ES5For-of26.js","sourceRoot":"","sources":["ES5For-of26.ts"],"names":[],"mappings":"AAAA,GAAG,CAAC,CAAuB,UAAM,EAAN,MAAC,CAAC,EAAE,CAAC,CAAC,EAA5B,cAAkB,EAAlB,IAA4B,CAAC;IAA7B,6BAAK,CAAC,mBAAG,CAAC,mBAAE,CAAC,mBAAG,CAAC,KAAC;IACnB,CAAC,CAAC;IACF,CAAC,CAAC;CACL"}
|
||||
{"version":3,"file":"ES5For-of26.js","sourceRoot":"","sources":["ES5For-of26.ts"],"names":[],"mappings":"AAAA,GAAG,CAAC,CAAuB,UAAM,EAAN,MAAC,CAAC,EAAE,CAAC,CAAC,EAAN,cAAM,EAAN,IAAM,CAAC;IAA7B,eAAkB,EAAb,UAAK,EAAL,0BAAK,EAAE,UAAK,EAAL,0BAAK;IAClB,CAAC,CAAC;IACF,CAAC,CAAC;CACL"}
|
||||
@@ -38,9 +38,9 @@ sourceFile:ES5For-of26.ts
|
||||
10> 3
|
||||
11> ]
|
||||
12>
|
||||
13> var [a = 0, b = 1]
|
||||
13> [2, 3]
|
||||
14>
|
||||
15> var [a = 0, b = 1] of [2, 3]
|
||||
15> [2, 3]
|
||||
16> )
|
||||
1 >Emitted(1, 1) Source(1, 1) + SourceIndex(0)
|
||||
2 >Emitted(1, 4) Source(1, 4) + SourceIndex(0)
|
||||
@@ -53,50 +53,50 @@ sourceFile:ES5For-of26.ts
|
||||
9 >Emitted(1, 27) Source(1, 32) + SourceIndex(0)
|
||||
10>Emitted(1, 28) Source(1, 33) + SourceIndex(0)
|
||||
11>Emitted(1, 29) Source(1, 34) + SourceIndex(0)
|
||||
12>Emitted(1, 31) Source(1, 6) + SourceIndex(0)
|
||||
13>Emitted(1, 45) Source(1, 24) + SourceIndex(0)
|
||||
14>Emitted(1, 47) Source(1, 6) + SourceIndex(0)
|
||||
12>Emitted(1, 31) Source(1, 28) + SourceIndex(0)
|
||||
13>Emitted(1, 45) Source(1, 34) + SourceIndex(0)
|
||||
14>Emitted(1, 47) Source(1, 28) + SourceIndex(0)
|
||||
15>Emitted(1, 51) Source(1, 34) + SourceIndex(0)
|
||||
16>Emitted(1, 52) Source(1, 35) + SourceIndex(0)
|
||||
---
|
||||
>>> var _b = _a[_i], _c = _b[0], a = _c === void 0 ? 0 : _c, _d = _b[1], b = _d === void 0 ? 1 : _d;
|
||||
1->^^^^
|
||||
2 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
3 > ^
|
||||
4 > ^^^^^^^^^^^^^^^^^^^
|
||||
5 > ^
|
||||
6 > ^^^^^^^^^^^^^^^^^^^
|
||||
7 > ^
|
||||
8 > ^^^^^^^^^^^^^^^^^^^
|
||||
9 > ^
|
||||
10> ^^^^^
|
||||
2 > ^^^^^^^^^^^^^^^
|
||||
3 > ^^
|
||||
4 > ^^^^^^^^^^
|
||||
5 > ^^
|
||||
6 > ^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
7 > ^^
|
||||
8 > ^^^^^^^^^^
|
||||
9 > ^^
|
||||
10> ^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
1->
|
||||
2 > var [
|
||||
3 > a
|
||||
4 > =
|
||||
5 > 0
|
||||
6 > ,
|
||||
7 > b
|
||||
8 > =
|
||||
9 > 1
|
||||
10> ]
|
||||
2 > var [a = 0, b = 1]
|
||||
3 >
|
||||
4 > a = 0
|
||||
5 >
|
||||
6 > a = 0
|
||||
7 > ,
|
||||
8 > b = 1
|
||||
9 >
|
||||
10> b = 1
|
||||
1->Emitted(2, 5) Source(1, 6) + SourceIndex(0)
|
||||
2 >Emitted(2, 34) Source(1, 11) + SourceIndex(0)
|
||||
3 >Emitted(2, 35) Source(1, 12) + SourceIndex(0)
|
||||
4 >Emitted(2, 54) Source(1, 15) + SourceIndex(0)
|
||||
5 >Emitted(2, 55) Source(1, 16) + SourceIndex(0)
|
||||
6 >Emitted(2, 74) Source(1, 18) + SourceIndex(0)
|
||||
7 >Emitted(2, 75) Source(1, 19) + SourceIndex(0)
|
||||
8 >Emitted(2, 94) Source(1, 22) + SourceIndex(0)
|
||||
9 >Emitted(2, 95) Source(1, 23) + SourceIndex(0)
|
||||
10>Emitted(2, 100) Source(1, 24) + SourceIndex(0)
|
||||
2 >Emitted(2, 20) Source(1, 24) + SourceIndex(0)
|
||||
3 >Emitted(2, 22) Source(1, 11) + SourceIndex(0)
|
||||
4 >Emitted(2, 32) Source(1, 16) + SourceIndex(0)
|
||||
5 >Emitted(2, 34) Source(1, 11) + SourceIndex(0)
|
||||
6 >Emitted(2, 60) Source(1, 16) + SourceIndex(0)
|
||||
7 >Emitted(2, 62) Source(1, 18) + SourceIndex(0)
|
||||
8 >Emitted(2, 72) Source(1, 23) + SourceIndex(0)
|
||||
9 >Emitted(2, 74) Source(1, 18) + SourceIndex(0)
|
||||
10>Emitted(2, 100) Source(1, 23) + SourceIndex(0)
|
||||
---
|
||||
>>> a;
|
||||
1 >^^^^
|
||||
2 > ^
|
||||
3 > ^
|
||||
4 > ^->
|
||||
1 > of [2, 3]) {
|
||||
1 >] of [2, 3]) {
|
||||
>
|
||||
2 > a
|
||||
3 > ;
|
||||
|
||||
@@ -1,2 +1,2 @@
|
||||
//// [ES5For-of3.js.map]
|
||||
{"version":3,"file":"ES5For-of3.js","sourceRoot":"","sources":["ES5For-of3.ts"],"names":[],"mappings":"AAAA,GAAG,CAAC,CAAU,UAAe,EAAf,MAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAxB,cAAK,EAAL,IAAwB,CAAC;IAAzB,IAAI,CAAC,SAAA;IACN,IAAI,CAAC,GAAG,CAAC,CAAC;CAAA"}
|
||||
{"version":3,"file":"ES5For-of3.js","sourceRoot":"","sources":["ES5For-of3.ts"],"names":[],"mappings":"AAAA,GAAG,CAAC,CAAU,UAAe,EAAf,MAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAf,cAAe,EAAf,IAAe,CAAC;IAAzB,IAAI,CAAC,SAAA;IACN,IAAI,CAAC,GAAG,CAAC,CAAC;CAAA"}
|
||||
@@ -41,9 +41,9 @@ sourceFile:ES5For-of3.ts
|
||||
12> 'c'
|
||||
13> ]
|
||||
14>
|
||||
15> var v
|
||||
15> ['a', 'b', 'c']
|
||||
16>
|
||||
17> var v of ['a', 'b', 'c']
|
||||
17> ['a', 'b', 'c']
|
||||
18> )
|
||||
1 >Emitted(1, 1) Source(1, 1) + SourceIndex(0)
|
||||
2 >Emitted(1, 4) Source(1, 4) + SourceIndex(0)
|
||||
@@ -58,9 +58,9 @@ sourceFile:ES5For-of3.ts
|
||||
11>Emitted(1, 34) Source(1, 26) + SourceIndex(0)
|
||||
12>Emitted(1, 37) Source(1, 29) + SourceIndex(0)
|
||||
13>Emitted(1, 38) Source(1, 30) + SourceIndex(0)
|
||||
14>Emitted(1, 40) Source(1, 6) + SourceIndex(0)
|
||||
15>Emitted(1, 54) Source(1, 11) + SourceIndex(0)
|
||||
16>Emitted(1, 56) Source(1, 6) + SourceIndex(0)
|
||||
14>Emitted(1, 40) Source(1, 15) + SourceIndex(0)
|
||||
15>Emitted(1, 54) Source(1, 30) + SourceIndex(0)
|
||||
16>Emitted(1, 56) Source(1, 15) + SourceIndex(0)
|
||||
17>Emitted(1, 60) Source(1, 30) + SourceIndex(0)
|
||||
18>Emitted(1, 61) Source(1, 31) + SourceIndex(0)
|
||||
---
|
||||
|
||||
@@ -1,2 +1,2 @@
|
||||
//// [ES5For-of8.js.map]
|
||||
{"version":3,"file":"ES5For-of8.js","sourceRoot":"","sources":["ES5For-of8.ts"],"names":[],"mappings":"AAAA;IACI,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AACpB,CAAC;AACD,GAAG,CAAC,CAAY,UAAe,EAAf,MAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAA1B,cAAO,EAAP,IAA0B,CAAC;IAA3B,GAAG,EAAE,CAAC,CAAC,SAAA;IACR,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC;CACnB"}
|
||||
{"version":3,"file":"ES5For-of8.js","sourceRoot":"","sources":["ES5For-of8.ts"],"names":[],"mappings":"AAAA;IACI,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AACpB,CAAC;AACD,GAAG,CAAC,CAAY,UAAe,EAAf,MAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAf,cAAe,EAAf,IAAe,CAAC;IAA3B,GAAG,EAAE,CAAC,CAAC,SAAA;IACR,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC;CACnB"}
|
||||
@@ -88,9 +88,9 @@ sourceFile:ES5For-of8.ts
|
||||
12> 'c'
|
||||
13> ]
|
||||
14>
|
||||
15> foo().x
|
||||
15> ['a', 'b', 'c']
|
||||
16>
|
||||
17> foo().x of ['a', 'b', 'c']
|
||||
17> ['a', 'b', 'c']
|
||||
18> )
|
||||
1->Emitted(4, 1) Source(4, 1) + SourceIndex(0)
|
||||
2 >Emitted(4, 4) Source(4, 4) + SourceIndex(0)
|
||||
@@ -105,9 +105,9 @@ sourceFile:ES5For-of8.ts
|
||||
11>Emitted(4, 34) Source(4, 28) + SourceIndex(0)
|
||||
12>Emitted(4, 37) Source(4, 31) + SourceIndex(0)
|
||||
13>Emitted(4, 38) Source(4, 32) + SourceIndex(0)
|
||||
14>Emitted(4, 40) Source(4, 6) + SourceIndex(0)
|
||||
15>Emitted(4, 54) Source(4, 13) + SourceIndex(0)
|
||||
16>Emitted(4, 56) Source(4, 6) + SourceIndex(0)
|
||||
14>Emitted(4, 40) Source(4, 17) + SourceIndex(0)
|
||||
15>Emitted(4, 54) Source(4, 32) + SourceIndex(0)
|
||||
16>Emitted(4, 56) Source(4, 17) + SourceIndex(0)
|
||||
17>Emitted(4, 60) Source(4, 32) + SourceIndex(0)
|
||||
18>Emitted(4, 61) Source(4, 33) + SourceIndex(0)
|
||||
---
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
tests/cases/conformance/es6/yieldExpressions/YieldExpression11_es6.ts(2,3): error TS1220: Generators are only available when targeting ECMAScript 6 or higher.
|
||||
tests/cases/conformance/es6/yieldExpressions/YieldExpression11_es6.ts(3,11): error TS2304: Cannot find name 'foo'.
|
||||
tests/cases/conformance/es6/yieldExpressions/YieldExpression11_es6.ts(3,11): error TS2663: Cannot find name 'foo'. Did you mean the instance member 'this.foo'?
|
||||
|
||||
|
||||
==== tests/cases/conformance/es6/yieldExpressions/YieldExpression11_es6.ts (2 errors) ====
|
||||
@@ -9,6 +9,6 @@ tests/cases/conformance/es6/yieldExpressions/YieldExpression11_es6.ts(3,11): err
|
||||
!!! error TS1220: Generators are only available when targeting ECMAScript 6 or higher.
|
||||
yield(foo);
|
||||
~~~
|
||||
!!! error TS2304: Cannot find name 'foo'.
|
||||
!!! error TS2663: Cannot find name 'foo'. Did you mean the instance member 'this.foo'?
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
tests/cases/compiler/accessInstanceMemberFromStaticMethod01.ts(5,17): error TS2662: Cannot find name 'foo'. Did you mean the static member 'C.foo'?
|
||||
|
||||
|
||||
==== tests/cases/compiler/accessInstanceMemberFromStaticMethod01.ts (1 errors) ====
|
||||
class C {
|
||||
static foo: string;
|
||||
|
||||
bar() {
|
||||
let k = foo;
|
||||
~~~
|
||||
!!! error TS2662: Cannot find name 'foo'. Did you mean the static member 'C.foo'?
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
//// [accessInstanceMemberFromStaticMethod01.ts]
|
||||
class C {
|
||||
static foo: string;
|
||||
|
||||
bar() {
|
||||
let k = foo;
|
||||
}
|
||||
}
|
||||
|
||||
//// [accessInstanceMemberFromStaticMethod01.js]
|
||||
var C = (function () {
|
||||
function C() {
|
||||
}
|
||||
C.prototype.bar = function () {
|
||||
var k = foo;
|
||||
};
|
||||
return C;
|
||||
}());
|
||||
@@ -0,0 +1,13 @@
|
||||
tests/cases/compiler/accessStaticMemberFromInstanceMethod01.ts(5,17): error TS2304: Cannot find name 'foo'.
|
||||
|
||||
|
||||
==== tests/cases/compiler/accessStaticMemberFromInstanceMethod01.ts (1 errors) ====
|
||||
class C {
|
||||
foo: string;
|
||||
|
||||
static bar() {
|
||||
let k = foo;
|
||||
~~~
|
||||
!!! error TS2304: Cannot find name 'foo'.
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
//// [accessStaticMemberFromInstanceMethod01.ts]
|
||||
class C {
|
||||
foo: string;
|
||||
|
||||
static bar() {
|
||||
let k = foo;
|
||||
}
|
||||
}
|
||||
|
||||
//// [accessStaticMemberFromInstanceMethod01.js]
|
||||
var C = (function () {
|
||||
function C() {
|
||||
}
|
||||
C.bar = function () {
|
||||
var k = foo;
|
||||
};
|
||||
return C;
|
||||
}());
|
||||
@@ -1,5 +1,4 @@
|
||||
tests/cases/compiler/aliasAssignments_1.ts(3,1): error TS2322: Type 'number' is not assignable to type 'typeof "tests/cases/compiler/aliasAssignments_moduleA"'.
|
||||
Property 'someClass' is missing in type 'Number'.
|
||||
tests/cases/compiler/aliasAssignments_1.ts(5,1): error TS2322: Type 'typeof "tests/cases/compiler/aliasAssignments_moduleA"' is not assignable to type 'number'.
|
||||
|
||||
|
||||
@@ -9,7 +8,6 @@ tests/cases/compiler/aliasAssignments_1.ts(5,1): error TS2322: Type 'typeof "tes
|
||||
x = 1; // Should be error
|
||||
~
|
||||
!!! error TS2322: Type 'number' is not assignable to type 'typeof "tests/cases/compiler/aliasAssignments_moduleA"'.
|
||||
!!! error TS2322: Property 'someClass' is missing in type 'Number'.
|
||||
var y = 1;
|
||||
y = moduleA; // should be error
|
||||
~
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
tests/cases/compiler/ambientExternalModuleInAnotherExternalModule.ts(5,16): error TS2435: Ambient modules cannot be nested in other modules or namespaces.
|
||||
tests/cases/compiler/ambientExternalModuleInAnotherExternalModule.ts(5,16): error TS2664: Invalid module name in augmentation, module 'ext' cannot be found.
|
||||
tests/cases/compiler/ambientExternalModuleInAnotherExternalModule.ts(10,22): error TS2307: Cannot find module 'ext'.
|
||||
|
||||
|
||||
@@ -9,7 +9,7 @@ tests/cases/compiler/ambientExternalModuleInAnotherExternalModule.ts(10,22): err
|
||||
|
||||
declare module "ext" {
|
||||
~~~~~
|
||||
!!! error TS2435: Ambient modules cannot be nested in other modules or namespaces.
|
||||
!!! error TS2664: Invalid module name in augmentation, module 'ext' cannot be found.
|
||||
export class C { }
|
||||
}
|
||||
|
||||
|
||||
@@ -1,9 +1,12 @@
|
||||
tests/cases/conformance/ambient/ambientExternalModuleInsideNonAmbient.ts(2,5): error TS2668: 'export' modifier cannot be applied to ambient modules and module augmentations since they are always visible.
|
||||
tests/cases/conformance/ambient/ambientExternalModuleInsideNonAmbient.ts(2,27): error TS2435: Ambient modules cannot be nested in other modules or namespaces.
|
||||
|
||||
|
||||
==== tests/cases/conformance/ambient/ambientExternalModuleInsideNonAmbient.ts (1 errors) ====
|
||||
==== tests/cases/conformance/ambient/ambientExternalModuleInsideNonAmbient.ts (2 errors) ====
|
||||
module M {
|
||||
export declare module "M" { }
|
||||
~~~~~~
|
||||
!!! error TS2668: 'export' modifier cannot be applied to ambient modules and module augmentations since they are always visible.
|
||||
~~~
|
||||
!!! error TS2435: Ambient modules cannot be nested in other modules or namespaces.
|
||||
}
|
||||
+6
-3
@@ -1,7 +1,10 @@
|
||||
tests/cases/conformance/ambient/ambientExternalModuleInsideNonAmbientExternalModule.ts(1,23): error TS2435: Ambient modules cannot be nested in other modules or namespaces.
|
||||
tests/cases/conformance/ambient/ambientExternalModuleInsideNonAmbientExternalModule.ts(1,1): error TS2668: 'export' modifier cannot be applied to ambient modules and module augmentations since they are always visible.
|
||||
tests/cases/conformance/ambient/ambientExternalModuleInsideNonAmbientExternalModule.ts(1,23): error TS2664: Invalid module name in augmentation, module 'M' cannot be found.
|
||||
|
||||
|
||||
==== tests/cases/conformance/ambient/ambientExternalModuleInsideNonAmbientExternalModule.ts (1 errors) ====
|
||||
==== tests/cases/conformance/ambient/ambientExternalModuleInsideNonAmbientExternalModule.ts (2 errors) ====
|
||||
export declare module "M" { }
|
||||
~~~~~~
|
||||
!!! error TS2668: 'export' modifier cannot be applied to ambient modules and module augmentations since they are always visible.
|
||||
~~~
|
||||
!!! error TS2435: Ambient modules cannot be nested in other modules or namespaces.
|
||||
!!! error TS2664: Invalid module name in augmentation, module 'M' cannot be found.
|
||||
@@ -1,5 +1,4 @@
|
||||
tests/cases/compiler/argumentsBindsToFunctionScopeArgumentList.ts(3,5): error TS2322: Type 'number' is not assignable to type 'IArguments'.
|
||||
Property 'length' is missing in type 'Number'.
|
||||
|
||||
|
||||
==== tests/cases/compiler/argumentsBindsToFunctionScopeArgumentList.ts (1 errors) ====
|
||||
@@ -8,5 +7,4 @@ tests/cases/compiler/argumentsBindsToFunctionScopeArgumentList.ts(3,5): error TS
|
||||
arguments = 10; /// This shouldnt be of type number and result in error.
|
||||
~~~~~~~~~
|
||||
!!! error TS2322: Type 'number' is not assignable to type 'IArguments'.
|
||||
!!! error TS2322: Property 'length' is missing in type 'Number'.
|
||||
}
|
||||
@@ -26,10 +26,13 @@ tests/cases/compiler/arrayAssignmentTest1.ts(70,1): error TS2322: Type 'C3[]' is
|
||||
Property 'C2M1' is missing in type 'C3'.
|
||||
tests/cases/compiler/arrayAssignmentTest1.ts(75,1): error TS2322: Type 'C2[]' is not assignable to type 'C3[]'.
|
||||
Type 'C2' is not assignable to type 'C3'.
|
||||
Property 'CM3M1' is missing in type 'C2'.
|
||||
tests/cases/compiler/arrayAssignmentTest1.ts(76,1): error TS2322: Type 'C1[]' is not assignable to type 'C3[]'.
|
||||
Type 'C1' is not assignable to type 'C3'.
|
||||
Property 'CM3M1' is missing in type 'C1'.
|
||||
tests/cases/compiler/arrayAssignmentTest1.ts(77,1): error TS2322: Type 'I1[]' is not assignable to type 'C3[]'.
|
||||
Type 'I1' is not assignable to type 'C3'.
|
||||
Property 'CM3M1' is missing in type 'I1'.
|
||||
tests/cases/compiler/arrayAssignmentTest1.ts(79,1): error TS2322: Type '() => C1' is not assignable to type 'any[]'.
|
||||
Property 'push' is missing in type '() => C1'.
|
||||
tests/cases/compiler/arrayAssignmentTest1.ts(80,1): error TS2322: Type '{ one: number; }' is not assignable to type 'any[]'.
|
||||
@@ -159,14 +162,17 @@ tests/cases/compiler/arrayAssignmentTest1.ts(85,1): error TS2322: Type 'I1' is n
|
||||
~~~~~~
|
||||
!!! error TS2322: Type 'C2[]' is not assignable to type 'C3[]'.
|
||||
!!! error TS2322: Type 'C2' is not assignable to type 'C3'.
|
||||
!!! error TS2322: Property 'CM3M1' is missing in type 'C2'.
|
||||
arr_c3 = arr_c1_2; // should be an error - is
|
||||
~~~~~~
|
||||
!!! error TS2322: Type 'C1[]' is not assignable to type 'C3[]'.
|
||||
!!! error TS2322: Type 'C1' is not assignable to type 'C3'.
|
||||
!!! error TS2322: Property 'CM3M1' is missing in type 'C1'.
|
||||
arr_c3 = arr_i1_2; // should be an error - is
|
||||
~~~~~~
|
||||
!!! error TS2322: Type 'I1[]' is not assignable to type 'C3[]'.
|
||||
!!! error TS2322: Type 'I1' is not assignable to type 'C3'.
|
||||
!!! error TS2322: Property 'CM3M1' is missing in type 'I1'.
|
||||
|
||||
arr_any = f1; // should be an error - is
|
||||
~~~~~~~
|
||||
|
||||
@@ -18,7 +18,6 @@ tests/cases/conformance/expressions/arrayLiterals/arrayLiterals3.ts(34,5): error
|
||||
Types of parameters 'items' and 'items' are incompatible.
|
||||
Type 'number | string' is not assignable to type 'Number'.
|
||||
Type 'string' is not assignable to type 'Number'.
|
||||
Property 'toFixed' is missing in type 'String'.
|
||||
|
||||
|
||||
==== tests/cases/conformance/expressions/arrayLiterals/arrayLiterals3.ts (6 errors) ====
|
||||
@@ -82,5 +81,4 @@ tests/cases/conformance/expressions/arrayLiterals/arrayLiterals3.ts(34,5): error
|
||||
!!! error TS2322: Types of parameters 'items' and 'items' are incompatible.
|
||||
!!! error TS2322: Type 'number | string' is not assignable to type 'Number'.
|
||||
!!! error TS2322: Type 'string' is not assignable to type 'Number'.
|
||||
!!! error TS2322: Property 'toFixed' is missing in type 'String'.
|
||||
|
||||
@@ -4,7 +4,6 @@ tests/cases/compiler/arraySigChecking.ts(18,5): error TS2322: Type 'void[]' is n
|
||||
tests/cases/compiler/arraySigChecking.ts(22,1): error TS2322: Type 'number[][]' is not assignable to type 'number[][][]'.
|
||||
Type 'number[]' is not assignable to type 'number[][]'.
|
||||
Type 'number' is not assignable to type 'number[]'.
|
||||
Property 'length' is missing in type 'Number'.
|
||||
|
||||
|
||||
==== tests/cases/compiler/arraySigChecking.ts (3 errors) ====
|
||||
@@ -39,7 +38,6 @@ tests/cases/compiler/arraySigChecking.ts(22,1): error TS2322: Type 'number[][]'
|
||||
!!! error TS2322: Type 'number[][]' is not assignable to type 'number[][][]'.
|
||||
!!! error TS2322: Type 'number[]' is not assignable to type 'number[][]'.
|
||||
!!! error TS2322: Type 'number' is not assignable to type 'number[]'.
|
||||
!!! error TS2322: Property 'length' is missing in type 'Number'.
|
||||
|
||||
function isEmpty(l: { length: number }) {
|
||||
return l.length === 0;
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
tests/cases/conformance/types/specifyingTypes/typeLiterals/arrayTypeOfTypeOf.ts(6,5): error TS2322: Type 'number' is not assignable to type 'ArrayConstructor'.
|
||||
Property 'isArray' is missing in type 'Number'.
|
||||
tests/cases/conformance/types/specifyingTypes/typeLiterals/arrayTypeOfTypeOf.ts(6,22): error TS1005: '=' expected.
|
||||
tests/cases/conformance/types/specifyingTypes/typeLiterals/arrayTypeOfTypeOf.ts(6,30): error TS1109: Expression expected.
|
||||
tests/cases/conformance/types/specifyingTypes/typeLiterals/arrayTypeOfTypeOf.ts(7,5): error TS2322: Type 'number' is not assignable to type 'ArrayConstructor'.
|
||||
@@ -16,7 +15,6 @@ tests/cases/conformance/types/specifyingTypes/typeLiterals/arrayTypeOfTypeOf.ts(
|
||||
var xs3: typeof Array<number>;
|
||||
~~~
|
||||
!!! error TS2322: Type 'number' is not assignable to type 'ArrayConstructor'.
|
||||
!!! error TS2322: Property 'isArray' is missing in type 'Number'.
|
||||
~
|
||||
!!! error TS1005: '=' expected.
|
||||
~
|
||||
|
||||
@@ -3,9 +3,7 @@ tests/cases/compiler/assignmentCompat1.ts(4,1): error TS2322: Type '{ [index: st
|
||||
tests/cases/compiler/assignmentCompat1.ts(6,1): error TS2322: Type '{ [index: number]: any; }' is not assignable to type '{ one: number; }'.
|
||||
Property 'one' is missing in type '{ [index: number]: any; }'.
|
||||
tests/cases/compiler/assignmentCompat1.ts(8,1): error TS2322: Type 'string' is not assignable to type '{ [index: string]: any; }'.
|
||||
Index signature is missing in type 'String'.
|
||||
tests/cases/compiler/assignmentCompat1.ts(10,1): error TS2322: Type 'boolean' is not assignable to type '{ [index: number]: any; }'.
|
||||
Index signature is missing in type 'Boolean'.
|
||||
|
||||
|
||||
==== tests/cases/compiler/assignmentCompat1.ts (4 errors) ====
|
||||
@@ -25,11 +23,9 @@ tests/cases/compiler/assignmentCompat1.ts(10,1): error TS2322: Type 'boolean' is
|
||||
y = "foo"; // Error
|
||||
~
|
||||
!!! error TS2322: Type 'string' is not assignable to type '{ [index: string]: any; }'.
|
||||
!!! error TS2322: Index signature is missing in type 'String'.
|
||||
z = "foo"; // OK, string has numeric indexer
|
||||
z = false; // Error
|
||||
~
|
||||
!!! error TS2322: Type 'boolean' is not assignable to type '{ [index: number]: any; }'.
|
||||
!!! error TS2322: Index signature is missing in type 'Boolean'.
|
||||
|
||||
|
||||
@@ -8,6 +8,10 @@ tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignme
|
||||
tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithCallSignatures4.ts(53,9): error TS2322: Type '(x: (arg: Base) => Derived, y: (arg2: Base) => Derived) => (r: Base) => Derived' is not assignable to type '<T extends Base, U extends Derived>(x: (arg: T) => U, y: (arg2: { foo: number; }) => U) => (r: T) => U'.
|
||||
Types of parameters 'y' and 'y' are incompatible.
|
||||
Type '(arg2: Base) => Derived' is not assignable to type '(arg2: { foo: number; }) => any'.
|
||||
Types of parameters 'arg2' and 'arg2' are incompatible.
|
||||
Type 'Base' is not assignable to type '{ foo: number; }'.
|
||||
Types of property 'foo' are incompatible.
|
||||
Type 'string' is not assignable to type 'number'.
|
||||
|
||||
|
||||
==== tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithCallSignatures4.ts (2 errors) ====
|
||||
@@ -76,6 +80,10 @@ tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignme
|
||||
!!! error TS2322: Type '(x: (arg: Base) => Derived, y: (arg2: Base) => Derived) => (r: Base) => Derived' is not assignable to type '<T extends Base, U extends Derived>(x: (arg: T) => U, y: (arg2: { foo: number; }) => U) => (r: T) => U'.
|
||||
!!! error TS2322: Types of parameters 'y' and 'y' are incompatible.
|
||||
!!! error TS2322: Type '(arg2: Base) => Derived' is not assignable to type '(arg2: { foo: number; }) => any'.
|
||||
!!! error TS2322: Types of parameters 'arg2' and 'arg2' are incompatible.
|
||||
!!! error TS2322: Type 'Base' is not assignable to type '{ foo: number; }'.
|
||||
!!! error TS2322: Types of property 'foo' are incompatible.
|
||||
!!! error TS2322: Type 'string' is not assignable to type 'number'.
|
||||
|
||||
|
||||
var b10: <T extends Derived>(...x: T[]) => T;
|
||||
|
||||
@@ -8,6 +8,10 @@ tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignme
|
||||
tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithConstructSignatures4.ts(53,9): error TS2322: Type 'new (x: (arg: Base) => Derived, y: (arg2: Base) => Derived) => (r: Base) => Derived' is not assignable to type 'new <T extends Base, U extends Derived>(x: (arg: T) => U, y: (arg2: { foo: number; }) => U) => (r: T) => U'.
|
||||
Types of parameters 'y' and 'y' are incompatible.
|
||||
Type '(arg2: Base) => Derived' is not assignable to type '(arg2: { foo: number; }) => any'.
|
||||
Types of parameters 'arg2' and 'arg2' are incompatible.
|
||||
Type 'Base' is not assignable to type '{ foo: number; }'.
|
||||
Types of property 'foo' are incompatible.
|
||||
Type 'string' is not assignable to type 'number'.
|
||||
tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithConstructSignatures4.ts(77,9): error TS2322: Type 'new <T>(x: (a: T) => T) => T[]' is not assignable to type '{ new (x: { new (a: number): number; new (a?: number): number; }): number[]; new (x: { new (a: boolean): boolean; new (a?: boolean): boolean; }): boolean[]; }'.
|
||||
Types of parameters 'x' and 'x' are incompatible.
|
||||
Type '(a: any) => any' is not assignable to type '{ new (a: number): number; new (a?: number): number; }'.
|
||||
@@ -15,6 +19,7 @@ tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignme
|
||||
tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithConstructSignatures4.ts(78,9): error TS2322: Type '{ new (x: { new (a: number): number; new (a?: number): number; }): number[]; new (x: { new (a: boolean): boolean; new (a?: boolean): boolean; }): boolean[]; }' is not assignable to type 'new <T>(x: (a: T) => T) => T[]'.
|
||||
Types of parameters 'x' and 'x' are incompatible.
|
||||
Type '{ new (a: number): number; new (a?: number): number; }' is not assignable to type '(a: any) => any'.
|
||||
Type '{ new (a: number): number; new (a?: number): number; }' provides no match for the signature '(a: any): any'
|
||||
tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithConstructSignatures4.ts(81,9): error TS2322: Type 'new <T>(x: (a: T) => T) => any[]' is not assignable to type '{ new (x: { new <T extends Derived>(a: T): T; new <T extends Base>(a: T): T; }): any[]; new (x: { new <T extends Derived2>(a: T): T; new <T extends Base>(a: T): T; }): any[]; }'.
|
||||
Types of parameters 'x' and 'x' are incompatible.
|
||||
Type '(a: any) => any' is not assignable to type '{ new <T extends Derived>(a: T): T; new <T extends Base>(a: T): T; }'.
|
||||
@@ -22,6 +27,7 @@ tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignme
|
||||
tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithConstructSignatures4.ts(82,9): error TS2322: Type '{ new (x: { new <T extends Derived>(a: T): T; new <T extends Base>(a: T): T; }): any[]; new (x: { new <T extends Derived2>(a: T): T; new <T extends Base>(a: T): T; }): any[]; }' is not assignable to type 'new <T>(x: (a: T) => T) => any[]'.
|
||||
Types of parameters 'x' and 'x' are incompatible.
|
||||
Type '{ new <T extends Derived>(a: T): T; new <T extends Base>(a: T): T; }' is not assignable to type '(a: any) => any'.
|
||||
Type '{ new <T extends Derived>(a: T): T; new <T extends Base>(a: T): T; }' provides no match for the signature '(a: any): any'
|
||||
|
||||
|
||||
==== tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithConstructSignatures4.ts (6 errors) ====
|
||||
@@ -90,6 +96,10 @@ tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignme
|
||||
!!! error TS2322: Type 'new (x: (arg: Base) => Derived, y: (arg2: Base) => Derived) => (r: Base) => Derived' is not assignable to type 'new <T extends Base, U extends Derived>(x: (arg: T) => U, y: (arg2: { foo: number; }) => U) => (r: T) => U'.
|
||||
!!! error TS2322: Types of parameters 'y' and 'y' are incompatible.
|
||||
!!! error TS2322: Type '(arg2: Base) => Derived' is not assignable to type '(arg2: { foo: number; }) => any'.
|
||||
!!! error TS2322: Types of parameters 'arg2' and 'arg2' are incompatible.
|
||||
!!! error TS2322: Type 'Base' is not assignable to type '{ foo: number; }'.
|
||||
!!! error TS2322: Types of property 'foo' are incompatible.
|
||||
!!! error TS2322: Type 'string' is not assignable to type 'number'.
|
||||
|
||||
|
||||
var b10: new <T extends Derived>(...x: T[]) => T;
|
||||
@@ -124,6 +134,7 @@ tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignme
|
||||
!!! error TS2322: Type '{ new (x: { new (a: number): number; new (a?: number): number; }): number[]; new (x: { new (a: boolean): boolean; new (a?: boolean): boolean; }): boolean[]; }' is not assignable to type 'new <T>(x: (a: T) => T) => T[]'.
|
||||
!!! error TS2322: Types of parameters 'x' and 'x' are incompatible.
|
||||
!!! error TS2322: Type '{ new (a: number): number; new (a?: number): number; }' is not assignable to type '(a: any) => any'.
|
||||
!!! error TS2322: Type '{ new (a: number): number; new (a?: number): number; }' provides no match for the signature '(a: any): any'
|
||||
|
||||
var b17: new <T>(x: (a: T) => T) => any[];
|
||||
a17 = b17; // error
|
||||
@@ -137,6 +148,7 @@ tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignme
|
||||
!!! error TS2322: Type '{ new (x: { new <T extends Derived>(a: T): T; new <T extends Base>(a: T): T; }): any[]; new (x: { new <T extends Derived2>(a: T): T; new <T extends Base>(a: T): T; }): any[]; }' is not assignable to type 'new <T>(x: (a: T) => T) => any[]'.
|
||||
!!! error TS2322: Types of parameters 'x' and 'x' are incompatible.
|
||||
!!! error TS2322: Type '{ new <T extends Derived>(a: T): T; new <T extends Base>(a: T): T; }' is not assignable to type '(a: any) => any'.
|
||||
!!! error TS2322: Type '{ new <T extends Derived>(a: T): T; new <T extends Base>(a: T): T; }' provides no match for the signature '(a: any): any'
|
||||
}
|
||||
|
||||
module WithGenericSignaturesInBaseType {
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
tests/cases/compiler/assignmentCompatability16.ts(9,1): error TS2322: Type 'interfaceWithPublicAndOptional<number, string>' is not assignable to type '{ one: any[]; }'.
|
||||
Types of property 'one' are incompatible.
|
||||
Type 'number' is not assignable to type 'any[]'.
|
||||
Property 'length' is missing in type 'Number'.
|
||||
|
||||
|
||||
==== tests/cases/compiler/assignmentCompatability16.ts (1 errors) ====
|
||||
@@ -17,5 +16,4 @@ tests/cases/compiler/assignmentCompatability16.ts(9,1): error TS2322: Type 'inte
|
||||
~~~~~~~~~~~~~~~~~~~~
|
||||
!!! error TS2322: Type 'interfaceWithPublicAndOptional<number, string>' is not assignable to type '{ one: any[]; }'.
|
||||
!!! error TS2322: Types of property 'one' are incompatible.
|
||||
!!! error TS2322: Type 'number' is not assignable to type 'any[]'.
|
||||
!!! error TS2322: Property 'length' is missing in type 'Number'.
|
||||
!!! error TS2322: Type 'number' is not assignable to type 'any[]'.
|
||||
@@ -1,7 +1,6 @@
|
||||
tests/cases/compiler/assignmentCompatability17.ts(9,1): error TS2322: Type 'interfaceWithPublicAndOptional<number, string>' is not assignable to type '{ two: any[]; }'.
|
||||
Types of property 'two' are incompatible.
|
||||
Type 'string' is not assignable to type 'any[]'.
|
||||
Property 'push' is missing in type 'String'.
|
||||
|
||||
|
||||
==== tests/cases/compiler/assignmentCompatability17.ts (1 errors) ====
|
||||
@@ -17,5 +16,4 @@ tests/cases/compiler/assignmentCompatability17.ts(9,1): error TS2322: Type 'inte
|
||||
~~~~~~~~~~~~~~~~~~~~
|
||||
!!! error TS2322: Type 'interfaceWithPublicAndOptional<number, string>' is not assignable to type '{ two: any[]; }'.
|
||||
!!! error TS2322: Types of property 'two' are incompatible.
|
||||
!!! error TS2322: Type 'string' is not assignable to type 'any[]'.
|
||||
!!! error TS2322: Property 'push' is missing in type 'String'.
|
||||
!!! error TS2322: Type 'string' is not assignable to type 'any[]'.
|
||||
@@ -1,7 +1,6 @@
|
||||
tests/cases/compiler/assignmentCompatability18.ts(9,1): error TS2322: Type 'interfaceWithPublicAndOptional<number, string>' is not assignable to type '{ one: number[]; }'.
|
||||
Types of property 'one' are incompatible.
|
||||
Type 'number' is not assignable to type 'number[]'.
|
||||
Property 'length' is missing in type 'Number'.
|
||||
|
||||
|
||||
==== tests/cases/compiler/assignmentCompatability18.ts (1 errors) ====
|
||||
@@ -17,5 +16,4 @@ tests/cases/compiler/assignmentCompatability18.ts(9,1): error TS2322: Type 'inte
|
||||
~~~~~~~~~~~~~~~~~~~~
|
||||
!!! error TS2322: Type 'interfaceWithPublicAndOptional<number, string>' is not assignable to type '{ one: number[]; }'.
|
||||
!!! error TS2322: Types of property 'one' are incompatible.
|
||||
!!! error TS2322: Type 'number' is not assignable to type 'number[]'.
|
||||
!!! error TS2322: Property 'length' is missing in type 'Number'.
|
||||
!!! error TS2322: Type 'number' is not assignable to type 'number[]'.
|
||||
@@ -1,7 +1,6 @@
|
||||
tests/cases/compiler/assignmentCompatability19.ts(9,1): error TS2322: Type 'interfaceWithPublicAndOptional<number, string>' is not assignable to type '{ two: number[]; }'.
|
||||
Types of property 'two' are incompatible.
|
||||
Type 'string' is not assignable to type 'number[]'.
|
||||
Property 'push' is missing in type 'String'.
|
||||
|
||||
|
||||
==== tests/cases/compiler/assignmentCompatability19.ts (1 errors) ====
|
||||
@@ -17,5 +16,4 @@ tests/cases/compiler/assignmentCompatability19.ts(9,1): error TS2322: Type 'inte
|
||||
~~~~~~~~~~~~~~~~~~~~
|
||||
!!! error TS2322: Type 'interfaceWithPublicAndOptional<number, string>' is not assignable to type '{ two: number[]; }'.
|
||||
!!! error TS2322: Types of property 'two' are incompatible.
|
||||
!!! error TS2322: Type 'string' is not assignable to type 'number[]'.
|
||||
!!! error TS2322: Property 'push' is missing in type 'String'.
|
||||
!!! error TS2322: Type 'string' is not assignable to type 'number[]'.
|
||||
@@ -1,7 +1,6 @@
|
||||
tests/cases/compiler/assignmentCompatability20.ts(9,1): error TS2322: Type 'interfaceWithPublicAndOptional<number, string>' is not assignable to type '{ one: string[]; }'.
|
||||
Types of property 'one' are incompatible.
|
||||
Type 'number' is not assignable to type 'string[]'.
|
||||
Property 'length' is missing in type 'Number'.
|
||||
|
||||
|
||||
==== tests/cases/compiler/assignmentCompatability20.ts (1 errors) ====
|
||||
@@ -17,5 +16,4 @@ tests/cases/compiler/assignmentCompatability20.ts(9,1): error TS2322: Type 'inte
|
||||
~~~~~~~~~~~~~~~~~~~~
|
||||
!!! error TS2322: Type 'interfaceWithPublicAndOptional<number, string>' is not assignable to type '{ one: string[]; }'.
|
||||
!!! error TS2322: Types of property 'one' are incompatible.
|
||||
!!! error TS2322: Type 'number' is not assignable to type 'string[]'.
|
||||
!!! error TS2322: Property 'length' is missing in type 'Number'.
|
||||
!!! error TS2322: Type 'number' is not assignable to type 'string[]'.
|
||||
@@ -1,7 +1,6 @@
|
||||
tests/cases/compiler/assignmentCompatability21.ts(9,1): error TS2322: Type 'interfaceWithPublicAndOptional<number, string>' is not assignable to type '{ two: string[]; }'.
|
||||
Types of property 'two' are incompatible.
|
||||
Type 'string' is not assignable to type 'string[]'.
|
||||
Property 'push' is missing in type 'String'.
|
||||
|
||||
|
||||
==== tests/cases/compiler/assignmentCompatability21.ts (1 errors) ====
|
||||
@@ -17,5 +16,4 @@ tests/cases/compiler/assignmentCompatability21.ts(9,1): error TS2322: Type 'inte
|
||||
~~~~~~~~~~~~~~~~~~~~
|
||||
!!! error TS2322: Type 'interfaceWithPublicAndOptional<number, string>' is not assignable to type '{ two: string[]; }'.
|
||||
!!! error TS2322: Types of property 'two' are incompatible.
|
||||
!!! error TS2322: Type 'string' is not assignable to type 'string[]'.
|
||||
!!! error TS2322: Property 'push' is missing in type 'String'.
|
||||
!!! error TS2322: Type 'string' is not assignable to type 'string[]'.
|
||||
@@ -1,7 +1,6 @@
|
||||
tests/cases/compiler/assignmentCompatability22.ts(9,1): error TS2322: Type 'interfaceWithPublicAndOptional<number, string>' is not assignable to type '{ one: boolean[]; }'.
|
||||
Types of property 'one' are incompatible.
|
||||
Type 'number' is not assignable to type 'boolean[]'.
|
||||
Property 'length' is missing in type 'Number'.
|
||||
|
||||
|
||||
==== tests/cases/compiler/assignmentCompatability22.ts (1 errors) ====
|
||||
@@ -17,5 +16,4 @@ tests/cases/compiler/assignmentCompatability22.ts(9,1): error TS2322: Type 'inte
|
||||
~~~~~~~~~~~~~~~~~~~~
|
||||
!!! error TS2322: Type 'interfaceWithPublicAndOptional<number, string>' is not assignable to type '{ one: boolean[]; }'.
|
||||
!!! error TS2322: Types of property 'one' are incompatible.
|
||||
!!! error TS2322: Type 'number' is not assignable to type 'boolean[]'.
|
||||
!!! error TS2322: Property 'length' is missing in type 'Number'.
|
||||
!!! error TS2322: Type 'number' is not assignable to type 'boolean[]'.
|
||||
@@ -1,7 +1,6 @@
|
||||
tests/cases/compiler/assignmentCompatability23.ts(9,1): error TS2322: Type 'interfaceWithPublicAndOptional<number, string>' is not assignable to type '{ two: boolean[]; }'.
|
||||
Types of property 'two' are incompatible.
|
||||
Type 'string' is not assignable to type 'boolean[]'.
|
||||
Property 'push' is missing in type 'String'.
|
||||
|
||||
|
||||
==== tests/cases/compiler/assignmentCompatability23.ts (1 errors) ====
|
||||
@@ -17,5 +16,4 @@ tests/cases/compiler/assignmentCompatability23.ts(9,1): error TS2322: Type 'inte
|
||||
~~~~~~~~~~~~~~~~~~~~
|
||||
!!! error TS2322: Type 'interfaceWithPublicAndOptional<number, string>' is not assignable to type '{ two: boolean[]; }'.
|
||||
!!! error TS2322: Types of property 'two' are incompatible.
|
||||
!!! error TS2322: Type 'string' is not assignable to type 'boolean[]'.
|
||||
!!! error TS2322: Property 'push' is missing in type 'String'.
|
||||
!!! error TS2322: Type 'string' is not assignable to type 'boolean[]'.
|
||||
@@ -1,7 +1,6 @@
|
||||
tests/cases/compiler/assignmentCompatability29.ts(9,1): error TS2322: Type 'interfaceWithPublicAndOptional<number, string>' is not assignable to type '{ one: any[]; }'.
|
||||
Types of property 'one' are incompatible.
|
||||
Type 'number' is not assignable to type 'any[]'.
|
||||
Property 'length' is missing in type 'Number'.
|
||||
|
||||
|
||||
==== tests/cases/compiler/assignmentCompatability29.ts (1 errors) ====
|
||||
@@ -17,5 +16,4 @@ tests/cases/compiler/assignmentCompatability29.ts(9,1): error TS2322: Type 'inte
|
||||
~~~~~~~~~~~~~~~~~~~
|
||||
!!! error TS2322: Type 'interfaceWithPublicAndOptional<number, string>' is not assignable to type '{ one: any[]; }'.
|
||||
!!! error TS2322: Types of property 'one' are incompatible.
|
||||
!!! error TS2322: Type 'number' is not assignable to type 'any[]'.
|
||||
!!! error TS2322: Property 'length' is missing in type 'Number'.
|
||||
!!! error TS2322: Type 'number' is not assignable to type 'any[]'.
|
||||
@@ -1,7 +1,6 @@
|
||||
tests/cases/compiler/assignmentCompatability30.ts(9,1): error TS2322: Type 'interfaceWithPublicAndOptional<number, string>' is not assignable to type '{ one: number[]; }'.
|
||||
Types of property 'one' are incompatible.
|
||||
Type 'number' is not assignable to type 'number[]'.
|
||||
Property 'length' is missing in type 'Number'.
|
||||
|
||||
|
||||
==== tests/cases/compiler/assignmentCompatability30.ts (1 errors) ====
|
||||
@@ -17,5 +16,4 @@ tests/cases/compiler/assignmentCompatability30.ts(9,1): error TS2322: Type 'inte
|
||||
~~~~~~~~~~~~~~~~~~~
|
||||
!!! error TS2322: Type 'interfaceWithPublicAndOptional<number, string>' is not assignable to type '{ one: number[]; }'.
|
||||
!!! error TS2322: Types of property 'one' are incompatible.
|
||||
!!! error TS2322: Type 'number' is not assignable to type 'number[]'.
|
||||
!!! error TS2322: Property 'length' is missing in type 'Number'.
|
||||
!!! error TS2322: Type 'number' is not assignable to type 'number[]'.
|
||||
@@ -1,7 +1,6 @@
|
||||
tests/cases/compiler/assignmentCompatability31.ts(9,1): error TS2322: Type 'interfaceWithPublicAndOptional<number, string>' is not assignable to type '{ one: string[]; }'.
|
||||
Types of property 'one' are incompatible.
|
||||
Type 'number' is not assignable to type 'string[]'.
|
||||
Property 'length' is missing in type 'Number'.
|
||||
|
||||
|
||||
==== tests/cases/compiler/assignmentCompatability31.ts (1 errors) ====
|
||||
@@ -17,5 +16,4 @@ tests/cases/compiler/assignmentCompatability31.ts(9,1): error TS2322: Type 'inte
|
||||
~~~~~~~~~~~~~~~~~~~
|
||||
!!! error TS2322: Type 'interfaceWithPublicAndOptional<number, string>' is not assignable to type '{ one: string[]; }'.
|
||||
!!! error TS2322: Types of property 'one' are incompatible.
|
||||
!!! error TS2322: Type 'number' is not assignable to type 'string[]'.
|
||||
!!! error TS2322: Property 'length' is missing in type 'Number'.
|
||||
!!! error TS2322: Type 'number' is not assignable to type 'string[]'.
|
||||
@@ -1,7 +1,6 @@
|
||||
tests/cases/compiler/assignmentCompatability32.ts(9,1): error TS2322: Type 'interfaceWithPublicAndOptional<number, string>' is not assignable to type '{ one: boolean[]; }'.
|
||||
Types of property 'one' are incompatible.
|
||||
Type 'number' is not assignable to type 'boolean[]'.
|
||||
Property 'length' is missing in type 'Number'.
|
||||
|
||||
|
||||
==== tests/cases/compiler/assignmentCompatability32.ts (1 errors) ====
|
||||
@@ -17,5 +16,4 @@ tests/cases/compiler/assignmentCompatability32.ts(9,1): error TS2322: Type 'inte
|
||||
~~~~~~~~~~~~~~~~~~~
|
||||
!!! error TS2322: Type 'interfaceWithPublicAndOptional<number, string>' is not assignable to type '{ one: boolean[]; }'.
|
||||
!!! error TS2322: Types of property 'one' are incompatible.
|
||||
!!! error TS2322: Type 'number' is not assignable to type 'boolean[]'.
|
||||
!!! error TS2322: Property 'length' is missing in type 'Number'.
|
||||
!!! error TS2322: Type 'number' is not assignable to type 'boolean[]'.
|
||||
-4
@@ -1,9 +1,7 @@
|
||||
tests/cases/compiler/assignmentCompatability_checking-apply-member-off-of-function-interface.ts(10,1): error TS2322: Type 'string' is not assignable to type 'Applicable'.
|
||||
Property 'apply' is missing in type 'String'.
|
||||
tests/cases/compiler/assignmentCompatability_checking-apply-member-off-of-function-interface.ts(11,1): error TS2322: Type 'string[]' is not assignable to type 'Applicable'.
|
||||
Property 'apply' is missing in type 'string[]'.
|
||||
tests/cases/compiler/assignmentCompatability_checking-apply-member-off-of-function-interface.ts(12,1): error TS2322: Type 'number' is not assignable to type 'Applicable'.
|
||||
Property 'apply' is missing in type 'Number'.
|
||||
tests/cases/compiler/assignmentCompatability_checking-apply-member-off-of-function-interface.ts(13,1): error TS2322: Type '{}' is not assignable to type 'Applicable'.
|
||||
Property 'apply' is missing in type '{}'.
|
||||
tests/cases/compiler/assignmentCompatability_checking-apply-member-off-of-function-interface.ts(22,4): error TS2345: Argument of type 'string' is not assignable to parameter of type 'Applicable'.
|
||||
@@ -26,7 +24,6 @@ tests/cases/compiler/assignmentCompatability_checking-apply-member-off-of-functi
|
||||
x = '';
|
||||
~
|
||||
!!! error TS2322: Type 'string' is not assignable to type 'Applicable'.
|
||||
!!! error TS2322: Property 'apply' is missing in type 'String'.
|
||||
x = [''];
|
||||
~
|
||||
!!! error TS2322: Type 'string[]' is not assignable to type 'Applicable'.
|
||||
@@ -34,7 +31,6 @@ tests/cases/compiler/assignmentCompatability_checking-apply-member-off-of-functi
|
||||
x = 4;
|
||||
~
|
||||
!!! error TS2322: Type 'number' is not assignable to type 'Applicable'.
|
||||
!!! error TS2322: Property 'apply' is missing in type 'Number'.
|
||||
x = {};
|
||||
~
|
||||
!!! error TS2322: Type '{}' is not assignable to type 'Applicable'.
|
||||
|
||||
-4
@@ -1,9 +1,7 @@
|
||||
tests/cases/compiler/assignmentCompatability_checking-call-member-off-of-function-interface.ts(10,1): error TS2322: Type 'string' is not assignable to type 'Callable'.
|
||||
Property 'call' is missing in type 'String'.
|
||||
tests/cases/compiler/assignmentCompatability_checking-call-member-off-of-function-interface.ts(11,1): error TS2322: Type 'string[]' is not assignable to type 'Callable'.
|
||||
Property 'call' is missing in type 'string[]'.
|
||||
tests/cases/compiler/assignmentCompatability_checking-call-member-off-of-function-interface.ts(12,1): error TS2322: Type 'number' is not assignable to type 'Callable'.
|
||||
Property 'call' is missing in type 'Number'.
|
||||
tests/cases/compiler/assignmentCompatability_checking-call-member-off-of-function-interface.ts(13,1): error TS2322: Type '{}' is not assignable to type 'Callable'.
|
||||
Property 'call' is missing in type '{}'.
|
||||
tests/cases/compiler/assignmentCompatability_checking-call-member-off-of-function-interface.ts(22,4): error TS2345: Argument of type 'string' is not assignable to parameter of type 'Callable'.
|
||||
@@ -26,7 +24,6 @@ tests/cases/compiler/assignmentCompatability_checking-call-member-off-of-functio
|
||||
x = '';
|
||||
~
|
||||
!!! error TS2322: Type 'string' is not assignable to type 'Callable'.
|
||||
!!! error TS2322: Property 'call' is missing in type 'String'.
|
||||
x = [''];
|
||||
~
|
||||
!!! error TS2322: Type 'string[]' is not assignable to type 'Callable'.
|
||||
@@ -34,7 +31,6 @@ tests/cases/compiler/assignmentCompatability_checking-call-member-off-of-functio
|
||||
x = 4;
|
||||
~
|
||||
!!! error TS2322: Type 'number' is not assignable to type 'Callable'.
|
||||
!!! error TS2322: Property 'call' is missing in type 'Number'.
|
||||
x = {};
|
||||
~
|
||||
!!! error TS2322: Type '{}' is not assignable to type 'Callable'.
|
||||
|
||||
@@ -1,11 +1,5 @@
|
||||
tests/cases/compiler/booleanAssignment.ts(2,1): error TS2322: Type 'number' is not assignable to type 'Boolean'.
|
||||
Types of property 'valueOf' are incompatible.
|
||||
Type '() => number' is not assignable to type '() => boolean'.
|
||||
Type 'number' is not assignable to type 'boolean'.
|
||||
tests/cases/compiler/booleanAssignment.ts(3,1): error TS2322: Type 'string' is not assignable to type 'Boolean'.
|
||||
Types of property 'valueOf' are incompatible.
|
||||
Type '() => string' is not assignable to type '() => boolean'.
|
||||
Type 'string' is not assignable to type 'boolean'.
|
||||
tests/cases/compiler/booleanAssignment.ts(4,1): error TS2322: Type '{}' is not assignable to type 'Boolean'.
|
||||
Types of property 'valueOf' are incompatible.
|
||||
Type '() => Object' is not assignable to type '() => boolean'.
|
||||
@@ -17,15 +11,9 @@ tests/cases/compiler/booleanAssignment.ts(4,1): error TS2322: Type '{}' is not a
|
||||
b = 1; // Error
|
||||
~
|
||||
!!! error TS2322: Type 'number' is not assignable to type 'Boolean'.
|
||||
!!! error TS2322: Types of property 'valueOf' are incompatible.
|
||||
!!! error TS2322: Type '() => number' is not assignable to type '() => boolean'.
|
||||
!!! error TS2322: Type 'number' is not assignable to type 'boolean'.
|
||||
b = "a"; // Error
|
||||
~
|
||||
!!! error TS2322: Type 'string' is not assignable to type 'Boolean'.
|
||||
!!! error TS2322: Types of property 'valueOf' are incompatible.
|
||||
!!! error TS2322: Type '() => string' is not assignable to type '() => boolean'.
|
||||
!!! error TS2322: Type 'string' is not assignable to type 'boolean'.
|
||||
b = {}; // Error
|
||||
~
|
||||
!!! error TS2322: Type '{}' is not assignable to type 'Boolean'.
|
||||
|
||||
+1005
File diff suppressed because it is too large
Load Diff
+1008
File diff suppressed because it is too large
Load Diff
+1171
File diff suppressed because it is too large
Load Diff
+1483
File diff suppressed because it is too large
Load Diff
+779
@@ -0,0 +1,779 @@
|
||||
|
||||
1 >declare var console: {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (0 to 22) SpanInfo: undefined
|
||||
--------------------------------
|
||||
2 > log(msg: any): void;
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (23 to 47) SpanInfo: undefined
|
||||
--------------------------------
|
||||
3 >}
|
||||
|
||||
~~ => Pos: (48 to 49) SpanInfo: undefined
|
||||
--------------------------------
|
||||
4 >type Robot = [number, string, string];
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (50 to 88) SpanInfo: undefined
|
||||
--------------------------------
|
||||
5 >type MultiSkilledRobot = [string, [string, string]];
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (89 to 141) SpanInfo: undefined
|
||||
--------------------------------
|
||||
6 >let robotA: Robot = [1, "mower", "mowing"];
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (142 to 185) SpanInfo: {"start":142,"length":42}
|
||||
>let robotA: Robot = [1, "mower", "mowing"]
|
||||
>:=> (line 6, col 0) to (line 6, col 42)
|
||||
--------------------------------
|
||||
7 >let robotB: Robot = [2, "trimmer", "trimming"];
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (186 to 233) SpanInfo: {"start":186,"length":46}
|
||||
>let robotB: Robot = [2, "trimmer", "trimming"]
|
||||
>:=> (line 7, col 0) to (line 7, col 46)
|
||||
--------------------------------
|
||||
8 >let robots = [robotA, robotB];
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (234 to 264) SpanInfo: {"start":234,"length":29}
|
||||
>let robots = [robotA, robotB]
|
||||
>:=> (line 8, col 0) to (line 8, col 29)
|
||||
--------------------------------
|
||||
9 >function getRobots() {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (265 to 287) SpanInfo: {"start":292,"length":13}
|
||||
>return robots
|
||||
>:=> (line 10, col 4) to (line 10, col 17)
|
||||
--------------------------------
|
||||
10 > return robots;
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~ => Pos: (288 to 306) SpanInfo: {"start":292,"length":13}
|
||||
>return robots
|
||||
>:=> (line 10, col 4) to (line 10, col 17)
|
||||
--------------------------------
|
||||
11 >}
|
||||
|
||||
~~ => Pos: (307 to 308) SpanInfo: {"start":307,"length":1}
|
||||
>}
|
||||
>:=> (line 11, col 0) to (line 11, col 1)
|
||||
--------------------------------
|
||||
12 >let multiRobotA: MultiSkilledRobot = ["mower", ["mowing", ""]];
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (309 to 372) SpanInfo: {"start":309,"length":62}
|
||||
>let multiRobotA: MultiSkilledRobot = ["mower", ["mowing", ""]]
|
||||
>:=> (line 12, col 0) to (line 12, col 62)
|
||||
--------------------------------
|
||||
13 >let multiRobotB: MultiSkilledRobot = ["trimmer", ["trimming", "edging"]];
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (373 to 446) SpanInfo: {"start":373,"length":72}
|
||||
>let multiRobotB: MultiSkilledRobot = ["trimmer", ["trimming", "edging"]]
|
||||
>:=> (line 13, col 0) to (line 13, col 72)
|
||||
--------------------------------
|
||||
14 >let multiRobots = [multiRobotA, multiRobotB];
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (447 to 492) SpanInfo: {"start":447,"length":44}
|
||||
>let multiRobots = [multiRobotA, multiRobotB]
|
||||
>:=> (line 14, col 0) to (line 14, col 44)
|
||||
--------------------------------
|
||||
15 >function getMultiRobots() {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (493 to 520) SpanInfo: {"start":525,"length":18}
|
||||
>return multiRobots
|
||||
>:=> (line 16, col 4) to (line 16, col 22)
|
||||
--------------------------------
|
||||
16 > return multiRobots;
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (521 to 544) SpanInfo: {"start":525,"length":18}
|
||||
>return multiRobots
|
||||
>:=> (line 16, col 4) to (line 16, col 22)
|
||||
--------------------------------
|
||||
17 >}
|
||||
|
||||
~~ => Pos: (545 to 546) SpanInfo: {"start":545,"length":1}
|
||||
>}
|
||||
>:=> (line 17, col 0) to (line 17, col 1)
|
||||
--------------------------------
|
||||
18 >let nameA: string, primarySkillA: string, secondarySkillA: string;
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (547 to 613) SpanInfo: undefined
|
||||
--------------------------------
|
||||
19 >let numberB: number, nameB: string;
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (614 to 649) SpanInfo: undefined
|
||||
--------------------------------
|
||||
20 >let numberA2: number, nameA2: string, skillA2: string, nameMA: string;
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (650 to 720) SpanInfo: undefined
|
||||
--------------------------------
|
||||
21 >let numberA3: number, robotAInfo: (number | string)[], multiRobotAInfo: (string | [string, string])[];
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (721 to 823) SpanInfo: undefined
|
||||
--------------------------------
|
||||
22 >for ([, nameA] of robots) {
|
||||
|
||||
~~~~~~~~~~~~~~ => Pos: (824 to 837) SpanInfo: {"start":832,"length":5}
|
||||
>nameA
|
||||
>:=> (line 22, col 8) to (line 22, col 13)
|
||||
22 >for ([, nameA] of robots) {
|
||||
|
||||
~~~~~~~~~~~~~~ => Pos: (838 to 851) SpanInfo: {"start":842,"length":6}
|
||||
>robots
|
||||
>:=> (line 22, col 18) to (line 22, col 24)
|
||||
--------------------------------
|
||||
23 > console.log(nameA);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (852 to 875) SpanInfo: {"start":856,"length":18}
|
||||
>console.log(nameA)
|
||||
>:=> (line 23, col 4) to (line 23, col 22)
|
||||
--------------------------------
|
||||
24 >}
|
||||
|
||||
~~ => Pos: (876 to 877) SpanInfo: {"start":856,"length":18}
|
||||
>console.log(nameA)
|
||||
>:=> (line 23, col 4) to (line 23, col 22)
|
||||
--------------------------------
|
||||
25 >for ([, nameA] of getRobots()) {
|
||||
|
||||
~~~~~~~~~~~~~~ => Pos: (878 to 891) SpanInfo: {"start":886,"length":5}
|
||||
>nameA
|
||||
>:=> (line 25, col 8) to (line 25, col 13)
|
||||
25 >for ([, nameA] of getRobots()) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~ => Pos: (892 to 910) SpanInfo: {"start":896,"length":11}
|
||||
>getRobots()
|
||||
>:=> (line 25, col 18) to (line 25, col 29)
|
||||
--------------------------------
|
||||
26 > console.log(nameA);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (911 to 934) SpanInfo: {"start":915,"length":18}
|
||||
>console.log(nameA)
|
||||
>:=> (line 26, col 4) to (line 26, col 22)
|
||||
--------------------------------
|
||||
27 >}
|
||||
|
||||
~~ => Pos: (935 to 936) SpanInfo: {"start":915,"length":18}
|
||||
>console.log(nameA)
|
||||
>:=> (line 26, col 4) to (line 26, col 22)
|
||||
--------------------------------
|
||||
28 >for ([, nameA] of [robotA, robotB]) {
|
||||
|
||||
~~~~~~~~~~~~~~ => Pos: (937 to 950) SpanInfo: {"start":945,"length":5}
|
||||
>nameA
|
||||
>:=> (line 28, col 8) to (line 28, col 13)
|
||||
28 >for ([, nameA] of [robotA, robotB]) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (951 to 974) SpanInfo: {"start":955,"length":16}
|
||||
>[robotA, robotB]
|
||||
>:=> (line 28, col 18) to (line 28, col 34)
|
||||
--------------------------------
|
||||
29 > console.log(nameA);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (975 to 998) SpanInfo: {"start":979,"length":18}
|
||||
>console.log(nameA)
|
||||
>:=> (line 29, col 4) to (line 29, col 22)
|
||||
--------------------------------
|
||||
30 >}
|
||||
|
||||
~~ => Pos: (999 to 1000) SpanInfo: {"start":979,"length":18}
|
||||
>console.log(nameA)
|
||||
>:=> (line 29, col 4) to (line 29, col 22)
|
||||
--------------------------------
|
||||
31 >for ([, [primarySkillA, secondarySkillA]] of multiRobots) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (1001 to 1023) SpanInfo: {"start":1010,"length":13}
|
||||
>primarySkillA
|
||||
>:=> (line 31, col 9) to (line 31, col 22)
|
||||
31 >for ([, [primarySkillA, secondarySkillA]] of multiRobots) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~ => Pos: (1024 to 1040) SpanInfo: {"start":1025,"length":15}
|
||||
>secondarySkillA
|
||||
>:=> (line 31, col 24) to (line 31, col 39)
|
||||
31 >for ([, [primarySkillA, secondarySkillA]] of multiRobots) {
|
||||
|
||||
~ => Pos: (1041 to 1041) SpanInfo: {"start":1009,"length":32}
|
||||
>[primarySkillA, secondarySkillA]
|
||||
>:=> (line 31, col 8) to (line 31, col 40)
|
||||
31 >for ([, [primarySkillA, secondarySkillA]] of multiRobots) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~=> Pos: (1042 to 1060) SpanInfo: {"start":1046,"length":11}
|
||||
>multiRobots
|
||||
>:=> (line 31, col 45) to (line 31, col 56)
|
||||
--------------------------------
|
||||
32 > console.log(primarySkillA);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (1061 to 1092) SpanInfo: {"start":1065,"length":26}
|
||||
>console.log(primarySkillA)
|
||||
>:=> (line 32, col 4) to (line 32, col 30)
|
||||
--------------------------------
|
||||
33 >}
|
||||
|
||||
~~ => Pos: (1093 to 1094) SpanInfo: {"start":1065,"length":26}
|
||||
>console.log(primarySkillA)
|
||||
>:=> (line 32, col 4) to (line 32, col 30)
|
||||
--------------------------------
|
||||
34 >for ([, [primarySkillA, secondarySkillA]] of getMultiRobots()) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (1095 to 1117) SpanInfo: {"start":1104,"length":13}
|
||||
>primarySkillA
|
||||
>:=> (line 34, col 9) to (line 34, col 22)
|
||||
34 >for ([, [primarySkillA, secondarySkillA]] of getMultiRobots()) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~ => Pos: (1118 to 1134) SpanInfo: {"start":1119,"length":15}
|
||||
>secondarySkillA
|
||||
>:=> (line 34, col 24) to (line 34, col 39)
|
||||
34 >for ([, [primarySkillA, secondarySkillA]] of getMultiRobots()) {
|
||||
|
||||
~ => Pos: (1135 to 1135) SpanInfo: {"start":1103,"length":32}
|
||||
>[primarySkillA, secondarySkillA]
|
||||
>:=> (line 34, col 8) to (line 34, col 40)
|
||||
34 >for ([, [primarySkillA, secondarySkillA]] of getMultiRobots()) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (1136 to 1159) SpanInfo: {"start":1140,"length":16}
|
||||
>getMultiRobots()
|
||||
>:=> (line 34, col 45) to (line 34, col 61)
|
||||
--------------------------------
|
||||
35 > console.log(primarySkillA);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (1160 to 1191) SpanInfo: {"start":1164,"length":26}
|
||||
>console.log(primarySkillA)
|
||||
>:=> (line 35, col 4) to (line 35, col 30)
|
||||
--------------------------------
|
||||
36 >}
|
||||
|
||||
~~ => Pos: (1192 to 1193) SpanInfo: {"start":1164,"length":26}
|
||||
>console.log(primarySkillA)
|
||||
>:=> (line 35, col 4) to (line 35, col 30)
|
||||
--------------------------------
|
||||
37 >for ([, [primarySkillA, secondarySkillA]] of [multiRobotA, multiRobotB]) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (1194 to 1216) SpanInfo: {"start":1203,"length":13}
|
||||
>primarySkillA
|
||||
>:=> (line 37, col 9) to (line 37, col 22)
|
||||
37 >for ([, [primarySkillA, secondarySkillA]] of [multiRobotA, multiRobotB]) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~ => Pos: (1217 to 1233) SpanInfo: {"start":1218,"length":15}
|
||||
>secondarySkillA
|
||||
>:=> (line 37, col 24) to (line 37, col 39)
|
||||
37 >for ([, [primarySkillA, secondarySkillA]] of [multiRobotA, multiRobotB]) {
|
||||
|
||||
~ => Pos: (1234 to 1234) SpanInfo: {"start":1202,"length":32}
|
||||
>[primarySkillA, secondarySkillA]
|
||||
>:=> (line 37, col 8) to (line 37, col 40)
|
||||
37 >for ([, [primarySkillA, secondarySkillA]] of [multiRobotA, multiRobotB]) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (1235 to 1268) SpanInfo: {"start":1239,"length":26}
|
||||
>[multiRobotA, multiRobotB]
|
||||
>:=> (line 37, col 45) to (line 37, col 71)
|
||||
--------------------------------
|
||||
38 > console.log(primarySkillA);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (1269 to 1300) SpanInfo: {"start":1273,"length":26}
|
||||
>console.log(primarySkillA)
|
||||
>:=> (line 38, col 4) to (line 38, col 30)
|
||||
--------------------------------
|
||||
39 >}
|
||||
|
||||
~~ => Pos: (1301 to 1302) SpanInfo: {"start":1273,"length":26}
|
||||
>console.log(primarySkillA)
|
||||
>:=> (line 38, col 4) to (line 38, col 30)
|
||||
--------------------------------
|
||||
40 >for ([numberB] of robots) {
|
||||
|
||||
~~~~~~~~~~~~~~ => Pos: (1303 to 1316) SpanInfo: {"start":1309,"length":7}
|
||||
>numberB
|
||||
>:=> (line 40, col 6) to (line 40, col 13)
|
||||
40 >for ([numberB] of robots) {
|
||||
|
||||
~~~~~~~~~~~~~~ => Pos: (1317 to 1330) SpanInfo: {"start":1321,"length":6}
|
||||
>robots
|
||||
>:=> (line 40, col 18) to (line 40, col 24)
|
||||
--------------------------------
|
||||
41 > console.log(numberB);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (1331 to 1356) SpanInfo: {"start":1335,"length":20}
|
||||
>console.log(numberB)
|
||||
>:=> (line 41, col 4) to (line 41, col 24)
|
||||
--------------------------------
|
||||
42 >}
|
||||
|
||||
~~ => Pos: (1357 to 1358) SpanInfo: {"start":1335,"length":20}
|
||||
>console.log(numberB)
|
||||
>:=> (line 41, col 4) to (line 41, col 24)
|
||||
--------------------------------
|
||||
43 >for ([numberB] of getRobots()) {
|
||||
|
||||
~~~~~~~~~~~~~~ => Pos: (1359 to 1372) SpanInfo: {"start":1365,"length":7}
|
||||
>numberB
|
||||
>:=> (line 43, col 6) to (line 43, col 13)
|
||||
43 >for ([numberB] of getRobots()) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~ => Pos: (1373 to 1391) SpanInfo: {"start":1377,"length":11}
|
||||
>getRobots()
|
||||
>:=> (line 43, col 18) to (line 43, col 29)
|
||||
--------------------------------
|
||||
44 > console.log(numberB);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (1392 to 1417) SpanInfo: {"start":1396,"length":20}
|
||||
>console.log(numberB)
|
||||
>:=> (line 44, col 4) to (line 44, col 24)
|
||||
--------------------------------
|
||||
45 >}
|
||||
|
||||
~~ => Pos: (1418 to 1419) SpanInfo: {"start":1396,"length":20}
|
||||
>console.log(numberB)
|
||||
>:=> (line 44, col 4) to (line 44, col 24)
|
||||
--------------------------------
|
||||
46 >for ([numberB] of [robotA, robotB]) {
|
||||
|
||||
~~~~~~~~~~~~~~ => Pos: (1420 to 1433) SpanInfo: {"start":1426,"length":7}
|
||||
>numberB
|
||||
>:=> (line 46, col 6) to (line 46, col 13)
|
||||
46 >for ([numberB] of [robotA, robotB]) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (1434 to 1457) SpanInfo: {"start":1438,"length":16}
|
||||
>[robotA, robotB]
|
||||
>:=> (line 46, col 18) to (line 46, col 34)
|
||||
--------------------------------
|
||||
47 > console.log(numberB);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (1458 to 1483) SpanInfo: {"start":1462,"length":20}
|
||||
>console.log(numberB)
|
||||
>:=> (line 47, col 4) to (line 47, col 24)
|
||||
--------------------------------
|
||||
48 >}
|
||||
|
||||
~~ => Pos: (1484 to 1485) SpanInfo: {"start":1462,"length":20}
|
||||
>console.log(numberB)
|
||||
>:=> (line 47, col 4) to (line 47, col 24)
|
||||
--------------------------------
|
||||
49 >for ([nameB] of multiRobots) {
|
||||
|
||||
~~~~~~~~~~~~ => Pos: (1486 to 1497) SpanInfo: {"start":1492,"length":5}
|
||||
>nameB
|
||||
>:=> (line 49, col 6) to (line 49, col 11)
|
||||
49 >for ([nameB] of multiRobots) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~ => Pos: (1498 to 1516) SpanInfo: {"start":1502,"length":11}
|
||||
>multiRobots
|
||||
>:=> (line 49, col 16) to (line 49, col 27)
|
||||
--------------------------------
|
||||
50 > console.log(nameB);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (1517 to 1540) SpanInfo: {"start":1521,"length":18}
|
||||
>console.log(nameB)
|
||||
>:=> (line 50, col 4) to (line 50, col 22)
|
||||
--------------------------------
|
||||
51 >}
|
||||
|
||||
~~ => Pos: (1541 to 1542) SpanInfo: {"start":1521,"length":18}
|
||||
>console.log(nameB)
|
||||
>:=> (line 50, col 4) to (line 50, col 22)
|
||||
--------------------------------
|
||||
52 >for ([nameB] of getMultiRobots()) {
|
||||
|
||||
~~~~~~~~~~~~ => Pos: (1543 to 1554) SpanInfo: {"start":1549,"length":5}
|
||||
>nameB
|
||||
>:=> (line 52, col 6) to (line 52, col 11)
|
||||
52 >for ([nameB] of getMultiRobots()) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (1555 to 1578) SpanInfo: {"start":1559,"length":16}
|
||||
>getMultiRobots()
|
||||
>:=> (line 52, col 16) to (line 52, col 32)
|
||||
--------------------------------
|
||||
53 > console.log(nameB);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (1579 to 1602) SpanInfo: {"start":1583,"length":18}
|
||||
>console.log(nameB)
|
||||
>:=> (line 53, col 4) to (line 53, col 22)
|
||||
--------------------------------
|
||||
54 >}
|
||||
|
||||
~~ => Pos: (1603 to 1604) SpanInfo: {"start":1583,"length":18}
|
||||
>console.log(nameB)
|
||||
>:=> (line 53, col 4) to (line 53, col 22)
|
||||
--------------------------------
|
||||
55 >for ([nameB] of [multiRobotA, multiRobotB]) {
|
||||
|
||||
~~~~~~~~~~~~ => Pos: (1605 to 1616) SpanInfo: {"start":1611,"length":5}
|
||||
>nameB
|
||||
>:=> (line 55, col 6) to (line 55, col 11)
|
||||
55 >for ([nameB] of [multiRobotA, multiRobotB]) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (1617 to 1650) SpanInfo: {"start":1621,"length":26}
|
||||
>[multiRobotA, multiRobotB]
|
||||
>:=> (line 55, col 16) to (line 55, col 42)
|
||||
--------------------------------
|
||||
56 > console.log(nameB);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (1651 to 1674) SpanInfo: {"start":1655,"length":18}
|
||||
>console.log(nameB)
|
||||
>:=> (line 56, col 4) to (line 56, col 22)
|
||||
--------------------------------
|
||||
57 >}
|
||||
|
||||
~~ => Pos: (1675 to 1676) SpanInfo: {"start":1655,"length":18}
|
||||
>console.log(nameB)
|
||||
>:=> (line 56, col 4) to (line 56, col 22)
|
||||
--------------------------------
|
||||
58 >for ([numberA2, nameA2, skillA2] of robots) {
|
||||
|
||||
~~~~~~~~~~~~~~~ => Pos: (1677 to 1691) SpanInfo: {"start":1683,"length":8}
|
||||
>numberA2
|
||||
>:=> (line 58, col 6) to (line 58, col 14)
|
||||
58 >for ([numberA2, nameA2, skillA2] of robots) {
|
||||
|
||||
~~~~~~~~ => Pos: (1692 to 1699) SpanInfo: {"start":1693,"length":6}
|
||||
>nameA2
|
||||
>:=> (line 58, col 16) to (line 58, col 22)
|
||||
58 >for ([numberA2, nameA2, skillA2] of robots) {
|
||||
|
||||
~~~~~~~~~ => Pos: (1700 to 1708) SpanInfo: {"start":1701,"length":7}
|
||||
>skillA2
|
||||
>:=> (line 58, col 24) to (line 58, col 31)
|
||||
58 >for ([numberA2, nameA2, skillA2] of robots) {
|
||||
|
||||
~~~~~~~~~~~~~~=> Pos: (1709 to 1722) SpanInfo: {"start":1713,"length":6}
|
||||
>robots
|
||||
>:=> (line 58, col 36) to (line 58, col 42)
|
||||
--------------------------------
|
||||
59 > console.log(nameA2);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (1723 to 1747) SpanInfo: {"start":1727,"length":19}
|
||||
>console.log(nameA2)
|
||||
>:=> (line 59, col 4) to (line 59, col 23)
|
||||
--------------------------------
|
||||
60 >}
|
||||
|
||||
~~ => Pos: (1748 to 1749) SpanInfo: {"start":1727,"length":19}
|
||||
>console.log(nameA2)
|
||||
>:=> (line 59, col 4) to (line 59, col 23)
|
||||
--------------------------------
|
||||
61 >for ([numberA2, nameA2, skillA2] of getRobots()) {
|
||||
|
||||
~~~~~~~~~~~~~~~ => Pos: (1750 to 1764) SpanInfo: {"start":1756,"length":8}
|
||||
>numberA2
|
||||
>:=> (line 61, col 6) to (line 61, col 14)
|
||||
61 >for ([numberA2, nameA2, skillA2] of getRobots()) {
|
||||
|
||||
~~~~~~~~ => Pos: (1765 to 1772) SpanInfo: {"start":1766,"length":6}
|
||||
>nameA2
|
||||
>:=> (line 61, col 16) to (line 61, col 22)
|
||||
61 >for ([numberA2, nameA2, skillA2] of getRobots()) {
|
||||
|
||||
~~~~~~~~~ => Pos: (1773 to 1781) SpanInfo: {"start":1774,"length":7}
|
||||
>skillA2
|
||||
>:=> (line 61, col 24) to (line 61, col 31)
|
||||
61 >for ([numberA2, nameA2, skillA2] of getRobots()) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~=> Pos: (1782 to 1800) SpanInfo: {"start":1786,"length":11}
|
||||
>getRobots()
|
||||
>:=> (line 61, col 36) to (line 61, col 47)
|
||||
--------------------------------
|
||||
62 > console.log(nameA2);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (1801 to 1825) SpanInfo: {"start":1805,"length":19}
|
||||
>console.log(nameA2)
|
||||
>:=> (line 62, col 4) to (line 62, col 23)
|
||||
--------------------------------
|
||||
63 >}
|
||||
|
||||
~~ => Pos: (1826 to 1827) SpanInfo: {"start":1805,"length":19}
|
||||
>console.log(nameA2)
|
||||
>:=> (line 62, col 4) to (line 62, col 23)
|
||||
--------------------------------
|
||||
64 >for ([numberA2, nameA2, skillA2] of [robotA, robotB]) {
|
||||
|
||||
~~~~~~~~~~~~~~~ => Pos: (1828 to 1842) SpanInfo: {"start":1834,"length":8}
|
||||
>numberA2
|
||||
>:=> (line 64, col 6) to (line 64, col 14)
|
||||
64 >for ([numberA2, nameA2, skillA2] of [robotA, robotB]) {
|
||||
|
||||
~~~~~~~~ => Pos: (1843 to 1850) SpanInfo: {"start":1844,"length":6}
|
||||
>nameA2
|
||||
>:=> (line 64, col 16) to (line 64, col 22)
|
||||
64 >for ([numberA2, nameA2, skillA2] of [robotA, robotB]) {
|
||||
|
||||
~~~~~~~~~ => Pos: (1851 to 1859) SpanInfo: {"start":1852,"length":7}
|
||||
>skillA2
|
||||
>:=> (line 64, col 24) to (line 64, col 31)
|
||||
64 >for ([numberA2, nameA2, skillA2] of [robotA, robotB]) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (1860 to 1883) SpanInfo: {"start":1864,"length":16}
|
||||
>[robotA, robotB]
|
||||
>:=> (line 64, col 36) to (line 64, col 52)
|
||||
--------------------------------
|
||||
65 > console.log(nameA2);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (1884 to 1908) SpanInfo: {"start":1888,"length":19}
|
||||
>console.log(nameA2)
|
||||
>:=> (line 65, col 4) to (line 65, col 23)
|
||||
--------------------------------
|
||||
66 >}
|
||||
|
||||
~~ => Pos: (1909 to 1910) SpanInfo: {"start":1888,"length":19}
|
||||
>console.log(nameA2)
|
||||
>:=> (line 65, col 4) to (line 65, col 23)
|
||||
--------------------------------
|
||||
67 >for ([nameMA, [primarySkillA, secondarySkillA]] of multiRobots) {
|
||||
|
||||
~~~~~~~~~~~~~ => Pos: (1911 to 1923) SpanInfo: {"start":1917,"length":6}
|
||||
>nameMA
|
||||
>:=> (line 67, col 6) to (line 67, col 12)
|
||||
67 >for ([nameMA, [primarySkillA, secondarySkillA]] of multiRobots) {
|
||||
|
||||
~~~~~~~~~~~~~~~~ => Pos: (1924 to 1939) SpanInfo: {"start":1926,"length":13}
|
||||
>primarySkillA
|
||||
>:=> (line 67, col 15) to (line 67, col 28)
|
||||
67 >for ([nameMA, [primarySkillA, secondarySkillA]] of multiRobots) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~=> Pos: (1940 to 1956) SpanInfo: {"start":1941,"length":15}
|
||||
>secondarySkillA
|
||||
>:=> (line 67, col 30) to (line 67, col 45)
|
||||
67 >for ([nameMA, [primarySkillA, secondarySkillA]] of multiRobots) {
|
||||
|
||||
~=> Pos: (1957 to 1957) SpanInfo: {"start":1925,"length":32}
|
||||
>[primarySkillA, secondarySkillA]
|
||||
>:=> (line 67, col 14) to (line 67, col 46)
|
||||
67 >for ([nameMA, [primarySkillA, secondarySkillA]] of multiRobots) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~=> Pos: (1958 to 1976) SpanInfo: {"start":1962,"length":11}
|
||||
>multiRobots
|
||||
>:=> (line 67, col 51) to (line 67, col 62)
|
||||
--------------------------------
|
||||
68 > console.log(nameMA);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (1977 to 2001) SpanInfo: {"start":1981,"length":19}
|
||||
>console.log(nameMA)
|
||||
>:=> (line 68, col 4) to (line 68, col 23)
|
||||
--------------------------------
|
||||
69 >}
|
||||
|
||||
~~ => Pos: (2002 to 2003) SpanInfo: {"start":1981,"length":19}
|
||||
>console.log(nameMA)
|
||||
>:=> (line 68, col 4) to (line 68, col 23)
|
||||
--------------------------------
|
||||
70 >for ([nameMA, [primarySkillA, secondarySkillA]] of getMultiRobots()) {
|
||||
|
||||
~~~~~~~~~~~~~ => Pos: (2004 to 2016) SpanInfo: {"start":2010,"length":6}
|
||||
>nameMA
|
||||
>:=> (line 70, col 6) to (line 70, col 12)
|
||||
70 >for ([nameMA, [primarySkillA, secondarySkillA]] of getMultiRobots()) {
|
||||
|
||||
~~~~~~~~~~~~~~~~ => Pos: (2017 to 2032) SpanInfo: {"start":2019,"length":13}
|
||||
>primarySkillA
|
||||
>:=> (line 70, col 15) to (line 70, col 28)
|
||||
70 >for ([nameMA, [primarySkillA, secondarySkillA]] of getMultiRobots()) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~=> Pos: (2033 to 2049) SpanInfo: {"start":2034,"length":15}
|
||||
>secondarySkillA
|
||||
>:=> (line 70, col 30) to (line 70, col 45)
|
||||
70 >for ([nameMA, [primarySkillA, secondarySkillA]] of getMultiRobots()) {
|
||||
|
||||
~=> Pos: (2050 to 2050) SpanInfo: {"start":2018,"length":32}
|
||||
>[primarySkillA, secondarySkillA]
|
||||
>:=> (line 70, col 14) to (line 70, col 46)
|
||||
70 >for ([nameMA, [primarySkillA, secondarySkillA]] of getMultiRobots()) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (2051 to 2074) SpanInfo: {"start":2055,"length":16}
|
||||
>getMultiRobots()
|
||||
>:=> (line 70, col 51) to (line 70, col 67)
|
||||
--------------------------------
|
||||
71 > console.log(nameMA);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (2075 to 2099) SpanInfo: {"start":2079,"length":19}
|
||||
>console.log(nameMA)
|
||||
>:=> (line 71, col 4) to (line 71, col 23)
|
||||
--------------------------------
|
||||
72 >}
|
||||
|
||||
~~ => Pos: (2100 to 2101) SpanInfo: {"start":2079,"length":19}
|
||||
>console.log(nameMA)
|
||||
>:=> (line 71, col 4) to (line 71, col 23)
|
||||
--------------------------------
|
||||
73 >for ([nameMA, [primarySkillA, secondarySkillA]] of [multiRobotA, multiRobotB]) {
|
||||
|
||||
~~~~~~~~~~~~~ => Pos: (2102 to 2114) SpanInfo: {"start":2108,"length":6}
|
||||
>nameMA
|
||||
>:=> (line 73, col 6) to (line 73, col 12)
|
||||
73 >for ([nameMA, [primarySkillA, secondarySkillA]] of [multiRobotA, multiRobotB]) {
|
||||
|
||||
~~~~~~~~~~~~~~~~ => Pos: (2115 to 2130) SpanInfo: {"start":2117,"length":13}
|
||||
>primarySkillA
|
||||
>:=> (line 73, col 15) to (line 73, col 28)
|
||||
73 >for ([nameMA, [primarySkillA, secondarySkillA]] of [multiRobotA, multiRobotB]) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~=> Pos: (2131 to 2147) SpanInfo: {"start":2132,"length":15}
|
||||
>secondarySkillA
|
||||
>:=> (line 73, col 30) to (line 73, col 45)
|
||||
73 >for ([nameMA, [primarySkillA, secondarySkillA]] of [multiRobotA, multiRobotB]) {
|
||||
|
||||
~=> Pos: (2148 to 2148) SpanInfo: {"start":2116,"length":32}
|
||||
>[primarySkillA, secondarySkillA]
|
||||
>:=> (line 73, col 14) to (line 73, col 46)
|
||||
73 >for ([nameMA, [primarySkillA, secondarySkillA]] of [multiRobotA, multiRobotB]) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (2149 to 2182) SpanInfo: {"start":2153,"length":26}
|
||||
>[multiRobotA, multiRobotB]
|
||||
>:=> (line 73, col 51) to (line 73, col 77)
|
||||
--------------------------------
|
||||
74 > console.log(nameMA);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (2183 to 2207) SpanInfo: {"start":2187,"length":19}
|
||||
>console.log(nameMA)
|
||||
>:=> (line 74, col 4) to (line 74, col 23)
|
||||
--------------------------------
|
||||
75 >}
|
||||
|
||||
~~ => Pos: (2208 to 2209) SpanInfo: {"start":2187,"length":19}
|
||||
>console.log(nameMA)
|
||||
>:=> (line 74, col 4) to (line 74, col 23)
|
||||
--------------------------------
|
||||
76 >for ([numberA3, ...robotAInfo] of robots) {
|
||||
|
||||
~~~~~~~~~~~~~~~ => Pos: (2210 to 2224) SpanInfo: {"start":2216,"length":8}
|
||||
>numberA3
|
||||
>:=> (line 76, col 6) to (line 76, col 14)
|
||||
76 >for ([numberA3, ...robotAInfo] of robots) {
|
||||
|
||||
~~~~~~~~~~~~~~~ => Pos: (2225 to 2239) SpanInfo: {"start":2226,"length":13}
|
||||
>...robotAInfo
|
||||
>:=> (line 76, col 16) to (line 76, col 29)
|
||||
76 >for ([numberA3, ...robotAInfo] of robots) {
|
||||
|
||||
~~~~~~~~~~~~~~ => Pos: (2240 to 2253) SpanInfo: {"start":2244,"length":6}
|
||||
>robots
|
||||
>:=> (line 76, col 34) to (line 76, col 40)
|
||||
--------------------------------
|
||||
77 > console.log(numberA3);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (2254 to 2280) SpanInfo: {"start":2258,"length":21}
|
||||
>console.log(numberA3)
|
||||
>:=> (line 77, col 4) to (line 77, col 25)
|
||||
--------------------------------
|
||||
78 >}
|
||||
|
||||
~~ => Pos: (2281 to 2282) SpanInfo: {"start":2258,"length":21}
|
||||
>console.log(numberA3)
|
||||
>:=> (line 77, col 4) to (line 77, col 25)
|
||||
--------------------------------
|
||||
79 >for ([numberA3, ...robotAInfo] of getRobots()) {
|
||||
|
||||
~~~~~~~~~~~~~~~ => Pos: (2283 to 2297) SpanInfo: {"start":2289,"length":8}
|
||||
>numberA3
|
||||
>:=> (line 79, col 6) to (line 79, col 14)
|
||||
79 >for ([numberA3, ...robotAInfo] of getRobots()) {
|
||||
|
||||
~~~~~~~~~~~~~~~ => Pos: (2298 to 2312) SpanInfo: {"start":2299,"length":13}
|
||||
>...robotAInfo
|
||||
>:=> (line 79, col 16) to (line 79, col 29)
|
||||
79 >for ([numberA3, ...robotAInfo] of getRobots()) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~=> Pos: (2313 to 2331) SpanInfo: {"start":2317,"length":11}
|
||||
>getRobots()
|
||||
>:=> (line 79, col 34) to (line 79, col 45)
|
||||
--------------------------------
|
||||
80 > console.log(numberA3);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (2332 to 2358) SpanInfo: {"start":2336,"length":21}
|
||||
>console.log(numberA3)
|
||||
>:=> (line 80, col 4) to (line 80, col 25)
|
||||
--------------------------------
|
||||
81 >}
|
||||
|
||||
~~ => Pos: (2359 to 2360) SpanInfo: {"start":2336,"length":21}
|
||||
>console.log(numberA3)
|
||||
>:=> (line 80, col 4) to (line 80, col 25)
|
||||
--------------------------------
|
||||
82 >for ([numberA3, ...robotAInfo] of [robotA, robotB]) {
|
||||
|
||||
~~~~~~~~~~~~~~~ => Pos: (2361 to 2375) SpanInfo: {"start":2367,"length":8}
|
||||
>numberA3
|
||||
>:=> (line 82, col 6) to (line 82, col 14)
|
||||
82 >for ([numberA3, ...robotAInfo] of [robotA, robotB]) {
|
||||
|
||||
~~~~~~~~~~~~~~~ => Pos: (2376 to 2390) SpanInfo: {"start":2377,"length":13}
|
||||
>...robotAInfo
|
||||
>:=> (line 82, col 16) to (line 82, col 29)
|
||||
82 >for ([numberA3, ...robotAInfo] of [robotA, robotB]) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (2391 to 2414) SpanInfo: {"start":2395,"length":16}
|
||||
>[robotA, robotB]
|
||||
>:=> (line 82, col 34) to (line 82, col 50)
|
||||
--------------------------------
|
||||
83 > console.log(numberA3);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (2415 to 2441) SpanInfo: {"start":2419,"length":21}
|
||||
>console.log(numberA3)
|
||||
>:=> (line 83, col 4) to (line 83, col 25)
|
||||
--------------------------------
|
||||
84 >}
|
||||
|
||||
~~ => Pos: (2442 to 2443) SpanInfo: {"start":2419,"length":21}
|
||||
>console.log(numberA3)
|
||||
>:=> (line 83, col 4) to (line 83, col 25)
|
||||
--------------------------------
|
||||
85 >for ([...multiRobotAInfo] of multiRobots) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (2444 to 2468) SpanInfo: {"start":2450,"length":18}
|
||||
>...multiRobotAInfo
|
||||
>:=> (line 85, col 6) to (line 85, col 24)
|
||||
85 >for ([...multiRobotAInfo] of multiRobots) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~ => Pos: (2469 to 2487) SpanInfo: {"start":2473,"length":11}
|
||||
>multiRobots
|
||||
>:=> (line 85, col 29) to (line 85, col 40)
|
||||
--------------------------------
|
||||
86 > console.log(multiRobotAInfo);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (2488 to 2521) SpanInfo: {"start":2492,"length":28}
|
||||
>console.log(multiRobotAInfo)
|
||||
>:=> (line 86, col 4) to (line 86, col 32)
|
||||
--------------------------------
|
||||
87 >}
|
||||
|
||||
~~ => Pos: (2522 to 2523) SpanInfo: {"start":2492,"length":28}
|
||||
>console.log(multiRobotAInfo)
|
||||
>:=> (line 86, col 4) to (line 86, col 32)
|
||||
--------------------------------
|
||||
88 >for ([...multiRobotAInfo] of getMultiRobots()) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (2524 to 2548) SpanInfo: {"start":2530,"length":18}
|
||||
>...multiRobotAInfo
|
||||
>:=> (line 88, col 6) to (line 88, col 24)
|
||||
88 >for ([...multiRobotAInfo] of getMultiRobots()) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (2549 to 2572) SpanInfo: {"start":2553,"length":16}
|
||||
>getMultiRobots()
|
||||
>:=> (line 88, col 29) to (line 88, col 45)
|
||||
--------------------------------
|
||||
89 > console.log(multiRobotAInfo);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (2573 to 2606) SpanInfo: {"start":2577,"length":28}
|
||||
>console.log(multiRobotAInfo)
|
||||
>:=> (line 89, col 4) to (line 89, col 32)
|
||||
--------------------------------
|
||||
90 >}
|
||||
|
||||
~~ => Pos: (2607 to 2608) SpanInfo: {"start":2577,"length":28}
|
||||
>console.log(multiRobotAInfo)
|
||||
>:=> (line 89, col 4) to (line 89, col 32)
|
||||
--------------------------------
|
||||
91 >for ([...multiRobotAInfo] of [multiRobotA, multiRobotB]) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (2609 to 2633) SpanInfo: {"start":2615,"length":18}
|
||||
>...multiRobotAInfo
|
||||
>:=> (line 91, col 6) to (line 91, col 24)
|
||||
91 >for ([...multiRobotAInfo] of [multiRobotA, multiRobotB]) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (2634 to 2667) SpanInfo: {"start":2638,"length":26}
|
||||
>[multiRobotA, multiRobotB]
|
||||
>:=> (line 91, col 29) to (line 91, col 55)
|
||||
--------------------------------
|
||||
92 > console.log(multiRobotAInfo);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (2668 to 2701) SpanInfo: {"start":2672,"length":28}
|
||||
>console.log(multiRobotAInfo)
|
||||
>:=> (line 92, col 4) to (line 92, col 32)
|
||||
--------------------------------
|
||||
93 >}
|
||||
~ => Pos: (2702 to 2702) SpanInfo: {"start":2672,"length":28}
|
||||
>console.log(multiRobotAInfo)
|
||||
>:=> (line 92, col 4) to (line 92, col 32)
|
||||
+806
@@ -0,0 +1,806 @@
|
||||
|
||||
1 >declare var console: {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (0 to 22) SpanInfo: undefined
|
||||
--------------------------------
|
||||
2 > log(msg: any): void;
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (23 to 47) SpanInfo: undefined
|
||||
--------------------------------
|
||||
3 >}
|
||||
|
||||
~~ => Pos: (48 to 49) SpanInfo: undefined
|
||||
--------------------------------
|
||||
4 >type Robot = [number, string, string];
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (50 to 88) SpanInfo: undefined
|
||||
--------------------------------
|
||||
5 >type MultiSkilledRobot = [string, [string, string]];
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (89 to 141) SpanInfo: undefined
|
||||
--------------------------------
|
||||
6 >let robotA: Robot = [1, "mower", "mowing"];
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (142 to 185) SpanInfo: {"start":142,"length":42}
|
||||
>let robotA: Robot = [1, "mower", "mowing"]
|
||||
>:=> (line 6, col 0) to (line 6, col 42)
|
||||
--------------------------------
|
||||
7 >let robotB: Robot = [2, "trimmer", "trimming"];
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (186 to 233) SpanInfo: {"start":186,"length":46}
|
||||
>let robotB: Robot = [2, "trimmer", "trimming"]
|
||||
>:=> (line 7, col 0) to (line 7, col 46)
|
||||
--------------------------------
|
||||
8 >let robots = [robotA, robotB];
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (234 to 264) SpanInfo: {"start":234,"length":29}
|
||||
>let robots = [robotA, robotB]
|
||||
>:=> (line 8, col 0) to (line 8, col 29)
|
||||
--------------------------------
|
||||
9 >function getRobots() {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (265 to 287) SpanInfo: {"start":292,"length":13}
|
||||
>return robots
|
||||
>:=> (line 10, col 4) to (line 10, col 17)
|
||||
--------------------------------
|
||||
10 > return robots;
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~ => Pos: (288 to 306) SpanInfo: {"start":292,"length":13}
|
||||
>return robots
|
||||
>:=> (line 10, col 4) to (line 10, col 17)
|
||||
--------------------------------
|
||||
11 >}
|
||||
|
||||
~~ => Pos: (307 to 308) SpanInfo: {"start":307,"length":1}
|
||||
>}
|
||||
>:=> (line 11, col 0) to (line 11, col 1)
|
||||
--------------------------------
|
||||
12 >let multiRobotA: MultiSkilledRobot = ["mower", ["mowing", ""]];
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (309 to 372) SpanInfo: {"start":309,"length":62}
|
||||
>let multiRobotA: MultiSkilledRobot = ["mower", ["mowing", ""]]
|
||||
>:=> (line 12, col 0) to (line 12, col 62)
|
||||
--------------------------------
|
||||
13 >let multiRobotB: MultiSkilledRobot = ["trimmer", ["trimming", "edging"]];
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (373 to 446) SpanInfo: {"start":373,"length":72}
|
||||
>let multiRobotB: MultiSkilledRobot = ["trimmer", ["trimming", "edging"]]
|
||||
>:=> (line 13, col 0) to (line 13, col 72)
|
||||
--------------------------------
|
||||
14 >let multiRobots = [multiRobotA, multiRobotB];
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (447 to 492) SpanInfo: {"start":447,"length":44}
|
||||
>let multiRobots = [multiRobotA, multiRobotB]
|
||||
>:=> (line 14, col 0) to (line 14, col 44)
|
||||
--------------------------------
|
||||
15 >function getMultiRobots() {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (493 to 520) SpanInfo: {"start":525,"length":18}
|
||||
>return multiRobots
|
||||
>:=> (line 16, col 4) to (line 16, col 22)
|
||||
--------------------------------
|
||||
16 > return multiRobots;
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (521 to 544) SpanInfo: {"start":525,"length":18}
|
||||
>return multiRobots
|
||||
>:=> (line 16, col 4) to (line 16, col 22)
|
||||
--------------------------------
|
||||
17 >}
|
||||
|
||||
~~ => Pos: (545 to 546) SpanInfo: {"start":545,"length":1}
|
||||
>}
|
||||
>:=> (line 17, col 0) to (line 17, col 1)
|
||||
--------------------------------
|
||||
18 >let nameA: string, primarySkillA: string, secondarySkillA: string;
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (547 to 613) SpanInfo: undefined
|
||||
--------------------------------
|
||||
19 >let numberB: number, nameB: string;
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (614 to 649) SpanInfo: undefined
|
||||
--------------------------------
|
||||
20 >let numberA2: number, nameA2: string, skillA2: string, nameMA: string;
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (650 to 720) SpanInfo: undefined
|
||||
--------------------------------
|
||||
21 >let numberA3: number, robotAInfo: (number | string)[], multiRobotAInfo: (string | [string, string])[];
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (721 to 823) SpanInfo: undefined
|
||||
--------------------------------
|
||||
22 >for ([, nameA = "noName"] of robots) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (824 to 848) SpanInfo: {"start":832,"length":16}
|
||||
>nameA = "noName"
|
||||
>:=> (line 22, col 8) to (line 22, col 24)
|
||||
22 >for ([, nameA = "noName"] of robots) {
|
||||
|
||||
~~~~~~~~~~~~~~ => Pos: (849 to 862) SpanInfo: {"start":853,"length":6}
|
||||
>robots
|
||||
>:=> (line 22, col 29) to (line 22, col 35)
|
||||
--------------------------------
|
||||
23 > console.log(nameA);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (863 to 886) SpanInfo: {"start":867,"length":18}
|
||||
>console.log(nameA)
|
||||
>:=> (line 23, col 4) to (line 23, col 22)
|
||||
--------------------------------
|
||||
24 >}
|
||||
|
||||
~~ => Pos: (887 to 888) SpanInfo: {"start":867,"length":18}
|
||||
>console.log(nameA)
|
||||
>:=> (line 23, col 4) to (line 23, col 22)
|
||||
--------------------------------
|
||||
25 >for ([, nameA = "noName"] of getRobots()) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (889 to 913) SpanInfo: {"start":897,"length":16}
|
||||
>nameA = "noName"
|
||||
>:=> (line 25, col 8) to (line 25, col 24)
|
||||
25 >for ([, nameA = "noName"] of getRobots()) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~ => Pos: (914 to 932) SpanInfo: {"start":918,"length":11}
|
||||
>getRobots()
|
||||
>:=> (line 25, col 29) to (line 25, col 40)
|
||||
--------------------------------
|
||||
26 > console.log(nameA);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (933 to 956) SpanInfo: {"start":937,"length":18}
|
||||
>console.log(nameA)
|
||||
>:=> (line 26, col 4) to (line 26, col 22)
|
||||
--------------------------------
|
||||
27 >}
|
||||
|
||||
~~ => Pos: (957 to 958) SpanInfo: {"start":937,"length":18}
|
||||
>console.log(nameA)
|
||||
>:=> (line 26, col 4) to (line 26, col 22)
|
||||
--------------------------------
|
||||
28 >for ([, nameA = "noName"] of [robotA, robotB]) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (959 to 983) SpanInfo: {"start":967,"length":16}
|
||||
>nameA = "noName"
|
||||
>:=> (line 28, col 8) to (line 28, col 24)
|
||||
28 >for ([, nameA = "noName"] of [robotA, robotB]) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (984 to 1007) SpanInfo: {"start":988,"length":16}
|
||||
>[robotA, robotB]
|
||||
>:=> (line 28, col 29) to (line 28, col 45)
|
||||
--------------------------------
|
||||
29 > console.log(nameA);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (1008 to 1031) SpanInfo: {"start":1012,"length":18}
|
||||
>console.log(nameA)
|
||||
>:=> (line 29, col 4) to (line 29, col 22)
|
||||
--------------------------------
|
||||
30 >}
|
||||
|
||||
~~ => Pos: (1032 to 1033) SpanInfo: {"start":1012,"length":18}
|
||||
>console.log(nameA)
|
||||
>:=> (line 29, col 4) to (line 29, col 22)
|
||||
--------------------------------
|
||||
31 >for ([, [
|
||||
|
||||
~~~~~~~~~~ => Pos: (1034 to 1043) SpanInfo: {"start":1048,"length":25}
|
||||
>primarySkillA = "primary"
|
||||
>:=> (line 32, col 4) to (line 32, col 29)
|
||||
--------------------------------
|
||||
32 > primarySkillA = "primary",
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (1044 to 1074) SpanInfo: {"start":1048,"length":25}
|
||||
>primarySkillA = "primary"
|
||||
>:=> (line 32, col 4) to (line 32, col 29)
|
||||
--------------------------------
|
||||
33 > secondarySkillA = "secondary"
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (1075 to 1108) SpanInfo: {"start":1079,"length":29}
|
||||
>secondarySkillA = "secondary"
|
||||
>:=> (line 33, col 4) to (line 33, col 33)
|
||||
--------------------------------
|
||||
34 >] = ["skill1", "skill2"]] of multiRobots) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (1109 to 1132) SpanInfo: {"start":1079,"length":29}
|
||||
>secondarySkillA = "secondary"
|
||||
>:=> (line 33, col 4) to (line 33, col 33)
|
||||
34 >] = ["skill1", "skill2"]] of multiRobots) {
|
||||
|
||||
~ => Pos: (1133 to 1133) SpanInfo: {"start":1042,"length":91}
|
||||
>[
|
||||
> primarySkillA = "primary",
|
||||
> secondarySkillA = "secondary"
|
||||
>] = ["skill1", "skill2"]
|
||||
>:=> (line 31, col 8) to (line 34, col 24)
|
||||
34 >] = ["skill1", "skill2"]] of multiRobots) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~ => Pos: (1134 to 1152) SpanInfo: {"start":1138,"length":11}
|
||||
>multiRobots
|
||||
>:=> (line 34, col 29) to (line 34, col 40)
|
||||
--------------------------------
|
||||
35 > console.log(primarySkillA);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (1153 to 1184) SpanInfo: {"start":1157,"length":26}
|
||||
>console.log(primarySkillA)
|
||||
>:=> (line 35, col 4) to (line 35, col 30)
|
||||
--------------------------------
|
||||
36 >}
|
||||
|
||||
~~ => Pos: (1185 to 1186) SpanInfo: {"start":1157,"length":26}
|
||||
>console.log(primarySkillA)
|
||||
>:=> (line 35, col 4) to (line 35, col 30)
|
||||
--------------------------------
|
||||
37 >for ([, [
|
||||
|
||||
~~~~~~~~~~ => Pos: (1187 to 1196) SpanInfo: {"start":1201,"length":25}
|
||||
>primarySkillA = "primary"
|
||||
>:=> (line 38, col 4) to (line 38, col 29)
|
||||
--------------------------------
|
||||
38 > primarySkillA = "primary",
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (1197 to 1227) SpanInfo: {"start":1201,"length":25}
|
||||
>primarySkillA = "primary"
|
||||
>:=> (line 38, col 4) to (line 38, col 29)
|
||||
--------------------------------
|
||||
39 > secondarySkillA = "secondary"
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (1228 to 1261) SpanInfo: {"start":1232,"length":29}
|
||||
>secondarySkillA = "secondary"
|
||||
>:=> (line 39, col 4) to (line 39, col 33)
|
||||
--------------------------------
|
||||
40 >] = ["skill1", "skill2"]] of getMultiRobots()) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (1262 to 1285) SpanInfo: {"start":1232,"length":29}
|
||||
>secondarySkillA = "secondary"
|
||||
>:=> (line 39, col 4) to (line 39, col 33)
|
||||
40 >] = ["skill1", "skill2"]] of getMultiRobots()) {
|
||||
|
||||
~ => Pos: (1286 to 1286) SpanInfo: {"start":1195,"length":91}
|
||||
>[
|
||||
> primarySkillA = "primary",
|
||||
> secondarySkillA = "secondary"
|
||||
>] = ["skill1", "skill2"]
|
||||
>:=> (line 37, col 8) to (line 40, col 24)
|
||||
40 >] = ["skill1", "skill2"]] of getMultiRobots()) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (1287 to 1310) SpanInfo: {"start":1291,"length":16}
|
||||
>getMultiRobots()
|
||||
>:=> (line 40, col 29) to (line 40, col 45)
|
||||
--------------------------------
|
||||
41 > console.log(primarySkillA);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (1311 to 1342) SpanInfo: {"start":1315,"length":26}
|
||||
>console.log(primarySkillA)
|
||||
>:=> (line 41, col 4) to (line 41, col 30)
|
||||
--------------------------------
|
||||
42 >}
|
||||
|
||||
~~ => Pos: (1343 to 1344) SpanInfo: {"start":1315,"length":26}
|
||||
>console.log(primarySkillA)
|
||||
>:=> (line 41, col 4) to (line 41, col 30)
|
||||
--------------------------------
|
||||
43 >for ([, [
|
||||
|
||||
~~~~~~~~~~ => Pos: (1345 to 1354) SpanInfo: {"start":1359,"length":25}
|
||||
>primarySkillA = "primary"
|
||||
>:=> (line 44, col 4) to (line 44, col 29)
|
||||
--------------------------------
|
||||
44 > primarySkillA = "primary",
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (1355 to 1385) SpanInfo: {"start":1359,"length":25}
|
||||
>primarySkillA = "primary"
|
||||
>:=> (line 44, col 4) to (line 44, col 29)
|
||||
--------------------------------
|
||||
45 > secondarySkillA = "secondary"
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (1386 to 1419) SpanInfo: {"start":1390,"length":29}
|
||||
>secondarySkillA = "secondary"
|
||||
>:=> (line 45, col 4) to (line 45, col 33)
|
||||
--------------------------------
|
||||
46 >] = ["skill1", "skill2"]] of [multiRobotA, multiRobotB]) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (1420 to 1443) SpanInfo: {"start":1390,"length":29}
|
||||
>secondarySkillA = "secondary"
|
||||
>:=> (line 45, col 4) to (line 45, col 33)
|
||||
46 >] = ["skill1", "skill2"]] of [multiRobotA, multiRobotB]) {
|
||||
|
||||
~ => Pos: (1444 to 1444) SpanInfo: {"start":1353,"length":91}
|
||||
>[
|
||||
> primarySkillA = "primary",
|
||||
> secondarySkillA = "secondary"
|
||||
>] = ["skill1", "skill2"]
|
||||
>:=> (line 43, col 8) to (line 46, col 24)
|
||||
46 >] = ["skill1", "skill2"]] of [multiRobotA, multiRobotB]) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (1445 to 1478) SpanInfo: {"start":1449,"length":26}
|
||||
>[multiRobotA, multiRobotB]
|
||||
>:=> (line 46, col 29) to (line 46, col 55)
|
||||
--------------------------------
|
||||
47 > console.log(primarySkillA);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (1479 to 1510) SpanInfo: {"start":1483,"length":26}
|
||||
>console.log(primarySkillA)
|
||||
>:=> (line 47, col 4) to (line 47, col 30)
|
||||
--------------------------------
|
||||
48 >}
|
||||
|
||||
~~ => Pos: (1511 to 1512) SpanInfo: {"start":1483,"length":26}
|
||||
>console.log(primarySkillA)
|
||||
>:=> (line 47, col 4) to (line 47, col 30)
|
||||
--------------------------------
|
||||
49 >for ([numberB = -1] of robots) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~ => Pos: (1513 to 1531) SpanInfo: {"start":1519,"length":12}
|
||||
>numberB = -1
|
||||
>:=> (line 49, col 6) to (line 49, col 18)
|
||||
49 >for ([numberB = -1] of robots) {
|
||||
|
||||
~~~~~~~~~~~~~~ => Pos: (1532 to 1545) SpanInfo: {"start":1536,"length":6}
|
||||
>robots
|
||||
>:=> (line 49, col 23) to (line 49, col 29)
|
||||
--------------------------------
|
||||
50 > console.log(numberB);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (1546 to 1571) SpanInfo: {"start":1550,"length":20}
|
||||
>console.log(numberB)
|
||||
>:=> (line 50, col 4) to (line 50, col 24)
|
||||
--------------------------------
|
||||
51 >}
|
||||
|
||||
~~ => Pos: (1572 to 1573) SpanInfo: {"start":1550,"length":20}
|
||||
>console.log(numberB)
|
||||
>:=> (line 50, col 4) to (line 50, col 24)
|
||||
--------------------------------
|
||||
52 >for ([numberB = -1] of getRobots()) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~ => Pos: (1574 to 1592) SpanInfo: {"start":1580,"length":12}
|
||||
>numberB = -1
|
||||
>:=> (line 52, col 6) to (line 52, col 18)
|
||||
52 >for ([numberB = -1] of getRobots()) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~ => Pos: (1593 to 1611) SpanInfo: {"start":1597,"length":11}
|
||||
>getRobots()
|
||||
>:=> (line 52, col 23) to (line 52, col 34)
|
||||
--------------------------------
|
||||
53 > console.log(numberB);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (1612 to 1637) SpanInfo: {"start":1616,"length":20}
|
||||
>console.log(numberB)
|
||||
>:=> (line 53, col 4) to (line 53, col 24)
|
||||
--------------------------------
|
||||
54 >}
|
||||
|
||||
~~ => Pos: (1638 to 1639) SpanInfo: {"start":1616,"length":20}
|
||||
>console.log(numberB)
|
||||
>:=> (line 53, col 4) to (line 53, col 24)
|
||||
--------------------------------
|
||||
55 >for ([numberB = -1] of [robotA, robotB]) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~ => Pos: (1640 to 1658) SpanInfo: {"start":1646,"length":12}
|
||||
>numberB = -1
|
||||
>:=> (line 55, col 6) to (line 55, col 18)
|
||||
55 >for ([numberB = -1] of [robotA, robotB]) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (1659 to 1682) SpanInfo: {"start":1663,"length":16}
|
||||
>[robotA, robotB]
|
||||
>:=> (line 55, col 23) to (line 55, col 39)
|
||||
--------------------------------
|
||||
56 > console.log(numberB);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (1683 to 1708) SpanInfo: {"start":1687,"length":20}
|
||||
>console.log(numberB)
|
||||
>:=> (line 56, col 4) to (line 56, col 24)
|
||||
--------------------------------
|
||||
57 >}
|
||||
|
||||
~~ => Pos: (1709 to 1710) SpanInfo: {"start":1687,"length":20}
|
||||
>console.log(numberB)
|
||||
>:=> (line 56, col 4) to (line 56, col 24)
|
||||
--------------------------------
|
||||
58 >for ([nameB = "noName"] of multiRobots) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (1711 to 1733) SpanInfo: {"start":1717,"length":16}
|
||||
>nameB = "noName"
|
||||
>:=> (line 58, col 6) to (line 58, col 22)
|
||||
58 >for ([nameB = "noName"] of multiRobots) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~ => Pos: (1734 to 1752) SpanInfo: {"start":1738,"length":11}
|
||||
>multiRobots
|
||||
>:=> (line 58, col 27) to (line 58, col 38)
|
||||
--------------------------------
|
||||
59 > console.log(nameB);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (1753 to 1776) SpanInfo: {"start":1757,"length":18}
|
||||
>console.log(nameB)
|
||||
>:=> (line 59, col 4) to (line 59, col 22)
|
||||
--------------------------------
|
||||
60 >}
|
||||
|
||||
~~ => Pos: (1777 to 1778) SpanInfo: {"start":1757,"length":18}
|
||||
>console.log(nameB)
|
||||
>:=> (line 59, col 4) to (line 59, col 22)
|
||||
--------------------------------
|
||||
61 >for ([nameB = "noName"] of getMultiRobots()) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (1779 to 1801) SpanInfo: {"start":1785,"length":16}
|
||||
>nameB = "noName"
|
||||
>:=> (line 61, col 6) to (line 61, col 22)
|
||||
61 >for ([nameB = "noName"] of getMultiRobots()) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (1802 to 1825) SpanInfo: {"start":1806,"length":16}
|
||||
>getMultiRobots()
|
||||
>:=> (line 61, col 27) to (line 61, col 43)
|
||||
--------------------------------
|
||||
62 > console.log(nameB);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (1826 to 1849) SpanInfo: {"start":1830,"length":18}
|
||||
>console.log(nameB)
|
||||
>:=> (line 62, col 4) to (line 62, col 22)
|
||||
--------------------------------
|
||||
63 >}
|
||||
|
||||
~~ => Pos: (1850 to 1851) SpanInfo: {"start":1830,"length":18}
|
||||
>console.log(nameB)
|
||||
>:=> (line 62, col 4) to (line 62, col 22)
|
||||
--------------------------------
|
||||
64 >for ([nameB = "noName"] of [multiRobotA, multiRobotB]) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (1852 to 1874) SpanInfo: {"start":1858,"length":16}
|
||||
>nameB = "noName"
|
||||
>:=> (line 64, col 6) to (line 64, col 22)
|
||||
64 >for ([nameB = "noName"] of [multiRobotA, multiRobotB]) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (1875 to 1908) SpanInfo: {"start":1879,"length":26}
|
||||
>[multiRobotA, multiRobotB]
|
||||
>:=> (line 64, col 27) to (line 64, col 53)
|
||||
--------------------------------
|
||||
65 > console.log(nameB);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (1909 to 1932) SpanInfo: {"start":1913,"length":18}
|
||||
>console.log(nameB)
|
||||
>:=> (line 65, col 4) to (line 65, col 22)
|
||||
--------------------------------
|
||||
66 >}
|
||||
|
||||
~~ => Pos: (1933 to 1934) SpanInfo: {"start":1913,"length":18}
|
||||
>console.log(nameB)
|
||||
>:=> (line 65, col 4) to (line 65, col 22)
|
||||
--------------------------------
|
||||
67 >for ([numberA2 = -1, nameA2 = "noName", skillA2 = "skill"] of robots) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~ => Pos: (1935 to 1954) SpanInfo: {"start":1941,"length":13}
|
||||
>numberA2 = -1
|
||||
>:=> (line 67, col 6) to (line 67, col 19)
|
||||
67 >for ([numberA2 = -1, nameA2 = "noName", skillA2 = "skill"] of robots) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~ => Pos: (1955 to 1973) SpanInfo: {"start":1956,"length":17}
|
||||
>nameA2 = "noName"
|
||||
>:=> (line 67, col 21) to (line 67, col 38)
|
||||
67 >for ([numberA2 = -1, nameA2 = "noName", skillA2 = "skill"] of robots) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~=> Pos: (1974 to 1992) SpanInfo: {"start":1975,"length":17}
|
||||
>skillA2 = "skill"
|
||||
>:=> (line 67, col 40) to (line 67, col 57)
|
||||
67 >for ([numberA2 = -1, nameA2 = "noName", skillA2 = "skill"] of robots) {
|
||||
|
||||
~~~~~~~~~~~~~~=> Pos: (1993 to 2006) SpanInfo: {"start":1997,"length":6}
|
||||
>robots
|
||||
>:=> (line 67, col 62) to (line 67, col 68)
|
||||
--------------------------------
|
||||
68 > console.log(nameA2);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (2007 to 2031) SpanInfo: {"start":2011,"length":19}
|
||||
>console.log(nameA2)
|
||||
>:=> (line 68, col 4) to (line 68, col 23)
|
||||
--------------------------------
|
||||
69 >}
|
||||
|
||||
~~ => Pos: (2032 to 2033) SpanInfo: {"start":2011,"length":19}
|
||||
>console.log(nameA2)
|
||||
>:=> (line 68, col 4) to (line 68, col 23)
|
||||
--------------------------------
|
||||
70 >for ([numberA2 = -1, nameA2 = "noName", skillA2 = "skill"] of getRobots()) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~ => Pos: (2034 to 2053) SpanInfo: {"start":2040,"length":13}
|
||||
>numberA2 = -1
|
||||
>:=> (line 70, col 6) to (line 70, col 19)
|
||||
70 >for ([numberA2 = -1, nameA2 = "noName", skillA2 = "skill"] of getRobots()) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~ => Pos: (2054 to 2072) SpanInfo: {"start":2055,"length":17}
|
||||
>nameA2 = "noName"
|
||||
>:=> (line 70, col 21) to (line 70, col 38)
|
||||
70 >for ([numberA2 = -1, nameA2 = "noName", skillA2 = "skill"] of getRobots()) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~=> Pos: (2073 to 2091) SpanInfo: {"start":2074,"length":17}
|
||||
>skillA2 = "skill"
|
||||
>:=> (line 70, col 40) to (line 70, col 57)
|
||||
70 >for ([numberA2 = -1, nameA2 = "noName", skillA2 = "skill"] of getRobots()) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~=> Pos: (2092 to 2110) SpanInfo: {"start":2096,"length":11}
|
||||
>getRobots()
|
||||
>:=> (line 70, col 62) to (line 70, col 73)
|
||||
--------------------------------
|
||||
71 > console.log(nameA2);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (2111 to 2135) SpanInfo: {"start":2115,"length":19}
|
||||
>console.log(nameA2)
|
||||
>:=> (line 71, col 4) to (line 71, col 23)
|
||||
--------------------------------
|
||||
72 >}
|
||||
|
||||
~~ => Pos: (2136 to 2137) SpanInfo: {"start":2115,"length":19}
|
||||
>console.log(nameA2)
|
||||
>:=> (line 71, col 4) to (line 71, col 23)
|
||||
--------------------------------
|
||||
73 >for ([numberA2 = -1, nameA2 = "noName", skillA2 = "skill"] of [robotA, robotB]) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~ => Pos: (2138 to 2157) SpanInfo: {"start":2144,"length":13}
|
||||
>numberA2 = -1
|
||||
>:=> (line 73, col 6) to (line 73, col 19)
|
||||
73 >for ([numberA2 = -1, nameA2 = "noName", skillA2 = "skill"] of [robotA, robotB]) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~ => Pos: (2158 to 2176) SpanInfo: {"start":2159,"length":17}
|
||||
>nameA2 = "noName"
|
||||
>:=> (line 73, col 21) to (line 73, col 38)
|
||||
73 >for ([numberA2 = -1, nameA2 = "noName", skillA2 = "skill"] of [robotA, robotB]) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~=> Pos: (2177 to 2195) SpanInfo: {"start":2178,"length":17}
|
||||
>skillA2 = "skill"
|
||||
>:=> (line 73, col 40) to (line 73, col 57)
|
||||
73 >for ([numberA2 = -1, nameA2 = "noName", skillA2 = "skill"] of [robotA, robotB]) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (2196 to 2219) SpanInfo: {"start":2200,"length":16}
|
||||
>[robotA, robotB]
|
||||
>:=> (line 73, col 62) to (line 73, col 78)
|
||||
--------------------------------
|
||||
74 > console.log(nameA2);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (2220 to 2244) SpanInfo: {"start":2224,"length":19}
|
||||
>console.log(nameA2)
|
||||
>:=> (line 74, col 4) to (line 74, col 23)
|
||||
--------------------------------
|
||||
75 >}
|
||||
|
||||
~~ => Pos: (2245 to 2246) SpanInfo: {"start":2224,"length":19}
|
||||
>console.log(nameA2)
|
||||
>:=> (line 74, col 4) to (line 74, col 23)
|
||||
--------------------------------
|
||||
76 >for ([nameMA = "noName", [
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (2247 to 2270) SpanInfo: {"start":2253,"length":17}
|
||||
>nameMA = "noName"
|
||||
>:=> (line 76, col 6) to (line 76, col 23)
|
||||
76 >for ([nameMA = "noName", [
|
||||
|
||||
~~~ => Pos: (2271 to 2273) SpanInfo: {"start":2278,"length":25}
|
||||
>primarySkillA = "primary"
|
||||
>:=> (line 77, col 4) to (line 77, col 29)
|
||||
--------------------------------
|
||||
77 > primarySkillA = "primary",
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (2274 to 2304) SpanInfo: {"start":2278,"length":25}
|
||||
>primarySkillA = "primary"
|
||||
>:=> (line 77, col 4) to (line 77, col 29)
|
||||
--------------------------------
|
||||
78 > secondarySkillA = "secondary"
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (2305 to 2338) SpanInfo: {"start":2309,"length":29}
|
||||
>secondarySkillA = "secondary"
|
||||
>:=> (line 78, col 4) to (line 78, col 33)
|
||||
--------------------------------
|
||||
79 >] = ["skill1", "skill2"]] of multiRobots) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (2339 to 2362) SpanInfo: {"start":2309,"length":29}
|
||||
>secondarySkillA = "secondary"
|
||||
>:=> (line 78, col 4) to (line 78, col 33)
|
||||
79 >] = ["skill1", "skill2"]] of multiRobots) {
|
||||
|
||||
~ => Pos: (2363 to 2363) SpanInfo: {"start":2272,"length":91}
|
||||
>[
|
||||
> primarySkillA = "primary",
|
||||
> secondarySkillA = "secondary"
|
||||
>] = ["skill1", "skill2"]
|
||||
>:=> (line 76, col 25) to (line 79, col 24)
|
||||
79 >] = ["skill1", "skill2"]] of multiRobots) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~ => Pos: (2364 to 2382) SpanInfo: {"start":2368,"length":11}
|
||||
>multiRobots
|
||||
>:=> (line 79, col 29) to (line 79, col 40)
|
||||
--------------------------------
|
||||
80 > console.log(nameMA);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (2383 to 2407) SpanInfo: {"start":2387,"length":19}
|
||||
>console.log(nameMA)
|
||||
>:=> (line 80, col 4) to (line 80, col 23)
|
||||
--------------------------------
|
||||
81 >}
|
||||
|
||||
~~ => Pos: (2408 to 2409) SpanInfo: {"start":2387,"length":19}
|
||||
>console.log(nameMA)
|
||||
>:=> (line 80, col 4) to (line 80, col 23)
|
||||
--------------------------------
|
||||
82 >for ([nameMA = "noName", [
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (2410 to 2433) SpanInfo: {"start":2416,"length":17}
|
||||
>nameMA = "noName"
|
||||
>:=> (line 82, col 6) to (line 82, col 23)
|
||||
82 >for ([nameMA = "noName", [
|
||||
|
||||
~~~ => Pos: (2434 to 2436) SpanInfo: {"start":2441,"length":25}
|
||||
>primarySkillA = "primary"
|
||||
>:=> (line 83, col 4) to (line 83, col 29)
|
||||
--------------------------------
|
||||
83 > primarySkillA = "primary",
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (2437 to 2467) SpanInfo: {"start":2441,"length":25}
|
||||
>primarySkillA = "primary"
|
||||
>:=> (line 83, col 4) to (line 83, col 29)
|
||||
--------------------------------
|
||||
84 > secondarySkillA = "secondary"
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (2468 to 2501) SpanInfo: {"start":2472,"length":29}
|
||||
>secondarySkillA = "secondary"
|
||||
>:=> (line 84, col 4) to (line 84, col 33)
|
||||
--------------------------------
|
||||
85 >] = ["skill1", "skill2"]] of getMultiRobots()) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (2502 to 2525) SpanInfo: {"start":2472,"length":29}
|
||||
>secondarySkillA = "secondary"
|
||||
>:=> (line 84, col 4) to (line 84, col 33)
|
||||
85 >] = ["skill1", "skill2"]] of getMultiRobots()) {
|
||||
|
||||
~ => Pos: (2526 to 2526) SpanInfo: {"start":2435,"length":91}
|
||||
>[
|
||||
> primarySkillA = "primary",
|
||||
> secondarySkillA = "secondary"
|
||||
>] = ["skill1", "skill2"]
|
||||
>:=> (line 82, col 25) to (line 85, col 24)
|
||||
85 >] = ["skill1", "skill2"]] of getMultiRobots()) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (2527 to 2550) SpanInfo: {"start":2531,"length":16}
|
||||
>getMultiRobots()
|
||||
>:=> (line 85, col 29) to (line 85, col 45)
|
||||
--------------------------------
|
||||
86 > console.log(nameMA);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (2551 to 2575) SpanInfo: {"start":2555,"length":19}
|
||||
>console.log(nameMA)
|
||||
>:=> (line 86, col 4) to (line 86, col 23)
|
||||
--------------------------------
|
||||
87 >}
|
||||
|
||||
~~ => Pos: (2576 to 2577) SpanInfo: {"start":2555,"length":19}
|
||||
>console.log(nameMA)
|
||||
>:=> (line 86, col 4) to (line 86, col 23)
|
||||
--------------------------------
|
||||
88 >for ([nameMA = "noName", [
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (2578 to 2601) SpanInfo: {"start":2584,"length":17}
|
||||
>nameMA = "noName"
|
||||
>:=> (line 88, col 6) to (line 88, col 23)
|
||||
88 >for ([nameMA = "noName", [
|
||||
|
||||
~~~ => Pos: (2602 to 2604) SpanInfo: {"start":2609,"length":25}
|
||||
>primarySkillA = "primary"
|
||||
>:=> (line 89, col 4) to (line 89, col 29)
|
||||
--------------------------------
|
||||
89 > primarySkillA = "primary",
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (2605 to 2635) SpanInfo: {"start":2609,"length":25}
|
||||
>primarySkillA = "primary"
|
||||
>:=> (line 89, col 4) to (line 89, col 29)
|
||||
--------------------------------
|
||||
90 > secondarySkillA = "secondary"
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (2636 to 2669) SpanInfo: {"start":2640,"length":29}
|
||||
>secondarySkillA = "secondary"
|
||||
>:=> (line 90, col 4) to (line 90, col 33)
|
||||
--------------------------------
|
||||
91 >] = ["skill1", "skill2"]] of [multiRobotA, multiRobotB]) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (2670 to 2693) SpanInfo: {"start":2640,"length":29}
|
||||
>secondarySkillA = "secondary"
|
||||
>:=> (line 90, col 4) to (line 90, col 33)
|
||||
91 >] = ["skill1", "skill2"]] of [multiRobotA, multiRobotB]) {
|
||||
|
||||
~ => Pos: (2694 to 2694) SpanInfo: {"start":2603,"length":91}
|
||||
>[
|
||||
> primarySkillA = "primary",
|
||||
> secondarySkillA = "secondary"
|
||||
>] = ["skill1", "skill2"]
|
||||
>:=> (line 88, col 25) to (line 91, col 24)
|
||||
91 >] = ["skill1", "skill2"]] of [multiRobotA, multiRobotB]) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (2695 to 2728) SpanInfo: {"start":2699,"length":26}
|
||||
>[multiRobotA, multiRobotB]
|
||||
>:=> (line 91, col 29) to (line 91, col 55)
|
||||
--------------------------------
|
||||
92 > console.log(nameMA);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (2729 to 2753) SpanInfo: {"start":2733,"length":19}
|
||||
>console.log(nameMA)
|
||||
>:=> (line 92, col 4) to (line 92, col 23)
|
||||
--------------------------------
|
||||
93 >}
|
||||
|
||||
~~ => Pos: (2754 to 2755) SpanInfo: {"start":2733,"length":19}
|
||||
>console.log(nameMA)
|
||||
>:=> (line 92, col 4) to (line 92, col 23)
|
||||
--------------------------------
|
||||
94 >for ([numberA3 = -1, ...robotAInfo] of robots) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~ => Pos: (2756 to 2775) SpanInfo: {"start":2762,"length":13}
|
||||
>numberA3 = -1
|
||||
>:=> (line 94, col 6) to (line 94, col 19)
|
||||
94 >for ([numberA3 = -1, ...robotAInfo] of robots) {
|
||||
|
||||
~~~~~~~~~~~~~~~ => Pos: (2776 to 2790) SpanInfo: {"start":2777,"length":13}
|
||||
>...robotAInfo
|
||||
>:=> (line 94, col 21) to (line 94, col 34)
|
||||
94 >for ([numberA3 = -1, ...robotAInfo] of robots) {
|
||||
|
||||
~~~~~~~~~~~~~~=> Pos: (2791 to 2804) SpanInfo: {"start":2795,"length":6}
|
||||
>robots
|
||||
>:=> (line 94, col 39) to (line 94, col 45)
|
||||
--------------------------------
|
||||
95 > console.log(numberA3);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (2805 to 2831) SpanInfo: {"start":2809,"length":21}
|
||||
>console.log(numberA3)
|
||||
>:=> (line 95, col 4) to (line 95, col 25)
|
||||
--------------------------------
|
||||
96 >}
|
||||
|
||||
~~ => Pos: (2832 to 2833) SpanInfo: {"start":2809,"length":21}
|
||||
>console.log(numberA3)
|
||||
>:=> (line 95, col 4) to (line 95, col 25)
|
||||
--------------------------------
|
||||
97 >for ([numberA3 = -1, ...robotAInfo] of getRobots()) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~ => Pos: (2834 to 2853) SpanInfo: {"start":2840,"length":13}
|
||||
>numberA3 = -1
|
||||
>:=> (line 97, col 6) to (line 97, col 19)
|
||||
97 >for ([numberA3 = -1, ...robotAInfo] of getRobots()) {
|
||||
|
||||
~~~~~~~~~~~~~~~ => Pos: (2854 to 2868) SpanInfo: {"start":2855,"length":13}
|
||||
>...robotAInfo
|
||||
>:=> (line 97, col 21) to (line 97, col 34)
|
||||
97 >for ([numberA3 = -1, ...robotAInfo] of getRobots()) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~=> Pos: (2869 to 2887) SpanInfo: {"start":2873,"length":11}
|
||||
>getRobots()
|
||||
>:=> (line 97, col 39) to (line 97, col 50)
|
||||
--------------------------------
|
||||
98 > console.log(numberA3);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (2888 to 2914) SpanInfo: {"start":2892,"length":21}
|
||||
>console.log(numberA3)
|
||||
>:=> (line 98, col 4) to (line 98, col 25)
|
||||
--------------------------------
|
||||
99 >}
|
||||
|
||||
~~ => Pos: (2915 to 2916) SpanInfo: {"start":2892,"length":21}
|
||||
>console.log(numberA3)
|
||||
>:=> (line 98, col 4) to (line 98, col 25)
|
||||
--------------------------------
|
||||
100>for ([numberA3 = -1, ...robotAInfo] of [robotA, robotB]) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~ => Pos: (2917 to 2936) SpanInfo: {"start":2923,"length":13}
|
||||
>numberA3 = -1
|
||||
>:=> (line 100, col 6) to (line 100, col 19)
|
||||
100>for ([numberA3 = -1, ...robotAInfo] of [robotA, robotB]) {
|
||||
|
||||
~~~~~~~~~~~~~~~ => Pos: (2937 to 2951) SpanInfo: {"start":2938,"length":13}
|
||||
>...robotAInfo
|
||||
>:=> (line 100, col 21) to (line 100, col 34)
|
||||
100>for ([numberA3 = -1, ...robotAInfo] of [robotA, robotB]) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (2952 to 2975) SpanInfo: {"start":2956,"length":16}
|
||||
>[robotA, robotB]
|
||||
>:=> (line 100, col 39) to (line 100, col 55)
|
||||
--------------------------------
|
||||
101> console.log(numberA3);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (2976 to 3002) SpanInfo: {"start":2980,"length":21}
|
||||
>console.log(numberA3)
|
||||
>:=> (line 101, col 4) to (line 101, col 25)
|
||||
--------------------------------
|
||||
102>}
|
||||
~ => Pos: (3003 to 3003) SpanInfo: {"start":2980,"length":21}
|
||||
>console.log(numberA3)
|
||||
>:=> (line 101, col 4) to (line 101, col 25)
|
||||
+943
@@ -0,0 +1,943 @@
|
||||
|
||||
1 >declare var console: {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (0 to 22) SpanInfo: undefined
|
||||
--------------------------------
|
||||
2 > log(msg: any): void;
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (23 to 47) SpanInfo: undefined
|
||||
--------------------------------
|
||||
3 >}
|
||||
|
||||
~~ => Pos: (48 to 49) SpanInfo: undefined
|
||||
--------------------------------
|
||||
4 >interface Robot {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~ => Pos: (50 to 67) SpanInfo: undefined
|
||||
--------------------------------
|
||||
5 > name: string;
|
||||
|
||||
~~~~~~~~~~~~~~~~~~ => Pos: (68 to 85) SpanInfo: undefined
|
||||
--------------------------------
|
||||
6 > skill: string;
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~ => Pos: (86 to 104) SpanInfo: undefined
|
||||
--------------------------------
|
||||
7 >}
|
||||
|
||||
~~ => Pos: (105 to 106) SpanInfo: undefined
|
||||
--------------------------------
|
||||
8 >interface MultiRobot {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (107 to 129) SpanInfo: undefined
|
||||
--------------------------------
|
||||
9 > name: string;
|
||||
|
||||
~~~~~~~~~~~~~~~~~~ => Pos: (130 to 147) SpanInfo: undefined
|
||||
--------------------------------
|
||||
10 > skills: {
|
||||
|
||||
~~~~~~~~~~~~~~ => Pos: (148 to 161) SpanInfo: undefined
|
||||
--------------------------------
|
||||
11 > primary: string;
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (162 to 186) SpanInfo: undefined
|
||||
--------------------------------
|
||||
12 > secondary: string;
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (187 to 213) SpanInfo: undefined
|
||||
--------------------------------
|
||||
13 > };
|
||||
|
||||
~~~~~~~ => Pos: (214 to 220) SpanInfo: undefined
|
||||
--------------------------------
|
||||
14 >}
|
||||
|
||||
~~ => Pos: (221 to 222) SpanInfo: undefined
|
||||
--------------------------------
|
||||
15 >let robots: Robot[] = [{ name: "mower", skill: "mowing" }, { name: "trimmer", skill: "trimming" }];
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (223 to 322) SpanInfo: {"start":223,"length":98}
|
||||
>let robots: Robot[] = [{ name: "mower", skill: "mowing" }, { name: "trimmer", skill: "trimming" }]
|
||||
>:=> (line 15, col 0) to (line 15, col 98)
|
||||
--------------------------------
|
||||
16 >let multiRobots: MultiRobot[] = [{ name: "mower", skills: { primary: "mowing", secondary: "none" } },
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (323 to 424) SpanInfo: {"start":323,"length":180}
|
||||
>let multiRobots: MultiRobot[] = [{ name: "mower", skills: { primary: "mowing", secondary: "none" } },
|
||||
> { name: "trimmer", skills: { primary: "trimming", secondary: "edging" } }]
|
||||
>:=> (line 16, col 0) to (line 17, col 78)
|
||||
--------------------------------
|
||||
17 > { name: "trimmer", skills: { primary: "trimming", secondary: "edging" } }];
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (425 to 504) SpanInfo: {"start":323,"length":180}
|
||||
>let multiRobots: MultiRobot[] = [{ name: "mower", skills: { primary: "mowing", secondary: "none" } },
|
||||
> { name: "trimmer", skills: { primary: "trimming", secondary: "edging" } }]
|
||||
>:=> (line 16, col 0) to (line 17, col 78)
|
||||
--------------------------------
|
||||
18 >function getRobots() {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (505 to 527) SpanInfo: {"start":532,"length":13}
|
||||
>return robots
|
||||
>:=> (line 19, col 4) to (line 19, col 17)
|
||||
--------------------------------
|
||||
19 > return robots;
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~ => Pos: (528 to 546) SpanInfo: {"start":532,"length":13}
|
||||
>return robots
|
||||
>:=> (line 19, col 4) to (line 19, col 17)
|
||||
--------------------------------
|
||||
20 >}
|
||||
|
||||
~~ => Pos: (547 to 548) SpanInfo: {"start":547,"length":1}
|
||||
>}
|
||||
>:=> (line 20, col 0) to (line 20, col 1)
|
||||
--------------------------------
|
||||
21 >function getMultiRobots() {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (549 to 576) SpanInfo: {"start":581,"length":18}
|
||||
>return multiRobots
|
||||
>:=> (line 22, col 4) to (line 22, col 22)
|
||||
--------------------------------
|
||||
22 > return multiRobots;
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (577 to 600) SpanInfo: {"start":581,"length":18}
|
||||
>return multiRobots
|
||||
>:=> (line 22, col 4) to (line 22, col 22)
|
||||
--------------------------------
|
||||
23 >}
|
||||
|
||||
~~ => Pos: (601 to 602) SpanInfo: {"start":601,"length":1}
|
||||
>}
|
||||
>:=> (line 23, col 0) to (line 23, col 1)
|
||||
--------------------------------
|
||||
24 >let nameA: string, primaryA: string, secondaryA: string, i: number, skillA: string;
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (603 to 686) SpanInfo: undefined
|
||||
--------------------------------
|
||||
25 >let name: string, primary: string, secondary: string, skill: string;
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (687 to 755) SpanInfo: undefined
|
||||
--------------------------------
|
||||
26 >for ({name: nameA } of robots) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~ => Pos: (756 to 774) SpanInfo: {"start":762,"length":11}
|
||||
>name: nameA
|
||||
>:=> (line 26, col 6) to (line 26, col 17)
|
||||
26 >for ({name: nameA } of robots) {
|
||||
|
||||
~~~~~~~~~~~~~~ => Pos: (775 to 788) SpanInfo: {"start":779,"length":6}
|
||||
>robots
|
||||
>:=> (line 26, col 23) to (line 26, col 29)
|
||||
--------------------------------
|
||||
27 > console.log(nameA);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (789 to 812) SpanInfo: {"start":793,"length":18}
|
||||
>console.log(nameA)
|
||||
>:=> (line 27, col 4) to (line 27, col 22)
|
||||
--------------------------------
|
||||
28 >}
|
||||
|
||||
~~ => Pos: (813 to 814) SpanInfo: {"start":793,"length":18}
|
||||
>console.log(nameA)
|
||||
>:=> (line 27, col 4) to (line 27, col 22)
|
||||
--------------------------------
|
||||
29 >for ({name: nameA } of getRobots()) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~ => Pos: (815 to 833) SpanInfo: {"start":821,"length":11}
|
||||
>name: nameA
|
||||
>:=> (line 29, col 6) to (line 29, col 17)
|
||||
29 >for ({name: nameA } of getRobots()) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~ => Pos: (834 to 852) SpanInfo: {"start":838,"length":11}
|
||||
>getRobots()
|
||||
>:=> (line 29, col 23) to (line 29, col 34)
|
||||
--------------------------------
|
||||
30 > console.log(nameA);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (853 to 876) SpanInfo: {"start":857,"length":18}
|
||||
>console.log(nameA)
|
||||
>:=> (line 30, col 4) to (line 30, col 22)
|
||||
--------------------------------
|
||||
31 >}
|
||||
|
||||
~~ => Pos: (877 to 878) SpanInfo: {"start":857,"length":18}
|
||||
>console.log(nameA)
|
||||
>:=> (line 30, col 4) to (line 30, col 22)
|
||||
--------------------------------
|
||||
32 >for ({name: nameA } of [{ name: "mower", skill: "mowing" }, { name: "trimmer", skill: "trimming" }]) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~ => Pos: (879 to 897) SpanInfo: {"start":885,"length":11}
|
||||
>name: nameA
|
||||
>:=> (line 32, col 6) to (line 32, col 17)
|
||||
32 >for ({name: nameA } of [{ name: "mower", skill: "mowing" }, { name: "trimmer", skill: "trimming" }]) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (898 to 981) SpanInfo: {"start":902,"length":76}
|
||||
>[{ name: "mower", skill: "mowing" }, { name: "trimmer", skill: "trimming" }]
|
||||
>:=> (line 32, col 23) to (line 32, col 99)
|
||||
--------------------------------
|
||||
33 > console.log(nameA);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (982 to 1005) SpanInfo: {"start":986,"length":18}
|
||||
>console.log(nameA)
|
||||
>:=> (line 33, col 4) to (line 33, col 22)
|
||||
--------------------------------
|
||||
34 >}
|
||||
|
||||
~~ => Pos: (1006 to 1007) SpanInfo: {"start":986,"length":18}
|
||||
>console.log(nameA)
|
||||
>:=> (line 33, col 4) to (line 33, col 22)
|
||||
--------------------------------
|
||||
35 >for ({ skills: { primary: primaryA, secondary: secondaryA } } of multiRobots) {
|
||||
|
||||
~~~~~~~~~~~~~~ => Pos: (1008 to 1021) SpanInfo: {"start":1015,"length":52}
|
||||
>skills: { primary: primaryA, secondary: secondaryA }
|
||||
>:=> (line 35, col 7) to (line 35, col 59)
|
||||
35 >for ({ skills: { primary: primaryA, secondary: secondaryA } } of multiRobots) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~ => Pos: (1022 to 1042) SpanInfo: {"start":1025,"length":17}
|
||||
>primary: primaryA
|
||||
>:=> (line 35, col 17) to (line 35, col 34)
|
||||
35 >for ({ skills: { primary: primaryA, secondary: secondaryA } } of multiRobots) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (1043 to 1066) SpanInfo: {"start":1044,"length":21}
|
||||
>secondary: secondaryA
|
||||
>:=> (line 35, col 36) to (line 35, col 57)
|
||||
35 >for ({ skills: { primary: primaryA, secondary: secondaryA } } of multiRobots) {
|
||||
|
||||
~~=> Pos: (1067 to 1068) SpanInfo: {"start":1015,"length":52}
|
||||
>skills: { primary: primaryA, secondary: secondaryA }
|
||||
>:=> (line 35, col 7) to (line 35, col 59)
|
||||
35 >for ({ skills: { primary: primaryA, secondary: secondaryA } } of multiRobots) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~=> Pos: (1069 to 1087) SpanInfo: {"start":1073,"length":11}
|
||||
>multiRobots
|
||||
>:=> (line 35, col 65) to (line 35, col 76)
|
||||
--------------------------------
|
||||
36 > console.log(primaryA);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (1088 to 1114) SpanInfo: {"start":1092,"length":21}
|
||||
>console.log(primaryA)
|
||||
>:=> (line 36, col 4) to (line 36, col 25)
|
||||
--------------------------------
|
||||
37 >}
|
||||
|
||||
~~ => Pos: (1115 to 1116) SpanInfo: {"start":1092,"length":21}
|
||||
>console.log(primaryA)
|
||||
>:=> (line 36, col 4) to (line 36, col 25)
|
||||
--------------------------------
|
||||
38 >for ({ skills: { primary: primaryA, secondary: secondaryA } } of getMultiRobots()) {
|
||||
|
||||
~~~~~~~~~~~~~~ => Pos: (1117 to 1130) SpanInfo: {"start":1124,"length":52}
|
||||
>skills: { primary: primaryA, secondary: secondaryA }
|
||||
>:=> (line 38, col 7) to (line 38, col 59)
|
||||
38 >for ({ skills: { primary: primaryA, secondary: secondaryA } } of getMultiRobots()) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~ => Pos: (1131 to 1151) SpanInfo: {"start":1134,"length":17}
|
||||
>primary: primaryA
|
||||
>:=> (line 38, col 17) to (line 38, col 34)
|
||||
38 >for ({ skills: { primary: primaryA, secondary: secondaryA } } of getMultiRobots()) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (1152 to 1175) SpanInfo: {"start":1153,"length":21}
|
||||
>secondary: secondaryA
|
||||
>:=> (line 38, col 36) to (line 38, col 57)
|
||||
38 >for ({ skills: { primary: primaryA, secondary: secondaryA } } of getMultiRobots()) {
|
||||
|
||||
~~=> Pos: (1176 to 1177) SpanInfo: {"start":1124,"length":52}
|
||||
>skills: { primary: primaryA, secondary: secondaryA }
|
||||
>:=> (line 38, col 7) to (line 38, col 59)
|
||||
38 >for ({ skills: { primary: primaryA, secondary: secondaryA } } of getMultiRobots()) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (1178 to 1201) SpanInfo: {"start":1182,"length":16}
|
||||
>getMultiRobots()
|
||||
>:=> (line 38, col 65) to (line 38, col 81)
|
||||
--------------------------------
|
||||
39 > console.log(primaryA);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (1202 to 1228) SpanInfo: {"start":1206,"length":21}
|
||||
>console.log(primaryA)
|
||||
>:=> (line 39, col 4) to (line 39, col 25)
|
||||
--------------------------------
|
||||
40 >}
|
||||
|
||||
~~ => Pos: (1229 to 1230) SpanInfo: {"start":1206,"length":21}
|
||||
>console.log(primaryA)
|
||||
>:=> (line 39, col 4) to (line 39, col 25)
|
||||
--------------------------------
|
||||
41 >for ({ skills: { primary: primaryA, secondary: secondaryA } } of [{ name: "mower", skills: { primary: "mowing", secondary: "none" } },
|
||||
|
||||
~~~~~~~~~~~~~~ => Pos: (1231 to 1244) SpanInfo: {"start":1238,"length":52}
|
||||
>skills: { primary: primaryA, secondary: secondaryA }
|
||||
>:=> (line 41, col 7) to (line 41, col 59)
|
||||
41 >for ({ skills: { primary: primaryA, secondary: secondaryA } } of [{ name: "mower", skills: { primary: "mowing", secondary: "none" } },
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~ => Pos: (1245 to 1265) SpanInfo: {"start":1248,"length":17}
|
||||
>primary: primaryA
|
||||
>:=> (line 41, col 17) to (line 41, col 34)
|
||||
41 >for ({ skills: { primary: primaryA, secondary: secondaryA } } of [{ name: "mower", skills: { primary: "mowing", secondary: "none" } },
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (1266 to 1289) SpanInfo: {"start":1267,"length":21}
|
||||
>secondary: secondaryA
|
||||
>:=> (line 41, col 36) to (line 41, col 57)
|
||||
41 >for ({ skills: { primary: primaryA, secondary: secondaryA } } of [{ name: "mower", skills: { primary: "mowing", secondary: "none" } },
|
||||
|
||||
~~=> Pos: (1290 to 1291) SpanInfo: {"start":1238,"length":52}
|
||||
>skills: { primary: primaryA, secondary: secondaryA }
|
||||
>:=> (line 41, col 7) to (line 41, col 59)
|
||||
41 >for ({ skills: { primary: primaryA, secondary: secondaryA } } of [{ name: "mower", skills: { primary: "mowing", secondary: "none" } },
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (1292 to 1365) SpanInfo: {"start":1296,"length":148}
|
||||
>[{ name: "mower", skills: { primary: "mowing", secondary: "none" } },
|
||||
> { name: "trimmer", skills: { primary: "trimming", secondary: "edging" } }]
|
||||
>:=> (line 41, col 65) to (line 42, col 78)
|
||||
--------------------------------
|
||||
42 > { name: "trimmer", skills: { primary: "trimming", secondary: "edging" } }]) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (1366 to 1447) SpanInfo: {"start":1296,"length":148}
|
||||
>[{ name: "mower", skills: { primary: "mowing", secondary: "none" } },
|
||||
> { name: "trimmer", skills: { primary: "trimming", secondary: "edging" } }]
|
||||
>:=> (line 41, col 65) to (line 42, col 78)
|
||||
--------------------------------
|
||||
43 > console.log(primaryA);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (1448 to 1474) SpanInfo: {"start":1452,"length":21}
|
||||
>console.log(primaryA)
|
||||
>:=> (line 43, col 4) to (line 43, col 25)
|
||||
--------------------------------
|
||||
44 >}
|
||||
|
||||
~~ => Pos: (1475 to 1476) SpanInfo: {"start":1452,"length":21}
|
||||
>console.log(primaryA)
|
||||
>:=> (line 43, col 4) to (line 43, col 25)
|
||||
--------------------------------
|
||||
45 >for ({name } of robots) {
|
||||
|
||||
~~~~~~~~~~~~ => Pos: (1477 to 1488) SpanInfo: {"start":1483,"length":4}
|
||||
>name
|
||||
>:=> (line 45, col 6) to (line 45, col 10)
|
||||
45 >for ({name } of robots) {
|
||||
|
||||
~~~~~~~~~~~~~~ => Pos: (1489 to 1502) SpanInfo: {"start":1493,"length":6}
|
||||
>robots
|
||||
>:=> (line 45, col 16) to (line 45, col 22)
|
||||
--------------------------------
|
||||
46 > console.log(nameA);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (1503 to 1526) SpanInfo: {"start":1507,"length":18}
|
||||
>console.log(nameA)
|
||||
>:=> (line 46, col 4) to (line 46, col 22)
|
||||
--------------------------------
|
||||
47 >}
|
||||
|
||||
~~ => Pos: (1527 to 1528) SpanInfo: {"start":1507,"length":18}
|
||||
>console.log(nameA)
|
||||
>:=> (line 46, col 4) to (line 46, col 22)
|
||||
--------------------------------
|
||||
48 >for ({name } of getRobots()) {
|
||||
|
||||
~~~~~~~~~~~~ => Pos: (1529 to 1540) SpanInfo: {"start":1535,"length":4}
|
||||
>name
|
||||
>:=> (line 48, col 6) to (line 48, col 10)
|
||||
48 >for ({name } of getRobots()) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~ => Pos: (1541 to 1559) SpanInfo: {"start":1545,"length":11}
|
||||
>getRobots()
|
||||
>:=> (line 48, col 16) to (line 48, col 27)
|
||||
--------------------------------
|
||||
49 > console.log(nameA);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (1560 to 1583) SpanInfo: {"start":1564,"length":18}
|
||||
>console.log(nameA)
|
||||
>:=> (line 49, col 4) to (line 49, col 22)
|
||||
--------------------------------
|
||||
50 >}
|
||||
|
||||
~~ => Pos: (1584 to 1585) SpanInfo: {"start":1564,"length":18}
|
||||
>console.log(nameA)
|
||||
>:=> (line 49, col 4) to (line 49, col 22)
|
||||
--------------------------------
|
||||
51 >for ({name } of [{ name: "mower", skill: "mowing" }, { name: "trimmer", skill: "trimming" }]) {
|
||||
|
||||
~~~~~~~~~~~~ => Pos: (1586 to 1597) SpanInfo: {"start":1592,"length":4}
|
||||
>name
|
||||
>:=> (line 51, col 6) to (line 51, col 10)
|
||||
51 >for ({name } of [{ name: "mower", skill: "mowing" }, { name: "trimmer", skill: "trimming" }]) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (1598 to 1681) SpanInfo: {"start":1602,"length":76}
|
||||
>[{ name: "mower", skill: "mowing" }, { name: "trimmer", skill: "trimming" }]
|
||||
>:=> (line 51, col 16) to (line 51, col 92)
|
||||
--------------------------------
|
||||
52 > console.log(nameA);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (1682 to 1705) SpanInfo: {"start":1686,"length":18}
|
||||
>console.log(nameA)
|
||||
>:=> (line 52, col 4) to (line 52, col 22)
|
||||
--------------------------------
|
||||
53 >}
|
||||
|
||||
~~ => Pos: (1706 to 1707) SpanInfo: {"start":1686,"length":18}
|
||||
>console.log(nameA)
|
||||
>:=> (line 52, col 4) to (line 52, col 22)
|
||||
--------------------------------
|
||||
54 >for ({ skills: { primary, secondary } } of multiRobots) {
|
||||
|
||||
~~~~~~~~~~~~~~ => Pos: (1708 to 1721) SpanInfo: {"start":1715,"length":30}
|
||||
>skills: { primary, secondary }
|
||||
>:=> (line 54, col 7) to (line 54, col 37)
|
||||
54 >for ({ skills: { primary, secondary } } of multiRobots) {
|
||||
|
||||
~~~~~~~~~~~ => Pos: (1722 to 1732) SpanInfo: {"start":1725,"length":7}
|
||||
>primary
|
||||
>:=> (line 54, col 17) to (line 54, col 24)
|
||||
54 >for ({ skills: { primary, secondary } } of multiRobots) {
|
||||
|
||||
~~~~~~~~~~~~ => Pos: (1733 to 1744) SpanInfo: {"start":1734,"length":9}
|
||||
>secondary
|
||||
>:=> (line 54, col 26) to (line 54, col 35)
|
||||
54 >for ({ skills: { primary, secondary } } of multiRobots) {
|
||||
|
||||
~~ => Pos: (1745 to 1746) SpanInfo: {"start":1715,"length":30}
|
||||
>skills: { primary, secondary }
|
||||
>:=> (line 54, col 7) to (line 54, col 37)
|
||||
54 >for ({ skills: { primary, secondary } } of multiRobots) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~=> Pos: (1747 to 1765) SpanInfo: {"start":1751,"length":11}
|
||||
>multiRobots
|
||||
>:=> (line 54, col 43) to (line 54, col 54)
|
||||
--------------------------------
|
||||
55 > console.log(primaryA);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (1766 to 1792) SpanInfo: {"start":1770,"length":21}
|
||||
>console.log(primaryA)
|
||||
>:=> (line 55, col 4) to (line 55, col 25)
|
||||
--------------------------------
|
||||
56 >}
|
||||
|
||||
~~ => Pos: (1793 to 1794) SpanInfo: {"start":1770,"length":21}
|
||||
>console.log(primaryA)
|
||||
>:=> (line 55, col 4) to (line 55, col 25)
|
||||
--------------------------------
|
||||
57 >for ({ skills: { primary, secondary } } of getMultiRobots()) {
|
||||
|
||||
~~~~~~~~~~~~~~ => Pos: (1795 to 1808) SpanInfo: {"start":1802,"length":30}
|
||||
>skills: { primary, secondary }
|
||||
>:=> (line 57, col 7) to (line 57, col 37)
|
||||
57 >for ({ skills: { primary, secondary } } of getMultiRobots()) {
|
||||
|
||||
~~~~~~~~~~~ => Pos: (1809 to 1819) SpanInfo: {"start":1812,"length":7}
|
||||
>primary
|
||||
>:=> (line 57, col 17) to (line 57, col 24)
|
||||
57 >for ({ skills: { primary, secondary } } of getMultiRobots()) {
|
||||
|
||||
~~~~~~~~~~~~ => Pos: (1820 to 1831) SpanInfo: {"start":1821,"length":9}
|
||||
>secondary
|
||||
>:=> (line 57, col 26) to (line 57, col 35)
|
||||
57 >for ({ skills: { primary, secondary } } of getMultiRobots()) {
|
||||
|
||||
~~ => Pos: (1832 to 1833) SpanInfo: {"start":1802,"length":30}
|
||||
>skills: { primary, secondary }
|
||||
>:=> (line 57, col 7) to (line 57, col 37)
|
||||
57 >for ({ skills: { primary, secondary } } of getMultiRobots()) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (1834 to 1857) SpanInfo: {"start":1838,"length":16}
|
||||
>getMultiRobots()
|
||||
>:=> (line 57, col 43) to (line 57, col 59)
|
||||
--------------------------------
|
||||
58 > console.log(primaryA);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (1858 to 1884) SpanInfo: {"start":1862,"length":21}
|
||||
>console.log(primaryA)
|
||||
>:=> (line 58, col 4) to (line 58, col 25)
|
||||
--------------------------------
|
||||
59 >}
|
||||
|
||||
~~ => Pos: (1885 to 1886) SpanInfo: {"start":1862,"length":21}
|
||||
>console.log(primaryA)
|
||||
>:=> (line 58, col 4) to (line 58, col 25)
|
||||
--------------------------------
|
||||
60 >for ({ skills: { primary, secondary } } of [{ name: "mower", skills: { primary: "mowing", secondary: "none" } },
|
||||
|
||||
~~~~~~~~~~~~~~ => Pos: (1887 to 1900) SpanInfo: {"start":1894,"length":30}
|
||||
>skills: { primary, secondary }
|
||||
>:=> (line 60, col 7) to (line 60, col 37)
|
||||
60 >for ({ skills: { primary, secondary } } of [{ name: "mower", skills: { primary: "mowing", secondary: "none" } },
|
||||
|
||||
~~~~~~~~~~~ => Pos: (1901 to 1911) SpanInfo: {"start":1904,"length":7}
|
||||
>primary
|
||||
>:=> (line 60, col 17) to (line 60, col 24)
|
||||
60 >for ({ skills: { primary, secondary } } of [{ name: "mower", skills: { primary: "mowing", secondary: "none" } },
|
||||
|
||||
~~~~~~~~~~~~ => Pos: (1912 to 1923) SpanInfo: {"start":1913,"length":9}
|
||||
>secondary
|
||||
>:=> (line 60, col 26) to (line 60, col 35)
|
||||
60 >for ({ skills: { primary, secondary } } of [{ name: "mower", skills: { primary: "mowing", secondary: "none" } },
|
||||
|
||||
~~ => Pos: (1924 to 1925) SpanInfo: {"start":1894,"length":30}
|
||||
>skills: { primary, secondary }
|
||||
>:=> (line 60, col 7) to (line 60, col 37)
|
||||
60 >for ({ skills: { primary, secondary } } of [{ name: "mower", skills: { primary: "mowing", secondary: "none" } },
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (1926 to 1999) SpanInfo: {"start":1930,"length":148}
|
||||
>[{ name: "mower", skills: { primary: "mowing", secondary: "none" } },
|
||||
> { name: "trimmer", skills: { primary: "trimming", secondary: "edging" } }]
|
||||
>:=> (line 60, col 43) to (line 61, col 78)
|
||||
--------------------------------
|
||||
61 > { name: "trimmer", skills: { primary: "trimming", secondary: "edging" } }]) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (2000 to 2081) SpanInfo: {"start":1930,"length":148}
|
||||
>[{ name: "mower", skills: { primary: "mowing", secondary: "none" } },
|
||||
> { name: "trimmer", skills: { primary: "trimming", secondary: "edging" } }]
|
||||
>:=> (line 60, col 43) to (line 61, col 78)
|
||||
--------------------------------
|
||||
62 > console.log(primaryA);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (2082 to 2108) SpanInfo: {"start":2086,"length":21}
|
||||
>console.log(primaryA)
|
||||
>:=> (line 62, col 4) to (line 62, col 25)
|
||||
--------------------------------
|
||||
63 >}
|
||||
|
||||
~~ => Pos: (2109 to 2110) SpanInfo: {"start":2086,"length":21}
|
||||
>console.log(primaryA)
|
||||
>:=> (line 62, col 4) to (line 62, col 25)
|
||||
--------------------------------
|
||||
64 >for ({name: nameA, skill: skillA } of robots) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~ => Pos: (2111 to 2128) SpanInfo: {"start":2117,"length":11}
|
||||
>name: nameA
|
||||
>:=> (line 64, col 6) to (line 64, col 17)
|
||||
64 >for ({name: nameA, skill: skillA } of robots) {
|
||||
|
||||
~~~~~~~~~~~~~~~~ => Pos: (2129 to 2144) SpanInfo: {"start":2130,"length":13}
|
||||
>skill: skillA
|
||||
>:=> (line 64, col 19) to (line 64, col 32)
|
||||
64 >for ({name: nameA, skill: skillA } of robots) {
|
||||
|
||||
~~~~~~~~~~~~~~=> Pos: (2145 to 2158) SpanInfo: {"start":2149,"length":6}
|
||||
>robots
|
||||
>:=> (line 64, col 38) to (line 64, col 44)
|
||||
--------------------------------
|
||||
65 > console.log(nameA);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (2159 to 2182) SpanInfo: {"start":2163,"length":18}
|
||||
>console.log(nameA)
|
||||
>:=> (line 65, col 4) to (line 65, col 22)
|
||||
--------------------------------
|
||||
66 >}
|
||||
|
||||
~~ => Pos: (2183 to 2184) SpanInfo: {"start":2163,"length":18}
|
||||
>console.log(nameA)
|
||||
>:=> (line 65, col 4) to (line 65, col 22)
|
||||
--------------------------------
|
||||
67 >for ({name: nameA, skill: skillA } of getRobots()) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~ => Pos: (2185 to 2202) SpanInfo: {"start":2191,"length":11}
|
||||
>name: nameA
|
||||
>:=> (line 67, col 6) to (line 67, col 17)
|
||||
67 >for ({name: nameA, skill: skillA } of getRobots()) {
|
||||
|
||||
~~~~~~~~~~~~~~~~ => Pos: (2203 to 2218) SpanInfo: {"start":2204,"length":13}
|
||||
>skill: skillA
|
||||
>:=> (line 67, col 19) to (line 67, col 32)
|
||||
67 >for ({name: nameA, skill: skillA } of getRobots()) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~=> Pos: (2219 to 2237) SpanInfo: {"start":2223,"length":11}
|
||||
>getRobots()
|
||||
>:=> (line 67, col 38) to (line 67, col 49)
|
||||
--------------------------------
|
||||
68 > console.log(nameA);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (2238 to 2261) SpanInfo: {"start":2242,"length":18}
|
||||
>console.log(nameA)
|
||||
>:=> (line 68, col 4) to (line 68, col 22)
|
||||
--------------------------------
|
||||
69 >}
|
||||
|
||||
~~ => Pos: (2262 to 2263) SpanInfo: {"start":2242,"length":18}
|
||||
>console.log(nameA)
|
||||
>:=> (line 68, col 4) to (line 68, col 22)
|
||||
--------------------------------
|
||||
70 >for ({name: nameA, skill: skillA } of [{ name: "mower", skill: "mowing" }, { name: "trimmer", skill: "trimming" }]) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~ => Pos: (2264 to 2281) SpanInfo: {"start":2270,"length":11}
|
||||
>name: nameA
|
||||
>:=> (line 70, col 6) to (line 70, col 17)
|
||||
70 >for ({name: nameA, skill: skillA } of [{ name: "mower", skill: "mowing" }, { name: "trimmer", skill: "trimming" }]) {
|
||||
|
||||
~~~~~~~~~~~~~~~~ => Pos: (2282 to 2297) SpanInfo: {"start":2283,"length":13}
|
||||
>skill: skillA
|
||||
>:=> (line 70, col 19) to (line 70, col 32)
|
||||
70 >for ({name: nameA, skill: skillA } of [{ name: "mower", skill: "mowing" }, { name: "trimmer", skill: "trimming" }]) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (2298 to 2381) SpanInfo: {"start":2302,"length":76}
|
||||
>[{ name: "mower", skill: "mowing" }, { name: "trimmer", skill: "trimming" }]
|
||||
>:=> (line 70, col 38) to (line 70, col 114)
|
||||
--------------------------------
|
||||
71 > console.log(nameA);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (2382 to 2405) SpanInfo: {"start":2386,"length":18}
|
||||
>console.log(nameA)
|
||||
>:=> (line 71, col 4) to (line 71, col 22)
|
||||
--------------------------------
|
||||
72 >}
|
||||
|
||||
~~ => Pos: (2406 to 2407) SpanInfo: {"start":2386,"length":18}
|
||||
>console.log(nameA)
|
||||
>:=> (line 71, col 4) to (line 71, col 22)
|
||||
--------------------------------
|
||||
73 >for ({name: nameA, skills: { primary: primaryA, secondary: secondaryA } } of multiRobots) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~ => Pos: (2408 to 2425) SpanInfo: {"start":2414,"length":11}
|
||||
>name: nameA
|
||||
>:=> (line 73, col 6) to (line 73, col 17)
|
||||
73 >for ({name: nameA, skills: { primary: primaryA, secondary: secondaryA } } of multiRobots) {
|
||||
|
||||
~~~~~~~~ => Pos: (2426 to 2433) SpanInfo: {"start":2427,"length":52}
|
||||
>skills: { primary: primaryA, secondary: secondaryA }
|
||||
>:=> (line 73, col 19) to (line 73, col 71)
|
||||
73 >for ({name: nameA, skills: { primary: primaryA, secondary: secondaryA } } of multiRobots) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~=> Pos: (2434 to 2454) SpanInfo: {"start":2437,"length":17}
|
||||
>primary: primaryA
|
||||
>:=> (line 73, col 29) to (line 73, col 46)
|
||||
73 >for ({name: nameA, skills: { primary: primaryA, secondary: secondaryA } } of multiRobots) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (2455 to 2478) SpanInfo: {"start":2456,"length":21}
|
||||
>secondary: secondaryA
|
||||
>:=> (line 73, col 48) to (line 73, col 69)
|
||||
73 >for ({name: nameA, skills: { primary: primaryA, secondary: secondaryA } } of multiRobots) {
|
||||
|
||||
~~=> Pos: (2479 to 2480) SpanInfo: {"start":2427,"length":52}
|
||||
>skills: { primary: primaryA, secondary: secondaryA }
|
||||
>:=> (line 73, col 19) to (line 73, col 71)
|
||||
73 >for ({name: nameA, skills: { primary: primaryA, secondary: secondaryA } } of multiRobots) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~=> Pos: (2481 to 2499) SpanInfo: {"start":2485,"length":11}
|
||||
>multiRobots
|
||||
>:=> (line 73, col 77) to (line 73, col 88)
|
||||
--------------------------------
|
||||
74 > console.log(nameA);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (2500 to 2523) SpanInfo: {"start":2504,"length":18}
|
||||
>console.log(nameA)
|
||||
>:=> (line 74, col 4) to (line 74, col 22)
|
||||
--------------------------------
|
||||
75 >}
|
||||
|
||||
~~ => Pos: (2524 to 2525) SpanInfo: {"start":2504,"length":18}
|
||||
>console.log(nameA)
|
||||
>:=> (line 74, col 4) to (line 74, col 22)
|
||||
--------------------------------
|
||||
76 >for ({name: nameA, skills: { primary: primaryA, secondary: secondaryA } } of getMultiRobots()) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~ => Pos: (2526 to 2543) SpanInfo: {"start":2532,"length":11}
|
||||
>name: nameA
|
||||
>:=> (line 76, col 6) to (line 76, col 17)
|
||||
76 >for ({name: nameA, skills: { primary: primaryA, secondary: secondaryA } } of getMultiRobots()) {
|
||||
|
||||
~~~~~~~~ => Pos: (2544 to 2551) SpanInfo: {"start":2545,"length":52}
|
||||
>skills: { primary: primaryA, secondary: secondaryA }
|
||||
>:=> (line 76, col 19) to (line 76, col 71)
|
||||
76 >for ({name: nameA, skills: { primary: primaryA, secondary: secondaryA } } of getMultiRobots()) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~=> Pos: (2552 to 2572) SpanInfo: {"start":2555,"length":17}
|
||||
>primary: primaryA
|
||||
>:=> (line 76, col 29) to (line 76, col 46)
|
||||
76 >for ({name: nameA, skills: { primary: primaryA, secondary: secondaryA } } of getMultiRobots()) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (2573 to 2596) SpanInfo: {"start":2574,"length":21}
|
||||
>secondary: secondaryA
|
||||
>:=> (line 76, col 48) to (line 76, col 69)
|
||||
76 >for ({name: nameA, skills: { primary: primaryA, secondary: secondaryA } } of getMultiRobots()) {
|
||||
|
||||
~~=> Pos: (2597 to 2598) SpanInfo: {"start":2545,"length":52}
|
||||
>skills: { primary: primaryA, secondary: secondaryA }
|
||||
>:=> (line 76, col 19) to (line 76, col 71)
|
||||
76 >for ({name: nameA, skills: { primary: primaryA, secondary: secondaryA } } of getMultiRobots()) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (2599 to 2622) SpanInfo: {"start":2603,"length":16}
|
||||
>getMultiRobots()
|
||||
>:=> (line 76, col 77) to (line 76, col 93)
|
||||
--------------------------------
|
||||
77 > console.log(nameA);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (2623 to 2646) SpanInfo: {"start":2627,"length":18}
|
||||
>console.log(nameA)
|
||||
>:=> (line 77, col 4) to (line 77, col 22)
|
||||
--------------------------------
|
||||
78 >}
|
||||
|
||||
~~ => Pos: (2647 to 2648) SpanInfo: {"start":2627,"length":18}
|
||||
>console.log(nameA)
|
||||
>:=> (line 77, col 4) to (line 77, col 22)
|
||||
--------------------------------
|
||||
79 >for ({name: nameA, skills: { primary: primaryA, secondary: secondaryA } } of [{ name: "mower", skills: { primary: "mowing", secondary: "none" } },
|
||||
|
||||
~~~~~~~~~~~~~~~~~~ => Pos: (2649 to 2666) SpanInfo: {"start":2655,"length":11}
|
||||
>name: nameA
|
||||
>:=> (line 79, col 6) to (line 79, col 17)
|
||||
79 >for ({name: nameA, skills: { primary: primaryA, secondary: secondaryA } } of [{ name: "mower", skills: { primary: "mowing", secondary: "none" } },
|
||||
|
||||
~~~~~~~~ => Pos: (2667 to 2674) SpanInfo: {"start":2668,"length":52}
|
||||
>skills: { primary: primaryA, secondary: secondaryA }
|
||||
>:=> (line 79, col 19) to (line 79, col 71)
|
||||
79 >for ({name: nameA, skills: { primary: primaryA, secondary: secondaryA } } of [{ name: "mower", skills: { primary: "mowing", secondary: "none" } },
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~=> Pos: (2675 to 2695) SpanInfo: {"start":2678,"length":17}
|
||||
>primary: primaryA
|
||||
>:=> (line 79, col 29) to (line 79, col 46)
|
||||
79 >for ({name: nameA, skills: { primary: primaryA, secondary: secondaryA } } of [{ name: "mower", skills: { primary: "mowing", secondary: "none" } },
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (2696 to 2719) SpanInfo: {"start":2697,"length":21}
|
||||
>secondary: secondaryA
|
||||
>:=> (line 79, col 48) to (line 79, col 69)
|
||||
79 >for ({name: nameA, skills: { primary: primaryA, secondary: secondaryA } } of [{ name: "mower", skills: { primary: "mowing", secondary: "none" } },
|
||||
|
||||
~~=> Pos: (2720 to 2721) SpanInfo: {"start":2668,"length":52}
|
||||
>skills: { primary: primaryA, secondary: secondaryA }
|
||||
>:=> (line 79, col 19) to (line 79, col 71)
|
||||
79 >for ({name: nameA, skills: { primary: primaryA, secondary: secondaryA } } of [{ name: "mower", skills: { primary: "mowing", secondary: "none" } },
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (2722 to 2795) SpanInfo: {"start":2726,"length":148}
|
||||
>[{ name: "mower", skills: { primary: "mowing", secondary: "none" } },
|
||||
> { name: "trimmer", skills: { primary: "trimming", secondary: "edging" } }]
|
||||
>:=> (line 79, col 77) to (line 80, col 78)
|
||||
--------------------------------
|
||||
80 > { name: "trimmer", skills: { primary: "trimming", secondary: "edging" } }]) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (2796 to 2877) SpanInfo: {"start":2726,"length":148}
|
||||
>[{ name: "mower", skills: { primary: "mowing", secondary: "none" } },
|
||||
> { name: "trimmer", skills: { primary: "trimming", secondary: "edging" } }]
|
||||
>:=> (line 79, col 77) to (line 80, col 78)
|
||||
--------------------------------
|
||||
81 > console.log(nameA);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (2878 to 2901) SpanInfo: {"start":2882,"length":18}
|
||||
>console.log(nameA)
|
||||
>:=> (line 81, col 4) to (line 81, col 22)
|
||||
--------------------------------
|
||||
82 >}
|
||||
|
||||
~~ => Pos: (2902 to 2903) SpanInfo: {"start":2882,"length":18}
|
||||
>console.log(nameA)
|
||||
>:=> (line 81, col 4) to (line 81, col 22)
|
||||
--------------------------------
|
||||
83 >for ({name, skill } of robots) {
|
||||
|
||||
~~~~~~~~~~~ => Pos: (2904 to 2914) SpanInfo: {"start":2910,"length":4}
|
||||
>name
|
||||
>:=> (line 83, col 6) to (line 83, col 10)
|
||||
83 >for ({name, skill } of robots) {
|
||||
|
||||
~~~~~~~~ => Pos: (2915 to 2922) SpanInfo: {"start":2916,"length":5}
|
||||
>skill
|
||||
>:=> (line 83, col 12) to (line 83, col 17)
|
||||
83 >for ({name, skill } of robots) {
|
||||
|
||||
~~~~~~~~~~~~~~ => Pos: (2923 to 2936) SpanInfo: {"start":2927,"length":6}
|
||||
>robots
|
||||
>:=> (line 83, col 23) to (line 83, col 29)
|
||||
--------------------------------
|
||||
84 > console.log(nameA);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (2937 to 2960) SpanInfo: {"start":2941,"length":18}
|
||||
>console.log(nameA)
|
||||
>:=> (line 84, col 4) to (line 84, col 22)
|
||||
--------------------------------
|
||||
85 >}
|
||||
|
||||
~~ => Pos: (2961 to 2962) SpanInfo: {"start":2941,"length":18}
|
||||
>console.log(nameA)
|
||||
>:=> (line 84, col 4) to (line 84, col 22)
|
||||
--------------------------------
|
||||
86 >for ({name, skill } of getRobots()) {
|
||||
|
||||
~~~~~~~~~~~ => Pos: (2963 to 2973) SpanInfo: {"start":2969,"length":4}
|
||||
>name
|
||||
>:=> (line 86, col 6) to (line 86, col 10)
|
||||
86 >for ({name, skill } of getRobots()) {
|
||||
|
||||
~~~~~~~~ => Pos: (2974 to 2981) SpanInfo: {"start":2975,"length":5}
|
||||
>skill
|
||||
>:=> (line 86, col 12) to (line 86, col 17)
|
||||
86 >for ({name, skill } of getRobots()) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~ => Pos: (2982 to 3000) SpanInfo: {"start":2986,"length":11}
|
||||
>getRobots()
|
||||
>:=> (line 86, col 23) to (line 86, col 34)
|
||||
--------------------------------
|
||||
87 > console.log(nameA);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (3001 to 3024) SpanInfo: {"start":3005,"length":18}
|
||||
>console.log(nameA)
|
||||
>:=> (line 87, col 4) to (line 87, col 22)
|
||||
--------------------------------
|
||||
88 >}
|
||||
|
||||
~~ => Pos: (3025 to 3026) SpanInfo: {"start":3005,"length":18}
|
||||
>console.log(nameA)
|
||||
>:=> (line 87, col 4) to (line 87, col 22)
|
||||
--------------------------------
|
||||
89 >for ({name, skill } of [{ name: "mower", skill: "mowing" }, { name: "trimmer", skill: "trimming" }]) {
|
||||
|
||||
~~~~~~~~~~~ => Pos: (3027 to 3037) SpanInfo: {"start":3033,"length":4}
|
||||
>name
|
||||
>:=> (line 89, col 6) to (line 89, col 10)
|
||||
89 >for ({name, skill } of [{ name: "mower", skill: "mowing" }, { name: "trimmer", skill: "trimming" }]) {
|
||||
|
||||
~~~~~~~~ => Pos: (3038 to 3045) SpanInfo: {"start":3039,"length":5}
|
||||
>skill
|
||||
>:=> (line 89, col 12) to (line 89, col 17)
|
||||
89 >for ({name, skill } of [{ name: "mower", skill: "mowing" }, { name: "trimmer", skill: "trimming" }]) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (3046 to 3129) SpanInfo: {"start":3050,"length":76}
|
||||
>[{ name: "mower", skill: "mowing" }, { name: "trimmer", skill: "trimming" }]
|
||||
>:=> (line 89, col 23) to (line 89, col 99)
|
||||
--------------------------------
|
||||
90 > console.log(nameA);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (3130 to 3153) SpanInfo: {"start":3134,"length":18}
|
||||
>console.log(nameA)
|
||||
>:=> (line 90, col 4) to (line 90, col 22)
|
||||
--------------------------------
|
||||
91 >}
|
||||
|
||||
~~ => Pos: (3154 to 3155) SpanInfo: {"start":3134,"length":18}
|
||||
>console.log(nameA)
|
||||
>:=> (line 90, col 4) to (line 90, col 22)
|
||||
--------------------------------
|
||||
92 >for ({name, skills: { primary, secondary } } of multiRobots) {
|
||||
|
||||
~~~~~~~~~~~ => Pos: (3156 to 3166) SpanInfo: {"start":3162,"length":4}
|
||||
>name
|
||||
>:=> (line 92, col 6) to (line 92, col 10)
|
||||
92 >for ({name, skills: { primary, secondary } } of multiRobots) {
|
||||
|
||||
~~~~~~~~ => Pos: (3167 to 3174) SpanInfo: {"start":3168,"length":30}
|
||||
>skills: { primary, secondary }
|
||||
>:=> (line 92, col 12) to (line 92, col 42)
|
||||
92 >for ({name, skills: { primary, secondary } } of multiRobots) {
|
||||
|
||||
~~~~~~~~~~~ => Pos: (3175 to 3185) SpanInfo: {"start":3178,"length":7}
|
||||
>primary
|
||||
>:=> (line 92, col 22) to (line 92, col 29)
|
||||
92 >for ({name, skills: { primary, secondary } } of multiRobots) {
|
||||
|
||||
~~~~~~~~~~~~ => Pos: (3186 to 3197) SpanInfo: {"start":3187,"length":9}
|
||||
>secondary
|
||||
>:=> (line 92, col 31) to (line 92, col 40)
|
||||
92 >for ({name, skills: { primary, secondary } } of multiRobots) {
|
||||
|
||||
~~ => Pos: (3198 to 3199) SpanInfo: {"start":3168,"length":30}
|
||||
>skills: { primary, secondary }
|
||||
>:=> (line 92, col 12) to (line 92, col 42)
|
||||
92 >for ({name, skills: { primary, secondary } } of multiRobots) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~=> Pos: (3200 to 3218) SpanInfo: {"start":3204,"length":11}
|
||||
>multiRobots
|
||||
>:=> (line 92, col 48) to (line 92, col 59)
|
||||
--------------------------------
|
||||
93 > console.log(nameA);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (3219 to 3242) SpanInfo: {"start":3223,"length":18}
|
||||
>console.log(nameA)
|
||||
>:=> (line 93, col 4) to (line 93, col 22)
|
||||
--------------------------------
|
||||
94 >}
|
||||
|
||||
~~ => Pos: (3243 to 3244) SpanInfo: {"start":3223,"length":18}
|
||||
>console.log(nameA)
|
||||
>:=> (line 93, col 4) to (line 93, col 22)
|
||||
--------------------------------
|
||||
95 >for ({name, skills: { primary, secondary } } of getMultiRobots()) {
|
||||
|
||||
~~~~~~~~~~~ => Pos: (3245 to 3255) SpanInfo: {"start":3251,"length":4}
|
||||
>name
|
||||
>:=> (line 95, col 6) to (line 95, col 10)
|
||||
95 >for ({name, skills: { primary, secondary } } of getMultiRobots()) {
|
||||
|
||||
~~~~~~~~ => Pos: (3256 to 3263) SpanInfo: {"start":3257,"length":30}
|
||||
>skills: { primary, secondary }
|
||||
>:=> (line 95, col 12) to (line 95, col 42)
|
||||
95 >for ({name, skills: { primary, secondary } } of getMultiRobots()) {
|
||||
|
||||
~~~~~~~~~~~ => Pos: (3264 to 3274) SpanInfo: {"start":3267,"length":7}
|
||||
>primary
|
||||
>:=> (line 95, col 22) to (line 95, col 29)
|
||||
95 >for ({name, skills: { primary, secondary } } of getMultiRobots()) {
|
||||
|
||||
~~~~~~~~~~~~ => Pos: (3275 to 3286) SpanInfo: {"start":3276,"length":9}
|
||||
>secondary
|
||||
>:=> (line 95, col 31) to (line 95, col 40)
|
||||
95 >for ({name, skills: { primary, secondary } } of getMultiRobots()) {
|
||||
|
||||
~~ => Pos: (3287 to 3288) SpanInfo: {"start":3257,"length":30}
|
||||
>skills: { primary, secondary }
|
||||
>:=> (line 95, col 12) to (line 95, col 42)
|
||||
95 >for ({name, skills: { primary, secondary } } of getMultiRobots()) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (3289 to 3312) SpanInfo: {"start":3293,"length":16}
|
||||
>getMultiRobots()
|
||||
>:=> (line 95, col 48) to (line 95, col 64)
|
||||
--------------------------------
|
||||
96 > console.log(nameA);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (3313 to 3336) SpanInfo: {"start":3317,"length":18}
|
||||
>console.log(nameA)
|
||||
>:=> (line 96, col 4) to (line 96, col 22)
|
||||
--------------------------------
|
||||
97 >}
|
||||
|
||||
~~ => Pos: (3337 to 3338) SpanInfo: {"start":3317,"length":18}
|
||||
>console.log(nameA)
|
||||
>:=> (line 96, col 4) to (line 96, col 22)
|
||||
--------------------------------
|
||||
98 >for ({name, skills: { primary, secondary } } of [{ name: "mower", skills: { primary: "mowing", secondary: "none" } },
|
||||
|
||||
~~~~~~~~~~~ => Pos: (3339 to 3349) SpanInfo: {"start":3345,"length":4}
|
||||
>name
|
||||
>:=> (line 98, col 6) to (line 98, col 10)
|
||||
98 >for ({name, skills: { primary, secondary } } of [{ name: "mower", skills: { primary: "mowing", secondary: "none" } },
|
||||
|
||||
~~~~~~~~ => Pos: (3350 to 3357) SpanInfo: {"start":3351,"length":30}
|
||||
>skills: { primary, secondary }
|
||||
>:=> (line 98, col 12) to (line 98, col 42)
|
||||
98 >for ({name, skills: { primary, secondary } } of [{ name: "mower", skills: { primary: "mowing", secondary: "none" } },
|
||||
|
||||
~~~~~~~~~~~ => Pos: (3358 to 3368) SpanInfo: {"start":3361,"length":7}
|
||||
>primary
|
||||
>:=> (line 98, col 22) to (line 98, col 29)
|
||||
98 >for ({name, skills: { primary, secondary } } of [{ name: "mower", skills: { primary: "mowing", secondary: "none" } },
|
||||
|
||||
~~~~~~~~~~~~ => Pos: (3369 to 3380) SpanInfo: {"start":3370,"length":9}
|
||||
>secondary
|
||||
>:=> (line 98, col 31) to (line 98, col 40)
|
||||
98 >for ({name, skills: { primary, secondary } } of [{ name: "mower", skills: { primary: "mowing", secondary: "none" } },
|
||||
|
||||
~~ => Pos: (3381 to 3382) SpanInfo: {"start":3351,"length":30}
|
||||
>skills: { primary, secondary }
|
||||
>:=> (line 98, col 12) to (line 98, col 42)
|
||||
98 >for ({name, skills: { primary, secondary } } of [{ name: "mower", skills: { primary: "mowing", secondary: "none" } },
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (3383 to 3456) SpanInfo: {"start":3387,"length":148}
|
||||
>[{ name: "mower", skills: { primary: "mowing", secondary: "none" } },
|
||||
> { name: "trimmer", skills: { primary: "trimming", secondary: "edging" } }]
|
||||
>:=> (line 98, col 48) to (line 99, col 78)
|
||||
--------------------------------
|
||||
99 > { name: "trimmer", skills: { primary: "trimming", secondary: "edging" } }]) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (3457 to 3538) SpanInfo: {"start":3387,"length":148}
|
||||
>[{ name: "mower", skills: { primary: "mowing", secondary: "none" } },
|
||||
> { name: "trimmer", skills: { primary: "trimming", secondary: "edging" } }]
|
||||
>:=> (line 98, col 48) to (line 99, col 78)
|
||||
--------------------------------
|
||||
100> console.log(nameA);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (3539 to 3562) SpanInfo: {"start":3543,"length":18}
|
||||
>console.log(nameA)
|
||||
>:=> (line 100, col 4) to (line 100, col 22)
|
||||
--------------------------------
|
||||
101>}
|
||||
~ => Pos: (3563 to 3563) SpanInfo: {"start":3543,"length":18}
|
||||
>console.log(nameA)
|
||||
>:=> (line 100, col 4) to (line 100, col 22)
|
||||
+1223
File diff suppressed because it is too large
Load Diff
+365
@@ -0,0 +1,365 @@
|
||||
|
||||
1 >declare var console: {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (0 to 22) SpanInfo: undefined
|
||||
--------------------------------
|
||||
2 > log(msg: any): void;
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (23 to 47) SpanInfo: undefined
|
||||
--------------------------------
|
||||
3 >}
|
||||
|
||||
~~ => Pos: (48 to 49) SpanInfo: undefined
|
||||
--------------------------------
|
||||
4 >type Robot = [number, string, string];
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (50 to 88) SpanInfo: undefined
|
||||
--------------------------------
|
||||
5 >type MultiSkilledRobot = [string, [string, string]];
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (89 to 141) SpanInfo: undefined
|
||||
--------------------------------
|
||||
6 >
|
||||
|
||||
~ => Pos: (142 to 142) SpanInfo: undefined
|
||||
--------------------------------
|
||||
7 >var robotA: Robot = [1, "mower", "mowing"];
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (143 to 186) SpanInfo: {"start":143,"length":42}
|
||||
>var robotA: Robot = [1, "mower", "mowing"]
|
||||
>:=> (line 7, col 0) to (line 7, col 42)
|
||||
--------------------------------
|
||||
8 >var robotB: Robot = [2, "trimmer", "trimming"];
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (187 to 234) SpanInfo: {"start":187,"length":46}
|
||||
>var robotB: Robot = [2, "trimmer", "trimming"]
|
||||
>:=> (line 8, col 0) to (line 8, col 46)
|
||||
--------------------------------
|
||||
9 >var multiRobotA: MultiSkilledRobot = ["mower", ["mowing", ""]];
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (235 to 298) SpanInfo: {"start":235,"length":62}
|
||||
>var multiRobotA: MultiSkilledRobot = ["mower", ["mowing", ""]]
|
||||
>:=> (line 9, col 0) to (line 9, col 62)
|
||||
--------------------------------
|
||||
10 >var multiRobotB: MultiSkilledRobot = ["trimmer", ["trimming", "edging"]];
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (299 to 372) SpanInfo: {"start":299,"length":72}
|
||||
>var multiRobotB: MultiSkilledRobot = ["trimmer", ["trimming", "edging"]]
|
||||
>:=> (line 10, col 0) to (line 10, col 72)
|
||||
--------------------------------
|
||||
11 >
|
||||
|
||||
~ => Pos: (373 to 373) SpanInfo: undefined
|
||||
--------------------------------
|
||||
12 >let nameA: string, numberB: number, nameB: string, skillB: string;
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (374 to 440) SpanInfo: undefined
|
||||
--------------------------------
|
||||
13 >let robotAInfo: (number | string)[];
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (441 to 477) SpanInfo: undefined
|
||||
--------------------------------
|
||||
14 >
|
||||
|
||||
~ => Pos: (478 to 478) SpanInfo: undefined
|
||||
--------------------------------
|
||||
15 >let multiSkillB: [string, string], nameMB: string, primarySkillB: string, secondarySkillB: string;
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (479 to 577) SpanInfo: undefined
|
||||
--------------------------------
|
||||
16 >let multiRobotAInfo: (string | [string, string])[];
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (578 to 629) SpanInfo: undefined
|
||||
--------------------------------
|
||||
17 >
|
||||
|
||||
~ => Pos: (630 to 630) SpanInfo: undefined
|
||||
--------------------------------
|
||||
18 >[, nameA] = robotA;
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~ => Pos: (631 to 650) SpanInfo: {"start":634,"length":5}
|
||||
>nameA
|
||||
>:=> (line 18, col 3) to (line 18, col 8)
|
||||
--------------------------------
|
||||
19 >[, nameB] = getRobotB();
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (651 to 675) SpanInfo: {"start":654,"length":5}
|
||||
>nameB
|
||||
>:=> (line 19, col 3) to (line 19, col 8)
|
||||
--------------------------------
|
||||
20 >[, nameB] = [2, "trimmer", "trimming"];
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (676 to 715) SpanInfo: {"start":679,"length":5}
|
||||
>nameB
|
||||
>:=> (line 20, col 3) to (line 20, col 8)
|
||||
--------------------------------
|
||||
21 >[, multiSkillB] = multiRobotB;
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (716 to 746) SpanInfo: {"start":719,"length":11}
|
||||
>multiSkillB
|
||||
>:=> (line 21, col 3) to (line 21, col 14)
|
||||
--------------------------------
|
||||
22 >[, multiSkillB] = getMultiRobotB();
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (747 to 782) SpanInfo: {"start":750,"length":11}
|
||||
>multiSkillB
|
||||
>:=> (line 22, col 3) to (line 22, col 14)
|
||||
--------------------------------
|
||||
23 >[, multiSkillB] = ["roomba", ["vaccum", "mopping"]];
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (783 to 835) SpanInfo: {"start":786,"length":11}
|
||||
>multiSkillB
|
||||
>:=> (line 23, col 3) to (line 23, col 14)
|
||||
--------------------------------
|
||||
24 >
|
||||
|
||||
~ => Pos: (836 to 836) SpanInfo: undefined
|
||||
--------------------------------
|
||||
25 >[numberB] = robotB;
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~ => Pos: (837 to 856) SpanInfo: {"start":838,"length":7}
|
||||
>numberB
|
||||
>:=> (line 25, col 1) to (line 25, col 8)
|
||||
--------------------------------
|
||||
26 >[numberB] = getRobotB();
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (857 to 881) SpanInfo: {"start":858,"length":7}
|
||||
>numberB
|
||||
>:=> (line 26, col 1) to (line 26, col 8)
|
||||
--------------------------------
|
||||
27 >[numberB] = [2, "trimmer", "trimming"];
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (882 to 921) SpanInfo: {"start":883,"length":7}
|
||||
>numberB
|
||||
>:=> (line 27, col 1) to (line 27, col 8)
|
||||
--------------------------------
|
||||
28 >[nameMB] = multiRobotB;
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (922 to 945) SpanInfo: {"start":923,"length":6}
|
||||
>nameMB
|
||||
>:=> (line 28, col 1) to (line 28, col 7)
|
||||
--------------------------------
|
||||
29 >[nameMB] = getMultiRobotB();
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (946 to 974) SpanInfo: {"start":947,"length":6}
|
||||
>nameMB
|
||||
>:=> (line 29, col 1) to (line 29, col 7)
|
||||
--------------------------------
|
||||
30 >[nameMB] = ["trimmer", ["trimming", "edging"]];
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (975 to 1022) SpanInfo: {"start":976,"length":6}
|
||||
>nameMB
|
||||
>:=> (line 30, col 1) to (line 30, col 7)
|
||||
--------------------------------
|
||||
31 >
|
||||
|
||||
~ => Pos: (1023 to 1023) SpanInfo: undefined
|
||||
--------------------------------
|
||||
32 >[numberB, nameB, skillB] = robotB;
|
||||
|
||||
~~~~~~~~~ => Pos: (1024 to 1032) SpanInfo: {"start":1025,"length":7}
|
||||
>numberB
|
||||
>:=> (line 32, col 1) to (line 32, col 8)
|
||||
32 >[numberB, nameB, skillB] = robotB;
|
||||
|
||||
~~~~~~~ => Pos: (1033 to 1039) SpanInfo: {"start":1034,"length":5}
|
||||
>nameB
|
||||
>:=> (line 32, col 10) to (line 32, col 15)
|
||||
32 >[numberB, nameB, skillB] = robotB;
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~ => Pos: (1040 to 1058) SpanInfo: {"start":1041,"length":6}
|
||||
>skillB
|
||||
>:=> (line 32, col 17) to (line 32, col 23)
|
||||
--------------------------------
|
||||
33 >[numberB, nameB, skillB] = getRobotB();
|
||||
|
||||
~~~~~~~~~ => Pos: (1059 to 1067) SpanInfo: {"start":1060,"length":7}
|
||||
>numberB
|
||||
>:=> (line 33, col 1) to (line 33, col 8)
|
||||
33 >[numberB, nameB, skillB] = getRobotB();
|
||||
|
||||
~~~~~~~ => Pos: (1068 to 1074) SpanInfo: {"start":1069,"length":5}
|
||||
>nameB
|
||||
>:=> (line 33, col 10) to (line 33, col 15)
|
||||
33 >[numberB, nameB, skillB] = getRobotB();
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (1075 to 1098) SpanInfo: {"start":1076,"length":6}
|
||||
>skillB
|
||||
>:=> (line 33, col 17) to (line 33, col 23)
|
||||
--------------------------------
|
||||
34 >[numberB, nameB, skillB] = [2, "trimmer", "trimming"];
|
||||
|
||||
~~~~~~~~~ => Pos: (1099 to 1107) SpanInfo: {"start":1100,"length":7}
|
||||
>numberB
|
||||
>:=> (line 34, col 1) to (line 34, col 8)
|
||||
34 >[numberB, nameB, skillB] = [2, "trimmer", "trimming"];
|
||||
|
||||
~~~~~~~ => Pos: (1108 to 1114) SpanInfo: {"start":1109,"length":5}
|
||||
>nameB
|
||||
>:=> (line 34, col 10) to (line 34, col 15)
|
||||
34 >[numberB, nameB, skillB] = [2, "trimmer", "trimming"];
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (1115 to 1153) SpanInfo: {"start":1116,"length":6}
|
||||
>skillB
|
||||
>:=> (line 34, col 17) to (line 34, col 23)
|
||||
--------------------------------
|
||||
35 >[nameMB, [primarySkillB, secondarySkillB]] = multiRobotB;
|
||||
|
||||
~~~~~~~~ => Pos: (1154 to 1161) SpanInfo: {"start":1155,"length":6}
|
||||
>nameMB
|
||||
>:=> (line 35, col 1) to (line 35, col 7)
|
||||
35 >[nameMB, [primarySkillB, secondarySkillB]] = multiRobotB;
|
||||
|
||||
~~~~~~~~~~~~~~~~ => Pos: (1162 to 1177) SpanInfo: {"start":1164,"length":13}
|
||||
>primarySkillB
|
||||
>:=> (line 35, col 10) to (line 35, col 23)
|
||||
35 >[nameMB, [primarySkillB, secondarySkillB]] = multiRobotB;
|
||||
|
||||
~~~~~~~~~~~~~~~~~ => Pos: (1178 to 1194) SpanInfo: {"start":1179,"length":15}
|
||||
>secondarySkillB
|
||||
>:=> (line 35, col 25) to (line 35, col 40)
|
||||
35 >[nameMB, [primarySkillB, secondarySkillB]] = multiRobotB;
|
||||
|
||||
~~~~~~~~~~~~~~~~~=> Pos: (1195 to 1211) SpanInfo: {"start":1163,"length":32}
|
||||
>[primarySkillB, secondarySkillB]
|
||||
>:=> (line 35, col 9) to (line 35, col 41)
|
||||
--------------------------------
|
||||
36 >[nameMB, [primarySkillB, secondarySkillB]] = getMultiRobotB();
|
||||
|
||||
~~~~~~~~ => Pos: (1212 to 1219) SpanInfo: {"start":1213,"length":6}
|
||||
>nameMB
|
||||
>:=> (line 36, col 1) to (line 36, col 7)
|
||||
36 >[nameMB, [primarySkillB, secondarySkillB]] = getMultiRobotB();
|
||||
|
||||
~~~~~~~~~~~~~~~~ => Pos: (1220 to 1235) SpanInfo: {"start":1222,"length":13}
|
||||
>primarySkillB
|
||||
>:=> (line 36, col 10) to (line 36, col 23)
|
||||
36 >[nameMB, [primarySkillB, secondarySkillB]] = getMultiRobotB();
|
||||
|
||||
~~~~~~~~~~~~~~~~~ => Pos: (1236 to 1252) SpanInfo: {"start":1237,"length":15}
|
||||
>secondarySkillB
|
||||
>:=> (line 36, col 25) to (line 36, col 40)
|
||||
36 >[nameMB, [primarySkillB, secondarySkillB]] = getMultiRobotB();
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~=> Pos: (1253 to 1274) SpanInfo: {"start":1221,"length":32}
|
||||
>[primarySkillB, secondarySkillB]
|
||||
>:=> (line 36, col 9) to (line 36, col 41)
|
||||
--------------------------------
|
||||
37 >[nameMB, [primarySkillB, secondarySkillB]] = ["trimmer", ["trimming", "edging"]];
|
||||
|
||||
~~~~~~~~ => Pos: (1275 to 1282) SpanInfo: {"start":1276,"length":6}
|
||||
>nameMB
|
||||
>:=> (line 37, col 1) to (line 37, col 7)
|
||||
37 >[nameMB, [primarySkillB, secondarySkillB]] = ["trimmer", ["trimming", "edging"]];
|
||||
|
||||
~~~~~~~~~~~~~~~~ => Pos: (1283 to 1298) SpanInfo: {"start":1285,"length":13}
|
||||
>primarySkillB
|
||||
>:=> (line 37, col 10) to (line 37, col 23)
|
||||
37 >[nameMB, [primarySkillB, secondarySkillB]] = ["trimmer", ["trimming", "edging"]];
|
||||
|
||||
~~~~~~~~~~~~~~~~~ => Pos: (1299 to 1315) SpanInfo: {"start":1300,"length":15}
|
||||
>secondarySkillB
|
||||
>:=> (line 37, col 25) to (line 37, col 40)
|
||||
37 >[nameMB, [primarySkillB, secondarySkillB]] = ["trimmer", ["trimming", "edging"]];
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (1316 to 1356) SpanInfo: {"start":1284,"length":32}
|
||||
>[primarySkillB, secondarySkillB]
|
||||
>:=> (line 37, col 9) to (line 37, col 41)
|
||||
--------------------------------
|
||||
38 >
|
||||
|
||||
~ => Pos: (1357 to 1357) SpanInfo: undefined
|
||||
--------------------------------
|
||||
39 >[numberB, ...robotAInfo] = robotB;
|
||||
|
||||
~~~~~~~~~ => Pos: (1358 to 1366) SpanInfo: {"start":1359,"length":7}
|
||||
>numberB
|
||||
>:=> (line 39, col 1) to (line 39, col 8)
|
||||
39 >[numberB, ...robotAInfo] = robotB;
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (1367 to 1392) SpanInfo: {"start":1368,"length":13}
|
||||
>...robotAInfo
|
||||
>:=> (line 39, col 10) to (line 39, col 23)
|
||||
--------------------------------
|
||||
40 >[numberB, ...robotAInfo] = getRobotB();
|
||||
|
||||
~~~~~~~~~ => Pos: (1393 to 1401) SpanInfo: {"start":1394,"length":7}
|
||||
>numberB
|
||||
>:=> (line 40, col 1) to (line 40, col 8)
|
||||
40 >[numberB, ...robotAInfo] = getRobotB();
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (1402 to 1432) SpanInfo: {"start":1403,"length":13}
|
||||
>...robotAInfo
|
||||
>:=> (line 40, col 10) to (line 40, col 23)
|
||||
--------------------------------
|
||||
41 >[numberB, ...robotAInfo] = <Robot>[2, "trimmer", "trimming"];
|
||||
|
||||
~~~~~~~~~ => Pos: (1433 to 1441) SpanInfo: {"start":1434,"length":7}
|
||||
>numberB
|
||||
>:=> (line 41, col 1) to (line 41, col 8)
|
||||
41 >[numberB, ...robotAInfo] = <Robot>[2, "trimmer", "trimming"];
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (1442 to 1494) SpanInfo: {"start":1443,"length":13}
|
||||
>...robotAInfo
|
||||
>:=> (line 41, col 10) to (line 41, col 23)
|
||||
--------------------------------
|
||||
42 >[...multiRobotAInfo] = multiRobotA;
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (1495 to 1530) SpanInfo: {"start":1496,"length":18}
|
||||
>...multiRobotAInfo
|
||||
>:=> (line 42, col 1) to (line 42, col 19)
|
||||
--------------------------------
|
||||
43 >[...multiRobotAInfo] = getMultiRobotB();
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (1531 to 1571) SpanInfo: {"start":1532,"length":18}
|
||||
>...multiRobotAInfo
|
||||
>:=> (line 43, col 1) to (line 43, col 19)
|
||||
--------------------------------
|
||||
44 >[...multiRobotAInfo] = ["trimmer", ["trimming", "edging"]];
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (1572 to 1631) SpanInfo: {"start":1573,"length":18}
|
||||
>...multiRobotAInfo
|
||||
>:=> (line 44, col 1) to (line 44, col 19)
|
||||
--------------------------------
|
||||
45 >
|
||||
|
||||
~ => Pos: (1632 to 1632) SpanInfo: undefined
|
||||
--------------------------------
|
||||
46 >function getRobotB() {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (1633 to 1655) SpanInfo: {"start":1660,"length":13}
|
||||
>return robotB
|
||||
>:=> (line 47, col 4) to (line 47, col 17)
|
||||
--------------------------------
|
||||
47 > return robotB;
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~ => Pos: (1656 to 1674) SpanInfo: {"start":1660,"length":13}
|
||||
>return robotB
|
||||
>:=> (line 47, col 4) to (line 47, col 17)
|
||||
--------------------------------
|
||||
48 >}
|
||||
|
||||
~~ => Pos: (1675 to 1676) SpanInfo: {"start":1675,"length":1}
|
||||
>}
|
||||
>:=> (line 48, col 0) to (line 48, col 1)
|
||||
--------------------------------
|
||||
49 >
|
||||
|
||||
~ => Pos: (1677 to 1677) SpanInfo: undefined
|
||||
--------------------------------
|
||||
50 >function getMultiRobotB() {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (1678 to 1705) SpanInfo: {"start":1710,"length":18}
|
||||
>return multiRobotB
|
||||
>:=> (line 51, col 4) to (line 51, col 22)
|
||||
--------------------------------
|
||||
51 > return multiRobotB;
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (1706 to 1729) SpanInfo: {"start":1710,"length":18}
|
||||
>return multiRobotB
|
||||
>:=> (line 51, col 4) to (line 51, col 22)
|
||||
--------------------------------
|
||||
52 >}
|
||||
~ => Pos: (1730 to 1730) SpanInfo: {"start":1730,"length":1}
|
||||
>}
|
||||
>:=> (line 52, col 0) to (line 52, col 1)
|
||||
+353
@@ -0,0 +1,353 @@
|
||||
|
||||
1 >declare var console: {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (0 to 22) SpanInfo: undefined
|
||||
--------------------------------
|
||||
2 > log(msg: any): void;
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (23 to 47) SpanInfo: undefined
|
||||
--------------------------------
|
||||
3 >}
|
||||
|
||||
~~ => Pos: (48 to 49) SpanInfo: undefined
|
||||
--------------------------------
|
||||
4 >type Robot = [number, string, string];
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (50 to 88) SpanInfo: undefined
|
||||
--------------------------------
|
||||
5 >type MultiSkilledRobot = [string, string[]];
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (89 to 133) SpanInfo: undefined
|
||||
--------------------------------
|
||||
6 >
|
||||
|
||||
~ => Pos: (134 to 134) SpanInfo: undefined
|
||||
--------------------------------
|
||||
7 >var robotA: Robot = [1, "mower", "mowing"];
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (135 to 178) SpanInfo: {"start":135,"length":42}
|
||||
>var robotA: Robot = [1, "mower", "mowing"]
|
||||
>:=> (line 7, col 0) to (line 7, col 42)
|
||||
--------------------------------
|
||||
8 >var robotB: Robot = [2, "trimmer", "trimming"];
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (179 to 226) SpanInfo: {"start":179,"length":46}
|
||||
>var robotB: Robot = [2, "trimmer", "trimming"]
|
||||
>:=> (line 8, col 0) to (line 8, col 46)
|
||||
--------------------------------
|
||||
9 >var multiRobotA: MultiSkilledRobot = ["mower", ["mowing", ""]];
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (227 to 290) SpanInfo: {"start":227,"length":62}
|
||||
>var multiRobotA: MultiSkilledRobot = ["mower", ["mowing", ""]]
|
||||
>:=> (line 9, col 0) to (line 9, col 62)
|
||||
--------------------------------
|
||||
10 >var multiRobotB: MultiSkilledRobot = ["trimmer", ["trimming", "edging"]];
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (291 to 364) SpanInfo: {"start":291,"length":72}
|
||||
>var multiRobotB: MultiSkilledRobot = ["trimmer", ["trimming", "edging"]]
|
||||
>:=> (line 10, col 0) to (line 10, col 72)
|
||||
--------------------------------
|
||||
11 >
|
||||
|
||||
~ => Pos: (365 to 365) SpanInfo: undefined
|
||||
--------------------------------
|
||||
12 >let nameA: string, numberB: number, nameB: string, skillB: string;
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (366 to 432) SpanInfo: undefined
|
||||
--------------------------------
|
||||
13 >let robotAInfo: (number | string)[];
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (433 to 469) SpanInfo: undefined
|
||||
--------------------------------
|
||||
14 >
|
||||
|
||||
~ => Pos: (470 to 470) SpanInfo: undefined
|
||||
--------------------------------
|
||||
15 >let multiSkillB: string[], nameMB: string, primarySkillB: string, secondarySkillB: string;
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (471 to 561) SpanInfo: undefined
|
||||
--------------------------------
|
||||
16 >let multiRobotAInfo: (string | string[])[];
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (562 to 605) SpanInfo: undefined
|
||||
--------------------------------
|
||||
17 >
|
||||
|
||||
~ => Pos: (606 to 606) SpanInfo: undefined
|
||||
--------------------------------
|
||||
18 >[, nameA = "helloNoName"] = robotA;
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (607 to 642) SpanInfo: {"start":610,"length":21}
|
||||
>nameA = "helloNoName"
|
||||
>:=> (line 18, col 3) to (line 18, col 24)
|
||||
--------------------------------
|
||||
19 >[, nameB = "helloNoName"] = getRobotB();
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (643 to 683) SpanInfo: {"start":646,"length":21}
|
||||
>nameB = "helloNoName"
|
||||
>:=> (line 19, col 3) to (line 19, col 24)
|
||||
--------------------------------
|
||||
20 >[, nameB = "helloNoName"] = [2, "trimmer", "trimming"];
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (684 to 739) SpanInfo: {"start":687,"length":21}
|
||||
>nameB = "helloNoName"
|
||||
>:=> (line 20, col 3) to (line 20, col 24)
|
||||
--------------------------------
|
||||
21 >[, multiSkillB = []] = multiRobotB;
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (740 to 775) SpanInfo: {"start":743,"length":16}
|
||||
>multiSkillB = []
|
||||
>:=> (line 21, col 3) to (line 21, col 19)
|
||||
--------------------------------
|
||||
22 >[, multiSkillB = []] = getMultiRobotB();
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (776 to 816) SpanInfo: {"start":779,"length":16}
|
||||
>multiSkillB = []
|
||||
>:=> (line 22, col 3) to (line 22, col 19)
|
||||
--------------------------------
|
||||
23 >[, multiSkillB = []] = ["roomba", ["vaccum", "mopping"]];
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (817 to 874) SpanInfo: {"start":820,"length":16}
|
||||
>multiSkillB = []
|
||||
>:=> (line 23, col 3) to (line 23, col 19)
|
||||
--------------------------------
|
||||
24 >
|
||||
|
||||
~ => Pos: (875 to 875) SpanInfo: undefined
|
||||
--------------------------------
|
||||
25 >[numberB = -1] = robotB;
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (876 to 900) SpanInfo: {"start":877,"length":12}
|
||||
>numberB = -1
|
||||
>:=> (line 25, col 1) to (line 25, col 13)
|
||||
--------------------------------
|
||||
26 >[numberB = -1] = getRobotB();
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (901 to 930) SpanInfo: {"start":902,"length":12}
|
||||
>numberB = -1
|
||||
>:=> (line 26, col 1) to (line 26, col 13)
|
||||
--------------------------------
|
||||
27 >[numberB = -1] = [2, "trimmer", "trimming"];
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (931 to 975) SpanInfo: {"start":932,"length":12}
|
||||
>numberB = -1
|
||||
>:=> (line 27, col 1) to (line 27, col 13)
|
||||
--------------------------------
|
||||
28 >[nameMB = "helloNoName"] = multiRobotB;
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (976 to 1015) SpanInfo: {"start":977,"length":22}
|
||||
>nameMB = "helloNoName"
|
||||
>:=> (line 28, col 1) to (line 28, col 23)
|
||||
--------------------------------
|
||||
29 >[nameMB = "helloNoName"] = getMultiRobotB();
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (1016 to 1060) SpanInfo: {"start":1017,"length":22}
|
||||
>nameMB = "helloNoName"
|
||||
>:=> (line 29, col 1) to (line 29, col 23)
|
||||
--------------------------------
|
||||
30 >[nameMB = "helloNoName"] = ["trimmer", ["trimming", "edging"]];
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (1061 to 1124) SpanInfo: {"start":1062,"length":22}
|
||||
>nameMB = "helloNoName"
|
||||
>:=> (line 30, col 1) to (line 30, col 23)
|
||||
--------------------------------
|
||||
31 >
|
||||
|
||||
~ => Pos: (1125 to 1125) SpanInfo: undefined
|
||||
--------------------------------
|
||||
32 >[numberB = -1, nameB = "helloNoName", skillB = "noSkill"] = robotB;
|
||||
|
||||
~~~~~~~~~~~~~~ => Pos: (1126 to 1139) SpanInfo: {"start":1127,"length":12}
|
||||
>numberB = -1
|
||||
>:=> (line 32, col 1) to (line 32, col 13)
|
||||
32 >[numberB = -1, nameB = "helloNoName", skillB = "noSkill"] = robotB;
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (1140 to 1162) SpanInfo: {"start":1141,"length":21}
|
||||
>nameB = "helloNoName"
|
||||
>:=> (line 32, col 15) to (line 32, col 36)
|
||||
32 >[numberB = -1, nameB = "helloNoName", skillB = "noSkill"] = robotB;
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (1163 to 1193) SpanInfo: {"start":1164,"length":18}
|
||||
>skillB = "noSkill"
|
||||
>:=> (line 32, col 38) to (line 32, col 56)
|
||||
--------------------------------
|
||||
33 >[numberB = -1, nameB = "helloNoName", skillB = "noSkill"] = getRobotB();
|
||||
|
||||
~~~~~~~~~~~~~~ => Pos: (1194 to 1207) SpanInfo: {"start":1195,"length":12}
|
||||
>numberB = -1
|
||||
>:=> (line 33, col 1) to (line 33, col 13)
|
||||
33 >[numberB = -1, nameB = "helloNoName", skillB = "noSkill"] = getRobotB();
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (1208 to 1230) SpanInfo: {"start":1209,"length":21}
|
||||
>nameB = "helloNoName"
|
||||
>:=> (line 33, col 15) to (line 33, col 36)
|
||||
33 >[numberB = -1, nameB = "helloNoName", skillB = "noSkill"] = getRobotB();
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (1231 to 1266) SpanInfo: {"start":1232,"length":18}
|
||||
>skillB = "noSkill"
|
||||
>:=> (line 33, col 38) to (line 33, col 56)
|
||||
--------------------------------
|
||||
34 >[numberB = -1, nameB = "helloNoName", skillB = "noSkill"] = [2, "trimmer", "trimming"];
|
||||
|
||||
~~~~~~~~~~~~~~ => Pos: (1267 to 1280) SpanInfo: {"start":1268,"length":12}
|
||||
>numberB = -1
|
||||
>:=> (line 34, col 1) to (line 34, col 13)
|
||||
34 >[numberB = -1, nameB = "helloNoName", skillB = "noSkill"] = [2, "trimmer", "trimming"];
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (1281 to 1303) SpanInfo: {"start":1282,"length":21}
|
||||
>nameB = "helloNoName"
|
||||
>:=> (line 34, col 15) to (line 34, col 36)
|
||||
34 >[numberB = -1, nameB = "helloNoName", skillB = "noSkill"] = [2, "trimmer", "trimming"];
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (1304 to 1354) SpanInfo: {"start":1305,"length":18}
|
||||
>skillB = "noSkill"
|
||||
>:=> (line 34, col 38) to (line 34, col 56)
|
||||
--------------------------------
|
||||
35 >[nameMB = "helloNoName", [primarySkillB = "noSkill", secondarySkillB = "noSkill"] = []] = multiRobotB;
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (1355 to 1378) SpanInfo: {"start":1356,"length":22}
|
||||
>nameMB = "helloNoName"
|
||||
>:=> (line 35, col 1) to (line 35, col 23)
|
||||
35 >[nameMB = "helloNoName", [primarySkillB = "noSkill", secondarySkillB = "noSkill"] = []] = multiRobotB;
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (1379 to 1406) SpanInfo: {"start":1381,"length":25}
|
||||
>primarySkillB = "noSkill"
|
||||
>:=> (line 35, col 26) to (line 35, col 51)
|
||||
35 >[nameMB = "helloNoName", [primarySkillB = "noSkill", secondarySkillB = "noSkill"] = []] = multiRobotB;
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (1407 to 1440) SpanInfo: {"start":1408,"length":27}
|
||||
>secondarySkillB = "noSkill"
|
||||
>:=> (line 35, col 53) to (line 35, col 80)
|
||||
35 >[nameMB = "helloNoName", [primarySkillB = "noSkill", secondarySkillB = "noSkill"] = []] = multiRobotB;
|
||||
|
||||
~~~~~~~~~~~~~~~~~=> Pos: (1441 to 1457) SpanInfo: {"start":1380,"length":61}
|
||||
>[primarySkillB = "noSkill", secondarySkillB = "noSkill"] = []
|
||||
>:=> (line 35, col 25) to (line 35, col 86)
|
||||
--------------------------------
|
||||
36 >[nameMB = "helloNoName", [primarySkillB = "noSkill", secondarySkillB = "noSkill"] = []] = getMultiRobotB();
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (1458 to 1481) SpanInfo: {"start":1459,"length":22}
|
||||
>nameMB = "helloNoName"
|
||||
>:=> (line 36, col 1) to (line 36, col 23)
|
||||
36 >[nameMB = "helloNoName", [primarySkillB = "noSkill", secondarySkillB = "noSkill"] = []] = getMultiRobotB();
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (1482 to 1509) SpanInfo: {"start":1484,"length":25}
|
||||
>primarySkillB = "noSkill"
|
||||
>:=> (line 36, col 26) to (line 36, col 51)
|
||||
36 >[nameMB = "helloNoName", [primarySkillB = "noSkill", secondarySkillB = "noSkill"] = []] = getMultiRobotB();
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (1510 to 1543) SpanInfo: {"start":1511,"length":27}
|
||||
>secondarySkillB = "noSkill"
|
||||
>:=> (line 36, col 53) to (line 36, col 80)
|
||||
36 >[nameMB = "helloNoName", [primarySkillB = "noSkill", secondarySkillB = "noSkill"] = []] = getMultiRobotB();
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~=> Pos: (1544 to 1565) SpanInfo: {"start":1483,"length":61}
|
||||
>[primarySkillB = "noSkill", secondarySkillB = "noSkill"] = []
|
||||
>:=> (line 36, col 25) to (line 36, col 86)
|
||||
--------------------------------
|
||||
37 >[nameMB = "helloNoName", [primarySkillB = "noSkill", secondarySkillB = "noSkill"] = []] =
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (1566 to 1589) SpanInfo: {"start":1567,"length":22}
|
||||
>nameMB = "helloNoName"
|
||||
>:=> (line 37, col 1) to (line 37, col 23)
|
||||
37 >[nameMB = "helloNoName", [primarySkillB = "noSkill", secondarySkillB = "noSkill"] = []] =
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (1590 to 1617) SpanInfo: {"start":1592,"length":25}
|
||||
>primarySkillB = "noSkill"
|
||||
>:=> (line 37, col 26) to (line 37, col 51)
|
||||
37 >[nameMB = "helloNoName", [primarySkillB = "noSkill", secondarySkillB = "noSkill"] = []] =
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (1618 to 1651) SpanInfo: {"start":1619,"length":27}
|
||||
>secondarySkillB = "noSkill"
|
||||
>:=> (line 37, col 53) to (line 37, col 80)
|
||||
37 >[nameMB = "helloNoName", [primarySkillB = "noSkill", secondarySkillB = "noSkill"] = []] =
|
||||
|
||||
~~~~=> Pos: (1652 to 1655) SpanInfo: {"start":1591,"length":61}
|
||||
>[primarySkillB = "noSkill", secondarySkillB = "noSkill"] = []
|
||||
>:=> (line 37, col 25) to (line 37, col 86)
|
||||
--------------------------------
|
||||
38 > ["trimmer", ["trimming", "edging"]];
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (1656 to 1696) SpanInfo: {"start":1591,"length":61}
|
||||
>[primarySkillB = "noSkill", secondarySkillB = "noSkill"] = []
|
||||
>:=> (line 37, col 25) to (line 37, col 86)
|
||||
--------------------------------
|
||||
39 >
|
||||
|
||||
~ => Pos: (1697 to 1697) SpanInfo: undefined
|
||||
--------------------------------
|
||||
40 >[numberB = -1, ...robotAInfo] = robotB;
|
||||
|
||||
~~~~~~~~~~~~~~ => Pos: (1698 to 1711) SpanInfo: {"start":1699,"length":12}
|
||||
>numberB = -1
|
||||
>:=> (line 40, col 1) to (line 40, col 13)
|
||||
40 >[numberB = -1, ...robotAInfo] = robotB;
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (1712 to 1737) SpanInfo: {"start":1713,"length":13}
|
||||
>...robotAInfo
|
||||
>:=> (line 40, col 15) to (line 40, col 28)
|
||||
--------------------------------
|
||||
41 >[numberB = -1, ...robotAInfo] = getRobotB();
|
||||
|
||||
~~~~~~~~~~~~~~ => Pos: (1738 to 1751) SpanInfo: {"start":1739,"length":12}
|
||||
>numberB = -1
|
||||
>:=> (line 41, col 1) to (line 41, col 13)
|
||||
41 >[numberB = -1, ...robotAInfo] = getRobotB();
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (1752 to 1782) SpanInfo: {"start":1753,"length":13}
|
||||
>...robotAInfo
|
||||
>:=> (line 41, col 15) to (line 41, col 28)
|
||||
--------------------------------
|
||||
42 >[numberB = -1, ...robotAInfo] = <Robot>[2, "trimmer", "trimming"];
|
||||
|
||||
~~~~~~~~~~~~~~ => Pos: (1783 to 1796) SpanInfo: {"start":1784,"length":12}
|
||||
>numberB = -1
|
||||
>:=> (line 42, col 1) to (line 42, col 13)
|
||||
42 >[numberB = -1, ...robotAInfo] = <Robot>[2, "trimmer", "trimming"];
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (1797 to 1849) SpanInfo: {"start":1798,"length":13}
|
||||
>...robotAInfo
|
||||
>:=> (line 42, col 15) to (line 42, col 28)
|
||||
--------------------------------
|
||||
43 >
|
||||
|
||||
~ => Pos: (1850 to 1850) SpanInfo: undefined
|
||||
--------------------------------
|
||||
44 >function getRobotB() {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (1851 to 1873) SpanInfo: {"start":1878,"length":13}
|
||||
>return robotB
|
||||
>:=> (line 45, col 4) to (line 45, col 17)
|
||||
--------------------------------
|
||||
45 > return robotB;
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~ => Pos: (1874 to 1892) SpanInfo: {"start":1878,"length":13}
|
||||
>return robotB
|
||||
>:=> (line 45, col 4) to (line 45, col 17)
|
||||
--------------------------------
|
||||
46 >}
|
||||
|
||||
~~ => Pos: (1893 to 1894) SpanInfo: {"start":1893,"length":1}
|
||||
>}
|
||||
>:=> (line 46, col 0) to (line 46, col 1)
|
||||
--------------------------------
|
||||
47 >
|
||||
|
||||
~ => Pos: (1895 to 1895) SpanInfo: undefined
|
||||
--------------------------------
|
||||
48 >function getMultiRobotB() {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (1896 to 1923) SpanInfo: {"start":1928,"length":18}
|
||||
>return multiRobotB
|
||||
>:=> (line 49, col 4) to (line 49, col 22)
|
||||
--------------------------------
|
||||
49 > return multiRobotB;
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (1924 to 1947) SpanInfo: {"start":1928,"length":18}
|
||||
>return multiRobotB
|
||||
>:=> (line 49, col 4) to (line 49, col 22)
|
||||
--------------------------------
|
||||
50 >}
|
||||
~ => Pos: (1948 to 1948) SpanInfo: {"start":1948,"length":1}
|
||||
>}
|
||||
>:=> (line 50, col 0) to (line 50, col 1)
|
||||
File diff suppressed because it is too large
Load Diff
+1042
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,633 @@
|
||||
|
||||
1 >declare var console: {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (0 to 22) SpanInfo: undefined
|
||||
--------------------------------
|
||||
2 > log(msg: any): void;
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (23 to 47) SpanInfo: undefined
|
||||
--------------------------------
|
||||
3 >}
|
||||
|
||||
~~ => Pos: (48 to 49) SpanInfo: undefined
|
||||
--------------------------------
|
||||
4 >interface Robot {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~ => Pos: (50 to 67) SpanInfo: undefined
|
||||
--------------------------------
|
||||
5 > name: string;
|
||||
|
||||
~~~~~~~~~~~~~~~~~~ => Pos: (68 to 85) SpanInfo: undefined
|
||||
--------------------------------
|
||||
6 > skill: string;
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~ => Pos: (86 to 104) SpanInfo: undefined
|
||||
--------------------------------
|
||||
7 >}
|
||||
|
||||
~~ => Pos: (105 to 106) SpanInfo: undefined
|
||||
--------------------------------
|
||||
8 >interface MultiRobot {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (107 to 129) SpanInfo: undefined
|
||||
--------------------------------
|
||||
9 > name: string;
|
||||
|
||||
~~~~~~~~~~~~~~~~~~ => Pos: (130 to 147) SpanInfo: undefined
|
||||
--------------------------------
|
||||
10 > skills: {
|
||||
|
||||
~~~~~~~~~~~~~~ => Pos: (148 to 161) SpanInfo: undefined
|
||||
--------------------------------
|
||||
11 > primary: string;
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (162 to 186) SpanInfo: undefined
|
||||
--------------------------------
|
||||
12 > secondary: string;
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (187 to 213) SpanInfo: undefined
|
||||
--------------------------------
|
||||
13 > };
|
||||
|
||||
~~~~~~~ => Pos: (214 to 220) SpanInfo: undefined
|
||||
--------------------------------
|
||||
14 >}
|
||||
|
||||
~~ => Pos: (221 to 222) SpanInfo: undefined
|
||||
--------------------------------
|
||||
15 >let robot: Robot = { name: "mower", skill: "mowing" };
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (223 to 277) SpanInfo: {"start":223,"length":53}
|
||||
>let robot: Robot = { name: "mower", skill: "mowing" }
|
||||
>:=> (line 15, col 0) to (line 15, col 53)
|
||||
--------------------------------
|
||||
16 >let multiRobot: MultiRobot = { name: "mower", skills: { primary: "mowing", secondary: "none" } };
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (278 to 375) SpanInfo: {"start":278,"length":96}
|
||||
>let multiRobot: MultiRobot = { name: "mower", skills: { primary: "mowing", secondary: "none" } }
|
||||
>:=> (line 16, col 0) to (line 16, col 96)
|
||||
--------------------------------
|
||||
17 >function getRobot() {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~ => Pos: (376 to 397) SpanInfo: {"start":402,"length":12}
|
||||
>return robot
|
||||
>:=> (line 18, col 4) to (line 18, col 16)
|
||||
--------------------------------
|
||||
18 > return robot;
|
||||
|
||||
~~~~~~~~~~~~~~~~~~ => Pos: (398 to 415) SpanInfo: {"start":402,"length":12}
|
||||
>return robot
|
||||
>:=> (line 18, col 4) to (line 18, col 16)
|
||||
--------------------------------
|
||||
19 >}
|
||||
|
||||
~~ => Pos: (416 to 417) SpanInfo: {"start":416,"length":1}
|
||||
>}
|
||||
>:=> (line 19, col 0) to (line 19, col 1)
|
||||
--------------------------------
|
||||
20 >function getMultiRobot() {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (418 to 444) SpanInfo: {"start":449,"length":17}
|
||||
>return multiRobot
|
||||
>:=> (line 21, col 4) to (line 21, col 21)
|
||||
--------------------------------
|
||||
21 > return multiRobot;
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (445 to 467) SpanInfo: {"start":449,"length":17}
|
||||
>return multiRobot
|
||||
>:=> (line 21, col 4) to (line 21, col 21)
|
||||
--------------------------------
|
||||
22 >}
|
||||
|
||||
~~ => Pos: (468 to 469) SpanInfo: {"start":468,"length":1}
|
||||
>}
|
||||
>:=> (line 22, col 0) to (line 22, col 1)
|
||||
--------------------------------
|
||||
23 >for (let {name: nameA } = robot, i = 0; i < 1; i++) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (470 to 501) SpanInfo: {"start":480,"length":11}
|
||||
>name: nameA
|
||||
>:=> (line 23, col 10) to (line 23, col 21)
|
||||
23 >for (let {name: nameA } = robot, i = 0; i < 1; i++) {
|
||||
|
||||
~~~~~~~ => Pos: (502 to 508) SpanInfo: {"start":503,"length":5}
|
||||
>i = 0
|
||||
>:=> (line 23, col 33) to (line 23, col 38)
|
||||
23 >for (let {name: nameA } = robot, i = 0; i < 1; i++) {
|
||||
|
||||
~~~~~~~=> Pos: (509 to 515) SpanInfo: {"start":510,"length":5}
|
||||
>i < 1
|
||||
>:=> (line 23, col 40) to (line 23, col 45)
|
||||
23 >for (let {name: nameA } = robot, i = 0; i < 1; i++) {
|
||||
|
||||
~~~~~~~~=> Pos: (516 to 523) SpanInfo: {"start":517,"length":3}
|
||||
>i++
|
||||
>:=> (line 23, col 47) to (line 23, col 50)
|
||||
--------------------------------
|
||||
24 > console.log(nameA);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (524 to 547) SpanInfo: {"start":528,"length":18}
|
||||
>console.log(nameA)
|
||||
>:=> (line 24, col 4) to (line 24, col 22)
|
||||
--------------------------------
|
||||
25 >}
|
||||
|
||||
~~ => Pos: (548 to 549) SpanInfo: {"start":528,"length":18}
|
||||
>console.log(nameA)
|
||||
>:=> (line 24, col 4) to (line 24, col 22)
|
||||
--------------------------------
|
||||
26 >for (let {name: nameA } = getRobot(), i = 0; i < 1; i++) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (550 to 586) SpanInfo: {"start":560,"length":11}
|
||||
>name: nameA
|
||||
>:=> (line 26, col 10) to (line 26, col 21)
|
||||
26 >for (let {name: nameA } = getRobot(), i = 0; i < 1; i++) {
|
||||
|
||||
~~~~~~~ => Pos: (587 to 593) SpanInfo: {"start":588,"length":5}
|
||||
>i = 0
|
||||
>:=> (line 26, col 38) to (line 26, col 43)
|
||||
26 >for (let {name: nameA } = getRobot(), i = 0; i < 1; i++) {
|
||||
|
||||
~~~~~~~=> Pos: (594 to 600) SpanInfo: {"start":595,"length":5}
|
||||
>i < 1
|
||||
>:=> (line 26, col 45) to (line 26, col 50)
|
||||
26 >for (let {name: nameA } = getRobot(), i = 0; i < 1; i++) {
|
||||
|
||||
~~~~~~~~=> Pos: (601 to 608) SpanInfo: {"start":602,"length":3}
|
||||
>i++
|
||||
>:=> (line 26, col 52) to (line 26, col 55)
|
||||
--------------------------------
|
||||
27 > console.log(nameA);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (609 to 632) SpanInfo: {"start":613,"length":18}
|
||||
>console.log(nameA)
|
||||
>:=> (line 27, col 4) to (line 27, col 22)
|
||||
--------------------------------
|
||||
28 >}
|
||||
|
||||
~~ => Pos: (633 to 634) SpanInfo: {"start":613,"length":18}
|
||||
>console.log(nameA)
|
||||
>:=> (line 27, col 4) to (line 27, col 22)
|
||||
--------------------------------
|
||||
29 >for (let {name: nameA } = <Robot>{ name: "trimmer", skill: "trimming" }, i = 0; i < 1; i++) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (635 to 706) SpanInfo: {"start":645,"length":11}
|
||||
>name: nameA
|
||||
>:=> (line 29, col 10) to (line 29, col 21)
|
||||
29 >for (let {name: nameA } = <Robot>{ name: "trimmer", skill: "trimming" }, i = 0; i < 1; i++) {
|
||||
|
||||
~~~~~~~=> Pos: (707 to 713) SpanInfo: {"start":708,"length":5}
|
||||
>i = 0
|
||||
>:=> (line 29, col 73) to (line 29, col 78)
|
||||
29 >for (let {name: nameA } = <Robot>{ name: "trimmer", skill: "trimming" }, i = 0; i < 1; i++) {
|
||||
|
||||
~~~~~~~=> Pos: (714 to 720) SpanInfo: {"start":715,"length":5}
|
||||
>i < 1
|
||||
>:=> (line 29, col 80) to (line 29, col 85)
|
||||
29 >for (let {name: nameA } = <Robot>{ name: "trimmer", skill: "trimming" }, i = 0; i < 1; i++) {
|
||||
|
||||
~~~~~~~~=> Pos: (721 to 728) SpanInfo: {"start":722,"length":3}
|
||||
>i++
|
||||
>:=> (line 29, col 87) to (line 29, col 90)
|
||||
--------------------------------
|
||||
30 > console.log(nameA);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (729 to 752) SpanInfo: {"start":733,"length":18}
|
||||
>console.log(nameA)
|
||||
>:=> (line 30, col 4) to (line 30, col 22)
|
||||
--------------------------------
|
||||
31 >}
|
||||
|
||||
~~ => Pos: (753 to 754) SpanInfo: {"start":733,"length":18}
|
||||
>console.log(nameA)
|
||||
>:=> (line 30, col 4) to (line 30, col 22)
|
||||
--------------------------------
|
||||
32 >for (let { skills: { primary: primaryA, secondary: secondaryA } } = multiRobot, i = 0; i < 1; i++) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~ => Pos: (755 to 772) SpanInfo: {"start":766,"length":52}
|
||||
>skills: { primary: primaryA, secondary: secondaryA }
|
||||
>:=> (line 32, col 11) to (line 32, col 63)
|
||||
32 >for (let { skills: { primary: primaryA, secondary: secondaryA } } = multiRobot, i = 0; i < 1; i++) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~ => Pos: (773 to 793) SpanInfo: {"start":776,"length":17}
|
||||
>primary: primaryA
|
||||
>:=> (line 32, col 21) to (line 32, col 38)
|
||||
32 >for (let { skills: { primary: primaryA, secondary: secondaryA } } = multiRobot, i = 0; i < 1; i++) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (794 to 817) SpanInfo: {"start":795,"length":21}
|
||||
>secondary: secondaryA
|
||||
>:=> (line 32, col 40) to (line 32, col 61)
|
||||
32 >for (let { skills: { primary: primaryA, secondary: secondaryA } } = multiRobot, i = 0; i < 1; i++) {
|
||||
|
||||
~~~~~~~~~~~~~~~~=> Pos: (818 to 833) SpanInfo: {"start":766,"length":52}
|
||||
>skills: { primary: primaryA, secondary: secondaryA }
|
||||
>:=> (line 32, col 11) to (line 32, col 63)
|
||||
32 >for (let { skills: { primary: primaryA, secondary: secondaryA } } = multiRobot, i = 0; i < 1; i++) {
|
||||
|
||||
~~~~~~~=> Pos: (834 to 840) SpanInfo: {"start":835,"length":5}
|
||||
>i = 0
|
||||
>:=> (line 32, col 80) to (line 32, col 85)
|
||||
32 >for (let { skills: { primary: primaryA, secondary: secondaryA } } = multiRobot, i = 0; i < 1; i++) {
|
||||
|
||||
~~~~~~~=> Pos: (841 to 847) SpanInfo: {"start":842,"length":5}
|
||||
>i < 1
|
||||
>:=> (line 32, col 87) to (line 32, col 92)
|
||||
32 >for (let { skills: { primary: primaryA, secondary: secondaryA } } = multiRobot, i = 0; i < 1; i++) {
|
||||
|
||||
~~~~~~~~=> Pos: (848 to 855) SpanInfo: {"start":849,"length":3}
|
||||
>i++
|
||||
>:=> (line 32, col 94) to (line 32, col 97)
|
||||
--------------------------------
|
||||
33 > console.log(primaryA);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (856 to 882) SpanInfo: {"start":860,"length":21}
|
||||
>console.log(primaryA)
|
||||
>:=> (line 33, col 4) to (line 33, col 25)
|
||||
--------------------------------
|
||||
34 >}
|
||||
|
||||
~~ => Pos: (883 to 884) SpanInfo: {"start":860,"length":21}
|
||||
>console.log(primaryA)
|
||||
>:=> (line 33, col 4) to (line 33, col 25)
|
||||
--------------------------------
|
||||
35 >for (let { skills: { primary: primaryA, secondary: secondaryA } } = getMultiRobot(), i = 0; i < 1; i++) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~ => Pos: (885 to 902) SpanInfo: {"start":896,"length":52}
|
||||
>skills: { primary: primaryA, secondary: secondaryA }
|
||||
>:=> (line 35, col 11) to (line 35, col 63)
|
||||
35 >for (let { skills: { primary: primaryA, secondary: secondaryA } } = getMultiRobot(), i = 0; i < 1; i++) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~ => Pos: (903 to 923) SpanInfo: {"start":906,"length":17}
|
||||
>primary: primaryA
|
||||
>:=> (line 35, col 21) to (line 35, col 38)
|
||||
35 >for (let { skills: { primary: primaryA, secondary: secondaryA } } = getMultiRobot(), i = 0; i < 1; i++) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (924 to 947) SpanInfo: {"start":925,"length":21}
|
||||
>secondary: secondaryA
|
||||
>:=> (line 35, col 40) to (line 35, col 61)
|
||||
35 >for (let { skills: { primary: primaryA, secondary: secondaryA } } = getMultiRobot(), i = 0; i < 1; i++) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~=> Pos: (948 to 968) SpanInfo: {"start":896,"length":52}
|
||||
>skills: { primary: primaryA, secondary: secondaryA }
|
||||
>:=> (line 35, col 11) to (line 35, col 63)
|
||||
35 >for (let { skills: { primary: primaryA, secondary: secondaryA } } = getMultiRobot(), i = 0; i < 1; i++) {
|
||||
|
||||
~~~~~~~=> Pos: (969 to 975) SpanInfo: {"start":970,"length":5}
|
||||
>i = 0
|
||||
>:=> (line 35, col 85) to (line 35, col 90)
|
||||
35 >for (let { skills: { primary: primaryA, secondary: secondaryA } } = getMultiRobot(), i = 0; i < 1; i++) {
|
||||
|
||||
~~~~~~~=> Pos: (976 to 982) SpanInfo: {"start":977,"length":5}
|
||||
>i < 1
|
||||
>:=> (line 35, col 92) to (line 35, col 97)
|
||||
35 >for (let { skills: { primary: primaryA, secondary: secondaryA } } = getMultiRobot(), i = 0; i < 1; i++) {
|
||||
|
||||
~~~~~~~~=> Pos: (983 to 990) SpanInfo: {"start":984,"length":3}
|
||||
>i++
|
||||
>:=> (line 35, col 99) to (line 35, col 102)
|
||||
--------------------------------
|
||||
36 > console.log(primaryA);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (991 to 1017) SpanInfo: {"start":995,"length":21}
|
||||
>console.log(primaryA)
|
||||
>:=> (line 36, col 4) to (line 36, col 25)
|
||||
--------------------------------
|
||||
37 >}
|
||||
|
||||
~~ => Pos: (1018 to 1019) SpanInfo: {"start":995,"length":21}
|
||||
>console.log(primaryA)
|
||||
>:=> (line 36, col 4) to (line 36, col 25)
|
||||
--------------------------------
|
||||
38 >for (let { skills: { primary: primaryA, secondary: secondaryA } } =
|
||||
|
||||
~~~~~~~~~~~~~~~~~~ => Pos: (1020 to 1037) SpanInfo: {"start":1031,"length":52}
|
||||
>skills: { primary: primaryA, secondary: secondaryA }
|
||||
>:=> (line 38, col 11) to (line 38, col 63)
|
||||
38 >for (let { skills: { primary: primaryA, secondary: secondaryA } } =
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~ => Pos: (1038 to 1058) SpanInfo: {"start":1041,"length":17}
|
||||
>primary: primaryA
|
||||
>:=> (line 38, col 21) to (line 38, col 38)
|
||||
38 >for (let { skills: { primary: primaryA, secondary: secondaryA } } =
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (1059 to 1082) SpanInfo: {"start":1060,"length":21}
|
||||
>secondary: secondaryA
|
||||
>:=> (line 38, col 40) to (line 38, col 61)
|
||||
38 >for (let { skills: { primary: primaryA, secondary: secondaryA } } =
|
||||
|
||||
~~~~~=> Pos: (1083 to 1087) SpanInfo: {"start":1031,"length":52}
|
||||
>skills: { primary: primaryA, secondary: secondaryA }
|
||||
>:=> (line 38, col 11) to (line 38, col 63)
|
||||
--------------------------------
|
||||
39 > <MultiRobot>{ name: "trimmer", skills: { primary: "trimming", secondary: "edging" } },
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (1088 to 1178) SpanInfo: {"start":1031,"length":52}
|
||||
>skills: { primary: primaryA, secondary: secondaryA }
|
||||
>:=> (line 38, col 11) to (line 38, col 63)
|
||||
--------------------------------
|
||||
40 > i = 0; i < 1; i++) {
|
||||
|
||||
~~~~~~~~~~ => Pos: (1179 to 1188) SpanInfo: {"start":1183,"length":5}
|
||||
>i = 0
|
||||
>:=> (line 40, col 4) to (line 40, col 9)
|
||||
40 > i = 0; i < 1; i++) {
|
||||
|
||||
~~~~~~~ => Pos: (1189 to 1195) SpanInfo: {"start":1190,"length":5}
|
||||
>i < 1
|
||||
>:=> (line 40, col 11) to (line 40, col 16)
|
||||
40 > i = 0; i < 1; i++) {
|
||||
|
||||
~~~~~~~~ => Pos: (1196 to 1203) SpanInfo: {"start":1197,"length":3}
|
||||
>i++
|
||||
>:=> (line 40, col 18) to (line 40, col 21)
|
||||
--------------------------------
|
||||
41 > console.log(primaryA);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (1204 to 1230) SpanInfo: {"start":1208,"length":21}
|
||||
>console.log(primaryA)
|
||||
>:=> (line 41, col 4) to (line 41, col 25)
|
||||
--------------------------------
|
||||
42 >}
|
||||
|
||||
~~ => Pos: (1231 to 1232) SpanInfo: {"start":1208,"length":21}
|
||||
>console.log(primaryA)
|
||||
>:=> (line 41, col 4) to (line 41, col 25)
|
||||
--------------------------------
|
||||
43 >for (let {name: nameA, skill: skillA } = robot, i = 0; i < 1; i++) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~ => Pos: (1233 to 1254) SpanInfo: {"start":1243,"length":11}
|
||||
>name: nameA
|
||||
>:=> (line 43, col 10) to (line 43, col 21)
|
||||
43 >for (let {name: nameA, skill: skillA } = robot, i = 0; i < 1; i++) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (1255 to 1279) SpanInfo: {"start":1256,"length":13}
|
||||
>skill: skillA
|
||||
>:=> (line 43, col 23) to (line 43, col 36)
|
||||
43 >for (let {name: nameA, skill: skillA } = robot, i = 0; i < 1; i++) {
|
||||
|
||||
~~~~~~~=> Pos: (1280 to 1286) SpanInfo: {"start":1281,"length":5}
|
||||
>i = 0
|
||||
>:=> (line 43, col 48) to (line 43, col 53)
|
||||
43 >for (let {name: nameA, skill: skillA } = robot, i = 0; i < 1; i++) {
|
||||
|
||||
~~~~~~~=> Pos: (1287 to 1293) SpanInfo: {"start":1288,"length":5}
|
||||
>i < 1
|
||||
>:=> (line 43, col 55) to (line 43, col 60)
|
||||
43 >for (let {name: nameA, skill: skillA } = robot, i = 0; i < 1; i++) {
|
||||
|
||||
~~~~~~~~=> Pos: (1294 to 1301) SpanInfo: {"start":1295,"length":3}
|
||||
>i++
|
||||
>:=> (line 43, col 62) to (line 43, col 65)
|
||||
--------------------------------
|
||||
44 > console.log(nameA);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (1302 to 1325) SpanInfo: {"start":1306,"length":18}
|
||||
>console.log(nameA)
|
||||
>:=> (line 44, col 4) to (line 44, col 22)
|
||||
--------------------------------
|
||||
45 >}
|
||||
|
||||
~~ => Pos: (1326 to 1327) SpanInfo: {"start":1306,"length":18}
|
||||
>console.log(nameA)
|
||||
>:=> (line 44, col 4) to (line 44, col 22)
|
||||
--------------------------------
|
||||
46 >for (let {name: nameA, skill: skillA } = getRobot(), i = 0; i < 1; i++) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~ => Pos: (1328 to 1349) SpanInfo: {"start":1338,"length":11}
|
||||
>name: nameA
|
||||
>:=> (line 46, col 10) to (line 46, col 21)
|
||||
46 >for (let {name: nameA, skill: skillA } = getRobot(), i = 0; i < 1; i++) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (1350 to 1379) SpanInfo: {"start":1351,"length":13}
|
||||
>skill: skillA
|
||||
>:=> (line 46, col 23) to (line 46, col 36)
|
||||
46 >for (let {name: nameA, skill: skillA } = getRobot(), i = 0; i < 1; i++) {
|
||||
|
||||
~~~~~~~=> Pos: (1380 to 1386) SpanInfo: {"start":1381,"length":5}
|
||||
>i = 0
|
||||
>:=> (line 46, col 53) to (line 46, col 58)
|
||||
46 >for (let {name: nameA, skill: skillA } = getRobot(), i = 0; i < 1; i++) {
|
||||
|
||||
~~~~~~~=> Pos: (1387 to 1393) SpanInfo: {"start":1388,"length":5}
|
||||
>i < 1
|
||||
>:=> (line 46, col 60) to (line 46, col 65)
|
||||
46 >for (let {name: nameA, skill: skillA } = getRobot(), i = 0; i < 1; i++) {
|
||||
|
||||
~~~~~~~~=> Pos: (1394 to 1401) SpanInfo: {"start":1395,"length":3}
|
||||
>i++
|
||||
>:=> (line 46, col 67) to (line 46, col 70)
|
||||
--------------------------------
|
||||
47 > console.log(nameA);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (1402 to 1425) SpanInfo: {"start":1406,"length":18}
|
||||
>console.log(nameA)
|
||||
>:=> (line 47, col 4) to (line 47, col 22)
|
||||
--------------------------------
|
||||
48 >}
|
||||
|
||||
~~ => Pos: (1426 to 1427) SpanInfo: {"start":1406,"length":18}
|
||||
>console.log(nameA)
|
||||
>:=> (line 47, col 4) to (line 47, col 22)
|
||||
--------------------------------
|
||||
49 >for (let {name: nameA, skill: skillA } = <Robot>{ name: "trimmer", skill: "trimming" }, i = 0; i < 1; i++) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~ => Pos: (1428 to 1449) SpanInfo: {"start":1438,"length":11}
|
||||
>name: nameA
|
||||
>:=> (line 49, col 10) to (line 49, col 21)
|
||||
49 >for (let {name: nameA, skill: skillA } = <Robot>{ name: "trimmer", skill: "trimming" }, i = 0; i < 1; i++) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (1450 to 1514) SpanInfo: {"start":1451,"length":13}
|
||||
>skill: skillA
|
||||
>:=> (line 49, col 23) to (line 49, col 36)
|
||||
49 >for (let {name: nameA, skill: skillA } = <Robot>{ name: "trimmer", skill: "trimming" }, i = 0; i < 1; i++) {
|
||||
|
||||
~~~~~~~=> Pos: (1515 to 1521) SpanInfo: {"start":1516,"length":5}
|
||||
>i = 0
|
||||
>:=> (line 49, col 88) to (line 49, col 93)
|
||||
49 >for (let {name: nameA, skill: skillA } = <Robot>{ name: "trimmer", skill: "trimming" }, i = 0; i < 1; i++) {
|
||||
|
||||
~~~~~~~=> Pos: (1522 to 1528) SpanInfo: {"start":1523,"length":5}
|
||||
>i < 1
|
||||
>:=> (line 49, col 95) to (line 49, col 100)
|
||||
49 >for (let {name: nameA, skill: skillA } = <Robot>{ name: "trimmer", skill: "trimming" }, i = 0; i < 1; i++) {
|
||||
|
||||
~~~~~~~~=> Pos: (1529 to 1536) SpanInfo: {"start":1530,"length":3}
|
||||
>i++
|
||||
>:=> (line 49, col 102) to (line 49, col 105)
|
||||
--------------------------------
|
||||
50 > console.log(nameA);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (1537 to 1560) SpanInfo: {"start":1541,"length":18}
|
||||
>console.log(nameA)
|
||||
>:=> (line 50, col 4) to (line 50, col 22)
|
||||
--------------------------------
|
||||
51 >}
|
||||
|
||||
~~ => Pos: (1561 to 1562) SpanInfo: {"start":1541,"length":18}
|
||||
>console.log(nameA)
|
||||
>:=> (line 50, col 4) to (line 50, col 22)
|
||||
--------------------------------
|
||||
52 >for (let {name: nameA, skills: { primary: primaryA, secondary: secondaryA } } = multiRobot, i = 0; i < 1; i++) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~ => Pos: (1563 to 1584) SpanInfo: {"start":1573,"length":11}
|
||||
>name: nameA
|
||||
>:=> (line 52, col 10) to (line 52, col 21)
|
||||
52 >for (let {name: nameA, skills: { primary: primaryA, secondary: secondaryA } } = multiRobot, i = 0; i < 1; i++) {
|
||||
|
||||
~~~~~~~~ => Pos: (1585 to 1592) SpanInfo: {"start":1586,"length":52}
|
||||
>skills: { primary: primaryA, secondary: secondaryA }
|
||||
>:=> (line 52, col 23) to (line 52, col 75)
|
||||
52 >for (let {name: nameA, skills: { primary: primaryA, secondary: secondaryA } } = multiRobot, i = 0; i < 1; i++) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~=> Pos: (1593 to 1613) SpanInfo: {"start":1596,"length":17}
|
||||
>primary: primaryA
|
||||
>:=> (line 52, col 33) to (line 52, col 50)
|
||||
52 >for (let {name: nameA, skills: { primary: primaryA, secondary: secondaryA } } = multiRobot, i = 0; i < 1; i++) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (1614 to 1637) SpanInfo: {"start":1615,"length":21}
|
||||
>secondary: secondaryA
|
||||
>:=> (line 52, col 52) to (line 52, col 73)
|
||||
52 >for (let {name: nameA, skills: { primary: primaryA, secondary: secondaryA } } = multiRobot, i = 0; i < 1; i++) {
|
||||
|
||||
~~~~~~~~~~~~~~~~=> Pos: (1638 to 1653) SpanInfo: {"start":1586,"length":52}
|
||||
>skills: { primary: primaryA, secondary: secondaryA }
|
||||
>:=> (line 52, col 23) to (line 52, col 75)
|
||||
52 >for (let {name: nameA, skills: { primary: primaryA, secondary: secondaryA } } = multiRobot, i = 0; i < 1; i++) {
|
||||
|
||||
~~~~~~~=> Pos: (1654 to 1660) SpanInfo: {"start":1655,"length":5}
|
||||
>i = 0
|
||||
>:=> (line 52, col 92) to (line 52, col 97)
|
||||
52 >for (let {name: nameA, skills: { primary: primaryA, secondary: secondaryA } } = multiRobot, i = 0; i < 1; i++) {
|
||||
|
||||
~~~~~~~=> Pos: (1661 to 1667) SpanInfo: {"start":1662,"length":5}
|
||||
>i < 1
|
||||
>:=> (line 52, col 99) to (line 52, col 104)
|
||||
52 >for (let {name: nameA, skills: { primary: primaryA, secondary: secondaryA } } = multiRobot, i = 0; i < 1; i++) {
|
||||
|
||||
~~~~~~~~=> Pos: (1668 to 1675) SpanInfo: {"start":1669,"length":3}
|
||||
>i++
|
||||
>:=> (line 52, col 106) to (line 52, col 109)
|
||||
--------------------------------
|
||||
53 > console.log(primaryA);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (1676 to 1702) SpanInfo: {"start":1680,"length":21}
|
||||
>console.log(primaryA)
|
||||
>:=> (line 53, col 4) to (line 53, col 25)
|
||||
--------------------------------
|
||||
54 >}
|
||||
|
||||
~~ => Pos: (1703 to 1704) SpanInfo: {"start":1680,"length":21}
|
||||
>console.log(primaryA)
|
||||
>:=> (line 53, col 4) to (line 53, col 25)
|
||||
--------------------------------
|
||||
55 >for (let {name: nameA, skills: { primary: primaryA, secondary: secondaryA } } = getMultiRobot(), i = 0; i < 1; i++) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~ => Pos: (1705 to 1726) SpanInfo: {"start":1715,"length":11}
|
||||
>name: nameA
|
||||
>:=> (line 55, col 10) to (line 55, col 21)
|
||||
55 >for (let {name: nameA, skills: { primary: primaryA, secondary: secondaryA } } = getMultiRobot(), i = 0; i < 1; i++) {
|
||||
|
||||
~~~~~~~~ => Pos: (1727 to 1734) SpanInfo: {"start":1728,"length":52}
|
||||
>skills: { primary: primaryA, secondary: secondaryA }
|
||||
>:=> (line 55, col 23) to (line 55, col 75)
|
||||
55 >for (let {name: nameA, skills: { primary: primaryA, secondary: secondaryA } } = getMultiRobot(), i = 0; i < 1; i++) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~=> Pos: (1735 to 1755) SpanInfo: {"start":1738,"length":17}
|
||||
>primary: primaryA
|
||||
>:=> (line 55, col 33) to (line 55, col 50)
|
||||
55 >for (let {name: nameA, skills: { primary: primaryA, secondary: secondaryA } } = getMultiRobot(), i = 0; i < 1; i++) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (1756 to 1779) SpanInfo: {"start":1757,"length":21}
|
||||
>secondary: secondaryA
|
||||
>:=> (line 55, col 52) to (line 55, col 73)
|
||||
55 >for (let {name: nameA, skills: { primary: primaryA, secondary: secondaryA } } = getMultiRobot(), i = 0; i < 1; i++) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~=> Pos: (1780 to 1800) SpanInfo: {"start":1728,"length":52}
|
||||
>skills: { primary: primaryA, secondary: secondaryA }
|
||||
>:=> (line 55, col 23) to (line 55, col 75)
|
||||
55 >for (let {name: nameA, skills: { primary: primaryA, secondary: secondaryA } } = getMultiRobot(), i = 0; i < 1; i++) {
|
||||
|
||||
~~~~~~~=> Pos: (1801 to 1807) SpanInfo: {"start":1802,"length":5}
|
||||
>i = 0
|
||||
>:=> (line 55, col 97) to (line 55, col 102)
|
||||
55 >for (let {name: nameA, skills: { primary: primaryA, secondary: secondaryA } } = getMultiRobot(), i = 0; i < 1; i++) {
|
||||
|
||||
~~~~~~~=> Pos: (1808 to 1814) SpanInfo: {"start":1809,"length":5}
|
||||
>i < 1
|
||||
>:=> (line 55, col 104) to (line 55, col 109)
|
||||
55 >for (let {name: nameA, skills: { primary: primaryA, secondary: secondaryA } } = getMultiRobot(), i = 0; i < 1; i++) {
|
||||
|
||||
~~~~~~~~=> Pos: (1815 to 1822) SpanInfo: {"start":1816,"length":3}
|
||||
>i++
|
||||
>:=> (line 55, col 111) to (line 55, col 114)
|
||||
--------------------------------
|
||||
56 > console.log(primaryA);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (1823 to 1849) SpanInfo: {"start":1827,"length":21}
|
||||
>console.log(primaryA)
|
||||
>:=> (line 56, col 4) to (line 56, col 25)
|
||||
--------------------------------
|
||||
57 >}
|
||||
|
||||
~~ => Pos: (1850 to 1851) SpanInfo: {"start":1827,"length":21}
|
||||
>console.log(primaryA)
|
||||
>:=> (line 56, col 4) to (line 56, col 25)
|
||||
--------------------------------
|
||||
58 >for (let {name: nameA, skills: { primary: primaryA, secondary: secondaryA } } =
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~ => Pos: (1852 to 1873) SpanInfo: {"start":1862,"length":11}
|
||||
>name: nameA
|
||||
>:=> (line 58, col 10) to (line 58, col 21)
|
||||
58 >for (let {name: nameA, skills: { primary: primaryA, secondary: secondaryA } } =
|
||||
|
||||
~~~~~~~~ => Pos: (1874 to 1881) SpanInfo: {"start":1875,"length":52}
|
||||
>skills: { primary: primaryA, secondary: secondaryA }
|
||||
>:=> (line 58, col 23) to (line 58, col 75)
|
||||
58 >for (let {name: nameA, skills: { primary: primaryA, secondary: secondaryA } } =
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~=> Pos: (1882 to 1902) SpanInfo: {"start":1885,"length":17}
|
||||
>primary: primaryA
|
||||
>:=> (line 58, col 33) to (line 58, col 50)
|
||||
58 >for (let {name: nameA, skills: { primary: primaryA, secondary: secondaryA } } =
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (1903 to 1926) SpanInfo: {"start":1904,"length":21}
|
||||
>secondary: secondaryA
|
||||
>:=> (line 58, col 52) to (line 58, col 73)
|
||||
58 >for (let {name: nameA, skills: { primary: primaryA, secondary: secondaryA } } =
|
||||
|
||||
~~~~~=> Pos: (1927 to 1931) SpanInfo: {"start":1875,"length":52}
|
||||
>skills: { primary: primaryA, secondary: secondaryA }
|
||||
>:=> (line 58, col 23) to (line 58, col 75)
|
||||
--------------------------------
|
||||
59 > <MultiRobot>{ name: "trimmer", skills: { primary: "trimming", secondary: "edging" } },
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (1932 to 2022) SpanInfo: {"start":1875,"length":52}
|
||||
>skills: { primary: primaryA, secondary: secondaryA }
|
||||
>:=> (line 58, col 23) to (line 58, col 75)
|
||||
--------------------------------
|
||||
60 > i = 0; i < 1; i++) {
|
||||
|
||||
~~~~~~~~~~ => Pos: (2023 to 2032) SpanInfo: {"start":2027,"length":5}
|
||||
>i = 0
|
||||
>:=> (line 60, col 4) to (line 60, col 9)
|
||||
60 > i = 0; i < 1; i++) {
|
||||
|
||||
~~~~~~~ => Pos: (2033 to 2039) SpanInfo: {"start":2034,"length":5}
|
||||
>i < 1
|
||||
>:=> (line 60, col 11) to (line 60, col 16)
|
||||
60 > i = 0; i < 1; i++) {
|
||||
|
||||
~~~~~~~~ => Pos: (2040 to 2047) SpanInfo: {"start":2041,"length":3}
|
||||
>i++
|
||||
>:=> (line 60, col 18) to (line 60, col 21)
|
||||
--------------------------------
|
||||
61 > console.log(primaryA);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (2048 to 2074) SpanInfo: {"start":2052,"length":21}
|
||||
>console.log(primaryA)
|
||||
>:=> (line 61, col 4) to (line 61, col 25)
|
||||
--------------------------------
|
||||
62 >}
|
||||
~ => Pos: (2075 to 2075) SpanInfo: {"start":2052,"length":21}
|
||||
>console.log(primaryA)
|
||||
>:=> (line 61, col 4) to (line 61, col 25)
|
||||
+837
@@ -0,0 +1,837 @@
|
||||
|
||||
1 >declare var console: {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (0 to 22) SpanInfo: undefined
|
||||
--------------------------------
|
||||
2 > log(msg: any): void;
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (23 to 47) SpanInfo: undefined
|
||||
--------------------------------
|
||||
3 >}
|
||||
|
||||
~~ => Pos: (48 to 49) SpanInfo: undefined
|
||||
--------------------------------
|
||||
4 >interface Robot {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~ => Pos: (50 to 67) SpanInfo: undefined
|
||||
--------------------------------
|
||||
5 > name: string;
|
||||
|
||||
~~~~~~~~~~~~~~~~~~ => Pos: (68 to 85) SpanInfo: undefined
|
||||
--------------------------------
|
||||
6 > skill: string;
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~ => Pos: (86 to 104) SpanInfo: undefined
|
||||
--------------------------------
|
||||
7 >}
|
||||
|
||||
~~ => Pos: (105 to 106) SpanInfo: undefined
|
||||
--------------------------------
|
||||
8 >interface MultiRobot {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (107 to 129) SpanInfo: undefined
|
||||
--------------------------------
|
||||
9 > name: string;
|
||||
|
||||
~~~~~~~~~~~~~~~~~~ => Pos: (130 to 147) SpanInfo: undefined
|
||||
--------------------------------
|
||||
10 > skills: {
|
||||
|
||||
~~~~~~~~~~~~~~ => Pos: (148 to 161) SpanInfo: undefined
|
||||
--------------------------------
|
||||
11 > primary?: string;
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (162 to 187) SpanInfo: undefined
|
||||
--------------------------------
|
||||
12 > secondary?: string;
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (188 to 215) SpanInfo: undefined
|
||||
--------------------------------
|
||||
13 > };
|
||||
|
||||
~~~~~~~ => Pos: (216 to 222) SpanInfo: undefined
|
||||
--------------------------------
|
||||
14 >}
|
||||
|
||||
~~ => Pos: (223 to 224) SpanInfo: undefined
|
||||
--------------------------------
|
||||
15 >let robot: Robot = { name: "mower", skill: "mowing" };
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (225 to 279) SpanInfo: {"start":225,"length":53}
|
||||
>let robot: Robot = { name: "mower", skill: "mowing" }
|
||||
>:=> (line 15, col 0) to (line 15, col 53)
|
||||
--------------------------------
|
||||
16 >let multiRobot: MultiRobot = { name: "mower", skills: { primary: "mowing", secondary: "none" } };
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (280 to 377) SpanInfo: {"start":280,"length":96}
|
||||
>let multiRobot: MultiRobot = { name: "mower", skills: { primary: "mowing", secondary: "none" } }
|
||||
>:=> (line 16, col 0) to (line 16, col 96)
|
||||
--------------------------------
|
||||
17 >function getRobot() {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~ => Pos: (378 to 399) SpanInfo: {"start":404,"length":12}
|
||||
>return robot
|
||||
>:=> (line 18, col 4) to (line 18, col 16)
|
||||
--------------------------------
|
||||
18 > return robot;
|
||||
|
||||
~~~~~~~~~~~~~~~~~~ => Pos: (400 to 417) SpanInfo: {"start":404,"length":12}
|
||||
>return robot
|
||||
>:=> (line 18, col 4) to (line 18, col 16)
|
||||
--------------------------------
|
||||
19 >}
|
||||
|
||||
~~ => Pos: (418 to 419) SpanInfo: {"start":418,"length":1}
|
||||
>}
|
||||
>:=> (line 19, col 0) to (line 19, col 1)
|
||||
--------------------------------
|
||||
20 >function getMultiRobot() {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (420 to 446) SpanInfo: {"start":451,"length":17}
|
||||
>return multiRobot
|
||||
>:=> (line 21, col 4) to (line 21, col 21)
|
||||
--------------------------------
|
||||
21 > return multiRobot;
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (447 to 469) SpanInfo: {"start":451,"length":17}
|
||||
>return multiRobot
|
||||
>:=> (line 21, col 4) to (line 21, col 21)
|
||||
--------------------------------
|
||||
22 >}
|
||||
|
||||
~~ => Pos: (470 to 471) SpanInfo: {"start":470,"length":1}
|
||||
>}
|
||||
>:=> (line 22, col 0) to (line 22, col 1)
|
||||
--------------------------------
|
||||
23 >for (let {name: nameA= "noName" } = robot, i = 0; i < 1; i++) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (472 to 513) SpanInfo: {"start":482,"length":21}
|
||||
>name: nameA= "noName"
|
||||
>:=> (line 23, col 10) to (line 23, col 31)
|
||||
23 >for (let {name: nameA= "noName" } = robot, i = 0; i < 1; i++) {
|
||||
|
||||
~~~~~~~=> Pos: (514 to 520) SpanInfo: {"start":515,"length":5}
|
||||
>i = 0
|
||||
>:=> (line 23, col 43) to (line 23, col 48)
|
||||
23 >for (let {name: nameA= "noName" } = robot, i = 0; i < 1; i++) {
|
||||
|
||||
~~~~~~~=> Pos: (521 to 527) SpanInfo: {"start":522,"length":5}
|
||||
>i < 1
|
||||
>:=> (line 23, col 50) to (line 23, col 55)
|
||||
23 >for (let {name: nameA= "noName" } = robot, i = 0; i < 1; i++) {
|
||||
|
||||
~~~~~~~~=> Pos: (528 to 535) SpanInfo: {"start":529,"length":3}
|
||||
>i++
|
||||
>:=> (line 23, col 57) to (line 23, col 60)
|
||||
--------------------------------
|
||||
24 > console.log(nameA);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (536 to 559) SpanInfo: {"start":540,"length":18}
|
||||
>console.log(nameA)
|
||||
>:=> (line 24, col 4) to (line 24, col 22)
|
||||
--------------------------------
|
||||
25 >}
|
||||
|
||||
~~ => Pos: (560 to 561) SpanInfo: {"start":540,"length":18}
|
||||
>console.log(nameA)
|
||||
>:=> (line 24, col 4) to (line 24, col 22)
|
||||
--------------------------------
|
||||
26 >for (let {name: nameA = "noName" } = getRobot(), i = 0; i < 1; i++) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (562 to 609) SpanInfo: {"start":572,"length":22}
|
||||
>name: nameA = "noName"
|
||||
>:=> (line 26, col 10) to (line 26, col 32)
|
||||
26 >for (let {name: nameA = "noName" } = getRobot(), i = 0; i < 1; i++) {
|
||||
|
||||
~~~~~~~=> Pos: (610 to 616) SpanInfo: {"start":611,"length":5}
|
||||
>i = 0
|
||||
>:=> (line 26, col 49) to (line 26, col 54)
|
||||
26 >for (let {name: nameA = "noName" } = getRobot(), i = 0; i < 1; i++) {
|
||||
|
||||
~~~~~~~=> Pos: (617 to 623) SpanInfo: {"start":618,"length":5}
|
||||
>i < 1
|
||||
>:=> (line 26, col 56) to (line 26, col 61)
|
||||
26 >for (let {name: nameA = "noName" } = getRobot(), i = 0; i < 1; i++) {
|
||||
|
||||
~~~~~~~~=> Pos: (624 to 631) SpanInfo: {"start":625,"length":3}
|
||||
>i++
|
||||
>:=> (line 26, col 63) to (line 26, col 66)
|
||||
--------------------------------
|
||||
27 > console.log(nameA);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (632 to 655) SpanInfo: {"start":636,"length":18}
|
||||
>console.log(nameA)
|
||||
>:=> (line 27, col 4) to (line 27, col 22)
|
||||
--------------------------------
|
||||
28 >}
|
||||
|
||||
~~ => Pos: (656 to 657) SpanInfo: {"start":636,"length":18}
|
||||
>console.log(nameA)
|
||||
>:=> (line 27, col 4) to (line 27, col 22)
|
||||
--------------------------------
|
||||
29 >for (let {name: nameA = "noName" } = <Robot>{ name: "trimmer", skill: "trimming" }, i = 0; i < 1; i++) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (658 to 740) SpanInfo: {"start":668,"length":22}
|
||||
>name: nameA = "noName"
|
||||
>:=> (line 29, col 10) to (line 29, col 32)
|
||||
29 >for (let {name: nameA = "noName" } = <Robot>{ name: "trimmer", skill: "trimming" }, i = 0; i < 1; i++) {
|
||||
|
||||
~~~~~~~=> Pos: (741 to 747) SpanInfo: {"start":742,"length":5}
|
||||
>i = 0
|
||||
>:=> (line 29, col 84) to (line 29, col 89)
|
||||
29 >for (let {name: nameA = "noName" } = <Robot>{ name: "trimmer", skill: "trimming" }, i = 0; i < 1; i++) {
|
||||
|
||||
~~~~~~~=> Pos: (748 to 754) SpanInfo: {"start":749,"length":5}
|
||||
>i < 1
|
||||
>:=> (line 29, col 91) to (line 29, col 96)
|
||||
29 >for (let {name: nameA = "noName" } = <Robot>{ name: "trimmer", skill: "trimming" }, i = 0; i < 1; i++) {
|
||||
|
||||
~~~~~~~~=> Pos: (755 to 762) SpanInfo: {"start":756,"length":3}
|
||||
>i++
|
||||
>:=> (line 29, col 98) to (line 29, col 101)
|
||||
--------------------------------
|
||||
30 > console.log(nameA);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (763 to 786) SpanInfo: {"start":767,"length":18}
|
||||
>console.log(nameA)
|
||||
>:=> (line 30, col 4) to (line 30, col 22)
|
||||
--------------------------------
|
||||
31 >}
|
||||
|
||||
~~ => Pos: (787 to 788) SpanInfo: {"start":767,"length":18}
|
||||
>console.log(nameA)
|
||||
>:=> (line 30, col 4) to (line 30, col 22)
|
||||
--------------------------------
|
||||
32 >for (let {
|
||||
|
||||
~~~~~~~~~~~ => Pos: (789 to 799) SpanInfo: {"start":804,"length":139}
|
||||
>skills: {
|
||||
> primary: primaryA = "primary",
|
||||
> secondary: secondaryA = "secondary"
|
||||
> } = { primary: "none", secondary: "none" }
|
||||
>:=> (line 33, col 4) to (line 36, col 46)
|
||||
--------------------------------
|
||||
33 > skills: {
|
||||
|
||||
~~~~~~~~~~~ => Pos: (800 to 810) SpanInfo: {"start":804,"length":139}
|
||||
>skills: {
|
||||
> primary: primaryA = "primary",
|
||||
> secondary: secondaryA = "secondary"
|
||||
> } = { primary: "none", secondary: "none" }
|
||||
>:=> (line 33, col 4) to (line 36, col 46)
|
||||
33 > skills: {
|
||||
|
||||
~~~ => Pos: (811 to 813) SpanInfo: {"start":822,"length":29}
|
||||
>primary: primaryA = "primary"
|
||||
>:=> (line 34, col 8) to (line 34, col 37)
|
||||
--------------------------------
|
||||
34 > primary: primaryA = "primary",
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (814 to 852) SpanInfo: {"start":822,"length":29}
|
||||
>primary: primaryA = "primary"
|
||||
>:=> (line 34, col 8) to (line 34, col 37)
|
||||
--------------------------------
|
||||
35 > secondary: secondaryA = "secondary"
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (853 to 896) SpanInfo: {"start":861,"length":35}
|
||||
>secondary: secondaryA = "secondary"
|
||||
>:=> (line 35, col 8) to (line 35, col 43)
|
||||
--------------------------------
|
||||
36 > } = { primary: "none", secondary: "none" }
|
||||
|
||||
~~~~~ => Pos: (897 to 901) SpanInfo: {"start":861,"length":35}
|
||||
>secondary: secondaryA = "secondary"
|
||||
>:=> (line 35, col 8) to (line 35, col 43)
|
||||
36 > } = { primary: "none", secondary: "none" }
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (902 to 943) SpanInfo: {"start":804,"length":139}
|
||||
>skills: {
|
||||
> primary: primaryA = "primary",
|
||||
> secondary: secondaryA = "secondary"
|
||||
> } = { primary: "none", secondary: "none" }
|
||||
>:=> (line 33, col 4) to (line 36, col 46)
|
||||
--------------------------------
|
||||
37 >} = multiRobot, i = 0; i < 1; i++) {
|
||||
|
||||
~~~~~~~~~~~~~~~ => Pos: (944 to 958) SpanInfo: {"start":804,"length":139}
|
||||
>skills: {
|
||||
> primary: primaryA = "primary",
|
||||
> secondary: secondaryA = "secondary"
|
||||
> } = { primary: "none", secondary: "none" }
|
||||
>:=> (line 33, col 4) to (line 36, col 46)
|
||||
37 >} = multiRobot, i = 0; i < 1; i++) {
|
||||
|
||||
~~~~~~~ => Pos: (959 to 965) SpanInfo: {"start":960,"length":5}
|
||||
>i = 0
|
||||
>:=> (line 37, col 16) to (line 37, col 21)
|
||||
37 >} = multiRobot, i = 0; i < 1; i++) {
|
||||
|
||||
~~~~~~~ => Pos: (966 to 972) SpanInfo: {"start":967,"length":5}
|
||||
>i < 1
|
||||
>:=> (line 37, col 23) to (line 37, col 28)
|
||||
37 >} = multiRobot, i = 0; i < 1; i++) {
|
||||
|
||||
~~~~~~~~ => Pos: (973 to 980) SpanInfo: {"start":974,"length":3}
|
||||
>i++
|
||||
>:=> (line 37, col 30) to (line 37, col 33)
|
||||
--------------------------------
|
||||
38 > console.log(primaryA);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (981 to 1007) SpanInfo: {"start":985,"length":21}
|
||||
>console.log(primaryA)
|
||||
>:=> (line 38, col 4) to (line 38, col 25)
|
||||
--------------------------------
|
||||
39 >}
|
||||
|
||||
~~ => Pos: (1008 to 1009) SpanInfo: {"start":985,"length":21}
|
||||
>console.log(primaryA)
|
||||
>:=> (line 38, col 4) to (line 38, col 25)
|
||||
--------------------------------
|
||||
40 >for (let {
|
||||
|
||||
~~~~~~~~~~~ => Pos: (1010 to 1020) SpanInfo: {"start":1025,"length":139}
|
||||
>skills: {
|
||||
> primary: primaryA = "primary",
|
||||
> secondary: secondaryA = "secondary"
|
||||
> } = { primary: "none", secondary: "none" }
|
||||
>:=> (line 41, col 4) to (line 44, col 46)
|
||||
--------------------------------
|
||||
41 > skills: {
|
||||
|
||||
~~~~~~~~~~~ => Pos: (1021 to 1031) SpanInfo: {"start":1025,"length":139}
|
||||
>skills: {
|
||||
> primary: primaryA = "primary",
|
||||
> secondary: secondaryA = "secondary"
|
||||
> } = { primary: "none", secondary: "none" }
|
||||
>:=> (line 41, col 4) to (line 44, col 46)
|
||||
41 > skills: {
|
||||
|
||||
~~~ => Pos: (1032 to 1034) SpanInfo: {"start":1043,"length":29}
|
||||
>primary: primaryA = "primary"
|
||||
>:=> (line 42, col 8) to (line 42, col 37)
|
||||
--------------------------------
|
||||
42 > primary: primaryA = "primary",
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (1035 to 1073) SpanInfo: {"start":1043,"length":29}
|
||||
>primary: primaryA = "primary"
|
||||
>:=> (line 42, col 8) to (line 42, col 37)
|
||||
--------------------------------
|
||||
43 > secondary: secondaryA = "secondary"
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (1074 to 1117) SpanInfo: {"start":1082,"length":35}
|
||||
>secondary: secondaryA = "secondary"
|
||||
>:=> (line 43, col 8) to (line 43, col 43)
|
||||
--------------------------------
|
||||
44 > } = { primary: "none", secondary: "none" }
|
||||
|
||||
~~~~~ => Pos: (1118 to 1122) SpanInfo: {"start":1082,"length":35}
|
||||
>secondary: secondaryA = "secondary"
|
||||
>:=> (line 43, col 8) to (line 43, col 43)
|
||||
44 > } = { primary: "none", secondary: "none" }
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (1123 to 1164) SpanInfo: {"start":1025,"length":139}
|
||||
>skills: {
|
||||
> primary: primaryA = "primary",
|
||||
> secondary: secondaryA = "secondary"
|
||||
> } = { primary: "none", secondary: "none" }
|
||||
>:=> (line 41, col 4) to (line 44, col 46)
|
||||
--------------------------------
|
||||
45 >} = getMultiRobot(), i = 0; i < 1; i++) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~ => Pos: (1165 to 1184) SpanInfo: {"start":1025,"length":139}
|
||||
>skills: {
|
||||
> primary: primaryA = "primary",
|
||||
> secondary: secondaryA = "secondary"
|
||||
> } = { primary: "none", secondary: "none" }
|
||||
>:=> (line 41, col 4) to (line 44, col 46)
|
||||
45 >} = getMultiRobot(), i = 0; i < 1; i++) {
|
||||
|
||||
~~~~~~~ => Pos: (1185 to 1191) SpanInfo: {"start":1186,"length":5}
|
||||
>i = 0
|
||||
>:=> (line 45, col 21) to (line 45, col 26)
|
||||
45 >} = getMultiRobot(), i = 0; i < 1; i++) {
|
||||
|
||||
~~~~~~~ => Pos: (1192 to 1198) SpanInfo: {"start":1193,"length":5}
|
||||
>i < 1
|
||||
>:=> (line 45, col 28) to (line 45, col 33)
|
||||
45 >} = getMultiRobot(), i = 0; i < 1; i++) {
|
||||
|
||||
~~~~~~~~ => Pos: (1199 to 1206) SpanInfo: {"start":1200,"length":3}
|
||||
>i++
|
||||
>:=> (line 45, col 35) to (line 45, col 38)
|
||||
--------------------------------
|
||||
46 > console.log(primaryA);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (1207 to 1233) SpanInfo: {"start":1211,"length":21}
|
||||
>console.log(primaryA)
|
||||
>:=> (line 46, col 4) to (line 46, col 25)
|
||||
--------------------------------
|
||||
47 >}
|
||||
|
||||
~~ => Pos: (1234 to 1235) SpanInfo: {"start":1211,"length":21}
|
||||
>console.log(primaryA)
|
||||
>:=> (line 46, col 4) to (line 46, col 25)
|
||||
--------------------------------
|
||||
48 >for (let {
|
||||
|
||||
~~~~~~~~~~~ => Pos: (1236 to 1246) SpanInfo: {"start":1251,"length":139}
|
||||
>skills: {
|
||||
> primary: primaryA = "primary",
|
||||
> secondary: secondaryA = "secondary"
|
||||
> } = { primary: "none", secondary: "none" }
|
||||
>:=> (line 49, col 4) to (line 52, col 46)
|
||||
--------------------------------
|
||||
49 > skills: {
|
||||
|
||||
~~~~~~~~~~~ => Pos: (1247 to 1257) SpanInfo: {"start":1251,"length":139}
|
||||
>skills: {
|
||||
> primary: primaryA = "primary",
|
||||
> secondary: secondaryA = "secondary"
|
||||
> } = { primary: "none", secondary: "none" }
|
||||
>:=> (line 49, col 4) to (line 52, col 46)
|
||||
49 > skills: {
|
||||
|
||||
~~~ => Pos: (1258 to 1260) SpanInfo: {"start":1269,"length":29}
|
||||
>primary: primaryA = "primary"
|
||||
>:=> (line 50, col 8) to (line 50, col 37)
|
||||
--------------------------------
|
||||
50 > primary: primaryA = "primary",
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (1261 to 1299) SpanInfo: {"start":1269,"length":29}
|
||||
>primary: primaryA = "primary"
|
||||
>:=> (line 50, col 8) to (line 50, col 37)
|
||||
--------------------------------
|
||||
51 > secondary: secondaryA = "secondary"
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (1300 to 1343) SpanInfo: {"start":1308,"length":35}
|
||||
>secondary: secondaryA = "secondary"
|
||||
>:=> (line 51, col 8) to (line 51, col 43)
|
||||
--------------------------------
|
||||
52 > } = { primary: "none", secondary: "none" }
|
||||
|
||||
~~~~~ => Pos: (1344 to 1348) SpanInfo: {"start":1308,"length":35}
|
||||
>secondary: secondaryA = "secondary"
|
||||
>:=> (line 51, col 8) to (line 51, col 43)
|
||||
52 > } = { primary: "none", secondary: "none" }
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (1349 to 1390) SpanInfo: {"start":1251,"length":139}
|
||||
>skills: {
|
||||
> primary: primaryA = "primary",
|
||||
> secondary: secondaryA = "secondary"
|
||||
> } = { primary: "none", secondary: "none" }
|
||||
>:=> (line 49, col 4) to (line 52, col 46)
|
||||
--------------------------------
|
||||
53 >} = <MultiRobot>{ name: "trimmer", skills: { primary: "trimming", secondary: "edging" } },
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (1391 to 1481) SpanInfo: {"start":1251,"length":139}
|
||||
>skills: {
|
||||
> primary: primaryA = "primary",
|
||||
> secondary: secondaryA = "secondary"
|
||||
> } = { primary: "none", secondary: "none" }
|
||||
>:=> (line 49, col 4) to (line 52, col 46)
|
||||
--------------------------------
|
||||
54 > i = 0; i < 1; i++) {
|
||||
|
||||
~~~~~~~~~~ => Pos: (1482 to 1491) SpanInfo: {"start":1486,"length":5}
|
||||
>i = 0
|
||||
>:=> (line 54, col 4) to (line 54, col 9)
|
||||
54 > i = 0; i < 1; i++) {
|
||||
|
||||
~~~~~~~ => Pos: (1492 to 1498) SpanInfo: {"start":1493,"length":5}
|
||||
>i < 1
|
||||
>:=> (line 54, col 11) to (line 54, col 16)
|
||||
54 > i = 0; i < 1; i++) {
|
||||
|
||||
~~~~~~~~ => Pos: (1499 to 1506) SpanInfo: {"start":1500,"length":3}
|
||||
>i++
|
||||
>:=> (line 54, col 18) to (line 54, col 21)
|
||||
--------------------------------
|
||||
55 > console.log(primaryA);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (1507 to 1533) SpanInfo: {"start":1511,"length":21}
|
||||
>console.log(primaryA)
|
||||
>:=> (line 55, col 4) to (line 55, col 25)
|
||||
--------------------------------
|
||||
56 >}
|
||||
|
||||
~~ => Pos: (1534 to 1535) SpanInfo: {"start":1511,"length":21}
|
||||
>console.log(primaryA)
|
||||
>:=> (line 55, col 4) to (line 55, col 25)
|
||||
--------------------------------
|
||||
57 >for (let {name: nameA = "noName", skill: skillA = "skill" } = robot, i = 0; i < 1; i++) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (1536 to 1568) SpanInfo: {"start":1546,"length":22}
|
||||
>name: nameA = "noName"
|
||||
>:=> (line 57, col 10) to (line 57, col 32)
|
||||
57 >for (let {name: nameA = "noName", skill: skillA = "skill" } = robot, i = 0; i < 1; i++) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (1569 to 1603) SpanInfo: {"start":1570,"length":23}
|
||||
>skill: skillA = "skill"
|
||||
>:=> (line 57, col 34) to (line 57, col 57)
|
||||
57 >for (let {name: nameA = "noName", skill: skillA = "skill" } = robot, i = 0; i < 1; i++) {
|
||||
|
||||
~~~~~~~=> Pos: (1604 to 1610) SpanInfo: {"start":1605,"length":5}
|
||||
>i = 0
|
||||
>:=> (line 57, col 69) to (line 57, col 74)
|
||||
57 >for (let {name: nameA = "noName", skill: skillA = "skill" } = robot, i = 0; i < 1; i++) {
|
||||
|
||||
~~~~~~~=> Pos: (1611 to 1617) SpanInfo: {"start":1612,"length":5}
|
||||
>i < 1
|
||||
>:=> (line 57, col 76) to (line 57, col 81)
|
||||
57 >for (let {name: nameA = "noName", skill: skillA = "skill" } = robot, i = 0; i < 1; i++) {
|
||||
|
||||
~~~~~~~~=> Pos: (1618 to 1625) SpanInfo: {"start":1619,"length":3}
|
||||
>i++
|
||||
>:=> (line 57, col 83) to (line 57, col 86)
|
||||
--------------------------------
|
||||
58 > console.log(nameA);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (1626 to 1649) SpanInfo: {"start":1630,"length":18}
|
||||
>console.log(nameA)
|
||||
>:=> (line 58, col 4) to (line 58, col 22)
|
||||
--------------------------------
|
||||
59 >}
|
||||
|
||||
~~ => Pos: (1650 to 1651) SpanInfo: {"start":1630,"length":18}
|
||||
>console.log(nameA)
|
||||
>:=> (line 58, col 4) to (line 58, col 22)
|
||||
--------------------------------
|
||||
60 >for (let {name: nameA = "noName", skill: skillA = "skill" } = getRobot(), i = 0; i < 1; i++) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (1652 to 1684) SpanInfo: {"start":1662,"length":22}
|
||||
>name: nameA = "noName"
|
||||
>:=> (line 60, col 10) to (line 60, col 32)
|
||||
60 >for (let {name: nameA = "noName", skill: skillA = "skill" } = getRobot(), i = 0; i < 1; i++) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (1685 to 1724) SpanInfo: {"start":1686,"length":23}
|
||||
>skill: skillA = "skill"
|
||||
>:=> (line 60, col 34) to (line 60, col 57)
|
||||
60 >for (let {name: nameA = "noName", skill: skillA = "skill" } = getRobot(), i = 0; i < 1; i++) {
|
||||
|
||||
~~~~~~~=> Pos: (1725 to 1731) SpanInfo: {"start":1726,"length":5}
|
||||
>i = 0
|
||||
>:=> (line 60, col 74) to (line 60, col 79)
|
||||
60 >for (let {name: nameA = "noName", skill: skillA = "skill" } = getRobot(), i = 0; i < 1; i++) {
|
||||
|
||||
~~~~~~~=> Pos: (1732 to 1738) SpanInfo: {"start":1733,"length":5}
|
||||
>i < 1
|
||||
>:=> (line 60, col 81) to (line 60, col 86)
|
||||
60 >for (let {name: nameA = "noName", skill: skillA = "skill" } = getRobot(), i = 0; i < 1; i++) {
|
||||
|
||||
~~~~~~~~=> Pos: (1739 to 1746) SpanInfo: {"start":1740,"length":3}
|
||||
>i++
|
||||
>:=> (line 60, col 88) to (line 60, col 91)
|
||||
--------------------------------
|
||||
61 > console.log(nameA);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (1747 to 1770) SpanInfo: {"start":1751,"length":18}
|
||||
>console.log(nameA)
|
||||
>:=> (line 61, col 4) to (line 61, col 22)
|
||||
--------------------------------
|
||||
62 >}
|
||||
|
||||
~~ => Pos: (1771 to 1772) SpanInfo: {"start":1751,"length":18}
|
||||
>console.log(nameA)
|
||||
>:=> (line 61, col 4) to (line 61, col 22)
|
||||
--------------------------------
|
||||
63 >for (let {name: nameA = "noName", skill: skillA = "skill" } = <Robot>{ name: "trimmer", skill: "trimming" }, i = 0; i < 1; i++) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (1773 to 1805) SpanInfo: {"start":1783,"length":22}
|
||||
>name: nameA = "noName"
|
||||
>:=> (line 63, col 10) to (line 63, col 32)
|
||||
63 >for (let {name: nameA = "noName", skill: skillA = "skill" } = <Robot>{ name: "trimmer", skill: "trimming" }, i = 0; i < 1; i++) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (1806 to 1880) SpanInfo: {"start":1807,"length":23}
|
||||
>skill: skillA = "skill"
|
||||
>:=> (line 63, col 34) to (line 63, col 57)
|
||||
63 >for (let {name: nameA = "noName", skill: skillA = "skill" } = <Robot>{ name: "trimmer", skill: "trimming" }, i = 0; i < 1; i++) {
|
||||
|
||||
~~~~~~~=> Pos: (1881 to 1887) SpanInfo: {"start":1882,"length":5}
|
||||
>i = 0
|
||||
>:=> (line 63, col 109) to (line 63, col 114)
|
||||
63 >for (let {name: nameA = "noName", skill: skillA = "skill" } = <Robot>{ name: "trimmer", skill: "trimming" }, i = 0; i < 1; i++) {
|
||||
|
||||
~~~~~~~=> Pos: (1888 to 1894) SpanInfo: {"start":1889,"length":5}
|
||||
>i < 1
|
||||
>:=> (line 63, col 116) to (line 63, col 121)
|
||||
63 >for (let {name: nameA = "noName", skill: skillA = "skill" } = <Robot>{ name: "trimmer", skill: "trimming" }, i = 0; i < 1; i++) {
|
||||
|
||||
~~~~~~~~=> Pos: (1895 to 1902) SpanInfo: {"start":1896,"length":3}
|
||||
>i++
|
||||
>:=> (line 63, col 123) to (line 63, col 126)
|
||||
--------------------------------
|
||||
64 > console.log(nameA);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (1903 to 1926) SpanInfo: {"start":1907,"length":18}
|
||||
>console.log(nameA)
|
||||
>:=> (line 64, col 4) to (line 64, col 22)
|
||||
--------------------------------
|
||||
65 >}
|
||||
|
||||
~~ => Pos: (1927 to 1928) SpanInfo: {"start":1907,"length":18}
|
||||
>console.log(nameA)
|
||||
>:=> (line 64, col 4) to (line 64, col 22)
|
||||
--------------------------------
|
||||
66 >for (let {
|
||||
|
||||
~~~~~~~~~~~ => Pos: (1929 to 1939) SpanInfo: {"start":1944,"length":22}
|
||||
>name: nameA = "noName"
|
||||
>:=> (line 67, col 4) to (line 67, col 26)
|
||||
--------------------------------
|
||||
67 > name: nameA = "noName",
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (1940 to 1967) SpanInfo: {"start":1944,"length":22}
|
||||
>name: nameA = "noName"
|
||||
>:=> (line 67, col 4) to (line 67, col 26)
|
||||
--------------------------------
|
||||
68 > skills: {
|
||||
|
||||
~~~~~~~~~~~ => Pos: (1968 to 1978) SpanInfo: {"start":1972,"length":139}
|
||||
>skills: {
|
||||
> primary: primaryA = "primary",
|
||||
> secondary: secondaryA = "secondary"
|
||||
> } = { primary: "none", secondary: "none" }
|
||||
>:=> (line 68, col 4) to (line 71, col 46)
|
||||
68 > skills: {
|
||||
|
||||
~~~ => Pos: (1979 to 1981) SpanInfo: {"start":1990,"length":29}
|
||||
>primary: primaryA = "primary"
|
||||
>:=> (line 69, col 8) to (line 69, col 37)
|
||||
--------------------------------
|
||||
69 > primary: primaryA = "primary",
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (1982 to 2020) SpanInfo: {"start":1990,"length":29}
|
||||
>primary: primaryA = "primary"
|
||||
>:=> (line 69, col 8) to (line 69, col 37)
|
||||
--------------------------------
|
||||
70 > secondary: secondaryA = "secondary"
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (2021 to 2064) SpanInfo: {"start":2029,"length":35}
|
||||
>secondary: secondaryA = "secondary"
|
||||
>:=> (line 70, col 8) to (line 70, col 43)
|
||||
--------------------------------
|
||||
71 > } = { primary: "none", secondary: "none" }
|
||||
|
||||
~~~~~ => Pos: (2065 to 2069) SpanInfo: {"start":2029,"length":35}
|
||||
>secondary: secondaryA = "secondary"
|
||||
>:=> (line 70, col 8) to (line 70, col 43)
|
||||
71 > } = { primary: "none", secondary: "none" }
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (2070 to 2111) SpanInfo: {"start":1972,"length":139}
|
||||
>skills: {
|
||||
> primary: primaryA = "primary",
|
||||
> secondary: secondaryA = "secondary"
|
||||
> } = { primary: "none", secondary: "none" }
|
||||
>:=> (line 68, col 4) to (line 71, col 46)
|
||||
--------------------------------
|
||||
72 >} = multiRobot, i = 0; i < 1; i++) {
|
||||
|
||||
~~~~~~~~~~~~~~~ => Pos: (2112 to 2126) SpanInfo: {"start":1972,"length":139}
|
||||
>skills: {
|
||||
> primary: primaryA = "primary",
|
||||
> secondary: secondaryA = "secondary"
|
||||
> } = { primary: "none", secondary: "none" }
|
||||
>:=> (line 68, col 4) to (line 71, col 46)
|
||||
72 >} = multiRobot, i = 0; i < 1; i++) {
|
||||
|
||||
~~~~~~~ => Pos: (2127 to 2133) SpanInfo: {"start":2128,"length":5}
|
||||
>i = 0
|
||||
>:=> (line 72, col 16) to (line 72, col 21)
|
||||
72 >} = multiRobot, i = 0; i < 1; i++) {
|
||||
|
||||
~~~~~~~ => Pos: (2134 to 2140) SpanInfo: {"start":2135,"length":5}
|
||||
>i < 1
|
||||
>:=> (line 72, col 23) to (line 72, col 28)
|
||||
72 >} = multiRobot, i = 0; i < 1; i++) {
|
||||
|
||||
~~~~~~~~ => Pos: (2141 to 2148) SpanInfo: {"start":2142,"length":3}
|
||||
>i++
|
||||
>:=> (line 72, col 30) to (line 72, col 33)
|
||||
--------------------------------
|
||||
73 > console.log(primaryA);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (2149 to 2175) SpanInfo: {"start":2153,"length":21}
|
||||
>console.log(primaryA)
|
||||
>:=> (line 73, col 4) to (line 73, col 25)
|
||||
--------------------------------
|
||||
74 >}
|
||||
|
||||
~~ => Pos: (2176 to 2177) SpanInfo: {"start":2153,"length":21}
|
||||
>console.log(primaryA)
|
||||
>:=> (line 73, col 4) to (line 73, col 25)
|
||||
--------------------------------
|
||||
75 >for (let {
|
||||
|
||||
~~~~~~~~~~~ => Pos: (2178 to 2188) SpanInfo: {"start":2193,"length":22}
|
||||
>name: nameA = "noName"
|
||||
>:=> (line 76, col 4) to (line 76, col 26)
|
||||
--------------------------------
|
||||
76 > name: nameA = "noName",
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (2189 to 2216) SpanInfo: {"start":2193,"length":22}
|
||||
>name: nameA = "noName"
|
||||
>:=> (line 76, col 4) to (line 76, col 26)
|
||||
--------------------------------
|
||||
77 > skills: {
|
||||
|
||||
~~~~~~~~~~~ => Pos: (2217 to 2227) SpanInfo: {"start":2221,"length":139}
|
||||
>skills: {
|
||||
> primary: primaryA = "primary",
|
||||
> secondary: secondaryA = "secondary"
|
||||
> } = { primary: "none", secondary: "none" }
|
||||
>:=> (line 77, col 4) to (line 80, col 46)
|
||||
77 > skills: {
|
||||
|
||||
~~~ => Pos: (2228 to 2230) SpanInfo: {"start":2239,"length":29}
|
||||
>primary: primaryA = "primary"
|
||||
>:=> (line 78, col 8) to (line 78, col 37)
|
||||
--------------------------------
|
||||
78 > primary: primaryA = "primary",
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (2231 to 2269) SpanInfo: {"start":2239,"length":29}
|
||||
>primary: primaryA = "primary"
|
||||
>:=> (line 78, col 8) to (line 78, col 37)
|
||||
--------------------------------
|
||||
79 > secondary: secondaryA = "secondary"
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (2270 to 2313) SpanInfo: {"start":2278,"length":35}
|
||||
>secondary: secondaryA = "secondary"
|
||||
>:=> (line 79, col 8) to (line 79, col 43)
|
||||
--------------------------------
|
||||
80 > } = { primary: "none", secondary: "none" }
|
||||
|
||||
~~~~~ => Pos: (2314 to 2318) SpanInfo: {"start":2278,"length":35}
|
||||
>secondary: secondaryA = "secondary"
|
||||
>:=> (line 79, col 8) to (line 79, col 43)
|
||||
80 > } = { primary: "none", secondary: "none" }
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (2319 to 2360) SpanInfo: {"start":2221,"length":139}
|
||||
>skills: {
|
||||
> primary: primaryA = "primary",
|
||||
> secondary: secondaryA = "secondary"
|
||||
> } = { primary: "none", secondary: "none" }
|
||||
>:=> (line 77, col 4) to (line 80, col 46)
|
||||
--------------------------------
|
||||
81 >} = getMultiRobot(), i = 0; i < 1; i++) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~ => Pos: (2361 to 2380) SpanInfo: {"start":2221,"length":139}
|
||||
>skills: {
|
||||
> primary: primaryA = "primary",
|
||||
> secondary: secondaryA = "secondary"
|
||||
> } = { primary: "none", secondary: "none" }
|
||||
>:=> (line 77, col 4) to (line 80, col 46)
|
||||
81 >} = getMultiRobot(), i = 0; i < 1; i++) {
|
||||
|
||||
~~~~~~~ => Pos: (2381 to 2387) SpanInfo: {"start":2382,"length":5}
|
||||
>i = 0
|
||||
>:=> (line 81, col 21) to (line 81, col 26)
|
||||
81 >} = getMultiRobot(), i = 0; i < 1; i++) {
|
||||
|
||||
~~~~~~~ => Pos: (2388 to 2394) SpanInfo: {"start":2389,"length":5}
|
||||
>i < 1
|
||||
>:=> (line 81, col 28) to (line 81, col 33)
|
||||
81 >} = getMultiRobot(), i = 0; i < 1; i++) {
|
||||
|
||||
~~~~~~~~ => Pos: (2395 to 2402) SpanInfo: {"start":2396,"length":3}
|
||||
>i++
|
||||
>:=> (line 81, col 35) to (line 81, col 38)
|
||||
--------------------------------
|
||||
82 > console.log(primaryA);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (2403 to 2429) SpanInfo: {"start":2407,"length":21}
|
||||
>console.log(primaryA)
|
||||
>:=> (line 82, col 4) to (line 82, col 25)
|
||||
--------------------------------
|
||||
83 >}
|
||||
|
||||
~~ => Pos: (2430 to 2431) SpanInfo: {"start":2407,"length":21}
|
||||
>console.log(primaryA)
|
||||
>:=> (line 82, col 4) to (line 82, col 25)
|
||||
--------------------------------
|
||||
84 >for (let {
|
||||
|
||||
~~~~~~~~~~~ => Pos: (2432 to 2442) SpanInfo: {"start":2447,"length":22}
|
||||
>name: nameA = "noName"
|
||||
>:=> (line 85, col 4) to (line 85, col 26)
|
||||
--------------------------------
|
||||
85 > name: nameA = "noName",
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (2443 to 2470) SpanInfo: {"start":2447,"length":22}
|
||||
>name: nameA = "noName"
|
||||
>:=> (line 85, col 4) to (line 85, col 26)
|
||||
--------------------------------
|
||||
86 > skills: {
|
||||
|
||||
~~~~~~~~~~~ => Pos: (2471 to 2481) SpanInfo: {"start":2475,"length":139}
|
||||
>skills: {
|
||||
> primary: primaryA = "primary",
|
||||
> secondary: secondaryA = "secondary"
|
||||
> } = { primary: "none", secondary: "none" }
|
||||
>:=> (line 86, col 4) to (line 89, col 46)
|
||||
86 > skills: {
|
||||
|
||||
~~~ => Pos: (2482 to 2484) SpanInfo: {"start":2493,"length":29}
|
||||
>primary: primaryA = "primary"
|
||||
>:=> (line 87, col 8) to (line 87, col 37)
|
||||
--------------------------------
|
||||
87 > primary: primaryA = "primary",
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (2485 to 2523) SpanInfo: {"start":2493,"length":29}
|
||||
>primary: primaryA = "primary"
|
||||
>:=> (line 87, col 8) to (line 87, col 37)
|
||||
--------------------------------
|
||||
88 > secondary: secondaryA = "secondary"
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (2524 to 2567) SpanInfo: {"start":2532,"length":35}
|
||||
>secondary: secondaryA = "secondary"
|
||||
>:=> (line 88, col 8) to (line 88, col 43)
|
||||
--------------------------------
|
||||
89 > } = { primary: "none", secondary: "none" }
|
||||
|
||||
~~~~~ => Pos: (2568 to 2572) SpanInfo: {"start":2532,"length":35}
|
||||
>secondary: secondaryA = "secondary"
|
||||
>:=> (line 88, col 8) to (line 88, col 43)
|
||||
89 > } = { primary: "none", secondary: "none" }
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (2573 to 2614) SpanInfo: {"start":2475,"length":139}
|
||||
>skills: {
|
||||
> primary: primaryA = "primary",
|
||||
> secondary: secondaryA = "secondary"
|
||||
> } = { primary: "none", secondary: "none" }
|
||||
>:=> (line 86, col 4) to (line 89, col 46)
|
||||
--------------------------------
|
||||
90 >} = <MultiRobot>{ name: "trimmer", skills: { primary: "trimming", secondary: "edging" } },
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (2615 to 2705) SpanInfo: {"start":2475,"length":139}
|
||||
>skills: {
|
||||
> primary: primaryA = "primary",
|
||||
> secondary: secondaryA = "secondary"
|
||||
> } = { primary: "none", secondary: "none" }
|
||||
>:=> (line 86, col 4) to (line 89, col 46)
|
||||
--------------------------------
|
||||
91 > i = 0; i < 1; i++) {
|
||||
|
||||
~~~~~~~~~~ => Pos: (2706 to 2715) SpanInfo: {"start":2710,"length":5}
|
||||
>i = 0
|
||||
>:=> (line 91, col 4) to (line 91, col 9)
|
||||
91 > i = 0; i < 1; i++) {
|
||||
|
||||
~~~~~~~ => Pos: (2716 to 2722) SpanInfo: {"start":2717,"length":5}
|
||||
>i < 1
|
||||
>:=> (line 91, col 11) to (line 91, col 16)
|
||||
91 > i = 0; i < 1; i++) {
|
||||
|
||||
~~~~~~~~ => Pos: (2723 to 2730) SpanInfo: {"start":2724,"length":3}
|
||||
>i++
|
||||
>:=> (line 91, col 18) to (line 91, col 21)
|
||||
--------------------------------
|
||||
92 > console.log(primaryA);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (2731 to 2757) SpanInfo: {"start":2735,"length":21}
|
||||
>console.log(primaryA)
|
||||
>:=> (line 92, col 4) to (line 92, col 25)
|
||||
--------------------------------
|
||||
93 >}
|
||||
~ => Pos: (2758 to 2758) SpanInfo: {"start":2735,"length":21}
|
||||
>console.log(primaryA)
|
||||
>:=> (line 92, col 4) to (line 92, col 25)
|
||||
@@ -0,0 +1,778 @@
|
||||
|
||||
1 >declare var console: {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (0 to 22) SpanInfo: undefined
|
||||
--------------------------------
|
||||
2 > log(msg: any): void;
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (23 to 47) SpanInfo: undefined
|
||||
--------------------------------
|
||||
3 >}
|
||||
|
||||
~~ => Pos: (48 to 49) SpanInfo: undefined
|
||||
--------------------------------
|
||||
4 >type Robot = [number, string, string];
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (50 to 88) SpanInfo: undefined
|
||||
--------------------------------
|
||||
5 >type MultiSkilledRobot = [string, [string, string]];
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (89 to 141) SpanInfo: undefined
|
||||
--------------------------------
|
||||
6 >let robotA: Robot = [1, "mower", "mowing"];
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (142 to 185) SpanInfo: {"start":142,"length":42}
|
||||
>let robotA: Robot = [1, "mower", "mowing"]
|
||||
>:=> (line 6, col 0) to (line 6, col 42)
|
||||
--------------------------------
|
||||
7 >let robotB: Robot = [2, "trimmer", "trimming"];
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (186 to 233) SpanInfo: {"start":186,"length":46}
|
||||
>let robotB: Robot = [2, "trimmer", "trimming"]
|
||||
>:=> (line 7, col 0) to (line 7, col 46)
|
||||
--------------------------------
|
||||
8 >let robots = [robotA, robotB];
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (234 to 264) SpanInfo: {"start":234,"length":29}
|
||||
>let robots = [robotA, robotB]
|
||||
>:=> (line 8, col 0) to (line 8, col 29)
|
||||
--------------------------------
|
||||
9 >function getRobots() {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (265 to 287) SpanInfo: {"start":292,"length":13}
|
||||
>return robots
|
||||
>:=> (line 10, col 4) to (line 10, col 17)
|
||||
--------------------------------
|
||||
10 > return robots;
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~ => Pos: (288 to 306) SpanInfo: {"start":292,"length":13}
|
||||
>return robots
|
||||
>:=> (line 10, col 4) to (line 10, col 17)
|
||||
--------------------------------
|
||||
11 >}
|
||||
|
||||
~~ => Pos: (307 to 308) SpanInfo: {"start":307,"length":1}
|
||||
>}
|
||||
>:=> (line 11, col 0) to (line 11, col 1)
|
||||
--------------------------------
|
||||
12 >let multiRobotA: MultiSkilledRobot = ["mower", ["mowing", ""]];
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (309 to 372) SpanInfo: {"start":309,"length":62}
|
||||
>let multiRobotA: MultiSkilledRobot = ["mower", ["mowing", ""]]
|
||||
>:=> (line 12, col 0) to (line 12, col 62)
|
||||
--------------------------------
|
||||
13 >let multiRobotB: MultiSkilledRobot = ["trimmer", ["trimming", "edging"]];
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (373 to 446) SpanInfo: {"start":373,"length":72}
|
||||
>let multiRobotB: MultiSkilledRobot = ["trimmer", ["trimming", "edging"]]
|
||||
>:=> (line 13, col 0) to (line 13, col 72)
|
||||
--------------------------------
|
||||
14 >let multiRobots = [multiRobotA, multiRobotB];
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (447 to 492) SpanInfo: {"start":447,"length":44}
|
||||
>let multiRobots = [multiRobotA, multiRobotB]
|
||||
>:=> (line 14, col 0) to (line 14, col 44)
|
||||
--------------------------------
|
||||
15 >function getMultiRobots() {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (493 to 520) SpanInfo: {"start":525,"length":18}
|
||||
>return multiRobots
|
||||
>:=> (line 16, col 4) to (line 16, col 22)
|
||||
--------------------------------
|
||||
16 > return multiRobots;
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (521 to 544) SpanInfo: {"start":525,"length":18}
|
||||
>return multiRobots
|
||||
>:=> (line 16, col 4) to (line 16, col 22)
|
||||
--------------------------------
|
||||
17 >}
|
||||
|
||||
~~ => Pos: (545 to 546) SpanInfo: {"start":545,"length":1}
|
||||
>}
|
||||
>:=> (line 17, col 0) to (line 17, col 1)
|
||||
--------------------------------
|
||||
18 >for (let [, nameA] of robots) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~ => Pos: (547 to 564) SpanInfo: {"start":559,"length":5}
|
||||
>nameA
|
||||
>:=> (line 18, col 12) to (line 18, col 17)
|
||||
18 >for (let [, nameA] of robots) {
|
||||
|
||||
~~~~~~~~~~~~~~ => Pos: (565 to 578) SpanInfo: {"start":569,"length":6}
|
||||
>robots
|
||||
>:=> (line 18, col 22) to (line 18, col 28)
|
||||
--------------------------------
|
||||
19 > console.log(nameA);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (579 to 602) SpanInfo: {"start":583,"length":18}
|
||||
>console.log(nameA)
|
||||
>:=> (line 19, col 4) to (line 19, col 22)
|
||||
--------------------------------
|
||||
20 >}
|
||||
|
||||
~~ => Pos: (603 to 604) SpanInfo: {"start":583,"length":18}
|
||||
>console.log(nameA)
|
||||
>:=> (line 19, col 4) to (line 19, col 22)
|
||||
--------------------------------
|
||||
21 >for (let [, nameA] of getRobots()) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~ => Pos: (605 to 622) SpanInfo: {"start":617,"length":5}
|
||||
>nameA
|
||||
>:=> (line 21, col 12) to (line 21, col 17)
|
||||
21 >for (let [, nameA] of getRobots()) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~ => Pos: (623 to 641) SpanInfo: {"start":627,"length":11}
|
||||
>getRobots()
|
||||
>:=> (line 21, col 22) to (line 21, col 33)
|
||||
--------------------------------
|
||||
22 > console.log(nameA);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (642 to 665) SpanInfo: {"start":646,"length":18}
|
||||
>console.log(nameA)
|
||||
>:=> (line 22, col 4) to (line 22, col 22)
|
||||
--------------------------------
|
||||
23 >}
|
||||
|
||||
~~ => Pos: (666 to 667) SpanInfo: {"start":646,"length":18}
|
||||
>console.log(nameA)
|
||||
>:=> (line 22, col 4) to (line 22, col 22)
|
||||
--------------------------------
|
||||
24 >for (let [, nameA] of [robotA, robotB]) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~ => Pos: (668 to 685) SpanInfo: {"start":680,"length":5}
|
||||
>nameA
|
||||
>:=> (line 24, col 12) to (line 24, col 17)
|
||||
24 >for (let [, nameA] of [robotA, robotB]) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (686 to 709) SpanInfo: {"start":690,"length":16}
|
||||
>[robotA, robotB]
|
||||
>:=> (line 24, col 22) to (line 24, col 38)
|
||||
--------------------------------
|
||||
25 > console.log(nameA);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (710 to 733) SpanInfo: {"start":714,"length":18}
|
||||
>console.log(nameA)
|
||||
>:=> (line 25, col 4) to (line 25, col 22)
|
||||
--------------------------------
|
||||
26 >}
|
||||
|
||||
~~ => Pos: (734 to 735) SpanInfo: {"start":714,"length":18}
|
||||
>console.log(nameA)
|
||||
>:=> (line 25, col 4) to (line 25, col 22)
|
||||
--------------------------------
|
||||
27 >for (let [, [primarySkillA, secondarySkillA]] of multiRobots) {
|
||||
|
||||
~~~~~~~~~~~ => Pos: (736 to 746) SpanInfo: {"start":748,"length":32}
|
||||
>[primarySkillA, secondarySkillA]
|
||||
>:=> (line 27, col 12) to (line 27, col 44)
|
||||
27 >for (let [, [primarySkillA, secondarySkillA]] of multiRobots) {
|
||||
|
||||
~~~~~~~~~~~~~~~~ => Pos: (747 to 762) SpanInfo: {"start":749,"length":13}
|
||||
>primarySkillA
|
||||
>:=> (line 27, col 13) to (line 27, col 26)
|
||||
27 >for (let [, [primarySkillA, secondarySkillA]] of multiRobots) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~ => Pos: (763 to 779) SpanInfo: {"start":764,"length":15}
|
||||
>secondarySkillA
|
||||
>:=> (line 27, col 28) to (line 27, col 43)
|
||||
27 >for (let [, [primarySkillA, secondarySkillA]] of multiRobots) {
|
||||
|
||||
~ => Pos: (780 to 780) SpanInfo: {"start":748,"length":32}
|
||||
>[primarySkillA, secondarySkillA]
|
||||
>:=> (line 27, col 12) to (line 27, col 44)
|
||||
27 >for (let [, [primarySkillA, secondarySkillA]] of multiRobots) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~=> Pos: (781 to 799) SpanInfo: {"start":785,"length":11}
|
||||
>multiRobots
|
||||
>:=> (line 27, col 49) to (line 27, col 60)
|
||||
--------------------------------
|
||||
28 > console.log(primarySkillA);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (800 to 831) SpanInfo: {"start":804,"length":26}
|
||||
>console.log(primarySkillA)
|
||||
>:=> (line 28, col 4) to (line 28, col 30)
|
||||
--------------------------------
|
||||
29 >}
|
||||
|
||||
~~ => Pos: (832 to 833) SpanInfo: {"start":804,"length":26}
|
||||
>console.log(primarySkillA)
|
||||
>:=> (line 28, col 4) to (line 28, col 30)
|
||||
--------------------------------
|
||||
30 >for (let [, [primarySkillA, secondarySkillA]] of getMultiRobots()) {
|
||||
|
||||
~~~~~~~~~~~ => Pos: (834 to 844) SpanInfo: {"start":846,"length":32}
|
||||
>[primarySkillA, secondarySkillA]
|
||||
>:=> (line 30, col 12) to (line 30, col 44)
|
||||
30 >for (let [, [primarySkillA, secondarySkillA]] of getMultiRobots()) {
|
||||
|
||||
~~~~~~~~~~~~~~~~ => Pos: (845 to 860) SpanInfo: {"start":847,"length":13}
|
||||
>primarySkillA
|
||||
>:=> (line 30, col 13) to (line 30, col 26)
|
||||
30 >for (let [, [primarySkillA, secondarySkillA]] of getMultiRobots()) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~ => Pos: (861 to 877) SpanInfo: {"start":862,"length":15}
|
||||
>secondarySkillA
|
||||
>:=> (line 30, col 28) to (line 30, col 43)
|
||||
30 >for (let [, [primarySkillA, secondarySkillA]] of getMultiRobots()) {
|
||||
|
||||
~ => Pos: (878 to 878) SpanInfo: {"start":846,"length":32}
|
||||
>[primarySkillA, secondarySkillA]
|
||||
>:=> (line 30, col 12) to (line 30, col 44)
|
||||
30 >for (let [, [primarySkillA, secondarySkillA]] of getMultiRobots()) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (879 to 902) SpanInfo: {"start":883,"length":16}
|
||||
>getMultiRobots()
|
||||
>:=> (line 30, col 49) to (line 30, col 65)
|
||||
--------------------------------
|
||||
31 > console.log(primarySkillA);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (903 to 934) SpanInfo: {"start":907,"length":26}
|
||||
>console.log(primarySkillA)
|
||||
>:=> (line 31, col 4) to (line 31, col 30)
|
||||
--------------------------------
|
||||
32 >}
|
||||
|
||||
~~ => Pos: (935 to 936) SpanInfo: {"start":907,"length":26}
|
||||
>console.log(primarySkillA)
|
||||
>:=> (line 31, col 4) to (line 31, col 30)
|
||||
--------------------------------
|
||||
33 >for (let [, [primarySkillA, secondarySkillA]] of [multiRobotA, multiRobotB]) {
|
||||
|
||||
~~~~~~~~~~~ => Pos: (937 to 947) SpanInfo: {"start":949,"length":32}
|
||||
>[primarySkillA, secondarySkillA]
|
||||
>:=> (line 33, col 12) to (line 33, col 44)
|
||||
33 >for (let [, [primarySkillA, secondarySkillA]] of [multiRobotA, multiRobotB]) {
|
||||
|
||||
~~~~~~~~~~~~~~~~ => Pos: (948 to 963) SpanInfo: {"start":950,"length":13}
|
||||
>primarySkillA
|
||||
>:=> (line 33, col 13) to (line 33, col 26)
|
||||
33 >for (let [, [primarySkillA, secondarySkillA]] of [multiRobotA, multiRobotB]) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~ => Pos: (964 to 980) SpanInfo: {"start":965,"length":15}
|
||||
>secondarySkillA
|
||||
>:=> (line 33, col 28) to (line 33, col 43)
|
||||
33 >for (let [, [primarySkillA, secondarySkillA]] of [multiRobotA, multiRobotB]) {
|
||||
|
||||
~ => Pos: (981 to 981) SpanInfo: {"start":949,"length":32}
|
||||
>[primarySkillA, secondarySkillA]
|
||||
>:=> (line 33, col 12) to (line 33, col 44)
|
||||
33 >for (let [, [primarySkillA, secondarySkillA]] of [multiRobotA, multiRobotB]) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (982 to 1015) SpanInfo: {"start":986,"length":26}
|
||||
>[multiRobotA, multiRobotB]
|
||||
>:=> (line 33, col 49) to (line 33, col 75)
|
||||
--------------------------------
|
||||
34 > console.log(primarySkillA);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (1016 to 1047) SpanInfo: {"start":1020,"length":26}
|
||||
>console.log(primarySkillA)
|
||||
>:=> (line 34, col 4) to (line 34, col 30)
|
||||
--------------------------------
|
||||
35 >}
|
||||
|
||||
~~ => Pos: (1048 to 1049) SpanInfo: {"start":1020,"length":26}
|
||||
>console.log(primarySkillA)
|
||||
>:=> (line 34, col 4) to (line 34, col 30)
|
||||
--------------------------------
|
||||
36 >for (let [numberB] of robots) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~ => Pos: (1050 to 1067) SpanInfo: {"start":1060,"length":7}
|
||||
>numberB
|
||||
>:=> (line 36, col 10) to (line 36, col 17)
|
||||
36 >for (let [numberB] of robots) {
|
||||
|
||||
~~~~~~~~~~~~~~ => Pos: (1068 to 1081) SpanInfo: {"start":1072,"length":6}
|
||||
>robots
|
||||
>:=> (line 36, col 22) to (line 36, col 28)
|
||||
--------------------------------
|
||||
37 > console.log(numberB);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (1082 to 1107) SpanInfo: {"start":1086,"length":20}
|
||||
>console.log(numberB)
|
||||
>:=> (line 37, col 4) to (line 37, col 24)
|
||||
--------------------------------
|
||||
38 >}
|
||||
|
||||
~~ => Pos: (1108 to 1109) SpanInfo: {"start":1086,"length":20}
|
||||
>console.log(numberB)
|
||||
>:=> (line 37, col 4) to (line 37, col 24)
|
||||
--------------------------------
|
||||
39 >for (let [numberB] of getRobots()) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~ => Pos: (1110 to 1127) SpanInfo: {"start":1120,"length":7}
|
||||
>numberB
|
||||
>:=> (line 39, col 10) to (line 39, col 17)
|
||||
39 >for (let [numberB] of getRobots()) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~ => Pos: (1128 to 1146) SpanInfo: {"start":1132,"length":11}
|
||||
>getRobots()
|
||||
>:=> (line 39, col 22) to (line 39, col 33)
|
||||
--------------------------------
|
||||
40 > console.log(numberB);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (1147 to 1172) SpanInfo: {"start":1151,"length":20}
|
||||
>console.log(numberB)
|
||||
>:=> (line 40, col 4) to (line 40, col 24)
|
||||
--------------------------------
|
||||
41 >}
|
||||
|
||||
~~ => Pos: (1173 to 1174) SpanInfo: {"start":1151,"length":20}
|
||||
>console.log(numberB)
|
||||
>:=> (line 40, col 4) to (line 40, col 24)
|
||||
--------------------------------
|
||||
42 >for (let [numberB] of [robotA, robotB]) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~ => Pos: (1175 to 1192) SpanInfo: {"start":1185,"length":7}
|
||||
>numberB
|
||||
>:=> (line 42, col 10) to (line 42, col 17)
|
||||
42 >for (let [numberB] of [robotA, robotB]) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (1193 to 1216) SpanInfo: {"start":1197,"length":16}
|
||||
>[robotA, robotB]
|
||||
>:=> (line 42, col 22) to (line 42, col 38)
|
||||
--------------------------------
|
||||
43 > console.log(numberB);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (1217 to 1242) SpanInfo: {"start":1221,"length":20}
|
||||
>console.log(numberB)
|
||||
>:=> (line 43, col 4) to (line 43, col 24)
|
||||
--------------------------------
|
||||
44 >}
|
||||
|
||||
~~ => Pos: (1243 to 1244) SpanInfo: {"start":1221,"length":20}
|
||||
>console.log(numberB)
|
||||
>:=> (line 43, col 4) to (line 43, col 24)
|
||||
--------------------------------
|
||||
45 >for (let [nameB] of multiRobots) {
|
||||
|
||||
~~~~~~~~~~~~~~~~ => Pos: (1245 to 1260) SpanInfo: {"start":1255,"length":5}
|
||||
>nameB
|
||||
>:=> (line 45, col 10) to (line 45, col 15)
|
||||
45 >for (let [nameB] of multiRobots) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~ => Pos: (1261 to 1279) SpanInfo: {"start":1265,"length":11}
|
||||
>multiRobots
|
||||
>:=> (line 45, col 20) to (line 45, col 31)
|
||||
--------------------------------
|
||||
46 > console.log(nameB);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (1280 to 1303) SpanInfo: {"start":1284,"length":18}
|
||||
>console.log(nameB)
|
||||
>:=> (line 46, col 4) to (line 46, col 22)
|
||||
--------------------------------
|
||||
47 >}
|
||||
|
||||
~~ => Pos: (1304 to 1305) SpanInfo: {"start":1284,"length":18}
|
||||
>console.log(nameB)
|
||||
>:=> (line 46, col 4) to (line 46, col 22)
|
||||
--------------------------------
|
||||
48 >for (let [nameB] of getMultiRobots()) {
|
||||
|
||||
~~~~~~~~~~~~~~~~ => Pos: (1306 to 1321) SpanInfo: {"start":1316,"length":5}
|
||||
>nameB
|
||||
>:=> (line 48, col 10) to (line 48, col 15)
|
||||
48 >for (let [nameB] of getMultiRobots()) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (1322 to 1345) SpanInfo: {"start":1326,"length":16}
|
||||
>getMultiRobots()
|
||||
>:=> (line 48, col 20) to (line 48, col 36)
|
||||
--------------------------------
|
||||
49 > console.log(nameB);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (1346 to 1369) SpanInfo: {"start":1350,"length":18}
|
||||
>console.log(nameB)
|
||||
>:=> (line 49, col 4) to (line 49, col 22)
|
||||
--------------------------------
|
||||
50 >}
|
||||
|
||||
~~ => Pos: (1370 to 1371) SpanInfo: {"start":1350,"length":18}
|
||||
>console.log(nameB)
|
||||
>:=> (line 49, col 4) to (line 49, col 22)
|
||||
--------------------------------
|
||||
51 >for (let [nameB] of [multiRobotA, multiRobotB]) {
|
||||
|
||||
~~~~~~~~~~~~~~~~ => Pos: (1372 to 1387) SpanInfo: {"start":1382,"length":5}
|
||||
>nameB
|
||||
>:=> (line 51, col 10) to (line 51, col 15)
|
||||
51 >for (let [nameB] of [multiRobotA, multiRobotB]) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (1388 to 1421) SpanInfo: {"start":1392,"length":26}
|
||||
>[multiRobotA, multiRobotB]
|
||||
>:=> (line 51, col 20) to (line 51, col 46)
|
||||
--------------------------------
|
||||
52 > console.log(nameB);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (1422 to 1445) SpanInfo: {"start":1426,"length":18}
|
||||
>console.log(nameB)
|
||||
>:=> (line 52, col 4) to (line 52, col 22)
|
||||
--------------------------------
|
||||
53 >}
|
||||
|
||||
~~ => Pos: (1446 to 1447) SpanInfo: {"start":1426,"length":18}
|
||||
>console.log(nameB)
|
||||
>:=> (line 52, col 4) to (line 52, col 22)
|
||||
--------------------------------
|
||||
54 >for (let [numberA2, nameA2, skillA2] of robots) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~ => Pos: (1448 to 1466) SpanInfo: {"start":1458,"length":8}
|
||||
>numberA2
|
||||
>:=> (line 54, col 10) to (line 54, col 18)
|
||||
54 >for (let [numberA2, nameA2, skillA2] of robots) {
|
||||
|
||||
~~~~~~~~ => Pos: (1467 to 1474) SpanInfo: {"start":1468,"length":6}
|
||||
>nameA2
|
||||
>:=> (line 54, col 20) to (line 54, col 26)
|
||||
54 >for (let [numberA2, nameA2, skillA2] of robots) {
|
||||
|
||||
~~~~~~~~~ => Pos: (1475 to 1483) SpanInfo: {"start":1476,"length":7}
|
||||
>skillA2
|
||||
>:=> (line 54, col 28) to (line 54, col 35)
|
||||
54 >for (let [numberA2, nameA2, skillA2] of robots) {
|
||||
|
||||
~~~~~~~~~~~~~~=> Pos: (1484 to 1497) SpanInfo: {"start":1488,"length":6}
|
||||
>robots
|
||||
>:=> (line 54, col 40) to (line 54, col 46)
|
||||
--------------------------------
|
||||
55 > console.log(nameA2);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (1498 to 1522) SpanInfo: {"start":1502,"length":19}
|
||||
>console.log(nameA2)
|
||||
>:=> (line 55, col 4) to (line 55, col 23)
|
||||
--------------------------------
|
||||
56 >}
|
||||
|
||||
~~ => Pos: (1523 to 1524) SpanInfo: {"start":1502,"length":19}
|
||||
>console.log(nameA2)
|
||||
>:=> (line 55, col 4) to (line 55, col 23)
|
||||
--------------------------------
|
||||
57 >for (let [numberA2, nameA2, skillA2] of getRobots()) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~ => Pos: (1525 to 1543) SpanInfo: {"start":1535,"length":8}
|
||||
>numberA2
|
||||
>:=> (line 57, col 10) to (line 57, col 18)
|
||||
57 >for (let [numberA2, nameA2, skillA2] of getRobots()) {
|
||||
|
||||
~~~~~~~~ => Pos: (1544 to 1551) SpanInfo: {"start":1545,"length":6}
|
||||
>nameA2
|
||||
>:=> (line 57, col 20) to (line 57, col 26)
|
||||
57 >for (let [numberA2, nameA2, skillA2] of getRobots()) {
|
||||
|
||||
~~~~~~~~~ => Pos: (1552 to 1560) SpanInfo: {"start":1553,"length":7}
|
||||
>skillA2
|
||||
>:=> (line 57, col 28) to (line 57, col 35)
|
||||
57 >for (let [numberA2, nameA2, skillA2] of getRobots()) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~=> Pos: (1561 to 1579) SpanInfo: {"start":1565,"length":11}
|
||||
>getRobots()
|
||||
>:=> (line 57, col 40) to (line 57, col 51)
|
||||
--------------------------------
|
||||
58 > console.log(nameA2);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (1580 to 1604) SpanInfo: {"start":1584,"length":19}
|
||||
>console.log(nameA2)
|
||||
>:=> (line 58, col 4) to (line 58, col 23)
|
||||
--------------------------------
|
||||
59 >}
|
||||
|
||||
~~ => Pos: (1605 to 1606) SpanInfo: {"start":1584,"length":19}
|
||||
>console.log(nameA2)
|
||||
>:=> (line 58, col 4) to (line 58, col 23)
|
||||
--------------------------------
|
||||
60 >for (let [numberA2, nameA2, skillA2] of [robotA, robotB]) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~ => Pos: (1607 to 1625) SpanInfo: {"start":1617,"length":8}
|
||||
>numberA2
|
||||
>:=> (line 60, col 10) to (line 60, col 18)
|
||||
60 >for (let [numberA2, nameA2, skillA2] of [robotA, robotB]) {
|
||||
|
||||
~~~~~~~~ => Pos: (1626 to 1633) SpanInfo: {"start":1627,"length":6}
|
||||
>nameA2
|
||||
>:=> (line 60, col 20) to (line 60, col 26)
|
||||
60 >for (let [numberA2, nameA2, skillA2] of [robotA, robotB]) {
|
||||
|
||||
~~~~~~~~~ => Pos: (1634 to 1642) SpanInfo: {"start":1635,"length":7}
|
||||
>skillA2
|
||||
>:=> (line 60, col 28) to (line 60, col 35)
|
||||
60 >for (let [numberA2, nameA2, skillA2] of [robotA, robotB]) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (1643 to 1666) SpanInfo: {"start":1647,"length":16}
|
||||
>[robotA, robotB]
|
||||
>:=> (line 60, col 40) to (line 60, col 56)
|
||||
--------------------------------
|
||||
61 > console.log(nameA2);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (1667 to 1691) SpanInfo: {"start":1671,"length":19}
|
||||
>console.log(nameA2)
|
||||
>:=> (line 61, col 4) to (line 61, col 23)
|
||||
--------------------------------
|
||||
62 >}
|
||||
|
||||
~~ => Pos: (1692 to 1693) SpanInfo: {"start":1671,"length":19}
|
||||
>console.log(nameA2)
|
||||
>:=> (line 61, col 4) to (line 61, col 23)
|
||||
--------------------------------
|
||||
63 >for (let [nameMA, [primarySkillA, secondarySkillA]] of multiRobots) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~ => Pos: (1694 to 1710) SpanInfo: {"start":1704,"length":6}
|
||||
>nameMA
|
||||
>:=> (line 63, col 10) to (line 63, col 16)
|
||||
63 >for (let [nameMA, [primarySkillA, secondarySkillA]] of multiRobots) {
|
||||
|
||||
~~~~~~~~~~~~~~~~ => Pos: (1711 to 1726) SpanInfo: {"start":1713,"length":13}
|
||||
>primarySkillA
|
||||
>:=> (line 63, col 19) to (line 63, col 32)
|
||||
63 >for (let [nameMA, [primarySkillA, secondarySkillA]] of multiRobots) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~=> Pos: (1727 to 1743) SpanInfo: {"start":1728,"length":15}
|
||||
>secondarySkillA
|
||||
>:=> (line 63, col 34) to (line 63, col 49)
|
||||
63 >for (let [nameMA, [primarySkillA, secondarySkillA]] of multiRobots) {
|
||||
|
||||
~=> Pos: (1744 to 1744) SpanInfo: {"start":1712,"length":32}
|
||||
>[primarySkillA, secondarySkillA]
|
||||
>:=> (line 63, col 18) to (line 63, col 50)
|
||||
63 >for (let [nameMA, [primarySkillA, secondarySkillA]] of multiRobots) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~=> Pos: (1745 to 1763) SpanInfo: {"start":1749,"length":11}
|
||||
>multiRobots
|
||||
>:=> (line 63, col 55) to (line 63, col 66)
|
||||
--------------------------------
|
||||
64 > console.log(nameMA);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (1764 to 1788) SpanInfo: {"start":1768,"length":19}
|
||||
>console.log(nameMA)
|
||||
>:=> (line 64, col 4) to (line 64, col 23)
|
||||
--------------------------------
|
||||
65 >}
|
||||
|
||||
~~ => Pos: (1789 to 1790) SpanInfo: {"start":1768,"length":19}
|
||||
>console.log(nameMA)
|
||||
>:=> (line 64, col 4) to (line 64, col 23)
|
||||
--------------------------------
|
||||
66 >for (let [nameMA, [primarySkillA, secondarySkillA]] of getMultiRobots()) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~ => Pos: (1791 to 1807) SpanInfo: {"start":1801,"length":6}
|
||||
>nameMA
|
||||
>:=> (line 66, col 10) to (line 66, col 16)
|
||||
66 >for (let [nameMA, [primarySkillA, secondarySkillA]] of getMultiRobots()) {
|
||||
|
||||
~~~~~~~~~~~~~~~~ => Pos: (1808 to 1823) SpanInfo: {"start":1810,"length":13}
|
||||
>primarySkillA
|
||||
>:=> (line 66, col 19) to (line 66, col 32)
|
||||
66 >for (let [nameMA, [primarySkillA, secondarySkillA]] of getMultiRobots()) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~=> Pos: (1824 to 1840) SpanInfo: {"start":1825,"length":15}
|
||||
>secondarySkillA
|
||||
>:=> (line 66, col 34) to (line 66, col 49)
|
||||
66 >for (let [nameMA, [primarySkillA, secondarySkillA]] of getMultiRobots()) {
|
||||
|
||||
~=> Pos: (1841 to 1841) SpanInfo: {"start":1809,"length":32}
|
||||
>[primarySkillA, secondarySkillA]
|
||||
>:=> (line 66, col 18) to (line 66, col 50)
|
||||
66 >for (let [nameMA, [primarySkillA, secondarySkillA]] of getMultiRobots()) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (1842 to 1865) SpanInfo: {"start":1846,"length":16}
|
||||
>getMultiRobots()
|
||||
>:=> (line 66, col 55) to (line 66, col 71)
|
||||
--------------------------------
|
||||
67 > console.log(nameMA);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (1866 to 1890) SpanInfo: {"start":1870,"length":19}
|
||||
>console.log(nameMA)
|
||||
>:=> (line 67, col 4) to (line 67, col 23)
|
||||
--------------------------------
|
||||
68 >}
|
||||
|
||||
~~ => Pos: (1891 to 1892) SpanInfo: {"start":1870,"length":19}
|
||||
>console.log(nameMA)
|
||||
>:=> (line 67, col 4) to (line 67, col 23)
|
||||
--------------------------------
|
||||
69 >for (let [nameMA, [primarySkillA, secondarySkillA]] of [multiRobotA, multiRobotB]) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~ => Pos: (1893 to 1909) SpanInfo: {"start":1903,"length":6}
|
||||
>nameMA
|
||||
>:=> (line 69, col 10) to (line 69, col 16)
|
||||
69 >for (let [nameMA, [primarySkillA, secondarySkillA]] of [multiRobotA, multiRobotB]) {
|
||||
|
||||
~~~~~~~~~~~~~~~~ => Pos: (1910 to 1925) SpanInfo: {"start":1912,"length":13}
|
||||
>primarySkillA
|
||||
>:=> (line 69, col 19) to (line 69, col 32)
|
||||
69 >for (let [nameMA, [primarySkillA, secondarySkillA]] of [multiRobotA, multiRobotB]) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~=> Pos: (1926 to 1942) SpanInfo: {"start":1927,"length":15}
|
||||
>secondarySkillA
|
||||
>:=> (line 69, col 34) to (line 69, col 49)
|
||||
69 >for (let [nameMA, [primarySkillA, secondarySkillA]] of [multiRobotA, multiRobotB]) {
|
||||
|
||||
~=> Pos: (1943 to 1943) SpanInfo: {"start":1911,"length":32}
|
||||
>[primarySkillA, secondarySkillA]
|
||||
>:=> (line 69, col 18) to (line 69, col 50)
|
||||
69 >for (let [nameMA, [primarySkillA, secondarySkillA]] of [multiRobotA, multiRobotB]) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (1944 to 1977) SpanInfo: {"start":1948,"length":26}
|
||||
>[multiRobotA, multiRobotB]
|
||||
>:=> (line 69, col 55) to (line 69, col 81)
|
||||
--------------------------------
|
||||
70 > console.log(nameMA);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (1978 to 2002) SpanInfo: {"start":1982,"length":19}
|
||||
>console.log(nameMA)
|
||||
>:=> (line 70, col 4) to (line 70, col 23)
|
||||
--------------------------------
|
||||
71 >}
|
||||
|
||||
~~ => Pos: (2003 to 2004) SpanInfo: {"start":1982,"length":19}
|
||||
>console.log(nameMA)
|
||||
>:=> (line 70, col 4) to (line 70, col 23)
|
||||
--------------------------------
|
||||
72 >for (let [numberA3, ...robotAInfo] of robots) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~ => Pos: (2005 to 2023) SpanInfo: {"start":2015,"length":8}
|
||||
>numberA3
|
||||
>:=> (line 72, col 10) to (line 72, col 18)
|
||||
72 >for (let [numberA3, ...robotAInfo] of robots) {
|
||||
|
||||
~~~~~~~~~~~~~~~ => Pos: (2024 to 2038) SpanInfo: {"start":2025,"length":13}
|
||||
>...robotAInfo
|
||||
>:=> (line 72, col 20) to (line 72, col 33)
|
||||
72 >for (let [numberA3, ...robotAInfo] of robots) {
|
||||
|
||||
~~~~~~~~~~~~~~=> Pos: (2039 to 2052) SpanInfo: {"start":2043,"length":6}
|
||||
>robots
|
||||
>:=> (line 72, col 38) to (line 72, col 44)
|
||||
--------------------------------
|
||||
73 > console.log(numberA3);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (2053 to 2079) SpanInfo: {"start":2057,"length":21}
|
||||
>console.log(numberA3)
|
||||
>:=> (line 73, col 4) to (line 73, col 25)
|
||||
--------------------------------
|
||||
74 >}
|
||||
|
||||
~~ => Pos: (2080 to 2081) SpanInfo: {"start":2057,"length":21}
|
||||
>console.log(numberA3)
|
||||
>:=> (line 73, col 4) to (line 73, col 25)
|
||||
--------------------------------
|
||||
75 >for (let [numberA3, ...robotAInfo] of getRobots()) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~ => Pos: (2082 to 2100) SpanInfo: {"start":2092,"length":8}
|
||||
>numberA3
|
||||
>:=> (line 75, col 10) to (line 75, col 18)
|
||||
75 >for (let [numberA3, ...robotAInfo] of getRobots()) {
|
||||
|
||||
~~~~~~~~~~~~~~~ => Pos: (2101 to 2115) SpanInfo: {"start":2102,"length":13}
|
||||
>...robotAInfo
|
||||
>:=> (line 75, col 20) to (line 75, col 33)
|
||||
75 >for (let [numberA3, ...robotAInfo] of getRobots()) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~=> Pos: (2116 to 2134) SpanInfo: {"start":2120,"length":11}
|
||||
>getRobots()
|
||||
>:=> (line 75, col 38) to (line 75, col 49)
|
||||
--------------------------------
|
||||
76 > console.log(numberA3);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (2135 to 2161) SpanInfo: {"start":2139,"length":21}
|
||||
>console.log(numberA3)
|
||||
>:=> (line 76, col 4) to (line 76, col 25)
|
||||
--------------------------------
|
||||
77 >}
|
||||
|
||||
~~ => Pos: (2162 to 2163) SpanInfo: {"start":2139,"length":21}
|
||||
>console.log(numberA3)
|
||||
>:=> (line 76, col 4) to (line 76, col 25)
|
||||
--------------------------------
|
||||
78 >for (let [numberA3, ...robotAInfo] of [robotA, robotB]) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~ => Pos: (2164 to 2182) SpanInfo: {"start":2174,"length":8}
|
||||
>numberA3
|
||||
>:=> (line 78, col 10) to (line 78, col 18)
|
||||
78 >for (let [numberA3, ...robotAInfo] of [robotA, robotB]) {
|
||||
|
||||
~~~~~~~~~~~~~~~ => Pos: (2183 to 2197) SpanInfo: {"start":2184,"length":13}
|
||||
>...robotAInfo
|
||||
>:=> (line 78, col 20) to (line 78, col 33)
|
||||
78 >for (let [numberA3, ...robotAInfo] of [robotA, robotB]) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (2198 to 2221) SpanInfo: {"start":2202,"length":16}
|
||||
>[robotA, robotB]
|
||||
>:=> (line 78, col 38) to (line 78, col 54)
|
||||
--------------------------------
|
||||
79 > console.log(numberA3);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (2222 to 2248) SpanInfo: {"start":2226,"length":21}
|
||||
>console.log(numberA3)
|
||||
>:=> (line 79, col 4) to (line 79, col 25)
|
||||
--------------------------------
|
||||
80 >}
|
||||
|
||||
~~ => Pos: (2249 to 2250) SpanInfo: {"start":2226,"length":21}
|
||||
>console.log(numberA3)
|
||||
>:=> (line 79, col 4) to (line 79, col 25)
|
||||
--------------------------------
|
||||
81 >for (let [...multiRobotAInfo] of multiRobots) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (2251 to 2279) SpanInfo: {"start":2261,"length":18}
|
||||
>...multiRobotAInfo
|
||||
>:=> (line 81, col 10) to (line 81, col 28)
|
||||
81 >for (let [...multiRobotAInfo] of multiRobots) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~=> Pos: (2280 to 2298) SpanInfo: {"start":2284,"length":11}
|
||||
>multiRobots
|
||||
>:=> (line 81, col 33) to (line 81, col 44)
|
||||
--------------------------------
|
||||
82 > console.log(multiRobotAInfo);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (2299 to 2332) SpanInfo: {"start":2303,"length":28}
|
||||
>console.log(multiRobotAInfo)
|
||||
>:=> (line 82, col 4) to (line 82, col 32)
|
||||
--------------------------------
|
||||
83 >}
|
||||
|
||||
~~ => Pos: (2333 to 2334) SpanInfo: {"start":2303,"length":28}
|
||||
>console.log(multiRobotAInfo)
|
||||
>:=> (line 82, col 4) to (line 82, col 32)
|
||||
--------------------------------
|
||||
84 >for (let [...multiRobotAInfo] of getMultiRobots()) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (2335 to 2363) SpanInfo: {"start":2345,"length":18}
|
||||
>...multiRobotAInfo
|
||||
>:=> (line 84, col 10) to (line 84, col 28)
|
||||
84 >for (let [...multiRobotAInfo] of getMultiRobots()) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (2364 to 2387) SpanInfo: {"start":2368,"length":16}
|
||||
>getMultiRobots()
|
||||
>:=> (line 84, col 33) to (line 84, col 49)
|
||||
--------------------------------
|
||||
85 > console.log(multiRobotAInfo);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (2388 to 2421) SpanInfo: {"start":2392,"length":28}
|
||||
>console.log(multiRobotAInfo)
|
||||
>:=> (line 85, col 4) to (line 85, col 32)
|
||||
--------------------------------
|
||||
86 >}
|
||||
|
||||
~~ => Pos: (2422 to 2423) SpanInfo: {"start":2392,"length":28}
|
||||
>console.log(multiRobotAInfo)
|
||||
>:=> (line 85, col 4) to (line 85, col 32)
|
||||
--------------------------------
|
||||
87 >for (let [...multiRobotAInfo] of [multiRobotA, multiRobotB]) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (2424 to 2452) SpanInfo: {"start":2434,"length":18}
|
||||
>...multiRobotAInfo
|
||||
>:=> (line 87, col 10) to (line 87, col 28)
|
||||
87 >for (let [...multiRobotAInfo] of [multiRobotA, multiRobotB]) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (2453 to 2486) SpanInfo: {"start":2457,"length":26}
|
||||
>[multiRobotA, multiRobotB]
|
||||
>:=> (line 87, col 33) to (line 87, col 59)
|
||||
--------------------------------
|
||||
88 > console.log(multiRobotAInfo);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (2487 to 2520) SpanInfo: {"start":2491,"length":28}
|
||||
>console.log(multiRobotAInfo)
|
||||
>:=> (line 88, col 4) to (line 88, col 32)
|
||||
--------------------------------
|
||||
89 >}
|
||||
~ => Pos: (2521 to 2521) SpanInfo: {"start":2491,"length":28}
|
||||
>console.log(multiRobotAInfo)
|
||||
>:=> (line 88, col 4) to (line 88, col 32)
|
||||
+814
@@ -0,0 +1,814 @@
|
||||
|
||||
1 >declare var console: {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (0 to 22) SpanInfo: undefined
|
||||
--------------------------------
|
||||
2 > log(msg: any): void;
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (23 to 47) SpanInfo: undefined
|
||||
--------------------------------
|
||||
3 >}
|
||||
|
||||
~~ => Pos: (48 to 49) SpanInfo: undefined
|
||||
--------------------------------
|
||||
4 >type Robot = [number, string, string];
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (50 to 88) SpanInfo: undefined
|
||||
--------------------------------
|
||||
5 >type MultiSkilledRobot = [string, [string, string]];
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (89 to 141) SpanInfo: undefined
|
||||
--------------------------------
|
||||
6 >let robotA: Robot = [1, "mower", "mowing"];
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (142 to 185) SpanInfo: {"start":142,"length":42}
|
||||
>let robotA: Robot = [1, "mower", "mowing"]
|
||||
>:=> (line 6, col 0) to (line 6, col 42)
|
||||
--------------------------------
|
||||
7 >let robotB: Robot = [2, "trimmer", "trimming"];
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (186 to 233) SpanInfo: {"start":186,"length":46}
|
||||
>let robotB: Robot = [2, "trimmer", "trimming"]
|
||||
>:=> (line 7, col 0) to (line 7, col 46)
|
||||
--------------------------------
|
||||
8 >let robots = [robotA, robotB];
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (234 to 264) SpanInfo: {"start":234,"length":29}
|
||||
>let robots = [robotA, robotB]
|
||||
>:=> (line 8, col 0) to (line 8, col 29)
|
||||
--------------------------------
|
||||
9 >function getRobots() {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (265 to 287) SpanInfo: {"start":292,"length":13}
|
||||
>return robots
|
||||
>:=> (line 10, col 4) to (line 10, col 17)
|
||||
--------------------------------
|
||||
10 > return robots;
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~ => Pos: (288 to 306) SpanInfo: {"start":292,"length":13}
|
||||
>return robots
|
||||
>:=> (line 10, col 4) to (line 10, col 17)
|
||||
--------------------------------
|
||||
11 >}
|
||||
|
||||
~~ => Pos: (307 to 308) SpanInfo: {"start":307,"length":1}
|
||||
>}
|
||||
>:=> (line 11, col 0) to (line 11, col 1)
|
||||
--------------------------------
|
||||
12 >let multiRobotA: MultiSkilledRobot = ["mower", ["mowing", ""]];
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (309 to 372) SpanInfo: {"start":309,"length":62}
|
||||
>let multiRobotA: MultiSkilledRobot = ["mower", ["mowing", ""]]
|
||||
>:=> (line 12, col 0) to (line 12, col 62)
|
||||
--------------------------------
|
||||
13 >let multiRobotB: MultiSkilledRobot = ["trimmer", ["trimming", "edging"]];
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (373 to 446) SpanInfo: {"start":373,"length":72}
|
||||
>let multiRobotB: MultiSkilledRobot = ["trimmer", ["trimming", "edging"]]
|
||||
>:=> (line 13, col 0) to (line 13, col 72)
|
||||
--------------------------------
|
||||
14 >let multiRobots = [multiRobotA, multiRobotB];
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (447 to 492) SpanInfo: {"start":447,"length":44}
|
||||
>let multiRobots = [multiRobotA, multiRobotB]
|
||||
>:=> (line 14, col 0) to (line 14, col 44)
|
||||
--------------------------------
|
||||
15 >function getMultiRobots() {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (493 to 520) SpanInfo: {"start":525,"length":18}
|
||||
>return multiRobots
|
||||
>:=> (line 16, col 4) to (line 16, col 22)
|
||||
--------------------------------
|
||||
16 > return multiRobots;
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (521 to 544) SpanInfo: {"start":525,"length":18}
|
||||
>return multiRobots
|
||||
>:=> (line 16, col 4) to (line 16, col 22)
|
||||
--------------------------------
|
||||
17 >}
|
||||
|
||||
~~ => Pos: (545 to 546) SpanInfo: {"start":545,"length":1}
|
||||
>}
|
||||
>:=> (line 17, col 0) to (line 17, col 1)
|
||||
--------------------------------
|
||||
18 >for (let [, nameA = "noName"] of robots) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (547 to 575) SpanInfo: {"start":559,"length":16}
|
||||
>nameA = "noName"
|
||||
>:=> (line 18, col 12) to (line 18, col 28)
|
||||
18 >for (let [, nameA = "noName"] of robots) {
|
||||
|
||||
~~~~~~~~~~~~~~ => Pos: (576 to 589) SpanInfo: {"start":580,"length":6}
|
||||
>robots
|
||||
>:=> (line 18, col 33) to (line 18, col 39)
|
||||
--------------------------------
|
||||
19 > console.log(nameA);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (590 to 613) SpanInfo: {"start":594,"length":18}
|
||||
>console.log(nameA)
|
||||
>:=> (line 19, col 4) to (line 19, col 22)
|
||||
--------------------------------
|
||||
20 >}
|
||||
|
||||
~~ => Pos: (614 to 615) SpanInfo: {"start":594,"length":18}
|
||||
>console.log(nameA)
|
||||
>:=> (line 19, col 4) to (line 19, col 22)
|
||||
--------------------------------
|
||||
21 >for (let [, nameA = "noName"] of getRobots()) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (616 to 644) SpanInfo: {"start":628,"length":16}
|
||||
>nameA = "noName"
|
||||
>:=> (line 21, col 12) to (line 21, col 28)
|
||||
21 >for (let [, nameA = "noName"] of getRobots()) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~=> Pos: (645 to 663) SpanInfo: {"start":649,"length":11}
|
||||
>getRobots()
|
||||
>:=> (line 21, col 33) to (line 21, col 44)
|
||||
--------------------------------
|
||||
22 > console.log(nameA);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (664 to 687) SpanInfo: {"start":668,"length":18}
|
||||
>console.log(nameA)
|
||||
>:=> (line 22, col 4) to (line 22, col 22)
|
||||
--------------------------------
|
||||
23 >}
|
||||
|
||||
~~ => Pos: (688 to 689) SpanInfo: {"start":668,"length":18}
|
||||
>console.log(nameA)
|
||||
>:=> (line 22, col 4) to (line 22, col 22)
|
||||
--------------------------------
|
||||
24 >for (let [, nameA = "noName"] of [robotA, robotB]) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (690 to 718) SpanInfo: {"start":702,"length":16}
|
||||
>nameA = "noName"
|
||||
>:=> (line 24, col 12) to (line 24, col 28)
|
||||
24 >for (let [, nameA = "noName"] of [robotA, robotB]) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (719 to 742) SpanInfo: {"start":723,"length":16}
|
||||
>[robotA, robotB]
|
||||
>:=> (line 24, col 33) to (line 24, col 49)
|
||||
--------------------------------
|
||||
25 > console.log(nameA);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (743 to 766) SpanInfo: {"start":747,"length":18}
|
||||
>console.log(nameA)
|
||||
>:=> (line 25, col 4) to (line 25, col 22)
|
||||
--------------------------------
|
||||
26 >}
|
||||
|
||||
~~ => Pos: (767 to 768) SpanInfo: {"start":747,"length":18}
|
||||
>console.log(nameA)
|
||||
>:=> (line 25, col 4) to (line 25, col 22)
|
||||
--------------------------------
|
||||
27 >for (let [, [
|
||||
|
||||
~~~~~~~~~~~ => Pos: (769 to 779) SpanInfo: {"start":781,"length":91}
|
||||
>[
|
||||
> primarySkillA = "primary",
|
||||
> secondarySkillA = "secondary"
|
||||
>] = ["skill1", "skill2"]
|
||||
>:=> (line 27, col 12) to (line 30, col 24)
|
||||
27 >for (let [, [
|
||||
|
||||
~~~ => Pos: (780 to 782) SpanInfo: {"start":787,"length":25}
|
||||
>primarySkillA = "primary"
|
||||
>:=> (line 28, col 4) to (line 28, col 29)
|
||||
--------------------------------
|
||||
28 > primarySkillA = "primary",
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (783 to 813) SpanInfo: {"start":787,"length":25}
|
||||
>primarySkillA = "primary"
|
||||
>:=> (line 28, col 4) to (line 28, col 29)
|
||||
--------------------------------
|
||||
29 > secondarySkillA = "secondary"
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (814 to 847) SpanInfo: {"start":818,"length":29}
|
||||
>secondarySkillA = "secondary"
|
||||
>:=> (line 29, col 4) to (line 29, col 33)
|
||||
--------------------------------
|
||||
30 >] = ["skill1", "skill2"]] of multiRobots) {
|
||||
|
||||
~ => Pos: (848 to 848) SpanInfo: {"start":818,"length":29}
|
||||
>secondarySkillA = "secondary"
|
||||
>:=> (line 29, col 4) to (line 29, col 33)
|
||||
30 >] = ["skill1", "skill2"]] of multiRobots) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (849 to 872) SpanInfo: {"start":781,"length":91}
|
||||
>[
|
||||
> primarySkillA = "primary",
|
||||
> secondarySkillA = "secondary"
|
||||
>] = ["skill1", "skill2"]
|
||||
>:=> (line 27, col 12) to (line 30, col 24)
|
||||
30 >] = ["skill1", "skill2"]] of multiRobots) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~ => Pos: (873 to 891) SpanInfo: {"start":877,"length":11}
|
||||
>multiRobots
|
||||
>:=> (line 30, col 29) to (line 30, col 40)
|
||||
--------------------------------
|
||||
31 > console.log(primarySkillA);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (892 to 923) SpanInfo: {"start":896,"length":26}
|
||||
>console.log(primarySkillA)
|
||||
>:=> (line 31, col 4) to (line 31, col 30)
|
||||
--------------------------------
|
||||
32 >}
|
||||
|
||||
~~ => Pos: (924 to 925) SpanInfo: {"start":896,"length":26}
|
||||
>console.log(primarySkillA)
|
||||
>:=> (line 31, col 4) to (line 31, col 30)
|
||||
--------------------------------
|
||||
33 >for (let [, [
|
||||
|
||||
~~~~~~~~~~~ => Pos: (926 to 936) SpanInfo: {"start":938,"length":91}
|
||||
>[
|
||||
> primarySkillA = "primary",
|
||||
> secondarySkillA = "secondary"
|
||||
>] = ["skill1", "skill2"]
|
||||
>:=> (line 33, col 12) to (line 36, col 24)
|
||||
33 >for (let [, [
|
||||
|
||||
~~~ => Pos: (937 to 939) SpanInfo: {"start":944,"length":25}
|
||||
>primarySkillA = "primary"
|
||||
>:=> (line 34, col 4) to (line 34, col 29)
|
||||
--------------------------------
|
||||
34 > primarySkillA = "primary",
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (940 to 970) SpanInfo: {"start":944,"length":25}
|
||||
>primarySkillA = "primary"
|
||||
>:=> (line 34, col 4) to (line 34, col 29)
|
||||
--------------------------------
|
||||
35 > secondarySkillA = "secondary"
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (971 to 1004) SpanInfo: {"start":975,"length":29}
|
||||
>secondarySkillA = "secondary"
|
||||
>:=> (line 35, col 4) to (line 35, col 33)
|
||||
--------------------------------
|
||||
36 >] = ["skill1", "skill2"]] of getMultiRobots()) {
|
||||
|
||||
~ => Pos: (1005 to 1005) SpanInfo: {"start":975,"length":29}
|
||||
>secondarySkillA = "secondary"
|
||||
>:=> (line 35, col 4) to (line 35, col 33)
|
||||
36 >] = ["skill1", "skill2"]] of getMultiRobots()) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (1006 to 1029) SpanInfo: {"start":938,"length":91}
|
||||
>[
|
||||
> primarySkillA = "primary",
|
||||
> secondarySkillA = "secondary"
|
||||
>] = ["skill1", "skill2"]
|
||||
>:=> (line 33, col 12) to (line 36, col 24)
|
||||
36 >] = ["skill1", "skill2"]] of getMultiRobots()) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (1030 to 1053) SpanInfo: {"start":1034,"length":16}
|
||||
>getMultiRobots()
|
||||
>:=> (line 36, col 29) to (line 36, col 45)
|
||||
--------------------------------
|
||||
37 > console.log(primarySkillA);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (1054 to 1085) SpanInfo: {"start":1058,"length":26}
|
||||
>console.log(primarySkillA)
|
||||
>:=> (line 37, col 4) to (line 37, col 30)
|
||||
--------------------------------
|
||||
38 >}
|
||||
|
||||
~~ => Pos: (1086 to 1087) SpanInfo: {"start":1058,"length":26}
|
||||
>console.log(primarySkillA)
|
||||
>:=> (line 37, col 4) to (line 37, col 30)
|
||||
--------------------------------
|
||||
39 >for (let [, [
|
||||
|
||||
~~~~~~~~~~~ => Pos: (1088 to 1098) SpanInfo: {"start":1100,"length":91}
|
||||
>[
|
||||
> primarySkillA = "primary",
|
||||
> secondarySkillA = "secondary"
|
||||
>] = ["skill1", "skill2"]
|
||||
>:=> (line 39, col 12) to (line 42, col 24)
|
||||
39 >for (let [, [
|
||||
|
||||
~~~ => Pos: (1099 to 1101) SpanInfo: {"start":1106,"length":25}
|
||||
>primarySkillA = "primary"
|
||||
>:=> (line 40, col 4) to (line 40, col 29)
|
||||
--------------------------------
|
||||
40 > primarySkillA = "primary",
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (1102 to 1132) SpanInfo: {"start":1106,"length":25}
|
||||
>primarySkillA = "primary"
|
||||
>:=> (line 40, col 4) to (line 40, col 29)
|
||||
--------------------------------
|
||||
41 > secondarySkillA = "secondary"
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (1133 to 1166) SpanInfo: {"start":1137,"length":29}
|
||||
>secondarySkillA = "secondary"
|
||||
>:=> (line 41, col 4) to (line 41, col 33)
|
||||
--------------------------------
|
||||
42 >] = ["skill1", "skill2"]] of [multiRobotA, multiRobotB]) {
|
||||
|
||||
~ => Pos: (1167 to 1167) SpanInfo: {"start":1137,"length":29}
|
||||
>secondarySkillA = "secondary"
|
||||
>:=> (line 41, col 4) to (line 41, col 33)
|
||||
42 >] = ["skill1", "skill2"]] of [multiRobotA, multiRobotB]) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (1168 to 1191) SpanInfo: {"start":1100,"length":91}
|
||||
>[
|
||||
> primarySkillA = "primary",
|
||||
> secondarySkillA = "secondary"
|
||||
>] = ["skill1", "skill2"]
|
||||
>:=> (line 39, col 12) to (line 42, col 24)
|
||||
42 >] = ["skill1", "skill2"]] of [multiRobotA, multiRobotB]) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (1192 to 1225) SpanInfo: {"start":1196,"length":26}
|
||||
>[multiRobotA, multiRobotB]
|
||||
>:=> (line 42, col 29) to (line 42, col 55)
|
||||
--------------------------------
|
||||
43 > console.log(primarySkillA);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (1226 to 1257) SpanInfo: {"start":1230,"length":26}
|
||||
>console.log(primarySkillA)
|
||||
>:=> (line 43, col 4) to (line 43, col 30)
|
||||
--------------------------------
|
||||
44 >}
|
||||
|
||||
~~ => Pos: (1258 to 1259) SpanInfo: {"start":1230,"length":26}
|
||||
>console.log(primarySkillA)
|
||||
>:=> (line 43, col 4) to (line 43, col 30)
|
||||
--------------------------------
|
||||
45 >for (let [numberB = -1] of robots) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (1260 to 1282) SpanInfo: {"start":1270,"length":12}
|
||||
>numberB = -1
|
||||
>:=> (line 45, col 10) to (line 45, col 22)
|
||||
45 >for (let [numberB = -1] of robots) {
|
||||
|
||||
~~~~~~~~~~~~~~ => Pos: (1283 to 1296) SpanInfo: {"start":1287,"length":6}
|
||||
>robots
|
||||
>:=> (line 45, col 27) to (line 45, col 33)
|
||||
--------------------------------
|
||||
46 > console.log(numberB);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (1297 to 1322) SpanInfo: {"start":1301,"length":20}
|
||||
>console.log(numberB)
|
||||
>:=> (line 46, col 4) to (line 46, col 24)
|
||||
--------------------------------
|
||||
47 >}
|
||||
|
||||
~~ => Pos: (1323 to 1324) SpanInfo: {"start":1301,"length":20}
|
||||
>console.log(numberB)
|
||||
>:=> (line 46, col 4) to (line 46, col 24)
|
||||
--------------------------------
|
||||
48 >for (let [numberB = -1] of getRobots()) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (1325 to 1347) SpanInfo: {"start":1335,"length":12}
|
||||
>numberB = -1
|
||||
>:=> (line 48, col 10) to (line 48, col 22)
|
||||
48 >for (let [numberB = -1] of getRobots()) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~ => Pos: (1348 to 1366) SpanInfo: {"start":1352,"length":11}
|
||||
>getRobots()
|
||||
>:=> (line 48, col 27) to (line 48, col 38)
|
||||
--------------------------------
|
||||
49 > console.log(numberB);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (1367 to 1392) SpanInfo: {"start":1371,"length":20}
|
||||
>console.log(numberB)
|
||||
>:=> (line 49, col 4) to (line 49, col 24)
|
||||
--------------------------------
|
||||
50 >}
|
||||
|
||||
~~ => Pos: (1393 to 1394) SpanInfo: {"start":1371,"length":20}
|
||||
>console.log(numberB)
|
||||
>:=> (line 49, col 4) to (line 49, col 24)
|
||||
--------------------------------
|
||||
51 >for (let [numberB = -1] of [robotA, robotB]) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (1395 to 1417) SpanInfo: {"start":1405,"length":12}
|
||||
>numberB = -1
|
||||
>:=> (line 51, col 10) to (line 51, col 22)
|
||||
51 >for (let [numberB = -1] of [robotA, robotB]) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (1418 to 1441) SpanInfo: {"start":1422,"length":16}
|
||||
>[robotA, robotB]
|
||||
>:=> (line 51, col 27) to (line 51, col 43)
|
||||
--------------------------------
|
||||
52 > console.log(numberB);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (1442 to 1467) SpanInfo: {"start":1446,"length":20}
|
||||
>console.log(numberB)
|
||||
>:=> (line 52, col 4) to (line 52, col 24)
|
||||
--------------------------------
|
||||
53 >}
|
||||
|
||||
~~ => Pos: (1468 to 1469) SpanInfo: {"start":1446,"length":20}
|
||||
>console.log(numberB)
|
||||
>:=> (line 52, col 4) to (line 52, col 24)
|
||||
--------------------------------
|
||||
54 >for (let [nameB = "noName"] of multiRobots) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (1470 to 1496) SpanInfo: {"start":1480,"length":16}
|
||||
>nameB = "noName"
|
||||
>:=> (line 54, col 10) to (line 54, col 26)
|
||||
54 >for (let [nameB = "noName"] of multiRobots) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~=> Pos: (1497 to 1515) SpanInfo: {"start":1501,"length":11}
|
||||
>multiRobots
|
||||
>:=> (line 54, col 31) to (line 54, col 42)
|
||||
--------------------------------
|
||||
55 > console.log(nameB);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (1516 to 1539) SpanInfo: {"start":1520,"length":18}
|
||||
>console.log(nameB)
|
||||
>:=> (line 55, col 4) to (line 55, col 22)
|
||||
--------------------------------
|
||||
56 >}
|
||||
|
||||
~~ => Pos: (1540 to 1541) SpanInfo: {"start":1520,"length":18}
|
||||
>console.log(nameB)
|
||||
>:=> (line 55, col 4) to (line 55, col 22)
|
||||
--------------------------------
|
||||
57 >for (let [nameB = "noName"] of getMultiRobots()) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (1542 to 1568) SpanInfo: {"start":1552,"length":16}
|
||||
>nameB = "noName"
|
||||
>:=> (line 57, col 10) to (line 57, col 26)
|
||||
57 >for (let [nameB = "noName"] of getMultiRobots()) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (1569 to 1592) SpanInfo: {"start":1573,"length":16}
|
||||
>getMultiRobots()
|
||||
>:=> (line 57, col 31) to (line 57, col 47)
|
||||
--------------------------------
|
||||
58 > console.log(nameB);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (1593 to 1616) SpanInfo: {"start":1597,"length":18}
|
||||
>console.log(nameB)
|
||||
>:=> (line 58, col 4) to (line 58, col 22)
|
||||
--------------------------------
|
||||
59 >}
|
||||
|
||||
~~ => Pos: (1617 to 1618) SpanInfo: {"start":1597,"length":18}
|
||||
>console.log(nameB)
|
||||
>:=> (line 58, col 4) to (line 58, col 22)
|
||||
--------------------------------
|
||||
60 >for (let [nameB = "noName"] of [multiRobotA, multiRobotB]) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (1619 to 1645) SpanInfo: {"start":1629,"length":16}
|
||||
>nameB = "noName"
|
||||
>:=> (line 60, col 10) to (line 60, col 26)
|
||||
60 >for (let [nameB = "noName"] of [multiRobotA, multiRobotB]) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (1646 to 1679) SpanInfo: {"start":1650,"length":26}
|
||||
>[multiRobotA, multiRobotB]
|
||||
>:=> (line 60, col 31) to (line 60, col 57)
|
||||
--------------------------------
|
||||
61 > console.log(nameB);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (1680 to 1703) SpanInfo: {"start":1684,"length":18}
|
||||
>console.log(nameB)
|
||||
>:=> (line 61, col 4) to (line 61, col 22)
|
||||
--------------------------------
|
||||
62 >}
|
||||
|
||||
~~ => Pos: (1704 to 1705) SpanInfo: {"start":1684,"length":18}
|
||||
>console.log(nameB)
|
||||
>:=> (line 61, col 4) to (line 61, col 22)
|
||||
--------------------------------
|
||||
63 >for (let [numberA2 = -1, nameA2 = "noName", skillA2 = "skill"] of robots) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (1706 to 1729) SpanInfo: {"start":1716,"length":13}
|
||||
>numberA2 = -1
|
||||
>:=> (line 63, col 10) to (line 63, col 23)
|
||||
63 >for (let [numberA2 = -1, nameA2 = "noName", skillA2 = "skill"] of robots) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~ => Pos: (1730 to 1748) SpanInfo: {"start":1731,"length":17}
|
||||
>nameA2 = "noName"
|
||||
>:=> (line 63, col 25) to (line 63, col 42)
|
||||
63 >for (let [numberA2 = -1, nameA2 = "noName", skillA2 = "skill"] of robots) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~=> Pos: (1749 to 1767) SpanInfo: {"start":1750,"length":17}
|
||||
>skillA2 = "skill"
|
||||
>:=> (line 63, col 44) to (line 63, col 61)
|
||||
63 >for (let [numberA2 = -1, nameA2 = "noName", skillA2 = "skill"] of robots) {
|
||||
|
||||
~~~~~~~~~~~~~~=> Pos: (1768 to 1781) SpanInfo: {"start":1772,"length":6}
|
||||
>robots
|
||||
>:=> (line 63, col 66) to (line 63, col 72)
|
||||
--------------------------------
|
||||
64 > console.log(nameA2);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (1782 to 1806) SpanInfo: {"start":1786,"length":19}
|
||||
>console.log(nameA2)
|
||||
>:=> (line 64, col 4) to (line 64, col 23)
|
||||
--------------------------------
|
||||
65 >}
|
||||
|
||||
~~ => Pos: (1807 to 1808) SpanInfo: {"start":1786,"length":19}
|
||||
>console.log(nameA2)
|
||||
>:=> (line 64, col 4) to (line 64, col 23)
|
||||
--------------------------------
|
||||
66 >for (let [numberA2 = -1, nameA2 = "noName", skillA2 = "skill"] of getRobots()) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (1809 to 1832) SpanInfo: {"start":1819,"length":13}
|
||||
>numberA2 = -1
|
||||
>:=> (line 66, col 10) to (line 66, col 23)
|
||||
66 >for (let [numberA2 = -1, nameA2 = "noName", skillA2 = "skill"] of getRobots()) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~ => Pos: (1833 to 1851) SpanInfo: {"start":1834,"length":17}
|
||||
>nameA2 = "noName"
|
||||
>:=> (line 66, col 25) to (line 66, col 42)
|
||||
66 >for (let [numberA2 = -1, nameA2 = "noName", skillA2 = "skill"] of getRobots()) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~=> Pos: (1852 to 1870) SpanInfo: {"start":1853,"length":17}
|
||||
>skillA2 = "skill"
|
||||
>:=> (line 66, col 44) to (line 66, col 61)
|
||||
66 >for (let [numberA2 = -1, nameA2 = "noName", skillA2 = "skill"] of getRobots()) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~=> Pos: (1871 to 1889) SpanInfo: {"start":1875,"length":11}
|
||||
>getRobots()
|
||||
>:=> (line 66, col 66) to (line 66, col 77)
|
||||
--------------------------------
|
||||
67 > console.log(nameA2);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (1890 to 1914) SpanInfo: {"start":1894,"length":19}
|
||||
>console.log(nameA2)
|
||||
>:=> (line 67, col 4) to (line 67, col 23)
|
||||
--------------------------------
|
||||
68 >}
|
||||
|
||||
~~ => Pos: (1915 to 1916) SpanInfo: {"start":1894,"length":19}
|
||||
>console.log(nameA2)
|
||||
>:=> (line 67, col 4) to (line 67, col 23)
|
||||
--------------------------------
|
||||
69 >for (let [numberA2 = -1, nameA2 = "noName", skillA2 = "skill"] of [robotA, robotB]) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (1917 to 1940) SpanInfo: {"start":1927,"length":13}
|
||||
>numberA2 = -1
|
||||
>:=> (line 69, col 10) to (line 69, col 23)
|
||||
69 >for (let [numberA2 = -1, nameA2 = "noName", skillA2 = "skill"] of [robotA, robotB]) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~ => Pos: (1941 to 1959) SpanInfo: {"start":1942,"length":17}
|
||||
>nameA2 = "noName"
|
||||
>:=> (line 69, col 25) to (line 69, col 42)
|
||||
69 >for (let [numberA2 = -1, nameA2 = "noName", skillA2 = "skill"] of [robotA, robotB]) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~=> Pos: (1960 to 1978) SpanInfo: {"start":1961,"length":17}
|
||||
>skillA2 = "skill"
|
||||
>:=> (line 69, col 44) to (line 69, col 61)
|
||||
69 >for (let [numberA2 = -1, nameA2 = "noName", skillA2 = "skill"] of [robotA, robotB]) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (1979 to 2002) SpanInfo: {"start":1983,"length":16}
|
||||
>[robotA, robotB]
|
||||
>:=> (line 69, col 66) to (line 69, col 82)
|
||||
--------------------------------
|
||||
70 > console.log(nameA2);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (2003 to 2027) SpanInfo: {"start":2007,"length":19}
|
||||
>console.log(nameA2)
|
||||
>:=> (line 70, col 4) to (line 70, col 23)
|
||||
--------------------------------
|
||||
71 >}
|
||||
|
||||
~~ => Pos: (2028 to 2029) SpanInfo: {"start":2007,"length":19}
|
||||
>console.log(nameA2)
|
||||
>:=> (line 70, col 4) to (line 70, col 23)
|
||||
--------------------------------
|
||||
72 >for (let [nameMA = "noName", [
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (2030 to 2057) SpanInfo: {"start":2040,"length":17}
|
||||
>nameMA = "noName"
|
||||
>:=> (line 72, col 10) to (line 72, col 27)
|
||||
72 >for (let [nameMA = "noName", [
|
||||
|
||||
~~~ => Pos: (2058 to 2060) SpanInfo: {"start":2065,"length":25}
|
||||
>primarySkillA = "primary"
|
||||
>:=> (line 73, col 4) to (line 73, col 29)
|
||||
--------------------------------
|
||||
73 > primarySkillA = "primary",
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (2061 to 2091) SpanInfo: {"start":2065,"length":25}
|
||||
>primarySkillA = "primary"
|
||||
>:=> (line 73, col 4) to (line 73, col 29)
|
||||
--------------------------------
|
||||
74 > secondarySkillA = "secondary"
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (2092 to 2125) SpanInfo: {"start":2096,"length":29}
|
||||
>secondarySkillA = "secondary"
|
||||
>:=> (line 74, col 4) to (line 74, col 33)
|
||||
--------------------------------
|
||||
75 >] = ["skill1", "skill2"]] of multiRobots) {
|
||||
|
||||
~ => Pos: (2126 to 2126) SpanInfo: {"start":2096,"length":29}
|
||||
>secondarySkillA = "secondary"
|
||||
>:=> (line 74, col 4) to (line 74, col 33)
|
||||
75 >] = ["skill1", "skill2"]] of multiRobots) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (2127 to 2150) SpanInfo: {"start":2059,"length":91}
|
||||
>[
|
||||
> primarySkillA = "primary",
|
||||
> secondarySkillA = "secondary"
|
||||
>] = ["skill1", "skill2"]
|
||||
>:=> (line 72, col 29) to (line 75, col 24)
|
||||
75 >] = ["skill1", "skill2"]] of multiRobots) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~ => Pos: (2151 to 2169) SpanInfo: {"start":2155,"length":11}
|
||||
>multiRobots
|
||||
>:=> (line 75, col 29) to (line 75, col 40)
|
||||
--------------------------------
|
||||
76 > console.log(nameMA);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (2170 to 2194) SpanInfo: {"start":2174,"length":19}
|
||||
>console.log(nameMA)
|
||||
>:=> (line 76, col 4) to (line 76, col 23)
|
||||
--------------------------------
|
||||
77 >}
|
||||
|
||||
~~ => Pos: (2195 to 2196) SpanInfo: {"start":2174,"length":19}
|
||||
>console.log(nameMA)
|
||||
>:=> (line 76, col 4) to (line 76, col 23)
|
||||
--------------------------------
|
||||
78 >for (let [nameMA = "noName", [
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (2197 to 2224) SpanInfo: {"start":2207,"length":17}
|
||||
>nameMA = "noName"
|
||||
>:=> (line 78, col 10) to (line 78, col 27)
|
||||
78 >for (let [nameMA = "noName", [
|
||||
|
||||
~~~ => Pos: (2225 to 2227) SpanInfo: {"start":2232,"length":25}
|
||||
>primarySkillA = "primary"
|
||||
>:=> (line 79, col 4) to (line 79, col 29)
|
||||
--------------------------------
|
||||
79 > primarySkillA = "primary",
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (2228 to 2258) SpanInfo: {"start":2232,"length":25}
|
||||
>primarySkillA = "primary"
|
||||
>:=> (line 79, col 4) to (line 79, col 29)
|
||||
--------------------------------
|
||||
80 > secondarySkillA = "secondary"
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (2259 to 2292) SpanInfo: {"start":2263,"length":29}
|
||||
>secondarySkillA = "secondary"
|
||||
>:=> (line 80, col 4) to (line 80, col 33)
|
||||
--------------------------------
|
||||
81 >] = ["skill1", "skill2"]] of getMultiRobots()) {
|
||||
|
||||
~ => Pos: (2293 to 2293) SpanInfo: {"start":2263,"length":29}
|
||||
>secondarySkillA = "secondary"
|
||||
>:=> (line 80, col 4) to (line 80, col 33)
|
||||
81 >] = ["skill1", "skill2"]] of getMultiRobots()) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (2294 to 2317) SpanInfo: {"start":2226,"length":91}
|
||||
>[
|
||||
> primarySkillA = "primary",
|
||||
> secondarySkillA = "secondary"
|
||||
>] = ["skill1", "skill2"]
|
||||
>:=> (line 78, col 29) to (line 81, col 24)
|
||||
81 >] = ["skill1", "skill2"]] of getMultiRobots()) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (2318 to 2341) SpanInfo: {"start":2322,"length":16}
|
||||
>getMultiRobots()
|
||||
>:=> (line 81, col 29) to (line 81, col 45)
|
||||
--------------------------------
|
||||
82 > console.log(nameMA);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (2342 to 2366) SpanInfo: {"start":2346,"length":19}
|
||||
>console.log(nameMA)
|
||||
>:=> (line 82, col 4) to (line 82, col 23)
|
||||
--------------------------------
|
||||
83 >}
|
||||
|
||||
~~ => Pos: (2367 to 2368) SpanInfo: {"start":2346,"length":19}
|
||||
>console.log(nameMA)
|
||||
>:=> (line 82, col 4) to (line 82, col 23)
|
||||
--------------------------------
|
||||
84 >for (let [nameMA = "noName", [
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (2369 to 2396) SpanInfo: {"start":2379,"length":17}
|
||||
>nameMA = "noName"
|
||||
>:=> (line 84, col 10) to (line 84, col 27)
|
||||
84 >for (let [nameMA = "noName", [
|
||||
|
||||
~~~ => Pos: (2397 to 2399) SpanInfo: {"start":2404,"length":25}
|
||||
>primarySkillA = "primary"
|
||||
>:=> (line 85, col 4) to (line 85, col 29)
|
||||
--------------------------------
|
||||
85 > primarySkillA = "primary",
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (2400 to 2430) SpanInfo: {"start":2404,"length":25}
|
||||
>primarySkillA = "primary"
|
||||
>:=> (line 85, col 4) to (line 85, col 29)
|
||||
--------------------------------
|
||||
86 > secondarySkillA = "secondary"
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (2431 to 2464) SpanInfo: {"start":2435,"length":29}
|
||||
>secondarySkillA = "secondary"
|
||||
>:=> (line 86, col 4) to (line 86, col 33)
|
||||
--------------------------------
|
||||
87 >] = ["skill1", "skill2"]] of [multiRobotA, multiRobotB]) {
|
||||
|
||||
~ => Pos: (2465 to 2465) SpanInfo: {"start":2435,"length":29}
|
||||
>secondarySkillA = "secondary"
|
||||
>:=> (line 86, col 4) to (line 86, col 33)
|
||||
87 >] = ["skill1", "skill2"]] of [multiRobotA, multiRobotB]) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (2466 to 2489) SpanInfo: {"start":2398,"length":91}
|
||||
>[
|
||||
> primarySkillA = "primary",
|
||||
> secondarySkillA = "secondary"
|
||||
>] = ["skill1", "skill2"]
|
||||
>:=> (line 84, col 29) to (line 87, col 24)
|
||||
87 >] = ["skill1", "skill2"]] of [multiRobotA, multiRobotB]) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (2490 to 2523) SpanInfo: {"start":2494,"length":26}
|
||||
>[multiRobotA, multiRobotB]
|
||||
>:=> (line 87, col 29) to (line 87, col 55)
|
||||
--------------------------------
|
||||
88 > console.log(nameMA);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (2524 to 2548) SpanInfo: {"start":2528,"length":19}
|
||||
>console.log(nameMA)
|
||||
>:=> (line 88, col 4) to (line 88, col 23)
|
||||
--------------------------------
|
||||
89 >}
|
||||
|
||||
~~ => Pos: (2549 to 2550) SpanInfo: {"start":2528,"length":19}
|
||||
>console.log(nameMA)
|
||||
>:=> (line 88, col 4) to (line 88, col 23)
|
||||
--------------------------------
|
||||
90 >for (let [numberA3 = -1, ...robotAInfo] of robots) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (2551 to 2574) SpanInfo: {"start":2561,"length":13}
|
||||
>numberA3 = -1
|
||||
>:=> (line 90, col 10) to (line 90, col 23)
|
||||
90 >for (let [numberA3 = -1, ...robotAInfo] of robots) {
|
||||
|
||||
~~~~~~~~~~~~~~~ => Pos: (2575 to 2589) SpanInfo: {"start":2576,"length":13}
|
||||
>...robotAInfo
|
||||
>:=> (line 90, col 25) to (line 90, col 38)
|
||||
90 >for (let [numberA3 = -1, ...robotAInfo] of robots) {
|
||||
|
||||
~~~~~~~~~~~~~~=> Pos: (2590 to 2603) SpanInfo: {"start":2594,"length":6}
|
||||
>robots
|
||||
>:=> (line 90, col 43) to (line 90, col 49)
|
||||
--------------------------------
|
||||
91 > console.log(numberA3);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (2604 to 2630) SpanInfo: {"start":2608,"length":21}
|
||||
>console.log(numberA3)
|
||||
>:=> (line 91, col 4) to (line 91, col 25)
|
||||
--------------------------------
|
||||
92 >}
|
||||
|
||||
~~ => Pos: (2631 to 2632) SpanInfo: {"start":2608,"length":21}
|
||||
>console.log(numberA3)
|
||||
>:=> (line 91, col 4) to (line 91, col 25)
|
||||
--------------------------------
|
||||
93 >for (let [numberA3 = -1, ...robotAInfo] of getRobots()) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (2633 to 2656) SpanInfo: {"start":2643,"length":13}
|
||||
>numberA3 = -1
|
||||
>:=> (line 93, col 10) to (line 93, col 23)
|
||||
93 >for (let [numberA3 = -1, ...robotAInfo] of getRobots()) {
|
||||
|
||||
~~~~~~~~~~~~~~~ => Pos: (2657 to 2671) SpanInfo: {"start":2658,"length":13}
|
||||
>...robotAInfo
|
||||
>:=> (line 93, col 25) to (line 93, col 38)
|
||||
93 >for (let [numberA3 = -1, ...robotAInfo] of getRobots()) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~=> Pos: (2672 to 2690) SpanInfo: {"start":2676,"length":11}
|
||||
>getRobots()
|
||||
>:=> (line 93, col 43) to (line 93, col 54)
|
||||
--------------------------------
|
||||
94 > console.log(numberA3);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (2691 to 2717) SpanInfo: {"start":2695,"length":21}
|
||||
>console.log(numberA3)
|
||||
>:=> (line 94, col 4) to (line 94, col 25)
|
||||
--------------------------------
|
||||
95 >}
|
||||
|
||||
~~ => Pos: (2718 to 2719) SpanInfo: {"start":2695,"length":21}
|
||||
>console.log(numberA3)
|
||||
>:=> (line 94, col 4) to (line 94, col 25)
|
||||
--------------------------------
|
||||
96 >for (let [numberA3 = -1, ...robotAInfo] of [robotA, robotB]) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (2720 to 2743) SpanInfo: {"start":2730,"length":13}
|
||||
>numberA3 = -1
|
||||
>:=> (line 96, col 10) to (line 96, col 23)
|
||||
96 >for (let [numberA3 = -1, ...robotAInfo] of [robotA, robotB]) {
|
||||
|
||||
~~~~~~~~~~~~~~~ => Pos: (2744 to 2758) SpanInfo: {"start":2745,"length":13}
|
||||
>...robotAInfo
|
||||
>:=> (line 96, col 25) to (line 96, col 38)
|
||||
96 >for (let [numberA3 = -1, ...robotAInfo] of [robotA, robotB]) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (2759 to 2782) SpanInfo: {"start":2763,"length":16}
|
||||
>[robotA, robotB]
|
||||
>:=> (line 96, col 43) to (line 96, col 59)
|
||||
--------------------------------
|
||||
97 > console.log(numberA3);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (2783 to 2809) SpanInfo: {"start":2787,"length":21}
|
||||
>console.log(numberA3)
|
||||
>:=> (line 97, col 4) to (line 97, col 25)
|
||||
--------------------------------
|
||||
98 >}
|
||||
~ => Pos: (2810 to 2810) SpanInfo: {"start":2787,"length":21}
|
||||
>console.log(numberA3)
|
||||
>:=> (line 97, col 4) to (line 97, col 25)
|
||||
@@ -0,0 +1,523 @@
|
||||
|
||||
1 >declare var console: {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (0 to 22) SpanInfo: undefined
|
||||
--------------------------------
|
||||
2 > log(msg: any): void;
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (23 to 47) SpanInfo: undefined
|
||||
--------------------------------
|
||||
3 >}
|
||||
|
||||
~~ => Pos: (48 to 49) SpanInfo: undefined
|
||||
--------------------------------
|
||||
4 >interface Robot {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~ => Pos: (50 to 67) SpanInfo: undefined
|
||||
--------------------------------
|
||||
5 > name: string;
|
||||
|
||||
~~~~~~~~~~~~~~~~~~ => Pos: (68 to 85) SpanInfo: undefined
|
||||
--------------------------------
|
||||
6 > skill: string;
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~ => Pos: (86 to 104) SpanInfo: undefined
|
||||
--------------------------------
|
||||
7 >}
|
||||
|
||||
~~ => Pos: (105 to 106) SpanInfo: undefined
|
||||
--------------------------------
|
||||
8 >interface MultiRobot {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (107 to 129) SpanInfo: undefined
|
||||
--------------------------------
|
||||
9 > name: string;
|
||||
|
||||
~~~~~~~~~~~~~~~~~~ => Pos: (130 to 147) SpanInfo: undefined
|
||||
--------------------------------
|
||||
10 > skills: {
|
||||
|
||||
~~~~~~~~~~~~~~ => Pos: (148 to 161) SpanInfo: undefined
|
||||
--------------------------------
|
||||
11 > primary: string;
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (162 to 186) SpanInfo: undefined
|
||||
--------------------------------
|
||||
12 > secondary: string;
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (187 to 213) SpanInfo: undefined
|
||||
--------------------------------
|
||||
13 > };
|
||||
|
||||
~~~~~~~ => Pos: (214 to 220) SpanInfo: undefined
|
||||
--------------------------------
|
||||
14 >}
|
||||
|
||||
~~ => Pos: (221 to 222) SpanInfo: undefined
|
||||
--------------------------------
|
||||
15 >let robots: Robot[] = [{ name: "mower", skill: "mowing" }, { name: "trimmer", skill: "trimming" }];
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (223 to 322) SpanInfo: {"start":223,"length":98}
|
||||
>let robots: Robot[] = [{ name: "mower", skill: "mowing" }, { name: "trimmer", skill: "trimming" }]
|
||||
>:=> (line 15, col 0) to (line 15, col 98)
|
||||
--------------------------------
|
||||
16 >let multiRobots: MultiRobot[] = [{ name: "mower", skills: { primary: "mowing", secondary: "none" } },
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (323 to 424) SpanInfo: {"start":323,"length":180}
|
||||
>let multiRobots: MultiRobot[] = [{ name: "mower", skills: { primary: "mowing", secondary: "none" } },
|
||||
> { name: "trimmer", skills: { primary: "trimming", secondary: "edging" } }]
|
||||
>:=> (line 16, col 0) to (line 17, col 78)
|
||||
--------------------------------
|
||||
17 > { name: "trimmer", skills: { primary: "trimming", secondary: "edging" } }];
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (425 to 504) SpanInfo: {"start":323,"length":180}
|
||||
>let multiRobots: MultiRobot[] = [{ name: "mower", skills: { primary: "mowing", secondary: "none" } },
|
||||
> { name: "trimmer", skills: { primary: "trimming", secondary: "edging" } }]
|
||||
>:=> (line 16, col 0) to (line 17, col 78)
|
||||
--------------------------------
|
||||
18 >function getRobots() {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (505 to 527) SpanInfo: {"start":532,"length":13}
|
||||
>return robots
|
||||
>:=> (line 19, col 4) to (line 19, col 17)
|
||||
--------------------------------
|
||||
19 > return robots;
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~ => Pos: (528 to 546) SpanInfo: {"start":532,"length":13}
|
||||
>return robots
|
||||
>:=> (line 19, col 4) to (line 19, col 17)
|
||||
--------------------------------
|
||||
20 >}
|
||||
|
||||
~~ => Pos: (547 to 548) SpanInfo: {"start":547,"length":1}
|
||||
>}
|
||||
>:=> (line 20, col 0) to (line 20, col 1)
|
||||
--------------------------------
|
||||
21 >function getMultiRobots() {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (549 to 576) SpanInfo: {"start":581,"length":18}
|
||||
>return multiRobots
|
||||
>:=> (line 22, col 4) to (line 22, col 22)
|
||||
--------------------------------
|
||||
22 > return multiRobots;
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (577 to 600) SpanInfo: {"start":581,"length":18}
|
||||
>return multiRobots
|
||||
>:=> (line 22, col 4) to (line 22, col 22)
|
||||
--------------------------------
|
||||
23 >}
|
||||
|
||||
~~ => Pos: (601 to 602) SpanInfo: {"start":601,"length":1}
|
||||
>}
|
||||
>:=> (line 23, col 0) to (line 23, col 1)
|
||||
--------------------------------
|
||||
24 >for (let {name: nameA } of robots) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (603 to 625) SpanInfo: {"start":613,"length":11}
|
||||
>name: nameA
|
||||
>:=> (line 24, col 10) to (line 24, col 21)
|
||||
24 >for (let {name: nameA } of robots) {
|
||||
|
||||
~~~~~~~~~~~~~~ => Pos: (626 to 639) SpanInfo: {"start":630,"length":6}
|
||||
>robots
|
||||
>:=> (line 24, col 27) to (line 24, col 33)
|
||||
--------------------------------
|
||||
25 > console.log(nameA);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (640 to 663) SpanInfo: {"start":644,"length":18}
|
||||
>console.log(nameA)
|
||||
>:=> (line 25, col 4) to (line 25, col 22)
|
||||
--------------------------------
|
||||
26 >}
|
||||
|
||||
~~ => Pos: (664 to 665) SpanInfo: {"start":644,"length":18}
|
||||
>console.log(nameA)
|
||||
>:=> (line 25, col 4) to (line 25, col 22)
|
||||
--------------------------------
|
||||
27 >for (let {name: nameA } of getRobots()) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (666 to 688) SpanInfo: {"start":676,"length":11}
|
||||
>name: nameA
|
||||
>:=> (line 27, col 10) to (line 27, col 21)
|
||||
27 >for (let {name: nameA } of getRobots()) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~ => Pos: (689 to 707) SpanInfo: {"start":693,"length":11}
|
||||
>getRobots()
|
||||
>:=> (line 27, col 27) to (line 27, col 38)
|
||||
--------------------------------
|
||||
28 > console.log(nameA);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (708 to 731) SpanInfo: {"start":712,"length":18}
|
||||
>console.log(nameA)
|
||||
>:=> (line 28, col 4) to (line 28, col 22)
|
||||
--------------------------------
|
||||
29 >}
|
||||
|
||||
~~ => Pos: (732 to 733) SpanInfo: {"start":712,"length":18}
|
||||
>console.log(nameA)
|
||||
>:=> (line 28, col 4) to (line 28, col 22)
|
||||
--------------------------------
|
||||
30 >for (let {name: nameA } of [{ name: "mower", skill: "mowing" }, { name: "trimmer", skill: "trimming" }]) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (734 to 756) SpanInfo: {"start":744,"length":11}
|
||||
>name: nameA
|
||||
>:=> (line 30, col 10) to (line 30, col 21)
|
||||
30 >for (let {name: nameA } of [{ name: "mower", skill: "mowing" }, { name: "trimmer", skill: "trimming" }]) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (757 to 840) SpanInfo: {"start":761,"length":76}
|
||||
>[{ name: "mower", skill: "mowing" }, { name: "trimmer", skill: "trimming" }]
|
||||
>:=> (line 30, col 27) to (line 30, col 103)
|
||||
--------------------------------
|
||||
31 > console.log(nameA);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (841 to 864) SpanInfo: {"start":845,"length":18}
|
||||
>console.log(nameA)
|
||||
>:=> (line 31, col 4) to (line 31, col 22)
|
||||
--------------------------------
|
||||
32 >}
|
||||
|
||||
~~ => Pos: (865 to 866) SpanInfo: {"start":845,"length":18}
|
||||
>console.log(nameA)
|
||||
>:=> (line 31, col 4) to (line 31, col 22)
|
||||
--------------------------------
|
||||
33 >for (let { skills: { primary: primaryA, secondary: secondaryA } } of multiRobots) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~ => Pos: (867 to 884) SpanInfo: {"start":878,"length":52}
|
||||
>skills: { primary: primaryA, secondary: secondaryA }
|
||||
>:=> (line 33, col 11) to (line 33, col 63)
|
||||
33 >for (let { skills: { primary: primaryA, secondary: secondaryA } } of multiRobots) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~ => Pos: (885 to 905) SpanInfo: {"start":888,"length":17}
|
||||
>primary: primaryA
|
||||
>:=> (line 33, col 21) to (line 33, col 38)
|
||||
33 >for (let { skills: { primary: primaryA, secondary: secondaryA } } of multiRobots) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (906 to 929) SpanInfo: {"start":907,"length":21}
|
||||
>secondary: secondaryA
|
||||
>:=> (line 33, col 40) to (line 33, col 61)
|
||||
33 >for (let { skills: { primary: primaryA, secondary: secondaryA } } of multiRobots) {
|
||||
|
||||
~~=> Pos: (930 to 931) SpanInfo: {"start":878,"length":52}
|
||||
>skills: { primary: primaryA, secondary: secondaryA }
|
||||
>:=> (line 33, col 11) to (line 33, col 63)
|
||||
33 >for (let { skills: { primary: primaryA, secondary: secondaryA } } of multiRobots) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~=> Pos: (932 to 950) SpanInfo: {"start":936,"length":11}
|
||||
>multiRobots
|
||||
>:=> (line 33, col 69) to (line 33, col 80)
|
||||
--------------------------------
|
||||
34 > console.log(primaryA);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (951 to 977) SpanInfo: {"start":955,"length":21}
|
||||
>console.log(primaryA)
|
||||
>:=> (line 34, col 4) to (line 34, col 25)
|
||||
--------------------------------
|
||||
35 >}
|
||||
|
||||
~~ => Pos: (978 to 979) SpanInfo: {"start":955,"length":21}
|
||||
>console.log(primaryA)
|
||||
>:=> (line 34, col 4) to (line 34, col 25)
|
||||
--------------------------------
|
||||
36 >for (let { skills: { primary: primaryA, secondary: secondaryA } } of getMultiRobots()) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~ => Pos: (980 to 997) SpanInfo: {"start":991,"length":52}
|
||||
>skills: { primary: primaryA, secondary: secondaryA }
|
||||
>:=> (line 36, col 11) to (line 36, col 63)
|
||||
36 >for (let { skills: { primary: primaryA, secondary: secondaryA } } of getMultiRobots()) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~ => Pos: (998 to 1018) SpanInfo: {"start":1001,"length":17}
|
||||
>primary: primaryA
|
||||
>:=> (line 36, col 21) to (line 36, col 38)
|
||||
36 >for (let { skills: { primary: primaryA, secondary: secondaryA } } of getMultiRobots()) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (1019 to 1042) SpanInfo: {"start":1020,"length":21}
|
||||
>secondary: secondaryA
|
||||
>:=> (line 36, col 40) to (line 36, col 61)
|
||||
36 >for (let { skills: { primary: primaryA, secondary: secondaryA } } of getMultiRobots()) {
|
||||
|
||||
~~=> Pos: (1043 to 1044) SpanInfo: {"start":991,"length":52}
|
||||
>skills: { primary: primaryA, secondary: secondaryA }
|
||||
>:=> (line 36, col 11) to (line 36, col 63)
|
||||
36 >for (let { skills: { primary: primaryA, secondary: secondaryA } } of getMultiRobots()) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (1045 to 1068) SpanInfo: {"start":1049,"length":16}
|
||||
>getMultiRobots()
|
||||
>:=> (line 36, col 69) to (line 36, col 85)
|
||||
--------------------------------
|
||||
37 > console.log(primaryA);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (1069 to 1095) SpanInfo: {"start":1073,"length":21}
|
||||
>console.log(primaryA)
|
||||
>:=> (line 37, col 4) to (line 37, col 25)
|
||||
--------------------------------
|
||||
38 >}
|
||||
|
||||
~~ => Pos: (1096 to 1097) SpanInfo: {"start":1073,"length":21}
|
||||
>console.log(primaryA)
|
||||
>:=> (line 37, col 4) to (line 37, col 25)
|
||||
--------------------------------
|
||||
39 >for (let { skills: { primary: primaryA, secondary: secondaryA } } of [{ name: "mower", skills: { primary: "mowing", secondary: "none" } },
|
||||
|
||||
~~~~~~~~~~~~~~~~~~ => Pos: (1098 to 1115) SpanInfo: {"start":1109,"length":52}
|
||||
>skills: { primary: primaryA, secondary: secondaryA }
|
||||
>:=> (line 39, col 11) to (line 39, col 63)
|
||||
39 >for (let { skills: { primary: primaryA, secondary: secondaryA } } of [{ name: "mower", skills: { primary: "mowing", secondary: "none" } },
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~ => Pos: (1116 to 1136) SpanInfo: {"start":1119,"length":17}
|
||||
>primary: primaryA
|
||||
>:=> (line 39, col 21) to (line 39, col 38)
|
||||
39 >for (let { skills: { primary: primaryA, secondary: secondaryA } } of [{ name: "mower", skills: { primary: "mowing", secondary: "none" } },
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (1137 to 1160) SpanInfo: {"start":1138,"length":21}
|
||||
>secondary: secondaryA
|
||||
>:=> (line 39, col 40) to (line 39, col 61)
|
||||
39 >for (let { skills: { primary: primaryA, secondary: secondaryA } } of [{ name: "mower", skills: { primary: "mowing", secondary: "none" } },
|
||||
|
||||
~~=> Pos: (1161 to 1162) SpanInfo: {"start":1109,"length":52}
|
||||
>skills: { primary: primaryA, secondary: secondaryA }
|
||||
>:=> (line 39, col 11) to (line 39, col 63)
|
||||
39 >for (let { skills: { primary: primaryA, secondary: secondaryA } } of [{ name: "mower", skills: { primary: "mowing", secondary: "none" } },
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (1163 to 1236) SpanInfo: {"start":1167,"length":148}
|
||||
>[{ name: "mower", skills: { primary: "mowing", secondary: "none" } },
|
||||
> { name: "trimmer", skills: { primary: "trimming", secondary: "edging" } }]
|
||||
>:=> (line 39, col 69) to (line 40, col 78)
|
||||
--------------------------------
|
||||
40 > { name: "trimmer", skills: { primary: "trimming", secondary: "edging" } }]) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (1237 to 1318) SpanInfo: {"start":1167,"length":148}
|
||||
>[{ name: "mower", skills: { primary: "mowing", secondary: "none" } },
|
||||
> { name: "trimmer", skills: { primary: "trimming", secondary: "edging" } }]
|
||||
>:=> (line 39, col 69) to (line 40, col 78)
|
||||
--------------------------------
|
||||
41 > console.log(primaryA);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (1319 to 1345) SpanInfo: {"start":1323,"length":21}
|
||||
>console.log(primaryA)
|
||||
>:=> (line 41, col 4) to (line 41, col 25)
|
||||
--------------------------------
|
||||
42 >}
|
||||
|
||||
~~ => Pos: (1346 to 1347) SpanInfo: {"start":1323,"length":21}
|
||||
>console.log(primaryA)
|
||||
>:=> (line 41, col 4) to (line 41, col 25)
|
||||
--------------------------------
|
||||
43 >for (let {name: nameA, skill: skillA } of robots) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~ => Pos: (1348 to 1369) SpanInfo: {"start":1358,"length":11}
|
||||
>name: nameA
|
||||
>:=> (line 43, col 10) to (line 43, col 21)
|
||||
43 >for (let {name: nameA, skill: skillA } of robots) {
|
||||
|
||||
~~~~~~~~~~~~~~~~ => Pos: (1370 to 1385) SpanInfo: {"start":1371,"length":13}
|
||||
>skill: skillA
|
||||
>:=> (line 43, col 23) to (line 43, col 36)
|
||||
43 >for (let {name: nameA, skill: skillA } of robots) {
|
||||
|
||||
~~~~~~~~~~~~~~=> Pos: (1386 to 1399) SpanInfo: {"start":1390,"length":6}
|
||||
>robots
|
||||
>:=> (line 43, col 42) to (line 43, col 48)
|
||||
--------------------------------
|
||||
44 > console.log(nameA);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (1400 to 1423) SpanInfo: {"start":1404,"length":18}
|
||||
>console.log(nameA)
|
||||
>:=> (line 44, col 4) to (line 44, col 22)
|
||||
--------------------------------
|
||||
45 >}
|
||||
|
||||
~~ => Pos: (1424 to 1425) SpanInfo: {"start":1404,"length":18}
|
||||
>console.log(nameA)
|
||||
>:=> (line 44, col 4) to (line 44, col 22)
|
||||
--------------------------------
|
||||
46 >for (let {name: nameA, skill: skillA } of getRobots()) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~ => Pos: (1426 to 1447) SpanInfo: {"start":1436,"length":11}
|
||||
>name: nameA
|
||||
>:=> (line 46, col 10) to (line 46, col 21)
|
||||
46 >for (let {name: nameA, skill: skillA } of getRobots()) {
|
||||
|
||||
~~~~~~~~~~~~~~~~ => Pos: (1448 to 1463) SpanInfo: {"start":1449,"length":13}
|
||||
>skill: skillA
|
||||
>:=> (line 46, col 23) to (line 46, col 36)
|
||||
46 >for (let {name: nameA, skill: skillA } of getRobots()) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~=> Pos: (1464 to 1482) SpanInfo: {"start":1468,"length":11}
|
||||
>getRobots()
|
||||
>:=> (line 46, col 42) to (line 46, col 53)
|
||||
--------------------------------
|
||||
47 > console.log(nameA);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (1483 to 1506) SpanInfo: {"start":1487,"length":18}
|
||||
>console.log(nameA)
|
||||
>:=> (line 47, col 4) to (line 47, col 22)
|
||||
--------------------------------
|
||||
48 >}
|
||||
|
||||
~~ => Pos: (1507 to 1508) SpanInfo: {"start":1487,"length":18}
|
||||
>console.log(nameA)
|
||||
>:=> (line 47, col 4) to (line 47, col 22)
|
||||
--------------------------------
|
||||
49 >for (let {name: nameA, skill: skillA } of [{ name: "mower", skill: "mowing" }, { name: "trimmer", skill: "trimming" }]) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~ => Pos: (1509 to 1530) SpanInfo: {"start":1519,"length":11}
|
||||
>name: nameA
|
||||
>:=> (line 49, col 10) to (line 49, col 21)
|
||||
49 >for (let {name: nameA, skill: skillA } of [{ name: "mower", skill: "mowing" }, { name: "trimmer", skill: "trimming" }]) {
|
||||
|
||||
~~~~~~~~~~~~~~~~ => Pos: (1531 to 1546) SpanInfo: {"start":1532,"length":13}
|
||||
>skill: skillA
|
||||
>:=> (line 49, col 23) to (line 49, col 36)
|
||||
49 >for (let {name: nameA, skill: skillA } of [{ name: "mower", skill: "mowing" }, { name: "trimmer", skill: "trimming" }]) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (1547 to 1630) SpanInfo: {"start":1551,"length":76}
|
||||
>[{ name: "mower", skill: "mowing" }, { name: "trimmer", skill: "trimming" }]
|
||||
>:=> (line 49, col 42) to (line 49, col 118)
|
||||
--------------------------------
|
||||
50 > console.log(nameA);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (1631 to 1654) SpanInfo: {"start":1635,"length":18}
|
||||
>console.log(nameA)
|
||||
>:=> (line 50, col 4) to (line 50, col 22)
|
||||
--------------------------------
|
||||
51 >}
|
||||
|
||||
~~ => Pos: (1655 to 1656) SpanInfo: {"start":1635,"length":18}
|
||||
>console.log(nameA)
|
||||
>:=> (line 50, col 4) to (line 50, col 22)
|
||||
--------------------------------
|
||||
52 >for (let {name: nameA, skills: { primary: primaryA, secondary: secondaryA } } of multiRobots) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~ => Pos: (1657 to 1678) SpanInfo: {"start":1667,"length":11}
|
||||
>name: nameA
|
||||
>:=> (line 52, col 10) to (line 52, col 21)
|
||||
52 >for (let {name: nameA, skills: { primary: primaryA, secondary: secondaryA } } of multiRobots) {
|
||||
|
||||
~~~~~~~~ => Pos: (1679 to 1686) SpanInfo: {"start":1680,"length":52}
|
||||
>skills: { primary: primaryA, secondary: secondaryA }
|
||||
>:=> (line 52, col 23) to (line 52, col 75)
|
||||
52 >for (let {name: nameA, skills: { primary: primaryA, secondary: secondaryA } } of multiRobots) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~=> Pos: (1687 to 1707) SpanInfo: {"start":1690,"length":17}
|
||||
>primary: primaryA
|
||||
>:=> (line 52, col 33) to (line 52, col 50)
|
||||
52 >for (let {name: nameA, skills: { primary: primaryA, secondary: secondaryA } } of multiRobots) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (1708 to 1731) SpanInfo: {"start":1709,"length":21}
|
||||
>secondary: secondaryA
|
||||
>:=> (line 52, col 52) to (line 52, col 73)
|
||||
52 >for (let {name: nameA, skills: { primary: primaryA, secondary: secondaryA } } of multiRobots) {
|
||||
|
||||
~~=> Pos: (1732 to 1733) SpanInfo: {"start":1680,"length":52}
|
||||
>skills: { primary: primaryA, secondary: secondaryA }
|
||||
>:=> (line 52, col 23) to (line 52, col 75)
|
||||
52 >for (let {name: nameA, skills: { primary: primaryA, secondary: secondaryA } } of multiRobots) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~=> Pos: (1734 to 1752) SpanInfo: {"start":1738,"length":11}
|
||||
>multiRobots
|
||||
>:=> (line 52, col 81) to (line 52, col 92)
|
||||
--------------------------------
|
||||
53 > console.log(nameA);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (1753 to 1776) SpanInfo: {"start":1757,"length":18}
|
||||
>console.log(nameA)
|
||||
>:=> (line 53, col 4) to (line 53, col 22)
|
||||
--------------------------------
|
||||
54 >}
|
||||
|
||||
~~ => Pos: (1777 to 1778) SpanInfo: {"start":1757,"length":18}
|
||||
>console.log(nameA)
|
||||
>:=> (line 53, col 4) to (line 53, col 22)
|
||||
--------------------------------
|
||||
55 >for (let {name: nameA, skills: { primary: primaryA, secondary: secondaryA } } of getMultiRobots()) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~ => Pos: (1779 to 1800) SpanInfo: {"start":1789,"length":11}
|
||||
>name: nameA
|
||||
>:=> (line 55, col 10) to (line 55, col 21)
|
||||
55 >for (let {name: nameA, skills: { primary: primaryA, secondary: secondaryA } } of getMultiRobots()) {
|
||||
|
||||
~~~~~~~~ => Pos: (1801 to 1808) SpanInfo: {"start":1802,"length":52}
|
||||
>skills: { primary: primaryA, secondary: secondaryA }
|
||||
>:=> (line 55, col 23) to (line 55, col 75)
|
||||
55 >for (let {name: nameA, skills: { primary: primaryA, secondary: secondaryA } } of getMultiRobots()) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~=> Pos: (1809 to 1829) SpanInfo: {"start":1812,"length":17}
|
||||
>primary: primaryA
|
||||
>:=> (line 55, col 33) to (line 55, col 50)
|
||||
55 >for (let {name: nameA, skills: { primary: primaryA, secondary: secondaryA } } of getMultiRobots()) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (1830 to 1853) SpanInfo: {"start":1831,"length":21}
|
||||
>secondary: secondaryA
|
||||
>:=> (line 55, col 52) to (line 55, col 73)
|
||||
55 >for (let {name: nameA, skills: { primary: primaryA, secondary: secondaryA } } of getMultiRobots()) {
|
||||
|
||||
~~=> Pos: (1854 to 1855) SpanInfo: {"start":1802,"length":52}
|
||||
>skills: { primary: primaryA, secondary: secondaryA }
|
||||
>:=> (line 55, col 23) to (line 55, col 75)
|
||||
55 >for (let {name: nameA, skills: { primary: primaryA, secondary: secondaryA } } of getMultiRobots()) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (1856 to 1879) SpanInfo: {"start":1860,"length":16}
|
||||
>getMultiRobots()
|
||||
>:=> (line 55, col 81) to (line 55, col 97)
|
||||
--------------------------------
|
||||
56 > console.log(nameA);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (1880 to 1903) SpanInfo: {"start":1884,"length":18}
|
||||
>console.log(nameA)
|
||||
>:=> (line 56, col 4) to (line 56, col 22)
|
||||
--------------------------------
|
||||
57 >}
|
||||
|
||||
~~ => Pos: (1904 to 1905) SpanInfo: {"start":1884,"length":18}
|
||||
>console.log(nameA)
|
||||
>:=> (line 56, col 4) to (line 56, col 22)
|
||||
--------------------------------
|
||||
58 >for (let {name: nameA, skills: { primary: primaryA, secondary: secondaryA } } of [{ name: "mower", skills: { primary: "mowing", secondary: "none" } },
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~ => Pos: (1906 to 1927) SpanInfo: {"start":1916,"length":11}
|
||||
>name: nameA
|
||||
>:=> (line 58, col 10) to (line 58, col 21)
|
||||
58 >for (let {name: nameA, skills: { primary: primaryA, secondary: secondaryA } } of [{ name: "mower", skills: { primary: "mowing", secondary: "none" } },
|
||||
|
||||
~~~~~~~~ => Pos: (1928 to 1935) SpanInfo: {"start":1929,"length":52}
|
||||
>skills: { primary: primaryA, secondary: secondaryA }
|
||||
>:=> (line 58, col 23) to (line 58, col 75)
|
||||
58 >for (let {name: nameA, skills: { primary: primaryA, secondary: secondaryA } } of [{ name: "mower", skills: { primary: "mowing", secondary: "none" } },
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~=> Pos: (1936 to 1956) SpanInfo: {"start":1939,"length":17}
|
||||
>primary: primaryA
|
||||
>:=> (line 58, col 33) to (line 58, col 50)
|
||||
58 >for (let {name: nameA, skills: { primary: primaryA, secondary: secondaryA } } of [{ name: "mower", skills: { primary: "mowing", secondary: "none" } },
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (1957 to 1980) SpanInfo: {"start":1958,"length":21}
|
||||
>secondary: secondaryA
|
||||
>:=> (line 58, col 52) to (line 58, col 73)
|
||||
58 >for (let {name: nameA, skills: { primary: primaryA, secondary: secondaryA } } of [{ name: "mower", skills: { primary: "mowing", secondary: "none" } },
|
||||
|
||||
~~=> Pos: (1981 to 1982) SpanInfo: {"start":1929,"length":52}
|
||||
>skills: { primary: primaryA, secondary: secondaryA }
|
||||
>:=> (line 58, col 23) to (line 58, col 75)
|
||||
58 >for (let {name: nameA, skills: { primary: primaryA, secondary: secondaryA } } of [{ name: "mower", skills: { primary: "mowing", secondary: "none" } },
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (1983 to 2056) SpanInfo: {"start":1987,"length":148}
|
||||
>[{ name: "mower", skills: { primary: "mowing", secondary: "none" } },
|
||||
> { name: "trimmer", skills: { primary: "trimming", secondary: "edging" } }]
|
||||
>:=> (line 58, col 81) to (line 59, col 78)
|
||||
--------------------------------
|
||||
59 > { name: "trimmer", skills: { primary: "trimming", secondary: "edging" } }]) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (2057 to 2138) SpanInfo: {"start":1987,"length":148}
|
||||
>[{ name: "mower", skills: { primary: "mowing", secondary: "none" } },
|
||||
> { name: "trimmer", skills: { primary: "trimming", secondary: "edging" } }]
|
||||
>:=> (line 58, col 81) to (line 59, col 78)
|
||||
--------------------------------
|
||||
60 > console.log(nameA);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (2139 to 2162) SpanInfo: {"start":2143,"length":18}
|
||||
>console.log(nameA)
|
||||
>:=> (line 60, col 4) to (line 60, col 22)
|
||||
--------------------------------
|
||||
61 >}
|
||||
~ => Pos: (2163 to 2163) SpanInfo: {"start":2143,"length":18}
|
||||
>console.log(nameA)
|
||||
>:=> (line 60, col 4) to (line 60, col 22)
|
||||
+662
@@ -0,0 +1,662 @@
|
||||
|
||||
1 >declare var console: {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (0 to 22) SpanInfo: undefined
|
||||
--------------------------------
|
||||
2 > log(msg: any): void;
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (23 to 47) SpanInfo: undefined
|
||||
--------------------------------
|
||||
3 >}
|
||||
|
||||
~~ => Pos: (48 to 49) SpanInfo: undefined
|
||||
--------------------------------
|
||||
4 >interface Robot {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~ => Pos: (50 to 67) SpanInfo: undefined
|
||||
--------------------------------
|
||||
5 > name: string;
|
||||
|
||||
~~~~~~~~~~~~~~~~~~ => Pos: (68 to 85) SpanInfo: undefined
|
||||
--------------------------------
|
||||
6 > skill: string;
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~ => Pos: (86 to 104) SpanInfo: undefined
|
||||
--------------------------------
|
||||
7 >}
|
||||
|
||||
~~ => Pos: (105 to 106) SpanInfo: undefined
|
||||
--------------------------------
|
||||
8 >interface MultiRobot {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (107 to 129) SpanInfo: undefined
|
||||
--------------------------------
|
||||
9 > name: string;
|
||||
|
||||
~~~~~~~~~~~~~~~~~~ => Pos: (130 to 147) SpanInfo: undefined
|
||||
--------------------------------
|
||||
10 > skills: {
|
||||
|
||||
~~~~~~~~~~~~~~ => Pos: (148 to 161) SpanInfo: undefined
|
||||
--------------------------------
|
||||
11 > primary?: string;
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (162 to 187) SpanInfo: undefined
|
||||
--------------------------------
|
||||
12 > secondary?: string;
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (188 to 215) SpanInfo: undefined
|
||||
--------------------------------
|
||||
13 > };
|
||||
|
||||
~~~~~~~ => Pos: (216 to 222) SpanInfo: undefined
|
||||
--------------------------------
|
||||
14 >}
|
||||
|
||||
~~ => Pos: (223 to 224) SpanInfo: undefined
|
||||
--------------------------------
|
||||
15 >let robots: Robot[] = [{ name: "mower", skill: "mowing" }, { name: "trimmer", skill: "trimming" }];
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (225 to 324) SpanInfo: {"start":225,"length":98}
|
||||
>let robots: Robot[] = [{ name: "mower", skill: "mowing" }, { name: "trimmer", skill: "trimming" }]
|
||||
>:=> (line 15, col 0) to (line 15, col 98)
|
||||
--------------------------------
|
||||
16 >let multiRobots: MultiRobot[] = [{ name: "mower", skills: { primary: "mowing", secondary: "none" } },
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (325 to 426) SpanInfo: {"start":325,"length":180}
|
||||
>let multiRobots: MultiRobot[] = [{ name: "mower", skills: { primary: "mowing", secondary: "none" } },
|
||||
> { name: "trimmer", skills: { primary: "trimming", secondary: "edging" } }]
|
||||
>:=> (line 16, col 0) to (line 17, col 78)
|
||||
--------------------------------
|
||||
17 > { name: "trimmer", skills: { primary: "trimming", secondary: "edging" } }];
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (427 to 506) SpanInfo: {"start":325,"length":180}
|
||||
>let multiRobots: MultiRobot[] = [{ name: "mower", skills: { primary: "mowing", secondary: "none" } },
|
||||
> { name: "trimmer", skills: { primary: "trimming", secondary: "edging" } }]
|
||||
>:=> (line 16, col 0) to (line 17, col 78)
|
||||
--------------------------------
|
||||
18 >function getRobots() {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (507 to 529) SpanInfo: {"start":534,"length":13}
|
||||
>return robots
|
||||
>:=> (line 19, col 4) to (line 19, col 17)
|
||||
--------------------------------
|
||||
19 > return robots;
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~ => Pos: (530 to 548) SpanInfo: {"start":534,"length":13}
|
||||
>return robots
|
||||
>:=> (line 19, col 4) to (line 19, col 17)
|
||||
--------------------------------
|
||||
20 >}
|
||||
|
||||
~~ => Pos: (549 to 550) SpanInfo: {"start":549,"length":1}
|
||||
>}
|
||||
>:=> (line 20, col 0) to (line 20, col 1)
|
||||
--------------------------------
|
||||
21 >function getMultiRobots() {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (551 to 578) SpanInfo: {"start":583,"length":18}
|
||||
>return multiRobots
|
||||
>:=> (line 22, col 4) to (line 22, col 22)
|
||||
--------------------------------
|
||||
22 > return multiRobots;
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (579 to 602) SpanInfo: {"start":583,"length":18}
|
||||
>return multiRobots
|
||||
>:=> (line 22, col 4) to (line 22, col 22)
|
||||
--------------------------------
|
||||
23 >}
|
||||
|
||||
~~ => Pos: (603 to 604) SpanInfo: {"start":603,"length":1}
|
||||
>}
|
||||
>:=> (line 23, col 0) to (line 23, col 1)
|
||||
--------------------------------
|
||||
24 >for (let {name: nameA = "noName" } of robots) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (605 to 638) SpanInfo: {"start":615,"length":22}
|
||||
>name: nameA = "noName"
|
||||
>:=> (line 24, col 10) to (line 24, col 32)
|
||||
24 >for (let {name: nameA = "noName" } of robots) {
|
||||
|
||||
~~~~~~~~~~~~~~=> Pos: (639 to 652) SpanInfo: {"start":643,"length":6}
|
||||
>robots
|
||||
>:=> (line 24, col 38) to (line 24, col 44)
|
||||
--------------------------------
|
||||
25 > console.log(nameA);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (653 to 676) SpanInfo: {"start":657,"length":18}
|
||||
>console.log(nameA)
|
||||
>:=> (line 25, col 4) to (line 25, col 22)
|
||||
--------------------------------
|
||||
26 >}
|
||||
|
||||
~~ => Pos: (677 to 678) SpanInfo: {"start":657,"length":18}
|
||||
>console.log(nameA)
|
||||
>:=> (line 25, col 4) to (line 25, col 22)
|
||||
--------------------------------
|
||||
27 >for (let {name: nameA = "noName" } of getRobots()) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (679 to 712) SpanInfo: {"start":689,"length":22}
|
||||
>name: nameA = "noName"
|
||||
>:=> (line 27, col 10) to (line 27, col 32)
|
||||
27 >for (let {name: nameA = "noName" } of getRobots()) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~=> Pos: (713 to 731) SpanInfo: {"start":717,"length":11}
|
||||
>getRobots()
|
||||
>:=> (line 27, col 38) to (line 27, col 49)
|
||||
--------------------------------
|
||||
28 > console.log(nameA);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (732 to 755) SpanInfo: {"start":736,"length":18}
|
||||
>console.log(nameA)
|
||||
>:=> (line 28, col 4) to (line 28, col 22)
|
||||
--------------------------------
|
||||
29 >}
|
||||
|
||||
~~ => Pos: (756 to 757) SpanInfo: {"start":736,"length":18}
|
||||
>console.log(nameA)
|
||||
>:=> (line 28, col 4) to (line 28, col 22)
|
||||
--------------------------------
|
||||
30 >for (let {name: nameA = "noName" } of [{ name: "mower", skill: "mowing" }, { name: "trimmer", skill: "trimming" }]) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (758 to 791) SpanInfo: {"start":768,"length":22}
|
||||
>name: nameA = "noName"
|
||||
>:=> (line 30, col 10) to (line 30, col 32)
|
||||
30 >for (let {name: nameA = "noName" } of [{ name: "mower", skill: "mowing" }, { name: "trimmer", skill: "trimming" }]) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (792 to 875) SpanInfo: {"start":796,"length":76}
|
||||
>[{ name: "mower", skill: "mowing" }, { name: "trimmer", skill: "trimming" }]
|
||||
>:=> (line 30, col 38) to (line 30, col 114)
|
||||
--------------------------------
|
||||
31 > console.log(nameA);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (876 to 899) SpanInfo: {"start":880,"length":18}
|
||||
>console.log(nameA)
|
||||
>:=> (line 31, col 4) to (line 31, col 22)
|
||||
--------------------------------
|
||||
32 >}
|
||||
|
||||
~~ => Pos: (900 to 901) SpanInfo: {"start":880,"length":18}
|
||||
>console.log(nameA)
|
||||
>:=> (line 31, col 4) to (line 31, col 22)
|
||||
--------------------------------
|
||||
33 >for (let { skills: { primary: primaryA = "primary", secondary: secondaryA = "secondary" } =
|
||||
|
||||
~~~~~~~~~~~~~~~~~~ => Pos: (902 to 919) SpanInfo: {"start":913,"length":129}
|
||||
>skills: { primary: primaryA = "primary", secondary: secondaryA = "secondary" } =
|
||||
> { primary: "nosKill", secondary: "noSkill" }
|
||||
>:=> (line 33, col 11) to (line 34, col 48)
|
||||
33 >for (let { skills: { primary: primaryA = "primary", secondary: secondaryA = "secondary" } =
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (920 to 952) SpanInfo: {"start":923,"length":29}
|
||||
>primary: primaryA = "primary"
|
||||
>:=> (line 33, col 21) to (line 33, col 50)
|
||||
33 >for (let { skills: { primary: primaryA = "primary", secondary: secondaryA = "secondary" } =
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (953 to 990) SpanInfo: {"start":954,"length":35}
|
||||
>secondary: secondaryA = "secondary"
|
||||
>:=> (line 33, col 52) to (line 33, col 87)
|
||||
33 >for (let { skills: { primary: primaryA = "primary", secondary: secondaryA = "secondary" } =
|
||||
|
||||
~~~=> Pos: (991 to 993) SpanInfo: {"start":913,"length":129}
|
||||
>skills: { primary: primaryA = "primary", secondary: secondaryA = "secondary" } =
|
||||
> { primary: "nosKill", secondary: "noSkill" }
|
||||
>:=> (line 33, col 11) to (line 34, col 48)
|
||||
--------------------------------
|
||||
34 > { primary: "nosKill", secondary: "noSkill" } } of multiRobots) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (994 to 1043) SpanInfo: {"start":913,"length":129}
|
||||
>skills: { primary: primaryA = "primary", secondary: secondaryA = "secondary" } =
|
||||
> { primary: "nosKill", secondary: "noSkill" }
|
||||
>:=> (line 33, col 11) to (line 34, col 48)
|
||||
34 > { primary: "nosKill", secondary: "noSkill" } } of multiRobots) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~=> Pos: (1044 to 1062) SpanInfo: {"start":1048,"length":11}
|
||||
>multiRobots
|
||||
>:=> (line 34, col 54) to (line 34, col 65)
|
||||
--------------------------------
|
||||
35 > console.log(primaryA);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (1063 to 1089) SpanInfo: {"start":1067,"length":21}
|
||||
>console.log(primaryA)
|
||||
>:=> (line 35, col 4) to (line 35, col 25)
|
||||
--------------------------------
|
||||
36 >}
|
||||
|
||||
~~ => Pos: (1090 to 1091) SpanInfo: {"start":1067,"length":21}
|
||||
>console.log(primaryA)
|
||||
>:=> (line 35, col 4) to (line 35, col 25)
|
||||
--------------------------------
|
||||
37 >for (let { skills: { primary: primaryA = "primary", secondary: secondaryA = "secondary" } =
|
||||
|
||||
~~~~~~~~~~~~~~~~~~ => Pos: (1092 to 1109) SpanInfo: {"start":1103,"length":129}
|
||||
>skills: { primary: primaryA = "primary", secondary: secondaryA = "secondary" } =
|
||||
> { primary: "nosKill", secondary: "noSkill" }
|
||||
>:=> (line 37, col 11) to (line 38, col 48)
|
||||
37 >for (let { skills: { primary: primaryA = "primary", secondary: secondaryA = "secondary" } =
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (1110 to 1142) SpanInfo: {"start":1113,"length":29}
|
||||
>primary: primaryA = "primary"
|
||||
>:=> (line 37, col 21) to (line 37, col 50)
|
||||
37 >for (let { skills: { primary: primaryA = "primary", secondary: secondaryA = "secondary" } =
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (1143 to 1180) SpanInfo: {"start":1144,"length":35}
|
||||
>secondary: secondaryA = "secondary"
|
||||
>:=> (line 37, col 52) to (line 37, col 87)
|
||||
37 >for (let { skills: { primary: primaryA = "primary", secondary: secondaryA = "secondary" } =
|
||||
|
||||
~~~=> Pos: (1181 to 1183) SpanInfo: {"start":1103,"length":129}
|
||||
>skills: { primary: primaryA = "primary", secondary: secondaryA = "secondary" } =
|
||||
> { primary: "nosKill", secondary: "noSkill" }
|
||||
>:=> (line 37, col 11) to (line 38, col 48)
|
||||
--------------------------------
|
||||
38 > { primary: "nosKill", secondary: "noSkill" } } of getMultiRobots()) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (1184 to 1233) SpanInfo: {"start":1103,"length":129}
|
||||
>skills: { primary: primaryA = "primary", secondary: secondaryA = "secondary" } =
|
||||
> { primary: "nosKill", secondary: "noSkill" }
|
||||
>:=> (line 37, col 11) to (line 38, col 48)
|
||||
38 > { primary: "nosKill", secondary: "noSkill" } } of getMultiRobots()) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (1234 to 1257) SpanInfo: {"start":1238,"length":16}
|
||||
>getMultiRobots()
|
||||
>:=> (line 38, col 54) to (line 38, col 70)
|
||||
--------------------------------
|
||||
39 > console.log(primaryA);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (1258 to 1284) SpanInfo: {"start":1262,"length":21}
|
||||
>console.log(primaryA)
|
||||
>:=> (line 39, col 4) to (line 39, col 25)
|
||||
--------------------------------
|
||||
40 >}
|
||||
|
||||
~~ => Pos: (1285 to 1286) SpanInfo: {"start":1262,"length":21}
|
||||
>console.log(primaryA)
|
||||
>:=> (line 39, col 4) to (line 39, col 25)
|
||||
--------------------------------
|
||||
41 >for (let { skills: { primary: primaryA = "primary", secondary: secondaryA = "secondary" } =
|
||||
|
||||
~~~~~~~~~~~~~~~~~~ => Pos: (1287 to 1304) SpanInfo: {"start":1298,"length":129}
|
||||
>skills: { primary: primaryA = "primary", secondary: secondaryA = "secondary" } =
|
||||
> { primary: "nosKill", secondary: "noSkill" }
|
||||
>:=> (line 41, col 11) to (line 42, col 48)
|
||||
41 >for (let { skills: { primary: primaryA = "primary", secondary: secondaryA = "secondary" } =
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (1305 to 1337) SpanInfo: {"start":1308,"length":29}
|
||||
>primary: primaryA = "primary"
|
||||
>:=> (line 41, col 21) to (line 41, col 50)
|
||||
41 >for (let { skills: { primary: primaryA = "primary", secondary: secondaryA = "secondary" } =
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (1338 to 1375) SpanInfo: {"start":1339,"length":35}
|
||||
>secondary: secondaryA = "secondary"
|
||||
>:=> (line 41, col 52) to (line 41, col 87)
|
||||
41 >for (let { skills: { primary: primaryA = "primary", secondary: secondaryA = "secondary" } =
|
||||
|
||||
~~~=> Pos: (1376 to 1378) SpanInfo: {"start":1298,"length":129}
|
||||
>skills: { primary: primaryA = "primary", secondary: secondaryA = "secondary" } =
|
||||
> { primary: "nosKill", secondary: "noSkill" }
|
||||
>:=> (line 41, col 11) to (line 42, col 48)
|
||||
--------------------------------
|
||||
42 > { primary: "nosKill", secondary: "noSkill" } } of
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (1379 to 1428) SpanInfo: {"start":1298,"length":129}
|
||||
>skills: { primary: primaryA = "primary", secondary: secondaryA = "secondary" } =
|
||||
> { primary: "nosKill", secondary: "noSkill" }
|
||||
>:=> (line 41, col 11) to (line 42, col 48)
|
||||
42 > { primary: "nosKill", secondary: "noSkill" } } of
|
||||
|
||||
~~~~=> Pos: (1429 to 1432) SpanInfo: {"start":1437,"length":162}
|
||||
><MultiRobot[]>[{ name: "mower", skills: { primary: "mowing", secondary: "none" } },
|
||||
> { name: "trimmer", skills: { primary: "trimming", secondary: "edging" } }]
|
||||
>:=> (line 43, col 4) to (line 44, col 78)
|
||||
--------------------------------
|
||||
43 > <MultiRobot[]>[{ name: "mower", skills: { primary: "mowing", secondary: "none" } },
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (1433 to 1520) SpanInfo: {"start":1437,"length":162}
|
||||
><MultiRobot[]>[{ name: "mower", skills: { primary: "mowing", secondary: "none" } },
|
||||
> { name: "trimmer", skills: { primary: "trimming", secondary: "edging" } }]
|
||||
>:=> (line 43, col 4) to (line 44, col 78)
|
||||
--------------------------------
|
||||
44 > { name: "trimmer", skills: { primary: "trimming", secondary: "edging" } }]) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (1521 to 1602) SpanInfo: {"start":1437,"length":162}
|
||||
><MultiRobot[]>[{ name: "mower", skills: { primary: "mowing", secondary: "none" } },
|
||||
> { name: "trimmer", skills: { primary: "trimming", secondary: "edging" } }]
|
||||
>:=> (line 43, col 4) to (line 44, col 78)
|
||||
--------------------------------
|
||||
45 > console.log(primaryA);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (1603 to 1629) SpanInfo: {"start":1607,"length":21}
|
||||
>console.log(primaryA)
|
||||
>:=> (line 45, col 4) to (line 45, col 25)
|
||||
--------------------------------
|
||||
46 >}
|
||||
|
||||
~~ => Pos: (1630 to 1631) SpanInfo: {"start":1607,"length":21}
|
||||
>console.log(primaryA)
|
||||
>:=> (line 45, col 4) to (line 45, col 25)
|
||||
--------------------------------
|
||||
47 >for (let {name: nameA = "noName", skill: skillA = "noSkill" } of robots) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (1632 to 1664) SpanInfo: {"start":1642,"length":22}
|
||||
>name: nameA = "noName"
|
||||
>:=> (line 47, col 10) to (line 47, col 32)
|
||||
47 >for (let {name: nameA = "noName", skill: skillA = "noSkill" } of robots) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (1665 to 1692) SpanInfo: {"start":1666,"length":25}
|
||||
>skill: skillA = "noSkill"
|
||||
>:=> (line 47, col 34) to (line 47, col 59)
|
||||
47 >for (let {name: nameA = "noName", skill: skillA = "noSkill" } of robots) {
|
||||
|
||||
~~~~~~~~~~~~~~=> Pos: (1693 to 1706) SpanInfo: {"start":1697,"length":6}
|
||||
>robots
|
||||
>:=> (line 47, col 65) to (line 47, col 71)
|
||||
--------------------------------
|
||||
48 > console.log(nameA);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (1707 to 1730) SpanInfo: {"start":1711,"length":18}
|
||||
>console.log(nameA)
|
||||
>:=> (line 48, col 4) to (line 48, col 22)
|
||||
--------------------------------
|
||||
49 >}
|
||||
|
||||
~~ => Pos: (1731 to 1732) SpanInfo: {"start":1711,"length":18}
|
||||
>console.log(nameA)
|
||||
>:=> (line 48, col 4) to (line 48, col 22)
|
||||
--------------------------------
|
||||
50 >for (let {name: nameA = "noName", skill: skillA = "noSkill" } of getRobots()) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (1733 to 1765) SpanInfo: {"start":1743,"length":22}
|
||||
>name: nameA = "noName"
|
||||
>:=> (line 50, col 10) to (line 50, col 32)
|
||||
50 >for (let {name: nameA = "noName", skill: skillA = "noSkill" } of getRobots()) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (1766 to 1794) SpanInfo: {"start":1767,"length":25}
|
||||
>skill: skillA = "noSkill"
|
||||
>:=> (line 50, col 34) to (line 50, col 59)
|
||||
50 >for (let {name: nameA = "noName", skill: skillA = "noSkill" } of getRobots()) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~=> Pos: (1795 to 1813) SpanInfo: {"start":1799,"length":11}
|
||||
>getRobots()
|
||||
>:=> (line 50, col 66) to (line 50, col 77)
|
||||
--------------------------------
|
||||
51 > console.log(nameA);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (1814 to 1837) SpanInfo: {"start":1818,"length":18}
|
||||
>console.log(nameA)
|
||||
>:=> (line 51, col 4) to (line 51, col 22)
|
||||
--------------------------------
|
||||
52 >}
|
||||
|
||||
~~ => Pos: (1838 to 1839) SpanInfo: {"start":1818,"length":18}
|
||||
>console.log(nameA)
|
||||
>:=> (line 51, col 4) to (line 51, col 22)
|
||||
--------------------------------
|
||||
53 >for (let {name: nameA = "noName", skill: skillA = "noSkill" } of [{ name: "mower", skill: "mowing" }, { name: "trimmer", skill: "trimming" }]) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (1840 to 1872) SpanInfo: {"start":1850,"length":22}
|
||||
>name: nameA = "noName"
|
||||
>:=> (line 53, col 10) to (line 53, col 32)
|
||||
53 >for (let {name: nameA = "noName", skill: skillA = "noSkill" } of [{ name: "mower", skill: "mowing" }, { name: "trimmer", skill: "trimming" }]) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (1873 to 1901) SpanInfo: {"start":1874,"length":25}
|
||||
>skill: skillA = "noSkill"
|
||||
>:=> (line 53, col 34) to (line 53, col 59)
|
||||
53 >for (let {name: nameA = "noName", skill: skillA = "noSkill" } of [{ name: "mower", skill: "mowing" }, { name: "trimmer", skill: "trimming" }]) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (1902 to 1985) SpanInfo: {"start":1906,"length":76}
|
||||
>[{ name: "mower", skill: "mowing" }, { name: "trimmer", skill: "trimming" }]
|
||||
>:=> (line 53, col 66) to (line 53, col 142)
|
||||
--------------------------------
|
||||
54 > console.log(nameA);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (1986 to 2009) SpanInfo: {"start":1990,"length":18}
|
||||
>console.log(nameA)
|
||||
>:=> (line 54, col 4) to (line 54, col 22)
|
||||
--------------------------------
|
||||
55 >}
|
||||
|
||||
~~ => Pos: (2010 to 2011) SpanInfo: {"start":1990,"length":18}
|
||||
>console.log(nameA)
|
||||
>:=> (line 54, col 4) to (line 54, col 22)
|
||||
--------------------------------
|
||||
56 >for (let {
|
||||
|
||||
~~~~~~~~~~~ => Pos: (2012 to 2022) SpanInfo: {"start":2027,"length":22}
|
||||
>name: nameA = "noName"
|
||||
>:=> (line 57, col 4) to (line 57, col 26)
|
||||
--------------------------------
|
||||
57 > name: nameA = "noName",
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (2023 to 2050) SpanInfo: {"start":2027,"length":22}
|
||||
>name: nameA = "noName"
|
||||
>:=> (line 57, col 4) to (line 57, col 26)
|
||||
--------------------------------
|
||||
58 > skills: {
|
||||
|
||||
~~~~~~~~~~~ => Pos: (2051 to 2061) SpanInfo: {"start":2055,"length":145}
|
||||
>skills: {
|
||||
> primary: primaryA = "primary",
|
||||
> secondary: secondaryA = "secondary"
|
||||
> } = { primary: "noSkill", secondary: "noSkill" }
|
||||
>:=> (line 58, col 4) to (line 61, col 52)
|
||||
58 > skills: {
|
||||
|
||||
~~~ => Pos: (2062 to 2064) SpanInfo: {"start":2073,"length":29}
|
||||
>primary: primaryA = "primary"
|
||||
>:=> (line 59, col 8) to (line 59, col 37)
|
||||
--------------------------------
|
||||
59 > primary: primaryA = "primary",
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (2065 to 2103) SpanInfo: {"start":2073,"length":29}
|
||||
>primary: primaryA = "primary"
|
||||
>:=> (line 59, col 8) to (line 59, col 37)
|
||||
--------------------------------
|
||||
60 > secondary: secondaryA = "secondary"
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (2104 to 2147) SpanInfo: {"start":2112,"length":35}
|
||||
>secondary: secondaryA = "secondary"
|
||||
>:=> (line 60, col 8) to (line 60, col 43)
|
||||
--------------------------------
|
||||
61 > } = { primary: "noSkill", secondary: "noSkill" }
|
||||
|
||||
~~~~~ => Pos: (2148 to 2152) SpanInfo: {"start":2112,"length":35}
|
||||
>secondary: secondaryA = "secondary"
|
||||
>:=> (line 60, col 8) to (line 60, col 43)
|
||||
61 > } = { primary: "noSkill", secondary: "noSkill" }
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (2153 to 2200) SpanInfo: {"start":2055,"length":145}
|
||||
>skills: {
|
||||
> primary: primaryA = "primary",
|
||||
> secondary: secondaryA = "secondary"
|
||||
> } = { primary: "noSkill", secondary: "noSkill" }
|
||||
>:=> (line 58, col 4) to (line 61, col 52)
|
||||
--------------------------------
|
||||
62 >} of multiRobots) {
|
||||
|
||||
~ => Pos: (2201 to 2201) SpanInfo: {"start":2055,"length":145}
|
||||
>skills: {
|
||||
> primary: primaryA = "primary",
|
||||
> secondary: secondaryA = "secondary"
|
||||
> } = { primary: "noSkill", secondary: "noSkill" }
|
||||
>:=> (line 58, col 4) to (line 61, col 52)
|
||||
62 >} of multiRobots) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~ => Pos: (2202 to 2220) SpanInfo: {"start":2206,"length":11}
|
||||
>multiRobots
|
||||
>:=> (line 62, col 5) to (line 62, col 16)
|
||||
--------------------------------
|
||||
63 > console.log(nameA);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (2221 to 2244) SpanInfo: {"start":2225,"length":18}
|
||||
>console.log(nameA)
|
||||
>:=> (line 63, col 4) to (line 63, col 22)
|
||||
--------------------------------
|
||||
64 >}
|
||||
|
||||
~~ => Pos: (2245 to 2246) SpanInfo: {"start":2225,"length":18}
|
||||
>console.log(nameA)
|
||||
>:=> (line 63, col 4) to (line 63, col 22)
|
||||
--------------------------------
|
||||
65 >for (let {
|
||||
|
||||
~~~~~~~~~~~ => Pos: (2247 to 2257) SpanInfo: {"start":2262,"length":22}
|
||||
>name: nameA = "noName"
|
||||
>:=> (line 66, col 4) to (line 66, col 26)
|
||||
--------------------------------
|
||||
66 > name: nameA = "noName",
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (2258 to 2285) SpanInfo: {"start":2262,"length":22}
|
||||
>name: nameA = "noName"
|
||||
>:=> (line 66, col 4) to (line 66, col 26)
|
||||
--------------------------------
|
||||
67 > skills: {
|
||||
|
||||
~~~~~~~~~~~ => Pos: (2286 to 2296) SpanInfo: {"start":2290,"length":145}
|
||||
>skills: {
|
||||
> primary: primaryA = "primary",
|
||||
> secondary: secondaryA = "secondary"
|
||||
> } = { primary: "noSkill", secondary: "noSkill" }
|
||||
>:=> (line 67, col 4) to (line 70, col 52)
|
||||
67 > skills: {
|
||||
|
||||
~~~ => Pos: (2297 to 2299) SpanInfo: {"start":2308,"length":29}
|
||||
>primary: primaryA = "primary"
|
||||
>:=> (line 68, col 8) to (line 68, col 37)
|
||||
--------------------------------
|
||||
68 > primary: primaryA = "primary",
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (2300 to 2338) SpanInfo: {"start":2308,"length":29}
|
||||
>primary: primaryA = "primary"
|
||||
>:=> (line 68, col 8) to (line 68, col 37)
|
||||
--------------------------------
|
||||
69 > secondary: secondaryA = "secondary"
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (2339 to 2382) SpanInfo: {"start":2347,"length":35}
|
||||
>secondary: secondaryA = "secondary"
|
||||
>:=> (line 69, col 8) to (line 69, col 43)
|
||||
--------------------------------
|
||||
70 > } = { primary: "noSkill", secondary: "noSkill" }
|
||||
|
||||
~~~~~ => Pos: (2383 to 2387) SpanInfo: {"start":2347,"length":35}
|
||||
>secondary: secondaryA = "secondary"
|
||||
>:=> (line 69, col 8) to (line 69, col 43)
|
||||
70 > } = { primary: "noSkill", secondary: "noSkill" }
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (2388 to 2435) SpanInfo: {"start":2290,"length":145}
|
||||
>skills: {
|
||||
> primary: primaryA = "primary",
|
||||
> secondary: secondaryA = "secondary"
|
||||
> } = { primary: "noSkill", secondary: "noSkill" }
|
||||
>:=> (line 67, col 4) to (line 70, col 52)
|
||||
--------------------------------
|
||||
71 >} of getMultiRobots()) {
|
||||
|
||||
~ => Pos: (2436 to 2436) SpanInfo: {"start":2290,"length":145}
|
||||
>skills: {
|
||||
> primary: primaryA = "primary",
|
||||
> secondary: secondaryA = "secondary"
|
||||
> } = { primary: "noSkill", secondary: "noSkill" }
|
||||
>:=> (line 67, col 4) to (line 70, col 52)
|
||||
71 >} of getMultiRobots()) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (2437 to 2460) SpanInfo: {"start":2441,"length":16}
|
||||
>getMultiRobots()
|
||||
>:=> (line 71, col 5) to (line 71, col 21)
|
||||
--------------------------------
|
||||
72 > console.log(nameA);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (2461 to 2484) SpanInfo: {"start":2465,"length":18}
|
||||
>console.log(nameA)
|
||||
>:=> (line 72, col 4) to (line 72, col 22)
|
||||
--------------------------------
|
||||
73 >}
|
||||
|
||||
~~ => Pos: (2485 to 2486) SpanInfo: {"start":2465,"length":18}
|
||||
>console.log(nameA)
|
||||
>:=> (line 72, col 4) to (line 72, col 22)
|
||||
--------------------------------
|
||||
74 >for (let {
|
||||
|
||||
~~~~~~~~~~~ => Pos: (2487 to 2497) SpanInfo: {"start":2502,"length":22}
|
||||
>name: nameA = "noName"
|
||||
>:=> (line 75, col 4) to (line 75, col 26)
|
||||
--------------------------------
|
||||
75 > name: nameA = "noName",
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (2498 to 2525) SpanInfo: {"start":2502,"length":22}
|
||||
>name: nameA = "noName"
|
||||
>:=> (line 75, col 4) to (line 75, col 26)
|
||||
--------------------------------
|
||||
76 > skills: {
|
||||
|
||||
~~~~~~~~~~~ => Pos: (2526 to 2536) SpanInfo: {"start":2530,"length":145}
|
||||
>skills: {
|
||||
> primary: primaryA = "primary",
|
||||
> secondary: secondaryA = "secondary"
|
||||
> } = { primary: "noSkill", secondary: "noSkill" }
|
||||
>:=> (line 76, col 4) to (line 79, col 52)
|
||||
76 > skills: {
|
||||
|
||||
~~~ => Pos: (2537 to 2539) SpanInfo: {"start":2548,"length":29}
|
||||
>primary: primaryA = "primary"
|
||||
>:=> (line 77, col 8) to (line 77, col 37)
|
||||
--------------------------------
|
||||
77 > primary: primaryA = "primary",
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (2540 to 2578) SpanInfo: {"start":2548,"length":29}
|
||||
>primary: primaryA = "primary"
|
||||
>:=> (line 77, col 8) to (line 77, col 37)
|
||||
--------------------------------
|
||||
78 > secondary: secondaryA = "secondary"
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (2579 to 2622) SpanInfo: {"start":2587,"length":35}
|
||||
>secondary: secondaryA = "secondary"
|
||||
>:=> (line 78, col 8) to (line 78, col 43)
|
||||
--------------------------------
|
||||
79 > } = { primary: "noSkill", secondary: "noSkill" }
|
||||
|
||||
~~~~~ => Pos: (2623 to 2627) SpanInfo: {"start":2587,"length":35}
|
||||
>secondary: secondaryA = "secondary"
|
||||
>:=> (line 78, col 8) to (line 78, col 43)
|
||||
79 > } = { primary: "noSkill", secondary: "noSkill" }
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (2628 to 2675) SpanInfo: {"start":2530,"length":145}
|
||||
>skills: {
|
||||
> primary: primaryA = "primary",
|
||||
> secondary: secondaryA = "secondary"
|
||||
> } = { primary: "noSkill", secondary: "noSkill" }
|
||||
>:=> (line 76, col 4) to (line 79, col 52)
|
||||
--------------------------------
|
||||
80 >} of <MultiRobot[]>[{ name: "mower", skills: { primary: "mowing", secondary: "none" } },
|
||||
|
||||
~ => Pos: (2676 to 2676) SpanInfo: {"start":2530,"length":145}
|
||||
>skills: {
|
||||
> primary: primaryA = "primary",
|
||||
> secondary: secondaryA = "secondary"
|
||||
> } = { primary: "noSkill", secondary: "noSkill" }
|
||||
>:=> (line 76, col 4) to (line 79, col 52)
|
||||
80 >} of <MultiRobot[]>[{ name: "mower", skills: { primary: "mowing", secondary: "none" } },
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (2677 to 2764) SpanInfo: {"start":2681,"length":162}
|
||||
><MultiRobot[]>[{ name: "mower", skills: { primary: "mowing", secondary: "none" } },
|
||||
> { name: "trimmer", skills: { primary: "trimming", secondary: "edging" } }]
|
||||
>:=> (line 80, col 5) to (line 81, col 78)
|
||||
--------------------------------
|
||||
81 > { name: "trimmer", skills: { primary: "trimming", secondary: "edging" } }]) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (2765 to 2846) SpanInfo: {"start":2681,"length":162}
|
||||
><MultiRobot[]>[{ name: "mower", skills: { primary: "mowing", secondary: "none" } },
|
||||
> { name: "trimmer", skills: { primary: "trimming", secondary: "edging" } }]
|
||||
>:=> (line 80, col 5) to (line 81, col 78)
|
||||
--------------------------------
|
||||
82 > console.log(nameA);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (2847 to 2870) SpanInfo: {"start":2851,"length":18}
|
||||
>console.log(nameA)
|
||||
>:=> (line 82, col 4) to (line 82, col 22)
|
||||
--------------------------------
|
||||
83 >}
|
||||
~ => Pos: (2871 to 2871) SpanInfo: {"start":2851,"length":18}
|
||||
>console.log(nameA)
|
||||
>:=> (line 82, col 4) to (line 82, col 22)
|
||||
@@ -0,0 +1,196 @@
|
||||
|
||||
1 >declare var console: {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (0 to 22) SpanInfo: undefined
|
||||
--------------------------------
|
||||
2 > log(msg: any): void;
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (23 to 47) SpanInfo: undefined
|
||||
--------------------------------
|
||||
3 >}
|
||||
|
||||
~~ => Pos: (48 to 49) SpanInfo: undefined
|
||||
--------------------------------
|
||||
4 >type Robot = [number, string, string];
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (50 to 88) SpanInfo: undefined
|
||||
--------------------------------
|
||||
5 >var robotA: Robot = [1, "mower", "mowing"];
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (89 to 132) SpanInfo: {"start":89,"length":42}
|
||||
>var robotA: Robot = [1, "mower", "mowing"]
|
||||
>:=> (line 5, col 0) to (line 5, col 42)
|
||||
--------------------------------
|
||||
6 >function foo1([, nameA]: Robot) {
|
||||
|
||||
~~~~~~~~~~~~~~ => Pos: (133 to 146) SpanInfo: {"start":171,"length":18}
|
||||
>console.log(nameA)
|
||||
>:=> (line 7, col 4) to (line 7, col 22)
|
||||
6 >function foo1([, nameA]: Robot) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~ => Pos: (147 to 163) SpanInfo: {"start":150,"length":5}
|
||||
>nameA
|
||||
>:=> (line 6, col 17) to (line 6, col 22)
|
||||
6 >function foo1([, nameA]: Robot) {
|
||||
|
||||
~~~ => Pos: (164 to 166) SpanInfo: {"start":171,"length":18}
|
||||
>console.log(nameA)
|
||||
>:=> (line 7, col 4) to (line 7, col 22)
|
||||
--------------------------------
|
||||
7 > console.log(nameA);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (167 to 190) SpanInfo: {"start":171,"length":18}
|
||||
>console.log(nameA)
|
||||
>:=> (line 7, col 4) to (line 7, col 22)
|
||||
--------------------------------
|
||||
8 >}
|
||||
|
||||
~~ => Pos: (191 to 192) SpanInfo: {"start":191,"length":1}
|
||||
>}
|
||||
>:=> (line 8, col 0) to (line 8, col 1)
|
||||
--------------------------------
|
||||
9 >function foo2([numberB]: Robot) {
|
||||
|
||||
~~~~~~~~~~~~~~ => Pos: (193 to 206) SpanInfo: {"start":231,"length":20}
|
||||
>console.log(numberB)
|
||||
>:=> (line 10, col 4) to (line 10, col 24)
|
||||
9 >function foo2([numberB]: Robot) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~ => Pos: (207 to 223) SpanInfo: {"start":208,"length":7}
|
||||
>numberB
|
||||
>:=> (line 9, col 15) to (line 9, col 22)
|
||||
9 >function foo2([numberB]: Robot) {
|
||||
|
||||
~~~ => Pos: (224 to 226) SpanInfo: {"start":231,"length":20}
|
||||
>console.log(numberB)
|
||||
>:=> (line 10, col 4) to (line 10, col 24)
|
||||
--------------------------------
|
||||
10 > console.log(numberB);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (227 to 252) SpanInfo: {"start":231,"length":20}
|
||||
>console.log(numberB)
|
||||
>:=> (line 10, col 4) to (line 10, col 24)
|
||||
--------------------------------
|
||||
11 >}
|
||||
|
||||
~~ => Pos: (253 to 254) SpanInfo: {"start":253,"length":1}
|
||||
>}
|
||||
>:=> (line 11, col 0) to (line 11, col 1)
|
||||
--------------------------------
|
||||
12 >function foo3([numberA2, nameA2, skillA2]: Robot) {
|
||||
|
||||
~~~~~~~~~~~~~~ => Pos: (255 to 268) SpanInfo: {"start":311,"length":19}
|
||||
>console.log(nameA2)
|
||||
>:=> (line 13, col 4) to (line 13, col 23)
|
||||
12 >function foo3([numberA2, nameA2, skillA2]: Robot) {
|
||||
|
||||
~~~~~~~~~~ => Pos: (269 to 278) SpanInfo: {"start":270,"length":8}
|
||||
>numberA2
|
||||
>:=> (line 12, col 15) to (line 12, col 23)
|
||||
12 >function foo3([numberA2, nameA2, skillA2]: Robot) {
|
||||
|
||||
~~~~~~~~ => Pos: (279 to 286) SpanInfo: {"start":280,"length":6}
|
||||
>nameA2
|
||||
>:=> (line 12, col 25) to (line 12, col 31)
|
||||
12 >function foo3([numberA2, nameA2, skillA2]: Robot) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~=> Pos: (287 to 303) SpanInfo: {"start":288,"length":7}
|
||||
>skillA2
|
||||
>:=> (line 12, col 33) to (line 12, col 40)
|
||||
12 >function foo3([numberA2, nameA2, skillA2]: Robot) {
|
||||
|
||||
~~~=> Pos: (304 to 306) SpanInfo: {"start":311,"length":19}
|
||||
>console.log(nameA2)
|
||||
>:=> (line 13, col 4) to (line 13, col 23)
|
||||
--------------------------------
|
||||
13 > console.log(nameA2);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (307 to 331) SpanInfo: {"start":311,"length":19}
|
||||
>console.log(nameA2)
|
||||
>:=> (line 13, col 4) to (line 13, col 23)
|
||||
--------------------------------
|
||||
14 >}
|
||||
|
||||
~~ => Pos: (332 to 333) SpanInfo: {"start":332,"length":1}
|
||||
>}
|
||||
>:=> (line 14, col 0) to (line 14, col 1)
|
||||
--------------------------------
|
||||
15 >function foo4([numberA3, ...robotAInfo]: Robot) {
|
||||
|
||||
~~~~~~~~~~~~~~ => Pos: (334 to 347) SpanInfo: {"start":388,"length":23}
|
||||
>console.log(robotAInfo)
|
||||
>:=> (line 16, col 4) to (line 16, col 27)
|
||||
15 >function foo4([numberA3, ...robotAInfo]: Robot) {
|
||||
|
||||
~~~~~~~~~~ => Pos: (348 to 357) SpanInfo: {"start":349,"length":8}
|
||||
>numberA3
|
||||
>:=> (line 15, col 15) to (line 15, col 23)
|
||||
15 >function foo4([numberA3, ...robotAInfo]: Robot) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (358 to 380) SpanInfo: {"start":359,"length":13}
|
||||
>...robotAInfo
|
||||
>:=> (line 15, col 25) to (line 15, col 38)
|
||||
15 >function foo4([numberA3, ...robotAInfo]: Robot) {
|
||||
|
||||
~~~=> Pos: (381 to 383) SpanInfo: {"start":388,"length":23}
|
||||
>console.log(robotAInfo)
|
||||
>:=> (line 16, col 4) to (line 16, col 27)
|
||||
--------------------------------
|
||||
16 > console.log(robotAInfo);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (384 to 412) SpanInfo: {"start":388,"length":23}
|
||||
>console.log(robotAInfo)
|
||||
>:=> (line 16, col 4) to (line 16, col 27)
|
||||
--------------------------------
|
||||
17 >}
|
||||
|
||||
~~ => Pos: (413 to 414) SpanInfo: {"start":413,"length":1}
|
||||
>}
|
||||
>:=> (line 17, col 0) to (line 17, col 1)
|
||||
--------------------------------
|
||||
18 >foo1(robotA);
|
||||
|
||||
~~~~~~~~~~~~~~ => Pos: (415 to 428) SpanInfo: {"start":415,"length":12}
|
||||
>foo1(robotA)
|
||||
>:=> (line 18, col 0) to (line 18, col 12)
|
||||
--------------------------------
|
||||
19 >foo1([2, "trimmer", "trimming"]);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (429 to 462) SpanInfo: {"start":429,"length":32}
|
||||
>foo1([2, "trimmer", "trimming"])
|
||||
>:=> (line 19, col 0) to (line 19, col 32)
|
||||
--------------------------------
|
||||
20 >foo2(robotA);
|
||||
|
||||
~~~~~~~~~~~~~~ => Pos: (463 to 476) SpanInfo: {"start":463,"length":12}
|
||||
>foo2(robotA)
|
||||
>:=> (line 20, col 0) to (line 20, col 12)
|
||||
--------------------------------
|
||||
21 >foo2([2, "trimmer", "trimming"]);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (477 to 510) SpanInfo: {"start":477,"length":32}
|
||||
>foo2([2, "trimmer", "trimming"])
|
||||
>:=> (line 21, col 0) to (line 21, col 32)
|
||||
--------------------------------
|
||||
22 >foo3(robotA);
|
||||
|
||||
~~~~~~~~~~~~~~ => Pos: (511 to 524) SpanInfo: {"start":511,"length":12}
|
||||
>foo3(robotA)
|
||||
>:=> (line 22, col 0) to (line 22, col 12)
|
||||
--------------------------------
|
||||
23 >foo3([2, "trimmer", "trimming"]);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (525 to 558) SpanInfo: {"start":525,"length":32}
|
||||
>foo3([2, "trimmer", "trimming"])
|
||||
>:=> (line 23, col 0) to (line 23, col 32)
|
||||
--------------------------------
|
||||
24 >foo4(robotA);
|
||||
|
||||
~~~~~~~~~~~~~~ => Pos: (559 to 572) SpanInfo: {"start":559,"length":12}
|
||||
>foo4(robotA)
|
||||
>:=> (line 24, col 0) to (line 24, col 12)
|
||||
--------------------------------
|
||||
25 >foo4([2, "trimmer", "trimming"]);
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (573 to 605) SpanInfo: {"start":573,"length":32}
|
||||
>foo4([2, "trimmer", "trimming"])
|
||||
>:=> (line 25, col 0) to (line 25, col 32)
|
||||
@@ -0,0 +1,196 @@
|
||||
|
||||
1 >declare var console: {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (0 to 22) SpanInfo: undefined
|
||||
--------------------------------
|
||||
2 > log(msg: any): void;
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (23 to 47) SpanInfo: undefined
|
||||
--------------------------------
|
||||
3 >}
|
||||
|
||||
~~ => Pos: (48 to 49) SpanInfo: undefined
|
||||
--------------------------------
|
||||
4 >type Robot = [string, [string, string]];
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (50 to 90) SpanInfo: undefined
|
||||
--------------------------------
|
||||
5 >var robotA: Robot = ["trimmer", ["trimming", "edging"]];
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (91 to 147) SpanInfo: {"start":91,"length":55}
|
||||
>var robotA: Robot = ["trimmer", ["trimming", "edging"]]
|
||||
>:=> (line 5, col 0) to (line 5, col 55)
|
||||
--------------------------------
|
||||
6 >function foo1([, skillA]: Robot) {
|
||||
|
||||
~~~~~~~~~~~~~~ => Pos: (148 to 161) SpanInfo: {"start":187,"length":19}
|
||||
>console.log(skillA)
|
||||
>:=> (line 7, col 4) to (line 7, col 23)
|
||||
6 >function foo1([, skillA]: Robot) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~ => Pos: (162 to 179) SpanInfo: {"start":165,"length":6}
|
||||
>skillA
|
||||
>:=> (line 6, col 17) to (line 6, col 23)
|
||||
6 >function foo1([, skillA]: Robot) {
|
||||
|
||||
~~~ => Pos: (180 to 182) SpanInfo: {"start":187,"length":19}
|
||||
>console.log(skillA)
|
||||
>:=> (line 7, col 4) to (line 7, col 23)
|
||||
--------------------------------
|
||||
7 > console.log(skillA);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (183 to 207) SpanInfo: {"start":187,"length":19}
|
||||
>console.log(skillA)
|
||||
>:=> (line 7, col 4) to (line 7, col 23)
|
||||
--------------------------------
|
||||
8 >}
|
||||
|
||||
~~ => Pos: (208 to 209) SpanInfo: {"start":208,"length":1}
|
||||
>}
|
||||
>:=> (line 8, col 0) to (line 8, col 1)
|
||||
--------------------------------
|
||||
9 >function foo2([nameMB]: Robot) {
|
||||
|
||||
~~~~~~~~~~~~~~ => Pos: (210 to 223) SpanInfo: {"start":247,"length":19}
|
||||
>console.log(nameMB)
|
||||
>:=> (line 10, col 4) to (line 10, col 23)
|
||||
9 >function foo2([nameMB]: Robot) {
|
||||
|
||||
~~~~~~~~~~~~~~~~ => Pos: (224 to 239) SpanInfo: {"start":225,"length":6}
|
||||
>nameMB
|
||||
>:=> (line 9, col 15) to (line 9, col 21)
|
||||
9 >function foo2([nameMB]: Robot) {
|
||||
|
||||
~~~ => Pos: (240 to 242) SpanInfo: {"start":247,"length":19}
|
||||
>console.log(nameMB)
|
||||
>:=> (line 10, col 4) to (line 10, col 23)
|
||||
--------------------------------
|
||||
10 > console.log(nameMB);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (243 to 267) SpanInfo: {"start":247,"length":19}
|
||||
>console.log(nameMB)
|
||||
>:=> (line 10, col 4) to (line 10, col 23)
|
||||
--------------------------------
|
||||
11 >}
|
||||
|
||||
~~ => Pos: (268 to 269) SpanInfo: {"start":268,"length":1}
|
||||
>}
|
||||
>:=> (line 11, col 0) to (line 11, col 1)
|
||||
--------------------------------
|
||||
12 >function foo3([nameMA, [primarySkillA, secondarySkillA]]: Robot) {
|
||||
|
||||
~~~~~~~~~~~~~~ => Pos: (270 to 283) SpanInfo: {"start":341,"length":19}
|
||||
>console.log(nameMA)
|
||||
>:=> (line 13, col 4) to (line 13, col 23)
|
||||
12 >function foo3([nameMA, [primarySkillA, secondarySkillA]]: Robot) {
|
||||
|
||||
~~~~~~~~ => Pos: (284 to 291) SpanInfo: {"start":285,"length":6}
|
||||
>nameMA
|
||||
>:=> (line 12, col 15) to (line 12, col 21)
|
||||
12 >function foo3([nameMA, [primarySkillA, secondarySkillA]]: Robot) {
|
||||
|
||||
~~~~~~~~~~~~~~~~ => Pos: (292 to 307) SpanInfo: {"start":294,"length":13}
|
||||
>primarySkillA
|
||||
>:=> (line 12, col 24) to (line 12, col 37)
|
||||
12 >function foo3([nameMA, [primarySkillA, secondarySkillA]]: Robot) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~=> Pos: (308 to 324) SpanInfo: {"start":309,"length":15}
|
||||
>secondarySkillA
|
||||
>:=> (line 12, col 39) to (line 12, col 54)
|
||||
12 >function foo3([nameMA, [primarySkillA, secondarySkillA]]: Robot) {
|
||||
|
||||
~~~~~~~~~=> Pos: (325 to 333) SpanInfo: {"start":293,"length":32}
|
||||
>[primarySkillA, secondarySkillA]
|
||||
>:=> (line 12, col 23) to (line 12, col 55)
|
||||
12 >function foo3([nameMA, [primarySkillA, secondarySkillA]]: Robot) {
|
||||
|
||||
~~~=> Pos: (334 to 336) SpanInfo: {"start":341,"length":19}
|
||||
>console.log(nameMA)
|
||||
>:=> (line 13, col 4) to (line 13, col 23)
|
||||
--------------------------------
|
||||
13 > console.log(nameMA);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (337 to 361) SpanInfo: {"start":341,"length":19}
|
||||
>console.log(nameMA)
|
||||
>:=> (line 13, col 4) to (line 13, col 23)
|
||||
--------------------------------
|
||||
14 >}
|
||||
|
||||
~~ => Pos: (362 to 363) SpanInfo: {"start":362,"length":1}
|
||||
>}
|
||||
>:=> (line 14, col 0) to (line 14, col 1)
|
||||
--------------------------------
|
||||
15 >function foo4([...multiRobotAInfo]: Robot) {
|
||||
|
||||
~~~~~~~~~~~~~~ => Pos: (364 to 377) SpanInfo: {"start":413,"length":28}
|
||||
>console.log(multiRobotAInfo)
|
||||
>:=> (line 16, col 4) to (line 16, col 32)
|
||||
15 >function foo4([...multiRobotAInfo]: Robot) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (378 to 405) SpanInfo: {"start":379,"length":18}
|
||||
>...multiRobotAInfo
|
||||
>:=> (line 15, col 15) to (line 15, col 33)
|
||||
15 >function foo4([...multiRobotAInfo]: Robot) {
|
||||
|
||||
~~~ => Pos: (406 to 408) SpanInfo: {"start":413,"length":28}
|
||||
>console.log(multiRobotAInfo)
|
||||
>:=> (line 16, col 4) to (line 16, col 32)
|
||||
--------------------------------
|
||||
16 > console.log(multiRobotAInfo);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (409 to 442) SpanInfo: {"start":413,"length":28}
|
||||
>console.log(multiRobotAInfo)
|
||||
>:=> (line 16, col 4) to (line 16, col 32)
|
||||
--------------------------------
|
||||
17 >}
|
||||
|
||||
~~ => Pos: (443 to 444) SpanInfo: {"start":443,"length":1}
|
||||
>}
|
||||
>:=> (line 17, col 0) to (line 17, col 1)
|
||||
--------------------------------
|
||||
18 >foo1(robotA);
|
||||
|
||||
~~~~~~~~~~~~~~ => Pos: (445 to 458) SpanInfo: {"start":445,"length":12}
|
||||
>foo1(robotA)
|
||||
>:=> (line 18, col 0) to (line 18, col 12)
|
||||
--------------------------------
|
||||
19 >foo1(["roomba", ["vaccum", "mopping"]]);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (459 to 499) SpanInfo: {"start":459,"length":39}
|
||||
>foo1(["roomba", ["vaccum", "mopping"]])
|
||||
>:=> (line 19, col 0) to (line 19, col 39)
|
||||
--------------------------------
|
||||
20 >foo2(robotA);
|
||||
|
||||
~~~~~~~~~~~~~~ => Pos: (500 to 513) SpanInfo: {"start":500,"length":12}
|
||||
>foo2(robotA)
|
||||
>:=> (line 20, col 0) to (line 20, col 12)
|
||||
--------------------------------
|
||||
21 >foo2(["roomba", ["vaccum", "mopping"]]);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (514 to 554) SpanInfo: {"start":514,"length":39}
|
||||
>foo2(["roomba", ["vaccum", "mopping"]])
|
||||
>:=> (line 21, col 0) to (line 21, col 39)
|
||||
--------------------------------
|
||||
22 >foo3(robotA);
|
||||
|
||||
~~~~~~~~~~~~~~ => Pos: (555 to 568) SpanInfo: {"start":555,"length":12}
|
||||
>foo3(robotA)
|
||||
>:=> (line 22, col 0) to (line 22, col 12)
|
||||
--------------------------------
|
||||
23 >foo3(["roomba", ["vaccum", "mopping"]]);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (569 to 609) SpanInfo: {"start":569,"length":39}
|
||||
>foo3(["roomba", ["vaccum", "mopping"]])
|
||||
>:=> (line 23, col 0) to (line 23, col 39)
|
||||
--------------------------------
|
||||
24 >foo4(robotA);
|
||||
|
||||
~~~~~~~~~~~~~~ => Pos: (610 to 623) SpanInfo: {"start":610,"length":12}
|
||||
>foo4(robotA)
|
||||
>:=> (line 24, col 0) to (line 24, col 12)
|
||||
--------------------------------
|
||||
25 >foo4(["roomba", ["vaccum", "mopping"]]);
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (624 to 663) SpanInfo: {"start":624,"length":39}
|
||||
>foo4(["roomba", ["vaccum", "mopping"]])
|
||||
>:=> (line 25, col 0) to (line 25, col 39)
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user