* add tests on regression 12386
* fix: update cache on _replaceWith
* fix: pathCache in replaceWithMultiple could be nullish
* Update packages/babel-traverse/src/path/replacement.js
Co-authored-by: Nicolò Ribaudo <nicolo.ribaudo@gmail.com>
* test: add replaceWith test to traverse
Co-authored-by: Brian Ng <bng412@gmail.com>
Co-authored-by: Nicolò Ribaudo <nicolo.ribaudo@gmail.com>
* test(do-expr): condition before break
* test(do-expr): labeled break
* fix(do-expr): add check for break in BlockStatement
* fix(do-expr): add LabeledStatement case for getCompletionRecords
* test(do-expr): rename condition before break to condition before expression
* revert(do-expr): undo remove break for do switch
* revert(do-expr): undo remove labeled break
* test(do-expr): add condition before break
* test(do-expr): update condition before break
* test(do-expr): remove labeled break
* fix(do-expr): add tree search in findBreak
* fix(do-expr): ignore isFunction case in findBreak
* Replace lodash 'includes' usage with Array.prototype.includes
* Replace lodash 'values' usage with Object.values
* Replace lodash 'uniq' usage with Array.from(new Set(...))
* Property safety: ensure that ignoreSuites/ignoreTasks are populated prior to access
* Property safety: ensure that blacklistTypes is populated prior to access
* Revert "Replace lodash 'values' usage with Object.values"
This reverts commit 9fd3679d6db03066daee09fad0050e5292a32aa1.
* Replace lodash 'repeat' usage with String.prototype.repeat
* Replace lodash 'isinteger' usage with Number.isInteger
* Remove explicit lodash dependency from babel-generator package
* Update packages/babel-helper-transform-fixture-test-runner/src/index.js
Co-authored-by: Brian Ng <bng412@gmail.com>
* Rely on optional chaining operator as sole boolean check
* Handle additional optional chaining operator simplification
* Update type signature
Co-authored-by: Brian Ng <bng412@gmail.com>
* Remove dead link
* Use consistent "homepage" url in package.json
* Update md links
* Update comment link in parser d.ts
* Add comment in gitpod config
* Update circleci config
* Update PULL_REQUEST_TEMPLATE
* Update badges
* Trigger CI
* Update 404 link
* 🔄 createUnionTypeAnnotation => createFlowUnionType
* ➕ add createFlowUnionType if it exists (in new versions only ⚠️)
* 🔄 use createFlowUnionType for createUnionTypeAnnotation
* ➕ add test fixture
* ➕ add removeTypeDuplicates for typescript
* ➕ add createTSUnionType for typescript
* 💊 fix ConditionalExpression for typescript
* 💊 fix ConditionalExpression
* 💊 fix added test case
* ➕ add new line at the end of the file
* 💊 types.every(f) => f(types[0])
* 🔄 bug => foo
* ➕ add TSBaseType
* ➕ add conditions NOT to break backward compatibility
* fix: parameter expression closure should not have access to the declaration inside function body
* fix: renameVisitor should skip when a pattern is a scope
* address review comments
* Don't use args rest/spread to hoist super method calls
* Hoist this in hoisted super method calls
* Make the code more readable
Review by edoardocavazza
* lint fix
* switch inside do expression
* review comments
* review comments
* make min diff
* adding more test
* review changes
* review changes
* handle block statement and added more test cases
* fix implementation and add more test cases
* fix last swtich case
* disable block fallthrough case
* fix nitpick reviews
* Better tdz tests
- Use jest's expect.toThrow/expect.not.toThrow
- Add input/output tests
* Fix basic tdz (a = 2; let a)
Fixes#6848
* Make _guessExecutionStatusRelativeTo more robust
* Add tests
* Return less "unkown" execution status
* "function" execution status does not exist
* Fix recursive functions
* Update helper version
* "finally" blocks are always executed
* Typo
* test case for insertBefore for jsx
* fix unshiftContainer and insertBefore
* use path.scope.push
* add test making sure computedKeys var declaration at the right block
* add comment
* nit [skip ci]
* @babel/traverse: Fix NodePath.getData
Currently, if the obtained value is `false`, it will be replaced by the given default value, which is invalid. This makes sure that we only set the default value when the value is `undefined`, instead of falsy.
* Add test and fix object protoype
* Allow false as default value
* Add parser createParenthesizedExpressions option …
When set to `true` we create `ParenthesizedExpression` nodes instead of
setting `extra.parenthesized`.
* Also update babel-parser.d.ts
In https://github.com/babel/babel/issues/9511 (and #9495 is another symptom), @PavelKastornyy reported a node crash becaue the JavaScript heap run out of memory. The problem was that their code was adding enumerable properties to `Object.prototype`: it is something that shouldn't be done, but Babel shouldn't make node crash if someone adds them.
I reduced down the problem to `for...in` loops in `@babel/traverse` that grew the memory consumption exponentially because of that unexpected properties.