Skip to content

Commit c4fddba

Browse files
committed
Remove duplicate implementations
1 parent 136c4d0 commit c4fddba

1 file changed

Lines changed: 5 additions & 72 deletions

File tree

src/compiler/transformers/es2017.ts

Lines changed: 5 additions & 72 deletions
Original file line numberDiff line numberDiff line change
@@ -322,7 +322,7 @@ namespace ts {
322322
const variables = getInitializedVariables(node);
323323
if (variables.length === 0) {
324324
if (hasReceiver) {
325-
return convertBindingNameToAssignmentTarget(node.declarations[0].name);
325+
return visitNode(convertToAssignmentElementTarget(node.declarations[0].name), visitor, isExpression);
326326
}
327327
return undefined;
328328
}
@@ -348,81 +348,14 @@ namespace ts {
348348
}
349349

350350
function transformInitializedVariable(node: VariableDeclaration) {
351-
return setSourceMapRange(
351+
const converted = setSourceMapRange(
352352
createAssignment(
353-
convertBindingNameToAssignmentTarget(node.name),
354-
visitNode(node.initializer, visitor, isExpression)
353+
convertToAssignmentElementTarget(node.name),
354+
node.initializer
355355
),
356356
node
357357
);
358-
}
359-
360-
function convertBindingNameToAssignmentTarget(node: BindingName): Identifier | AssignmentPattern {
361-
return isObjectBindingPattern(node) ? convertObjectBindingPatternToObjectAssignmentPattern(node) :
362-
isArrayBindingPattern(node) ? convertArrayBindingPatternToArrayAssignmentPattern(node) :
363-
setSourceMapRange(<Identifier>getSynthesizedClone(node), node);
364-
}
365-
366-
function convertObjectBindingPatternToObjectAssignmentPattern(node: ObjectBindingPattern): ObjectLiteralExpression {
367-
return createObjectLiteral(
368-
map(node.elements, convertObjectBindingElementToObjectAssignmentElement)
369-
);
370-
}
371-
372-
function convertObjectBindingElementToObjectAssignmentElement(node: BindingElement): ObjectLiteralElementLike {
373-
if (node.propertyName) {
374-
let expression: Expression = convertBindingNameToAssignmentTarget(node.name);
375-
if (node.initializer) {
376-
expression = createAssignment(expression, visitNode(node.initializer, visitor, isExpression));
377-
}
378-
return setSourceMapRange(
379-
createPropertyAssignment(
380-
visitNode(node.propertyName, visitor, isPropertyName),
381-
expression
382-
),
383-
node
384-
);
385-
}
386-
else if (node.dotDotDotToken) {
387-
return setSourceMapRange(
388-
createSpreadAssignment(
389-
visitNode(cast(node.name, isIdentifier), visitor, isIdentifier)
390-
),
391-
node
392-
);
393-
}
394-
else {
395-
return setSourceMapRange(
396-
createShorthandPropertyAssignment(
397-
visitNode(cast(node.name, isIdentifier), visitor, isIdentifier),
398-
visitNode(node.initializer, visitor, isExpression)
399-
),
400-
node
401-
);
402-
}
403-
}
404-
405-
function convertArrayBindingPatternToArrayAssignmentPattern(node: ArrayBindingPattern): ArrayLiteralExpression {
406-
return setSourceMapRange(
407-
createArrayLiteral(
408-
map(node.elements, convertArrayBindingElementToArrayAssignmentElement)
409-
),
410-
node
411-
);
412-
}
413-
414-
function convertArrayBindingElementToArrayAssignmentElement(node: ArrayBindingElement): Expression {
415-
if (isOmittedExpression(node)) return node;
416-
let expression: Expression = convertBindingNameToAssignmentTarget(node.name);
417-
if (node.initializer) {
418-
expression = createAssignment(expression, visitNode(node.initializer, visitor, isExpression));
419-
setSourceMapRange(expression, node);
420-
}
421-
else if (node.dotDotDotToken) {
422-
expression = createSpread(expression);
423-
setSourceMapRange(expression, node);
424-
}
425-
return expression;
358+
return visitNode(converted, visitor, isExpression);
426359
}
427360

428361
function collidesWithParameterName({ name }: VariableDeclaration | BindingElement): boolean {

0 commit comments

Comments
 (0)