PR Feedback
This commit is contained in:
parent
4577441636
commit
319ff614a0
2 changed files with 22 additions and 15 deletions
|
@ -1962,16 +1962,20 @@ namespace ts {
|
||||||
transformFlags = TransformFlags.AssertTypeScript;
|
transformFlags = TransformFlags.AssertTypeScript;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case SyntaxKind.ExpressionStatement:
|
case SyntaxKind.ExpressionStatement:
|
||||||
// if (node.flags & NodeFlags.Generated) {
|
if (nodeIsSynthesized(node)) {
|
||||||
// let expression = (<ExpressionStatement>node).expression;
|
const expression = (<ExpressionStatement>node).expression;
|
||||||
// if (expression.kind === SyntaxKind.CallExpression
|
if (nodeIsSynthesized(expression)
|
||||||
// && (<CallExpression>expression).expression.kind === SyntaxKind.SuperKeyword) {
|
&& isCallExpression(expression)
|
||||||
// transformFlags |= TransformFlags.AssertES6;
|
&& expression.expression.kind === SyntaxKind.SuperKeyword) {
|
||||||
// }
|
// A synthesized call to `super` should be transformed to a cleaner emit
|
||||||
// }
|
// when transpiling to ES5/3.
|
||||||
|
transformFlags |= TransformFlags.AssertES6;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -2082,17 +2086,16 @@ namespace ts {
|
||||||
|
|
||||||
case SyntaxKind.VariableDeclarationList:
|
case SyntaxKind.VariableDeclarationList:
|
||||||
// If a VariableDeclarationList is `let` or `const`, then it is ES6 syntax.
|
// If a VariableDeclarationList is `let` or `const`, then it is ES6 syntax.
|
||||||
if (node.flags & NodeFlags.Let
|
if (node.flags & NodeFlags.BlockScoped) {
|
||||||
|| node.flags & NodeFlags.Const) {
|
|
||||||
transformFlags |= TransformFlags.AssertES6;
|
transformFlags |= TransformFlags.AssertES6;
|
||||||
}
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case SyntaxKind.VariableStatement:
|
case SyntaxKind.VariableStatement:
|
||||||
// If a VariableStatement is exported, then it is ES6 syntax.
|
// If a VariableStatement is exported, then it is either ES6 or TypeScript syntax.
|
||||||
if (node.flags & NodeFlags.Export) {
|
if (node.flags & NodeFlags.Export) {
|
||||||
transformFlags |= TransformFlags.AssertES6;
|
transformFlags |= TransformFlags.AssertES6 | TransformFlags.AssertTypeScript;
|
||||||
}
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
@ -2114,13 +2117,13 @@ namespace ts {
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case SyntaxKind.HeritageClause:
|
case SyntaxKind.HeritageClause:
|
||||||
// An `extends` HertiageClause is ES6 syntax.
|
|
||||||
if ((<HeritageClause>node).token === SyntaxKind.ExtendsKeyword) {
|
if ((<HeritageClause>node).token === SyntaxKind.ExtendsKeyword) {
|
||||||
|
// An `extends` HeritageClause is ES6 syntax.
|
||||||
transformFlags |= TransformFlags.AssertES6;
|
transformFlags |= TransformFlags.AssertES6;
|
||||||
}
|
}
|
||||||
|
else {
|
||||||
// An `implements` HeritageClause is TypeScript syntax.
|
// An `implements` HeritageClause is TypeScript syntax.
|
||||||
else if ((<HeritageClause>node).token === SyntaxKind.ImplementsKeyword) {
|
Debug.assert((<HeritageClause>node).token === SyntaxKind.ImplementsKeyword);
|
||||||
transformFlags |= TransformFlags.AssertTypeScript;
|
transformFlags |= TransformFlags.AssertTypeScript;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -2640,6 +2640,10 @@ namespace ts {
|
||||||
return node.kind === SyntaxKind.BinaryExpression;
|
return node.kind === SyntaxKind.BinaryExpression;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export function isCallExpression(node: Node): node is CallExpression {
|
||||||
|
return node.kind === SyntaxKind.CallExpression;
|
||||||
|
}
|
||||||
|
|
||||||
export function isTemplate(node: Node): node is Template {
|
export function isTemplate(node: Node): node is Template {
|
||||||
const kind = node.kind;
|
const kind = node.kind;
|
||||||
return kind === SyntaxKind.TemplateExpression
|
return kind === SyntaxKind.TemplateExpression
|
||||||
|
|
Loading…
Reference in a new issue