* test: add test for nullish coalescing
Co-Authored-By: Nicolò Ribaudo <nicolo.ribaudo@gmail.com>
* test: add control group
* test: add tests for optional chaining
Co-Authored-By: Nicolò Ribaudo <nicolo.ribaudo@gmail.com>
* test: add tests on optional chaining mixed with private class elements
* fix: wrap member chains to IIFE when it is in parameter default
* chore: add more testcases
* chore: update test fixtures
* fix: NodePath.get is always non nullish
Co-authored-by: Nicolò Ribaudo <nicolo.ribaudo@gmail.com>
* add support for logical assignments with private properties
Patches the logic for handling assignment operators and adds support for
handling the logical assignment operators appropriately.
Fixes: https://github.com/babel/babel/issues/11646
* replace hardcoded logical assignment operators with constant
Replace a hardcoded check for logical assignment operators with the
LOGICAL_OPERATORS constant in
plugin-proposal-logical-assignment-operators.
Refs: https://github.com/babel/babel/pull/11702#discussion_r438554423
* destructuring private fields with array pattern / object pattern
* wip: new test cases
* destrucuring and rest for private properties
* test case for loose private-loose
* add transform-desturcturing for exec
* update test case
* remove getPrototypeOf imports from get and set
* wip: destructure super assignment
* throw "Destructuring to a super field is not supported yet."
* fix tests and fix assignment pattern
* remove CallExpression from AssignmentPattern
* Update member-expression-to-functions
1. Babel using British spellings, so `memoise`
2. Provide a helper `AssignmentMemoiser` class, which will assign the memo'd value with the `n`th access.
* Private properties!
* Fixes
* Tests
* Update helper name
* Fix privates that reference other privates
* Don't extend a builtin
* Rebase
* Implement MemberExpressionToFunctions helper
Fixes#7733.
This will also be used to simplify the Private Fields transform, which had [almost the same code](ccd941057a/packages/babel-plugin-proposal-class-properties/src/index.js (L114-L217)) hand written.
* Cleanup
* Little more comment cleanup
* Use unary plus
This can't be redefined, unlike the `Number` identifier.
* Review comments
* Remove unused deps