* Adding support for @implements.
* Fixed code review issues for @implements, added some more tests.
* Fixed declaration emit for @interface
* Improved getImplementsTypes to not cache the results since it is only used once.
* Removed unnecessary checks from getImplementsTypes
* Add tests for specifying composite as command line option
* Allow passing --composite false on commandline
* Add test to verify tsc --composite false from command line
* Handle "undefined" as option value to be set to undefined for that option
* Support "null" as option to be converted to undefined which is normally end result from our config file as well
* Support null as option for any tsconfig only option as well, and dont support undefined
* Fix public api test case
* Validates objects instead of stringify result
* Add composite true to base source
No error on `this` expressions in static property declaration
initialisers when targetting ESNext and with useDefineForClassFields. In
this case the emit is correct and the types are correct, so the error
should not be issued.
* Emit an export assignment even when the initializer is elided
* User a void 0; and elide assignments for enum/namespace-sourced exported variables
* HAHA, SIMPLIFY GREATLY
* Unwrap substitutions both before _and_ after potential simplification
* Repeatedly unwrap/simplify until no more can be performed
* Use seperate loops for source and target to reduce redundant calls
* Move loop into function
* Inline worker
* Properly handle control flows from returns in try/catch within IIFE
* Accept new baselines
* Add tests
* Accept new baselines
* When end of finally is unreachable, end of try statement is too
* Add additional test case
* Fix tests when there are project references but has disableSourceOfProjectReferenceRedirect
* Handle getScriptVersion correctly to ensure program structure is checked correctly
Fixes#36748
* Harness's language service host doesnt have getProjectVersion.
This means earlier we were creating fresh program everytime we did LS operation
Now we reuse same program, so quick info depends on order of quickinfo demands
* Because same program is used, it unvails a bug that if `export=` is evaluated before finding references, it cant find all definitions from the merge
* Update src/server/project.ts
Co-Authored-By: Nathan Shively-Sanders <293473+sandersn@users.noreply.github.com>
* Make clearSourceMapperCache required
Co-authored-by: Nathan Shively-Sanders <293473+sandersn@users.noreply.github.com>
* Adds floating block comments to the outlining spans response
* Only use one route for grabbing outline nodes, which now includes special casing the EOF token
THe code to bind `@enum` and `@typedef` didn't handle the case that the
`@enum` was on a property assignment to an alias of module.exports.
Specifically, `x` needs to be correctly aliased to the file's symbol in
the example below:
```
var x = module.exports = {};
/** @enum {string} */
x.E = {
A: "A"
};
```
* use getters to define live export bindings
* fix scoping in export* helper
* Object.defineProperty cannot be used in ES3 target
* Accept changed baselines
* Use function expression, not arrow function
* Update importStarHelper to match export helper in binding-making
* Fix whitespace
* Adjust whitespace in edited helpers
* Use new helper for setting bindings, use unscoped __exportStar helper for exports so helpers get reused more
* Accept updated baselines
* Use __createBinding for individual reexports when target is es3
* Remove unneeded type assertion
* Singeline the helpers
* Add check for createBinding helper, accept updated baselines with shortened helper
Co-authored-by: Michael Rawlings <mirawlings@ebay.com>