diff options
Diffstat (limited to 'tools/node_modules/eslint/node_modules/@babel/generator/lib/generators/methods.js')
-rw-r--r-- | tools/node_modules/eslint/node_modules/@babel/generator/lib/generators/methods.js | 42 |
1 files changed, 35 insertions, 7 deletions
diff --git a/tools/node_modules/eslint/node_modules/@babel/generator/lib/generators/methods.js b/tools/node_modules/eslint/node_modules/@babel/generator/lib/generators/methods.js index 1018e2152a9..3277531b938 100644 --- a/tools/node_modules/eslint/node_modules/@babel/generator/lib/generators/methods.js +++ b/tools/node_modules/eslint/node_modules/@babel/generator/lib/generators/methods.js @@ -29,7 +29,9 @@ function _params(node) { } function _parameters(parameters, parent) { - for (let i = 0; i < parameters.length; i++) { + const paramLength = parameters.length; + + for (let i = 0; i < paramLength; i++) { this._param(parameters[i], parent); if (i < parameters.length - 1) { @@ -37,6 +39,10 @@ function _parameters(parameters, parent) { this.space(); } } + + if (paramLength === 0) { + this.printInnerComments(parent); + } } function _param(parameter, parent) { @@ -59,25 +65,36 @@ function _methodHead(node) { this.space(); } - if (node.async) { - this._catchUp("start", key.loc); + const { + _noLineTerminator + } = this; + if (node.async) { + this._noLineTerminator = true; this.word("async"); this.space(); } if (kind === "method" || kind === "init") { if (node.generator) { + if (node.async) { + this.printInnerComments(node); + } + this.tokenChar(42); + this._noLineTerminator = _noLineTerminator; } } if (node.computed) { this.tokenChar(91); + this._noLineTerminator = _noLineTerminator; this.print(key, node); this.tokenChar(93); + this.printInnerComments(node); } else { this.print(key, node); + this._noLineTerminator = _noLineTerminator; } if (node.optional) { @@ -128,23 +145,34 @@ function FunctionExpression(node) { } function ArrowFunctionExpression(node) { + const { + _noLineTerminator + } = this; + if (node.async) { + this._noLineTerminator = true; this.word("async"); this.space(); } - const firstParam = node.params[0]; + let firstParam; - if (!this.format.retainLines && !this.format.auxiliaryCommentBefore && !this.format.auxiliaryCommentAfter && node.params.length === 1 && isIdentifier(firstParam) && !hasTypesOrComments(node, firstParam)) { + if (!this.format.retainLines && node.params.length === 1 && isIdentifier(firstParam = node.params[0]) && !hasTypesOrComments(node, firstParam)) { this.print(firstParam, node); + this._noLineTerminator = _noLineTerminator; } else { + this._noLineTerminator = _noLineTerminator; + this._params(node); } this._predicate(node); - this.space(); - this.token("=>"); + this.ensureNoLineTerminator(() => { + this.space(); + this.printInnerComments(node); + this.token("=>"); + }); this.space(); this.print(node.body, node); } |