mirror of
https://github.com/microsoft/TypeScript.git
synced 2025-11-18 17:21:48 +00:00
Merge branch 'master' into fix4867_transpiling
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();
|
||||
}
|
||||
|
||||
|
||||
+1
-1
@@ -5037,7 +5037,7 @@ var 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
|
||||
*/
|
||||
|
||||
@@ -5037,7 +5037,7 @@ var 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
|
||||
*/
|
||||
|
||||
+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 {
|
||||
|
||||
+408
-259
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
|
||||
|
||||
+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
|
||||
@@ -3870,61 +3880,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++;
|
||||
}
|
||||
}
|
||||
@@ -3937,14 +3952,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) {
|
||||
@@ -3954,9 +3975,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
|
||||
@@ -3972,7 +3994,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++) {
|
||||
@@ -3994,7 +4016,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++;
|
||||
}
|
||||
}
|
||||
@@ -5154,7 +5176,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);
|
||||
@@ -5701,7 +5723,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(", ");
|
||||
}
|
||||
@@ -7438,6 +7460,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;
|
||||
@@ -1910,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);
|
||||
}
|
||||
|
||||
|
||||
+82
-28
@@ -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,7 +1644,9 @@ namespace ts {
|
||||
jsxOpenTagName = 19,
|
||||
jsxCloseTagName = 20,
|
||||
jsxSelfClosingTagName = 21,
|
||||
jsxAttribute = 22
|
||||
jsxAttribute = 22,
|
||||
jsxText = 23,
|
||||
jsxAttributeStringLiteralValue = 24,
|
||||
}
|
||||
|
||||
/// Language Service
|
||||
@@ -2013,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.
|
||||
@@ -5512,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 {
|
||||
@@ -5959,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
|
||||
@@ -6006,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));
|
||||
@@ -6037,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);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -6050,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
|
||||
@@ -6078,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);
|
||||
}
|
||||
|
||||
@@ -6251,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) {
|
||||
@@ -6595,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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6779,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;
|
||||
}
|
||||
@@ -6803,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);
|
||||
@@ -6844,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;
|
||||
}
|
||||
}
|
||||
@@ -6863,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.
|
||||
@@ -6873,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) {
|
||||
@@ -6946,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)
|
||||
+196
@@ -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 = "noName"]: Robot = [-1, "name", "skill"]) {
|
||||
|
||||
~~~~~~~~~~~~~~ => Pos: (133 to 146) SpanInfo: {"start":206,"length":18}
|
||||
>console.log(nameA)
|
||||
>:=> (line 7, col 4) to (line 7, col 22)
|
||||
6 >function foo1([, nameA = "noName"]: Robot = [-1, "name", "skill"]) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (147 to 198) SpanInfo: {"start":150,"length":16}
|
||||
>nameA = "noName"
|
||||
>:=> (line 6, col 17) to (line 6, col 33)
|
||||
6 >function foo1([, nameA = "noName"]: Robot = [-1, "name", "skill"]) {
|
||||
|
||||
~~~=> Pos: (199 to 201) SpanInfo: {"start":206,"length":18}
|
||||
>console.log(nameA)
|
||||
>:=> (line 7, col 4) to (line 7, col 22)
|
||||
--------------------------------
|
||||
7 > console.log(nameA);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (202 to 225) SpanInfo: {"start":206,"length":18}
|
||||
>console.log(nameA)
|
||||
>:=> (line 7, col 4) to (line 7, col 22)
|
||||
--------------------------------
|
||||
8 >}
|
||||
|
||||
~~ => Pos: (226 to 227) SpanInfo: {"start":226,"length":1}
|
||||
>}
|
||||
>:=> (line 8, col 0) to (line 8, col 1)
|
||||
--------------------------------
|
||||
9 >function foo2([numberB = -1]: Robot = [-1, "name", "skill"]) {
|
||||
|
||||
~~~~~~~~~~~~~~ => Pos: (228 to 241) SpanInfo: {"start":295,"length":20}
|
||||
>console.log(numberB)
|
||||
>:=> (line 10, col 4) to (line 10, col 24)
|
||||
9 >function foo2([numberB = -1]: Robot = [-1, "name", "skill"]) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (242 to 287) SpanInfo: {"start":243,"length":12}
|
||||
>numberB = -1
|
||||
>:=> (line 9, col 15) to (line 9, col 27)
|
||||
9 >function foo2([numberB = -1]: Robot = [-1, "name", "skill"]) {
|
||||
|
||||
~~~=> Pos: (288 to 290) SpanInfo: {"start":295,"length":20}
|
||||
>console.log(numberB)
|
||||
>:=> (line 10, col 4) to (line 10, col 24)
|
||||
--------------------------------
|
||||
10 > console.log(numberB);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (291 to 316) SpanInfo: {"start":295,"length":20}
|
||||
>console.log(numberB)
|
||||
>:=> (line 10, col 4) to (line 10, col 24)
|
||||
--------------------------------
|
||||
11 >}
|
||||
|
||||
~~ => Pos: (317 to 318) SpanInfo: {"start":317,"length":1}
|
||||
>}
|
||||
>:=> (line 11, col 0) to (line 11, col 1)
|
||||
--------------------------------
|
||||
12 >function foo3([numberA2 = -1, nameA2 = "name", skillA2 = "skill"]: Robot = [-1, "name", "skill"]) {
|
||||
|
||||
~~~~~~~~~~~~~~ => Pos: (319 to 332) SpanInfo: {"start":423,"length":19}
|
||||
>console.log(nameA2)
|
||||
>:=> (line 13, col 4) to (line 13, col 23)
|
||||
12 >function foo3([numberA2 = -1, nameA2 = "name", skillA2 = "skill"]: Robot = [-1, "name", "skill"]) {
|
||||
|
||||
~~~~~~~~~~~~~~~ => Pos: (333 to 347) SpanInfo: {"start":334,"length":13}
|
||||
>numberA2 = -1
|
||||
>:=> (line 12, col 15) to (line 12, col 28)
|
||||
12 >function foo3([numberA2 = -1, nameA2 = "name", skillA2 = "skill"]: Robot = [-1, "name", "skill"]) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~=> Pos: (348 to 364) SpanInfo: {"start":349,"length":15}
|
||||
>nameA2 = "name"
|
||||
>:=> (line 12, col 30) to (line 12, col 45)
|
||||
12 >function foo3([numberA2 = -1, nameA2 = "name", skillA2 = "skill"]: Robot = [-1, "name", "skill"]) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (365 to 415) SpanInfo: {"start":366,"length":17}
|
||||
>skillA2 = "skill"
|
||||
>:=> (line 12, col 47) to (line 12, col 64)
|
||||
12 >function foo3([numberA2 = -1, nameA2 = "name", skillA2 = "skill"]: Robot = [-1, "name", "skill"]) {
|
||||
|
||||
~~~=> Pos: (416 to 418) SpanInfo: {"start":423,"length":19}
|
||||
>console.log(nameA2)
|
||||
>:=> (line 13, col 4) to (line 13, col 23)
|
||||
--------------------------------
|
||||
13 > console.log(nameA2);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (419 to 443) SpanInfo: {"start":423,"length":19}
|
||||
>console.log(nameA2)
|
||||
>:=> (line 13, col 4) to (line 13, col 23)
|
||||
--------------------------------
|
||||
14 >}
|
||||
|
||||
~~ => Pos: (444 to 445) SpanInfo: {"start":444,"length":1}
|
||||
>}
|
||||
>:=> (line 14, col 0) to (line 14, col 1)
|
||||
--------------------------------
|
||||
15 >function foo4([numberA3 = -1, ...robotAInfo]: Robot = [-1, "name", "skill"]) {
|
||||
|
||||
~~~~~~~~~~~~~~ => Pos: (446 to 459) SpanInfo: {"start":529,"length":23}
|
||||
>console.log(robotAInfo)
|
||||
>:=> (line 16, col 4) to (line 16, col 27)
|
||||
15 >function foo4([numberA3 = -1, ...robotAInfo]: Robot = [-1, "name", "skill"]) {
|
||||
|
||||
~~~~~~~~~~~~~~~ => Pos: (460 to 474) SpanInfo: {"start":461,"length":13}
|
||||
>numberA3 = -1
|
||||
>:=> (line 15, col 15) to (line 15, col 28)
|
||||
15 >function foo4([numberA3 = -1, ...robotAInfo]: Robot = [-1, "name", "skill"]) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (475 to 521) SpanInfo: {"start":476,"length":13}
|
||||
>...robotAInfo
|
||||
>:=> (line 15, col 30) to (line 15, col 43)
|
||||
15 >function foo4([numberA3 = -1, ...robotAInfo]: Robot = [-1, "name", "skill"]) {
|
||||
|
||||
~~~=> Pos: (522 to 524) SpanInfo: {"start":529,"length":23}
|
||||
>console.log(robotAInfo)
|
||||
>:=> (line 16, col 4) to (line 16, col 27)
|
||||
--------------------------------
|
||||
16 > console.log(robotAInfo);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (525 to 553) SpanInfo: {"start":529,"length":23}
|
||||
>console.log(robotAInfo)
|
||||
>:=> (line 16, col 4) to (line 16, col 27)
|
||||
--------------------------------
|
||||
17 >}
|
||||
|
||||
~~ => Pos: (554 to 555) SpanInfo: {"start":554,"length":1}
|
||||
>}
|
||||
>:=> (line 17, col 0) to (line 17, col 1)
|
||||
--------------------------------
|
||||
18 >foo1(robotA);
|
||||
|
||||
~~~~~~~~~~~~~~ => Pos: (556 to 569) SpanInfo: {"start":556,"length":12}
|
||||
>foo1(robotA)
|
||||
>:=> (line 18, col 0) to (line 18, col 12)
|
||||
--------------------------------
|
||||
19 >foo1([2, "trimmer", "trimming"]);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (570 to 603) SpanInfo: {"start":570,"length":32}
|
||||
>foo1([2, "trimmer", "trimming"])
|
||||
>:=> (line 19, col 0) to (line 19, col 32)
|
||||
--------------------------------
|
||||
20 >foo2(robotA);
|
||||
|
||||
~~~~~~~~~~~~~~ => Pos: (604 to 617) SpanInfo: {"start":604,"length":12}
|
||||
>foo2(robotA)
|
||||
>:=> (line 20, col 0) to (line 20, col 12)
|
||||
--------------------------------
|
||||
21 >foo2([2, "trimmer", "trimming"]);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (618 to 651) SpanInfo: {"start":618,"length":32}
|
||||
>foo2([2, "trimmer", "trimming"])
|
||||
>:=> (line 21, col 0) to (line 21, col 32)
|
||||
--------------------------------
|
||||
22 >foo3(robotA);
|
||||
|
||||
~~~~~~~~~~~~~~ => Pos: (652 to 665) SpanInfo: {"start":652,"length":12}
|
||||
>foo3(robotA)
|
||||
>:=> (line 22, col 0) to (line 22, col 12)
|
||||
--------------------------------
|
||||
23 >foo3([2, "trimmer", "trimming"]);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (666 to 699) SpanInfo: {"start":666,"length":32}
|
||||
>foo3([2, "trimmer", "trimming"])
|
||||
>:=> (line 23, col 0) to (line 23, col 32)
|
||||
--------------------------------
|
||||
24 >foo4(robotA);
|
||||
|
||||
~~~~~~~~~~~~~~ => Pos: (700 to 713) SpanInfo: {"start":700,"length":12}
|
||||
>foo4(robotA)
|
||||
>:=> (line 24, col 0) to (line 24, col 12)
|
||||
--------------------------------
|
||||
25 >foo4([2, "trimmer", "trimming"]);
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (714 to 746) SpanInfo: {"start":714,"length":32}
|
||||
>foo4([2, "trimmer", "trimming"])
|
||||
>:=> (line 25, col 0) to (line 25, col 32)
|
||||
+172
@@ -0,0 +1,172 @@
|
||||
|
||||
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[]];
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (50 to 82) SpanInfo: undefined
|
||||
--------------------------------
|
||||
5 >var robotA: Robot = ["trimmer", ["trimming", "edging"]];
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (83 to 139) SpanInfo: {"start":83,"length":55}
|
||||
>var robotA: Robot = ["trimmer", ["trimming", "edging"]]
|
||||
>:=> (line 5, col 0) to (line 5, col 55)
|
||||
--------------------------------
|
||||
6 >function foo1([, skillA = ["noSkill", "noSkill"]]: Robot= ["name", ["skill1", "skill2"]]) {
|
||||
|
||||
~~~~~~~~~~~~~~ => Pos: (140 to 153) SpanInfo: {"start":236,"length":19}
|
||||
>console.log(skillA)
|
||||
>:=> (line 7, col 4) to (line 7, col 23)
|
||||
6 >function foo1([, skillA = ["noSkill", "noSkill"]]: Robot= ["name", ["skill1", "skill2"]]) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (154 to 228) SpanInfo: {"start":157,"length":31}
|
||||
>skillA = ["noSkill", "noSkill"]
|
||||
>:=> (line 6, col 17) to (line 6, col 48)
|
||||
6 >function foo1([, skillA = ["noSkill", "noSkill"]]: Robot= ["name", ["skill1", "skill2"]]) {
|
||||
|
||||
~~~=> Pos: (229 to 231) SpanInfo: {"start":236,"length":19}
|
||||
>console.log(skillA)
|
||||
>:=> (line 7, col 4) to (line 7, col 23)
|
||||
--------------------------------
|
||||
7 > console.log(skillA);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (232 to 256) SpanInfo: {"start":236,"length":19}
|
||||
>console.log(skillA)
|
||||
>:=> (line 7, col 4) to (line 7, col 23)
|
||||
--------------------------------
|
||||
8 >}
|
||||
|
||||
~~ => Pos: (257 to 258) SpanInfo: {"start":257,"length":1}
|
||||
>}
|
||||
>:=> (line 8, col 0) to (line 8, col 1)
|
||||
--------------------------------
|
||||
9 >function foo2([nameMB = "noName"]: Robot = ["name", ["skill1", "skill2"]]) {
|
||||
|
||||
~~~~~~~~~~~~~~ => Pos: (259 to 272) SpanInfo: {"start":340,"length":19}
|
||||
>console.log(nameMB)
|
||||
>:=> (line 10, col 4) to (line 10, col 23)
|
||||
9 >function foo2([nameMB = "noName"]: Robot = ["name", ["skill1", "skill2"]]) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (273 to 332) SpanInfo: {"start":274,"length":17}
|
||||
>nameMB = "noName"
|
||||
>:=> (line 9, col 15) to (line 9, col 32)
|
||||
9 >function foo2([nameMB = "noName"]: Robot = ["name", ["skill1", "skill2"]]) {
|
||||
|
||||
~~~=> Pos: (333 to 335) SpanInfo: {"start":340,"length":19}
|
||||
>console.log(nameMB)
|
||||
>:=> (line 10, col 4) to (line 10, col 23)
|
||||
--------------------------------
|
||||
10 > console.log(nameMB);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (336 to 360) SpanInfo: {"start":340,"length":19}
|
||||
>console.log(nameMB)
|
||||
>:=> (line 10, col 4) to (line 10, col 23)
|
||||
--------------------------------
|
||||
11 >}
|
||||
|
||||
~~ => Pos: (361 to 362) SpanInfo: {"start":361,"length":1}
|
||||
>}
|
||||
>:=> (line 11, col 0) to (line 11, col 1)
|
||||
--------------------------------
|
||||
12 >function foo3([nameMA = "noName", [
|
||||
|
||||
~~~~~~~~~~~~~~ => Pos: (363 to 376) SpanInfo: {"start":506,"length":19}
|
||||
>console.log(nameMA)
|
||||
>:=> (line 16, col 4) to (line 16, col 23)
|
||||
12 >function foo3([nameMA = "noName", [
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~ => Pos: (377 to 395) SpanInfo: {"start":378,"length":17}
|
||||
>nameMA = "noName"
|
||||
>:=> (line 12, col 15) to (line 12, col 32)
|
||||
12 >function foo3([nameMA = "noName", [
|
||||
|
||||
~~~ => Pos: (396 to 398) SpanInfo: {"start":403,"length":25}
|
||||
>primarySkillA = "primary"
|
||||
>:=> (line 13, col 4) to (line 13, col 29)
|
||||
--------------------------------
|
||||
13 > primarySkillA = "primary",
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (399 to 429) SpanInfo: {"start":403,"length":25}
|
||||
>primarySkillA = "primary"
|
||||
>:=> (line 13, col 4) to (line 13, col 29)
|
||||
--------------------------------
|
||||
14 > secondarySkillA = "secondary"
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (430 to 463) SpanInfo: {"start":434,"length":29}
|
||||
>secondarySkillA = "secondary"
|
||||
>:=> (line 14, col 4) to (line 14, col 33)
|
||||
--------------------------------
|
||||
15 >] = ["noSkill", "noSkill"]]: Robot) {
|
||||
|
||||
~ => Pos: (464 to 464) SpanInfo: {"start":434,"length":29}
|
||||
>secondarySkillA = "secondary"
|
||||
>:=> (line 14, col 4) to (line 14, col 33)
|
||||
15 >] = ["noSkill", "noSkill"]]: Robot) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (465 to 498) SpanInfo: {"start":397,"length":93}
|
||||
>[
|
||||
> primarySkillA = "primary",
|
||||
> secondarySkillA = "secondary"
|
||||
>] = ["noSkill", "noSkill"]
|
||||
>:=> (line 12, col 34) to (line 15, col 26)
|
||||
15 >] = ["noSkill", "noSkill"]]: Robot) {
|
||||
|
||||
~~~ => Pos: (499 to 501) SpanInfo: {"start":506,"length":19}
|
||||
>console.log(nameMA)
|
||||
>:=> (line 16, col 4) to (line 16, col 23)
|
||||
--------------------------------
|
||||
16 > console.log(nameMA);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (502 to 526) SpanInfo: {"start":506,"length":19}
|
||||
>console.log(nameMA)
|
||||
>:=> (line 16, col 4) to (line 16, col 23)
|
||||
--------------------------------
|
||||
17 >}
|
||||
|
||||
~~ => Pos: (527 to 528) SpanInfo: {"start":527,"length":1}
|
||||
>}
|
||||
>:=> (line 17, col 0) to (line 17, col 1)
|
||||
--------------------------------
|
||||
18 >foo1(robotA);
|
||||
|
||||
~~~~~~~~~~~~~~ => Pos: (529 to 542) SpanInfo: {"start":529,"length":12}
|
||||
>foo1(robotA)
|
||||
>:=> (line 18, col 0) to (line 18, col 12)
|
||||
--------------------------------
|
||||
19 >foo1(["roomba", ["vaccum", "mopping"]]);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (543 to 583) SpanInfo: {"start":543,"length":39}
|
||||
>foo1(["roomba", ["vaccum", "mopping"]])
|
||||
>:=> (line 19, col 0) to (line 19, col 39)
|
||||
--------------------------------
|
||||
20 >foo2(robotA);
|
||||
|
||||
~~~~~~~~~~~~~~ => Pos: (584 to 597) SpanInfo: {"start":584,"length":12}
|
||||
>foo2(robotA)
|
||||
>:=> (line 20, col 0) to (line 20, col 12)
|
||||
--------------------------------
|
||||
21 >foo2(["roomba", ["vaccum", "mopping"]]);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (598 to 638) SpanInfo: {"start":598,"length":39}
|
||||
>foo2(["roomba", ["vaccum", "mopping"]])
|
||||
>:=> (line 21, col 0) to (line 21, col 39)
|
||||
--------------------------------
|
||||
22 >foo3(robotA);
|
||||
|
||||
~~~~~~~~~~~~~~ => Pos: (639 to 652) SpanInfo: {"start":639,"length":12}
|
||||
>foo3(robotA)
|
||||
>:=> (line 22, col 0) to (line 22, col 12)
|
||||
--------------------------------
|
||||
23 >foo3(["roomba", ["vaccum", "mopping"]]);
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (653 to 692) SpanInfo: {"start":653,"length":39}
|
||||
>foo3(["roomba", ["vaccum", "mopping"]])
|
||||
>:=> (line 23, col 0) to (line 23, col 39)
|
||||
+200
@@ -0,0 +1,200 @@
|
||||
|
||||
1 >declare var console: {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (0 to 22) SpanInfo: undefined
|
||||
--------------------------------
|
||||
2 > log(msg: string): void;
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (23 to 50) SpanInfo: undefined
|
||||
--------------------------------
|
||||
3 >}
|
||||
|
||||
~~ => Pos: (51 to 52) SpanInfo: undefined
|
||||
--------------------------------
|
||||
4 >interface Robot {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~ => Pos: (53 to 70) SpanInfo: undefined
|
||||
--------------------------------
|
||||
5 > name: string;
|
||||
|
||||
~~~~~~~~~~~~~~~~~~ => Pos: (71 to 88) SpanInfo: undefined
|
||||
--------------------------------
|
||||
6 > skills: {
|
||||
|
||||
~~~~~~~~~~~~~~ => Pos: (89 to 102) SpanInfo: undefined
|
||||
--------------------------------
|
||||
7 > primary: string;
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (103 to 127) SpanInfo: undefined
|
||||
--------------------------------
|
||||
8 > secondary: string;
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (128 to 154) SpanInfo: undefined
|
||||
--------------------------------
|
||||
9 > };
|
||||
|
||||
~~~~~~~ => Pos: (155 to 161) SpanInfo: undefined
|
||||
--------------------------------
|
||||
10 >}
|
||||
|
||||
~~ => Pos: (162 to 163) SpanInfo: undefined
|
||||
--------------------------------
|
||||
11 >var robotA: Robot = { name: "mower", skills: { primary: "mowing", secondary: "none" } };
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (164 to 252) SpanInfo: {"start":164,"length":87}
|
||||
>var robotA: Robot = { name: "mower", skills: { primary: "mowing", secondary: "none" } }
|
||||
>:=> (line 11, col 0) to (line 11, col 87)
|
||||
--------------------------------
|
||||
12 >function foo1({ skills: { primary: primaryA, secondary: secondaryA } }: Robot) {
|
||||
|
||||
~~~~~~~~~~~~~~ => Pos: (253 to 266) SpanInfo: {"start":338,"length":21}
|
||||
>console.log(primaryA)
|
||||
>:=> (line 13, col 4) to (line 13, col 25)
|
||||
12 >function foo1({ skills: { primary: primaryA, secondary: secondaryA } }: Robot) {
|
||||
|
||||
~~~~~~~~~ => Pos: (267 to 275) SpanInfo: {"start":269,"length":52}
|
||||
>skills: { primary: primaryA, secondary: secondaryA }
|
||||
>:=> (line 12, col 16) to (line 12, col 68)
|
||||
12 >function foo1({ skills: { primary: primaryA, secondary: secondaryA } }: Robot) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~ => Pos: (276 to 296) SpanInfo: {"start":279,"length":17}
|
||||
>primary: primaryA
|
||||
>:=> (line 12, col 26) to (line 12, col 43)
|
||||
12 >function foo1({ skills: { primary: primaryA, secondary: secondaryA } }: Robot) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (297 to 320) SpanInfo: {"start":298,"length":21}
|
||||
>secondary: secondaryA
|
||||
>:=> (line 12, col 45) to (line 12, col 66)
|
||||
12 >function foo1({ skills: { primary: primaryA, secondary: secondaryA } }: Robot) {
|
||||
|
||||
~~~~~~~~~~=> Pos: (321 to 330) SpanInfo: {"start":269,"length":52}
|
||||
>skills: { primary: primaryA, secondary: secondaryA }
|
||||
>:=> (line 12, col 16) to (line 12, col 68)
|
||||
12 >function foo1({ skills: { primary: primaryA, secondary: secondaryA } }: Robot) {
|
||||
|
||||
~~~=> Pos: (331 to 333) SpanInfo: {"start":338,"length":21}
|
||||
>console.log(primaryA)
|
||||
>:=> (line 13, col 4) to (line 13, col 25)
|
||||
--------------------------------
|
||||
13 > console.log(primaryA);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (334 to 360) SpanInfo: {"start":338,"length":21}
|
||||
>console.log(primaryA)
|
||||
>:=> (line 13, col 4) to (line 13, col 25)
|
||||
--------------------------------
|
||||
14 >}
|
||||
|
||||
~~ => Pos: (361 to 362) SpanInfo: {"start":361,"length":1}
|
||||
>}
|
||||
>:=> (line 14, col 0) to (line 14, col 1)
|
||||
--------------------------------
|
||||
15 >function foo2({ name: nameC, skills: { primary: primaryB, secondary: secondaryB } }: Robot) {
|
||||
|
||||
~~~~~~~~~~~~~~ => Pos: (363 to 376) SpanInfo: {"start":461,"length":23}
|
||||
>console.log(secondaryB)
|
||||
>:=> (line 16, col 4) to (line 16, col 27)
|
||||
15 >function foo2({ name: nameC, skills: { primary: primaryB, secondary: secondaryB } }: Robot) {
|
||||
|
||||
~~~~~~~~~~~~~~ => Pos: (377 to 390) SpanInfo: {"start":379,"length":11}
|
||||
>name: nameC
|
||||
>:=> (line 15, col 16) to (line 15, col 27)
|
||||
15 >function foo2({ name: nameC, skills: { primary: primaryB, secondary: secondaryB } }: Robot) {
|
||||
|
||||
~~~~~~~~ => Pos: (391 to 398) SpanInfo: {"start":392,"length":52}
|
||||
>skills: { primary: primaryB, secondary: secondaryB }
|
||||
>:=> (line 15, col 29) to (line 15, col 81)
|
||||
15 >function foo2({ name: nameC, skills: { primary: primaryB, secondary: secondaryB } }: Robot) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~=> Pos: (399 to 419) SpanInfo: {"start":402,"length":17}
|
||||
>primary: primaryB
|
||||
>:=> (line 15, col 39) to (line 15, col 56)
|
||||
15 >function foo2({ name: nameC, skills: { primary: primaryB, secondary: secondaryB } }: Robot) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (420 to 443) SpanInfo: {"start":421,"length":21}
|
||||
>secondary: secondaryB
|
||||
>:=> (line 15, col 58) to (line 15, col 79)
|
||||
15 >function foo2({ name: nameC, skills: { primary: primaryB, secondary: secondaryB } }: Robot) {
|
||||
|
||||
~~~~~~~~~~=> Pos: (444 to 453) SpanInfo: {"start":392,"length":52}
|
||||
>skills: { primary: primaryB, secondary: secondaryB }
|
||||
>:=> (line 15, col 29) to (line 15, col 81)
|
||||
15 >function foo2({ name: nameC, skills: { primary: primaryB, secondary: secondaryB } }: Robot) {
|
||||
|
||||
~~~=> Pos: (454 to 456) SpanInfo: {"start":461,"length":23}
|
||||
>console.log(secondaryB)
|
||||
>:=> (line 16, col 4) to (line 16, col 27)
|
||||
--------------------------------
|
||||
16 > console.log(secondaryB);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (457 to 485) SpanInfo: {"start":461,"length":23}
|
||||
>console.log(secondaryB)
|
||||
>:=> (line 16, col 4) to (line 16, col 27)
|
||||
--------------------------------
|
||||
17 >}
|
||||
|
||||
~~ => Pos: (486 to 487) SpanInfo: {"start":486,"length":1}
|
||||
>}
|
||||
>:=> (line 17, col 0) to (line 17, col 1)
|
||||
--------------------------------
|
||||
18 >function foo3({ skills }: Robot) {
|
||||
|
||||
~~~~~~~~~~~~~~ => Pos: (488 to 501) SpanInfo: {"start":527,"length":27}
|
||||
>console.log(skills.primary)
|
||||
>:=> (line 19, col 4) to (line 19, col 31)
|
||||
18 >function foo3({ skills }: Robot) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~ => Pos: (502 to 519) SpanInfo: {"start":504,"length":6}
|
||||
>skills
|
||||
>:=> (line 18, col 16) to (line 18, col 22)
|
||||
18 >function foo3({ skills }: Robot) {
|
||||
|
||||
~~~ => Pos: (520 to 522) SpanInfo: {"start":527,"length":27}
|
||||
>console.log(skills.primary)
|
||||
>:=> (line 19, col 4) to (line 19, col 31)
|
||||
--------------------------------
|
||||
19 > console.log(skills.primary);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (523 to 555) SpanInfo: {"start":527,"length":27}
|
||||
>console.log(skills.primary)
|
||||
>:=> (line 19, col 4) to (line 19, col 31)
|
||||
--------------------------------
|
||||
20 >}
|
||||
|
||||
~~ => Pos: (556 to 557) SpanInfo: {"start":556,"length":1}
|
||||
>}
|
||||
>:=> (line 20, col 0) to (line 20, col 1)
|
||||
--------------------------------
|
||||
21 >foo1(robotA);
|
||||
|
||||
~~~~~~~~~~~~~~ => Pos: (558 to 571) SpanInfo: {"start":558,"length":12}
|
||||
>foo1(robotA)
|
||||
>:=> (line 21, col 0) to (line 21, col 12)
|
||||
--------------------------------
|
||||
22 >foo1({ name: "Edger", skills: { primary: "edging", secondary: "branch trimming" } });
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (572 to 657) SpanInfo: {"start":572,"length":84}
|
||||
>foo1({ name: "Edger", skills: { primary: "edging", secondary: "branch trimming" } })
|
||||
>:=> (line 22, col 0) to (line 22, col 84)
|
||||
--------------------------------
|
||||
23 >foo2(robotA);
|
||||
|
||||
~~~~~~~~~~~~~~ => Pos: (658 to 671) SpanInfo: {"start":658,"length":12}
|
||||
>foo2(robotA)
|
||||
>:=> (line 23, col 0) to (line 23, col 12)
|
||||
--------------------------------
|
||||
24 >foo2({ name: "Edger", skills: { primary: "edging", secondary: "branch trimming" } });
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (672 to 757) SpanInfo: {"start":672,"length":84}
|
||||
>foo2({ name: "Edger", skills: { primary: "edging", secondary: "branch trimming" } })
|
||||
>:=> (line 24, col 0) to (line 24, col 84)
|
||||
--------------------------------
|
||||
25 >foo3(robotA);
|
||||
|
||||
~~~~~~~~~~~~~~ => Pos: (758 to 771) SpanInfo: {"start":758,"length":12}
|
||||
>foo3(robotA)
|
||||
>:=> (line 25, col 0) to (line 25, col 12)
|
||||
--------------------------------
|
||||
26 >foo3({ name: "Edger", skills: { primary: "edging", secondary: "branch trimming" } });
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (772 to 856) SpanInfo: {"start":772,"length":84}
|
||||
>foo3({ name: "Edger", skills: { primary: "edging", secondary: "branch trimming" } })
|
||||
>:=> (line 26, col 0) to (line 26, col 84)
|
||||
+274
@@ -0,0 +1,274 @@
|
||||
|
||||
1 >declare var console: {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (0 to 22) SpanInfo: undefined
|
||||
--------------------------------
|
||||
2 > log(msg: string): void;
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (23 to 50) SpanInfo: undefined
|
||||
--------------------------------
|
||||
3 >}
|
||||
|
||||
~~ => Pos: (51 to 52) SpanInfo: undefined
|
||||
--------------------------------
|
||||
4 >interface Robot {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~ => Pos: (53 to 70) SpanInfo: undefined
|
||||
--------------------------------
|
||||
5 > name: string;
|
||||
|
||||
~~~~~~~~~~~~~~~~~~ => Pos: (71 to 88) SpanInfo: undefined
|
||||
--------------------------------
|
||||
6 > skills: {
|
||||
|
||||
~~~~~~~~~~~~~~ => Pos: (89 to 102) SpanInfo: undefined
|
||||
--------------------------------
|
||||
7 > primary?: string;
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (103 to 128) SpanInfo: undefined
|
||||
--------------------------------
|
||||
8 > secondary?: string;
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (129 to 156) SpanInfo: undefined
|
||||
--------------------------------
|
||||
9 > };
|
||||
|
||||
~~~~~~~ => Pos: (157 to 163) SpanInfo: undefined
|
||||
--------------------------------
|
||||
10 >}
|
||||
|
||||
~~ => Pos: (164 to 165) SpanInfo: undefined
|
||||
--------------------------------
|
||||
11 >var robotA: Robot = { name: "mower", skills: { primary: "mowing", secondary: "none" } };
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (166 to 254) SpanInfo: {"start":166,"length":87}
|
||||
>var robotA: Robot = { name: "mower", skills: { primary: "mowing", secondary: "none" } }
|
||||
>:=> (line 11, col 0) to (line 11, col 87)
|
||||
--------------------------------
|
||||
12 >function foo1(
|
||||
|
||||
~~~~~~~~~~~~~~~ => Pos: (255 to 269) SpanInfo: {"start":475,"length":21}
|
||||
>console.log(primaryA)
|
||||
>:=> (line 19, col 4) to (line 19, col 25)
|
||||
--------------------------------
|
||||
13 > {
|
||||
|
||||
~~~~~~ => Pos: (270 to 275) SpanInfo: {"start":284,"length":161}
|
||||
>skills: {
|
||||
> primary: primaryA = "primary",
|
||||
> secondary: secondaryA = "secondary"
|
||||
> } = { primary: "SomeSkill", secondary: "someSkill" }
|
||||
>:=> (line 14, col 8) to (line 17, col 60)
|
||||
--------------------------------
|
||||
14 > skills: {
|
||||
|
||||
~~~~~~~~~~~~~~~ => Pos: (276 to 290) SpanInfo: {"start":284,"length":161}
|
||||
>skills: {
|
||||
> primary: primaryA = "primary",
|
||||
> secondary: secondaryA = "secondary"
|
||||
> } = { primary: "SomeSkill", secondary: "someSkill" }
|
||||
>:=> (line 14, col 8) to (line 17, col 60)
|
||||
14 > skills: {
|
||||
|
||||
~~~ => Pos: (291 to 293) SpanInfo: {"start":306,"length":29}
|
||||
>primary: primaryA = "primary"
|
||||
>:=> (line 15, col 12) to (line 15, col 41)
|
||||
--------------------------------
|
||||
15 > primary: primaryA = "primary",
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (294 to 336) SpanInfo: {"start":306,"length":29}
|
||||
>primary: primaryA = "primary"
|
||||
>:=> (line 15, col 12) to (line 15, col 41)
|
||||
--------------------------------
|
||||
16 > secondary: secondaryA = "secondary"
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (337 to 384) SpanInfo: {"start":349,"length":35}
|
||||
>secondary: secondaryA = "secondary"
|
||||
>:=> (line 16, col 12) to (line 16, col 47)
|
||||
--------------------------------
|
||||
17 > } = { primary: "SomeSkill", secondary: "someSkill" }
|
||||
|
||||
~~~~~~~~~ => Pos: (385 to 393) SpanInfo: {"start":349,"length":35}
|
||||
>secondary: secondaryA = "secondary"
|
||||
>:=> (line 16, col 12) to (line 16, col 47)
|
||||
17 > } = { primary: "SomeSkill", secondary: "someSkill" }
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (394 to 445) SpanInfo: {"start":284,"length":161}
|
||||
>skills: {
|
||||
> primary: primaryA = "primary",
|
||||
> secondary: secondaryA = "secondary"
|
||||
> } = { primary: "SomeSkill", secondary: "someSkill" }
|
||||
>:=> (line 14, col 8) to (line 17, col 60)
|
||||
--------------------------------
|
||||
18 > }: Robot = robotA) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~ => Pos: (446 to 467) SpanInfo: {"start":284,"length":161}
|
||||
>skills: {
|
||||
> primary: primaryA = "primary",
|
||||
> secondary: secondaryA = "secondary"
|
||||
> } = { primary: "SomeSkill", secondary: "someSkill" }
|
||||
>:=> (line 14, col 8) to (line 17, col 60)
|
||||
18 > }: Robot = robotA) {
|
||||
|
||||
~~~ => Pos: (468 to 470) SpanInfo: {"start":475,"length":21}
|
||||
>console.log(primaryA)
|
||||
>:=> (line 19, col 4) to (line 19, col 25)
|
||||
--------------------------------
|
||||
19 > console.log(primaryA);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (471 to 497) SpanInfo: {"start":475,"length":21}
|
||||
>console.log(primaryA)
|
||||
>:=> (line 19, col 4) to (line 19, col 25)
|
||||
--------------------------------
|
||||
20 >}
|
||||
|
||||
~~ => Pos: (498 to 499) SpanInfo: {"start":498,"length":1}
|
||||
>}
|
||||
>:=> (line 20, col 0) to (line 20, col 1)
|
||||
--------------------------------
|
||||
21 >function foo2(
|
||||
|
||||
~~~~~~~~~~~~~~~ => Pos: (500 to 514) SpanInfo: {"start":750,"length":23}
|
||||
>console.log(secondaryB)
|
||||
>:=> (line 29, col 4) to (line 29, col 27)
|
||||
--------------------------------
|
||||
22 > {
|
||||
|
||||
~~~~~~ => Pos: (515 to 520) SpanInfo: {"start":529,"length":20}
|
||||
>name: nameC = "name"
|
||||
>:=> (line 23, col 8) to (line 23, col 28)
|
||||
--------------------------------
|
||||
23 > name: nameC = "name",
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (521 to 550) SpanInfo: {"start":529,"length":20}
|
||||
>name: nameC = "name"
|
||||
>:=> (line 23, col 8) to (line 23, col 28)
|
||||
--------------------------------
|
||||
24 > skills: {
|
||||
|
||||
~~~~~~~~~~~~~~~ => Pos: (551 to 565) SpanInfo: {"start":559,"length":161}
|
||||
>skills: {
|
||||
> primary: primaryB = "primary",
|
||||
> secondary: secondaryB = "secondary"
|
||||
> } = { primary: "SomeSkill", secondary: "someSkill" }
|
||||
>:=> (line 24, col 8) to (line 27, col 60)
|
||||
24 > skills: {
|
||||
|
||||
~~~ => Pos: (566 to 568) SpanInfo: {"start":581,"length":29}
|
||||
>primary: primaryB = "primary"
|
||||
>:=> (line 25, col 12) to (line 25, col 41)
|
||||
--------------------------------
|
||||
25 > primary: primaryB = "primary",
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (569 to 611) SpanInfo: {"start":581,"length":29}
|
||||
>primary: primaryB = "primary"
|
||||
>:=> (line 25, col 12) to (line 25, col 41)
|
||||
--------------------------------
|
||||
26 > secondary: secondaryB = "secondary"
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (612 to 659) SpanInfo: {"start":624,"length":35}
|
||||
>secondary: secondaryB = "secondary"
|
||||
>:=> (line 26, col 12) to (line 26, col 47)
|
||||
--------------------------------
|
||||
27 > } = { primary: "SomeSkill", secondary: "someSkill" }
|
||||
|
||||
~~~~~~~~~ => Pos: (660 to 668) SpanInfo: {"start":624,"length":35}
|
||||
>secondary: secondaryB = "secondary"
|
||||
>:=> (line 26, col 12) to (line 26, col 47)
|
||||
27 > } = { primary: "SomeSkill", secondary: "someSkill" }
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (669 to 720) SpanInfo: {"start":559,"length":161}
|
||||
>skills: {
|
||||
> primary: primaryB = "primary",
|
||||
> secondary: secondaryB = "secondary"
|
||||
> } = { primary: "SomeSkill", secondary: "someSkill" }
|
||||
>:=> (line 24, col 8) to (line 27, col 60)
|
||||
--------------------------------
|
||||
28 > }: Robot = robotA) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~ => Pos: (721 to 742) SpanInfo: {"start":559,"length":161}
|
||||
>skills: {
|
||||
> primary: primaryB = "primary",
|
||||
> secondary: secondaryB = "secondary"
|
||||
> } = { primary: "SomeSkill", secondary: "someSkill" }
|
||||
>:=> (line 24, col 8) to (line 27, col 60)
|
||||
28 > }: Robot = robotA) {
|
||||
|
||||
~~~ => Pos: (743 to 745) SpanInfo: {"start":750,"length":23}
|
||||
>console.log(secondaryB)
|
||||
>:=> (line 29, col 4) to (line 29, col 27)
|
||||
--------------------------------
|
||||
29 > console.log(secondaryB);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (746 to 774) SpanInfo: {"start":750,"length":23}
|
||||
>console.log(secondaryB)
|
||||
>:=> (line 29, col 4) to (line 29, col 27)
|
||||
--------------------------------
|
||||
30 >}
|
||||
|
||||
~~ => Pos: (775 to 776) SpanInfo: {"start":775,"length":1}
|
||||
>}
|
||||
>:=> (line 30, col 0) to (line 30, col 1)
|
||||
--------------------------------
|
||||
31 >function foo3({ skills = { primary: "SomeSkill", secondary: "someSkill" } }: Robot = robotA) {
|
||||
|
||||
~~~~~~~~~~~~~~ => Pos: (777 to 790) SpanInfo: {"start":877,"length":27}
|
||||
>console.log(skills.primary)
|
||||
>:=> (line 32, col 4) to (line 32, col 31)
|
||||
31 >function foo3({ skills = { primary: "SomeSkill", secondary: "someSkill" } }: Robot = robotA) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (791 to 869) SpanInfo: {"start":793,"length":57}
|
||||
>skills = { primary: "SomeSkill", secondary: "someSkill" }
|
||||
>:=> (line 31, col 16) to (line 31, col 73)
|
||||
31 >function foo3({ skills = { primary: "SomeSkill", secondary: "someSkill" } }: Robot = robotA) {
|
||||
|
||||
~~~=> Pos: (870 to 872) SpanInfo: {"start":877,"length":27}
|
||||
>console.log(skills.primary)
|
||||
>:=> (line 32, col 4) to (line 32, col 31)
|
||||
--------------------------------
|
||||
32 > console.log(skills.primary);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (873 to 905) SpanInfo: {"start":877,"length":27}
|
||||
>console.log(skills.primary)
|
||||
>:=> (line 32, col 4) to (line 32, col 31)
|
||||
--------------------------------
|
||||
33 >}
|
||||
|
||||
~~ => Pos: (906 to 907) SpanInfo: {"start":906,"length":1}
|
||||
>}
|
||||
>:=> (line 33, col 0) to (line 33, col 1)
|
||||
--------------------------------
|
||||
34 >foo1(robotA);
|
||||
|
||||
~~~~~~~~~~~~~~ => Pos: (908 to 921) SpanInfo: {"start":908,"length":12}
|
||||
>foo1(robotA)
|
||||
>:=> (line 34, col 0) to (line 34, col 12)
|
||||
--------------------------------
|
||||
35 >foo1({ name: "Edger", skills: { primary: "edging", secondary: "branch trimming" } });
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (922 to 1007) SpanInfo: {"start":922,"length":84}
|
||||
>foo1({ name: "Edger", skills: { primary: "edging", secondary: "branch trimming" } })
|
||||
>:=> (line 35, col 0) to (line 35, col 84)
|
||||
--------------------------------
|
||||
36 >foo2(robotA);
|
||||
|
||||
~~~~~~~~~~~~~~ => Pos: (1008 to 1021) SpanInfo: {"start":1008,"length":12}
|
||||
>foo2(robotA)
|
||||
>:=> (line 36, col 0) to (line 36, col 12)
|
||||
--------------------------------
|
||||
37 >foo2({ name: "Edger", skills: { primary: "edging", secondary: "branch trimming" } });
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (1022 to 1107) SpanInfo: {"start":1022,"length":84}
|
||||
>foo2({ name: "Edger", skills: { primary: "edging", secondary: "branch trimming" } })
|
||||
>:=> (line 37, col 0) to (line 37, col 84)
|
||||
--------------------------------
|
||||
38 >foo3(robotA);
|
||||
|
||||
~~~~~~~~~~~~~~ => Pos: (1108 to 1121) SpanInfo: {"start":1108,"length":12}
|
||||
>foo3(robotA)
|
||||
>:=> (line 38, col 0) to (line 38, col 12)
|
||||
--------------------------------
|
||||
39 >foo3({ name: "Edger", skills: { primary: "edging", secondary: "branch trimming" } });
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (1122 to 1206) SpanInfo: {"start":1122,"length":84}
|
||||
>foo3({ name: "Edger", skills: { primary: "edging", secondary: "branch trimming" } })
|
||||
>:=> (line 39, col 0) to (line 39, col 84)
|
||||
@@ -0,0 +1,164 @@
|
||||
|
||||
1 >interface Robot {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~ => Pos: (0 to 17) SpanInfo: undefined
|
||||
--------------------------------
|
||||
2 > name: string;
|
||||
|
||||
~~~~~~~~~~~~~~~~~~ => Pos: (18 to 35) SpanInfo: undefined
|
||||
--------------------------------
|
||||
3 > skill: string;
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~ => Pos: (36 to 54) SpanInfo: undefined
|
||||
--------------------------------
|
||||
4 >}
|
||||
|
||||
~~ => Pos: (55 to 56) SpanInfo: undefined
|
||||
--------------------------------
|
||||
5 >declare var console: {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (57 to 79) SpanInfo: undefined
|
||||
--------------------------------
|
||||
6 > log(msg: string): void;
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (80 to 107) SpanInfo: undefined
|
||||
--------------------------------
|
||||
7 >}
|
||||
|
||||
~~ => Pos: (108 to 109) SpanInfo: undefined
|
||||
--------------------------------
|
||||
8 >var hello = "hello";
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~ => Pos: (110 to 130) SpanInfo: {"start":110,"length":19}
|
||||
>var hello = "hello"
|
||||
>:=> (line 8, col 0) to (line 8, col 19)
|
||||
--------------------------------
|
||||
9 >var robotA: Robot = { name: "mower", skill: "mowing" };
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (131 to 186) SpanInfo: {"start":131,"length":54}
|
||||
>var robotA: Robot = { name: "mower", skill: "mowing" }
|
||||
>:=> (line 9, col 0) to (line 9, col 54)
|
||||
--------------------------------
|
||||
10 >function foo1({ name: nameA }: Robot) {
|
||||
|
||||
~~~~~~~~~~~~~~ => Pos: (187 to 200) SpanInfo: {"start":231,"length":18}
|
||||
>console.log(nameA)
|
||||
>:=> (line 11, col 4) to (line 11, col 22)
|
||||
10 >function foo1({ name: nameA }: Robot) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (201 to 223) SpanInfo: {"start":203,"length":11}
|
||||
>name: nameA
|
||||
>:=> (line 10, col 16) to (line 10, col 27)
|
||||
10 >function foo1({ name: nameA }: Robot) {
|
||||
|
||||
~~~ => Pos: (224 to 226) SpanInfo: {"start":231,"length":18}
|
||||
>console.log(nameA)
|
||||
>:=> (line 11, col 4) to (line 11, col 22)
|
||||
--------------------------------
|
||||
11 > console.log(nameA);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (227 to 250) SpanInfo: {"start":231,"length":18}
|
||||
>console.log(nameA)
|
||||
>:=> (line 11, col 4) to (line 11, col 22)
|
||||
--------------------------------
|
||||
12 >}
|
||||
|
||||
~~ => Pos: (251 to 252) SpanInfo: {"start":251,"length":1}
|
||||
>}
|
||||
>:=> (line 12, col 0) to (line 12, col 1)
|
||||
--------------------------------
|
||||
13 >function foo2({ name: nameB, skill: skillB }: Robot) {
|
||||
|
||||
~~~~~~~~~~~~~~ => Pos: (253 to 266) SpanInfo: {"start":312,"length":18}
|
||||
>console.log(nameB)
|
||||
>:=> (line 14, col 4) to (line 14, col 22)
|
||||
13 >function foo2({ name: nameB, skill: skillB }: Robot) {
|
||||
|
||||
~~~~~~~~~~~~~~ => Pos: (267 to 280) SpanInfo: {"start":269,"length":11}
|
||||
>name: nameB
|
||||
>:=> (line 13, col 16) to (line 13, col 27)
|
||||
13 >function foo2({ name: nameB, skill: skillB }: Robot) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (281 to 304) SpanInfo: {"start":282,"length":13}
|
||||
>skill: skillB
|
||||
>:=> (line 13, col 29) to (line 13, col 42)
|
||||
13 >function foo2({ name: nameB, skill: skillB }: Robot) {
|
||||
|
||||
~~~=> Pos: (305 to 307) SpanInfo: {"start":312,"length":18}
|
||||
>console.log(nameB)
|
||||
>:=> (line 14, col 4) to (line 14, col 22)
|
||||
--------------------------------
|
||||
14 > console.log(nameB);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (308 to 331) SpanInfo: {"start":312,"length":18}
|
||||
>console.log(nameB)
|
||||
>:=> (line 14, col 4) to (line 14, col 22)
|
||||
--------------------------------
|
||||
15 >}
|
||||
|
||||
~~ => Pos: (332 to 333) SpanInfo: {"start":332,"length":1}
|
||||
>}
|
||||
>:=> (line 15, col 0) to (line 15, col 1)
|
||||
--------------------------------
|
||||
16 >function foo3({ name }: Robot) {
|
||||
|
||||
~~~~~~~~~~~~~~ => Pos: (334 to 347) SpanInfo: {"start":371,"length":17}
|
||||
>console.log(name)
|
||||
>:=> (line 17, col 4) to (line 17, col 21)
|
||||
16 >function foo3({ name }: Robot) {
|
||||
|
||||
~~~~~~~~~~~~~~~~ => Pos: (348 to 363) SpanInfo: {"start":350,"length":4}
|
||||
>name
|
||||
>:=> (line 16, col 16) to (line 16, col 20)
|
||||
16 >function foo3({ name }: Robot) {
|
||||
|
||||
~~~ => Pos: (364 to 366) SpanInfo: {"start":371,"length":17}
|
||||
>console.log(name)
|
||||
>:=> (line 17, col 4) to (line 17, col 21)
|
||||
--------------------------------
|
||||
17 > console.log(name);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (367 to 389) SpanInfo: {"start":371,"length":17}
|
||||
>console.log(name)
|
||||
>:=> (line 17, col 4) to (line 17, col 21)
|
||||
--------------------------------
|
||||
18 >}
|
||||
|
||||
~~ => Pos: (390 to 391) SpanInfo: {"start":390,"length":1}
|
||||
>}
|
||||
>:=> (line 18, col 0) to (line 18, col 1)
|
||||
--------------------------------
|
||||
19 >foo1(robotA);
|
||||
|
||||
~~~~~~~~~~~~~~ => Pos: (392 to 405) SpanInfo: {"start":392,"length":12}
|
||||
>foo1(robotA)
|
||||
>:=> (line 19, col 0) to (line 19, col 12)
|
||||
--------------------------------
|
||||
20 >foo1({ name: "Edger", skill: "cutting edges" });
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (406 to 454) SpanInfo: {"start":406,"length":47}
|
||||
>foo1({ name: "Edger", skill: "cutting edges" })
|
||||
>:=> (line 20, col 0) to (line 20, col 47)
|
||||
--------------------------------
|
||||
21 >foo2(robotA);
|
||||
|
||||
~~~~~~~~~~~~~~ => Pos: (455 to 468) SpanInfo: {"start":455,"length":12}
|
||||
>foo2(robotA)
|
||||
>:=> (line 21, col 0) to (line 21, col 12)
|
||||
--------------------------------
|
||||
22 >foo2({ name: "Edger", skill: "cutting edges" });
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (469 to 517) SpanInfo: {"start":469,"length":47}
|
||||
>foo2({ name: "Edger", skill: "cutting edges" })
|
||||
>:=> (line 22, col 0) to (line 22, col 47)
|
||||
--------------------------------
|
||||
23 >foo3(robotA);
|
||||
|
||||
~~~~~~~~~~~~~~ => Pos: (518 to 531) SpanInfo: {"start":518,"length":12}
|
||||
>foo3(robotA)
|
||||
>:=> (line 23, col 0) to (line 23, col 12)
|
||||
--------------------------------
|
||||
24 >foo3({ name: "Edger", skill: "cutting edges" });
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (532 to 579) SpanInfo: {"start":532,"length":47}
|
||||
>foo3({ name: "Edger", skill: "cutting edges" })
|
||||
>:=> (line 24, col 0) to (line 24, col 47)
|
||||
+164
@@ -0,0 +1,164 @@
|
||||
|
||||
1 >interface Robot {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~ => Pos: (0 to 17) SpanInfo: undefined
|
||||
--------------------------------
|
||||
2 > name?: string;
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~ => Pos: (18 to 36) SpanInfo: undefined
|
||||
--------------------------------
|
||||
3 > skill?: string;
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~ => Pos: (37 to 56) SpanInfo: undefined
|
||||
--------------------------------
|
||||
4 >}
|
||||
|
||||
~~ => Pos: (57 to 58) SpanInfo: undefined
|
||||
--------------------------------
|
||||
5 >declare var console: {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (59 to 81) SpanInfo: undefined
|
||||
--------------------------------
|
||||
6 > log(msg: string): void;
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (82 to 109) SpanInfo: undefined
|
||||
--------------------------------
|
||||
7 >}
|
||||
|
||||
~~ => Pos: (110 to 111) SpanInfo: undefined
|
||||
--------------------------------
|
||||
8 >var hello = "hello";
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~ => Pos: (112 to 132) SpanInfo: {"start":112,"length":19}
|
||||
>var hello = "hello"
|
||||
>:=> (line 8, col 0) to (line 8, col 19)
|
||||
--------------------------------
|
||||
9 >var robotA: Robot = { name: "mower", skill: "mowing" };
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (133 to 188) SpanInfo: {"start":133,"length":54}
|
||||
>var robotA: Robot = { name: "mower", skill: "mowing" }
|
||||
>:=> (line 9, col 0) to (line 9, col 54)
|
||||
--------------------------------
|
||||
10 >function foo1({ name: nameA = "<NoName>" }: Robot = { }) {
|
||||
|
||||
~~~~~~~~~~~~~~ => Pos: (189 to 202) SpanInfo: {"start":252,"length":18}
|
||||
>console.log(nameA)
|
||||
>:=> (line 11, col 4) to (line 11, col 22)
|
||||
10 >function foo1({ name: nameA = "<NoName>" }: Robot = { }) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (203 to 244) SpanInfo: {"start":205,"length":24}
|
||||
>name: nameA = "<NoName>"
|
||||
>:=> (line 10, col 16) to (line 10, col 40)
|
||||
10 >function foo1({ name: nameA = "<NoName>" }: Robot = { }) {
|
||||
|
||||
~~~=> Pos: (245 to 247) SpanInfo: {"start":252,"length":18}
|
||||
>console.log(nameA)
|
||||
>:=> (line 11, col 4) to (line 11, col 22)
|
||||
--------------------------------
|
||||
11 > console.log(nameA);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (248 to 271) SpanInfo: {"start":252,"length":18}
|
||||
>console.log(nameA)
|
||||
>:=> (line 11, col 4) to (line 11, col 22)
|
||||
--------------------------------
|
||||
12 >}
|
||||
|
||||
~~ => Pos: (272 to 273) SpanInfo: {"start":272,"length":1}
|
||||
>}
|
||||
>:=> (line 12, col 0) to (line 12, col 1)
|
||||
--------------------------------
|
||||
13 >function foo2({ name: nameB = "<NoName>", skill: skillB = "noSkill" }: Robot = {}) {
|
||||
|
||||
~~~~~~~~~~~~~~ => Pos: (274 to 287) SpanInfo: {"start":363,"length":18}
|
||||
>console.log(nameB)
|
||||
>:=> (line 14, col 4) to (line 14, col 22)
|
||||
13 >function foo2({ name: nameB = "<NoName>", skill: skillB = "noSkill" }: Robot = {}) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (288 to 314) SpanInfo: {"start":290,"length":24}
|
||||
>name: nameB = "<NoName>"
|
||||
>:=> (line 13, col 16) to (line 13, col 40)
|
||||
13 >function foo2({ name: nameB = "<NoName>", skill: skillB = "noSkill" }: Robot = {}) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (315 to 355) SpanInfo: {"start":316,"length":25}
|
||||
>skill: skillB = "noSkill"
|
||||
>:=> (line 13, col 42) to (line 13, col 67)
|
||||
13 >function foo2({ name: nameB = "<NoName>", skill: skillB = "noSkill" }: Robot = {}) {
|
||||
|
||||
~~~=> Pos: (356 to 358) SpanInfo: {"start":363,"length":18}
|
||||
>console.log(nameB)
|
||||
>:=> (line 14, col 4) to (line 14, col 22)
|
||||
--------------------------------
|
||||
14 > console.log(nameB);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (359 to 382) SpanInfo: {"start":363,"length":18}
|
||||
>console.log(nameB)
|
||||
>:=> (line 14, col 4) to (line 14, col 22)
|
||||
--------------------------------
|
||||
15 >}
|
||||
|
||||
~~ => Pos: (383 to 384) SpanInfo: {"start":383,"length":1}
|
||||
>}
|
||||
>:=> (line 15, col 0) to (line 15, col 1)
|
||||
--------------------------------
|
||||
16 >function foo3({ name = "<NoName>" }: Robot = {}) {
|
||||
|
||||
~~~~~~~~~~~~~~ => Pos: (385 to 398) SpanInfo: {"start":440,"length":17}
|
||||
>console.log(name)
|
||||
>:=> (line 17, col 4) to (line 17, col 21)
|
||||
16 >function foo3({ name = "<NoName>" }: Robot = {}) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (399 to 432) SpanInfo: {"start":401,"length":17}
|
||||
>name = "<NoName>"
|
||||
>:=> (line 16, col 16) to (line 16, col 33)
|
||||
16 >function foo3({ name = "<NoName>" }: Robot = {}) {
|
||||
|
||||
~~~=> Pos: (433 to 435) SpanInfo: {"start":440,"length":17}
|
||||
>console.log(name)
|
||||
>:=> (line 17, col 4) to (line 17, col 21)
|
||||
--------------------------------
|
||||
17 > console.log(name);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (436 to 458) SpanInfo: {"start":440,"length":17}
|
||||
>console.log(name)
|
||||
>:=> (line 17, col 4) to (line 17, col 21)
|
||||
--------------------------------
|
||||
18 >}
|
||||
|
||||
~~ => Pos: (459 to 460) SpanInfo: {"start":459,"length":1}
|
||||
>}
|
||||
>:=> (line 18, col 0) to (line 18, col 1)
|
||||
--------------------------------
|
||||
19 >foo1(robotA);
|
||||
|
||||
~~~~~~~~~~~~~~ => Pos: (461 to 474) SpanInfo: {"start":461,"length":12}
|
||||
>foo1(robotA)
|
||||
>:=> (line 19, col 0) to (line 19, col 12)
|
||||
--------------------------------
|
||||
20 >foo1({ name: "Edger", skill: "cutting edges" });
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (475 to 523) SpanInfo: {"start":475,"length":47}
|
||||
>foo1({ name: "Edger", skill: "cutting edges" })
|
||||
>:=> (line 20, col 0) to (line 20, col 47)
|
||||
--------------------------------
|
||||
21 >foo2(robotA);
|
||||
|
||||
~~~~~~~~~~~~~~ => Pos: (524 to 537) SpanInfo: {"start":524,"length":12}
|
||||
>foo2(robotA)
|
||||
>:=> (line 21, col 0) to (line 21, col 12)
|
||||
--------------------------------
|
||||
22 >foo2({ name: "Edger", skill: "cutting edges" });
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (538 to 586) SpanInfo: {"start":538,"length":47}
|
||||
>foo2({ name: "Edger", skill: "cutting edges" })
|
||||
>:=> (line 22, col 0) to (line 22, col 47)
|
||||
--------------------------------
|
||||
23 >foo3(robotA);
|
||||
|
||||
~~~~~~~~~~~~~~ => Pos: (587 to 600) SpanInfo: {"start":587,"length":12}
|
||||
>foo3(robotA)
|
||||
>:=> (line 23, col 0) to (line 23, col 12)
|
||||
--------------------------------
|
||||
24 >foo3({ name: "Edger", skill: "cutting edges" });
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (601 to 648) SpanInfo: {"start":601,"length":47}
|
||||
>foo3({ name: "Edger", skill: "cutting edges" })
|
||||
>:=> (line 24, col 0) to (line 24, col 47)
|
||||
@@ -0,0 +1,109 @@
|
||||
|
||||
1 >interface Robot {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~ => Pos: (0 to 17) SpanInfo: undefined
|
||||
--------------------------------
|
||||
2 > name: string;
|
||||
|
||||
~~~~~~~~~~~~~~~~~~ => Pos: (18 to 35) SpanInfo: undefined
|
||||
--------------------------------
|
||||
3 > skill: string;
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~ => Pos: (36 to 54) SpanInfo: undefined
|
||||
--------------------------------
|
||||
4 >}
|
||||
|
||||
~~ => Pos: (55 to 56) SpanInfo: undefined
|
||||
--------------------------------
|
||||
5 >declare var console: {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (57 to 79) SpanInfo: undefined
|
||||
--------------------------------
|
||||
6 > log(msg: string): void;
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (80 to 107) SpanInfo: undefined
|
||||
--------------------------------
|
||||
7 >}
|
||||
|
||||
~~ => Pos: (108 to 109) SpanInfo: undefined
|
||||
--------------------------------
|
||||
8 >var hello = "hello";
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~ => Pos: (110 to 130) SpanInfo: {"start":110,"length":19}
|
||||
>var hello = "hello"
|
||||
>:=> (line 8, col 0) to (line 8, col 19)
|
||||
--------------------------------
|
||||
9 >var robotA: Robot = { name: "mower", skill: "mowing" };
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (131 to 186) SpanInfo: {"start":131,"length":54}
|
||||
>var robotA: Robot = { name: "mower", skill: "mowing" }
|
||||
>:=> (line 9, col 0) to (line 9, col 54)
|
||||
--------------------------------
|
||||
10 >var robotB: Robot = { name: "trimmer", skill: "trimming" };
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (187 to 246) SpanInfo: {"start":187,"length":58}
|
||||
>var robotB: Robot = { name: "trimmer", skill: "trimming" }
|
||||
>:=> (line 10, col 0) to (line 10, col 58)
|
||||
--------------------------------
|
||||
11 >var { name: nameA } = robotA;
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (247 to 276) SpanInfo: {"start":253,"length":11}
|
||||
>name: nameA
|
||||
>:=> (line 11, col 6) to (line 11, col 17)
|
||||
--------------------------------
|
||||
12 >var { name: nameB, skill: skillB } = robotB;
|
||||
|
||||
~~~~~~~~~~~~~~~~~~ => Pos: (277 to 294) SpanInfo: {"start":283,"length":11}
|
||||
>name: nameB
|
||||
>:=> (line 12, col 6) to (line 12, col 17)
|
||||
12 >var { name: nameB, skill: skillB } = robotB;
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (295 to 321) SpanInfo: {"start":296,"length":13}
|
||||
>skill: skillB
|
||||
>:=> (line 12, col 19) to (line 12, col 32)
|
||||
--------------------------------
|
||||
13 >var { name: nameC, skill: skillC } = { name: "Edger", skill: "cutting edges" };
|
||||
|
||||
~~~~~~~~~~~~~~~~~~ => Pos: (322 to 339) SpanInfo: {"start":328,"length":11}
|
||||
>name: nameC
|
||||
>:=> (line 13, col 6) to (line 13, col 17)
|
||||
13 >var { name: nameC, skill: skillC } = { name: "Edger", skill: "cutting edges" };
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (340 to 401) SpanInfo: {"start":341,"length":13}
|
||||
>skill: skillC
|
||||
>:=> (line 13, col 19) to (line 13, col 32)
|
||||
--------------------------------
|
||||
14 >if (nameA == nameB) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~ => Pos: (402 to 423) SpanInfo: {"start":402,"length":19}
|
||||
>if (nameA == nameB)
|
||||
>:=> (line 14, col 0) to (line 14, col 19)
|
||||
--------------------------------
|
||||
15 > console.log(skillB);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (424 to 448) SpanInfo: {"start":428,"length":19}
|
||||
>console.log(skillB)
|
||||
>:=> (line 15, col 4) to (line 15, col 23)
|
||||
--------------------------------
|
||||
16 >}
|
||||
|
||||
~~ => Pos: (449 to 450) SpanInfo: {"start":428,"length":19}
|
||||
>console.log(skillB)
|
||||
>:=> (line 15, col 4) to (line 15, col 23)
|
||||
--------------------------------
|
||||
17 >else {
|
||||
|
||||
~~~~~~~ => Pos: (451 to 457) SpanInfo: {"start":462,"length":18}
|
||||
>console.log(nameC)
|
||||
>:=> (line 18, col 4) to (line 18, col 22)
|
||||
--------------------------------
|
||||
18 > console.log(nameC);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (458 to 481) SpanInfo: {"start":462,"length":18}
|
||||
>console.log(nameC)
|
||||
>:=> (line 18, col 4) to (line 18, col 22)
|
||||
--------------------------------
|
||||
19 >}
|
||||
~ => Pos: (482 to 482) SpanInfo: {"start":462,"length":18}
|
||||
>console.log(nameC)
|
||||
>:=> (line 18, col 4) to (line 18, col 22)
|
||||
@@ -0,0 +1,227 @@
|
||||
|
||||
1 >interface Robot {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~ => Pos: (0 to 17) SpanInfo: undefined
|
||||
--------------------------------
|
||||
2 > name: string;
|
||||
|
||||
~~~~~~~~~~~~~~~~~~ => Pos: (18 to 35) SpanInfo: undefined
|
||||
--------------------------------
|
||||
3 > skill: string;
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~ => Pos: (36 to 54) SpanInfo: undefined
|
||||
--------------------------------
|
||||
4 >}
|
||||
|
||||
~~ => Pos: (55 to 56) SpanInfo: undefined
|
||||
--------------------------------
|
||||
5 >declare var console: {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (57 to 79) SpanInfo: undefined
|
||||
--------------------------------
|
||||
6 > log(msg: string): void;
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (80 to 107) SpanInfo: undefined
|
||||
--------------------------------
|
||||
7 >}
|
||||
|
||||
~~ => Pos: (108 to 109) SpanInfo: undefined
|
||||
--------------------------------
|
||||
8 >var hello = "hello";
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~ => Pos: (110 to 130) SpanInfo: {"start":110,"length":19}
|
||||
>var hello = "hello"
|
||||
>:=> (line 8, col 0) to (line 8, col 19)
|
||||
--------------------------------
|
||||
9 >var robotA: Robot = { name: "mower", skill: "mowing" };
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (131 to 186) SpanInfo: {"start":131,"length":54}
|
||||
>var robotA: Robot = { name: "mower", skill: "mowing" }
|
||||
>:=> (line 9, col 0) to (line 9, col 54)
|
||||
--------------------------------
|
||||
10 >var robotB: Robot = { name: "trimmer", skill: "trimming" };
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (187 to 246) SpanInfo: {"start":187,"length":58}
|
||||
>var robotB: Robot = { name: "trimmer", skill: "trimming" }
|
||||
>:=> (line 10, col 0) to (line 10, col 58)
|
||||
--------------------------------
|
||||
11 >var a: string, { name: nameA } = robotA;
|
||||
|
||||
~~~~~~~~~~~~~~ => Pos: (247 to 260) SpanInfo: undefined
|
||||
11 >var a: string, { name: nameA } = robotA;
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (261 to 287) SpanInfo: {"start":264,"length":11}
|
||||
>name: nameA
|
||||
>:=> (line 11, col 17) to (line 11, col 28)
|
||||
--------------------------------
|
||||
12 >var b: string, { name: nameB, skill: skillB } = robotB;
|
||||
|
||||
~~~~~~~~~~~~~~ => Pos: (288 to 301) SpanInfo: undefined
|
||||
12 >var b: string, { name: nameB, skill: skillB } = robotB;
|
||||
|
||||
~~~~~~~~~~~~~~~ => Pos: (302 to 316) SpanInfo: {"start":305,"length":11}
|
||||
>name: nameB
|
||||
>:=> (line 12, col 17) to (line 12, col 28)
|
||||
12 >var b: string, { name: nameB, skill: skillB } = robotB;
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (317 to 343) SpanInfo: {"start":318,"length":13}
|
||||
>skill: skillB
|
||||
>:=> (line 12, col 30) to (line 12, col 43)
|
||||
--------------------------------
|
||||
13 >var c: string, { name: nameC, skill: skillC } = { name: "Edger", skill: "cutting edges" };
|
||||
|
||||
~~~~~~~~~~~~~~ => Pos: (344 to 357) SpanInfo: undefined
|
||||
13 >var c: string, { name: nameC, skill: skillC } = { name: "Edger", skill: "cutting edges" };
|
||||
|
||||
~~~~~~~~~~~~~~~ => Pos: (358 to 372) SpanInfo: {"start":361,"length":11}
|
||||
>name: nameC
|
||||
>:=> (line 13, col 17) to (line 13, col 28)
|
||||
13 >var c: string, { name: nameC, skill: skillC } = { name: "Edger", skill: "cutting edges" };
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (373 to 434) SpanInfo: {"start":374,"length":13}
|
||||
>skill: skillC
|
||||
>:=> (line 13, col 30) to (line 13, col 43)
|
||||
--------------------------------
|
||||
14 >
|
||||
|
||||
~ => Pos: (435 to 435) SpanInfo: undefined
|
||||
--------------------------------
|
||||
15 >var { name: nameA } = robotA, a = hello;
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (436 to 464) SpanInfo: {"start":442,"length":11}
|
||||
>name: nameA
|
||||
>:=> (line 15, col 6) to (line 15, col 17)
|
||||
15 >var { name: nameA } = robotA, a = hello;
|
||||
|
||||
~~~~~~~~~~~~ => Pos: (465 to 476) SpanInfo: {"start":466,"length":9}
|
||||
>a = hello
|
||||
>:=> (line 15, col 30) to (line 15, col 39)
|
||||
--------------------------------
|
||||
16 >var { name: nameB, skill: skillB } = robotB, b = " hello";
|
||||
|
||||
~~~~~~~~~~~~~~~~~~ => Pos: (477 to 494) SpanInfo: {"start":483,"length":11}
|
||||
>name: nameB
|
||||
>:=> (line 16, col 6) to (line 16, col 17)
|
||||
16 >var { name: nameB, skill: skillB } = robotB, b = " hello";
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (495 to 520) SpanInfo: {"start":496,"length":13}
|
||||
>skill: skillB
|
||||
>:=> (line 16, col 19) to (line 16, col 32)
|
||||
16 >var { name: nameB, skill: skillB } = robotB, b = " hello";
|
||||
|
||||
~~~~~~~~~~~~~~~=> Pos: (521 to 535) SpanInfo: {"start":522,"length":12}
|
||||
>b = " hello"
|
||||
>:=> (line 16, col 45) to (line 16, col 57)
|
||||
--------------------------------
|
||||
17 >var { name: nameC, skill: skillC } = { name: "Edger", skill: "cutting edges" }, c = hello;
|
||||
|
||||
~~~~~~~~~~~~~~~~~~ => Pos: (536 to 553) SpanInfo: {"start":542,"length":11}
|
||||
>name: nameC
|
||||
>:=> (line 17, col 6) to (line 17, col 17)
|
||||
17 >var { name: nameC, skill: skillC } = { name: "Edger", skill: "cutting edges" }, c = hello;
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (554 to 614) SpanInfo: {"start":555,"length":13}
|
||||
>skill: skillC
|
||||
>:=> (line 17, col 19) to (line 17, col 32)
|
||||
17 >var { name: nameC, skill: skillC } = { name: "Edger", skill: "cutting edges" }, c = hello;
|
||||
|
||||
~~~~~~~~~~~~=> Pos: (615 to 626) SpanInfo: {"start":616,"length":9}
|
||||
>c = hello
|
||||
>:=> (line 17, col 80) to (line 17, col 89)
|
||||
--------------------------------
|
||||
18 >
|
||||
|
||||
~ => Pos: (627 to 627) SpanInfo: undefined
|
||||
--------------------------------
|
||||
19 >var a = hello, { name: nameA } = robotA, a1= "hello";
|
||||
|
||||
~~~~~~~~~~~~~~ => Pos: (628 to 641) SpanInfo: {"start":628,"length":13}
|
||||
>var a = hello
|
||||
>:=> (line 19, col 0) to (line 19, col 13)
|
||||
19 >var a = hello, { name: nameA } = robotA, a1= "hello";
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (642 to 667) SpanInfo: {"start":645,"length":11}
|
||||
>name: nameA
|
||||
>:=> (line 19, col 17) to (line 19, col 28)
|
||||
19 >var a = hello, { name: nameA } = robotA, a1= "hello";
|
||||
|
||||
~~~~~~~~~~~~~~=> Pos: (668 to 681) SpanInfo: {"start":669,"length":11}
|
||||
>a1= "hello"
|
||||
>:=> (line 19, col 41) to (line 19, col 52)
|
||||
--------------------------------
|
||||
20 >var b = hello, { name: nameB, skill: skillB } = robotB, b1 = "hello";
|
||||
|
||||
~~~~~~~~~~~~~~ => Pos: (682 to 695) SpanInfo: {"start":682,"length":13}
|
||||
>var b = hello
|
||||
>:=> (line 20, col 0) to (line 20, col 13)
|
||||
20 >var b = hello, { name: nameB, skill: skillB } = robotB, b1 = "hello";
|
||||
|
||||
~~~~~~~~~~~~~~~ => Pos: (696 to 710) SpanInfo: {"start":699,"length":11}
|
||||
>name: nameB
|
||||
>:=> (line 20, col 17) to (line 20, col 28)
|
||||
20 >var b = hello, { name: nameB, skill: skillB } = robotB, b1 = "hello";
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (711 to 736) SpanInfo: {"start":712,"length":13}
|
||||
>skill: skillB
|
||||
>:=> (line 20, col 30) to (line 20, col 43)
|
||||
20 >var b = hello, { name: nameB, skill: skillB } = robotB, b1 = "hello";
|
||||
|
||||
~~~~~~~~~~~~~~~=> Pos: (737 to 751) SpanInfo: {"start":738,"length":12}
|
||||
>b1 = "hello"
|
||||
>:=> (line 20, col 56) to (line 20, col 68)
|
||||
--------------------------------
|
||||
21 >var c = hello, { name: nameC, skill: skillC } = { name: "Edger", skill: "cutting edges" }, c1 = hello;
|
||||
|
||||
~~~~~~~~~~~~~~ => Pos: (752 to 765) SpanInfo: {"start":752,"length":13}
|
||||
>var c = hello
|
||||
>:=> (line 21, col 0) to (line 21, col 13)
|
||||
21 >var c = hello, { name: nameC, skill: skillC } = { name: "Edger", skill: "cutting edges" }, c1 = hello;
|
||||
|
||||
~~~~~~~~~~~~~~~ => Pos: (766 to 780) SpanInfo: {"start":769,"length":11}
|
||||
>name: nameC
|
||||
>:=> (line 21, col 17) to (line 21, col 28)
|
||||
21 >var c = hello, { name: nameC, skill: skillC } = { name: "Edger", skill: "cutting edges" }, c1 = hello;
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (781 to 841) SpanInfo: {"start":782,"length":13}
|
||||
>skill: skillC
|
||||
>:=> (line 21, col 30) to (line 21, col 43)
|
||||
21 >var c = hello, { name: nameC, skill: skillC } = { name: "Edger", skill: "cutting edges" }, c1 = hello;
|
||||
|
||||
~~~~~~~~~~~~~=> Pos: (842 to 854) SpanInfo: {"start":843,"length":10}
|
||||
>c1 = hello
|
||||
>:=> (line 21, col 91) to (line 21, col 101)
|
||||
--------------------------------
|
||||
22 >if (nameA == nameB) {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~ => Pos: (855 to 876) SpanInfo: {"start":855,"length":19}
|
||||
>if (nameA == nameB)
|
||||
>:=> (line 22, col 0) to (line 22, col 19)
|
||||
--------------------------------
|
||||
23 > console.log(skillB);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (877 to 901) SpanInfo: {"start":881,"length":19}
|
||||
>console.log(skillB)
|
||||
>:=> (line 23, col 4) to (line 23, col 23)
|
||||
--------------------------------
|
||||
24 >}
|
||||
|
||||
~~ => Pos: (902 to 903) SpanInfo: {"start":881,"length":19}
|
||||
>console.log(skillB)
|
||||
>:=> (line 23, col 4) to (line 23, col 23)
|
||||
--------------------------------
|
||||
25 >else {
|
||||
|
||||
~~~~~~~ => Pos: (904 to 910) SpanInfo: {"start":915,"length":18}
|
||||
>console.log(nameC)
|
||||
>:=> (line 26, col 4) to (line 26, col 22)
|
||||
--------------------------------
|
||||
26 > console.log(nameC);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (911 to 934) SpanInfo: {"start":915,"length":18}
|
||||
>console.log(nameC)
|
||||
>:=> (line 26, col 4) to (line 26, col 22)
|
||||
--------------------------------
|
||||
27 >}
|
||||
~ => Pos: (935 to 935) SpanInfo: {"start":915,"length":18}
|
||||
>console.log(nameC)
|
||||
>:=> (line 26, col 4) to (line 26, col 22)
|
||||
+87
@@ -0,0 +1,87 @@
|
||||
|
||||
1 >declare var console: {
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (0 to 22) SpanInfo: undefined
|
||||
--------------------------------
|
||||
2 > log(msg: string): void;
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (23 to 50) SpanInfo: undefined
|
||||
--------------------------------
|
||||
3 >}
|
||||
|
||||
~~ => Pos: (51 to 52) SpanInfo: undefined
|
||||
--------------------------------
|
||||
4 >type Robot = [number, string, string];
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (53 to 91) SpanInfo: undefined
|
||||
--------------------------------
|
||||
5 >var robotA: Robot = [1, "mower", "mowing"];
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (92 to 135) SpanInfo: {"start":92,"length":42}
|
||||
>var robotA: Robot = [1, "mower", "mowing"]
|
||||
>:=> (line 5, col 0) to (line 5, col 42)
|
||||
--------------------------------
|
||||
6 >var robotB: Robot = [2, "trimmer", "trimming"];
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (136 to 183) SpanInfo: {"start":136,"length":46}
|
||||
>var robotB: Robot = [2, "trimmer", "trimming"]
|
||||
>:=> (line 6, col 0) to (line 6, col 46)
|
||||
--------------------------------
|
||||
7 >let [, nameA] = robotA;
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (184 to 207) SpanInfo: {"start":191,"length":5}
|
||||
>nameA
|
||||
>:=> (line 7, col 7) to (line 7, col 12)
|
||||
--------------------------------
|
||||
8 >let [numberB] = robotB;
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (208 to 231) SpanInfo: {"start":213,"length":7}
|
||||
>numberB
|
||||
>:=> (line 8, col 5) to (line 8, col 12)
|
||||
--------------------------------
|
||||
9 >let [numberA2, nameA2, skillA2] = robotA;
|
||||
|
||||
~~~~~~~~~~~~~~ => Pos: (232 to 245) SpanInfo: {"start":237,"length":8}
|
||||
>numberA2
|
||||
>:=> (line 9, col 5) to (line 9, col 13)
|
||||
9 >let [numberA2, nameA2, skillA2] = robotA;
|
||||
|
||||
~~~~~~~~ => Pos: (246 to 253) SpanInfo: {"start":247,"length":6}
|
||||
>nameA2
|
||||
>:=> (line 9, col 15) to (line 9, col 21)
|
||||
9 >let [numberA2, nameA2, skillA2] = robotA;
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~ => Pos: (254 to 273) SpanInfo: {"start":255,"length":7}
|
||||
>skillA2
|
||||
>:=> (line 9, col 23) to (line 9, col 30)
|
||||
--------------------------------
|
||||
10 >let [numberC2] = [3, "edging", "Trimming edges"];
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (274 to 323) SpanInfo: {"start":279,"length":8}
|
||||
>numberC2
|
||||
>:=> (line 10, col 5) to (line 10, col 13)
|
||||
--------------------------------
|
||||
11 >let [numberC, nameC, skillC] = [3, "edging", "Trimming edges"];
|
||||
|
||||
~~~~~~~~~~~~~ => Pos: (324 to 336) SpanInfo: {"start":329,"length":7}
|
||||
>numberC
|
||||
>:=> (line 11, col 5) to (line 11, col 12)
|
||||
11 >let [numberC, nameC, skillC] = [3, "edging", "Trimming edges"];
|
||||
|
||||
~~~~~~~ => Pos: (337 to 343) SpanInfo: {"start":338,"length":5}
|
||||
>nameC
|
||||
>:=> (line 11, col 14) to (line 11, col 19)
|
||||
11 >let [numberC, nameC, skillC] = [3, "edging", "Trimming edges"];
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (344 to 387) SpanInfo: {"start":345,"length":6}
|
||||
>skillC
|
||||
>:=> (line 11, col 21) to (line 11, col 27)
|
||||
--------------------------------
|
||||
12 >let [numberA3, ...robotAInfo] = robotA;
|
||||
~~~~~~~~~~~~~~ => Pos: (388 to 401) SpanInfo: {"start":393,"length":8}
|
||||
>numberA3
|
||||
>:=> (line 12, col 5) to (line 12, col 13)
|
||||
12 >let [numberA3, ...robotAInfo] = robotA;
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (402 to 426) SpanInfo: {"start":403,"length":13}
|
||||
>...robotAInfo
|
||||
>:=> (line 12, col 15) to (line 12, col 28)
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user