[Transforms] Merge master 06/06/2016 (#8991)
* Remove check narrowing only certain types, add test showing issues with this
* string literal case test
* Reconcile fix with CFA work
* Defaultable -> NotNarrowable to align with use
* Missed a defaultable in comments
* Add test for narrowing to unions of string literals
* Rewrite isInStringLiteral to accomodate for unterminated strings
* Refactor signatureHelp to expose helper functions
* Add support for completion in string literals
* Remove unused check
* Use const instead of let
* Fix error
* Formatting changes
* Use shorthand properties
* Add failing test for #8738
* Sort baseline reference identifier by name
* Detects assignment to internal module export clause, fixes #8738
* add SharedArrayBuffer
fix
* Factor out assignment op check
* Add test for composite assignment
* Factor out the behaviour and handles x++ and ++x
* Handles ES3 default as identifier name
* Fix missing else statement
* isNameOfExportedDeclarationInNonES6Module
* Reorder options alphabetically
* Mark diagnostics, and skipDefaultLibCheck as internal
* Allow an import of "foo.js" to be matched by a file "foo.ts"
* Improve loadModuleFromFile code
* Respond to PR comments
* Respond to more PR comments
* Fix test
* Actually merge from master
* Revert to old tryLoad implementation
* Run fixupParentReferences when parsing isolated jsDocComment
* initial revision of unit test support for project system in tsserver
* Allow wildcard ("*") patterns in ambient module declarations
* Add non-widening forms of null and undefined
* Create separate control flows for property declarations with initializers
* Add regression test
* Allow trailing commas in function parameter and argument lists
* Add tests
* Remove unused variable
* Add null check and CR feedback
* Support shorthand ambient module declarations
* Revert "Merge pull request #7235 from weswigham/narrow-all-types"
This reverts commit ef0f6c8fe4f94a7e294cfe42d7025c9dca6535d5, reversing
changes made to 9f087cb62ade7a879e23c229df752fc8f87d679c.
* reuse the fixupParentReferences function
* Improve typing of && operator with --strictNullChecks
* Add test
* Respond to PR comments
* Respond to PR comments
* Add merging tests
* Use a function `stringify` to simplify calls to `JSON.stringify(xyz, undefined, 2)`
* Update tests
* Fix mistake
* Include indent in navigation bar protocol
Previously navbar01 test had indents when run in the browser but not when run from node. Now they run the same.
* Remove unnecessary restrictions in property access narrowing
* Fix fourslash test
* Add regression test
* Consider property declarations to be control flow containers
* Adding regression test
* Remove restriction on --target es5 and --module es6
* change type definition for Object.create
* Fix signature help
* Add "implicit any" warning for shorthand ambient modules
* Remove trailing whitespace
* Support using string values in enums for CompilerOptions in transpile methods
* Remove trailing whitespace in jakefile
* Make `jake runtests-browser` support test regexes with spaces
For example: `jake runtests-browser t="transpile .js files"` now works.
* Add another test
* factor out isJsxOrTsxExtension
* Move to a conformance test
* Revert "Revert "Merge pull request #7235 from weswigham/narrow-all-types""
This reverts commit fc3e040c5167868ed623612e8f33fb3beedf73b1.
* Use inclusive flag, as originally done, but include almost everything
* Add additional tests
* Respond to PR comments
* Fix typo
* add tests for tsserver project system
* Fix test
* Allow case comparison to undefined and null in strict null checking mode
* Remove incorrectly added tests
* check if moduleResolution when verifying that program can be reused
* more tests for module resolution change and exclude
* Fix linting issues
* Merge JSDoc of assignments from function expressions
* Allow nested assignments in type guards
* Add tests
* Improve order of parameter's merged jsdoc
* Force LF newlines for LKG builds/non debug builds
Fixes 6630
* Create intersection types in type guards for unrelated types
* Split commentsFunction test into expr/decl
And renumber.
* Remove TODO comments
* Accept new baselines
* Add tests
* Remove comments
* Fix test helper
* Recognize relative path using in outDir property (#9025)
* Recognize relative path using in outDir property
* Add projects tests
* Add project .json files
* Update baselines
* Add comments
* Add test case
The test passes in 1.8 and fails in master.
* Return trace when exception happens
* Remove Long-Done TODO
AFAIK, the harness sources have been concatenated into `run.js` for as long as I've known. This stops executing them twice (and in turn makes debugging tests much easier, since you no longer have to debug into eval'd code).
* Allow primitive type guards with typeof on right
Previously, only type guards of the form `typeof x === 'string'` were
allowed. Now you can write `'string' === typeof x`.
* Primitive type guards are now order independent
* Fix comments in tests
* Add handleing for classes
* Add more tests for target=es5 module=es6
* addExportToArgumentListKind
* Accept baseline
* Add more tests
* wip-fixing transforms
* Adds progress indicators to the runtests-parallel build task.
* Fixed typo
* Fix comment
* Add test for out-of-range error
* Use proper method of not resolving alias
* Fix module loading error
(commandLineOptions_stringToEnum would be undefined if optionDeclarations wasn't loaded yet)
* Port 8739
* Update tests
* Update baselines
* Contextually type return statement in async function
* Remove stale files
* Undo change
* Improve perf
* Improve tests
* Fix sourcemaps for debugging tests
* Allow --sourceRoot with --inlineSources option
Fixes #8445
* this in parameter initializers resolves to class
Accept baselines now that the test passes.
* Add tests for more kinds of import/export
* Fix7334 Disallow async in functionExpression and ArrowFunction (#9062)
* Error when using async modifier in function-expression and arrow-function when target es5
* Add tests and baselines
* Resolve function-this in parameter initialisers when explicitly provided
* Allow null/undefined guard with null/undefined on left
Also add a test with baselines.
* Code review comments
* Update more diagnostic messages ES6->2015
Fix #8996 CC @mhegazy.
* Fixes an issue with runtests-parallel when global mocha is not installed.
* Update LKG
* Add tests
* fix baselines
* Recommend runtests-parallel in CONTRIBUTING
* Only inlineSourceMap when debugging through jake-browser (#9080)
* Only inlineSourceMap when debugging through jake-browser
* Address PR: fix typo in opt's property
* Manually port tests from PR 8470
* minor fix: add missing return clause
* Support using string values in enums for CompilerOptions in transpile methods
* Support using string values in enums for CompilerOptions in transpile methods
# Conflicts:
# tests/cases/unittests/transpile.ts
* Fix test helper
* Add test for out-of-range error
* Fix module loading error
(commandLineOptions_stringToEnum would be undefined if optionDeclarations wasn't loaded yet)
* Use camel-case instead of snake-case (#9134)
* Manually add tests for PR 8988
* Allow wildcard ("*") patterns in ambient module declarations
* Respond to PR comments
* Add another test
* Improve perf
* Improve tests
* Update baseline from merging with master
* Address PR comment
* Update baseline
* Refactor how we retrieve binding-name cache in module transformer
* Temporary accept so we get a clean run-tests result
2016-06-14 20:36:57 +02:00
|
|
|
var tty = require("tty")
|
|
|
|
, readline = require("readline")
|
|
|
|
, fs = require("fs")
|
|
|
|
, path = require("path")
|
|
|
|
, child_process = require("child_process")
|
|
|
|
, os = require("os")
|
|
|
|
, mocha = require("mocha")
|
|
|
|
, Base = mocha.reporters.Base
|
|
|
|
, color = Base.color
|
|
|
|
, cursor = Base.cursor
|
|
|
|
, ms = require("mocha/lib/ms");
|
|
|
|
|
|
|
|
var isatty = tty.isatty(1) && tty.isatty(2);
|
|
|
|
var tapRangePattern = /^(\d+)\.\.(\d+)(?:$|\r\n?|\n)/;
|
|
|
|
var tapTestPattern = /^(not\sok|ok)\s+(\d+)\s+(?:-\s+)?(.*)$/;
|
|
|
|
var tapCommentPattern = /^#(?: (tests|pass|fail) (\d+)$)?/;
|
|
|
|
|
|
|
|
exports.runTestsInParallel = runTestsInParallel;
|
|
|
|
exports.ProgressBars = ProgressBars;
|
|
|
|
|
|
|
|
function runTestsInParallel(taskConfigsFolder, run, options, cb) {
|
|
|
|
if (options === undefined) options = { };
|
|
|
|
|
|
|
|
return discoverTests(run, options, function (error) {
|
|
|
|
if (error) {
|
|
|
|
return cb(error);
|
|
|
|
}
|
|
|
|
|
|
|
|
return runTests(taskConfigsFolder, run, options, cb);
|
|
|
|
});
|
|
|
|
}
|
|
|
|
|
|
|
|
function discoverTests(run, options, cb) {
|
|
|
|
console.log("Discovering tests...");
|
|
|
|
|
|
|
|
var cmd = "mocha -R " + require.resolve("./mocha-none-reporter.js") + " " + run;
|
|
|
|
var p = spawnProcess(cmd);
|
|
|
|
p.on("exit", function (status) {
|
|
|
|
if (status) {
|
|
|
|
cb(new Error("Process exited with code " + status));
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
cb();
|
|
|
|
}
|
|
|
|
});
|
|
|
|
}
|
|
|
|
|
|
|
|
function runTests(taskConfigsFolder, run, options, cb) {
|
|
|
|
var configFiles = fs.readdirSync(taskConfigsFolder);
|
|
|
|
var numPartitions = configFiles.length;
|
|
|
|
if (numPartitions <= 0) {
|
|
|
|
cb();
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
console.log("Running tests on " + numPartitions + " threads...");
|
|
|
|
|
|
|
|
var partitions = Array(numPartitions);
|
|
|
|
var progressBars = new ProgressBars();
|
|
|
|
progressBars.enable();
|
|
|
|
|
|
|
|
var counter = numPartitions;
|
|
|
|
configFiles.forEach(runTestsInPartition);
|
|
|
|
|
|
|
|
function runTestsInPartition(file, index) {
|
|
|
|
var partition = {
|
|
|
|
file: path.join(taskConfigsFolder, file),
|
|
|
|
tests: 0,
|
|
|
|
passed: 0,
|
|
|
|
failed: 0,
|
|
|
|
completed: 0,
|
|
|
|
current: undefined,
|
|
|
|
start: undefined,
|
|
|
|
end: undefined,
|
|
|
|
failures: []
|
|
|
|
};
|
|
|
|
partitions[index] = partition;
|
|
|
|
|
|
|
|
// Set up the progress bar.
|
|
|
|
updateProgress(0);
|
|
|
|
|
|
|
|
// Start the background process.
|
|
|
|
var cmd = "mocha -t " + (options.testTimeout || 20000) + " -R tap --no-colors " + run + " --config='" + partition.file + "'";
|
|
|
|
var p = spawnProcess(cmd);
|
|
|
|
var rl = readline.createInterface({
|
|
|
|
input: p.stdout,
|
|
|
|
terminal: false
|
|
|
|
});
|
|
|
|
rl.on("line", onmessage);
|
|
|
|
p.on("exit", onexit)
|
|
|
|
|
|
|
|
function onmessage(line) {
|
|
|
|
if (partition.start === undefined) {
|
|
|
|
partition.start = Date.now();
|
|
|
|
}
|
|
|
|
|
|
|
|
var rangeMatch = tapRangePattern.exec(line);
|
|
|
|
if (rangeMatch) {
|
|
|
|
partition.tests = parseInt(rangeMatch[2]);
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
var testMatch = tapTestPattern.exec(line);
|
|
|
|
if (testMatch) {
|
|
|
|
var test = {
|
|
|
|
result: testMatch[1],
|
|
|
|
id: parseInt(testMatch[2]),
|
|
|
|
name: testMatch[3],
|
|
|
|
output: []
|
|
|
|
};
|
|
|
|
|
|
|
|
partition.current = test;
|
|
|
|
partition.completed++;
|
|
|
|
|
|
|
|
if (test.result === "ok") {
|
|
|
|
partition.passed++;
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
partition.failed++;
|
|
|
|
partition.failures.push(test);
|
|
|
|
}
|
|
|
|
|
|
|
|
var progress = partition.completed / partition.tests;
|
|
|
|
if (progress < 1) {
|
|
|
|
updateProgress(progress);
|
|
|
|
}
|
|
|
|
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
var commentMatch = tapCommentPattern.exec(line);
|
|
|
|
if (commentMatch) {
|
|
|
|
switch (commentMatch[1]) {
|
|
|
|
case "tests":
|
|
|
|
partition.current = undefined;
|
|
|
|
partition.tests = parseInt(commentMatch[2]);
|
|
|
|
break;
|
|
|
|
|
|
|
|
case "pass":
|
|
|
|
partition.passed = parseInt(commentMatch[2]);
|
|
|
|
break;
|
|
|
|
|
|
|
|
case "fail":
|
|
|
|
partition.failed = parseInt(commentMatch[2]);
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
if (partition.current) {
|
|
|
|
partition.current.output.push(line);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
function onexit() {
|
|
|
|
if (partition.end === undefined) {
|
|
|
|
partition.end = Date.now();
|
|
|
|
}
|
|
|
|
|
|
|
|
partition.duration = partition.end - partition.start;
|
|
|
|
var summaryColor = partition.failed ? "fail" : "green";
|
|
|
|
var summarySymbol = partition.failed ? Base.symbols.err : Base.symbols.ok;
|
|
|
|
var summaryTests = (partition.passed === partition.tests ? partition.passed : partition.passed + "/" + partition.tests) + " passing";
|
|
|
|
var summaryDuration = "(" + ms(partition.duration) + ")";
|
|
|
|
var savedUseColors = Base.useColors;
|
|
|
|
Base.useColors = !options.noColors;
|
|
|
|
|
|
|
|
var summary = color(summaryColor, summarySymbol + " " + summaryTests) + " " + color("light", summaryDuration);
|
|
|
|
Base.useColors = savedUseColors;
|
|
|
|
|
|
|
|
updateProgress(1, summary);
|
|
|
|
|
|
|
|
signal();
|
|
|
|
}
|
|
|
|
|
|
|
|
function updateProgress(percentComplete, title) {
|
|
|
|
var progressColor = "pending";
|
|
|
|
if (partition.failed) {
|
|
|
|
progressColor = "fail";
|
|
|
|
}
|
|
|
|
|
|
|
|
progressBars.update(
|
|
|
|
index,
|
|
|
|
percentComplete,
|
|
|
|
progressColor,
|
|
|
|
title
|
|
|
|
);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
function signal() {
|
|
|
|
counter--;
|
|
|
|
|
|
|
|
if (counter <= 0) {
|
|
|
|
var reporter = new Base(),
|
|
|
|
stats = reporter.stats,
|
|
|
|
failures = reporter.failures;
|
|
|
|
|
|
|
|
var duration = 0;
|
|
|
|
for (var i = 0; i < numPartitions; i++) {
|
|
|
|
var partition = partitions[i];
|
|
|
|
stats.passes += partition.passed;
|
|
|
|
stats.failures += partition.failed;
|
|
|
|
stats.tests += partition.tests;
|
|
|
|
duration += partition.duration;
|
|
|
|
for (var j = 0; j < partition.failures.length; j++) {
|
|
|
|
var failure = partition.failures[j];
|
|
|
|
failures.push(makeMochaTest(failure));
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
stats.duration = duration;
|
|
|
|
progressBars.disable();
|
|
|
|
|
|
|
|
if (options.noColors) {
|
|
|
|
var savedUseColors = Base.useColors;
|
|
|
|
Base.useColors = false;
|
|
|
|
reporter.epilogue();
|
|
|
|
Base.useColors = savedUseColors;
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
reporter.epilogue();
|
|
|
|
}
|
|
|
|
|
[Transforms] Merge master 06/14/2016 (#9169)
* Remove check narrowing only certain types, add test showing issues with this
* string literal case test
* Reconcile fix with CFA work
* Defaultable -> NotNarrowable to align with use
* Missed a defaultable in comments
* Add test for narrowing to unions of string literals
* Rewrite isInStringLiteral to accomodate for unterminated strings
* Refactor signatureHelp to expose helper functions
* Add support for completion in string literals
* Remove unused check
* Use const instead of let
* Fix error
* Formatting changes
* Use shorthand properties
* Add failing test for #8738
* Sort baseline reference identifier by name
* Detects assignment to internal module export clause, fixes #8738
* add SharedArrayBuffer
fix
* Factor out assignment op check
* Add test for composite assignment
* Factor out the behaviour and handles x++ and ++x
* Handles ES3 default as identifier name
* Fix missing else statement
* isNameOfExportedDeclarationInNonES6Module
* Reorder options alphabetically
* Mark diagnostics, and skipDefaultLibCheck as internal
* Allow an import of "foo.js" to be matched by a file "foo.ts"
* Improve loadModuleFromFile code
* Respond to PR comments
* Respond to more PR comments
* Fix test
* Actually merge from master
* Revert to old tryLoad implementation
* Run fixupParentReferences when parsing isolated jsDocComment
* initial revision of unit test support for project system in tsserver
* Allow wildcard ("*") patterns in ambient module declarations
* Add non-widening forms of null and undefined
* Create separate control flows for property declarations with initializers
* Add regression test
* Allow trailing commas in function parameter and argument lists
* Add tests
* Remove unused variable
* Add null check and CR feedback
* Support shorthand ambient module declarations
* Revert "Merge pull request #7235 from weswigham/narrow-all-types"
This reverts commit ef0f6c8fe4f94a7e294cfe42d7025c9dca6535d5, reversing
changes made to 9f087cb62ade7a879e23c229df752fc8f87d679c.
* reuse the fixupParentReferences function
* Improve typing of && operator with --strictNullChecks
* Add test
* Respond to PR comments
* Respond to PR comments
* Add merging tests
* Use a function `stringify` to simplify calls to `JSON.stringify(xyz, undefined, 2)`
* Update tests
* Fix mistake
* Include indent in navigation bar protocol
Previously navbar01 test had indents when run in the browser but not when run from node. Now they run the same.
* Remove unnecessary restrictions in property access narrowing
* Fix fourslash test
* Add regression test
* Consider property declarations to be control flow containers
* Adding regression test
* Remove restriction on --target es5 and --module es6
* change type definition for Object.create
* Fix signature help
* Add "implicit any" warning for shorthand ambient modules
* Remove trailing whitespace
* Support using string values in enums for CompilerOptions in transpile methods
* Remove trailing whitespace in jakefile
* Make `jake runtests-browser` support test regexes with spaces
For example: `jake runtests-browser t="transpile .js files"` now works.
* Add another test
* factor out isJsxOrTsxExtension
* Move to a conformance test
* Revert "Revert "Merge pull request #7235 from weswigham/narrow-all-types""
This reverts commit fc3e040c5167868ed623612e8f33fb3beedf73b1.
* Use inclusive flag, as originally done, but include almost everything
* Add additional tests
* Respond to PR comments
* Fix typo
* add tests for tsserver project system
* Fix test
* Allow case comparison to undefined and null in strict null checking mode
* Remove incorrectly added tests
* check if moduleResolution when verifying that program can be reused
* more tests for module resolution change and exclude
* Fix linting issues
* Merge JSDoc of assignments from function expressions
* Allow nested assignments in type guards
* Add tests
* Improve order of parameter's merged jsdoc
* Force LF newlines for LKG builds/non debug builds
Fixes 6630
* Create intersection types in type guards for unrelated types
* Split commentsFunction test into expr/decl
And renumber.
* Remove TODO comments
* Accept new baselines
* Add tests
* Remove comments
* Fix test helper
* Recognize relative path using in outDir property (#9025)
* Recognize relative path using in outDir property
* Add projects tests
* Add project .json files
* Update baselines
* Add comments
* Add test case
The test passes in 1.8 and fails in master.
* Return trace when exception happens
* Remove Long-Done TODO
AFAIK, the harness sources have been concatenated into `run.js` for as long as I've known. This stops executing them twice (and in turn makes debugging tests much easier, since you no longer have to debug into eval'd code).
* Allow primitive type guards with typeof on right
Previously, only type guards of the form `typeof x === 'string'` were
allowed. Now you can write `'string' === typeof x`.
* Primitive type guards are now order independent
* Fix comments in tests
* Add handleing for classes
* Add more tests for target=es5 module=es6
* addExportToArgumentListKind
* Accept baseline
* Add more tests
* Adds progress indicators to the runtests-parallel build task.
* Fixed typo
* Fix comment
* Add test for out-of-range error
* Use proper method of not resolving alias
* Fix module loading error
(commandLineOptions_stringToEnum would be undefined if optionDeclarations wasn't loaded yet)
* Update tests
* Contextually type return statement in async function
* Remove stale files
* Undo change
* Improve perf
* Improve tests
* Fix sourcemaps for debugging tests
* Allow --sourceRoot with --inlineSources option
Fixes #8445
* this in parameter initializers resolves to class
Accept baselines now that the test passes.
* Add tests for more kinds of import/export
* Fix7334 Disallow async in functionExpression and ArrowFunction (#9062)
* Error when using async modifier in function-expression and arrow-function when target es5
* Add tests and baselines
* Resolve function-this in parameter initialisers when explicitly provided
* Allow null/undefined guard with null/undefined on left
Also add a test with baselines.
* Code review comments
* Update more diagnostic messages ES6->2015
Fix #8996 CC @mhegazy.
* Fixes an issue with runtests-parallel when global mocha is not installed.
* Update LKG
* Add tests
* fix baselines
* Salsa: get members of variables whose initialisers are functions
* Test adding members to JS variables whose initialisers are functions
* Recommend runtests-parallel in CONTRIBUTING
* Allow empty lists on command line
* Remove single-comma empty array form
* Remove trailing whitespace
* Implicit type inclusion changes
* Only inlineSourceMap when debugging through jake-browser (#9080)
* Only inlineSourceMap when debugging through jake-browser
* Address PR: fix typo in opt's property
* minor fix: add missing return clause
* Use camel-case instead of snake-case (#9134)
* Baseline fix, CR comments, lint
* CR changes
* Add test for jsdoc in navigation bar
* Fixes runtests-parallel not reporting failure for failed tests.
* Fix decorator metadata emit for rest arg with no type
* Add isDefinition to ReferenceEntry
Clients can now easily tell if the reference is to a definition or a
usage.
* Test isDefinition
* Add option to bail out of `jake runtests` when one test fails
* Absolute-ify paths in both places
* Refactor
* Add unit test
* lint
* Added tests.
* Accepted baselines.
* Emit 'exports.' if the shorthand is a general export.
* Accepted baselines.
* Emit 'Promise' decorator metadata return type for async methods
* Respond to PR comment
* Unescape identifiers used in code completion
* Make isDefinition required.
For the deprecated getOccurrencesAtPosition, isDefinition is always false.
* Add more isDefinition tests and fix computed property bug
* Fix bug: do unescaping in the right place, so that it only affects escaped javascript identifiers
* Use `isLiteralComputedPropertyDeclarationName`
2016-06-15 00:00:40 +02:00
|
|
|
if (stats.failures) {
|
|
|
|
return cb(new Error("Test failures reported: " + stats.failures));
|
[Transforms] Merge master 06/06/2016 (#8991)
* Remove check narrowing only certain types, add test showing issues with this
* string literal case test
* Reconcile fix with CFA work
* Defaultable -> NotNarrowable to align with use
* Missed a defaultable in comments
* Add test for narrowing to unions of string literals
* Rewrite isInStringLiteral to accomodate for unterminated strings
* Refactor signatureHelp to expose helper functions
* Add support for completion in string literals
* Remove unused check
* Use const instead of let
* Fix error
* Formatting changes
* Use shorthand properties
* Add failing test for #8738
* Sort baseline reference identifier by name
* Detects assignment to internal module export clause, fixes #8738
* add SharedArrayBuffer
fix
* Factor out assignment op check
* Add test for composite assignment
* Factor out the behaviour and handles x++ and ++x
* Handles ES3 default as identifier name
* Fix missing else statement
* isNameOfExportedDeclarationInNonES6Module
* Reorder options alphabetically
* Mark diagnostics, and skipDefaultLibCheck as internal
* Allow an import of "foo.js" to be matched by a file "foo.ts"
* Improve loadModuleFromFile code
* Respond to PR comments
* Respond to more PR comments
* Fix test
* Actually merge from master
* Revert to old tryLoad implementation
* Run fixupParentReferences when parsing isolated jsDocComment
* initial revision of unit test support for project system in tsserver
* Allow wildcard ("*") patterns in ambient module declarations
* Add non-widening forms of null and undefined
* Create separate control flows for property declarations with initializers
* Add regression test
* Allow trailing commas in function parameter and argument lists
* Add tests
* Remove unused variable
* Add null check and CR feedback
* Support shorthand ambient module declarations
* Revert "Merge pull request #7235 from weswigham/narrow-all-types"
This reverts commit ef0f6c8fe4f94a7e294cfe42d7025c9dca6535d5, reversing
changes made to 9f087cb62ade7a879e23c229df752fc8f87d679c.
* reuse the fixupParentReferences function
* Improve typing of && operator with --strictNullChecks
* Add test
* Respond to PR comments
* Respond to PR comments
* Add merging tests
* Use a function `stringify` to simplify calls to `JSON.stringify(xyz, undefined, 2)`
* Update tests
* Fix mistake
* Include indent in navigation bar protocol
Previously navbar01 test had indents when run in the browser but not when run from node. Now they run the same.
* Remove unnecessary restrictions in property access narrowing
* Fix fourslash test
* Add regression test
* Consider property declarations to be control flow containers
* Adding regression test
* Remove restriction on --target es5 and --module es6
* change type definition for Object.create
* Fix signature help
* Add "implicit any" warning for shorthand ambient modules
* Remove trailing whitespace
* Support using string values in enums for CompilerOptions in transpile methods
* Remove trailing whitespace in jakefile
* Make `jake runtests-browser` support test regexes with spaces
For example: `jake runtests-browser t="transpile .js files"` now works.
* Add another test
* factor out isJsxOrTsxExtension
* Move to a conformance test
* Revert "Revert "Merge pull request #7235 from weswigham/narrow-all-types""
This reverts commit fc3e040c5167868ed623612e8f33fb3beedf73b1.
* Use inclusive flag, as originally done, but include almost everything
* Add additional tests
* Respond to PR comments
* Fix typo
* add tests for tsserver project system
* Fix test
* Allow case comparison to undefined and null in strict null checking mode
* Remove incorrectly added tests
* check if moduleResolution when verifying that program can be reused
* more tests for module resolution change and exclude
* Fix linting issues
* Merge JSDoc of assignments from function expressions
* Allow nested assignments in type guards
* Add tests
* Improve order of parameter's merged jsdoc
* Force LF newlines for LKG builds/non debug builds
Fixes 6630
* Create intersection types in type guards for unrelated types
* Split commentsFunction test into expr/decl
And renumber.
* Remove TODO comments
* Accept new baselines
* Add tests
* Remove comments
* Fix test helper
* Recognize relative path using in outDir property (#9025)
* Recognize relative path using in outDir property
* Add projects tests
* Add project .json files
* Update baselines
* Add comments
* Add test case
The test passes in 1.8 and fails in master.
* Return trace when exception happens
* Remove Long-Done TODO
AFAIK, the harness sources have been concatenated into `run.js` for as long as I've known. This stops executing them twice (and in turn makes debugging tests much easier, since you no longer have to debug into eval'd code).
* Allow primitive type guards with typeof on right
Previously, only type guards of the form `typeof x === 'string'` were
allowed. Now you can write `'string' === typeof x`.
* Primitive type guards are now order independent
* Fix comments in tests
* Add handleing for classes
* Add more tests for target=es5 module=es6
* addExportToArgumentListKind
* Accept baseline
* Add more tests
* wip-fixing transforms
* Adds progress indicators to the runtests-parallel build task.
* Fixed typo
* Fix comment
* Add test for out-of-range error
* Use proper method of not resolving alias
* Fix module loading error
(commandLineOptions_stringToEnum would be undefined if optionDeclarations wasn't loaded yet)
* Port 8739
* Update tests
* Update baselines
* Contextually type return statement in async function
* Remove stale files
* Undo change
* Improve perf
* Improve tests
* Fix sourcemaps for debugging tests
* Allow --sourceRoot with --inlineSources option
Fixes #8445
* this in parameter initializers resolves to class
Accept baselines now that the test passes.
* Add tests for more kinds of import/export
* Fix7334 Disallow async in functionExpression and ArrowFunction (#9062)
* Error when using async modifier in function-expression and arrow-function when target es5
* Add tests and baselines
* Resolve function-this in parameter initialisers when explicitly provided
* Allow null/undefined guard with null/undefined on left
Also add a test with baselines.
* Code review comments
* Update more diagnostic messages ES6->2015
Fix #8996 CC @mhegazy.
* Fixes an issue with runtests-parallel when global mocha is not installed.
* Update LKG
* Add tests
* fix baselines
* Recommend runtests-parallel in CONTRIBUTING
* Only inlineSourceMap when debugging through jake-browser (#9080)
* Only inlineSourceMap when debugging through jake-browser
* Address PR: fix typo in opt's property
* Manually port tests from PR 8470
* minor fix: add missing return clause
* Support using string values in enums for CompilerOptions in transpile methods
* Support using string values in enums for CompilerOptions in transpile methods
# Conflicts:
# tests/cases/unittests/transpile.ts
* Fix test helper
* Add test for out-of-range error
* Fix module loading error
(commandLineOptions_stringToEnum would be undefined if optionDeclarations wasn't loaded yet)
* Use camel-case instead of snake-case (#9134)
* Manually add tests for PR 8988
* Allow wildcard ("*") patterns in ambient module declarations
* Respond to PR comments
* Add another test
* Improve perf
* Improve tests
* Update baseline from merging with master
* Address PR comment
* Update baseline
* Refactor how we retrieve binding-name cache in module transformer
* Temporary accept so we get a clean run-tests result
2016-06-14 20:36:57 +02:00
|
|
|
}
|
|
|
|
else {
|
|
|
|
return cb();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
function makeMochaTest(test) {
|
|
|
|
return {
|
|
|
|
fullTitle: function() {
|
|
|
|
return test.name;
|
|
|
|
},
|
|
|
|
err: {
|
|
|
|
message: test.output[0],
|
|
|
|
stack: test.output.join(os.EOL)
|
|
|
|
}
|
|
|
|
};
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
[Transforms] Merge master 07/11 into transform (#9697)
* Use merge2, gulp-if, gulp-newer, and more projects
* Add watch task
* Working non-inline sourcemaps for runtests
* browser tests now also loads sourcemaps from disk
* Lazypipes and better services stream management
* export interface used by other exported functions
* Make goto-definition work for `this` parameter
* Add new error for rest parameters
* Add error message for rest parameter properties
* Fix case when a document contains multiple script blocks with different base indentations.
Use the base indent size if it is greater that the indentation of the inherited predecessor
* Fix rwc-runner from breaking change in compiler (#9284)
* Signatures use JSDoc to determine optionality
* Changed implementation to use closure
* Updated tests
* Fixed linting error
* Adding Code of Conduct notice
* Don't crash when JS class property is self-referential.
Fixes #9293
* Remove stale baselines
* For optionality, check question token before JSDoc
* Accept rest parameter properties error baselines
* Change binding pattern parameter property error
* Accept binding pattern properties error baselines
* Lint
* Port the sync version diagnostics API from tsserverVS-WIP branch to 2.0
* Do copyright without gulp-if and lazypipe
* Change test comment and accept baseline
* Remove tsd scripts task from gulpfile
* Make use of module compiler option explicit, add strip internal to tsconfigs
* Remove Signature#thisType and use Signature#thisParameter everywhere
* Add Gulpfile lint to jake, fix lints
* Change reference tests to verify actual ranges referenced and not just their count
* Respond to PR comments
* Add new lint rule
* Fix object whitespace lints
* Fix case of gulpfile dependencies
* 1. pass subshell args 2. fix build order in services
1. /bin/sh requires its arguments joined into a single string unlike
cmd.
2. services/ depends on a couple of files from server/ but the order was
implicit, and changed from jakefile. Now the order is explicit in the
tsconfig.
* Fix single-quote lint
* Check for exactly one space
* Fix excess whitespace issues
* Add matchFiles test to Gulpfile
This was merged while the gulpfile was still in-progress
* Fix LKG useDebug task and newLine flag
* Update LKG
* Clean before LKG in Gulpfile
* Fix lint
* Correct the api string name
* Allow space in exec cmds
* Fix typo
* Add new APIs to protocol
* Fix bug where `exports.` was prepended to namespace export accesses
* Remove unnecessary parameter
* extract expression into function
* Add fourslash tests & address CR comments
* Fix 8549: Using variable as Jsx tagname (#9337)
* Parse JSXElement's name as property access instead of just entity name. So when one accesses property of the class through this, checker will check correctly
* wip - just resolve to any type for now
* Resolve string type to anytype and look up property in intrinsicElementsType of Jsx
* Add tests and update baselines
* Remove unneccessary comment
* wip-address PR
* Address PR
* Add tets and update baselines
* Fix linting error
* Unused identifiers compiler code (#9200)
* Code changes to update references of the Identifiers
* Added code for handling function, method and coonstructor level local variables and parameters
* Rebased with origin master
* Code changes to handle unused private variables, private methods and typed parameters
* Code changes to handle namespace level elements
* Code changes to handle unimplemented interfaces
* Code to optimize the d.ts check
* Correct Code change to handle the parameters for methods inside interfaces
* Fix for lint error
* Remove Trailing whitespace
* Code changes to handle interface implementations
* Changes to display the error position correctly
* Compiler Test Cases
* Adding condition to ignore constructor parameters
* Removing unnecessary tests
* Additional changes for compiler code
* Additional changes to handle constructor scenario
* Fixing the consolidated case
* Changed logic to search for private instead of public
* Response to PR Comments
* Changed the error code in test cases as result of merge with master
* Adding the missing file
* Adding the missing file II
* Response to PR comments
* Code changes for checking unused imports
* Test Cases for Unused Imports
* Response to PR comments
* Code change specific to position of Import Declaration
* Code change for handling the position for unused import
* New scenarios for handling parameters in lambda function, type parameters in methods, etc.
* Additional scenarios based on PR comments
* Removing a redundant check
* Added ambient check to imports and typeparatmeter reporting
* Added one more scenario to handle type parameters
* Added new scenario for TypeParameter on Interface
* Refactoring the code
* Added scenario to handle private class elements declared in constructor.
* Minor change to erro reporting
* Fix 8355: Fix emit metadata different between transpile and tsc --isolatedModule (#9232)
* Instead of returning undefined for unknownSymbol return itself
* Add Transpile unittest
* Wip - Add project tests
* Add project tests and baselines
* Update existed tests
* Add tests for emitting metadata with module targetting system
* Fix 8467: Fix incorrect emit for accessing static property in static propertyDeclaration (#8551)
* Fix incorrect emit for accessing static property in static propertyDeclaration
* Update tests and baselines
* Update function name
* Fix when accessing static property inside arrow function
* Add tests and baselines
* do not format comma/closeparen in jsxelement
* format jsx expression
* Remove extra baselines
* Fixed bugs and linting
* Added project tests for node_modules JavaScript searches
* Removed old TODO comment
* make rules optional
* Fixed the regexp for removing full paths
* Fix type of the disableSizeLimit option
* Update version to 2.0.0
* Remove upper boilerplate from issue template
Our issue stats did not improve appreciably when we added the issue template. Reduce upper boilerplate text and try to make it more action-oriented
* Remove unused compiler option (#9381)
* Update LKG
* Added emitHost method to return source from node modules
* Marked new method internal
* Update issue_template.md
* new options should be optional for compatibility
* Add getCurrentDirectory to ServerHost
* Add nullchecks for typeRoots, remove getCurrentDirectory from ServerHost as it is always the installation location
* VarDate interface and relevant Date.prototype members
* Port 9396 to release 2.0
* Fix 9363: Object destructuring broken-variables are bound to the wrong object (#9383)
* Fix emit incorrect destructuring mapping in var declaration
* Add tests and baselines
* Add additional tests and baselines
* Fix crash in async functions when targetting ES5.
When targetting ES5 and with --noImplicitReturns,
an async function whose return type could not be determined would cause
a compiler crash.
* Add This type to lib
* Merge master into release-2.0 (#9400)
* do not format comma/closeparen in jsxelement
* format jsx expression
* make rules optional
* Remove upper boilerplate from issue template
Our issue stats did not improve appreciably when we added the issue template. Reduce upper boilerplate text and try to make it more action-oriented
* Update issue_template.md
* new options should be optional for compatibility
* Add getCurrentDirectory to ServerHost
* Add nullchecks for typeRoots, remove getCurrentDirectory from ServerHost as it is always the installation location
* VarDate interface and relevant Date.prototype members
* Fix 9363: Object destructuring broken-variables are bound to the wrong object (#9383)
* Fix emit incorrect destructuring mapping in var declaration
* Add tests and baselines
* Add additional tests and baselines
* Fix #9402: Do not report unused identifier errors for catch variables
* getVarDate should be on the Date interface
* Defere checking unsed identifier checks
* Do not scan nodes preceding formatted region, just skip over them
* Don't emit source files found under node_modules
* Destructuring assignment removes undefined from type when default value is given
* Add nullcheck when calculating indentations for implort clause
* Use a deferred list to check for unused identifiers
* push checks to checkUnusedIdentifiersDeferred
* use isParameterPropertyDeclaration to test for paramter propoerties
* runtests-parallel skips empty buckets
Previously, it would enter them as buckets with no tests, which would
make our test runners run *every* test.
This was very obvious on machines with lots of cores.
* Report unused identifiers in for statements
* Do not check ambients, and overloads
* Add tests
* Consolidate type reference marking in getTypeFromTypeReference
* Handel type aliases
* Add tests
* Add test
* Dont load JavaScript if types packages are present
* Renamed API
* Use checkExpression, not checkExpressionCached
* Do not report unused errors for module augmentations
* Consolidate refernce marking in resolveName to allow marking aliases correctelly
* add tests
* Code review comments
* Only mark symbols found in a local symbol table
* Show "<unknown>" if the name of a declaration is unavailable
* Parse `export default async function` as a declaration
* Respond to PR comments
* Better name for test
* handel private properties correctelly
* Port 9426 to release 2.0
* Handel Swtich statements
check for locals on for statments
only mark private properties
* Removed one error to avoid full path issues
* Don't emit source files found under node_modules
(cherry picked from commit 5f8cf1af3e4be61037cbafd698535d32d292941f)
* Dont load JavaScript if types packages are present
(cherry picked from commit 5a45c44eb789f52ceb1aa0e23a230ecb599bfb08)
* Renamed API
(cherry picked from commit d8047b607f11cdf319284bb344282582c7c0aea0)
* Removed one error to avoid full path issues
(cherry picked from commit 5e4f13f342a75ec8f7cf65cb669bec9d6e6c5581)
* Fix incorrectly-saved quote symbols in ThirdPartyNoticeText.txt
* Fix #9458: exclude parameters starting with underscore from unusedParamter checks
* change variable name for strict mode
* Increase timeout from running RWC. As UWDWeb takes slightly longer now (#9454)
* Handle relative paths in tsconfig exclude and include globs
* Merge master into release branch 06/30 (#9447)
* do not format comma/closeparen in jsxelement
* format jsx expression
* make rules optional
* Remove upper boilerplate from issue template
Our issue stats did not improve appreciably when we added the issue template. Reduce upper boilerplate text and try to make it more action-oriented
* Update issue_template.md
* new options should be optional for compatibility
* Add getCurrentDirectory to ServerHost
* Add nullchecks for typeRoots, remove getCurrentDirectory from ServerHost as it is always the installation location
* VarDate interface and relevant Date.prototype members
* Fix 9363: Object destructuring broken-variables are bound to the wrong object (#9383)
* Fix emit incorrect destructuring mapping in var declaration
* Add tests and baselines
* Add additional tests and baselines
* Fix crash in async functions when targetting ES5.
When targetting ES5 and with --noImplicitReturns,
an async function whose return type could not be determined would cause
a compiler crash.
* Add This type to lib
* getVarDate should be on the Date interface
* Don't emit source files found under node_modules
* Destructuring assignment removes undefined from type when default value is given
* Add nullcheck when calculating indentations for implort clause
* Add test
* Dont load JavaScript if types packages are present
* Renamed API
* Use checkExpression, not checkExpressionCached
* Show "<unknown>" if the name of a declaration is unavailable
* Parse `export default async function` as a declaration
* Removed one error to avoid full path issues
* Fix incorrectly-saved quote symbols in ThirdPartyNoticeText.txt
* Improve names of whitespace functions
* Handle relative paths in tsconfig exclude and include globs
Port 9475 to release 2.0
* add new method getEmitOutputObject to return result of the emit as object with properties instead of json string
* fix linter
* Fix PromiseLike to be compatible with es6-promise (#9484)
* Fix reading files from IOLog because previous our API captures (#9483)
* Fix reading files from IOLog because previous our API captures
* Refactoring the ioLog
* Exclude FlowSwitchClause from flow graph for case expressions
* Add regression test
* Update LKG
* Update language in comment
* Add .mailmap file
* Add authors script to generate authors from repo
* Update AUTHORS.md for release-2.0
* Update script to pass more than one argument
* Remove the unused text buffer from ScriptInfo
* Fix #9531: account for async as an contextual keyword when parsing export assignments
* Update LKG
* Swap q from a reference to an import
* Fix #9550: exclude 'this' type parameters from unusedParameters checks.
* Update comment to reflect new dependency
* Avoid putting children tags in jsdoccomment
* Parse the result of getDirectories call
* Update harness getDirectories implementation for shims
* Fix multiple Salsa assignment-declarations
Previously, all assignment-declarations needed to be of the same kind:
either all `this.p = ...` assignments or `C.prototype.p = ...`
assignments.
* Test for multiple salsa assignment-declarations
* Add test for parsed @typedef tag node shape
* Provide a symbol for salsa-inferred class types
* Update .mailmap
* Fix module tracking
* Updated test with relative import
* Fixed the node tracking and a harness bug
* fixed lint error
* Fixed implicit any
* Added missing test files
* Removed duplicate logic
* Update conflicting baseline.
PR #9574 added a baseline that #9578 caused to be changed. The two PRs
went in so close to each other that the CI build didn't catch the change
to the new test's baseline.
* Fix type of JSXTagName
* Update baselines to use double-quote
* Update baselines when emitting metadata decorator
* Update baselines for async-await function
* Update baselines for comment in capturing down-level for...of and for...in
* Add missing Transpile tests
* Remove old JS transpile baselines
* Passing program as argument in emitWorker
* Port PR#9607 transforms
* Port new JSDOC tests to use baseline
* substitute alias for class expression in statics
* Address new lint warnings
* Change name for substitution function.
2016-07-19 00:38:30 +02:00
|
|
|
var nodeModulesPathPrefix = path.resolve("./node_modules/.bin/") + path.delimiter;
|
|
|
|
if (process.env.path !== undefined) {
|
|
|
|
process.env.path = nodeModulesPathPrefix + process.env.path;
|
|
|
|
} else if (process.env.PATH !== undefined) {
|
|
|
|
process.env.PATH = nodeModulesPathPrefix + process.env.PATH;
|
|
|
|
}
|
|
|
|
|
[Transforms] Merge master 06/06/2016 (#8991)
* Remove check narrowing only certain types, add test showing issues with this
* string literal case test
* Reconcile fix with CFA work
* Defaultable -> NotNarrowable to align with use
* Missed a defaultable in comments
* Add test for narrowing to unions of string literals
* Rewrite isInStringLiteral to accomodate for unterminated strings
* Refactor signatureHelp to expose helper functions
* Add support for completion in string literals
* Remove unused check
* Use const instead of let
* Fix error
* Formatting changes
* Use shorthand properties
* Add failing test for #8738
* Sort baseline reference identifier by name
* Detects assignment to internal module export clause, fixes #8738
* add SharedArrayBuffer
fix
* Factor out assignment op check
* Add test for composite assignment
* Factor out the behaviour and handles x++ and ++x
* Handles ES3 default as identifier name
* Fix missing else statement
* isNameOfExportedDeclarationInNonES6Module
* Reorder options alphabetically
* Mark diagnostics, and skipDefaultLibCheck as internal
* Allow an import of "foo.js" to be matched by a file "foo.ts"
* Improve loadModuleFromFile code
* Respond to PR comments
* Respond to more PR comments
* Fix test
* Actually merge from master
* Revert to old tryLoad implementation
* Run fixupParentReferences when parsing isolated jsDocComment
* initial revision of unit test support for project system in tsserver
* Allow wildcard ("*") patterns in ambient module declarations
* Add non-widening forms of null and undefined
* Create separate control flows for property declarations with initializers
* Add regression test
* Allow trailing commas in function parameter and argument lists
* Add tests
* Remove unused variable
* Add null check and CR feedback
* Support shorthand ambient module declarations
* Revert "Merge pull request #7235 from weswigham/narrow-all-types"
This reverts commit ef0f6c8fe4f94a7e294cfe42d7025c9dca6535d5, reversing
changes made to 9f087cb62ade7a879e23c229df752fc8f87d679c.
* reuse the fixupParentReferences function
* Improve typing of && operator with --strictNullChecks
* Add test
* Respond to PR comments
* Respond to PR comments
* Add merging tests
* Use a function `stringify` to simplify calls to `JSON.stringify(xyz, undefined, 2)`
* Update tests
* Fix mistake
* Include indent in navigation bar protocol
Previously navbar01 test had indents when run in the browser but not when run from node. Now they run the same.
* Remove unnecessary restrictions in property access narrowing
* Fix fourslash test
* Add regression test
* Consider property declarations to be control flow containers
* Adding regression test
* Remove restriction on --target es5 and --module es6
* change type definition for Object.create
* Fix signature help
* Add "implicit any" warning for shorthand ambient modules
* Remove trailing whitespace
* Support using string values in enums for CompilerOptions in transpile methods
* Remove trailing whitespace in jakefile
* Make `jake runtests-browser` support test regexes with spaces
For example: `jake runtests-browser t="transpile .js files"` now works.
* Add another test
* factor out isJsxOrTsxExtension
* Move to a conformance test
* Revert "Revert "Merge pull request #7235 from weswigham/narrow-all-types""
This reverts commit fc3e040c5167868ed623612e8f33fb3beedf73b1.
* Use inclusive flag, as originally done, but include almost everything
* Add additional tests
* Respond to PR comments
* Fix typo
* add tests for tsserver project system
* Fix test
* Allow case comparison to undefined and null in strict null checking mode
* Remove incorrectly added tests
* check if moduleResolution when verifying that program can be reused
* more tests for module resolution change and exclude
* Fix linting issues
* Merge JSDoc of assignments from function expressions
* Allow nested assignments in type guards
* Add tests
* Improve order of parameter's merged jsdoc
* Force LF newlines for LKG builds/non debug builds
Fixes 6630
* Create intersection types in type guards for unrelated types
* Split commentsFunction test into expr/decl
And renumber.
* Remove TODO comments
* Accept new baselines
* Add tests
* Remove comments
* Fix test helper
* Recognize relative path using in outDir property (#9025)
* Recognize relative path using in outDir property
* Add projects tests
* Add project .json files
* Update baselines
* Add comments
* Add test case
The test passes in 1.8 and fails in master.
* Return trace when exception happens
* Remove Long-Done TODO
AFAIK, the harness sources have been concatenated into `run.js` for as long as I've known. This stops executing them twice (and in turn makes debugging tests much easier, since you no longer have to debug into eval'd code).
* Allow primitive type guards with typeof on right
Previously, only type guards of the form `typeof x === 'string'` were
allowed. Now you can write `'string' === typeof x`.
* Primitive type guards are now order independent
* Fix comments in tests
* Add handleing for classes
* Add more tests for target=es5 module=es6
* addExportToArgumentListKind
* Accept baseline
* Add more tests
* wip-fixing transforms
* Adds progress indicators to the runtests-parallel build task.
* Fixed typo
* Fix comment
* Add test for out-of-range error
* Use proper method of not resolving alias
* Fix module loading error
(commandLineOptions_stringToEnum would be undefined if optionDeclarations wasn't loaded yet)
* Port 8739
* Update tests
* Update baselines
* Contextually type return statement in async function
* Remove stale files
* Undo change
* Improve perf
* Improve tests
* Fix sourcemaps for debugging tests
* Allow --sourceRoot with --inlineSources option
Fixes #8445
* this in parameter initializers resolves to class
Accept baselines now that the test passes.
* Add tests for more kinds of import/export
* Fix7334 Disallow async in functionExpression and ArrowFunction (#9062)
* Error when using async modifier in function-expression and arrow-function when target es5
* Add tests and baselines
* Resolve function-this in parameter initialisers when explicitly provided
* Allow null/undefined guard with null/undefined on left
Also add a test with baselines.
* Code review comments
* Update more diagnostic messages ES6->2015
Fix #8996 CC @mhegazy.
* Fixes an issue with runtests-parallel when global mocha is not installed.
* Update LKG
* Add tests
* fix baselines
* Recommend runtests-parallel in CONTRIBUTING
* Only inlineSourceMap when debugging through jake-browser (#9080)
* Only inlineSourceMap when debugging through jake-browser
* Address PR: fix typo in opt's property
* Manually port tests from PR 8470
* minor fix: add missing return clause
* Support using string values in enums for CompilerOptions in transpile methods
* Support using string values in enums for CompilerOptions in transpile methods
# Conflicts:
# tests/cases/unittests/transpile.ts
* Fix test helper
* Add test for out-of-range error
* Fix module loading error
(commandLineOptions_stringToEnum would be undefined if optionDeclarations wasn't loaded yet)
* Use camel-case instead of snake-case (#9134)
* Manually add tests for PR 8988
* Allow wildcard ("*") patterns in ambient module declarations
* Respond to PR comments
* Add another test
* Improve perf
* Improve tests
* Update baseline from merging with master
* Address PR comment
* Update baseline
* Refactor how we retrieve binding-name cache in module transformer
* Temporary accept so we get a clean run-tests result
2016-06-14 20:36:57 +02:00
|
|
|
function spawnProcess(cmd, options) {
|
|
|
|
var shell = process.platform === "win32" ? "cmd" : "/bin/sh";
|
|
|
|
var prefix = process.platform === "win32" ? "/c" : "-c";
|
|
|
|
return child_process.spawn(shell, [prefix, cmd], { windowsVerbatimArguments: true });
|
|
|
|
}
|
|
|
|
|
|
|
|
function ProgressBars(options) {
|
|
|
|
if (!options) options = {};
|
|
|
|
var open = options.open || '[';
|
|
|
|
var close = options.close || ']';
|
|
|
|
var complete = options.complete || '▬';
|
|
|
|
var incomplete = options.incomplete || Base.symbols.dot;
|
|
|
|
var maxWidth = Math.floor(Base.window.width * .30) - open.length - close.length - 2;
|
|
|
|
var width = minMax(options.width || maxWidth, 10, maxWidth);
|
|
|
|
this._options = {
|
|
|
|
open: open,
|
|
|
|
complete: complete,
|
|
|
|
incomplete: incomplete,
|
|
|
|
close: close,
|
|
|
|
width: width
|
|
|
|
};
|
|
|
|
|
|
|
|
this._progressBars = [];
|
|
|
|
this._lineCount = 0;
|
|
|
|
this._enabled = false;
|
|
|
|
}
|
|
|
|
ProgressBars.prototype = {
|
|
|
|
enable: function () {
|
|
|
|
if (!this._enabled) {
|
|
|
|
process.stdout.write(os.EOL);
|
|
|
|
this._enabled = true;
|
|
|
|
}
|
|
|
|
},
|
|
|
|
disable: function () {
|
|
|
|
if (this._enabled) {
|
|
|
|
process.stdout.write(os.EOL);
|
|
|
|
this._enabled = false;
|
|
|
|
}
|
|
|
|
},
|
|
|
|
update: function (index, percentComplete, color, title) {
|
|
|
|
percentComplete = minMax(percentComplete, 0, 1);
|
|
|
|
|
|
|
|
var progressBar = this._progressBars[index] || (this._progressBars[index] = { });
|
|
|
|
var width = this._options.width;
|
|
|
|
var n = Math.floor(width * percentComplete);
|
|
|
|
var i = width - n;
|
|
|
|
if (n === progressBar.lastN && title === progressBar.title && color === progressBar.progressColor) {
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
progressBar.lastN = n;
|
|
|
|
progressBar.title = title;
|
|
|
|
progressBar.progressColor = color;
|
|
|
|
|
|
|
|
var progress = " ";
|
|
|
|
progress += this._color('progress', this._options.open);
|
|
|
|
progress += this._color(color, fill(this._options.complete, n));
|
|
|
|
progress += this._color('progress', fill(this._options.incomplete, i));
|
|
|
|
progress += this._color('progress', this._options.close);
|
|
|
|
|
|
|
|
if (title) {
|
|
|
|
progress += this._color('progress', ' ' + title);
|
|
|
|
}
|
|
|
|
|
|
|
|
if (progressBar.text !== progress) {
|
|
|
|
progressBar.text = progress;
|
|
|
|
this._render(index);
|
|
|
|
}
|
|
|
|
},
|
|
|
|
_render: function (index) {
|
|
|
|
if (!this._enabled || !isatty) {
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
cursor.hide();
|
|
|
|
readline.moveCursor(process.stdout, -process.stdout.columns, -this._lineCount);
|
|
|
|
var lineCount = 0;
|
|
|
|
var numProgressBars = this._progressBars.length;
|
|
|
|
for (var i = 0; i < numProgressBars; i++) {
|
|
|
|
if (i === index) {
|
|
|
|
readline.clearLine(process.stdout, 1);
|
|
|
|
process.stdout.write(this._progressBars[i].text + os.EOL);
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
readline.moveCursor(process.stdout, -process.stdout.columns, +1);
|
|
|
|
}
|
|
|
|
|
|
|
|
lineCount++;
|
|
|
|
}
|
|
|
|
|
|
|
|
this._lineCount = lineCount;
|
|
|
|
cursor.show();
|
|
|
|
},
|
|
|
|
_color: function (type, text) {
|
|
|
|
return type && !this._options.noColors ? color(type, text) : text;
|
|
|
|
}
|
|
|
|
};
|
|
|
|
|
|
|
|
function fill(ch, size) {
|
|
|
|
var s = "";
|
|
|
|
while (s.length < size) {
|
|
|
|
s += ch;
|
|
|
|
}
|
|
|
|
|
|
|
|
return s.length > size ? s.substr(0, size) : s;
|
|
|
|
}
|
|
|
|
|
|
|
|
function minMax(value, min, max) {
|
|
|
|
if (value < min) return min;
|
|
|
|
if (value > max) return max;
|
|
|
|
return value;
|
|
|
|
}
|