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>
JSDocNamepaths span a lot of identifiers that we don't actually care
about, so it's incorrect for createChildren to add its children as
synthetic nodes.
* Add test
* Fix superfluous error when destructuring from object that includes spread assignment
* Update baseline to include error case
* Remove redundant check
* Always wrap classes with decorators or static properties in an IIFE
Currently only script targets less than or equal to ES5 will wrap classes. However, the wrapping is also crucial to file size optimizations for ES2015+ as well. Without the IIFE wrapper, minification tools do not elide the class. This is due to references to the class being present within the downlevelled decorator and static property code.
This change represents the full completion of issue #15857
* Accept new baselines
* Add/convert to failing tests.
* Stop offering to convert single string literals to template expressions.
* Ensure we're actually testing for single quotes.
* getCandidateForOverloadFailure:call resolveUntypedCall
This re-adds the missed errors and marks as used missed nodes from the
user and RWC baselines.
* Update baselines and remove new test
It was redundant with the old tests
* Defer resolveUntypedCall on resolution failure to give priority to parameter types fixed by overload signatures
Co-authored-by: Wesley Wigham <wwigham@gmail.com>