diff --git a/internal/ast/ast.go b/internal/ast/ast.go index 388404b3de..caad579102 100644 --- a/internal/ast/ast.go +++ b/internal/ast/ast.go @@ -263,6 +263,12 @@ func (n *Node) TemplateLiteralLikeData() *TemplateLiteralLikeBase { } func (n *Node) KindString() string { return n.Kind.String() } func (n *Node) KindValue() int16 { return int16(n.Kind) } +func (n *Node) Decorators() []*Node { + if n.Modifiers() == nil { + return nil + } + return core.Filter(n.Modifiers().Nodes, IsDecorator) +} type MutableNode Node @@ -6300,7 +6306,7 @@ func (node *BinaryExpression) computeSubtreeFacts() SubtreeFacts { propagateSubtreeFacts(node.Type) | propagateSubtreeFacts(node.OperatorToken) | propagateSubtreeFacts(node.Right) | - core.IfElse(node.OperatorToken.Kind == KindInKeyword && IsPrivateIdentifier(node.Left), SubtreeContainsClassFields, SubtreeFactsNone) + core.IfElse(node.OperatorToken.Kind == KindInKeyword && IsPrivateIdentifier(node.Left), SubtreeContainsClassFields|SubtreeContainsPrivateIdentifierInExpression, SubtreeFactsNone) } func (node *BinaryExpression) setModifiers(modifiers *ModifierList) { node.modifiers = modifiers } @@ -6753,9 +6759,13 @@ func (node *PropertyAccessExpression) Clone(f NodeFactoryCoercible) *Node { func (node *PropertyAccessExpression) Name() *DeclarationName { return node.name } func (node *PropertyAccessExpression) computeSubtreeFacts() SubtreeFacts { + privateName := SubtreeFactsNone + if !IsIdentifier(node.name) { + privateName = SubtreeContainsPrivateIdentifierInExpression + } return propagateSubtreeFacts(node.Expression) | propagateSubtreeFacts(node.QuestionDotToken) | - propagateSubtreeFacts(node.name) + propagateSubtreeFacts(node.name) | privateName } func (node *PropertyAccessExpression) propagateSubtreeFacts() SubtreeFacts { diff --git a/internal/ast/subtreefacts.go b/internal/ast/subtreefacts.go index 08d2ce14de..e33d067e3b 100644 --- a/internal/ast/subtreefacts.go +++ b/internal/ast/subtreefacts.go @@ -37,6 +37,7 @@ const ( SubtreeContainsClassFields SubtreeContainsDecorators SubtreeContainsIdentifier + SubtreeContainsPrivateIdentifierInExpression SubtreeFactsComputed // NOTE: This should always be last SubtreeFactsNone SubtreeFacts = 0 diff --git a/internal/ast/utilities.go b/internal/ast/utilities.go index fff659314b..c2adc539ab 100644 --- a/internal/ast/utilities.go +++ b/internal/ast/utilities.go @@ -3941,3 +3941,221 @@ func IsPotentiallyExecutableNode(node *Node) bool { } return IsClassDeclaration(node) || IsEnumDeclaration(node) || IsModuleDeclaration(node) } + +func HasAbstractModifier(node *Node) bool { + return HasSyntacticModifier(node, ModifierFlagsAbstract) +} + +func HasAmbientModifier(node *Node) bool { + return HasSyntacticModifier(node, ModifierFlagsAmbient) +} + +func NodeCanBeDecorated(useLegacyDecorators bool, node *Node, parent *Node, grandparent *Node) bool { + // private names cannot be used with decorators yet + if useLegacyDecorators && node.Name() != nil && IsPrivateIdentifier(node.Name()) { + return false + } + switch node.Kind { + case KindClassDeclaration: + // class declarations are valid targets + return true + case KindClassExpression: + // class expressions are valid targets for native decorators + return !useLegacyDecorators + case KindPropertyDeclaration: + // property declarations are valid if their parent is a class declaration. + return parent != nil && (useLegacyDecorators && IsClassDeclaration(parent) || + !useLegacyDecorators && IsClassLike(parent) && !HasAbstractModifier(node) && !HasAmbientModifier(node)) + case KindGetAccessor, KindSetAccessor, KindMethodDeclaration: + // if this method has a body and its parent is a class declaration, this is a valid target. + return parent != nil && node.Body() != nil && (useLegacyDecorators && IsClassDeclaration(parent) || + !useLegacyDecorators && IsClassLike(parent)) + case KindParameter: + // TODO(rbuckton): Parameter decorator support for ES decorators must wait until it is standardized + if !useLegacyDecorators { + return false + } + // if the parameter's parent has a body and its grandparent is a class declaration, this is a valid target. + return parent != nil && parent.Body() != nil && + (parent.Kind == KindConstructor || parent.Kind == KindMethodDeclaration || parent.Kind == KindSetAccessor) && + GetThisParameter(parent) != node && grandparent != nil && grandparent.Kind == KindClassDeclaration + } + + return false +} + +func ClassOrConstructorParameterIsDecorated(useLegacyDecorators bool, node *Node) bool { + if nodeIsDecorated(useLegacyDecorators, node, nil, nil) { + return true + } + constructor := GetFirstConstructorWithBody(node) + return constructor != nil && ChildIsDecorated(useLegacyDecorators, constructor, node) +} + +func ClassElementOrClassElementParameterIsDecorated(useLegacyDecorators bool, node *Node, parent *Node) bool { + var parameters *NodeList + if IsAccessor(node) { + decls := GetAllAccessorDeclarations(parent.Members(), node) + var firstAccessorWithDecorators *Node + if HasDecorators(decls.FirstAccessor) { + firstAccessorWithDecorators = decls.FirstAccessor + } else if HasDecorators(decls.SecondAccessor) { + firstAccessorWithDecorators = decls.SecondAccessor + } + if firstAccessorWithDecorators == nil || node != firstAccessorWithDecorators { + return false + } + if decls.SetAccessor != nil { + parameters = decls.SetAccessor.Parameters + } + } else if IsMethodDeclaration(node) { + parameters = node.ParameterList() + } + if nodeIsDecorated(useLegacyDecorators, node, parent, nil) { + return true + } + if parameters != nil && len(parameters.Nodes) > 0 { + for _, parameter := range parameters.Nodes { + if IsThisParameter(parameter) { + continue + } + if nodeIsDecorated(useLegacyDecorators, parameter, node, parent) { + return true + } + } + } + return false +} + +func nodeIsDecorated(useLegacyDecorators bool, node *Node, parent *Node, grandparent *Node) bool { + return HasDecorators(node) && NodeCanBeDecorated(useLegacyDecorators, node, parent, grandparent) +} + +func NodeOrChildIsDecorated(useLegacyDecorators bool, node *Node, parent *Node, grandparent *Node) bool { + return nodeIsDecorated(useLegacyDecorators, node, parent, grandparent) || ChildIsDecorated(useLegacyDecorators, node, parent) +} + +func ChildIsDecorated(useLegacyDecorators bool, node *Node, parent *Node) bool { + switch node.Kind { + case KindClassDeclaration, KindClassExpression: + return core.Some(node.Members(), func(m *Node) bool { + return NodeOrChildIsDecorated(useLegacyDecorators, m, node, parent) + }) + case KindMethodDeclaration, + KindSetAccessor, + KindConstructor: + return core.Some(node.Parameters(), func(p *Node) bool { + return nodeIsDecorated(useLegacyDecorators, p, node, parent) + }) + default: + return false + } +} + +type AllAccessorDeclarations struct { + FirstAccessor *AccessorDeclaration + SecondAccessor *AccessorDeclaration + SetAccessor *SetAccessorDeclaration + GetAccessor *GetAccessorDeclaration +} + +func GetAllAccessorDeclarationsForDeclaration(accessor *AccessorDeclaration, declarationsOfSymbol []*Node) AllAccessorDeclarations { + var otherKind Kind + if accessor.Kind == KindSetAccessor { + otherKind = KindGetAccessor + } else if accessor.Kind == KindGetAccessor { + otherKind = KindSetAccessor + } else { + panic(fmt.Sprintf("Unexpected node kind %q", accessor.Kind)) + } + // otherAccessor := ast.GetDeclarationOfKind(c.getSymbolOfDeclaration(accessor), otherKind) + var otherAccessor *AccessorDeclaration + for _, d := range declarationsOfSymbol { + if d.Kind == otherKind { + otherAccessor = d + break + } + } + + var firstAccessor *AccessorDeclaration + var secondAccessor *AccessorDeclaration + if otherAccessor != nil && (otherAccessor.Pos() < accessor.Pos()) { + firstAccessor = otherAccessor + secondAccessor = accessor + } else { + firstAccessor = accessor + secondAccessor = otherAccessor + } + + var setAccessor *SetAccessorDeclaration + var getAccessor *GetAccessorDeclaration + if accessor.Kind == KindSetAccessor { + setAccessor = accessor.AsSetAccessorDeclaration() + if otherAccessor != nil { + getAccessor = otherAccessor.AsGetAccessorDeclaration() + } + } else { + getAccessor = accessor.AsGetAccessorDeclaration() + if otherAccessor != nil { + setAccessor = otherAccessor.AsSetAccessorDeclaration() + } + } + + return AllAccessorDeclarations{ + FirstAccessor: firstAccessor, + SecondAccessor: secondAccessor, + SetAccessor: setAccessor, + GetAccessor: getAccessor, + } +} + +func GetAllAccessorDeclarations(parentDeclarations []*Node, accessor *AccessorDeclaration) AllAccessorDeclarations { + if HasDynamicName(accessor) { + // dynamic names can only be match up via checker symbol lookup, just return an object with just this accessor + return GetAllAccessorDeclarationsForDeclaration(accessor, []*Node{accessor}) + } + + accessorName := GetPropertyNameForPropertyNameNode(accessor.Name()) + accessorStatic := IsStatic(accessor) + var matches []*Node + for _, member := range parentDeclarations { + if !IsAccessor(member) || IsStatic(member) != accessorStatic { + continue + } + memberName := GetPropertyNameForPropertyNameNode(member.Name()) + if memberName == accessorName { + matches = append(matches, member) + } + } + return GetAllAccessorDeclarationsForDeclaration(accessor, matches) +} + +func IsAsyncFunction(node *Node) bool { + switch node.Kind { + case KindFunctionDeclaration, KindFunctionExpression, KindArrowFunction, KindMethodDeclaration: + data := node.BodyData() + return data.Body != nil && data.AsteriskToken == nil && HasSyntacticModifier(node, ModifierFlagsAsync) + } + return false +} + +/** + * Gets the most likely element type for a TypeNode. This is not an exhaustive test + * as it assumes a rest argument can only be an array type (either T[], or Array). + * + * @param node The type node. + * + * @internal + */ +func GetRestParameterElementType(node *ParameterDeclarationNode) *Node { + if node == nil { + return node + } + if node.Kind == KindArrayType { + return node.AsArrayTypeNode().ElementType + } + if node.Kind == KindTypeReference && node.AsTypeReferenceNode().TypeArguments != nil { + return core.FirstOrNil(node.AsTypeReferenceNode().TypeArguments.Nodes) + } + return nil +} diff --git a/internal/binder/binder.go b/internal/binder/binder.go index e918c72af0..0bdf2d76b0 100644 --- a/internal/binder/binder.go +++ b/internal/binder/binder.go @@ -2648,15 +2648,6 @@ func getOptionalSymbolFlagForNode(node *ast.Node) ast.SymbolFlags { return core.IfElse(postfixToken != nil && postfixToken.Kind == ast.KindQuestionToken, ast.SymbolFlagsOptional, ast.SymbolFlagsNone) } -func isAsyncFunction(node *ast.Node) bool { - switch node.Kind { - case ast.KindFunctionDeclaration, ast.KindFunctionExpression, ast.KindArrowFunction, ast.KindMethodDeclaration: - data := node.BodyData() - return data.Body != nil && data.AsteriskToken == nil && ast.HasSyntacticModifier(node, ast.ModifierFlagsAsync) - } - return false -} - func isFunctionSymbol(symbol *ast.Symbol) bool { d := symbol.ValueDeclaration if d != nil { diff --git a/internal/checker/checker.go b/internal/checker/checker.go index 8f5065c9be..6d8953871b 100644 --- a/internal/checker/checker.go +++ b/internal/checker/checker.go @@ -4547,7 +4547,7 @@ func (c *Checker) checkMembersForOverrideModifier(node *ast.Node, t *Type, typeW } baseStaticType := c.getBaseConstructorTypeOfClass(t) for _, member := range node.Members() { - if !hasAmbientModifier(member) { + if !ast.HasAmbientModifier(member) { if ast.IsConstructorDeclaration(member) { for _, param := range member.Parameters() { if ast.IsParameterPropertyDeclaration(param, member) { @@ -4600,7 +4600,7 @@ func (c *Checker) checkMemberForOverrideModifier(node *ast.Node, staticType *Typ return } if baseProp != nil && len(baseProp.Declarations) != 0 && !memberHasOverrideModifier && c.compilerOptions.NoImplicitOverride.IsTrue() && node.Flags&ast.NodeFlagsAmbient == 0 { - baseHasAbstract := core.Some(baseProp.Declarations, hasAbstractModifier) + baseHasAbstract := core.Some(baseProp.Declarations, ast.HasAbstractModifier) if !baseHasAbstract { message := core.IfElse(ast.IsParameter(member), core.IfElse(isJs, diagnostics.This_parameter_property_must_have_a_JSDoc_comment_with_an_override_tag_because_it_overrides_a_member_in_the_base_class_0, diagnostics.This_parameter_property_must_have_an_override_modifier_because_it_overrides_a_member_in_base_class_0), @@ -4608,7 +4608,7 @@ func (c *Checker) checkMemberForOverrideModifier(node *ast.Node, staticType *Typ c.error(member, message, c.TypeToString(baseWithThis)) return } - if hasAbstractModifier(member) && baseHasAbstract { + if ast.HasAbstractModifier(member) && baseHasAbstract { c.error(member, diagnostics.This_member_must_have_an_override_modifier_because_it_overrides_an_abstract_method_that_is_declared_in_the_base_class_0, c.TypeToString(baseWithThis)) } } @@ -4790,7 +4790,7 @@ func (c *Checker) checkPropertyInitialization(node *ast.Node) { } func (c *Checker) isPropertyWithoutInitializer(node *ast.Node) bool { - return ast.IsPropertyDeclaration(node) && !hasAbstractModifier(node) && !isExclamationToken(node.PostfixToken()) && node.Initializer() == nil + return ast.IsPropertyDeclaration(node) && !ast.HasAbstractModifier(node) && !isExclamationToken(node.PostfixToken()) && node.Initializer() == nil } func (c *Checker) isPropertyInitializedInStaticBlocks(propName *ast.Node, propType *Type, staticBlocks []*ast.Node, startPos int, endPos int) bool { @@ -5822,7 +5822,7 @@ func (c *Checker) checkVarDeclaredNamesNotShadowed(node *ast.Node) { func (c *Checker) checkDecorators(node *ast.Node) { // skip this check for nodes that cannot have decorators. These should have already had an error reported by // checkGrammarModifiers. - if !ast.CanHaveDecorators(node) || !ast.HasDecorators(node) || !nodeCanBeDecorated(c.legacyDecorators, node, node.Parent, node.Parent.Parent) { + if !ast.CanHaveDecorators(node) || !ast.HasDecorators(node) || !ast.NodeCanBeDecorated(c.legacyDecorators, node, node.Parent, node.Parent.Parent) { return } firstDecorator := core.Find(node.ModifierNodes(), ast.IsDecorator) @@ -21282,56 +21282,6 @@ func isConflictingPrivateProperty(prop *ast.Symbol) bool { return prop.ValueDeclaration == nil && prop.CheckFlags&ast.CheckFlagsContainsPrivate != 0 } -type allAccessorDeclarations struct { - firstAccessor *ast.AccessorDeclaration - secondAccessor *ast.AccessorDeclaration - setAccessor *ast.SetAccessorDeclaration - getAccessor *ast.GetAccessorDeclaration -} - -func (c *Checker) getAllAccessorDeclarationsForDeclaration(accessor *ast.AccessorDeclaration) allAccessorDeclarations { - var otherKind ast.Kind - if accessor.Kind == ast.KindSetAccessor { - otherKind = ast.KindGetAccessor - } else if accessor.Kind == ast.KindGetAccessor { - otherKind = ast.KindSetAccessor - } else { - panic(fmt.Sprintf("Unexpected node kind %q", accessor.Kind)) - } - otherAccessor := ast.GetDeclarationOfKind(c.getSymbolOfDeclaration(accessor), otherKind) - - var firstAccessor *ast.AccessorDeclaration - var secondAccessor *ast.AccessorDeclaration - if otherAccessor != nil && (otherAccessor.Pos() < accessor.Pos()) { - firstAccessor = otherAccessor - secondAccessor = accessor - } else { - firstAccessor = accessor - secondAccessor = otherAccessor - } - - var setAccessor *ast.SetAccessorDeclaration - var getAccessor *ast.GetAccessorDeclaration - if accessor.Kind == ast.KindSetAccessor { - setAccessor = accessor.AsSetAccessorDeclaration() - if otherAccessor != nil { - getAccessor = otherAccessor.AsGetAccessorDeclaration() - } - } else { - getAccessor = accessor.AsGetAccessorDeclaration() - if otherAccessor != nil { - setAccessor = otherAccessor.AsSetAccessorDeclaration() - } - } - - return allAccessorDeclarations{ - firstAccessor: firstAccessor, - secondAccessor: secondAccessor, - setAccessor: setAccessor, - getAccessor: getAccessor, - } -} - func (c *Checker) getTypeArguments(t *Type) []*Type { d := t.AsTypeReference() if d.resolvedTypeArguments == nil { @@ -27518,7 +27468,7 @@ func (c *Checker) markLinkedReferences(location *ast.Node, hint ReferenceHint, p if !c.compilerOptions.EmitDecoratorMetadata.IsTrue() { return } - if !ast.CanHaveDecorators(location) || !ast.HasDecorators(location) || location.Modifiers() == nil || !nodeCanBeDecorated(c.legacyDecorators, location, location.Parent, location.Parent.Parent) { + if !ast.CanHaveDecorators(location) || !ast.HasDecorators(location) || location.Modifiers() == nil || !ast.NodeCanBeDecorated(c.legacyDecorators, location, location.Parent, location.Parent.Parent) { return } @@ -27731,7 +27681,119 @@ func (c *Checker) markExportSpecifierAliasReferenced(location *ast.ExportSpecifi } func (c *Checker) markDecoratorAliasReferenced(node *ast.Node /*HasDecorators*/) { - // !!! Implement if/when we support emitDecoratorMetadata + if c.compilerOptions.EmitDecoratorMetadata.IsFalseOrUnknown() { + return + } + firstDecorator := core.FirstOrNil(node.Decorators()) + if firstDecorator == nil { + return + } + + // c.checkExternalEmitHelpers(firstDecorator, ExternalEmitHelpersMetadata) // !!! `importHelpers` checking missing? + + // we only need to perform these checks if we are emitting serialized type metadata for the target of a decorator. + switch node.Kind { + case ast.KindClassDeclaration: + ctor := ast.GetFirstConstructorWithBody(node) + if ctor != nil { + for _, p := range ctor.Parameters() { + c.markDecoratorMedataDataTypeNodeAsReferenced(c.getParameterTypeNodeForDecoratorCheck(p)) + } + } + case ast.KindGetAccessor, ast.KindSetAccessor: + otherKind := ast.KindSetAccessor + if node.Kind == ast.KindSetAccessor { + otherKind = ast.KindGetAccessor + } + otherAccessor := ast.GetDeclarationOfKind(c.getSymbolOfDeclaration(node), otherKind) + annotation := c.getAnnotatedAccessorTypeNode(node) + if annotation == nil && otherAccessor != nil { + annotation = c.getAnnotatedAccessorTypeNode(otherAccessor) + } + c.markDecoratorMedataDataTypeNodeAsReferenced(annotation) + case ast.KindMethodDeclaration: + for _, p := range node.Parameters() { + c.markDecoratorMedataDataTypeNodeAsReferenced(c.getParameterTypeNodeForDecoratorCheck(p)) + } + c.markDecoratorMedataDataTypeNodeAsReferenced(node.Type()) + case ast.KindPropertyDeclaration: + c.markDecoratorMedataDataTypeNodeAsReferenced(node.Type()) + case ast.KindParameter: + c.markDecoratorMedataDataTypeNodeAsReferenced(c.getParameterTypeNodeForDecoratorCheck(node)) + containingSignature := node.Parent + for _, p := range containingSignature.Parameters() { + c.markDecoratorMedataDataTypeNodeAsReferenced(c.getParameterTypeNodeForDecoratorCheck(p)) + } + c.markDecoratorMedataDataTypeNodeAsReferenced(containingSignature.Type()) + } +} + +func (c *Checker) getParameterTypeNodeForDecoratorCheck(node *ast.ParameterDeclarationNode) *ast.Node { + typeNode := node.Type() + if node.AsParameterDeclaration().DotDotDotToken != nil { + return ast.GetRestParameterElementType(typeNode) + } + return typeNode +} + +func (c *Checker) markDecoratorMedataDataTypeNodeAsReferenced(node *ast.Node /*TypeNode*/) { + entityName := c.getEntityNameForDecoratorMetadata(node) + if entityName != nil && ast.IsEntityName(entityName) { + c.markEntityNameOrEntityExpressionAsReference(entityName, true) + } +} + +func (c *Checker) getEntityNameForDecoratorMetadata(node *ast.Node) *ast.Node { + if node == nil { + return node + } + switch node.Kind { + case ast.KindIntersectionType: + return c.getEntityNameForDecoratorMetadataFromTypeList(node.AsIntersectionTypeNode().Types.Nodes) + case ast.KindUnionType: + return c.getEntityNameForDecoratorMetadataFromTypeList(node.AsUnionTypeNode().Types.Nodes) + case ast.KindConditionalType: + return c.getEntityNameForDecoratorMetadataFromTypeList([]*ast.Node{node.AsConditionalTypeNode().TrueType, node.AsConditionalTypeNode().FalseType}) + case ast.KindParenthesizedType: + return c.getEntityNameForDecoratorMetadata(node.AsParenthesizedTypeNode().Type) + case ast.KindNamedTupleMember: + return c.getEntityNameForDecoratorMetadata(node.AsNamedTupleMember().Type) + case ast.KindTypeReference: + return node.AsTypeReferenceNode().TypeName + } + return nil +} + +func (c *Checker) getEntityNameForDecoratorMetadataFromTypeList(typeNodes []*ast.Node) *ast.Node { + var commonEntityName *ast.Node + for _, typeNode := range typeNodes { + if typeNode.Kind == ast.KindNeverKeyword { + continue // Always elide `never` from the union/intersection if possible + } + if !c.strictNullChecks && (typeNode.Kind == ast.KindLiteralType && typeNode.AsLiteralTypeNode().Literal.Kind == ast.KindNullKeyword || typeNode.Kind == ast.KindUndefinedKeyword) { + continue // Elide null and undefined from unions for metadata, just like what we did prior to the implementation of strict null checks + } + individualEntityName := c.getEntityNameForDecoratorMetadata(typeNode) + if individualEntityName == nil { + // Individual is something like string number + // So it would be serialized to either that type or object + // Safe to return here + return nil + } + + if commonEntityName == nil { + commonEntityName = individualEntityName + } else { + // Note this is in sync with the transformation that happens for type node. + // Keep this in sync with serializeUnionOrIntersectionType + // Verify if they refer to same entity and is identifier + // return undefined if they dont match because we would emit object + if !ast.IsIdentifier(commonEntityName) || !ast.IsIdentifier(individualEntityName) || commonEntityName.AsIdentifier().Text != individualEntityName.AsIdentifier().Text { + return nil + } + } + } + return commonEntityName } func (c *Checker) markAliasReferenced(symbol *ast.Symbol, location *ast.Node) { diff --git a/internal/checker/emitresolver.go b/internal/checker/emitresolver.go index 6b9f695ea7..8517b611cc 100644 --- a/internal/checker/emitresolver.go +++ b/internal/checker/emitresolver.go @@ -1116,3 +1116,95 @@ func (r *EmitResolver) GetConstantValue(node *ast.Node) any { defer r.checkerMu.Unlock() return r.checker.GetConstantValue(node) } + +func (r *EmitResolver) GetTypeReferenceSerializationKind(typeName *ast.Node, location *ast.Node) printer.TypeReferenceSerializationKind { + // typeName = emitContext.ParseNode(typeName) + // location = emitContext.ParseNode(location) + r.checkerMu.Lock() + defer r.checkerMu.Unlock() + + if typeName == nil || location == nil { + return printer.TypeReferenceSerializationKindUnknown + } + + // Resolve the symbol as a value to ensure the type can be reached at runtime during emit. + isTypeOnly := false + if ast.IsQualifiedName(typeName) { + rootValueSymbol := r.checker.resolveEntityName(ast.GetFirstIdentifier(typeName), ast.SymbolFlagsValue, true, true, location) + + if rootValueSymbol != nil && len(rootValueSymbol.Declarations) > 0 { + isTypeOnly = core.Every(rootValueSymbol.Declarations, ast.IsTypeOnlyImportOrExportDeclaration) + } + } + valueSymbol := r.checker.resolveEntityName(typeName, ast.SymbolFlagsValue, true, true, location) + resolvedValueSymbol := valueSymbol + if valueSymbol != nil && valueSymbol.Flags&ast.SymbolFlagsAlias != 0 { + resolvedValueSymbol = r.checker.resolveAlias(valueSymbol) + } + + isTypeOnly = isTypeOnly || (valueSymbol != nil && r.checker.getTypeOnlyAliasDeclarationEx(valueSymbol, ast.SymbolFlagsValue) != nil) + + // Resolve the symbol as a type so that we can provide a more useful hint for the type serializer. + typeSymbol := r.checker.resolveEntityName(typeName, ast.SymbolFlagsType, true, true, location) + resolvedTypeSymbol := typeSymbol + if typeSymbol != nil && typeSymbol.Flags&ast.SymbolFlagsAlias != 0 { + resolvedTypeSymbol = r.checker.resolveAlias(typeSymbol) + } + // In case the value symbol can't be resolved (e.g. because of missing declarations), use type symbol for reachability check. + isTypeOnly = isTypeOnly || (typeSymbol != nil && r.checker.getTypeOnlyAliasDeclarationEx(typeSymbol, ast.SymbolFlagsType) != nil) + + if resolvedValueSymbol != nil && resolvedValueSymbol == resolvedTypeSymbol { + globalPromiseSymbol := r.checker.getGlobalPromiseConstructorSymbol() + if globalPromiseSymbol != nil && resolvedValueSymbol == globalPromiseSymbol { + return printer.TypeReferenceSerializationKindPromise + } + + constructorType := r.checker.getTypeOfSymbol(resolvedValueSymbol) + if constructorType != nil && r.checker.isConstructorType(constructorType) { + if isTypeOnly { + return printer.TypeReferenceSerializationKindTypeWithCallSignature + } + return printer.TypeReferenceSerializationKindTypeWithConstructSignatureAndValue + } + } + + // We might not be able to resolve type symbol so use unknown type in that case (eg error case) + if resolvedTypeSymbol == nil { + if isTypeOnly { + return printer.TypeReferenceSerializationKindObjectType + } + return printer.TypeReferenceSerializationKindUnknown + } + + type_ := r.checker.getDeclaredTypeOfSymbol(resolvedTypeSymbol) + if r.checker.isErrorType(type_) { + if isTypeOnly { + return printer.TypeReferenceSerializationKindObjectType + } + return printer.TypeReferenceSerializationKindUnknown + } + + if type_.flags&TypeFlagsAnyOrUnknown != 0 { + return printer.TypeReferenceSerializationKindObjectType + } else if r.checker.isTypeAssignableToKind(type_, TypeFlagsVoid|TypeFlagsNullable|TypeFlagsNever) { + return printer.TypeReferenceSerializationKindVoidNullableOrNeverType + } else if r.checker.isTypeAssignableToKind(type_, TypeFlagsBooleanLike) { + return printer.TypeReferenceSerializationKindBooleanType + } else if r.checker.isTypeAssignableToKind(type_, TypeFlagsNumberLike) { + return printer.TypeReferenceSerializationKindNumberLikeType + } else if r.checker.isTypeAssignableToKind(type_, TypeFlagsBigIntLike) { + return printer.TypeReferenceSerializationKindBigIntLikeType + } else if r.checker.isTypeAssignableToKind(type_, TypeFlagsStringLike) { + return printer.TypeReferenceSerializationKindStringLikeType + } else if isTupleType(type_) { + return printer.TypeReferenceSerializationKindArrayLikeType + } else if r.checker.isTypeAssignableToKind(type_, TypeFlagsESSymbolLike) { + return printer.TypeReferenceSerializationKindESSymbolType + } else if r.checker.isFunctionType(type_) { + return printer.TypeReferenceSerializationKindTypeWithCallSignature + } else if r.checker.isArrayType(type_) { + return printer.TypeReferenceSerializationKindArrayLikeType + } else { + return printer.TypeReferenceSerializationKindObjectType + } +} diff --git a/internal/checker/grammarchecks.go b/internal/checker/grammarchecks.go index dafbd9f413..15b51f20ed 100644 --- a/internal/checker/grammarchecks.go +++ b/internal/checker/grammarchecks.go @@ -235,15 +235,15 @@ func (c *Checker) checkGrammarModifiers(node *ast.Node /*Union[HasModifiers, Has modifiers := node.ModifierNodes() for _, modifier := range modifiers { if ast.IsDecorator(modifier) { - if !nodeCanBeDecorated(c.legacyDecorators, node, node.Parent, node.Parent.Parent) { + if !ast.NodeCanBeDecorated(c.legacyDecorators, node, node.Parent, node.Parent.Parent) { if node.Kind == ast.KindMethodDeclaration && !ast.NodeIsPresent(node.Body()) { return c.grammarErrorOnFirstToken(node, diagnostics.A_decorator_can_only_decorate_a_method_implementation_not_an_overload) } else { return c.grammarErrorOnFirstToken(node, diagnostics.Decorators_are_not_valid_here) } } else if c.legacyDecorators && (node.Kind == ast.KindGetAccessor || node.Kind == ast.KindSetAccessor) { - accessors := c.getAllAccessorDeclarationsForDeclaration(node) - if ast.HasDecorators(accessors.firstAccessor) && node == accessors.secondAccessor { + accessors := ast.GetAllAccessorDeclarationsForDeclaration(node, c.getSymbolOfDeclaration(node).Declarations) + if ast.HasDecorators(accessors.FirstAccessor) && node == accessors.SecondAccessor { return c.grammarErrorOnFirstToken(node, diagnostics.Decorators_cannot_be_applied_to_multiple_get_Slashset_accessors_of_the_same_name) } } @@ -1943,7 +1943,7 @@ func (c *Checker) checkGrammarProperty(node *ast.Node /*Union[PropertyDeclaratio return c.grammarErrorOnNode(postfixToken, diagnostics.Declarations_with_initializers_cannot_also_have_definite_assignment_assertions) case propDecl.Type == nil: return c.grammarErrorOnNode(postfixToken, diagnostics.Declarations_with_definite_assignment_assertions_must_also_have_type_annotations) - case !ast.IsClassLike(node.Parent) || node.Flags&ast.NodeFlagsAmbient != 0 || ast.IsStatic(node) || hasAbstractModifier(node): + case !ast.IsClassLike(node.Parent) || node.Flags&ast.NodeFlagsAmbient != 0 || ast.IsStatic(node) || ast.HasAbstractModifier(node): return c.grammarErrorOnNode(postfixToken, diagnostics.A_definite_assignment_assertion_is_not_permitted_in_this_context) } } diff --git a/internal/checker/utilities.go b/internal/checker/utilities.go index 31b833cb81..6fdedd0a91 100644 --- a/internal/checker/utilities.go +++ b/internal/checker/utilities.go @@ -60,14 +60,6 @@ func hasOverrideModifier(node *ast.Node) bool { return ast.HasSyntacticModifier(node, ast.ModifierFlagsOverride) } -func hasAbstractModifier(node *ast.Node) bool { - return ast.HasSyntacticModifier(node, ast.ModifierFlagsAbstract) -} - -func hasAmbientModifier(node *ast.Node) bool { - return ast.HasSyntacticModifier(node, ast.ModifierFlagsAmbient) -} - func hasAsyncModifier(node *ast.Node) bool { return ast.HasSyntacticModifier(node, ast.ModifierFlagsAsync) } @@ -169,40 +161,6 @@ func IsInTypeQuery(node *ast.Node) bool { }) != nil } -func nodeCanBeDecorated(useLegacyDecorators bool, node *ast.Node, parent *ast.Node, grandparent *ast.Node) bool { - // private names cannot be used with decorators yet - if useLegacyDecorators && node.Name() != nil && ast.IsPrivateIdentifier(node.Name()) { - return false - } - switch node.Kind { - case ast.KindClassDeclaration: - // class declarations are valid targets - return true - case ast.KindClassExpression: - // class expressions are valid targets for native decorators - return !useLegacyDecorators - case ast.KindPropertyDeclaration: - // property declarations are valid if their parent is a class declaration. - return parent != nil && (useLegacyDecorators && ast.IsClassDeclaration(parent) || - !useLegacyDecorators && ast.IsClassLike(parent) && !hasAbstractModifier(node) && !hasAmbientModifier(node)) - case ast.KindGetAccessor, ast.KindSetAccessor, ast.KindMethodDeclaration: - // if this method has a body and its parent is a class declaration, this is a valid target. - return parent != nil && node.Body() != nil && (useLegacyDecorators && ast.IsClassDeclaration(parent) || - !useLegacyDecorators && ast.IsClassLike(parent)) - case ast.KindParameter: - // TODO(rbuckton): Parameter decorator support for ES decorators must wait until it is standardized - if !useLegacyDecorators { - return false - } - // if the parameter's parent has a body and its grandparent is a class declaration, this is a valid target. - return parent != nil && parent.Body() != nil && - (parent.Kind == ast.KindConstructor || parent.Kind == ast.KindMethodDeclaration || parent.Kind == ast.KindSetAccessor) && - ast.GetThisParameter(parent) != node && grandparent != nil && grandparent.Kind == ast.KindClassDeclaration - } - - return false -} - func canHaveLocals(node *ast.Node) bool { switch node.Kind { case ast.KindArrowFunction, ast.KindBlock, ast.KindCallSignature, ast.KindCaseBlock, ast.KindCatchClause, @@ -1764,7 +1722,7 @@ func (c *Checker) isUncheckedJSSuggestion(node *ast.Node, suggestion *ast.Symbol suggestion.ValueDeclaration == nil || !ast.IsClassLike(suggestion.ValueDeclaration) || len(ast.GetExtendsHeritageClauseElements(suggestion.ValueDeclaration)) != 0 || - classOrConstructorParameterIsDecorated(suggestion.ValueDeclaration) + ast.ClassOrConstructorParameterIsDecorated(false, suggestion.ValueDeclaration) return !(file != declarationFile && declarationFile != nil && ast.IsGlobalSourceFile(declarationFile.AsNode())) && !(excludeClasses && suggestion != nil && suggestion.Flags&ast.SymbolFlagsClass != 0 && suggestionHasNoExtendsOrDecorators) && !(node != nil && excludeClasses && ast.IsPropertyAccessExpression(node) && node.Expression().Kind == ast.KindThisKeyword && suggestionHasNoExtendsOrDecorators) @@ -1773,39 +1731,6 @@ func (c *Checker) isUncheckedJSSuggestion(node *ast.Node, suggestion *ast.Symbol return false } -func classOrConstructorParameterIsDecorated(node *ast.Node) bool { - if nodeIsDecorated(node, nil, nil) { - return true - } - constructor := ast.GetFirstConstructorWithBody(node) - return constructor != nil && childIsDecorated(constructor, node) -} - -func nodeIsDecorated(node *ast.Node, parent *ast.Node, grandparent *ast.Node) bool { - return ast.HasDecorators(node) && nodeCanBeDecorated(false, node, parent, grandparent) -} - -func nodeOrChildIsDecorated(node *ast.Node, parent *ast.Node, grandparent *ast.Node) bool { - return nodeIsDecorated(node, parent, grandparent) || childIsDecorated(node, parent) -} - -func childIsDecorated(node *ast.Node, parent *ast.Node) bool { - switch node.Kind { - case ast.KindClassDeclaration, ast.KindClassExpression: - return core.Some(node.Members(), func(m *ast.Node) bool { - return nodeOrChildIsDecorated(m, node, parent) - }) - case ast.KindMethodDeclaration, - ast.KindSetAccessor, - ast.KindConstructor: - return core.Some(node.Parameters(), func(p *ast.Node) bool { - return nodeIsDecorated(p, node, parent) - }) - default: - return false - } -} - // Returns if a type is or consists of a JSLiteral object type // In addition to objects which are directly literals, // * unions where every element is a jsliteral diff --git a/internal/compiler/emitter.go b/internal/compiler/emitter.go index 51fd655120..33b28cd606 100644 --- a/internal/compiler/emitter.go +++ b/internal/compiler/emitter.go @@ -85,7 +85,7 @@ func getScriptTransformers(emitContext *printer.EmitContext, host printer.EmitHo var emitResolver printer.EmitResolver var referenceResolver binder.ReferenceResolver - if importElisionEnabled || options.GetJSXTransformEnabled() || !options.GetIsolatedModules() { // full emit resolver is needed for import ellision and const enum inlining + if importElisionEnabled || options.GetJSXTransformEnabled() || !options.GetIsolatedModules() || options.EmitDecoratorMetadata.IsTrue() { // full emit resolver is needed for import ellision and const enum inlining emitResolver = host.GetEmitResolver() emitResolver.MarkLinkedReferencesRecursively(sourceFile) referenceResolver = emitResolver @@ -103,6 +103,11 @@ func getScriptTransformers(emitContext *printer.EmitContext, host printer.EmitHo // transform TypeScript syntax { + // use type nodes to add metadata decorators + if options.EmitDecoratorMetadata.IsTrue() { + tx = append(tx, tstransforms.NewMetadataTransformer(&opts)) + } + // erase types tx = append(tx, tstransforms.NewTypeEraserTransformer(&opts)) @@ -113,6 +118,10 @@ func getScriptTransformers(emitContext *printer.EmitContext, host printer.EmitHo // transform `enum`, `namespace`, and parameter properties tx = append(tx, tstransforms.NewRuntimeSyntaxTransformer(&opts)) + + if options.ExperimentalDecorators.IsTrue() { + tx = append(tx, tstransforms.NewLegacyDecoratorsTransformer(&opts)) + } } // !!! transform legacy decorator syntax diff --git a/internal/compiler/program.go b/internal/compiler/program.go index a9a6b47f3e..8527d018cf 100644 --- a/internal/compiler/program.go +++ b/internal/compiler/program.go @@ -830,7 +830,9 @@ func (p *Program) verifyCompilerOptions() { } } - // !!! emitDecoratorMetadata + if options.EmitDecoratorMetadata.IsTrue() && options.ExperimentalDecorators.IsFalseOrUnknown() { + createDiagnosticForOptionName(diagnostics.Option_0_cannot_be_specified_without_specifying_option_1, "emitDecoratorMetadata", "experimentalDecorators") + } if options.JsxFactory != "" { if options.ReactNamespace != "" { diff --git a/internal/printer/emitcontext.go b/internal/printer/emitcontext.go index cff450debf..02015c4f09 100644 --- a/internal/printer/emitcontext.go +++ b/internal/printer/emitcontext.go @@ -446,6 +446,10 @@ func (c *EmitContext) SetOriginal(node *ast.Node, original *ast.Node) { c.SetOriginalEx(node, original, false) } +func (c *EmitContext) UnsetOriginal(node *ast.Node) { + delete(c.original, node) +} + func (c *EmitContext) SetOriginalEx(node *ast.Node, original *ast.Node, allowOverwrite bool) { if original == nil { panic("Original cannot be nil.") diff --git a/internal/printer/emitresolver.go b/internal/printer/emitresolver.go index 156709cf68..7c7b3a0cc5 100644 --- a/internal/printer/emitresolver.go +++ b/internal/printer/emitresolver.go @@ -25,6 +25,55 @@ type SymbolAccessibilityResult struct { ErrorModuleName string // Optional - If the symbol is not visible from module, module's name } +/** + * Indicates how to serialize the name for a TypeReferenceNode when emitting decorator metadata + * + * @internal + */ +type TypeReferenceSerializationKind int32 + +const ( + // The TypeReferenceNode could not be resolved. + // The type name should be emitted using a safe fallback. + TypeReferenceSerializationKindUnknown = iota + + // The TypeReferenceNode resolves to a type with a constructor + // function that can be reached at runtime (e.g. a `class` + // declaration or a `var` declaration for the static side + // of a type, such as the global `Promise` type in lib.d.ts). + TypeReferenceSerializationKindTypeWithConstructSignatureAndValue + + // The TypeReferenceNode resolves to a Void-like, Nullable, or Never type. + TypeReferenceSerializationKindVoidNullableOrNeverType + + // The TypeReferenceNode resolves to a Number-like type. + TypeReferenceSerializationKindNumberLikeType + + // The TypeReferenceNode resolves to a BigInt-like type. + TypeReferenceSerializationKindBigIntLikeType + + // The TypeReferenceNode resolves to a String-like type. + TypeReferenceSerializationKindStringLikeType + + // The TypeReferenceNode resolves to a Boolean-like type. + TypeReferenceSerializationKindBooleanType + + // The TypeReferenceNode resolves to an Array-like type. + TypeReferenceSerializationKindArrayLikeType + + // The TypeReferenceNode resolves to the ESSymbol type. + TypeReferenceSerializationKindESSymbolType + + // The TypeReferenceNode resolved to the global Promise constructor symbol. + TypeReferenceSerializationKindPromise + + // The TypeReferenceNode resolves to a Function type or a type with call signatures. + TypeReferenceSerializationKindTypeWithCallSignature + + // The TypeReferenceNode resolves to any other type. + TypeReferenceSerializationKindObjectType +) + type EmitResolver interface { binder.ReferenceResolver IsReferencedAliasDeclaration(node *ast.Node) bool @@ -35,6 +84,9 @@ type EmitResolver interface { GetEffectiveDeclarationFlags(node *ast.Node, flags ast.ModifierFlags) ast.ModifierFlags GetResolutionModeOverride(node *ast.Node) core.ResolutionMode + // decorator metadata + GetTypeReferenceSerializationKind(name *ast.EntityName, serialScope *ast.Node) TypeReferenceSerializationKind + // const enum inlining GetConstantValue(node *ast.Node) any diff --git a/internal/printer/factory.go b/internal/printer/factory.go index bffd989665..2ee49a6ff7 100644 --- a/internal/printer/factory.go +++ b/internal/printer/factory.go @@ -217,6 +217,10 @@ func (f *NodeFactory) NewLogicalORExpression(left *ast.Expression, right *ast.Ex return f.NewBinaryExpression(nil /*modifiers*/, left, nil /*typeNode*/, f.NewToken(ast.KindBarBarToken), right) } +func (f *NodeFactory) NewLogicalANDExpression(left *ast.Expression, right *ast.Expression) *ast.Expression { + return f.NewBinaryExpression(nil /*modifiers*/, left, nil /*typeNode*/, f.NewToken(ast.KindAmpersandAmpersandToken), right) +} + // func (f *NodeFactory) NewLogicalANDExpression(left *ast.Expression, right *ast.Expression) *ast.Expression // func (f *NodeFactory) NewBitwiseORExpression(left *ast.Expression, right *ast.Expression) *ast.Expression // func (f *NodeFactory) NewBitwiseXORExpression(left *ast.Expression, right *ast.Expression) *ast.Expression @@ -518,7 +522,57 @@ func (f *NodeFactory) NewUnscopedHelperName(name string) *ast.IdentifierNode { return node } -// !!! TypeScript Helpers +// TypeScript Helpers + +func (f *NodeFactory) NewDecorateHelper(decoratorExpressions []*ast.Node, target *ast.Node, memberName *ast.Node, descriptor *ast.Node) *ast.Expression { + f.emitContext.RequestEmitHelper(decorateHelper) + + var argumentsArray []*ast.Node + argumentsArray = append(argumentsArray, f.NewArrayLiteralExpression(f.NewNodeList(decoratorExpressions), true)) + argumentsArray = append(argumentsArray, target) + if memberName != nil { + argumentsArray = append(argumentsArray, memberName) + if descriptor != nil { + argumentsArray = append(argumentsArray, descriptor) + } + } + + return f.NewCallExpression( + f.NewUnscopedHelperName("__decorate"), + nil, /*questionDotToken*/ + nil, /*typeArguments*/ + f.NewNodeList(argumentsArray), + ast.NodeFlagsNone, + ) +} + +func (f *NodeFactory) NewMetadataHelper(metadataKey string, metadataValue *ast.Node) *ast.Node { + f.emitContext.RequestEmitHelper(metadataHelper) + + return f.NewCallExpression( + f.NewUnscopedHelperName("__metadata"), + nil, /*questionDotToken*/ + nil, /*typeArguments*/ + f.NewNodeList([]*ast.Node{ + f.NewStringLiteral(metadataKey, ast.TokenFlagsNone), + metadataValue, + }), + ast.NodeFlagsNone, + ) +} + +func (f *NodeFactory) NewParamHelper(expression *ast.Node, parameterOffset int, location core.TextRange) *ast.Expression { + f.emitContext.RequestEmitHelper(paramHelper) + helper := f.NewCallExpression( + f.NewUnscopedHelperName("__param"), + nil, /*questionDotToken*/ + nil, /*typeArguments*/ + f.NewNodeList([]*ast.Expression{f.NewNumericLiteral(strconv.Itoa(parameterOffset), ast.TokenFlagsNone), expression}), + ast.NodeFlagsNone, + ) + helper.Loc = location + return helper +} // ESNext Helpers diff --git a/internal/printer/helpers.go b/internal/printer/helpers.go index a2d1348917..77daedb39a 100644 --- a/internal/printer/helpers.go +++ b/internal/printer/helpers.go @@ -30,7 +30,40 @@ func compareEmitHelpers(x *EmitHelper, y *EmitHelper) int { return x.Priority.Value - y.Priority.Value } -// !!! TypeScript Helpers +// TypeScript Helpers + +var decorateHelper = &EmitHelper{ + Name: "typescript:decorate", + ImportName: "__decorate", + Scoped: false, + Priority: &Priority{2}, + Text: `var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +};`, +} + +var metadataHelper = &EmitHelper{ + Name: "typescript:metadata", + ImportName: "__metadata", + Scoped: false, + Priority: &Priority{3}, + Text: `var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +};`, +} + +var paramHelper = &EmitHelper{ + Name: "typescript:param", + ImportName: "__param", + Scoped: false, + Priority: &Priority{4}, + Text: `var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +};`, +} // ESNext Helpers diff --git a/internal/transformers/tstransforms/legacydecorators.go b/internal/transformers/tstransforms/legacydecorators.go new file mode 100644 index 0000000000..bb5f7877ef --- /dev/null +++ b/internal/transformers/tstransforms/legacydecorators.go @@ -0,0 +1,1036 @@ +package tstransforms + +import ( + "github.com/microsoft/typescript-go/internal/ast" + "github.com/microsoft/typescript-go/internal/binder" + "github.com/microsoft/typescript-go/internal/collections" + "github.com/microsoft/typescript-go/internal/core" + "github.com/microsoft/typescript-go/internal/printer" + "github.com/microsoft/typescript-go/internal/transformers" +) + +type LegacyDecoratorsTransformer struct { + transformers.Transformer + languageVersion core.ScriptTarget + referenceResolver binder.ReferenceResolver + + /** + * A map that keeps track of aliases created for classes with decorators to avoid issues + * with the double-binding behavior of classes. + */ + classAliases map[*ast.Node]*ast.Node + enclosingClasses []*ast.ClassDeclaration +} + +func NewLegacyDecoratorsTransformer(opt *transformers.TransformOptions) *transformers.Transformer { + tx := &LegacyDecoratorsTransformer{languageVersion: opt.CompilerOptions.GetEmitScriptTarget(), referenceResolver: opt.Resolver} + return tx.NewTransformer(tx.visit, opt.Context) +} + +func (tx *LegacyDecoratorsTransformer) visit(node *ast.Node) *ast.Node { + // we have to visit all identifiers in classes, just in case they require substitution + if (node.SubtreeFacts()&ast.SubtreeContainsDecorators) == 0 && len(tx.enclosingClasses) == 0 { + return node + } + + switch node.Kind { + case ast.KindIdentifier: + return tx.visitIdentifier(node.AsIdentifier()) + case ast.KindDecorator: + // Decorators are elided. They will be emitted as part of `visitClassDeclaration`. + return nil + case ast.KindClassDeclaration: + return tx.visitClassDeclaration(node.AsClassDeclaration()) + case ast.KindClassExpression: + return tx.visitClassExpression(node.AsClassExpression()) + case ast.KindConstructor: + return tx.visitConstructorDeclaration(node.AsConstructorDeclaration()) + case ast.KindMethodDeclaration: + return tx.visitMethodDeclaration(node.AsMethodDeclaration()) + case ast.KindSetAccessor: + return tx.visitSetAccessorDeclaration(node.AsSetAccessorDeclaration()) + case ast.KindGetAccessor: + return tx.visitGetAccessorDeclaration(node.AsGetAccessorDeclaration()) + case ast.KindPropertyDeclaration: + return tx.visitPropertyDeclaration(node.AsPropertyDeclaration()) + case ast.KindParameter: + return tx.visitParamerDeclaration(node.AsParameterDeclaration()) + case ast.KindSourceFile: + tx.classAliases = make(map[*ast.Node]*ast.Node) + tx.enclosingClasses = nil + result := tx.Visitor().VisitEachChild(node) + tx.EmitContext().AddEmitHelper(result, tx.EmitContext().ReadEmitHelpers()...) + tx.classAliases = nil + tx.enclosingClasses = nil + return result + default: + return tx.Visitor().VisitEachChild(node) + } +} + +func (tx *LegacyDecoratorsTransformer) visitIdentifier(node *ast.Identifier) *ast.Node { + // takes the place of `substituteIdentifier` in the strada transform + for _, d := range tx.enclosingClasses { + if _, ok := tx.classAliases[d.AsNode()]; ok && tx.referenceResolver.GetReferencedValueDeclaration(tx.EmitContext().MostOriginal(node.AsNode())) == d.AsNode() { + return tx.classAliases[d.AsNode()] + } + } + return node.AsNode() +} + +func elideNodes(f *printer.NodeFactory, nodes *ast.NodeList) *ast.NodeList { + if nodes == nil { + return nil + } + if len(nodes.Nodes) == 0 { + return nodes + } + replacement := f.NewNodeList([]*ast.Node{}) + replacement.Loc = nodes.Loc + return replacement +} + +func elideModifiers(f *printer.NodeFactory, nodes *ast.ModifierList) *ast.ModifierList { + if nodes == nil { + return nil + } + if len(nodes.Nodes) == 0 { + return nodes + } + replacement := f.NewModifierList([]*ast.Node{}) + replacement.Loc = nodes.Loc + return replacement +} + +func moveRangePastModifiers(node *ast.Node) core.TextRange { + if ast.IsPropertyDeclaration(node) || ast.IsMethodDeclaration(node) { + return core.NewTextRange(node.Name().Pos(), node.End()) + } + + var lastModifier *ast.Node + if ast.CanHaveModifiers(node) { + nodes := node.ModifierNodes() + if nodes != nil { + lastModifier = nodes[0] + } + } + + if lastModifier != nil && !ast.PositionIsSynthesized(lastModifier.End()) { + return core.NewTextRange(lastModifier.End(), node.End()) + } + return moveRangePastDecorators(node) +} + +func moveRangePastDecorators(node *ast.Node) core.TextRange { + var lastDecorator *ast.Node + if ast.CanHaveModifiers(node) { + nodes := node.ModifierNodes() + if nodes != nil { + lastDecorator = core.FindLast(nodes, ast.IsDecorator) + } + } + + if lastDecorator != nil && !ast.PositionIsSynthesized(lastDecorator.End()) { + return core.NewTextRange(lastDecorator.End(), node.End()) + } + return node.Loc +} + +func (tx *LegacyDecoratorsTransformer) finishClassElement(updated *ast.Node, original *ast.Node) *ast.Node { + if updated != original { + // While we emit the source map for the node after skipping decorators and modifiers, + // we need to emit the comments for the original range. + tx.EmitContext().SetCommentRange(updated, original.Loc) + tx.EmitContext().SetSourceMapRange(updated, moveRangePastModifiers(original)) + } + return updated +} + +func (tx *LegacyDecoratorsTransformer) visitParamerDeclaration(node *ast.ParameterDeclaration) *ast.Node { + updated := tx.Factory().UpdateParameterDeclaration( + node, + elideModifiers(tx.Factory(), node.Modifiers()), + node.DotDotDotToken, + tx.Visitor().VisitNode(node.Name()), + nil, + nil, + tx.Visitor().VisitNode(node.Initializer), + ) + if updated != node.AsNode() { + // While we emit the source map for the node after skipping decorators and modifiers, + // we need to emit the comments for the original range. + tx.EmitContext().SetCommentRange(updated, node.Loc) + newLoc := moveRangePastModifiers(node.AsNode()) + updated.Loc = newLoc + tx.EmitContext().SetSourceMapRange(updated, newLoc) + tx.EmitContext().SetEmitFlags(updated.Name(), printer.EFNoTrailingSourceMap) + } + return updated +} + +func (tx *LegacyDecoratorsTransformer) visitPropertyDeclaration(node *ast.PropertyDeclaration) *ast.Node { + if (node.Flags & ast.NodeFlagsAmbient) != 0 { + return nil + } + if ast.HasSyntacticModifier(node.AsNode(), ast.ModifierFlagsAmbient|ast.ModifierFlagsAbstract) { + return nil + } + + return tx.finishClassElement( + tx.Factory().UpdatePropertyDeclaration( + node, + tx.Visitor().VisitModifiers(node.Modifiers()), + tx.Visitor().VisitNode(node.Name()), + nil, + nil, + tx.Visitor().VisitNode(node.Initializer), + ), + node.AsNode(), + ) +} + +func (tx *LegacyDecoratorsTransformer) visitGetAccessorDeclaration(node *ast.GetAccessorDeclaration) *ast.Node { + return tx.finishClassElement( + tx.Factory().UpdateGetAccessorDeclaration( + node, + tx.Visitor().VisitModifiers(node.Modifiers()), + tx.Visitor().VisitNode(node.Name()), + nil, + tx.Visitor().VisitNodes(node.Parameters), + nil, + nil, + tx.Visitor().VisitNode(node.Body), + ), + node.AsNode(), + ) +} + +func (tx *LegacyDecoratorsTransformer) visitSetAccessorDeclaration(node *ast.SetAccessorDeclaration) *ast.Node { + return tx.finishClassElement( + tx.Factory().UpdateSetAccessorDeclaration( + node, + tx.Visitor().VisitModifiers(node.Modifiers()), + tx.Visitor().VisitNode(node.Name()), + nil, + tx.Visitor().VisitNodes(node.Parameters), + nil, + nil, + tx.Visitor().VisitNode(node.Body), + ), + node.AsNode(), + ) +} + +func (tx *LegacyDecoratorsTransformer) visitMethodDeclaration(node *ast.MethodDeclaration) *ast.Node { + return tx.finishClassElement( + tx.Factory().UpdateMethodDeclaration( + node, + tx.Visitor().VisitModifiers(node.Modifiers()), + node.AsteriskToken, + tx.Visitor().VisitNode(node.Name()), + nil, + nil, + tx.Visitor().VisitNodes(node.Parameters), + nil, + nil, + tx.Visitor().VisitNode(node.Body), + ), + node.AsNode(), + ) +} + +func (tx *LegacyDecoratorsTransformer) visitConstructorDeclaration(node *ast.ConstructorDeclaration) *ast.Node { + return tx.Factory().UpdateConstructorDeclaration( + node, + tx.Visitor().VisitModifiers(node.Modifiers()), + nil, + tx.Visitor().VisitNodes(node.Parameters), + nil, + nil, + tx.Visitor().VisitNode(node.Body), + ) +} + +func (tx *LegacyDecoratorsTransformer) visitClassExpression(node *ast.ClassExpression) *ast.Node { + // Legacy decorators were not supported on class expressions + return tx.Factory().UpdateClassExpression( + node, + tx.Visitor().VisitModifiers(node.Modifiers()), + node.Name(), + nil, + tx.Visitor().VisitNodes(node.HeritageClauses), + tx.Visitor().VisitNodes(node.Members), + ) +} + +func (tx *LegacyDecoratorsTransformer) visitClassDeclaration(node *ast.ClassDeclaration) *ast.Node { + decorated := ast.ClassOrConstructorParameterIsDecorated(true, node.AsNode()) + if !(decorated || ast.ChildIsDecorated(true, node.AsNode(), nil)) { + return tx.Visitor().VisitEachChild(node.AsNode()) + } + + if decorated { + return tx.transformClassDeclarationWithClassDecorators(node, node.Name()) + } + return tx.transformClassDeclarationWithoutClassDecorators(node, node.Name()) +} + +/** +* Transforms a non-decorated class declaration. +* +* @param node A ClassDeclaration node. +* @param name The name of the class. + */ +func (tx *LegacyDecoratorsTransformer) transformClassDeclarationWithoutClassDecorators(node *ast.ClassDeclaration, name *ast.DeclarationName) *ast.Node { + // ${modifiers} class ${name} ${heritageClauses} { + // ${members} + // } + modifiers := tx.Visitor().VisitModifiers(node.Modifiers()) + heritageClauses := tx.Visitor().VisitNodes(node.HeritageClauses) + initialMembers := tx.Visitor().VisitNodes(node.Members) + members, decorationStatements := tx.transformDecoratorsOfClassElements(node, initialMembers) + + if name == nil && len(decorationStatements) > 0 { + name = tx.Factory().NewGeneratedNameForNode(node.AsNode()) + } + + updated := tx.Factory().UpdateClassDeclaration( + node, + modifiers, + name, + nil, + heritageClauses, + members, + ) + + if len(decorationStatements) == 0 { + return updated + } + return tx.Factory().NewSyntaxList(append([]*ast.Node{updated}, decorationStatements...)) +} + +func (tx *LegacyDecoratorsTransformer) popEnclosingClass() { + tx.enclosingClasses = tx.enclosingClasses[:len(tx.enclosingClasses)-1] +} + +func (tx *LegacyDecoratorsTransformer) pushEnclosingClass(cls *ast.ClassDeclaration) { + tx.enclosingClasses = append(tx.enclosingClasses, cls) +} + +/** +* Transforms a decorated class declaration and appends the resulting statements. If +* the class requires an alias to avoid issues with double-binding, the alias is returned. + */ +func (tx *LegacyDecoratorsTransformer) transformClassDeclarationWithClassDecorators(node *ast.ClassDeclaration, name *ast.DeclarationName) *ast.Node { + // When we emit an ES6 class that has a class decorator, we must tailor the + // emit to certain specific cases. + // + // In the simplest case, we emit the class declaration as a let declaration, and + // evaluate decorators after the close of the class body: + // + // [Example 1] + // --------------------------------------------------------------------- + // TypeScript | Javascript + // --------------------------------------------------------------------- + // @dec | let C = class C { + // class C { | } + // } | C = __decorate([dec], C); + // --------------------------------------------------------------------- + // @dec | let C = class C { + // export class C { | } + // } | C = __decorate([dec], C); + // | export { C }; + // --------------------------------------------------------------------- + // + // If a class declaration contains a reference to itself *inside* of the class body, + // this introduces two bindings to the class: One outside of the class body, and one + // inside of the class body. If we apply decorators as in [Example 1] above, there + // is the possibility that the decorator `dec` will return a new value for the + // constructor, which would result in the binding inside of the class no longer + // pointing to the same reference as the binding outside of the class. + // + // As a result, we must instead rewrite all references to the class *inside* of the + // class body to instead point to a local temporary alias for the class: + // + // [Example 2] + // --------------------------------------------------------------------- + // TypeScript | Javascript + // --------------------------------------------------------------------- + // @dec | let C = C_1 = class C { + // class C { | static x() { return C_1.y; } + // static x() { return C.y; } | } + // static y = 1; | C.y = 1; + // } | C = C_1 = __decorate([dec], C); + // | var C_1; + // --------------------------------------------------------------------- + // @dec | let C = class C { + // export class C { | static x() { return C_1.y; } + // static x() { return C.y; } | } + // static y = 1; | C.y = 1; + // } | C = C_1 = __decorate([dec], C); + // | export { C }; + // | var C_1; + // --------------------------------------------------------------------- + // + // If a class declaration is the default export of a module, we instead emit + // the export after the decorated declaration: + // + // [Example 3] + // --------------------------------------------------------------------- + // TypeScript | Javascript + // --------------------------------------------------------------------- + // @dec | let default_1 = class { + // export default class { | } + // } | default_1 = __decorate([dec], default_1); + // | export default default_1; + // --------------------------------------------------------------------- + // @dec | let C = class C { + // export default class C { | } + // } | C = __decorate([dec], C); + // | export default C; + // --------------------------------------------------------------------- + // + // If the class declaration is the default export and a reference to itself + // inside of the class body, we must emit both an alias for the class *and* + // move the export after the declaration: + // + // [Example 4] + // --------------------------------------------------------------------- + // TypeScript | Javascript + // --------------------------------------------------------------------- + // @dec | let C = class C { + // export default class C { | static x() { return C_1.y; } + // static x() { return C.y; } | } + // static y = 1; | C.y = 1; + // } | C = C_1 = __decorate([dec], C); + // | export default C; + // | var C_1; + // --------------------------------------------------------------------- + // + + isExport := ast.HasSyntacticModifier(node.AsNode(), ast.ModifierFlagsExport) + isDefault := ast.HasSyntacticModifier(node.AsNode(), ast.ModifierFlagsDefault) + var modifiers *ast.ModifierList + if node.Modifiers() != nil && len(node.Modifiers().Nodes) > 0 { + modifierNodes := core.Filter(node.Modifiers().Nodes, isNotExportOrDefaultOrDecorator) + if len(modifierNodes) != len(node.Modifiers().Nodes) { + modifiers = tx.Factory().NewModifierList(modifierNodes) + modifiers.Loc = node.Modifiers().Loc + } else { + modifiers = node.Modifiers() + } + } + + location := moveRangePastModifiers(node.AsNode()) + classAlias := tx.getClassAliasIfNeeded(node) + if classAlias != nil { + tx.pushEnclosingClass(node) + defer tx.popEnclosingClass() + } + + // When we used to transform to ES5/3 this would be moved inside an IIFE and should reference the name + // without any block-scoped variable collision handling - but we don't support that anymore, so we always + // use the local name for the class + declName := tx.Factory().GetLocalNameEx(node.AsNode(), printer.AssignedNameOptions{AllowComments: false, AllowSourceMaps: true}) + + // ... = class ${name} ${heritageClauses} { + // ${members} + // } + heritageClauses := tx.Visitor().VisitNodes(node.HeritageClauses) + members := tx.Visitor().VisitNodes(node.Members) + + members, decorationStatements := tx.transformDecoratorsOfClassElements(node, members) + + // If we're emitting to ES2022 or later then we need to reassign the class alias before + // static initializers are evaluated. + assignClassAliasInStaticBlock := tx.languageVersion >= core.ScriptTargetES2022 && classAlias != nil && members != nil && len(members.Nodes) > 0 && core.Some(members.Nodes, isClassStaticBlockDeclarationOrStaticProperty) + if assignClassAliasInStaticBlock { + memberList := []*ast.Node{} + memberList = append(memberList, tx.Factory().NewClassStaticBlockDeclaration(nil, tx.Factory().NewBlock( + tx.Factory().NewNodeList([]*ast.Node{tx.Factory().NewExpressionStatement( + tx.Factory().NewAssignmentExpression(classAlias, tx.Factory().NewKeywordExpression(ast.KindThisKeyword)), + )}), + false, + ))) + memberList = append(memberList, members.Nodes...) + newList := tx.Factory().NewNodeList(memberList) + newList.Loc = members.Loc + members = newList + } + + exprName := name + if name != nil && transformers.IsGeneratedIdentifier(tx.EmitContext(), name) { + exprName = nil + } + classExpression := tx.Factory().NewClassExpression( + modifiers, + exprName, + nil, + heritageClauses, + members, + ) + + tx.EmitContext().SetOriginal(classExpression, node.AsNode()) + classExpression.Loc = location + + // let ${name} = ${classExpression} where name is either declaredName if the class doesn't contain self-reference + // or decoratedClassAlias if the class contain self-reference. + varInitializer := classExpression + if classAlias != nil && !assignClassAliasInStaticBlock { + varInitializer = tx.Factory().NewAssignmentExpression(classAlias, classExpression) + } + varDecl := tx.Factory().NewVariableDeclaration( + declName, + nil, + nil, + varInitializer, + ) + tx.EmitContext().SetOriginal(varDecl, node.AsNode()) + + varDeclList := tx.Factory().NewVariableDeclarationList(ast.NodeFlagsLet, tx.Factory().NewNodeList([]*ast.Node{varDecl})) + varStatement := tx.Factory().NewVariableStatement(nil, varDeclList) + tx.EmitContext().SetOriginal(varStatement, node.AsNode()) + varStatement.Loc = location + tx.EmitContext().SetCommentRange(varStatement, node.Loc) + + statements := []*ast.Node{varStatement} + statements = append(statements, decorationStatements...) + statements = append(statements, tx.getConstructorDecorationStatement(node)) + + if isExport { + var exportStatement *ast.Node + if isDefault { + exportStatement = tx.Factory().NewExportAssignment(nil, false, nil, declName) + } else { + exportStatement = tx.Factory().NewExportDeclaration( + nil, + false, + tx.Factory().NewNamedExports( + tx.Factory().NewNodeList([]*ast.Node{tx.Factory().NewExportSpecifier( + false, + nil, + tx.Factory().GetDeclarationName(node.AsNode()), + )}), + ), + nil, + nil, + ) + } + statements = append(statements, exportStatement) + } + + if len(statements) == 1 { + return statements[0] + } + return tx.Factory().NewSyntaxList(statements) +} + +func (tx *LegacyDecoratorsTransformer) hasInternalStaticReference(node *ast.ClassDeclaration) bool { + var isOrContainsStaticSelfReference func(n *ast.Node) bool + isOrContainsStaticSelfReference = func(n *ast.Node) bool { + if ast.IsIdentifier(n) && tx.referenceResolver.GetReferencedValueDeclaration(tx.EmitContext().MostOriginal(n)) == node.AsNode() { + return true + } + return n.ForEachChild(isOrContainsStaticSelfReference) + } + for _, node := range node.Members.Nodes { + if node.ForEachChild(isOrContainsStaticSelfReference) { + return true + } + } + return false +} + +/** +* Gets a local alias for a class declaration if it is a decorated class with an internal +* reference to the static side of the class. This is necessary to avoid issues with +* double-binding semantics for the class name. + */ +func (tx *LegacyDecoratorsTransformer) getClassAliasIfNeeded(node *ast.ClassDeclaration) *ast.Node { + if !tx.hasInternalStaticReference(node) { + return nil + } + nameText := "default" + if node.Name() != nil && !transformers.IsGeneratedIdentifier(tx.EmitContext(), node.Name()) { + nameText = node.Name().Text() + } + + classAlias := tx.Factory().NewUniqueName(nameText) + tx.EmitContext().AddVariableDeclaration(classAlias) + tx.classAliases[node.AsNode()] = classAlias + + return classAlias +} + +/** +* Generates a __decorate helper call for a class constructor. +* +* @param node The class node. + */ +func (tx *LegacyDecoratorsTransformer) getConstructorDecorationStatement(node *ast.ClassDeclaration) *ast.Node { + expression := tx.generateConstructorDecorationExpression(node) + if expression != nil { + result := tx.Factory().NewExpressionStatement(expression) + tx.EmitContext().SetOriginal(result, node.AsNode()) + return result + } + return nil +} + +/** +* Generates a __decorate helper call for a class constructor. +* +* @param node The class node. + */ +func (tx *LegacyDecoratorsTransformer) generateConstructorDecorationExpression(node *ast.ClassDeclaration) *ast.Node { + allDecorators := getAllDecoratorsOfClass(node, true) + decoratorExpressions := tx.transformAllDecoratorsOfDeclaration(allDecorators) + if len(decoratorExpressions) == 0 { + return nil + } + + var classAlias *ast.Node + if tx.classAliases != nil { + classAlias, _ = tx.classAliases[tx.EmitContext().MostOriginal(node.AsNode())] + } + + // When we used to transform to ES5/3 this would be moved inside an IIFE and should reference the name + // without any block-scoped variable collision handling - but we don't support that anymore, so we always + // use the local name for the class + localName := tx.Factory().GetDeclarationNameEx(node.AsNode(), printer.NameOptions{AllowComments: false, AllowSourceMaps: true}) + decorate := tx.Factory().NewDecorateHelper(decoratorExpressions, localName, nil, nil) + assignmentTarget := decorate + if classAlias != nil { + assignmentTarget = tx.Factory().NewAssignmentExpression(classAlias, decorate) + } + expression := tx.Factory().NewAssignmentExpression(localName, assignmentTarget) + tx.EmitContext().SetEmitFlags(expression, printer.EFNoComments) + tx.EmitContext().SetSourceMapRange(expression, moveRangePastModifiers(node.AsNode())) + return expression +} + +func isClassStaticBlockDeclarationOrStaticProperty(node *ast.Node) bool { + return ast.IsClassStaticBlockDeclaration(node) || (ast.IsPropertyDeclaration(node) && ast.HasStaticModifier(node)) +} + +func isNotExportOrDefaultOrDecorator(node *ast.Node) bool { + return !(ast.IsDecorator(node) || node.Kind == ast.KindExportKeyword || node.Kind == ast.KindDefaultKeyword) +} + +func decoratorContainsPrivateIdentifierInExpression(decorator *ast.Node) bool { + return (decorator.SubtreeFacts() & ast.SubtreeContainsPrivateIdentifierInExpression) != 0 +} + +func parameterDecoratorsContainPrivateIdentifierInExpression(parameterDecorators []*ast.Node) bool { + return core.Some(parameterDecorators, decoratorContainsPrivateIdentifierInExpression) +} + +func hasClassElementWithDecoratorContainingPrivateIdentifierInExpression(node *ast.ClassDeclaration) bool { + if node.Members == nil || len(node.Members.Nodes) == 0 { + return false + } + for _, member := range node.Members.Nodes { + if !ast.CanHaveDecorators(member) { + continue + } + allDecorators := getAllDecoratorsOfClassElement(member, node, true) + if allDecorators == nil { + continue + } + if core.Some(allDecorators.decorators, decoratorContainsPrivateIdentifierInExpression) { + return true + } + if core.Some(allDecorators.parameters, parameterDecoratorsContainPrivateIdentifierInExpression) { + return true + } + } + return false +} + +type allDecorators struct { + decorators []*ast.Node + parameters [][]*ast.Node +} + +/** + * Gets an allDecorators object containing the decorators for the class and the decorators for the + * parameters of the constructor of the class. + * + * @param node The class node. + * + * @internal + */ +func getAllDecoratorsOfClass(node *ast.ClassDeclaration, useLegacyDecorators bool) *allDecorators { + decorators := node.Decorators() + var parameters [][]*ast.Node + if useLegacyDecorators { + parameters = getDecoratorsOfParameters(ast.GetFirstConstructorWithBody(node.AsNode())) + } + if len(decorators) == 0 && len(parameters) == 0 { + return nil + } + return &allDecorators{decorators: decorators, parameters: parameters} +} + +/** + * Gets an allDecorators object containing the decorators for the member and its parameters. + * + * @param parent The class node that contains the member. + * @param member The class member. + * + * @internal + */ +func getAllDecoratorsOfClassElement(member *ast.Node, parent *ast.ClassDeclaration, useLegacyDecorators bool) *allDecorators { + switch member.Kind { + case ast.KindGetAccessor, ast.KindSetAccessor: + if !useLegacyDecorators { + return getAllDecoratorsOfMethod(member, false) + } + return getAllDecoratorsOfAccessors(member, parent, true) + case ast.KindMethodDeclaration: + return getAllDecoratorsOfMethod(member, useLegacyDecorators) + case ast.KindPropertyDeclaration: + return getAllDecoratorsOfProperty(member) + default: + return nil + } +} + +/** + * Gets an allDecorators object containing the decorators for the accessor and its parameters. + * + * @param parent The class node that contains the accessor. + * @param accessor The class accessor member. + */ +func getAllDecoratorsOfAccessors(accessor *ast.Node, parent *ast.ClassDeclaration, useLegacyDecorators bool) *allDecorators { + if accessor.Body() == nil { + return nil + } + decls := ast.GetAllAccessorDeclarations(parent.Members.Nodes, accessor) + var firstAccessorWithDecorators *ast.Node + if ast.HasDecorators(decls.FirstAccessor) { + firstAccessorWithDecorators = decls.FirstAccessor + } else if ast.HasDecorators(decls.SecondAccessor) { + firstAccessorWithDecorators = decls.SecondAccessor + } + + if firstAccessorWithDecorators == nil || accessor != firstAccessorWithDecorators { + return nil + } + + decorators := firstAccessorWithDecorators.Decorators() + var parameters [][]*ast.Node + if useLegacyDecorators && decls.SetAccessor != nil { + parameters = getDecoratorsOfParameters(decls.SetAccessor.AsNode()) + } + + if len(decorators) == 0 && len(parameters) == 0 { + return nil + } + + return &allDecorators{ + decorators: decorators, + parameters: parameters, + } +} + +func getAllDecoratorsOfProperty(property *ast.Node) *allDecorators { + decorators := property.Decorators() + if len(decorators) == 0 { + return nil + } + return &allDecorators{decorators: decorators} +} + +func getAllDecoratorsOfMethod(method *ast.Node, useLegacyDecorators bool) *allDecorators { + if method.Body() == nil { + return nil + } + decorators := method.Decorators() + var parameters [][]*ast.Node + if useLegacyDecorators { + parameters = getDecoratorsOfParameters(method) + } + if len(decorators) == 0 && len(parameters) == 0 { + return nil + } + return &allDecorators{decorators: decorators, parameters: parameters} +} + +/** + * Gets an array of arrays of decorators for the parameters of a function-like node. + * The offset into the result array should correspond to the offset of the parameter. + * + * @param node The function-like node. + */ +func getDecoratorsOfParameters(node *ast.Node) [][]*ast.Node { + var decorators [][]*ast.Node + if node != nil { + parameters := node.Parameters() + firstParameterIsThis := len(parameters) > 0 && ast.IsThisParameter(parameters[0]) + firstParameterOffset := 0 + numParameters := len(parameters) + if firstParameterIsThis { + firstParameterOffset = 1 + numParameters = numParameters - 1 + } + for i := range numParameters { + p := parameters[i+firstParameterOffset] + if len(decorators) > 0 || ast.HasDecorators(p) { + if len(decorators) == 0 { + decorators = make([][]*ast.Node, numParameters) + } + decorators[i] = p.Decorators() + } + } + + } + return decorators +} + +func (tx *LegacyDecoratorsTransformer) transformDecoratorsOfClassElements(node *ast.ClassDeclaration, members *ast.NodeList) (*ast.NodeList, []*ast.Node) { + var decorationStatements []*ast.Node + decorationStatements = append(decorationStatements, tx.getClassElementDecorationStatements(node, false)...) + decorationStatements = append(decorationStatements, tx.getClassElementDecorationStatements(node, true)...) + if hasClassElementWithDecoratorContainingPrivateIdentifierInExpression(node) { + var memberNodes []*ast.Node + if members != nil && len(members.Nodes) > 0 { + memberNodes = members.Nodes + } + members = tx.Factory().NewNodeList( + append( + append([]*ast.Node{}, memberNodes...), + tx.Factory().NewClassStaticBlockDeclaration(nil, tx.Factory().NewBlock(tx.Factory().NewNodeList(decorationStatements), true)), + ), + ) + decorationStatements = nil + } + + return members, decorationStatements +} + +/** +* Generates statements used to apply decorators to either the static or instance members +* of a class. +* +* @param node The class node. +* @param isStatic A value indicating whether to generate statements for static or +* instance members. + */ +func (tx *LegacyDecoratorsTransformer) getClassElementDecorationStatements(node *ast.ClassDeclaration, isStatic bool) []*ast.Node { + exprs := tx.generateClassElementDecorationExpressions(node, isStatic) + var statements []*ast.Node + for _, e := range exprs { + statements = append(statements, tx.Factory().NewExpressionStatement(e)) + } + return statements +} + +/** +* Determines whether a class member is either a static or an instance member of a class +* that is decorated, or has parameters that are decorated. +* +* @param member The class member. + */ +func isDecoratedClassElement(member *ast.Node, isStaticElement bool, parent *ast.ClassDeclaration) bool { + return isStaticElement == ast.IsStatic(member) && ast.NodeOrChildIsDecorated(true, member, parent.AsNode(), nil) +} + +/** +* Gets either the static or instance members of a class that are decorated, or have +* parameters that are decorated. +* +* @param node The class containing the member. +* @param isStatic A value indicating whether to retrieve static or instance members of +* the class. + */ +func getDecoratedClassElements(node *ast.ClassDeclaration, isStatic bool) []*ast.Node { + if node.Members == nil || len(node.Members.Nodes) == 0 { + return nil + } + var members []*ast.Node + for _, member := range node.Members.Nodes { + if isDecoratedClassElement(member, isStatic, node) { + members = append(members, member) + } + } + return members +} + +/** +* Generates expressions used to apply decorators to either the static or instance members +* of a class. +* +* @param node The class node. +* @param isStatic A value indicating whether to generate expressions for static or +* instance members. + */ +func (tx *LegacyDecoratorsTransformer) generateClassElementDecorationExpressions(node *ast.ClassDeclaration, isStatic bool) []*ast.Node { + members := getDecoratedClassElements(node, isStatic) + var expressions []*ast.Node + for _, member := range members { + expr := tx.generateClassElementDecorationExpression(node, member) + if expr != nil { + expressions = append(expressions, expr) + } + } + return expressions +} + +/** +* Generates an expression used to evaluate class element decorators at runtime. +* +* @param node The class node that contains the member. +* @param member The class member. + */ +func (tx *LegacyDecoratorsTransformer) generateClassElementDecorationExpression(node *ast.ClassDeclaration, member *ast.Node) *ast.Node { + allDecorators := getAllDecoratorsOfClassElement(member, node, true) + decoratorExpressions := tx.transformAllDecoratorsOfDeclaration(allDecorators) + if len(decoratorExpressions) == 0 { + return nil + } + + // Emit the call to __decorate. Given the following: + // + // class C { + // @dec method(@dec2 x) {} + // @dec get accessor() {} + // @dec prop; + // } + // + // The emit for a method is: + // + // __decorate([ + // dec, + // __param(0, dec2), + // __metadata("design:type", Function), + // __metadata("design:paramtypes", [Object]), + // __metadata("design:returntype", void 0) + // ], C.prototype, "method", null); + // + // The emit for an accessor is: + // + // __decorate([ + // dec + // ], C.prototype, "accessor", null); + // + // The emit for a property is: + // + // __decorate([ + // dec + // ], C.prototype, "prop"); + // + + prefix := tx.getClassMemberPrefix(node, member) + memberName := tx.getExpressionForPropertyName(member, !ast.HasAmbientModifier(member)) + var descriptor *ast.Node + if ast.IsPropertyDeclaration(member) && !ast.HasAccessorModifier(member) { + // We emit `void 0` here to indicate to `__decorate` that it can invoke `Object.defineProperty` directly, but that it + // should not invoke `Object.getOwnPropertyDescriptor`. + descriptor = tx.Factory().NewVoidZeroExpression() + } else { + // We emit `null` here to indicate to `__decorate` that it can invoke `Object.getOwnPropertyDescriptor` directly. + // We have this extra argument here so that we can inject an explicit property descriptor at a later date. + descriptor = tx.Factory().NewKeywordExpression(ast.KindNullKeyword) + } + + helper := tx.Factory().NewDecorateHelper( + decoratorExpressions, + prefix, + memberName, + descriptor, + ) + + tx.EmitContext().SetEmitFlags(helper, printer.EFNoComments) + tx.EmitContext().SetSourceMapRange(helper, moveRangePastModifiers(member)) + return helper +} + +func (tx *LegacyDecoratorsTransformer) isSyntheticMetadataDecorator(node *ast.Node) bool { + return tx.EmitContext().IsCallToHelper(node.Expression(), "__metadata") +} + +/** +* Transforms all of the decorators for a declaration into an array of expressions. +* +* @param allDecorators An object containing all of the decorators for the declaration. + */ +func (tx *LegacyDecoratorsTransformer) transformAllDecoratorsOfDeclaration(allDecorators *allDecorators) []*ast.Node { + if allDecorators == nil { + return nil + } + + // ensure that metadata decorators are last + mm := collections.GroupBy(allDecorators.decorators, tx.isSyntheticMetadataDecorator) + metadata := mm.Get(true) + decorators := mm.Get(false) + + var decoratorExpressions []*ast.Node + decoratorExpressions = append(decoratorExpressions, tx.transformDecorators(decorators)...) + decoratorExpressions = append(decoratorExpressions, tx.transformDecoratorsOfParameters(allDecorators.parameters)...) + decoratorExpressions = append(decoratorExpressions, tx.transformDecorators(metadata)...) + return decoratorExpressions +} + +func (tx *LegacyDecoratorsTransformer) transformDecoratorsOfParameters(parameters [][]*ast.Node) []*ast.Node { + var results []*ast.Node + for i, decorators := range parameters { + if len(decorators) > 0 { + for _, decorator := range decorators { + helper := tx.Factory().NewParamHelper( + tx.Visitor().VisitNode(decorator.Expression()), + i, + decorator.Expression().Loc, + ) + tx.EmitContext().SetEmitFlags(helper, printer.EFNoComments) + results = append(results, helper) + } + } + } + return results +} + +/** +* Transforms a list of decorators into an expression. +* +* @param decorator The decorator node. + */ +func (tx *LegacyDecoratorsTransformer) transformDecorators(decorators []*ast.Node) []*ast.Node { + var results []*ast.Node + for _, d := range decorators { + results = append(results, tx.Visitor().VisitNode(d.Expression())) + } + return results +} + +func (tx *LegacyDecoratorsTransformer) getClassMemberPrefix(node *ast.ClassDeclaration, member *ast.Node) *ast.Node { + if ast.IsStatic(member) { + return tx.Factory().GetDeclarationName(node.AsNode()) + } + return tx.getClassPrototype(node) +} + +func (tx *LegacyDecoratorsTransformer) getClassPrototype(node *ast.ClassDeclaration) *ast.Node { + return tx.Factory().NewPropertyAccessExpression( + tx.Factory().GetDeclarationName(node.AsNode()), + nil, + tx.Factory().NewIdentifier("prototype"), + ast.NodeFlagsNone, + ) +} + +func (tx *LegacyDecoratorsTransformer) getExpressionForPropertyName(member *ast.Node, generateNameForComputedPropertyName bool) *ast.Node { + name := member.Name() + if ast.IsPrivateIdentifier(name) { + return tx.Factory().NewIdentifier("") + } else if ast.IsComputedPropertyName(name) { + if generateNameForComputedPropertyName && !transformers.IsSimpleInlineableExpression(name.AsComputedPropertyName().Expression) { + return tx.Factory().NewGeneratedNameForNode(name) + } + return name.AsComputedPropertyName().Expression + } else if ast.IsIdentifier(name) { + return tx.Factory().NewStringLiteral(name.Text(), ast.TokenFlagsNone) + } else { + return tx.Factory().DeepCloneNode(name) + } +} diff --git a/internal/transformers/tstransforms/metadata.go b/internal/transformers/tstransforms/metadata.go new file mode 100644 index 0000000000..5a30445fc0 --- /dev/null +++ b/internal/transformers/tstransforms/metadata.go @@ -0,0 +1,386 @@ +package tstransforms + +import ( + "github.com/microsoft/typescript-go/internal/ast" + "github.com/microsoft/typescript-go/internal/core" + "github.com/microsoft/typescript-go/internal/printer" + "github.com/microsoft/typescript-go/internal/transformers" +) + +const USE_NEW_TYPE_METADATA_FORMAT = false + +type MetadataTransformer struct { + transformers.Transformer + legacyDecorators bool + resolver printer.EmitResolver + + serializer *metadataSerializer + strictNullChecks bool + parent *ast.Node + currentLexicalScope *ast.Node +} + +func NewMetadataTransformer(opt *transformers.TransformOptions) *transformers.Transformer { + tx := &MetadataTransformer{ + legacyDecorators: opt.CompilerOptions.ExperimentalDecorators.IsTrue(), + resolver: opt.EmitResolver, + strictNullChecks: opt.CompilerOptions.GetStrictOptionValue(opt.CompilerOptions.StrictNullChecks), + } + return tx.NewTransformer(tx.visit, opt.Context) +} + +func (tx *MetadataTransformer) visit(node *ast.Node) *ast.Node { + if (node.SubtreeFacts() & ast.SubtreeContainsDecorators) == 0 { + return node + } + + switch node.Kind { + case ast.KindClassDeclaration: + return tx.visitClassDeclaration(node.AsClassDeclaration()) + case ast.KindClassExpression: + return tx.visitClassExpression(node.AsClassExpression()) + case ast.KindPropertyDeclaration: + return tx.visitPropertyDeclaration(node.AsPropertyDeclaration()) + case ast.KindMethodDeclaration: + return tx.visitMethodDeclaration(node.AsMethodDeclaration()) + case ast.KindSetAccessor: + return tx.visitSetAccessor(node.AsSetAccessorDeclaration()) + case ast.KindGetAccessor: + return tx.visitGetAccessor(node.AsGetAccessorDeclaration()) + case ast.KindSourceFile: + tx.parent = nil + defer tx.setParent(nil) + tx.currentLexicalScope = node + defer tx.setCurrentLexicalScope(nil) + tx.serializer = newMetadataSerializer(tx.resolver, tx.Factory(), tx.EmitContext(), tx.strictNullChecks) + updated := tx.Visitor().VisitEachChild(node) + tx.EmitContext().AddEmitHelper(updated, tx.EmitContext().ReadEmitHelpers()...) + return updated + case ast.KindModuleBlock, ast.KindBlock, ast.KindCaseBlock: + oldScope := tx.currentLexicalScope + tx.currentLexicalScope = node + defer tx.setCurrentLexicalScope(oldScope) + return tx.Visitor().VisitEachChild(node) + default: + return tx.Visitor().VisitEachChild(node) + } +} + +func (tx *MetadataTransformer) setParent(node *ast.Node) { + tx.parent = node +} + +func (tx *MetadataTransformer) setCurrentLexicalScope(node *ast.Node) { + tx.currentLexicalScope = node +} + +func (tx *MetadataTransformer) visitClassExpression(node *ast.ClassExpression) *ast.Node { + oldParent := tx.parent + tx.parent = node.AsNode() + defer tx.setParent(oldParent) + + if !ast.ClassOrConstructorParameterIsDecorated(tx.legacyDecorators, node.AsNode()) { + return tx.Visitor().VisitEachChild(node.AsNode()) + } + modifiers := tx.injectClassTypeMetadata(tx.Visitor().VisitModifiers(node.Modifiers()), node.AsNode()) + return tx.Factory().UpdateClassExpression( + node, + modifiers, + tx.Visitor().VisitNode(node.Name()), + tx.Visitor().VisitNodes(node.TypeParameters), + tx.Visitor().VisitNodes(node.HeritageClauses), + tx.Visitor().VisitNodes(node.Members), + ) +} + +func (tx *MetadataTransformer) visitClassDeclaration(node *ast.ClassDeclaration) *ast.Node { + oldParent := tx.parent + tx.parent = node.AsNode() + defer tx.setParent(oldParent) + + if !ast.ClassOrConstructorParameterIsDecorated(tx.legacyDecorators, node.AsNode()) { + return tx.Visitor().VisitEachChild(node.AsNode()) + } + modifiers := tx.injectClassTypeMetadata(tx.Visitor().VisitModifiers(node.Modifiers()), node.AsNode()) + return tx.Factory().UpdateClassDeclaration( + node, + modifiers, + tx.Visitor().VisitNode(node.Name()), + tx.Visitor().VisitNodes(node.TypeParameters), + tx.Visitor().VisitNodes(node.HeritageClauses), + tx.Visitor().VisitNodes(node.Members), + ) +} + +func (tx *MetadataTransformer) visitPropertyDeclaration(node *ast.PropertyDeclaration) *ast.Node { + if !ast.HasDecorators(node.AsNode()) { + return tx.Visitor().VisitEachChild(node.AsNode()) + } + + modifiers := tx.injectClassElementTypeMetadata(tx.Visitor().VisitModifiers(node.Modifiers()), node.AsNode(), tx.parent) + return tx.Factory().UpdatePropertyDeclaration( + node, + modifiers, + tx.Visitor().VisitNode(node.Name()), + tx.Visitor().VisitNode(node.PostfixToken), + tx.Visitor().VisitNode(node.Type), + tx.Visitor().VisitNode(node.Initializer), + ) +} + +func (tx *MetadataTransformer) visitMethodDeclaration(node *ast.MethodDeclaration) *ast.Node { + if !ast.HasDecorators(node.AsNode()) && len(getDecoratorsOfParameters(node.AsNode())) == 0 { + return tx.Visitor().VisitEachChild(node.AsNode()) + } + + modifiers := tx.injectClassElementTypeMetadata(tx.Visitor().VisitModifiers(node.Modifiers()), node.AsNode(), tx.parent) + return tx.Factory().UpdateMethodDeclaration( + node, + modifiers, + tx.Visitor().VisitNode(node.AsteriskToken), + tx.Visitor().VisitNode(node.Name()), + tx.Visitor().VisitNode(node.PostfixToken), + tx.Visitor().VisitNodes(node.TypeParameters), + tx.Visitor().VisitNodes(node.Parameters), + tx.Visitor().VisitNode(node.Type), + tx.Visitor().VisitNode(node.FullSignature), + tx.Visitor().VisitNode(node.Body), + ) +} + +func (tx *MetadataTransformer) visitSetAccessor(node *ast.SetAccessorDeclaration) *ast.Node { + if !ast.HasDecorators(node.AsNode()) && len(getDecoratorsOfParameters(node.AsNode())) == 0 { + return tx.Visitor().VisitEachChild(node.AsNode()) + } + + modifiers := tx.injectClassElementTypeMetadata(tx.Visitor().VisitModifiers(node.Modifiers()), node.AsNode(), tx.parent) + return tx.Factory().UpdateSetAccessorDeclaration( + node, + modifiers, + tx.Visitor().VisitNode(node.Name()), + tx.Visitor().VisitNodes(node.TypeParameters), + tx.Visitor().VisitNodes(node.Parameters), + tx.Visitor().VisitNode(node.Type), + tx.Visitor().VisitNode(node.FullSignature), + tx.Visitor().VisitNode(node.Body), + ) +} + +func (tx *MetadataTransformer) visitGetAccessor(node *ast.GetAccessorDeclaration) *ast.Node { + if !ast.HasDecorators(node.AsNode()) { + return tx.Visitor().VisitEachChild(node.AsNode()) + } + + modifiers := tx.injectClassElementTypeMetadata(tx.Visitor().VisitModifiers(node.Modifiers()), node.AsNode(), tx.parent) + return tx.Factory().UpdateGetAccessorDeclaration( + node, + modifiers, + tx.Visitor().VisitNode(node.Name()), + tx.Visitor().VisitNodes(node.TypeParameters), + tx.Visitor().VisitNodes(node.Parameters), + tx.Visitor().VisitNode(node.Type), + tx.Visitor().VisitNode(node.FullSignature), + tx.Visitor().VisitNode(node.Body), + ) +} + +func (tx *MetadataTransformer) injectClassTypeMetadata(list *ast.ModifierList, node *ast.Node) *ast.ModifierList { + metadata := tx.getTypeMetadata(node, node) + if len(metadata) > 0 { + var originalNodes []*ast.Node + if list != nil { + originalNodes = list.Nodes + } + if len(originalNodes) == 0 { + res := tx.Factory().NewModifierList(metadata) + res.Loc = list.Loc + return res + } + var modifiersArray []*ast.Node + if ast.IsModifier(originalNodes[0]) && (originalNodes[0].Kind == ast.KindDefaultKeyword || originalNodes[0].Kind == ast.KindExportKeyword) { + modifiersArray = append(modifiersArray, originalNodes[0]) + if len(originalNodes) > 1 && (originalNodes[1].Kind == ast.KindDefaultKeyword || originalNodes[1].Kind == ast.KindExportKeyword) { + modifiersArray = append(modifiersArray, originalNodes[1]) + } + } + restStart := len(modifiersArray) + decos := core.Filter(originalNodes, ast.IsDecorator) + modifiersArray = append(modifiersArray, decos...) + modifiersArray = append(modifiersArray, metadata...) + otherModifiers := core.Filter(originalNodes[restStart:], ast.IsModifier) + modifiersArray = append(modifiersArray, otherModifiers...) + res := tx.Factory().NewModifierList(modifiersArray) + res.Loc = list.Loc + return res + } + return list +} + +func (tx *MetadataTransformer) injectClassElementTypeMetadata(list *ast.ModifierList, node *ast.Node, container *ast.Node) *ast.ModifierList { + if !ast.IsClassLike(container) { + return list + } + if !ast.ClassElementOrClassElementParameterIsDecorated(tx.legacyDecorators, node, container) { + return list + } + metadata := tx.getTypeMetadata(node, container) + if len(metadata) > 0 { + var originalNodes []*ast.Node + if list != nil { + originalNodes = list.Nodes + } + if len(originalNodes) == 0 { + res := tx.Factory().NewModifierList(metadata) + if list != nil { + res.Loc = list.Loc + } + return res + } + var modifiersArray []*ast.Node + decos := core.Filter(originalNodes, ast.IsDecorator) + modifiersArray = append(modifiersArray, decos...) + modifiersArray = append(modifiersArray, metadata...) + modifiers := core.Filter(originalNodes, ast.IsModifier) + modifiersArray = append(modifiersArray, modifiers...) + res := tx.Factory().NewModifierList(modifiersArray) + res.Loc = list.Loc + return res + } + return list +} + +/** + * Gets optional type metadata for a declaration. + * + * @param node The declaration node. + */ +func (tx *MetadataTransformer) getTypeMetadata(node *ast.Node, container *ast.Node) []*ast.Node { + // Decorator metadata is not yet supported for ES decorators. + if !tx.legacyDecorators { + return nil + } + if USE_NEW_TYPE_METADATA_FORMAT { + return tx.getNewTypeMetadata(node, container) + } + return tx.getOldTypeMetadata(node, container) +} + +func (tx *MetadataTransformer) getOldTypeMetadata(node *ast.Node, container *ast.Node) []*ast.Node { + var decorators []*ast.Node + if tx.shouldAddTypeMetadata(node) { + typeMetadata := tx.Factory().NewMetadataHelper("design:type", tx.serializer.SerializeTypeOfNode(metadataSerializerContext{currentLexicalScope: tx.currentLexicalScope, currentNameScope: container}, node, container)) + decorators = append(decorators, tx.Factory().NewDecorator(typeMetadata)) + } + if tx.shouldAddParamTypesMetadata(node) { + paramTypesMetadata := tx.Factory().NewMetadataHelper("design:paramtypes", tx.serializer.SerializeParameterTypesOfNode(metadataSerializerContext{currentLexicalScope: tx.currentLexicalScope, currentNameScope: container}, node, container)) + decorators = append(decorators, tx.Factory().NewDecorator(paramTypesMetadata)) + } + if tx.shouldAddReturnTypeMetadata(node) { + returnTypeMetadata := tx.Factory().NewMetadataHelper("design:returntype", tx.serializer.SerializeReturnTypeOfNode(metadataSerializerContext{currentLexicalScope: tx.currentLexicalScope, currentNameScope: container}, node)) + decorators = append(decorators, tx.Factory().NewDecorator(returnTypeMetadata)) + } + return decorators +} + +func (tx *MetadataTransformer) getNewTypeMetadata(node *ast.Node, container *ast.Node) []*ast.Node { + var properties []*ast.Node + if tx.shouldAddTypeMetadata(node) { + properties = append(properties, tx.Factory().NewPropertyAssignment( + nil, + tx.Factory().NewIdentifier("type"), + nil, + nil, + tx.Factory().NewArrowFunction( + nil, + nil, + tx.Factory().NewNodeList([]*ast.Node{}), + nil, + nil, + tx.Factory().NewToken(ast.KindEqualsGreaterThanToken), + tx.serializer.SerializeTypeOfNode(metadataSerializerContext{currentLexicalScope: tx.currentLexicalScope, currentNameScope: container}, node, container), + ), + )) + } + if tx.shouldAddParamTypesMetadata(node) { + properties = append(properties, tx.Factory().NewPropertyAssignment( + nil, + tx.Factory().NewIdentifier("paramTypes"), + nil, + nil, + tx.Factory().NewArrowFunction( + nil, + nil, + tx.Factory().NewNodeList([]*ast.Node{}), + nil, + nil, + tx.Factory().NewToken(ast.KindEqualsGreaterThanToken), + tx.serializer.SerializeParameterTypesOfNode(metadataSerializerContext{currentLexicalScope: tx.currentLexicalScope, currentNameScope: container}, node, container), + ), + )) + } + if tx.shouldAddReturnTypeMetadata(node) { + properties = append(properties, tx.Factory().NewPropertyAssignment( + nil, + tx.Factory().NewIdentifier("returnType"), + nil, + nil, + tx.Factory().NewArrowFunction( + nil, + nil, + tx.Factory().NewNodeList([]*ast.Node{}), + nil, + nil, + tx.Factory().NewToken(ast.KindEqualsGreaterThanToken), + tx.serializer.SerializeReturnTypeOfNode(metadataSerializerContext{currentLexicalScope: tx.currentLexicalScope, currentNameScope: container}, node), + ), + )) + } + if len(properties) > 0 { + typeInfoMetadata := tx.Factory().NewMetadataHelper("design:typeinfo", tx.Factory().NewObjectLiteralExpression(tx.Factory().NewNodeList(properties), true)) + return []*ast.Node{tx.Factory().NewDecorator(typeInfoMetadata)} + } + return nil +} + +/** +* Determines whether to emit the "design:type" metadata based on the node's kind. +* The caller should have already tested whether the node has decorators and whether the +* emitDecoratorMetadata compiler option is set. +* +* @param node The node to test. + */ +func (tx *MetadataTransformer) shouldAddTypeMetadata(node *ast.Node) bool { + switch node.Kind { + case ast.KindMethodDeclaration, ast.KindGetAccessor, ast.KindSetAccessor, ast.KindPropertyDeclaration: + return true + } + return false +} + +/** +* Determines whether to emit the "design:returntype" metadata based on the node's kind. +* The caller should have already tested whether the node has decorators and whether the +* emitDecoratorMetadata compiler option is set. +* +* @param node The node to test. + */ +func (tx *MetadataTransformer) shouldAddReturnTypeMetadata(node *ast.Node) bool { + return node.Kind == ast.KindMethodDeclaration +} + +/** +* Determines whether to emit the "design:paramtypes" metadata based on the node's kind. +* The caller should have already tested whether the node has decorators and whether the +* emitDecoratorMetadata compiler option is set. +* +* @param node The node to test. + */ +func (tx *MetadataTransformer) shouldAddParamTypesMetadata(node *ast.Node) bool { + switch node.Kind { + case ast.KindClassDeclaration, ast.KindClassExpression: + return ast.GetFirstConstructorWithBody(node) != nil + case ast.KindMethodDeclaration, ast.KindGetAccessor, ast.KindSetAccessor: + return true + } + return false +} diff --git a/internal/transformers/tstransforms/typeeraser.go b/internal/transformers/tstransforms/typeeraser.go index f17962f6d4..dadc41cee7 100644 --- a/internal/transformers/tstransforms/typeeraser.go +++ b/internal/transformers/tstransforms/typeeraser.go @@ -1,6 +1,8 @@ package tstransforms import ( + "slices" + "github.com/microsoft/typescript-go/internal/ast" "github.com/microsoft/typescript-go/internal/core" "github.com/microsoft/typescript-go/internal/transformers" @@ -121,6 +123,11 @@ func (tx *TypeEraserTransformer) visit(node *ast.Node) *ast.Node { return tx.Factory().UpdateExpressionWithTypeArguments(n, tx.Visitor().VisitNode(n.Expression), nil) case ast.KindPropertyDeclaration: + if tx.compilerOptions.ExperimentalDecorators.IsTrue() && ast.HasSyntacticModifier(node, ast.ModifierFlagsAmbient|ast.ModifierFlagsAbstract) && ast.HasDecorators(node) { + // declare/abstract props with decorators must be preserved until the decorator transform can process them and remove them + n := node.AsPropertyDeclaration() + return tx.Factory().UpdatePropertyDeclaration(n, tx.Visitor().VisitModifiers(n.Modifiers()), tx.Visitor().VisitNode(n.Name()), nil, nil, tx.Visitor().VisitNode(n.Initializer)) + } if ast.HasSyntacticModifier(node, ast.ModifierFlagsAmbient|ast.ModifierFlagsAbstract) { // TypeScript `declare` fields are elided return nil @@ -207,6 +214,16 @@ func (tx *TypeEraserTransformer) visit(node *ast.Node) *ast.Node { if ast.IsParameterPropertyDeclaration(node, tx.parentNode) { modifiers = transformers.ExtractModifiers(tx.EmitContext(), n.Modifiers(), ast.ModifierFlagsParameterPropertyModifier) } + // preserve decorators for the decorator transforms + if ast.HasDecorators(node) { + decorators := node.Decorators() + visited, _ := tx.Visitor().VisitSlice(decorators) + if modifiers == nil { + modifiers = tx.Factory().NewModifierList(visited) + } else { + modifiers = tx.Factory().NewModifierList(slices.Concat(modifiers.Nodes, visited)) + } + } return tx.Factory().UpdateParameterDeclaration(n, modifiers, n.DotDotDotToken, tx.Visitor().VisitNode(n.Name()), nil, nil, tx.Visitor().VisitNode(n.Initializer)) case ast.KindCallExpression: diff --git a/internal/transformers/tstransforms/typeserializer.go b/internal/transformers/tstransforms/typeserializer.go new file mode 100644 index 0000000000..02ce26d0a6 --- /dev/null +++ b/internal/transformers/tstransforms/typeserializer.go @@ -0,0 +1,496 @@ +package tstransforms + +import ( + "github.com/microsoft/typescript-go/internal/ast" + "github.com/microsoft/typescript-go/internal/debug" + "github.com/microsoft/typescript-go/internal/printer" + "github.com/microsoft/typescript-go/internal/transformers" +) + +type metadataSerializer struct { + resolver printer.EmitResolver + strictNullChecks bool + f *printer.NodeFactory + ec *printer.EmitContext + c metadataSerializerContext +} + +type metadataSerializerContext struct { + currentLexicalScope *ast.Node + currentNameScope *ast.Node +} + +func newMetadataSerializer(resolver printer.EmitResolver, f *printer.NodeFactory, ec *printer.EmitContext, strictNullChecks bool) *metadataSerializer { + return &metadataSerializer{resolver: resolver, f: f, ec: ec, strictNullChecks: strictNullChecks} +} + +func (s *metadataSerializer) setContext(ctx metadataSerializerContext) { + s.c = ctx +} + +func (s *metadataSerializer) SerializeTypeOfNode(ctx metadataSerializerContext, node *ast.Node, container *ast.Node) *ast.Node { + oldCtx := s.c + s.c = ctx + defer s.setContext(oldCtx) + return s.serializeTypeOfNode(node, container) +} + +func (s *metadataSerializer) SerializeParameterTypesOfNode(ctx metadataSerializerContext, node *ast.Node, container *ast.Node) *ast.Node { + oldCtx := s.c + s.c = ctx + defer s.setContext(oldCtx) + return s.serializeParameterTypesOfNode(node, container) +} + +func (s *metadataSerializer) SerializeReturnTypeOfNode(ctx metadataSerializerContext, node *ast.Node) *ast.Node { + oldCtx := s.c + s.c = ctx + defer s.setContext(oldCtx) + return s.serializeReturnTypeOfNode(node) +} + +func getSetAccessorValueParameter(node *ast.SetAccessorDeclaration) *ast.Node { + if node != nil && len(node.Parameters.Nodes) > 0 { + if len(node.Parameters.Nodes) >= 2 && ast.IsThisParameter(node.Parameters.Nodes[0]) { + return node.Parameters.Nodes[1] + } + return node.Parameters.Nodes[0] + } + return nil +} + +/** + * Get the type annotation for the value parameter. + * + * @internal + */ +func getSetAccessorTypeAnnotationNode(node *ast.SetAccessorDeclaration) *ast.Node { + p := getSetAccessorValueParameter(node) + if p != nil && p.Type() != nil { + return p.Type() + } + return nil +} + +func getAccessorTypeNode(node *ast.Node, container *ast.Node) *ast.Node { + accessors := ast.GetAllAccessorDeclarations(container.Members(), node) + if accessors.SetAccessor != nil { + return getSetAccessorTypeAnnotationNode(accessors.SetAccessor) + } + if accessors.GetAccessor != nil { + return accessors.GetAccessor.Type + } + return nil +} + +/** +* Serializes the type of a node for use with decorator type metadata. +* @param node The node that should have its type serialized. + */ +func (s *metadataSerializer) serializeTypeOfNode(node *ast.Node, container *ast.Node) *ast.Node { + switch node.Kind { + case ast.KindPropertyDeclaration, ast.KindParameter: + return s.serializeTypeNode(node.Type()) + case ast.KindGetAccessor, ast.KindSetAccessor: + return s.serializeTypeNode(getAccessorTypeNode(node, container)) + case ast.KindClassDeclaration, ast.KindClassExpression, ast.KindMethodDeclaration: + return s.f.NewIdentifier("Function") + default: + return s.f.NewVoidZeroExpression() + } +} + +/** +* Serializes the type of a node for use with decorator type metadata. +* @param node The node that should have its type serialized. + */ +func (s *metadataSerializer) serializeParameterTypesOfNode(node *ast.Node, container *ast.Node) *ast.Node { + var valueDeclaration *ast.Node + if ast.IsClassLike(node) { + valueDeclaration = ast.GetFirstConstructorWithBody(node) + } else if ast.IsFunctionLike(node) && ast.NodeIsPresent(node.Body()) { + valueDeclaration = node + } + + if valueDeclaration == nil { + return s.f.NewArrayLiteralExpression(s.f.NewNodeList([]*ast.Node{}), false) + } + + var expressions []*ast.Node + parameters := getParametersOfDecoratedDeclaration(valueDeclaration, container) + for i, parameter := range parameters.Nodes { + if i == 0 && ast.IsIdentifier(parameter.Name()) && parameter.Name().Text() == "this" { + continue + } + if parameter.AsParameterDeclaration().DotDotDotToken != nil { + expressions = append(expressions, s.serializeTypeNode(ast.GetRestParameterElementType(parameter.Type()))) + } else { + expressions = append(expressions, s.serializeTypeOfNode(parameter, container)) + } + } + return s.f.NewArrayLiteralExpression(s.f.NewNodeList(expressions), false) +} + +func getParametersOfDecoratedDeclaration(node *ast.Node, container *ast.Node) *ast.NodeList { + if container != nil && node.Kind == ast.KindGetAccessor { + acc := ast.GetAllAccessorDeclarations(container.Members(), node) + if acc.SetAccessor != nil { + return acc.SetAccessor.Parameters + } + } + return node.ParameterList() +} + +/** +* Serializes the return type of a node for use with decorator type metadata. +* @param node The node that should have its return type serialized. + */ +func (s *metadataSerializer) serializeReturnTypeOfNode(node *ast.Node) *ast.Node { + if ast.IsFunctionLike(node) && node.Type() != nil { + return s.serializeTypeNode(node.Type()) + } else if ast.IsAsyncFunction(node) { + return s.f.NewIdentifier("Promise") + } + return s.f.NewVoidZeroExpression() +} + +/** +* Serializes a type node for use with decorator type metadata. +* +* Types are serialized in the following fashion: +* - Void types point to "undefined" (e.g. "void 0") +* - Function and Constructor types point to the global "Function" constructor. +* - Interface types with a call or construct signature types point to the global +* "Function" constructor. +* - Array and Tuple types point to the global "Array" constructor. +* - Type predicates and booleans point to the global "Boolean" constructor. +* - String literal types and strings point to the global "String" constructor. +* - Enum and number types point to the global "Number" constructor. +* - Symbol types point to the global "Symbol" constructor. +* - Type references to classes (or class-like variables) point to the constructor for the class. +* - Anything else points to the global "Object" constructor. +* +* @param node The type node to serialize. + */ +func (s *metadataSerializer) serializeTypeNode(node *ast.Node) *ast.Node { + if node == nil { + return s.f.NewIdentifier("Object") + } + + node = ast.SkipTypeParentheses(node) + + switch node.Kind { + case ast.KindVoidKeyword, ast.KindUndefinedKeyword, ast.KindNeverKeyword: + return s.f.NewVoidZeroExpression() + case ast.KindFunctionType, ast.KindConstructorType: + return s.f.NewIdentifier("Function") + case ast.KindArrayType, ast.KindTupleType: + return s.f.NewIdentifier("Array") + case ast.KindTypePredicate: + if node.AsTypePredicateNode().AssertsModifier != nil { + return s.f.NewVoidZeroExpression() + } + return s.f.NewIdentifier("Boolean") + case ast.KindBooleanKeyword: + return s.f.NewIdentifier("Boolean") + case ast.KindTemplateLiteralType, ast.KindStringKeyword: + return s.f.NewIdentifier("String") + case ast.KindObjectKeyword: + return s.f.NewIdentifier("Object") + case ast.KindLiteralType: + return s.serializeLiteralOfLiteralTypeNode(node.AsLiteralTypeNode().Literal) + case ast.KindNumberKeyword: + return s.f.NewIdentifier("Number") + case ast.KindBigIntKeyword: + return s.f.NewIdentifier("BigInt") // !!! todo: fallback for targets < es2020 + case ast.KindSymbolKeyword: + return s.f.NewIdentifier("Symbol") + case ast.KindTypeReference: + return s.serializeTypeReferenceNode(node.AsTypeReferenceNode()) + case ast.KindIntersectionType: + return s.serializeUnionOrIntersectionConstituents(node.AsIntersectionTypeNode().Types.Nodes, true) + case ast.KindUnionType: + return s.serializeUnionOrIntersectionConstituents(node.AsUnionTypeNode().Types.Nodes, false) + case ast.KindConditionalType: + return s.serializeUnionOrIntersectionConstituents([]*ast.Node{node.AsConditionalTypeNode().TrueType, node.AsConditionalTypeNode().FalseType}, false) + case ast.KindTypeOperator: + if node.AsTypeOperatorNode().Operator == ast.KindReadonlyKeyword { + return s.serializeTypeNode(node.Type()) + } + // TODO: why is `unique symbol` not handled as `Symbol`? This falls back to `Object` + case ast.KindTypeQuery, ast.KindIndexedAccessType, ast.KindMappedType, ast.KindTypeLiteral, ast.KindAnyKeyword, ast.KindUnknownKeyword, ast.KindThisType, ast.KindImportType: + break + + // handle JSDoc types from an invalid parse + case ast.KindJSDocAllType, ast.KindJSDocVariadicType: + break + case ast.KindJSDocNullableType, ast.KindJSDocNonNullableType, ast.KindJSDocOptionalType: + return s.serializeTypeNode(node.Type()) + default: + debug.FailBadSyntaxKind(node) + return nil + } + return s.f.NewIdentifier("Object") +} + +func (s *metadataSerializer) serializeUnionOrIntersectionConstituents(types []*ast.Node, isIntersection bool) *ast.Node { + // Note when updating logic here also update `getEntityNameForDecoratorMetadata` in checker.ts so that aliases can be marked as referenced + var serializedType *ast.Node + for _, typeNode := range types { + typeNode = ast.SkipTypeParentheses(typeNode) + if typeNode.Kind == ast.KindNeverKeyword { + if isIntersection { + return s.f.NewVoidZeroExpression() // Reduce to `never` in an intersection + } + continue // Elide `never` in a union + } + + if typeNode.Kind == ast.KindUnknownKeyword { + if !isIntersection { + return s.f.NewIdentifier("Object") // Reduce to `unknown` in a union + } + continue // Elide `unknown` in an intersection + } + + if typeNode.Kind == ast.KindAnyKeyword { + return s.f.NewIdentifier("Object") // Reduce to `any` in a union or intersection + } + + if !s.strictNullChecks && (ast.IsLiteralTypeNode(typeNode) && typeNode.AsLiteralTypeNode().Literal.Kind == ast.KindNullKeyword) || typeNode.Kind == ast.KindUndefinedKeyword { + continue // Elide null and undefined from unions for metadata, just like what we did prior to the implementation of strict null checks + } + + serializedConstituent := s.serializeTypeNode(typeNode) + if ast.IsIdentifier(serializedConstituent) && serializedConstituent.AsIdentifier().Text == "Object" { + // One of the individual is global object, return immediately + return serializedConstituent + } + + // If there exists union that is not `void 0` expression, check if the the common type is identifier. + // anything more complex and we will just default to Object + if serializedType != nil { + // Different types + if !s.equateSerializedTypeNodes(serializedType, serializedConstituent) { + return s.f.NewIdentifier("Object") + } + } else { + // Initialize the union type + serializedType = serializedConstituent + } + } + + // If we were able to find common type, use it + if serializedType != nil { + return serializedType + } + return s.f.NewVoidZeroExpression() // Fallback is only hit if all union constituents are null/undefined/never +} + +func (s *metadataSerializer) serializeLiteralOfLiteralTypeNode(node *ast.Node) *ast.Node { + switch node.Kind { + case ast.KindStringLiteral, ast.KindNoSubstitutionTemplateLiteral: + return s.f.NewIdentifier("String") + case ast.KindPrefixUnaryExpression: + operand := node.AsPrefixUnaryExpression().Operand + switch operand.Kind { + case ast.KindNumericLiteral, ast.KindBigIntLiteral: + return s.serializeLiteralOfLiteralTypeNode(operand) + default: + debug.FailBadSyntaxKind(operand) + } + case ast.KindNumericLiteral: + return s.f.NewIdentifier("Number") + case ast.KindBigIntLiteral: + return s.f.NewIdentifier("BigInt") // !!! todo: fallback for targets < es2020 + case ast.KindTrueKeyword, ast.KindFalseKeyword: + return s.f.NewIdentifier("Boolean") + case ast.KindNullKeyword: + return s.f.NewVoidZeroExpression() + default: + debug.FailBadSyntaxKind(node) + return nil + } + return nil +} + +func isConditionalTypeBranch(n *ast.Node) bool { + return n.Parent != nil && ast.IsConditionalTypeNode(n.Parent) && (n.Parent.AsConditionalTypeNode().TrueType == n || n.Parent.AsConditionalTypeNode().FalseType == n) +} + +/** +* Serializes a TypeReferenceNode to an appropriate JS constructor value for use with decorator type metadata. +* @param node The type reference node. + */ +func (s *metadataSerializer) serializeTypeReferenceNode(node *ast.TypeReferenceNode) *ast.Node { + serialScope := s.c.currentNameScope + if serialScope == nil { + serialScope = s.c.currentLexicalScope + } + kind := s.resolver.GetTypeReferenceSerializationKind(s.ec.ParseNode(node.TypeName), s.ec.ParseNode(serialScope)) + switch kind { + case printer.TypeReferenceSerializationKindUnknown: + // From conditional type type reference that cannot be resolved is Similar to any or unknown + if ast.FindAncestor(node.AsNode(), isConditionalTypeBranch) != nil { + return s.f.NewIdentifier("Object") + } + + serialized := s.serializeEntityNameAsExpressionFallback(node.TypeName) + temp := s.f.NewTempVariable() + s.ec.AddVariableDeclaration(temp) + return s.f.NewConditionalExpression( + s.f.NewTypeCheck(s.f.NewAssignmentExpression(temp, serialized), "function"), + s.f.NewToken(ast.KindQuestionToken), + temp, + s.f.NewToken(ast.KindColonToken), + s.f.NewIdentifier("Object"), + ) + + case printer.TypeReferenceSerializationKindTypeWithConstructSignatureAndValue: + return s.serializeEntityNameAsExpression(node.TypeName) + + case printer.TypeReferenceSerializationKindVoidNullableOrNeverType: + return s.f.NewVoidZeroExpression() + + case printer.TypeReferenceSerializationKindBigIntLikeType: + return s.f.NewIdentifier("BigInt") + + case printer.TypeReferenceSerializationKindBooleanType: + return s.f.NewIdentifier("Boolean") + + case printer.TypeReferenceSerializationKindNumberLikeType: + return s.f.NewIdentifier("Number") + + case printer.TypeReferenceSerializationKindStringLikeType: + return s.f.NewIdentifier("String") + + case printer.TypeReferenceSerializationKindArrayLikeType: + return s.f.NewIdentifier("Array") + + case printer.TypeReferenceSerializationKindESSymbolType: + return s.f.NewIdentifier("Symbol") + + case printer.TypeReferenceSerializationKindTypeWithCallSignature: + return s.f.NewIdentifier("Function") + + case printer.TypeReferenceSerializationKindPromise: + return s.f.NewIdentifier("Promise") + + case printer.TypeReferenceSerializationKindObjectType: + return s.f.NewIdentifier("Object") + default: + debug.AssertNever(kind, "unknown type reference serialization kind") + return nil + } +} + +/** +* Serializes an entity name as an expression for decorator type metadata. +* @param node The entity name to serialize. + */ +func (s *metadataSerializer) serializeEntityNameAsExpression(node *ast.EntityName) *ast.Node { + switch node.Kind { + case ast.KindIdentifier: + // Create a clone of the name with a new parent, and treat it as if it were + // a source tree node for the purposes of the checker. + name := node.Clone(s.f) + name.Loc = node.Loc + s.ec.UnsetOriginal(name) // make this identifier emulate a parse node, making it behave correctly when inspected by the module transforms + name.Parent = s.ec.ParseNode(s.c.currentLexicalScope) // ensure the parent is set to a parse tree node. + return name + case ast.KindQualifiedName: + return s.serializeQualifiedNameAsExpression(node.AsQualifiedName()) + } + return nil +} + +/** +* Serializes an qualified name as an expression for decorator type metadata. +* @param node The qualified name to serialize. + */ +func (s *metadataSerializer) serializeQualifiedNameAsExpression(node *ast.QualifiedName) *ast.Node { + return s.f.NewPropertyAccessExpression(s.serializeEntityNameAsExpression(node.Left), nil, node.Right, ast.NodeFlagsNone) +} + +/** +* Serializes an entity name which may not exist at runtime, but whose access shouldn't throw +* @param node The entity name to serialize. + */ +func (s *metadataSerializer) serializeEntityNameAsExpressionFallback(node *ast.EntityName) *ast.Node { + if node.Kind == ast.KindIdentifier { + // A -> typeof A !== "undefined" && A + copied := s.serializeEntityNameAsExpression(node) + return s.createCheckedValue(copied, copied) + } + if node.AsQualifiedName().Left.Kind == ast.KindIdentifier { + // A.B -> typeof A !== "undefined" && A.B + return s.createCheckedValue(s.serializeEntityNameAsExpression(node.AsQualifiedName().Left), s.serializeEntityNameAsExpression(node)) + } + // A.B.C -> typeof A !== "undefined" && (_a = A.B) !== void 0 && _a.C + left := s.serializeEntityNameAsExpressionFallback(node.AsQualifiedName().Left) + temp := s.f.NewTempVariable() + s.ec.AddVariableDeclaration(temp) + return s.f.NewLogicalANDExpression( + s.f.NewLogicalANDExpression( + left.AsBinaryExpression().Left, + s.f.NewStrictInequalityExpression(s.f.NewAssignmentExpression(temp, left.AsBinaryExpression().Right), s.f.NewVoidZeroExpression()), + ), + s.f.NewPropertyAccessExpression(temp, nil, node.AsQualifiedName().Right, ast.NodeFlagsNone), + ) +} + +/** +* Produces an expression that results in `right` if `left` is not undefined at runtime: +* +* ``` +* typeof left !== "undefined" && right +* ``` +* +* We use `typeof L !== "undefined"` (rather than `L !== undefined`) since `L` may not be declared. +* It's acceptable for this expression to result in `false` at runtime, as the result is intended to be +* further checked by any containing expression. + */ +func (s *metadataSerializer) createCheckedValue(left *ast.Node, right *ast.Node) *ast.Node { + return s.f.NewLogicalANDExpression( + s.f.NewStrictInequalityExpression(s.f.NewTypeOfExpression(left), s.f.NewStringLiteral("undefined", ast.TokenFlagsNone)), + right, + ) +} + +func (s *metadataSerializer) equateSerializedTypeNodes(left *ast.Node, right *ast.Node) bool { + // temp vars used in fallback + if transformers.IsGeneratedIdentifier(s.ec, left) { + return transformers.IsGeneratedIdentifier(s.ec, right) + } + // entity names + if ast.IsIdentifier(left) { + return ast.IsIdentifier(right) && left.Text() == right.Text() + } + if ast.IsPropertyAccessExpression(left) { + return ast.IsPropertyAccessExpression(right) && s.equateSerializedTypeNodes(left.Expression(), right.Expression()) && s.equateSerializedTypeNodes(left.Name(), right.Name()) + } + // `void 0` + if ast.IsVoidExpression(left) { + return ast.IsVoidExpression(right) && ast.IsNumericLiteral(left.Expression()) && ast.IsNumericLiteral(right.Expression()) && left.Expression().Text() == "0" && right.Expression().Text() == "0" + } + // `"undefined"` or `"function"` in `typeof` checks + if ast.IsStringLiteral(left) { + return ast.IsStringLiteral(right) && left.Text() == right.Text() + } + // used in `typeof` checks for fallback + if ast.IsTypeOfExpression(left) { + return ast.IsTypeOfExpression(right) && s.equateSerializedTypeNodes(left.Expression(), right.Expression()) + } + // parens in `typeof` checks with temps + if ast.IsParenthesizedExpression(left) { + return ast.IsParenthesizedExpression(right) && s.equateSerializedTypeNodes(left.Expression(), right.Expression()) + } + // conditionals used in fallback + if ast.IsConditionalExpression(left) { + return ast.IsConditionalExpression(right) && s.equateSerializedTypeNodes(left.AsConditionalExpression().Condition, right.AsConditionalExpression().Condition) && s.equateSerializedTypeNodes(left.AsConditionalExpression().WhenTrue, right.AsConditionalExpression().WhenTrue) && s.equateSerializedTypeNodes(left.AsConditionalExpression().WhenFalse, right.AsConditionalExpression().WhenFalse) + } + // logical binary and assignments used in fallback + if ast.IsBinaryExpression(left) { + return ast.IsBinaryExpression(right) && left.AsBinaryExpression().OperatorToken.Kind == right.AsBinaryExpression().OperatorToken.Kind && s.equateSerializedTypeNodes(left.AsBinaryExpression().Left, right.AsBinaryExpression().Left) && s.equateSerializedTypeNodes(left.AsBinaryExpression().Right, right.AsBinaryExpression().Right) + } + return false +} diff --git a/testdata/baselines/reference/submodule/compiler/classExpressionWithDecorator1.js b/testdata/baselines/reference/submodule/compiler/classExpressionWithDecorator1.js index df75553ed4..9fd9abb401 100644 --- a/testdata/baselines/reference/submodule/compiler/classExpressionWithDecorator1.js +++ b/testdata/baselines/reference/submodule/compiler/classExpressionWithDecorator1.js @@ -4,8 +4,6 @@ var v = @decorate class C { static p = 1 }; //// [classExpressionWithDecorator1.js] -var v = -@decorate -class C { +var v = class C { static p = 1; }; diff --git a/testdata/baselines/reference/submodule/compiler/classExpressionWithDecorator1.js.diff b/testdata/baselines/reference/submodule/compiler/classExpressionWithDecorator1.js.diff index 8e58ccdb88..4a1b3f8816 100644 --- a/testdata/baselines/reference/submodule/compiler/classExpressionWithDecorator1.js.diff +++ b/testdata/baselines/reference/submodule/compiler/classExpressionWithDecorator1.js.diff @@ -9,8 +9,6 @@ - }, - _a.p = 1, - _a); -+var v = -+@decorate -+class C { ++var v = class C { + static p = 1; +}; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/commentOnDecoratedClassDeclaration.js b/testdata/baselines/reference/submodule/compiler/commentOnDecoratedClassDeclaration.js index 0bc5cfd62c..0aacd28076 100644 --- a/testdata/baselines/reference/submodule/compiler/commentOnDecoratedClassDeclaration.js +++ b/testdata/baselines/reference/submodule/compiler/commentOnDecoratedClassDeclaration.js @@ -19,16 +19,26 @@ class AnotherRomote { } //// [commentOnDecoratedClassDeclaration.js] +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; /** * Leading trivia */ -@decorator("hello") -class Remote { -} +let Remote = class Remote { +}; +Remote = __decorate([ + decorator("hello") +], Remote); /** * Floating Comment */ -@decorator("hi") -class AnotherRomote { +let AnotherRomote = class AnotherRomote { constructor() { } -} +}; +AnotherRomote = __decorate([ + decorator("hi") +], AnotherRomote); diff --git a/testdata/baselines/reference/submodule/compiler/commentOnDecoratedClassDeclaration.js.diff b/testdata/baselines/reference/submodule/compiler/commentOnDecoratedClassDeclaration.js.diff deleted file mode 100644 index ac7bbf9634..0000000000 --- a/testdata/baselines/reference/submodule/compiler/commentOnDecoratedClassDeclaration.js.diff +++ /dev/null @@ -1,35 +0,0 @@ ---- old.commentOnDecoratedClassDeclaration.js -+++ new.commentOnDecoratedClassDeclaration.js -@@= skipped -18, +18 lines =@@ - } - - //// [commentOnDecoratedClassDeclaration.js] --var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { -- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; -- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); -- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; -- return c > 3 && r && Object.defineProperty(target, key, r), r; --}; - /** - * Leading trivia - */ --let Remote = class Remote { --}; --Remote = __decorate([ -- decorator("hello") --], Remote); -+@decorator("hello") -+class Remote { -+} - /** - * Floating Comment - */ --let AnotherRomote = class AnotherRomote { -+@decorator("hi") -+class AnotherRomote { - constructor() { } --}; --AnotherRomote = __decorate([ -- decorator("hi") --], AnotherRomote); -+} \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/decoratorMetadataConditionalType.js b/testdata/baselines/reference/submodule/compiler/decoratorMetadataConditionalType.js index dcf970749a..cc63ffebbb 100644 --- a/testdata/baselines/reference/submodule/compiler/decoratorMetadataConditionalType.js +++ b/testdata/baselines/reference/submodule/compiler/decoratorMetadataConditionalType.js @@ -12,11 +12,26 @@ class C { } //// [decoratorMetadataConditionalType.js] +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; class BaseEntity { - @d() attributes; } +__decorate([ + d(), + __metadata("design:type", Object) +], BaseEntity.prototype, "attributes", void 0); class C { - @d() x; } +__decorate([ + d(), + __metadata("design:type", Boolean) +], C.prototype, "x", void 0); diff --git a/testdata/baselines/reference/submodule/compiler/decoratorMetadataConditionalType.js.diff b/testdata/baselines/reference/submodule/compiler/decoratorMetadataConditionalType.js.diff index 6295e21a3b..7adab29786 100644 --- a/testdata/baselines/reference/submodule/compiler/decoratorMetadataConditionalType.js.diff +++ b/testdata/baselines/reference/submodule/compiler/decoratorMetadataConditionalType.js.diff @@ -1,31 +1,17 @@ --- old.decoratorMetadataConditionalType.js +++ new.decoratorMetadataConditionalType.js -@@= skipped -11, +11 lines =@@ - } - - //// [decoratorMetadataConditionalType.js] --var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { -- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; -- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); -- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; -- return c > 3 && r && Object.defineProperty(target, key, r), r; --}; --var __metadata = (this && this.__metadata) || function (k, v) { -- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); --}; +@@= skipped -21, +21 lines =@@ + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); + }; class BaseEntity { -+ @d() + attributes; } --__decorate([ -- d(), -- __metadata("design:type", Object) --], BaseEntity.prototype, "attributes", void 0); + __decorate([ + d(), + __metadata("design:type", Object) + ], BaseEntity.prototype, "attributes", void 0); class C { -+ @d() + x; } --__decorate([ -- d(), -- __metadata("design:type", Boolean) --], C.prototype, "x", void 0); \ No newline at end of file + __decorate([ + d(), \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/decoratorMetadataElidedImport(module=commonjs).js b/testdata/baselines/reference/submodule/compiler/decoratorMetadataElidedImport(module=commonjs).js index a22bfe99e9..d9654b9eda 100644 --- a/testdata/baselines/reference/submodule/compiler/decoratorMetadataElidedImport(module=commonjs).js +++ b/testdata/baselines/reference/submodule/compiler/decoratorMetadataElidedImport(module=commonjs).js @@ -20,10 +20,30 @@ class Test { //// [index.js] "use strict"; +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; Object.defineProperty(exports, "__esModule", { value: true }); +const observable_1 = require("./observable"); function whatever(a, b, c) { } class Test { foo(arg1, arg2) { return null; } } +__decorate([ + __param(0, whatever), + __param(1, whatever), + __metadata("design:type", Function), + __metadata("design:paramtypes", [String, Number]), + __metadata("design:returntype", observable_1.Observable) +], Test.prototype, "foo", null); diff --git a/testdata/baselines/reference/submodule/compiler/decoratorMetadataElidedImport(module=commonjs).js.diff b/testdata/baselines/reference/submodule/compiler/decoratorMetadataElidedImport(module=commonjs).js.diff deleted file mode 100644 index 8c6f35cbe0..0000000000 --- a/testdata/baselines/reference/submodule/compiler/decoratorMetadataElidedImport(module=commonjs).js.diff +++ /dev/null @@ -1,33 +0,0 @@ ---- old.decoratorMetadataElidedImport(module=commonjs).js -+++ new.decoratorMetadataElidedImport(module=commonjs).js -@@= skipped -19, +19 lines =@@ - - //// [index.js] - "use strict"; --var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { -- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; -- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); -- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; -- return c > 3 && r && Object.defineProperty(target, key, r), r; --}; --var __metadata = (this && this.__metadata) || function (k, v) { -- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); --}; --var __param = (this && this.__param) || function (paramIndex, decorator) { -- return function (target, key) { decorator(target, key, paramIndex); } --}; - Object.defineProperty(exports, "__esModule", { value: true }); --const observable_1 = require("./observable"); - function whatever(a, b, c) { } - class Test { - foo(arg1, arg2) { - return null; - } - } --__decorate([ -- __param(0, whatever), -- __param(1, whatever), -- __metadata("design:type", Function), -- __metadata("design:paramtypes", [String, Number]), -- __metadata("design:returntype", observable_1.Observable) --], Test.prototype, "foo", null); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/decoratorMetadataElidedImport(module=esnext).js b/testdata/baselines/reference/submodule/compiler/decoratorMetadataElidedImport(module=esnext).js index a63870924f..0c62a4a015 100644 --- a/testdata/baselines/reference/submodule/compiler/decoratorMetadataElidedImport(module=esnext).js +++ b/testdata/baselines/reference/submodule/compiler/decoratorMetadataElidedImport(module=esnext).js @@ -19,10 +19,29 @@ class Test { //// [index.js] +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +import { Observable } from './observable'; function whatever(a, b, c) { } class Test { foo(arg1, arg2) { return null; } } -export {}; +__decorate([ + __param(0, whatever), + __param(1, whatever), + __metadata("design:type", Function), + __metadata("design:paramtypes", [String, Number]), + __metadata("design:returntype", Observable) +], Test.prototype, "foo", null); diff --git a/testdata/baselines/reference/submodule/compiler/decoratorMetadataElidedImport(module=esnext).js.diff b/testdata/baselines/reference/submodule/compiler/decoratorMetadataElidedImport(module=esnext).js.diff deleted file mode 100644 index 5c8fddfe4c..0000000000 --- a/testdata/baselines/reference/submodule/compiler/decoratorMetadataElidedImport(module=esnext).js.diff +++ /dev/null @@ -1,33 +0,0 @@ ---- old.decoratorMetadataElidedImport(module=esnext).js -+++ new.decoratorMetadataElidedImport(module=esnext).js -@@= skipped -18, +18 lines =@@ - - - //// [index.js] --var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { -- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; -- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); -- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; -- return c > 3 && r && Object.defineProperty(target, key, r), r; --}; --var __metadata = (this && this.__metadata) || function (k, v) { -- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); --}; --var __param = (this && this.__param) || function (paramIndex, decorator) { -- return function (target, key) { decorator(target, key, paramIndex); } --}; --import { Observable } from './observable'; - function whatever(a, b, c) { } - class Test { - foo(arg1, arg2) { - return null; - } - } --__decorate([ -- __param(0, whatever), -- __param(1, whatever), -- __metadata("design:type", Function), -- __metadata("design:paramtypes", [String, Number]), -- __metadata("design:returntype", Observable) --], Test.prototype, "foo", null); -+export {}; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/decoratorMetadataElidedImportOnDeclare(module=commonjs).js b/testdata/baselines/reference/submodule/compiler/decoratorMetadataElidedImportOnDeclare(module=commonjs).js index ad8349e284..efef8bf919 100644 --- a/testdata/baselines/reference/submodule/compiler/decoratorMetadataElidedImportOnDeclare(module=commonjs).js +++ b/testdata/baselines/reference/submodule/compiler/decoratorMetadataElidedImportOnDeclare(module=commonjs).js @@ -16,7 +16,21 @@ class Test { //// [index.js] "use strict"; +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; Object.defineProperty(exports, "__esModule", { value: true }); +const observable_1 = require("./observable"); function whatever(a, b) { } class Test { } +__decorate([ + whatever, + __metadata("design:type", observable_1.Observable) +], Test.prototype, "prop", void 0); diff --git a/testdata/baselines/reference/submodule/compiler/decoratorMetadataElidedImportOnDeclare(module=commonjs).js.diff b/testdata/baselines/reference/submodule/compiler/decoratorMetadataElidedImportOnDeclare(module=commonjs).js.diff deleted file mode 100644 index f14945222a..0000000000 --- a/testdata/baselines/reference/submodule/compiler/decoratorMetadataElidedImportOnDeclare(module=commonjs).js.diff +++ /dev/null @@ -1,24 +0,0 @@ ---- old.decoratorMetadataElidedImportOnDeclare(module=commonjs).js -+++ new.decoratorMetadataElidedImportOnDeclare(module=commonjs).js -@@= skipped -15, +15 lines =@@ - - //// [index.js] - "use strict"; --var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { -- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; -- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); -- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; -- return c > 3 && r && Object.defineProperty(target, key, r), r; --}; --var __metadata = (this && this.__metadata) || function (k, v) { -- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); --}; - Object.defineProperty(exports, "__esModule", { value: true }); --const observable_1 = require("./observable"); - function whatever(a, b) { } - class Test { - } --__decorate([ -- whatever, -- __metadata("design:type", observable_1.Observable) --], Test.prototype, "prop", void 0); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/decoratorMetadataElidedImportOnDeclare(module=esnext).js b/testdata/baselines/reference/submodule/compiler/decoratorMetadataElidedImportOnDeclare(module=esnext).js index ada78e0611..b0cbf8a1c4 100644 --- a/testdata/baselines/reference/submodule/compiler/decoratorMetadataElidedImportOnDeclare(module=esnext).js +++ b/testdata/baselines/reference/submodule/compiler/decoratorMetadataElidedImportOnDeclare(module=esnext).js @@ -15,7 +15,20 @@ class Test { //// [index.js] +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +import { Observable } from './observable'; function whatever(a, b) { } class Test { } -export {}; +__decorate([ + whatever, + __metadata("design:type", Observable) +], Test.prototype, "prop", void 0); diff --git a/testdata/baselines/reference/submodule/compiler/decoratorMetadataElidedImportOnDeclare(module=esnext).js.diff b/testdata/baselines/reference/submodule/compiler/decoratorMetadataElidedImportOnDeclare(module=esnext).js.diff deleted file mode 100644 index 7a18693dab..0000000000 --- a/testdata/baselines/reference/submodule/compiler/decoratorMetadataElidedImportOnDeclare(module=esnext).js.diff +++ /dev/null @@ -1,24 +0,0 @@ ---- old.decoratorMetadataElidedImportOnDeclare(module=esnext).js -+++ new.decoratorMetadataElidedImportOnDeclare(module=esnext).js -@@= skipped -14, +14 lines =@@ - - - //// [index.js] --var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { -- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; -- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); -- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; -- return c > 3 && r && Object.defineProperty(target, key, r), r; --}; --var __metadata = (this && this.__metadata) || function (k, v) { -- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); --}; --import { Observable } from './observable'; - function whatever(a, b) { } - class Test { - } --__decorate([ -- whatever, -- __metadata("design:type", Observable) --], Test.prototype, "prop", void 0); -+export {}; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/decoratorMetadataForMethodWithNoReturnTypeAnnotation01.js b/testdata/baselines/reference/submodule/compiler/decoratorMetadataForMethodWithNoReturnTypeAnnotation01.js index 1a22766ef8..c84c4c97d0 100644 --- a/testdata/baselines/reference/submodule/compiler/decoratorMetadataForMethodWithNoReturnTypeAnnotation01.js +++ b/testdata/baselines/reference/submodule/compiler/decoratorMetadataForMethodWithNoReturnTypeAnnotation01.js @@ -19,7 +19,12 @@ class MyClass { class MyClass { constructor(test, test2) { } - @decorator doSomething() { } } +__decorate([ + decorator, + __metadata("design:type", Function), + __metadata("design:paramtypes", []), + __metadata("design:returntype", void 0) +], MyClass.prototype, "doSomething", null); diff --git a/testdata/baselines/reference/submodule/compiler/decoratorMetadataForMethodWithNoReturnTypeAnnotation01.js.diff b/testdata/baselines/reference/submodule/compiler/decoratorMetadataForMethodWithNoReturnTypeAnnotation01.js.diff deleted file mode 100644 index a8d7592793..0000000000 --- a/testdata/baselines/reference/submodule/compiler/decoratorMetadataForMethodWithNoReturnTypeAnnotation01.js.diff +++ /dev/null @@ -1,16 +0,0 @@ ---- old.decoratorMetadataForMethodWithNoReturnTypeAnnotation01.js -+++ new.decoratorMetadataForMethodWithNoReturnTypeAnnotation01.js -@@= skipped -18, +18 lines =@@ - class MyClass { - constructor(test, test2) { - } -+ @decorator - doSomething() { - } - } --__decorate([ -- decorator, -- __metadata("design:type", Function), -- __metadata("design:paramtypes", []), -- __metadata("design:returntype", void 0) --], MyClass.prototype, "doSomething", null); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/decoratorMetadataGenericTypeVariable.js b/testdata/baselines/reference/submodule/compiler/decoratorMetadataGenericTypeVariable.js index d7ab2fc3ac..d9d04a07b1 100644 --- a/testdata/baselines/reference/submodule/compiler/decoratorMetadataGenericTypeVariable.js +++ b/testdata/baselines/reference/submodule/compiler/decoratorMetadataGenericTypeVariable.js @@ -9,10 +9,22 @@ export class C { //// [decoratorMetadataGenericTypeVariable.js] "use strict"; +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; Object.defineProperty(exports, "__esModule", { value: true }); exports.C = void 0; class C { - @Decorate member; } exports.C = C; +__decorate([ + Decorate, + __metadata("design:type", Object) +], C.prototype, "member", void 0); diff --git a/testdata/baselines/reference/submodule/compiler/decoratorMetadataGenericTypeVariable.js.diff b/testdata/baselines/reference/submodule/compiler/decoratorMetadataGenericTypeVariable.js.diff index 539bf51b76..5e2971d153 100644 --- a/testdata/baselines/reference/submodule/compiler/decoratorMetadataGenericTypeVariable.js.diff +++ b/testdata/baselines/reference/submodule/compiler/decoratorMetadataGenericTypeVariable.js.diff @@ -1,26 +1,10 @@ --- old.decoratorMetadataGenericTypeVariable.js +++ new.decoratorMetadataGenericTypeVariable.js -@@= skipped -8, +8 lines =@@ - - //// [decoratorMetadataGenericTypeVariable.js] - "use strict"; --var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { -- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; -- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); -- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; -- return c > 3 && r && Object.defineProperty(target, key, r), r; --}; --var __metadata = (this && this.__metadata) || function (k, v) { -- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); --}; +@@= skipped -20, +20 lines =@@ Object.defineProperty(exports, "__esModule", { value: true }); exports.C = void 0; class C { -+ @Decorate + member; } exports.C = C; --__decorate([ -- Decorate, -- __metadata("design:type", Object) --], C.prototype, "member", void 0); \ No newline at end of file + __decorate([ \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/decoratorMetadataGenericTypeVariableDefault.js b/testdata/baselines/reference/submodule/compiler/decoratorMetadataGenericTypeVariableDefault.js index b095cfeac2..07d56a3a8b 100644 --- a/testdata/baselines/reference/submodule/compiler/decoratorMetadataGenericTypeVariableDefault.js +++ b/testdata/baselines/reference/submodule/compiler/decoratorMetadataGenericTypeVariableDefault.js @@ -9,10 +9,22 @@ export class C { //// [decoratorMetadataGenericTypeVariableDefault.js] "use strict"; +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; Object.defineProperty(exports, "__esModule", { value: true }); exports.C = void 0; class C { - @Decorate member; } exports.C = C; +__decorate([ + Decorate, + __metadata("design:type", Object) +], C.prototype, "member", void 0); diff --git a/testdata/baselines/reference/submodule/compiler/decoratorMetadataGenericTypeVariableDefault.js.diff b/testdata/baselines/reference/submodule/compiler/decoratorMetadataGenericTypeVariableDefault.js.diff index c2166ee642..819a1063c4 100644 --- a/testdata/baselines/reference/submodule/compiler/decoratorMetadataGenericTypeVariableDefault.js.diff +++ b/testdata/baselines/reference/submodule/compiler/decoratorMetadataGenericTypeVariableDefault.js.diff @@ -1,26 +1,10 @@ --- old.decoratorMetadataGenericTypeVariableDefault.js +++ new.decoratorMetadataGenericTypeVariableDefault.js -@@= skipped -8, +8 lines =@@ - - //// [decoratorMetadataGenericTypeVariableDefault.js] - "use strict"; --var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { -- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; -- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); -- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; -- return c > 3 && r && Object.defineProperty(target, key, r), r; --}; --var __metadata = (this && this.__metadata) || function (k, v) { -- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); --}; +@@= skipped -20, +20 lines =@@ Object.defineProperty(exports, "__esModule", { value: true }); exports.C = void 0; class C { -+ @Decorate + member; } exports.C = C; --__decorate([ -- Decorate, -- __metadata("design:type", Object) --], C.prototype, "member", void 0); \ No newline at end of file + __decorate([ \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/decoratorMetadataGenericTypeVariableInScope.js b/testdata/baselines/reference/submodule/compiler/decoratorMetadataGenericTypeVariableInScope.js index 99c260db25..a43a0356a9 100644 --- a/testdata/baselines/reference/submodule/compiler/decoratorMetadataGenericTypeVariableInScope.js +++ b/testdata/baselines/reference/submodule/compiler/decoratorMetadataGenericTypeVariableInScope.js @@ -12,13 +12,25 @@ export class C { //// [decoratorMetadataGenericTypeVariableInScope.js] "use strict"; +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; Object.defineProperty(exports, "__esModule", { value: true }); exports.C = void 0; // Unused, but could collide with the named type argument below. class TypeVariable { } class C { - @Decorate member; } exports.C = C; +__decorate([ + Decorate, + __metadata("design:type", Object) +], C.prototype, "member", void 0); diff --git a/testdata/baselines/reference/submodule/compiler/decoratorMetadataGenericTypeVariableInScope.js.diff b/testdata/baselines/reference/submodule/compiler/decoratorMetadataGenericTypeVariableInScope.js.diff index f0a4f7418e..ba30b81f83 100644 --- a/testdata/baselines/reference/submodule/compiler/decoratorMetadataGenericTypeVariableInScope.js.diff +++ b/testdata/baselines/reference/submodule/compiler/decoratorMetadataGenericTypeVariableInScope.js.diff @@ -1,29 +1,10 @@ --- old.decoratorMetadataGenericTypeVariableInScope.js +++ new.decoratorMetadataGenericTypeVariableInScope.js -@@= skipped -11, +11 lines =@@ - - //// [decoratorMetadataGenericTypeVariableInScope.js] - "use strict"; --var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { -- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; -- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); -- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; -- return c > 3 && r && Object.defineProperty(target, key, r), r; --}; --var __metadata = (this && this.__metadata) || function (k, v) { -- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); --}; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.C = void 0; - // Unused, but could collide with the named type argument below. +@@= skipped -26, +26 lines =@@ class TypeVariable { } class C { -+ @Decorate + member; } exports.C = C; --__decorate([ -- Decorate, -- __metadata("design:type", Object) --], C.prototype, "member", void 0); \ No newline at end of file + __decorate([ \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/decoratorMetadataNoLibIsolatedModulesTypes.js b/testdata/baselines/reference/submodule/compiler/decoratorMetadataNoLibIsolatedModulesTypes.js index eae4c88305..fdfe133879 100644 --- a/testdata/baselines/reference/submodule/compiler/decoratorMetadataNoLibIsolatedModulesTypes.js +++ b/testdata/baselines/reference/submodule/compiler/decoratorMetadataNoLibIsolatedModulesTypes.js @@ -9,10 +9,23 @@ export class B { //// [decoratorMetadataNoLibIsolatedModulesTypes.js] "use strict"; +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var _a; Object.defineProperty(exports, "__esModule", { value: true }); exports.B = void 0; class B { - @Decorate member; } exports.B = B; +__decorate([ + Decorate, + __metadata("design:type", typeof (_a = typeof Map !== "undefined" && Map) === "function" ? _a : Object) +], B.prototype, "member", void 0); diff --git a/testdata/baselines/reference/submodule/compiler/decoratorMetadataNoLibIsolatedModulesTypes.js.diff b/testdata/baselines/reference/submodule/compiler/decoratorMetadataNoLibIsolatedModulesTypes.js.diff index 6945d65ec3..4394742df8 100644 --- a/testdata/baselines/reference/submodule/compiler/decoratorMetadataNoLibIsolatedModulesTypes.js.diff +++ b/testdata/baselines/reference/submodule/compiler/decoratorMetadataNoLibIsolatedModulesTypes.js.diff @@ -1,27 +1,10 @@ --- old.decoratorMetadataNoLibIsolatedModulesTypes.js +++ new.decoratorMetadataNoLibIsolatedModulesTypes.js -@@= skipped -8, +8 lines =@@ - - //// [decoratorMetadataNoLibIsolatedModulesTypes.js] - "use strict"; --var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { -- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; -- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); -- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; -- return c > 3 && r && Object.defineProperty(target, key, r), r; --}; --var __metadata = (this && this.__metadata) || function (k, v) { -- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); --}; --var _a; +@@= skipped -21, +21 lines =@@ Object.defineProperty(exports, "__esModule", { value: true }); exports.B = void 0; class B { -+ @Decorate + member; } exports.B = B; --__decorate([ -- Decorate, -- __metadata("design:type", typeof (_a = typeof Map !== "undefined" && Map) === "function" ? _a : Object) --], B.prototype, "member", void 0); \ No newline at end of file + __decorate([ \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/decoratorMetadataNoStrictNull.js b/testdata/baselines/reference/submodule/compiler/decoratorMetadataNoStrictNull.js index e88edb6f78..93308b14c0 100644 --- a/testdata/baselines/reference/submodule/compiler/decoratorMetadataNoStrictNull.js +++ b/testdata/baselines/reference/submodule/compiler/decoratorMetadataNoStrictNull.js @@ -9,10 +9,25 @@ class Foo { } //// [decoratorMetadataNoStrictNull.js] +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; const dec = (obj, prop) => undefined; class Foo { - @dec foo; - @dec bar; } +__decorate([ + dec, + __metadata("design:type", String) +], Foo.prototype, "foo", void 0); +__decorate([ + dec, + __metadata("design:type", String) +], Foo.prototype, "bar", void 0); diff --git a/testdata/baselines/reference/submodule/compiler/decoratorMetadataNoStrictNull.js.diff b/testdata/baselines/reference/submodule/compiler/decoratorMetadataNoStrictNull.js.diff index e434c0db47..9fc229f8ca 100644 --- a/testdata/baselines/reference/submodule/compiler/decoratorMetadataNoStrictNull.js.diff +++ b/testdata/baselines/reference/submodule/compiler/decoratorMetadataNoStrictNull.js.diff @@ -1,30 +1,11 @@ --- old.decoratorMetadataNoStrictNull.js +++ new.decoratorMetadataNoStrictNull.js -@@= skipped -8, +8 lines =@@ - } - - //// [decoratorMetadataNoStrictNull.js] --var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { -- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; -- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); -- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; -- return c > 3 && r && Object.defineProperty(target, key, r), r; --}; --var __metadata = (this && this.__metadata) || function (k, v) { -- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); --}; +@@= skipped -19, +19 lines =@@ + }; const dec = (obj, prop) => undefined; class Foo { -+ @dec + foo; -+ @dec + bar; } --__decorate([ -- dec, -- __metadata("design:type", String) --], Foo.prototype, "foo", void 0); --__decorate([ -- dec, -- __metadata("design:type", String) --], Foo.prototype, "bar", void 0); \ No newline at end of file + __decorate([ + dec, \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/decoratorMetadataOnInferredType.js b/testdata/baselines/reference/submodule/compiler/decoratorMetadataOnInferredType.js index ef6e8b6f4b..4358c814c4 100644 --- a/testdata/baselines/reference/submodule/compiler/decoratorMetadataOnInferredType.js +++ b/testdata/baselines/reference/submodule/compiler/decoratorMetadataOnInferredType.js @@ -28,7 +28,10 @@ class A { function decorator(target, propertyKey) { } class B { - @decorator x = new A(); } exports.B = B; +__decorate([ + decorator, + __metadata("design:type", Object) +], B.prototype, "x", void 0); diff --git a/testdata/baselines/reference/submodule/compiler/decoratorMetadataOnInferredType.js.diff b/testdata/baselines/reference/submodule/compiler/decoratorMetadataOnInferredType.js.diff index 62a64235ff..660845243e 100644 --- a/testdata/baselines/reference/submodule/compiler/decoratorMetadataOnInferredType.js.diff +++ b/testdata/baselines/reference/submodule/compiler/decoratorMetadataOnInferredType.js.diff @@ -7,11 +7,7 @@ - constructor() { - this.x = new A(); - } -+ @decorator + x = new A(); } exports.B = B; --__decorate([ -- decorator, -- __metadata("design:type", Object) --], B.prototype, "x", void 0); \ No newline at end of file + __decorate([ \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/decoratorMetadataPromise.js b/testdata/baselines/reference/submodule/compiler/decoratorMetadataPromise.js index ccac533693..50a4808aa3 100644 --- a/testdata/baselines/reference/submodule/compiler/decoratorMetadataPromise.js +++ b/testdata/baselines/reference/submodule/compiler/decoratorMetadataPromise.js @@ -14,11 +14,35 @@ class A { //// [decoratorMetadataPromise.js] +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; class A { - @decorator async foo() { } - @decorator async bar() { return 0; } - @decorator baz(n) { return n; } } +__decorate([ + decorator, + __metadata("design:type", Function), + __metadata("design:paramtypes", []), + __metadata("design:returntype", Promise) +], A.prototype, "foo", null); +__decorate([ + decorator, + __metadata("design:type", Function), + __metadata("design:paramtypes", []), + __metadata("design:returntype", Promise) +], A.prototype, "bar", null); +__decorate([ + decorator, + __metadata("design:type", Function), + __metadata("design:paramtypes", [Promise]), + __metadata("design:returntype", Promise) +], A.prototype, "baz", null); diff --git a/testdata/baselines/reference/submodule/compiler/decoratorMetadataPromise.js.diff b/testdata/baselines/reference/submodule/compiler/decoratorMetadataPromise.js.diff index 0c2d47ccee..35e63b223c 100644 --- a/testdata/baselines/reference/submodule/compiler/decoratorMetadataPromise.js.diff +++ b/testdata/baselines/reference/submodule/compiler/decoratorMetadataPromise.js.diff @@ -1,18 +1,9 @@ --- old.decoratorMetadataPromise.js +++ new.decoratorMetadataPromise.js -@@= skipped -13, +13 lines =@@ - - - //// [decoratorMetadataPromise.js] --var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { -- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; -- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); -- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; -- return c > 3 && r && Object.defineProperty(target, key, r), r; --}; --var __metadata = (this && this.__metadata) || function (k, v) { -- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); --}; +@@= skipped -22, +22 lines =@@ + var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); + }; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { @@ -29,28 +20,8 @@ - bar() { - return __awaiter(this, void 0, void 0, function* () { return 0; }); - } -+ @decorator + async foo() { } -+ @decorator + async bar() { return 0; } -+ @decorator baz(n) { return n; } } --__decorate([ -- decorator, -- __metadata("design:type", Function), -- __metadata("design:paramtypes", []), -- __metadata("design:returntype", Promise) --], A.prototype, "foo", null); --__decorate([ -- decorator, -- __metadata("design:type", Function), -- __metadata("design:paramtypes", []), -- __metadata("design:returntype", Promise) --], A.prototype, "bar", null); --__decorate([ -- decorator, -- __metadata("design:type", Function), -- __metadata("design:paramtypes", [Promise]), -- __metadata("design:returntype", Promise) --], A.prototype, "baz", null); \ No newline at end of file + __decorate([ \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/decoratorMetadataRestParameterWithImportedType.js b/testdata/baselines/reference/submodule/compiler/decoratorMetadataRestParameterWithImportedType.js index cab3f533c2..aa289d9284 100644 --- a/testdata/baselines/reference/submodule/compiler/decoratorMetadataRestParameterWithImportedType.js +++ b/testdata/baselines/reference/submodule/compiler/decoratorMetadataRestParameterWithImportedType.js @@ -65,22 +65,41 @@ class SomeClass2 { exports.SomeClass2 = SomeClass2; //// [main.js] "use strict"; +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; Object.defineProperty(exports, "__esModule", { value: true }); exports.ClassA = void 0; +const aux_1 = require("./aux"); +const aux1_1 = require("./aux1"); function annotation() { return (target) => { }; } function annotation1() { return (target) => { }; } -@annotation() -class ClassA { +let ClassA = class ClassA { array; constructor(...init) { this.array = init; } - @annotation1() foo(...args) { } -} +}; exports.ClassA = ClassA; +__decorate([ + annotation1(), + __metadata("design:type", Function), + __metadata("design:paramtypes", [aux1_1.SomeClass1]), + __metadata("design:returntype", void 0) +], ClassA.prototype, "foo", null); +exports.ClassA = ClassA = __decorate([ + annotation(), + __metadata("design:paramtypes", [aux_1.SomeClass]) +], ClassA); diff --git a/testdata/baselines/reference/submodule/compiler/decoratorMetadataRestParameterWithImportedType.js.diff b/testdata/baselines/reference/submodule/compiler/decoratorMetadataRestParameterWithImportedType.js.diff index 6fecd8f7c1..7ae4591b55 100644 --- a/testdata/baselines/reference/submodule/compiler/decoratorMetadataRestParameterWithImportedType.js.diff +++ b/testdata/baselines/reference/submodule/compiler/decoratorMetadataRestParameterWithImportedType.js.diff @@ -24,46 +24,11 @@ } exports.SomeClass2 = SomeClass2; //// [main.js] - "use strict"; --var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { -- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; -- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); -- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; -- return c > 3 && r && Object.defineProperty(target, key, r), r; --}; --var __metadata = (this && this.__metadata) || function (k, v) { -- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); --}; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.ClassA = void 0; --const aux_1 = require("./aux"); --const aux1_1 = require("./aux1"); - function annotation() { - return (target) => { }; - } - function annotation1() { +@@= skipped -24, +25 lines =@@ return (target) => { }; } --let ClassA = class ClassA { -+@annotation() -+class ClassA { + let ClassA = class ClassA { + array; constructor(...init) { this.array = init; - } -+ @annotation1() - foo(...args) { - } --}; -+} - exports.ClassA = ClassA; --__decorate([ -- annotation1(), -- __metadata("design:type", Function), -- __metadata("design:paramtypes", [aux1_1.SomeClass1]), -- __metadata("design:returntype", void 0) --], ClassA.prototype, "foo", null); --exports.ClassA = ClassA = __decorate([ -- annotation(), -- __metadata("design:paramtypes", [aux_1.SomeClass]) --], ClassA); \ No newline at end of file + } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/decoratorMetadataTypeOnlyExport.js b/testdata/baselines/reference/submodule/compiler/decoratorMetadataTypeOnlyExport.js index 5db594a3c7..9adaf09f5a 100644 --- a/testdata/baselines/reference/submodule/compiler/decoratorMetadataTypeOnlyExport.js +++ b/testdata/baselines/reference/submodule/compiler/decoratorMetadataTypeOnlyExport.js @@ -22,9 +22,21 @@ class Foo { } //// [b.js] "use strict"; +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; Object.defineProperty(exports, "__esModule", { value: true }); const Decorator = () => undefined; -@Decorator -class Bar { +let Bar = class Bar { constructor(par) { } -} +}; +Bar = __decorate([ + Decorator, + __metadata("design:paramtypes", [Function]) +], Bar); diff --git a/testdata/baselines/reference/submodule/compiler/decoratorMetadataTypeOnlyExport.js.diff b/testdata/baselines/reference/submodule/compiler/decoratorMetadataTypeOnlyExport.js.diff deleted file mode 100644 index 6810d758b3..0000000000 --- a/testdata/baselines/reference/submodule/compiler/decoratorMetadataTypeOnlyExport.js.diff +++ /dev/null @@ -1,27 +0,0 @@ ---- old.decoratorMetadataTypeOnlyExport.js -+++ new.decoratorMetadataTypeOnlyExport.js -@@= skipped -21, +21 lines =@@ - } - //// [b.js] - "use strict"; --var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { -- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; -- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); -- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; -- return c > 3 && r && Object.defineProperty(target, key, r), r; --}; --var __metadata = (this && this.__metadata) || function (k, v) { -- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); --}; - Object.defineProperty(exports, "__esModule", { value: true }); - const Decorator = () => undefined; --let Bar = class Bar { -+@Decorator -+class Bar { - constructor(par) { } --}; --Bar = __decorate([ -- Decorator, -- __metadata("design:paramtypes", [Function]) --], Bar); -+} \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/decoratorMetadataTypeOnlyImport.js b/testdata/baselines/reference/submodule/compiler/decoratorMetadataTypeOnlyImport.js index 74e499532b..8a585abcaa 100644 --- a/testdata/baselines/reference/submodule/compiler/decoratorMetadataTypeOnlyImport.js +++ b/testdata/baselines/reference/submodule/compiler/decoratorMetadataTypeOnlyImport.js @@ -19,8 +19,20 @@ class Foo { Object.defineProperty(exports, "__esModule", { value: true }); //// [b.js] "use strict"; +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; Object.defineProperty(exports, "__esModule", { value: true }); class Foo { - @Decorator myList; } +__decorate([ + Decorator, + __metadata("design:type", Object) +], Foo.prototype, "myList", void 0); diff --git a/testdata/baselines/reference/submodule/compiler/decoratorMetadataTypeOnlyImport.js.diff b/testdata/baselines/reference/submodule/compiler/decoratorMetadataTypeOnlyImport.js.diff index 178e1243ec..df6c8f051a 100644 --- a/testdata/baselines/reference/submodule/compiler/decoratorMetadataTypeOnlyImport.js.diff +++ b/testdata/baselines/reference/submodule/compiler/decoratorMetadataTypeOnlyImport.js.diff @@ -1,24 +1,10 @@ --- old.decoratorMetadataTypeOnlyImport.js +++ new.decoratorMetadataTypeOnlyImport.js -@@= skipped -18, +18 lines =@@ - Object.defineProperty(exports, "__esModule", { value: true }); - //// [b.js] - "use strict"; --var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { -- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; -- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); -- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; -- return c > 3 && r && Object.defineProperty(target, key, r), r; --}; --var __metadata = (this && this.__metadata) || function (k, v) { -- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); --}; +@@= skipped -29, +29 lines =@@ + }; Object.defineProperty(exports, "__esModule", { value: true }); class Foo { -+ @Decorator + myList; } --__decorate([ -- Decorator, -- __metadata("design:type", Object) --], Foo.prototype, "myList", void 0); \ No newline at end of file + __decorate([ + Decorator, \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/decoratorMetadataWithConstructorType.js b/testdata/baselines/reference/submodule/compiler/decoratorMetadataWithConstructorType.js index 2b76ae9515..ee30fbcf6c 100644 --- a/testdata/baselines/reference/submodule/compiler/decoratorMetadataWithConstructorType.js +++ b/testdata/baselines/reference/submodule/compiler/decoratorMetadataWithConstructorType.js @@ -28,7 +28,10 @@ class A { function decorator(target, propertyKey) { } class B { - @decorator x = new A(); } exports.B = B; +__decorate([ + decorator, + __metadata("design:type", A) +], B.prototype, "x", void 0); diff --git a/testdata/baselines/reference/submodule/compiler/decoratorMetadataWithConstructorType.js.diff b/testdata/baselines/reference/submodule/compiler/decoratorMetadataWithConstructorType.js.diff index 42987000ba..0bc88264bc 100644 --- a/testdata/baselines/reference/submodule/compiler/decoratorMetadataWithConstructorType.js.diff +++ b/testdata/baselines/reference/submodule/compiler/decoratorMetadataWithConstructorType.js.diff @@ -7,11 +7,7 @@ - constructor() { - this.x = new A(); - } -+ @decorator + x = new A(); } exports.B = B; --__decorate([ -- decorator, -- __metadata("design:type", A) --], B.prototype, "x", void 0); \ No newline at end of file + __decorate([ \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/decoratorMetadataWithImportDeclarationNameCollision.js b/testdata/baselines/reference/submodule/compiler/decoratorMetadataWithImportDeclarationNameCollision.js index 53a4f4e1eb..2d07f26a23 100644 --- a/testdata/baselines/reference/submodule/compiler/decoratorMetadataWithImportDeclarationNameCollision.js +++ b/testdata/baselines/reference/submodule/compiler/decoratorMetadataWithImportDeclarationNameCollision.js @@ -36,15 +36,19 @@ exports.db = db; "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.MyClass = void 0; +const db_1 = require("./db"); function someDecorator(target) { return target; } -@someDecorator -class MyClass { +let MyClass = class MyClass { db; constructor(db) { this.db = db; this.db.doSomething(); } -} +}; exports.MyClass = MyClass; +exports.MyClass = MyClass = __decorate([ + someDecorator, + __metadata("design:paramtypes", [db_1.db]) +], MyClass); diff --git a/testdata/baselines/reference/submodule/compiler/decoratorMetadataWithImportDeclarationNameCollision.js.diff b/testdata/baselines/reference/submodule/compiler/decoratorMetadataWithImportDeclarationNameCollision.js.diff index 451939e964..8adb65cb80 100644 --- a/testdata/baselines/reference/submodule/compiler/decoratorMetadataWithImportDeclarationNameCollision.js.diff +++ b/testdata/baselines/reference/submodule/compiler/decoratorMetadataWithImportDeclarationNameCollision.js.diff @@ -1,25 +1,10 @@ --- old.decoratorMetadataWithImportDeclarationNameCollision.js +++ new.decoratorMetadataWithImportDeclarationNameCollision.js -@@= skipped -35, +35 lines =@@ - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.MyClass = void 0; --const db_1 = require("./db"); - function someDecorator(target) { +@@= skipped -40, +40 lines =@@ return target; } --let MyClass = class MyClass { -+@someDecorator -+class MyClass { + let MyClass = class MyClass { + db; constructor(db) { this.db = db; - this.db.doSomething(); - } --}; -+} - exports.MyClass = MyClass; --exports.MyClass = MyClass = __decorate([ -- someDecorator, -- __metadata("design:paramtypes", [db_1.db]) --], MyClass); \ No newline at end of file + this.db.doSomething(); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/decoratorMetadataWithImportDeclarationNameCollision2.js b/testdata/baselines/reference/submodule/compiler/decoratorMetadataWithImportDeclarationNameCollision2.js index dbf5f4b88f..165494858b 100644 --- a/testdata/baselines/reference/submodule/compiler/decoratorMetadataWithImportDeclarationNameCollision2.js +++ b/testdata/baselines/reference/submodule/compiler/decoratorMetadataWithImportDeclarationNameCollision2.js @@ -36,15 +36,19 @@ exports.db = db; "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.MyClass = void 0; +const db_1 = require("./db"); function someDecorator(target) { return target; } -@someDecorator -class MyClass { +let MyClass = class MyClass { db; constructor(db) { this.db = db; this.db.doSomething(); } -} +}; exports.MyClass = MyClass; +exports.MyClass = MyClass = __decorate([ + someDecorator, + __metadata("design:paramtypes", [db_1.db]) +], MyClass); diff --git a/testdata/baselines/reference/submodule/compiler/decoratorMetadataWithImportDeclarationNameCollision2.js.diff b/testdata/baselines/reference/submodule/compiler/decoratorMetadataWithImportDeclarationNameCollision2.js.diff index ce4fc16af7..6ad0791a69 100644 --- a/testdata/baselines/reference/submodule/compiler/decoratorMetadataWithImportDeclarationNameCollision2.js.diff +++ b/testdata/baselines/reference/submodule/compiler/decoratorMetadataWithImportDeclarationNameCollision2.js.diff @@ -1,25 +1,10 @@ --- old.decoratorMetadataWithImportDeclarationNameCollision2.js +++ new.decoratorMetadataWithImportDeclarationNameCollision2.js -@@= skipped -35, +35 lines =@@ - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.MyClass = void 0; --const db_1 = require("./db"); - function someDecorator(target) { +@@= skipped -40, +40 lines =@@ return target; } --let MyClass = class MyClass { -+@someDecorator -+class MyClass { + let MyClass = class MyClass { + db; constructor(db) { this.db = db; - this.db.doSomething(); - } --}; -+} - exports.MyClass = MyClass; --exports.MyClass = MyClass = __decorate([ -- someDecorator, -- __metadata("design:paramtypes", [db_1.db]) --], MyClass); \ No newline at end of file + this.db.doSomething(); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/decoratorMetadataWithImportDeclarationNameCollision3.js b/testdata/baselines/reference/submodule/compiler/decoratorMetadataWithImportDeclarationNameCollision3.js index 9d1a28d99f..0a8707b2a9 100644 --- a/testdata/baselines/reference/submodule/compiler/decoratorMetadataWithImportDeclarationNameCollision3.js +++ b/testdata/baselines/reference/submodule/compiler/decoratorMetadataWithImportDeclarationNameCollision3.js @@ -36,15 +36,19 @@ exports.db = db; "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.MyClass = void 0; +const db = require("./db"); function someDecorator(target) { return target; } -@someDecorator -class MyClass { +let MyClass = class MyClass { db; constructor(db) { this.db = db; this.db.doSomething(); } -} +}; exports.MyClass = MyClass; +exports.MyClass = MyClass = __decorate([ + someDecorator, + __metadata("design:paramtypes", [db.db]) +], MyClass); diff --git a/testdata/baselines/reference/submodule/compiler/decoratorMetadataWithImportDeclarationNameCollision3.js.diff b/testdata/baselines/reference/submodule/compiler/decoratorMetadataWithImportDeclarationNameCollision3.js.diff index f7743bd292..98e718422c 100644 --- a/testdata/baselines/reference/submodule/compiler/decoratorMetadataWithImportDeclarationNameCollision3.js.diff +++ b/testdata/baselines/reference/submodule/compiler/decoratorMetadataWithImportDeclarationNameCollision3.js.diff @@ -1,25 +1,10 @@ --- old.decoratorMetadataWithImportDeclarationNameCollision3.js +++ new.decoratorMetadataWithImportDeclarationNameCollision3.js -@@= skipped -35, +35 lines =@@ - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.MyClass = void 0; --const db = require("./db"); - function someDecorator(target) { +@@= skipped -40, +40 lines =@@ return target; } --let MyClass = class MyClass { -+@someDecorator -+class MyClass { + let MyClass = class MyClass { + db; constructor(db) { this.db = db; - this.db.doSomething(); - } --}; -+} - exports.MyClass = MyClass; --exports.MyClass = MyClass = __decorate([ -- someDecorator, -- __metadata("design:paramtypes", [db.db]) --], MyClass); \ No newline at end of file + this.db.doSomething(); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/decoratorMetadataWithImportDeclarationNameCollision4.js b/testdata/baselines/reference/submodule/compiler/decoratorMetadataWithImportDeclarationNameCollision4.js index 029a7d4464..9e05a7999a 100644 --- a/testdata/baselines/reference/submodule/compiler/decoratorMetadataWithImportDeclarationNameCollision4.js +++ b/testdata/baselines/reference/submodule/compiler/decoratorMetadataWithImportDeclarationNameCollision4.js @@ -34,17 +34,22 @@ class db { exports.db = db; //// [service.js] "use strict"; +var _a; Object.defineProperty(exports, "__esModule", { value: true }); exports.MyClass = void 0; +const db_1 = __importDefault(require("./db")); // error no default export function someDecorator(target) { return target; } -@someDecorator -class MyClass { +let MyClass = class MyClass { db; constructor(db) { this.db = db; this.db.doSomething(); } -} +}; exports.MyClass = MyClass; +exports.MyClass = MyClass = __decorate([ + someDecorator, + __metadata("design:paramtypes", [typeof (_a = typeof db_1.default !== "undefined" && db_1.default.db) === "function" ? _a : Object]) +], MyClass); diff --git a/testdata/baselines/reference/submodule/compiler/decoratorMetadataWithImportDeclarationNameCollision4.js.diff b/testdata/baselines/reference/submodule/compiler/decoratorMetadataWithImportDeclarationNameCollision4.js.diff index f4e8746982..df11f79749 100644 --- a/testdata/baselines/reference/submodule/compiler/decoratorMetadataWithImportDeclarationNameCollision4.js.diff +++ b/testdata/baselines/reference/submodule/compiler/decoratorMetadataWithImportDeclarationNameCollision4.js.diff @@ -1,28 +1,10 @@ --- old.decoratorMetadataWithImportDeclarationNameCollision4.js +++ new.decoratorMetadataWithImportDeclarationNameCollision4.js -@@= skipped -33, +33 lines =@@ - exports.db = db; - //// [service.js] - "use strict"; --var _a; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.MyClass = void 0; --const db_1 = __importDefault(require("./db")); // error no default export - function someDecorator(target) { +@@= skipped -41, +41 lines =@@ return target; } --let MyClass = class MyClass { -+@someDecorator -+class MyClass { + let MyClass = class MyClass { + db; constructor(db) { this.db = db; - this.db.doSomething(); - } --}; -+} - exports.MyClass = MyClass; --exports.MyClass = MyClass = __decorate([ -- someDecorator, -- __metadata("design:paramtypes", [typeof (_a = typeof db_1.default !== "undefined" && db_1.default.db) === "function" ? _a : Object]) --], MyClass); \ No newline at end of file + this.db.doSomething(); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/decoratorMetadataWithImportDeclarationNameCollision5.js b/testdata/baselines/reference/submodule/compiler/decoratorMetadataWithImportDeclarationNameCollision5.js index 8d31d301ba..89ed56c782 100644 --- a/testdata/baselines/reference/submodule/compiler/decoratorMetadataWithImportDeclarationNameCollision5.js +++ b/testdata/baselines/reference/submodule/compiler/decoratorMetadataWithImportDeclarationNameCollision5.js @@ -35,15 +35,19 @@ exports.default = db; "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.MyClass = void 0; +const db_1 = __importDefault(require("./db")); function someDecorator(target) { return target; } -@someDecorator -class MyClass { +let MyClass = class MyClass { db; constructor(db) { this.db = db; this.db.doSomething(); } -} +}; exports.MyClass = MyClass; +exports.MyClass = MyClass = __decorate([ + someDecorator, + __metadata("design:paramtypes", [db_1.default]) +], MyClass); diff --git a/testdata/baselines/reference/submodule/compiler/decoratorMetadataWithImportDeclarationNameCollision5.js.diff b/testdata/baselines/reference/submodule/compiler/decoratorMetadataWithImportDeclarationNameCollision5.js.diff index 8cc2adf934..9fb451fdac 100644 --- a/testdata/baselines/reference/submodule/compiler/decoratorMetadataWithImportDeclarationNameCollision5.js.diff +++ b/testdata/baselines/reference/submodule/compiler/decoratorMetadataWithImportDeclarationNameCollision5.js.diff @@ -1,25 +1,10 @@ --- old.decoratorMetadataWithImportDeclarationNameCollision5.js +++ new.decoratorMetadataWithImportDeclarationNameCollision5.js -@@= skipped -34, +34 lines =@@ - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.MyClass = void 0; --const db_1 = __importDefault(require("./db")); - function someDecorator(target) { +@@= skipped -39, +39 lines =@@ return target; } --let MyClass = class MyClass { -+@someDecorator -+class MyClass { + let MyClass = class MyClass { + db; constructor(db) { this.db = db; - this.db.doSomething(); - } --}; -+} - exports.MyClass = MyClass; --exports.MyClass = MyClass = __decorate([ -- someDecorator, -- __metadata("design:paramtypes", [db_1.default]) --], MyClass); \ No newline at end of file + this.db.doSomething(); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/decoratorMetadataWithImportDeclarationNameCollision6.js b/testdata/baselines/reference/submodule/compiler/decoratorMetadataWithImportDeclarationNameCollision6.js index af6018cc6f..fad0b991df 100644 --- a/testdata/baselines/reference/submodule/compiler/decoratorMetadataWithImportDeclarationNameCollision6.js +++ b/testdata/baselines/reference/submodule/compiler/decoratorMetadataWithImportDeclarationNameCollision6.js @@ -35,15 +35,19 @@ exports.default = db; "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.MyClass = void 0; +const db_1 = __importDefault(require("./db")); function someDecorator(target) { return target; } -@someDecorator -class MyClass { +let MyClass = class MyClass { db; constructor(db) { this.db = db; this.db.doSomething(); } -} +}; exports.MyClass = MyClass; +exports.MyClass = MyClass = __decorate([ + someDecorator, + __metadata("design:paramtypes", [db_1.default]) +], MyClass); diff --git a/testdata/baselines/reference/submodule/compiler/decoratorMetadataWithImportDeclarationNameCollision6.js.diff b/testdata/baselines/reference/submodule/compiler/decoratorMetadataWithImportDeclarationNameCollision6.js.diff index 73bd2dd2bc..76ae3a673e 100644 --- a/testdata/baselines/reference/submodule/compiler/decoratorMetadataWithImportDeclarationNameCollision6.js.diff +++ b/testdata/baselines/reference/submodule/compiler/decoratorMetadataWithImportDeclarationNameCollision6.js.diff @@ -1,25 +1,10 @@ --- old.decoratorMetadataWithImportDeclarationNameCollision6.js +++ new.decoratorMetadataWithImportDeclarationNameCollision6.js -@@= skipped -34, +34 lines =@@ - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.MyClass = void 0; --const db_1 = __importDefault(require("./db")); - function someDecorator(target) { +@@= skipped -39, +39 lines =@@ return target; } --let MyClass = class MyClass { -+@someDecorator -+class MyClass { + let MyClass = class MyClass { + db; constructor(db) { this.db = db; - this.db.doSomething(); - } --}; -+} - exports.MyClass = MyClass; --exports.MyClass = MyClass = __decorate([ -- someDecorator, -- __metadata("design:paramtypes", [db_1.default]) --], MyClass); \ No newline at end of file + this.db.doSomething(); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/decoratorMetadataWithImportDeclarationNameCollision7.js b/testdata/baselines/reference/submodule/compiler/decoratorMetadataWithImportDeclarationNameCollision7.js index 004a419032..43a4f68dbb 100644 --- a/testdata/baselines/reference/submodule/compiler/decoratorMetadataWithImportDeclarationNameCollision7.js +++ b/testdata/baselines/reference/submodule/compiler/decoratorMetadataWithImportDeclarationNameCollision7.js @@ -33,17 +33,22 @@ class db { exports.default = db; //// [service.js] "use strict"; +var _a; Object.defineProperty(exports, "__esModule", { value: true }); exports.MyClass = void 0; +const db_1 = __importDefault(require("./db")); function someDecorator(target) { return target; } -@someDecorator -class MyClass { +let MyClass = class MyClass { db; //error constructor(db) { this.db = db; this.db.doSomething(); } -} +}; exports.MyClass = MyClass; +exports.MyClass = MyClass = __decorate([ + someDecorator, + __metadata("design:paramtypes", [typeof (_a = typeof db_1.default !== "undefined" && db_1.default.db) === "function" ? _a : Object]) +], MyClass); diff --git a/testdata/baselines/reference/submodule/compiler/decoratorMetadataWithImportDeclarationNameCollision7.js.diff b/testdata/baselines/reference/submodule/compiler/decoratorMetadataWithImportDeclarationNameCollision7.js.diff index 6252ef03d8..b6a4ff8718 100644 --- a/testdata/baselines/reference/submodule/compiler/decoratorMetadataWithImportDeclarationNameCollision7.js.diff +++ b/testdata/baselines/reference/submodule/compiler/decoratorMetadataWithImportDeclarationNameCollision7.js.diff @@ -1,28 +1,10 @@ --- old.decoratorMetadataWithImportDeclarationNameCollision7.js +++ new.decoratorMetadataWithImportDeclarationNameCollision7.js -@@= skipped -32, +32 lines =@@ - exports.default = db; - //// [service.js] - "use strict"; --var _a; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.MyClass = void 0; --const db_1 = __importDefault(require("./db")); - function someDecorator(target) { +@@= skipped -40, +40 lines =@@ return target; } --let MyClass = class MyClass { -+@someDecorator -+class MyClass { + let MyClass = class MyClass { + db; //error constructor(db) { this.db = db; - this.db.doSomething(); - } --}; -+} - exports.MyClass = MyClass; --exports.MyClass = MyClass = __decorate([ -- someDecorator, -- __metadata("design:paramtypes", [typeof (_a = typeof db_1.default !== "undefined" && db_1.default.db) === "function" ? _a : Object]) --], MyClass); \ No newline at end of file + this.db.doSomething(); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/decoratorMetadataWithImportDeclarationNameCollision8.js b/testdata/baselines/reference/submodule/compiler/decoratorMetadataWithImportDeclarationNameCollision8.js index 00c5a8ee29..bb559ed02d 100644 --- a/testdata/baselines/reference/submodule/compiler/decoratorMetadataWithImportDeclarationNameCollision8.js +++ b/testdata/baselines/reference/submodule/compiler/decoratorMetadataWithImportDeclarationNameCollision8.js @@ -36,15 +36,19 @@ exports.db = db; "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.MyClass = void 0; +const database = require("./db"); function someDecorator(target) { return target; } -@someDecorator -class MyClass { +let MyClass = class MyClass { db; constructor(db) { this.db = db; this.db.doSomething(); } -} +}; exports.MyClass = MyClass; +exports.MyClass = MyClass = __decorate([ + someDecorator, + __metadata("design:paramtypes", [database.db]) +], MyClass); diff --git a/testdata/baselines/reference/submodule/compiler/decoratorMetadataWithImportDeclarationNameCollision8.js.diff b/testdata/baselines/reference/submodule/compiler/decoratorMetadataWithImportDeclarationNameCollision8.js.diff index 561b77d13e..3685017600 100644 --- a/testdata/baselines/reference/submodule/compiler/decoratorMetadataWithImportDeclarationNameCollision8.js.diff +++ b/testdata/baselines/reference/submodule/compiler/decoratorMetadataWithImportDeclarationNameCollision8.js.diff @@ -1,25 +1,10 @@ --- old.decoratorMetadataWithImportDeclarationNameCollision8.js +++ new.decoratorMetadataWithImportDeclarationNameCollision8.js -@@= skipped -35, +35 lines =@@ - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.MyClass = void 0; --const database = require("./db"); - function someDecorator(target) { +@@= skipped -40, +40 lines =@@ return target; } --let MyClass = class MyClass { -+@someDecorator -+class MyClass { + let MyClass = class MyClass { + db; constructor(db) { this.db = db; - this.db.doSomething(); - } --}; -+} - exports.MyClass = MyClass; --exports.MyClass = MyClass = __decorate([ -- someDecorator, -- __metadata("design:paramtypes", [database.db]) --], MyClass); \ No newline at end of file + this.db.doSomething(); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/decoratorReferenceOnOtherProperty.js b/testdata/baselines/reference/submodule/compiler/decoratorReferenceOnOtherProperty.js index 089e1bd332..0cef0b1c7a 100644 --- a/testdata/baselines/reference/submodule/compiler/decoratorReferenceOnOtherProperty.js +++ b/testdata/baselines/reference/submodule/compiler/decoratorReferenceOnOtherProperty.js @@ -32,15 +32,53 @@ class Yoha { exports.Yoha = Yoha; //// [index.js] "use strict"; +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; Object.defineProperty(exports, "__esModule", { value: true }); +const yoha_1 = require("./yoha"); function foo(...args) { } class Bar { yoha(yoha, bar) { } } +__decorate([ + __param(0, foo), + __metadata("design:type", Function), + __metadata("design:paramtypes", [Object, yoha_1.Yoha]), + __metadata("design:returntype", void 0) +], Bar.prototype, "yoha", null); //// [index2.js] "use strict"; +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; Object.defineProperty(exports, "__esModule", { value: true }); +const yoha_1 = require("./yoha"); function foo(...args) { } class Bar { yoha(yoha, ...bar) { } } +__decorate([ + __param(0, foo), + __metadata("design:type", Function), + __metadata("design:paramtypes", [Object, yoha_1.Yoha]), + __metadata("design:returntype", void 0) +], Bar.prototype, "yoha", null); diff --git a/testdata/baselines/reference/submodule/compiler/decoratorReferenceOnOtherProperty.js.diff b/testdata/baselines/reference/submodule/compiler/decoratorReferenceOnOtherProperty.js.diff deleted file mode 100644 index 3ca0672a71..0000000000 --- a/testdata/baselines/reference/submodule/compiler/decoratorReferenceOnOtherProperty.js.diff +++ /dev/null @@ -1,56 +0,0 @@ ---- old.decoratorReferenceOnOtherProperty.js -+++ new.decoratorReferenceOnOtherProperty.js -@@= skipped -31, +31 lines =@@ - exports.Yoha = Yoha; - //// [index.js] - "use strict"; --var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { -- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; -- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); -- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; -- return c > 3 && r && Object.defineProperty(target, key, r), r; --}; --var __metadata = (this && this.__metadata) || function (k, v) { -- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); --}; --var __param = (this && this.__param) || function (paramIndex, decorator) { -- return function (target, key) { decorator(target, key, paramIndex); } --}; - Object.defineProperty(exports, "__esModule", { value: true }); --const yoha_1 = require("./yoha"); - function foo(...args) { } - class Bar { - yoha(yoha, bar) { } - } --__decorate([ -- __param(0, foo), -- __metadata("design:type", Function), -- __metadata("design:paramtypes", [Object, yoha_1.Yoha]), -- __metadata("design:returntype", void 0) --], Bar.prototype, "yoha", null); - //// [index2.js] - "use strict"; --var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { -- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; -- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); -- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; -- return c > 3 && r && Object.defineProperty(target, key, r), r; --}; --var __metadata = (this && this.__metadata) || function (k, v) { -- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); --}; --var __param = (this && this.__param) || function (paramIndex, decorator) { -- return function (target, key) { decorator(target, key, paramIndex); } --}; - Object.defineProperty(exports, "__esModule", { value: true }); --const yoha_1 = require("./yoha"); - function foo(...args) { } - class Bar { - yoha(yoha, ...bar) { } - } --__decorate([ -- __param(0, foo), -- __metadata("design:type", Function), -- __metadata("design:paramtypes", [Object, yoha_1.Yoha]), -- __metadata("design:returntype", void 0) --], Bar.prototype, "yoha", null); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/decoratorReferences.js b/testdata/baselines/reference/submodule/compiler/decoratorReferences.js index f56856bb5d..c47712e49b 100644 --- a/testdata/baselines/reference/submodule/compiler/decoratorReferences.js +++ b/testdata/baselines/reference/submodule/compiler/decoratorReferences.js @@ -10,8 +10,23 @@ class C { } //// [decoratorReferences.js] -@y(1, () => C) // <-- T should be resolved to the type alias, not the type parameter of the class; C should resolve to the class -class C { - @y(null) // <-- y should resolve to the function declaration, not the parameter; T should resolve to the type parameter of the class +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +let C = class C { method(x, y) { } // <-- decorator y should be resolved at the class declaration, not the parameter. -} +}; +__decorate([ + y(null) // <-- y should resolve to the function declaration, not the parameter; T should resolve to the type parameter of the class + , + __param(0, y) +], C.prototype, "method", null); +C = __decorate([ + y(1, () => C) // <-- T should be resolved to the type alias, not the type parameter of the class; C should resolve to the class +], C); diff --git a/testdata/baselines/reference/submodule/compiler/decoratorReferences.js.diff b/testdata/baselines/reference/submodule/compiler/decoratorReferences.js.diff deleted file mode 100644 index 461ddb8ec1..0000000000 --- a/testdata/baselines/reference/submodule/compiler/decoratorReferences.js.diff +++ /dev/null @@ -1,30 +0,0 @@ ---- old.decoratorReferences.js -+++ new.decoratorReferences.js -@@= skipped -9, +9 lines =@@ - } - - //// [decoratorReferences.js] --var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { -- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; -- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); -- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; -- return c > 3 && r && Object.defineProperty(target, key, r), r; --}; --var __param = (this && this.__param) || function (paramIndex, decorator) { -- return function (target, key) { decorator(target, key, paramIndex); } --}; --let C = class C { -+@y(1, () => C) // <-- T should be resolved to the type alias, not the type parameter of the class; C should resolve to the class -+class C { -+ @y(null) // <-- y should resolve to the function declaration, not the parameter; T should resolve to the type parameter of the class - method(x, y) { } // <-- decorator y should be resolved at the class declaration, not the parameter. --}; --__decorate([ -- y(null) // <-- y should resolve to the function declaration, not the parameter; T should resolve to the type parameter of the class -- , -- __param(0, y) --], C.prototype, "method", null); --C = __decorate([ -- y(1, () => C) // <-- T should be resolved to the type alias, not the type parameter of the class; C should resolve to the class --], C); -+} \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/decoratorUsedBeforeDeclaration.js b/testdata/baselines/reference/submodule/compiler/decoratorUsedBeforeDeclaration.js index f82ffbfa79..552377a683 100644 --- a/testdata/baselines/reference/submodule/compiler/decoratorUsedBeforeDeclaration.js +++ b/testdata/baselines/reference/submodule/compiler/decoratorUsedBeforeDeclaration.js @@ -76,22 +76,23 @@ class Greeter1 { //// [decoratorUsedBeforeDeclaration.js] -@lambda(Enum.No) -@deco(Enum.No) -class Greeter { - @lambda(Enum.No) - @deco(Enum.No) +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +let Greeter = class Greeter { greeting; constructor(message) { this.greeting = message; } - @lambda(Enum.No) - @deco(Enum.No) greet() { return "Hello, " + this.greeting; } - @lambda - @deco greet1() { return "Hello, " + this.greeting; } @@ -101,7 +102,31 @@ class Greeter { greet3(param) { return "Hello, " + this.greeting; } -} +}; +__decorate([ + lambda(Enum.No), + deco(Enum.No) +], Greeter.prototype, "greeting", void 0); +__decorate([ + lambda(Enum.No), + deco(Enum.No) +], Greeter.prototype, "greet", null); +__decorate([ + lambda, + deco +], Greeter.prototype, "greet1", null); +__decorate([ + __param(0, lambda(Enum.No)), + __param(0, deco(Enum.No)) +], Greeter.prototype, "greet2", null); +__decorate([ + __param(0, lambda), + __param(0, deco) +], Greeter.prototype, "greet3", null); +Greeter = __decorate([ + lambda(Enum.No), + deco(Enum.No) +], Greeter); function deco(...args) { } var Enum; (function (Enum) { @@ -109,22 +134,14 @@ var Enum; Enum[Enum["Yes"] = 1] = "Yes"; })(Enum || (Enum = {})); const lambda = (...args) => { }; -@lambda(Enum.No) -@deco(Enum.No) -class Greeter1 { - @lambda(Enum.No) - @deco(Enum.No) +let Greeter1 = class Greeter1 { greeting; constructor(message) { this.greeting = message; } - @lambda(Enum.No) - @deco(Enum.No) greet() { return "Hello, " + this.greeting; } - @lambda - @deco greet1() { return "Hello, " + this.greeting; } @@ -134,4 +151,28 @@ class Greeter1 { greet3(param) { return "Hello, " + this.greeting; } -} +}; +__decorate([ + lambda(Enum.No), + deco(Enum.No) +], Greeter1.prototype, "greeting", void 0); +__decorate([ + lambda(Enum.No), + deco(Enum.No) +], Greeter1.prototype, "greet", null); +__decorate([ + lambda, + deco +], Greeter1.prototype, "greet1", null); +__decorate([ + __param(0, lambda(Enum.No)), + __param(0, deco(Enum.No)) +], Greeter1.prototype, "greet2", null); +__decorate([ + __param(0, lambda), + __param(0, deco) +], Greeter1.prototype, "greet3", null); +Greeter1 = __decorate([ + lambda(Enum.No), + deco(Enum.No) +], Greeter1); diff --git a/testdata/baselines/reference/submodule/compiler/decoratorUsedBeforeDeclaration.js.diff b/testdata/baselines/reference/submodule/compiler/decoratorUsedBeforeDeclaration.js.diff index 89776def3c..4490afc97d 100644 --- a/testdata/baselines/reference/submodule/compiler/decoratorUsedBeforeDeclaration.js.diff +++ b/testdata/baselines/reference/submodule/compiler/decoratorUsedBeforeDeclaration.js.diff @@ -1,122 +1,18 @@ --- old.decoratorUsedBeforeDeclaration.js +++ new.decoratorUsedBeforeDeclaration.js -@@= skipped -75, +75 lines =@@ - - - //// [decoratorUsedBeforeDeclaration.js] --var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { -- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; -- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); -- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; -- return c > 3 && r && Object.defineProperty(target, key, r), r; --}; --var __param = (this && this.__param) || function (paramIndex, decorator) { -- return function (target, key) { decorator(target, key, paramIndex); } --}; --let Greeter = class Greeter { -+@lambda(Enum.No) -+@deco(Enum.No) -+class Greeter { -+ @lambda(Enum.No) -+ @deco(Enum.No) +@@= skipped -85, +85 lines =@@ + return function (target, key) { decorator(target, key, paramIndex); } + }; + let Greeter = class Greeter { + greeting; constructor(message) { this.greeting = message; } -+ @lambda(Enum.No) -+ @deco(Enum.No) - greet() { - return "Hello, " + this.greeting; - } -+ @lambda -+ @deco - greet1() { - return "Hello, " + this.greeting; - } -@@= skipped -25, +25 lines =@@ - greet3(param) { - return "Hello, " + this.greeting; - } --}; --__decorate([ -- lambda(Enum.No), -- deco(Enum.No) --], Greeter.prototype, "greeting", void 0); --__decorate([ -- lambda(Enum.No), -- deco(Enum.No) --], Greeter.prototype, "greet", null); --__decorate([ -- lambda, -- deco --], Greeter.prototype, "greet1", null); --__decorate([ -- __param(0, lambda(Enum.No)), -- __param(0, deco(Enum.No)) --], Greeter.prototype, "greet2", null); --__decorate([ -- __param(0, lambda), -- __param(0, deco) --], Greeter.prototype, "greet3", null); --Greeter = __decorate([ -- lambda(Enum.No), -- deco(Enum.No) --], Greeter); -+} - function deco(...args) { } - var Enum; - (function (Enum) { -@@= skipped -32, +8 lines =@@ - Enum[Enum["Yes"] = 1] = "Yes"; +@@= skipped -48, +49 lines =@@ })(Enum || (Enum = {})); const lambda = (...args) => { }; --let Greeter1 = class Greeter1 { -+@lambda(Enum.No) -+@deco(Enum.No) -+class Greeter1 { -+ @lambda(Enum.No) -+ @deco(Enum.No) + let Greeter1 = class Greeter1 { + greeting; constructor(message) { this.greeting = message; - } -+ @lambda(Enum.No) -+ @deco(Enum.No) - greet() { - return "Hello, " + this.greeting; - } -+ @lambda -+ @deco - greet1() { - return "Hello, " + this.greeting; - } -@@= skipped -16, +25 lines =@@ - greet3(param) { - return "Hello, " + this.greeting; - } --}; --__decorate([ -- lambda(Enum.No), -- deco(Enum.No) --], Greeter1.prototype, "greeting", void 0); --__decorate([ -- lambda(Enum.No), -- deco(Enum.No) --], Greeter1.prototype, "greet", null); --__decorate([ -- lambda, -- deco --], Greeter1.prototype, "greet1", null); --__decorate([ -- __param(0, lambda(Enum.No)), -- __param(0, deco(Enum.No)) --], Greeter1.prototype, "greet2", null); --__decorate([ -- __param(0, lambda), -- __param(0, deco) --], Greeter1.prototype, "greet3", null); --Greeter1 = __decorate([ -- lambda(Enum.No), -- deco(Enum.No) --], Greeter1); -+} \ No newline at end of file + } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/decoratorWithNegativeLiteralTypeNoCrash.js b/testdata/baselines/reference/submodule/compiler/decoratorWithNegativeLiteralTypeNoCrash.js index d366a891fe..5e2ff6175f 100644 --- a/testdata/baselines/reference/submodule/compiler/decoratorWithNegativeLiteralTypeNoCrash.js +++ b/testdata/baselines/reference/submodule/compiler/decoratorWithNegativeLiteralTypeNoCrash.js @@ -8,8 +8,20 @@ class A { function decorator(target: any, field: any) {} //// [decoratorWithNegativeLiteralTypeNoCrash.js] +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; class A { - @decorator field1 = -1; } +__decorate([ + decorator, + __metadata("design:type", Number) +], A.prototype, "field1", void 0); function decorator(target, field) { } diff --git a/testdata/baselines/reference/submodule/compiler/decoratorWithNegativeLiteralTypeNoCrash.js.diff b/testdata/baselines/reference/submodule/compiler/decoratorWithNegativeLiteralTypeNoCrash.js.diff index 0c4b632359..b59f0faf3c 100644 --- a/testdata/baselines/reference/submodule/compiler/decoratorWithNegativeLiteralTypeNoCrash.js.diff +++ b/testdata/baselines/reference/submodule/compiler/decoratorWithNegativeLiteralTypeNoCrash.js.diff @@ -1,27 +1,13 @@ --- old.decoratorWithNegativeLiteralTypeNoCrash.js +++ new.decoratorWithNegativeLiteralTypeNoCrash.js -@@= skipped -7, +7 lines =@@ - function decorator(target: any, field: any) {} - - //// [decoratorWithNegativeLiteralTypeNoCrash.js] --var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { -- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; -- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); -- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; -- return c > 3 && r && Object.defineProperty(target, key, r), r; --}; --var __metadata = (this && this.__metadata) || function (k, v) { -- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); --}; +@@= skipped -17, +17 lines =@@ + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); + }; class A { - constructor() { - this.field1 = -1; - } -+ @decorator + field1 = -1; } --__decorate([ -- decorator, -- __metadata("design:type", Number) --], A.prototype, "field1", void 0); - function decorator(target, field) { } \ No newline at end of file + __decorate([ + decorator, \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/decoratorWithUnderscoreMethod.js b/testdata/baselines/reference/submodule/compiler/decoratorWithUnderscoreMethod.js index 2e641abe6c..46c052454e 100644 --- a/testdata/baselines/reference/submodule/compiler/decoratorWithUnderscoreMethod.js +++ b/testdata/baselines/reference/submodule/compiler/decoratorWithUnderscoreMethod.js @@ -26,8 +26,10 @@ function dec() { }; } class A { - @dec() __foo(bar) { // do something with bar } } +__decorate([ + dec() +], A.prototype, "__foo", null); diff --git a/testdata/baselines/reference/submodule/compiler/decoratorWithUnderscoreMethod.js.diff b/testdata/baselines/reference/submodule/compiler/decoratorWithUnderscoreMethod.js.diff deleted file mode 100644 index 26c25a70f7..0000000000 --- a/testdata/baselines/reference/submodule/compiler/decoratorWithUnderscoreMethod.js.diff +++ /dev/null @@ -1,14 +0,0 @@ ---- old.decoratorWithUnderscoreMethod.js -+++ new.decoratorWithUnderscoreMethod.js -@@= skipped -25, +25 lines =@@ - }; - } - class A { -+ @dec() - __foo(bar) { - // do something with bar - } - } --__decorate([ -- dec() --], A.prototype, "__foo", null); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/decoratorsOnComputedProperties.js b/testdata/baselines/reference/submodule/compiler/decoratorsOnComputedProperties.js index bf084efa5f..c4775832cb 100644 --- a/testdata/baselines/reference/submodule/compiler/decoratorsOnComputedProperties.js +++ b/testdata/baselines/reference/submodule/compiler/decoratorsOnComputedProperties.js @@ -192,6 +192,12 @@ void class J { }; //// [decoratorsOnComputedProperties.js] +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; function x(o, k) { } let i = 0; function foo() { return ++i + ""; } @@ -199,256 +205,297 @@ const fieldNameA = "fieldName1"; const fieldNameB = "fieldName2"; const fieldNameC = "fieldName3"; class A { - @x ["property"]; - @x [Symbol.toStringTag]; - @x ["property2"] = 2; - @x [Symbol.iterator] = null; ["property3"]; [Symbol.isConcatSpreadable]; ["property4"] = 2; [Symbol.match] = null; [foo()]; - @x [foo()]; - @x [foo()] = null; [fieldNameA]; - @x [fieldNameB]; - @x [fieldNameC] = null; } +__decorate([ + x +], A.prototype, "property", void 0); +__decorate([ + x +], A.prototype, _a, void 0); +__decorate([ + x +], A.prototype, "property2", void 0); +__decorate([ + x +], A.prototype, _b, void 0); +__decorate([ + x +], A.prototype, _c, void 0); +__decorate([ + x +], A.prototype, _d, void 0); +__decorate([ + x +], A.prototype, _e, void 0); +__decorate([ + x +], A.prototype, _f, void 0); void class B { - @x ["property"]; - @x [Symbol.toStringTag]; - @x ["property2"] = 2; - @x [Symbol.iterator] = null; ["property3"]; [Symbol.isConcatSpreadable]; ["property4"] = 2; [Symbol.match] = null; [foo()]; - @x [foo()]; - @x [foo()] = null; [fieldNameA]; - @x [fieldNameB]; - @x [fieldNameC] = null; }; class C { - @x ["property"]; - @x [Symbol.toStringTag]; - @x ["property2"] = 2; - @x [Symbol.iterator] = null; ["property3"]; [Symbol.isConcatSpreadable]; ["property4"] = 2; [Symbol.match] = null; [foo()]; - @x [foo()]; - @x [foo()] = null; [fieldNameA]; - @x [fieldNameB]; - @x [fieldNameC] = null; ["some" + "method"]() { } } +__decorate([ + x +], C.prototype, "property", void 0); +__decorate([ + x +], C.prototype, _g, void 0); +__decorate([ + x +], C.prototype, "property2", void 0); +__decorate([ + x +], C.prototype, _h, void 0); +__decorate([ + x +], C.prototype, _j, void 0); +__decorate([ + x +], C.prototype, _k, void 0); +__decorate([ + x +], C.prototype, _l, void 0); +__decorate([ + x +], C.prototype, _m, void 0); void class D { - @x ["property"]; - @x [Symbol.toStringTag]; - @x ["property2"] = 2; - @x [Symbol.iterator] = null; ["property3"]; [Symbol.isConcatSpreadable]; ["property4"] = 2; [Symbol.match] = null; [foo()]; - @x [foo()]; - @x [foo()] = null; [fieldNameA]; - @x [fieldNameB]; - @x [fieldNameC] = null; ["some" + "method"]() { } }; class E { - @x ["property"]; - @x [Symbol.toStringTag]; - @x ["property2"] = 2; - @x [Symbol.iterator] = null; ["property3"]; [Symbol.isConcatSpreadable]; ["property4"] = 2; [Symbol.match] = null; [foo()]; - @x [foo()]; - @x [foo()] = null; ["some" + "method"]() { } [fieldNameA]; - @x [fieldNameB]; - @x [fieldNameC] = null; } +__decorate([ + x +], E.prototype, "property", void 0); +__decorate([ + x +], E.prototype, _o, void 0); +__decorate([ + x +], E.prototype, "property2", void 0); +__decorate([ + x +], E.prototype, _p, void 0); +__decorate([ + x +], E.prototype, _q, void 0); +__decorate([ + x +], E.prototype, _r, void 0); +__decorate([ + x +], E.prototype, _s, void 0); +__decorate([ + x +], E.prototype, _t, void 0); void class F { - @x ["property"]; - @x [Symbol.toStringTag]; - @x ["property2"] = 2; - @x [Symbol.iterator] = null; ["property3"]; [Symbol.isConcatSpreadable]; ["property4"] = 2; [Symbol.match] = null; [foo()]; - @x [foo()]; - @x [foo()] = null; ["some" + "method"]() { } [fieldNameA]; - @x [fieldNameB]; - @x [fieldNameC] = null; }; class G { - @x ["property"]; - @x [Symbol.toStringTag]; - @x ["property2"] = 2; - @x [Symbol.iterator] = null; ["property3"]; [Symbol.isConcatSpreadable]; ["property4"] = 2; [Symbol.match] = null; [foo()]; - @x [foo()]; - @x [foo()] = null; ["some" + "method"]() { } [fieldNameA]; - @x [fieldNameB]; ["some" + "method2"]() { } - @x [fieldNameC] = null; } +__decorate([ + x +], G.prototype, "property", void 0); +__decorate([ + x +], G.prototype, _u, void 0); +__decorate([ + x +], G.prototype, "property2", void 0); +__decorate([ + x +], G.prototype, _v, void 0); +__decorate([ + x +], G.prototype, _w, void 0); +__decorate([ + x +], G.prototype, _x, void 0); +__decorate([ + x +], G.prototype, _y, void 0); +__decorate([ + x +], G.prototype, _z, void 0); void class H { - @x ["property"]; - @x [Symbol.toStringTag]; - @x ["property2"] = 2; - @x [Symbol.iterator] = null; ["property3"]; [Symbol.isConcatSpreadable]; ["property4"] = 2; [Symbol.match] = null; [foo()]; - @x [foo()]; - @x [foo()] = null; ["some" + "method"]() { } [fieldNameA]; - @x [fieldNameB]; ["some" + "method2"]() { } - @x [fieldNameC] = null; }; class I { - @x ["property"]; - @x [Symbol.toStringTag]; - @x ["property2"] = 2; - @x [Symbol.iterator] = null; ["property3"]; [Symbol.isConcatSpreadable]; ["property4"] = 2; [Symbol.match] = null; [foo()]; - @x [foo()]; - @x [foo()] = null; - @x ["some" + "method"]() { } [fieldNameA]; - @x [fieldNameB]; ["some" + "method2"]() { } - @x [fieldNameC] = null; } +__decorate([ + x +], I.prototype, "property", void 0); +__decorate([ + x +], I.prototype, _0, void 0); +__decorate([ + x +], I.prototype, "property2", void 0); +__decorate([ + x +], I.prototype, _1, void 0); +__decorate([ + x +], I.prototype, _2, void 0); +__decorate([ + x +], I.prototype, _3, void 0); +__decorate([ + x +], I.prototype, _4, null); +__decorate([ + x +], I.prototype, _5, void 0); +__decorate([ + x +], I.prototype, _6, void 0); void class J { - @x ["property"]; - @x [Symbol.toStringTag]; - @x ["property2"] = 2; - @x [Symbol.iterator] = null; ["property3"]; [Symbol.isConcatSpreadable]; ["property4"] = 2; [Symbol.match] = null; [foo()]; - @x [foo()]; - @x [foo()] = null; - @x ["some" + "method"]() { } [fieldNameA]; - @x [fieldNameB]; ["some" + "method2"]() { } - @x [fieldNameC] = null; }; diff --git a/testdata/baselines/reference/submodule/compiler/decoratorsOnComputedProperties.js.diff b/testdata/baselines/reference/submodule/compiler/decoratorsOnComputedProperties.js.diff index e4a9119afc..0852db0cc3 100644 --- a/testdata/baselines/reference/submodule/compiler/decoratorsOnComputedProperties.js.diff +++ b/testdata/baselines/reference/submodule/compiler/decoratorsOnComputedProperties.js.diff @@ -1,21 +1,15 @@ --- old.decoratorsOnComputedProperties.js +++ new.decoratorsOnComputedProperties.js -@@= skipped -191, +191 lines =@@ +@@= skipped -197, +197 lines =@@ + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; }; - - //// [decoratorsOnComputedProperties.js] --var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { -- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; -- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); -- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; -- return c > 3 && r && Object.defineProperty(target, key, r), r; --}; -var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p; -var _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51; function x(o, k) { } let i = 0; function foo() { return ++i + ""; } -@@= skipped -15, +7 lines =@@ +@@= skipped -9, +7 lines =@@ const fieldNameB = "fieldName2"; const fieldNameC = "fieldName3"; class A { @@ -27,41 +21,34 @@ - this[_t] = null; - this[_v] = null; - } -+ @x + ["property"]; -+ @x + [Symbol.toStringTag]; -+ @x + ["property2"] = 2; -+ @x + [Symbol.iterator] = null; + ["property3"]; + [Symbol.isConcatSpreadable]; + ["property4"] = 2; + [Symbol.match] = null; + [foo()]; -+ @x + [foo()]; -+ @x + [foo()] = null; + [fieldNameA]; -+ @x + [fieldNameB]; -+ @x + [fieldNameC] = null; } -_q = Symbol.toStringTag, _r = Symbol.iterator, Symbol.isConcatSpreadable, _a = Symbol.match, foo(), _s = foo(), _t = foo(), _u = fieldNameB, _v = fieldNameC; --__decorate([ -- x --], A.prototype, "property", void 0); --__decorate([ -- x + __decorate([ + x + ], A.prototype, "property", void 0); + __decorate([ + x -], A.prototype, _q, void 0); --__decorate([ -- x --], A.prototype, "property2", void 0); --__decorate([ -- x ++], A.prototype, _a, void 0); + __decorate([ + x + ], A.prototype, "property2", void 0); + __decorate([ + x -], A.prototype, _r, void 0); -__decorate([ - x @@ -95,28 +82,33 @@ - _0 = fieldNameB, - _1 = fieldNameC, - _c); ++], A.prototype, _b, void 0); ++__decorate([ ++ x ++], A.prototype, _c, void 0); ++__decorate([ ++ x ++], A.prototype, _d, void 0); ++__decorate([ ++ x ++], A.prototype, _e, void 0); ++__decorate([ ++ x ++], A.prototype, _f, void 0); +void class B { -+ @x + ["property"]; -+ @x + [Symbol.toStringTag]; -+ @x + ["property2"] = 2; -+ @x + [Symbol.iterator] = null; + ["property3"]; + [Symbol.isConcatSpreadable]; + ["property4"] = 2; + [Symbol.match] = null; + [foo()]; -+ @x + [foo()]; -+ @x + [foo()] = null; + [fieldNameA]; -+ @x + [fieldNameB]; -+ @x + [fieldNameC] = null; +}; class C { @@ -129,41 +121,34 @@ - this[_7] = null; - } - [(_2 = Symbol.toStringTag, _3 = Symbol.iterator, Symbol.isConcatSpreadable, _d = Symbol.match, foo(), _4 = foo(), _5 = foo(), _6 = fieldNameB, _7 = fieldNameC, "some" + "method")]() { } -+ @x + ["property"]; -+ @x + [Symbol.toStringTag]; -+ @x + ["property2"] = 2; -+ @x + [Symbol.iterator] = null; + ["property3"]; + [Symbol.isConcatSpreadable]; + ["property4"] = 2; + [Symbol.match] = null; + [foo()]; -+ @x + [foo()]; -+ @x + [foo()] = null; + [fieldNameA]; -+ @x + [fieldNameB]; -+ @x + [fieldNameC] = null; + ["some" + "method"]() { } } --__decorate([ -- x --], C.prototype, "property", void 0); --__decorate([ -- x + __decorate([ + x + ], C.prototype, "property", void 0); + __decorate([ + x -], C.prototype, _2, void 0); --__decorate([ -- x --], C.prototype, "property2", void 0); --__decorate([ -- x ++], C.prototype, _g, void 0); + __decorate([ + x + ], C.prototype, "property2", void 0); + __decorate([ + x -], C.prototype, _3, void 0); -__decorate([ - x @@ -177,6 +162,19 @@ -__decorate([ - x -], C.prototype, _7, void 0); ++], C.prototype, _h, void 0); ++__decorate([ ++ x ++], C.prototype, _j, void 0); ++__decorate([ ++ x ++], C.prototype, _k, void 0); ++__decorate([ ++ x ++], C.prototype, _l, void 0); ++__decorate([ ++ x ++], C.prototype, _m, void 0); void class D { - constructor() { - this["property2"] = 2; @@ -187,27 +185,19 @@ - this[_13] = null; - } - [(_8 = Symbol.toStringTag, _9 = Symbol.iterator, Symbol.isConcatSpreadable, _e = Symbol.match, foo(), _10 = foo(), _11 = foo(), _12 = fieldNameB, _13 = fieldNameC, "some" + "method")]() { } -+ @x + ["property"]; -+ @x + [Symbol.toStringTag]; -+ @x + ["property2"] = 2; -+ @x + [Symbol.iterator] = null; + ["property3"]; + [Symbol.isConcatSpreadable]; + ["property4"] = 2; + [Symbol.match] = null; + [foo()]; -+ @x + [foo()]; -+ @x + [foo()] = null; + [fieldNameA]; -+ @x + [fieldNameB]; -+ @x + [fieldNameC] = null; + ["some" + "method"]() { } }; @@ -221,42 +211,35 @@ - this[_19] = null; - } - [(_14 = Symbol.toStringTag, _15 = Symbol.iterator, Symbol.isConcatSpreadable, _f = Symbol.match, foo(), _16 = foo(), _17 = foo(), "some" + "method")]() { } -+ @x + ["property"]; -+ @x + [Symbol.toStringTag]; -+ @x + ["property2"] = 2; -+ @x + [Symbol.iterator] = null; + ["property3"]; + [Symbol.isConcatSpreadable]; + ["property4"] = 2; + [Symbol.match] = null; + [foo()]; -+ @x + [foo()]; -+ @x + [foo()] = null; + ["some" + "method"]() { } + [fieldNameA]; -+ @x + [fieldNameB]; -+ @x + [fieldNameC] = null; } -_18 = fieldNameB, _19 = fieldNameC; --__decorate([ -- x --], E.prototype, "property", void 0); --__decorate([ -- x + __decorate([ + x + ], E.prototype, "property", void 0); + __decorate([ + x -], E.prototype, _14, void 0); --__decorate([ -- x --], E.prototype, "property2", void 0); --__decorate([ -- x ++], E.prototype, _o, void 0); + __decorate([ + x + ], E.prototype, "property2", void 0); + __decorate([ + x -], E.prototype, _15, void 0); -__decorate([ - x @@ -284,29 +267,34 @@ - _24 = fieldNameB, - _25 = fieldNameC, - _h); ++], E.prototype, _p, void 0); ++__decorate([ ++ x ++], E.prototype, _q, void 0); ++__decorate([ ++ x ++], E.prototype, _r, void 0); ++__decorate([ ++ x ++], E.prototype, _s, void 0); ++__decorate([ ++ x ++], E.prototype, _t, void 0); +void class F { -+ @x + ["property"]; -+ @x + [Symbol.toStringTag]; -+ @x + ["property2"] = 2; -+ @x + [Symbol.iterator] = null; + ["property3"]; + [Symbol.isConcatSpreadable]; + ["property4"] = 2; + [Symbol.match] = null; + [foo()]; -+ @x + [foo()]; -+ @x + [foo()] = null; + ["some" + "method"]() { } + [fieldNameA]; -+ @x + [fieldNameB]; -+ @x + [fieldNameC] = null; +}; class G { @@ -320,43 +308,36 @@ - } - [(_26 = Symbol.toStringTag, _27 = Symbol.iterator, Symbol.isConcatSpreadable, _j = Symbol.match, foo(), _28 = foo(), _29 = foo(), "some" + "method")]() { } - [(_30 = fieldNameB, "some" + "method2")]() { } -+ @x + ["property"]; -+ @x + [Symbol.toStringTag]; -+ @x + ["property2"] = 2; -+ @x + [Symbol.iterator] = null; + ["property3"]; + [Symbol.isConcatSpreadable]; + ["property4"] = 2; + [Symbol.match] = null; + [foo()]; -+ @x + [foo()]; -+ @x + [foo()] = null; + ["some" + "method"]() { } + [fieldNameA]; -+ @x + [fieldNameB]; + ["some" + "method2"]() { } -+ @x + [fieldNameC] = null; } -_31 = fieldNameC; --__decorate([ -- x --], G.prototype, "property", void 0); --__decorate([ -- x + __decorate([ + x + ], G.prototype, "property", void 0); + __decorate([ + x -], G.prototype, _26, void 0); --__decorate([ -- x --], G.prototype, "property2", void 0); --__decorate([ -- x ++], G.prototype, _u, void 0); + __decorate([ + x + ], G.prototype, "property2", void 0); + __decorate([ + x -], G.prototype, _27, void 0); -__decorate([ - x @@ -384,30 +365,35 @@ - }, - _37 = fieldNameC, - _l); ++], G.prototype, _v, void 0); ++__decorate([ ++ x ++], G.prototype, _w, void 0); ++__decorate([ ++ x ++], G.prototype, _x, void 0); ++__decorate([ ++ x ++], G.prototype, _y, void 0); ++__decorate([ ++ x ++], G.prototype, _z, void 0); +void class H { -+ @x + ["property"]; -+ @x + [Symbol.toStringTag]; -+ @x + ["property2"] = 2; -+ @x + [Symbol.iterator] = null; + ["property3"]; + [Symbol.isConcatSpreadable]; + ["property4"] = 2; + [Symbol.match] = null; + [foo()]; -+ @x + [foo()]; -+ @x + [foo()] = null; + ["some" + "method"]() { } + [fieldNameA]; -+ @x + [fieldNameB]; + ["some" + "method2"]() { } -+ @x + [fieldNameC] = null; +}; class I { @@ -421,44 +407,36 @@ - } - [(_38 = Symbol.toStringTag, _39 = Symbol.iterator, Symbol.isConcatSpreadable, _m = Symbol.match, foo(), _40 = foo(), _41 = foo(), _42 = "some" + "method")]() { } - [(_43 = fieldNameB, "some" + "method2")]() { } -+ @x + ["property"]; -+ @x + [Symbol.toStringTag]; -+ @x + ["property2"] = 2; -+ @x + [Symbol.iterator] = null; + ["property3"]; + [Symbol.isConcatSpreadable]; + ["property4"] = 2; + [Symbol.match] = null; + [foo()]; -+ @x + [foo()]; -+ @x + [foo()] = null; -+ @x + ["some" + "method"]() { } + [fieldNameA]; -+ @x + [fieldNameB]; + ["some" + "method2"]() { } -+ @x + [fieldNameC] = null; } -_44 = fieldNameC; --__decorate([ -- x --], I.prototype, "property", void 0); --__decorate([ -- x + __decorate([ + x + ], I.prototype, "property", void 0); + __decorate([ + x -], I.prototype, _38, void 0); --__decorate([ -- x --], I.prototype, "property2", void 0); --__decorate([ -- x ++], I.prototype, _0, void 0); + __decorate([ + x + ], I.prototype, "property2", void 0); + __decorate([ + x -], I.prototype, _39, void 0); -__decorate([ - x @@ -489,30 +467,37 @@ - }, - _51 = fieldNameC, - _p); ++], I.prototype, _1, void 0); ++__decorate([ ++ x ++], I.prototype, _2, void 0); ++__decorate([ ++ x ++], I.prototype, _3, void 0); ++__decorate([ ++ x ++], I.prototype, _4, null); ++__decorate([ ++ x ++], I.prototype, _5, void 0); ++__decorate([ ++ x ++], I.prototype, _6, void 0); +void class J { -+ @x + ["property"]; -+ @x + [Symbol.toStringTag]; -+ @x + ["property2"] = 2; -+ @x + [Symbol.iterator] = null; + ["property3"]; + [Symbol.isConcatSpreadable]; + ["property4"] = 2; + [Symbol.match] = null; + [foo()]; -+ @x + [foo()]; -+ @x + [foo()] = null; -+ @x + ["some" + "method"]() { } + [fieldNameA]; -+ @x + [fieldNameB]; + ["some" + "method2"]() { } -+ @x + [fieldNameC] = null; +}; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/defaultKeywordWithoutExport1.js b/testdata/baselines/reference/submodule/compiler/defaultKeywordWithoutExport1.js index 3a9910cb39..6c80d3c094 100644 --- a/testdata/baselines/reference/submodule/compiler/defaultKeywordWithoutExport1.js +++ b/testdata/baselines/reference/submodule/compiler/defaultKeywordWithoutExport1.js @@ -7,6 +7,14 @@ declare function decorator(constructor: any): any; default class {} //// [defaultKeywordWithoutExport1.js] -@decorator -default class { -} +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +let default_1 = class { +}; +default_1 = __decorate([ + decorator +], default_1); diff --git a/testdata/baselines/reference/submodule/compiler/defaultKeywordWithoutExport1.js.diff b/testdata/baselines/reference/submodule/compiler/defaultKeywordWithoutExport1.js.diff deleted file mode 100644 index 93b578960f..0000000000 --- a/testdata/baselines/reference/submodule/compiler/defaultKeywordWithoutExport1.js.diff +++ /dev/null @@ -1,20 +0,0 @@ ---- old.defaultKeywordWithoutExport1.js -+++ new.defaultKeywordWithoutExport1.js -@@= skipped -6, +6 lines =@@ - default class {} - - //// [defaultKeywordWithoutExport1.js] --var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { -- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; -- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); -- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; -- return c > 3 && r && Object.defineProperty(target, key, r), r; --}; --let default_1 = class { --}; --default_1 = __decorate([ -- decorator --], default_1); -+@decorator -+default class { -+} \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/emitDecoratorMetadata_isolatedModules(module=commonjs).js b/testdata/baselines/reference/submodule/compiler/emitDecoratorMetadata_isolatedModules(module=commonjs).js index 93cd0d8b4e..28cce5b104 100644 --- a/testdata/baselines/reference/submodule/compiler/emitDecoratorMetadata_isolatedModules(module=commonjs).js +++ b/testdata/baselines/reference/submodule/compiler/emitDecoratorMetadata_isolatedModules(module=commonjs).js @@ -53,18 +53,86 @@ class C3 { exports.C3 = C3; //// [index.js] "use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __importStar = (this && this.__importStar) || (function () { + var ownKeys = function(o) { + ownKeys = Object.getOwnPropertyNames || function (o) { + var ar = []; + for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k; + return ar; + }; + return ownKeys(o); + }; + return function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]); + __setModuleDefault(result, mod); + return result; + }; +})(); +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; Object.defineProperty(exports, "__esModule", { value: true }); +const t1 = __importStar(require("./type1")); +const class3_1 = require("./class3"); class HelloWorld { - @EventListener('1') handleEvent1(event) { } // Error - @EventListener('2') handleEvent2(event) { } // Ok - @EventListener('1') p1; // Error - @EventListener('1') p1_ns; // Ok - @EventListener('2') p2; // Ok - @EventListener('3') handleEvent3(event) { return undefined; } // Ok, Error } +__decorate([ + EventListener('1'), + __metadata("design:type", Function), + __metadata("design:paramtypes", [Object]), + __metadata("design:returntype", void 0) +], HelloWorld.prototype, "handleEvent1", null); +__decorate([ + EventListener('2'), + __metadata("design:type", Function), + __metadata("design:paramtypes", [Object]), + __metadata("design:returntype", void 0) +], HelloWorld.prototype, "handleEvent2", null); +__decorate([ + EventListener('1'), + __metadata("design:type", Object) +], HelloWorld.prototype, "p1", void 0); +__decorate([ + EventListener('1'), + __metadata("design:type", Object) +], HelloWorld.prototype, "p1_ns", void 0); +__decorate([ + EventListener('2'), + __metadata("design:type", Object) +], HelloWorld.prototype, "p2", void 0); +__decorate([ + EventListener('3'), + __metadata("design:type", Function), + __metadata("design:paramtypes", [class3_1.C3]), + __metadata("design:returntype", Object) +], HelloWorld.prototype, "handleEvent3", null); diff --git a/testdata/baselines/reference/submodule/compiler/emitDecoratorMetadata_isolatedModules(module=commonjs).js.diff b/testdata/baselines/reference/submodule/compiler/emitDecoratorMetadata_isolatedModules(module=commonjs).js.diff index 1d3a1524b5..617d534a49 100644 --- a/testdata/baselines/reference/submodule/compiler/emitDecoratorMetadata_isolatedModules(module=commonjs).js.diff +++ b/testdata/baselines/reference/submodule/compiler/emitDecoratorMetadata_isolatedModules(module=commonjs).js.diff @@ -1,95 +1,12 @@ --- old.emitDecoratorMetadata_isolatedModules(module=commonjs).js +++ new.emitDecoratorMetadata_isolatedModules(module=commonjs).js -@@= skipped -52, +52 lines =@@ - exports.C3 = C3; - //// [index.js] - "use strict"; --var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { -- if (k2 === undefined) k2 = k; -- var desc = Object.getOwnPropertyDescriptor(m, k); -- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { -- desc = { enumerable: true, get: function() { return m[k]; } }; -- } -- Object.defineProperty(o, k2, desc); --}) : (function(o, m, k, k2) { -- if (k2 === undefined) k2 = k; -- o[k2] = m[k]; --})); --var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { -- Object.defineProperty(o, "default", { enumerable: true, value: v }); --}) : function(o, v) { -- o["default"] = v; --}); --var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { -- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; -- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); -- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; -- return c > 3 && r && Object.defineProperty(target, key, r), r; --}; --var __importStar = (this && this.__importStar) || (function () { -- var ownKeys = function(o) { -- ownKeys = Object.getOwnPropertyNames || function (o) { -- var ar = []; -- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k; -- return ar; -- }; -- return ownKeys(o); -- }; -- return function (mod) { -- if (mod && mod.__esModule) return mod; -- var result = {}; -- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]); -- __setModuleDefault(result, mod); -- return result; -- }; --})(); --var __metadata = (this && this.__metadata) || function (k, v) { -- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); --}; - Object.defineProperty(exports, "__esModule", { value: true }); --const t1 = __importStar(require("./type1")); --const class3_1 = require("./class3"); +@@= skipped -100, +100 lines =@@ class HelloWorld { -+ @EventListener('1') handleEvent1(event) { } // Error -+ @EventListener('2') handleEvent2(event) { } // Ok -+ @EventListener('1') + p1; // Error -+ @EventListener('1') + p1_ns; // Ok -+ @EventListener('2') + p2; // Ok -+ @EventListener('3') handleEvent3(event) { return undefined; } // Ok, Error } --__decorate([ -- EventListener('1'), -- __metadata("design:type", Function), -- __metadata("design:paramtypes", [Object]), -- __metadata("design:returntype", void 0) --], HelloWorld.prototype, "handleEvent1", null); --__decorate([ -- EventListener('2'), -- __metadata("design:type", Function), -- __metadata("design:paramtypes", [Object]), -- __metadata("design:returntype", void 0) --], HelloWorld.prototype, "handleEvent2", null); --__decorate([ -- EventListener('1'), -- __metadata("design:type", Object) --], HelloWorld.prototype, "p1", void 0); --__decorate([ -- EventListener('1'), -- __metadata("design:type", Object) --], HelloWorld.prototype, "p1_ns", void 0); --__decorate([ -- EventListener('2'), -- __metadata("design:type", Object) --], HelloWorld.prototype, "p2", void 0); --__decorate([ -- EventListener('3'), -- __metadata("design:type", Function), -- __metadata("design:paramtypes", [class3_1.C3]), -- __metadata("design:returntype", Object) --], HelloWorld.prototype, "handleEvent3", null); \ No newline at end of file + __decorate([ \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/emitDecoratorMetadata_isolatedModules(module=esnext).errors.txt b/testdata/baselines/reference/submodule/compiler/emitDecoratorMetadata_isolatedModules(module=esnext).errors.txt new file mode 100644 index 0000000000..dfac6107ca --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/emitDecoratorMetadata_isolatedModules(module=esnext).errors.txt @@ -0,0 +1,51 @@ +index.ts(9,23): error TS1272: A type referenced in a decorated signature must be imported with 'import type' or a namespace import when 'isolatedModules' and 'emitDecoratorMetadata' are enabled. +index.ts(15,8): error TS1272: A type referenced in a decorated signature must be imported with 'import type' or a namespace import when 'isolatedModules' and 'emitDecoratorMetadata' are enabled. +index.ts(24,28): error TS1272: A type referenced in a decorated signature must be imported with 'import type' or a namespace import when 'isolatedModules' and 'emitDecoratorMetadata' are enabled. + + +==== type1.ts (0 errors) ==== + interface T1 {} + export type { T1 } + +==== type2.ts (0 errors) ==== + export interface T2 {} + +==== class3.ts (0 errors) ==== + export class C3 {} + +==== index.ts (3 errors) ==== + import { T1 } from "./type1"; + import * as t1 from "./type1"; + import type { T2 } from "./type2"; + import { C3 } from "./class3"; + declare var EventListener: any; + + class HelloWorld { + @EventListener('1') + handleEvent1(event: T1) {} // Error + ~~ +!!! error TS1272: A type referenced in a decorated signature must be imported with 'import type' or a namespace import when 'isolatedModules' and 'emitDecoratorMetadata' are enabled. +!!! related TS1376 index.ts:1:10: 'T1' was imported here. + + @EventListener('2') + handleEvent2(event: T2) {} // Ok + + @EventListener('1') + p1!: T1; // Error + ~~ +!!! error TS1272: A type referenced in a decorated signature must be imported with 'import type' or a namespace import when 'isolatedModules' and 'emitDecoratorMetadata' are enabled. +!!! related TS1376 index.ts:1:10: 'T1' was imported here. + + @EventListener('1') + p1_ns!: t1.T1; // Ok + + @EventListener('2') + p2!: T2; // Ok + + @EventListener('3') + handleEvent3(event: C3): T1 { return undefined! } // Ok, Error + ~~ +!!! error TS1272: A type referenced in a decorated signature must be imported with 'import type' or a namespace import when 'isolatedModules' and 'emitDecoratorMetadata' are enabled. +!!! related TS1376 index.ts:1:10: 'T1' was imported here. + } + \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/emitDecoratorMetadata_isolatedModules(module=esnext).errors.txt.diff b/testdata/baselines/reference/submodule/compiler/emitDecoratorMetadata_isolatedModules(module=esnext).errors.txt.diff deleted file mode 100644 index 07f8db89c6..0000000000 --- a/testdata/baselines/reference/submodule/compiler/emitDecoratorMetadata_isolatedModules(module=esnext).errors.txt.diff +++ /dev/null @@ -1,55 +0,0 @@ ---- old.emitDecoratorMetadata_isolatedModules(module=esnext).errors.txt -+++ new.emitDecoratorMetadata_isolatedModules(module=esnext).errors.txt -@@= skipped -0, +0 lines =@@ --index.ts(9,23): error TS1272: A type referenced in a decorated signature must be imported with 'import type' or a namespace import when 'isolatedModules' and 'emitDecoratorMetadata' are enabled. --index.ts(15,8): error TS1272: A type referenced in a decorated signature must be imported with 'import type' or a namespace import when 'isolatedModules' and 'emitDecoratorMetadata' are enabled. --index.ts(24,28): error TS1272: A type referenced in a decorated signature must be imported with 'import type' or a namespace import when 'isolatedModules' and 'emitDecoratorMetadata' are enabled. -- -- --==== type1.ts (0 errors) ==== -- interface T1 {} -- export type { T1 } -- --==== type2.ts (0 errors) ==== -- export interface T2 {} -- --==== class3.ts (0 errors) ==== -- export class C3 {} -- --==== index.ts (3 errors) ==== -- import { T1 } from "./type1"; -- import * as t1 from "./type1"; -- import type { T2 } from "./type2"; -- import { C3 } from "./class3"; -- declare var EventListener: any; -- -- class HelloWorld { -- @EventListener('1') -- handleEvent1(event: T1) {} // Error -- ~~ --!!! error TS1272: A type referenced in a decorated signature must be imported with 'import type' or a namespace import when 'isolatedModules' and 'emitDecoratorMetadata' are enabled. --!!! related TS1376 index.ts:1:10: 'T1' was imported here. -- -- @EventListener('2') -- handleEvent2(event: T2) {} // Ok -- -- @EventListener('1') -- p1!: T1; // Error -- ~~ --!!! error TS1272: A type referenced in a decorated signature must be imported with 'import type' or a namespace import when 'isolatedModules' and 'emitDecoratorMetadata' are enabled. --!!! related TS1376 index.ts:1:10: 'T1' was imported here. -- -- @EventListener('1') -- p1_ns!: t1.T1; // Ok -- -- @EventListener('2') -- p2!: T2; // Ok -- -- @EventListener('3') -- handleEvent3(event: C3): T1 { return undefined! } // Ok, Error -- ~~ --!!! error TS1272: A type referenced in a decorated signature must be imported with 'import type' or a namespace import when 'isolatedModules' and 'emitDecoratorMetadata' are enabled. --!!! related TS1376 index.ts:1:10: 'T1' was imported here. -- } -- -+ \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/emitDecoratorMetadata_isolatedModules(module=esnext).js b/testdata/baselines/reference/submodule/compiler/emitDecoratorMetadata_isolatedModules(module=esnext).js index 290ec57651..aade00747a 100644 --- a/testdata/baselines/reference/submodule/compiler/emitDecoratorMetadata_isolatedModules(module=esnext).js +++ b/testdata/baselines/reference/submodule/compiler/emitDecoratorMetadata_isolatedModules(module=esnext).js @@ -46,18 +46,52 @@ export {}; export class C3 { } //// [index.js] +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +import * as t1 from "./type1"; +import { C3 } from "./class3"; class HelloWorld { - @EventListener('1') handleEvent1(event) { } // Error - @EventListener('2') handleEvent2(event) { } // Ok - @EventListener('1') p1; // Error - @EventListener('1') p1_ns; // Ok - @EventListener('2') p2; // Ok - @EventListener('3') handleEvent3(event) { return undefined; } // Ok, Error } -export {}; +__decorate([ + EventListener('1'), + __metadata("design:type", Function), + __metadata("design:paramtypes", [Object]), + __metadata("design:returntype", void 0) +], HelloWorld.prototype, "handleEvent1", null); +__decorate([ + EventListener('2'), + __metadata("design:type", Function), + __metadata("design:paramtypes", [Object]), + __metadata("design:returntype", void 0) +], HelloWorld.prototype, "handleEvent2", null); +__decorate([ + EventListener('1'), + __metadata("design:type", Object) +], HelloWorld.prototype, "p1", void 0); +__decorate([ + EventListener('1'), + __metadata("design:type", Object) +], HelloWorld.prototype, "p1_ns", void 0); +__decorate([ + EventListener('2'), + __metadata("design:type", Object) +], HelloWorld.prototype, "p2", void 0); +__decorate([ + EventListener('3'), + __metadata("design:type", Function), + __metadata("design:paramtypes", [C3]), + __metadata("design:returntype", Object) +], HelloWorld.prototype, "handleEvent3", null); diff --git a/testdata/baselines/reference/submodule/compiler/emitDecoratorMetadata_isolatedModules(module=esnext).js.diff b/testdata/baselines/reference/submodule/compiler/emitDecoratorMetadata_isolatedModules(module=esnext).js.diff index 8278bb05cc..7a3cb360e4 100644 --- a/testdata/baselines/reference/submodule/compiler/emitDecoratorMetadata_isolatedModules(module=esnext).js.diff +++ b/testdata/baselines/reference/submodule/compiler/emitDecoratorMetadata_isolatedModules(module=esnext).js.diff @@ -1,62 +1,12 @@ --- old.emitDecoratorMetadata_isolatedModules(module=esnext).js +++ new.emitDecoratorMetadata_isolatedModules(module=esnext).js -@@= skipped -45, +45 lines =@@ - export class C3 { - } - //// [index.js] --var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { -- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; -- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); -- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; -- return c > 3 && r && Object.defineProperty(target, key, r), r; --}; --var __metadata = (this && this.__metadata) || function (k, v) { -- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); --}; --import * as t1 from "./type1"; --import { C3 } from "./class3"; +@@= skipped -59, +59 lines =@@ class HelloWorld { -+ @EventListener('1') handleEvent1(event) { } // Error -+ @EventListener('2') handleEvent2(event) { } // Ok -+ @EventListener('1') + p1; // Error -+ @EventListener('1') + p1_ns; // Ok -+ @EventListener('2') + p2; // Ok -+ @EventListener('3') handleEvent3(event) { return undefined; } // Ok, Error } --__decorate([ -- EventListener('1'), -- __metadata("design:type", Function), -- __metadata("design:paramtypes", [Object]), -- __metadata("design:returntype", void 0) --], HelloWorld.prototype, "handleEvent1", null); --__decorate([ -- EventListener('2'), -- __metadata("design:type", Function), -- __metadata("design:paramtypes", [Object]), -- __metadata("design:returntype", void 0) --], HelloWorld.prototype, "handleEvent2", null); --__decorate([ -- EventListener('1'), -- __metadata("design:type", Object) --], HelloWorld.prototype, "p1", void 0); --__decorate([ -- EventListener('1'), -- __metadata("design:type", Object) --], HelloWorld.prototype, "p1_ns", void 0); --__decorate([ -- EventListener('2'), -- __metadata("design:type", Object) --], HelloWorld.prototype, "p2", void 0); --__decorate([ -- EventListener('3'), -- __metadata("design:type", Function), -- __metadata("design:paramtypes", [C3]), -- __metadata("design:returntype", Object) --], HelloWorld.prototype, "handleEvent3", null); -+export {}; \ No newline at end of file + __decorate([ \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/emitDecoratorMetadata_object.js b/testdata/baselines/reference/submodule/compiler/emitDecoratorMetadata_object.js index 2d17ed01de..019f06ec66 100644 --- a/testdata/baselines/reference/submodule/compiler/emitDecoratorMetadata_object.js +++ b/testdata/baselines/reference/submodule/compiler/emitDecoratorMetadata_object.js @@ -13,9 +13,26 @@ class A { //// [emitDecoratorMetadata_object.js] -@MyClassDecorator -class A { +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +let A = class A { constructor(hi) { } - @MyMethodDecorator method(there) { } -} +}; +__decorate([ + MyMethodDecorator, + __metadata("design:type", Function), + __metadata("design:paramtypes", [Object]), + __metadata("design:returntype", void 0) +], A.prototype, "method", null); +A = __decorate([ + MyClassDecorator, + __metadata("design:paramtypes", [Object]) +], A); diff --git a/testdata/baselines/reference/submodule/compiler/emitDecoratorMetadata_object.js.diff b/testdata/baselines/reference/submodule/compiler/emitDecoratorMetadata_object.js.diff deleted file mode 100644 index c1437b5b01..0000000000 --- a/testdata/baselines/reference/submodule/compiler/emitDecoratorMetadata_object.js.diff +++ /dev/null @@ -1,33 +0,0 @@ ---- old.emitDecoratorMetadata_object.js -+++ new.emitDecoratorMetadata_object.js -@@= skipped -12, +12 lines =@@ - - - //// [emitDecoratorMetadata_object.js] --var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { -- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; -- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); -- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; -- return c > 3 && r && Object.defineProperty(target, key, r), r; --}; --var __metadata = (this && this.__metadata) || function (k, v) { -- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); --}; --let A = class A { -+@MyClassDecorator -+class A { - constructor(hi) { } -+ @MyMethodDecorator - method(there) { } --}; --__decorate([ -- MyMethodDecorator, -- __metadata("design:type", Function), -- __metadata("design:paramtypes", [Object]), -- __metadata("design:returntype", void 0) --], A.prototype, "method", null); --A = __decorate([ -- MyClassDecorator, -- __metadata("design:paramtypes", [Object]) --], A); -+} \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/emitDecoratorMetadata_restArgs.js b/testdata/baselines/reference/submodule/compiler/emitDecoratorMetadata_restArgs.js index 998743f055..59d81c22c7 100644 --- a/testdata/baselines/reference/submodule/compiler/emitDecoratorMetadata_restArgs.js +++ b/testdata/baselines/reference/submodule/compiler/emitDecoratorMetadata_restArgs.js @@ -20,15 +20,40 @@ class B { //// [emitDecoratorMetadata_restArgs.js] -@MyClassDecorator -class A { +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +let A = class A { constructor(...args) { } - @MyMethodDecorator method(...args) { } -} -@MyClassDecorator -class B { +}; +__decorate([ + MyMethodDecorator, + __metadata("design:type", Function), + __metadata("design:paramtypes", [Object]), + __metadata("design:returntype", void 0) +], A.prototype, "method", null); +A = __decorate([ + MyClassDecorator, + __metadata("design:paramtypes", [Object]) +], A); +let B = class B { constructor(...args) { } - @MyMethodDecorator method(...args) { } -} +}; +__decorate([ + MyMethodDecorator, + __metadata("design:type", Function), + __metadata("design:paramtypes", [String]), + __metadata("design:returntype", void 0) +], B.prototype, "method", null); +B = __decorate([ + MyClassDecorator, + __metadata("design:paramtypes", [Number]) +], B); diff --git a/testdata/baselines/reference/submodule/compiler/emitDecoratorMetadata_restArgs.js.diff b/testdata/baselines/reference/submodule/compiler/emitDecoratorMetadata_restArgs.js.diff deleted file mode 100644 index cf3e674a5c..0000000000 --- a/testdata/baselines/reference/submodule/compiler/emitDecoratorMetadata_restArgs.js.diff +++ /dev/null @@ -1,55 +0,0 @@ ---- old.emitDecoratorMetadata_restArgs.js -+++ new.emitDecoratorMetadata_restArgs.js -@@= skipped -19, +19 lines =@@ - - - //// [emitDecoratorMetadata_restArgs.js] --var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { -- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; -- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); -- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; -- return c > 3 && r && Object.defineProperty(target, key, r), r; --}; --var __metadata = (this && this.__metadata) || function (k, v) { -- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); --}; --let A = class A { -- constructor(...args) { } -- method(...args) { } --}; --__decorate([ -- MyMethodDecorator, -- __metadata("design:type", Function), -- __metadata("design:paramtypes", [Object]), -- __metadata("design:returntype", void 0) --], A.prototype, "method", null); --A = __decorate([ -- MyClassDecorator, -- __metadata("design:paramtypes", [Object]) --], A); --let B = class B { -- constructor(...args) { } -- method(...args) { } --}; --__decorate([ -- MyMethodDecorator, -- __metadata("design:type", Function), -- __metadata("design:paramtypes", [String]), -- __metadata("design:returntype", void 0) --], B.prototype, "method", null); --B = __decorate([ -- MyClassDecorator, -- __metadata("design:paramtypes", [Number]) --], B); -+@MyClassDecorator -+class A { -+ constructor(...args) { } -+ @MyMethodDecorator -+ method(...args) { } -+} -+@MyClassDecorator -+class B { -+ constructor(...args) { } -+ @MyMethodDecorator -+ method(...args) { } -+} \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/emitHelpersWithLocalCollisions(module=commonjs).js b/testdata/baselines/reference/submodule/compiler/emitHelpersWithLocalCollisions(module=commonjs).js index 08abaa3d83..2bf5641f43 100644 --- a/testdata/baselines/reference/submodule/compiler/emitHelpersWithLocalCollisions(module=commonjs).js +++ b/testdata/baselines/reference/submodule/compiler/emitHelpersWithLocalCollisions(module=commonjs).js @@ -11,11 +11,19 @@ const y = { ...o }; //// [a.js] "use strict"; +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; Object.defineProperty(exports, "__esModule", { value: true }); exports.A = void 0; -@dec -class A { -} +let A = class A { +}; exports.A = A; +exports.A = A = __decorate([ + dec +], A); const o = { a: 1 }; const y = Object.assign({}, o); diff --git a/testdata/baselines/reference/submodule/compiler/emitHelpersWithLocalCollisions(module=commonjs).js.diff b/testdata/baselines/reference/submodule/compiler/emitHelpersWithLocalCollisions(module=commonjs).js.diff deleted file mode 100644 index 0f8491c6db..0000000000 --- a/testdata/baselines/reference/submodule/compiler/emitHelpersWithLocalCollisions(module=commonjs).js.diff +++ /dev/null @@ -1,25 +0,0 @@ ---- old.emitHelpersWithLocalCollisions(module=commonjs).js -+++ new.emitHelpersWithLocalCollisions(module=commonjs).js -@@= skipped -10, +10 lines =@@ - - //// [a.js] - "use strict"; --var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { -- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; -- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); -- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; -- return c > 3 && r && Object.defineProperty(target, key, r), r; --}; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.A = void 0; --let A = class A { --}; -+@dec -+class A { -+} - exports.A = A; --exports.A = A = __decorate([ -- dec --], A); - const o = { a: 1 }; - const y = Object.assign({}, o); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/emitHelpersWithLocalCollisions(module=es2020).js b/testdata/baselines/reference/submodule/compiler/emitHelpersWithLocalCollisions(module=es2020).js index 42e35b59c5..47204b7a76 100644 --- a/testdata/baselines/reference/submodule/compiler/emitHelpersWithLocalCollisions(module=es2020).js +++ b/testdata/baselines/reference/submodule/compiler/emitHelpersWithLocalCollisions(module=es2020).js @@ -10,8 +10,17 @@ const y = { ...o }; //// [a.js] -@dec -export class A { -} +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +let A = class A { +}; +A = __decorate([ + dec +], A); +export { A }; const o = { a: 1 }; const y = Object.assign({}, o); diff --git a/testdata/baselines/reference/submodule/compiler/emitHelpersWithLocalCollisions(module=es2020).js.diff b/testdata/baselines/reference/submodule/compiler/emitHelpersWithLocalCollisions(module=es2020).js.diff deleted file mode 100644 index 3232c60574..0000000000 --- a/testdata/baselines/reference/submodule/compiler/emitHelpersWithLocalCollisions(module=es2020).js.diff +++ /dev/null @@ -1,23 +0,0 @@ ---- old.emitHelpersWithLocalCollisions(module=es2020).js -+++ new.emitHelpersWithLocalCollisions(module=es2020).js -@@= skipped -9, +9 lines =@@ - - - //// [a.js] --var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { -- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; -- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); -- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; -- return c > 3 && r && Object.defineProperty(target, key, r), r; --}; --let A = class A { --}; --A = __decorate([ -- dec --], A); --export { A }; -+@dec -+export class A { -+} - const o = { a: 1 }; - const y = Object.assign({}, o); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/emitHelpersWithLocalCollisions(module=es2022).js b/testdata/baselines/reference/submodule/compiler/emitHelpersWithLocalCollisions(module=es2022).js index 42e35b59c5..47204b7a76 100644 --- a/testdata/baselines/reference/submodule/compiler/emitHelpersWithLocalCollisions(module=es2022).js +++ b/testdata/baselines/reference/submodule/compiler/emitHelpersWithLocalCollisions(module=es2022).js @@ -10,8 +10,17 @@ const y = { ...o }; //// [a.js] -@dec -export class A { -} +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +let A = class A { +}; +A = __decorate([ + dec +], A); +export { A }; const o = { a: 1 }; const y = Object.assign({}, o); diff --git a/testdata/baselines/reference/submodule/compiler/emitHelpersWithLocalCollisions(module=es2022).js.diff b/testdata/baselines/reference/submodule/compiler/emitHelpersWithLocalCollisions(module=es2022).js.diff deleted file mode 100644 index 8254c062ad..0000000000 --- a/testdata/baselines/reference/submodule/compiler/emitHelpersWithLocalCollisions(module=es2022).js.diff +++ /dev/null @@ -1,23 +0,0 @@ ---- old.emitHelpersWithLocalCollisions(module=es2022).js -+++ new.emitHelpersWithLocalCollisions(module=es2022).js -@@= skipped -9, +9 lines =@@ - - - //// [a.js] --var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { -- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; -- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); -- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; -- return c > 3 && r && Object.defineProperty(target, key, r), r; --}; --let A = class A { --}; --A = __decorate([ -- dec --], A); --export { A }; -+@dec -+export class A { -+} - const o = { a: 1 }; - const y = Object.assign({}, o); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/emitHelpersWithLocalCollisions(module=es6).js b/testdata/baselines/reference/submodule/compiler/emitHelpersWithLocalCollisions(module=es6).js index 42e35b59c5..47204b7a76 100644 --- a/testdata/baselines/reference/submodule/compiler/emitHelpersWithLocalCollisions(module=es6).js +++ b/testdata/baselines/reference/submodule/compiler/emitHelpersWithLocalCollisions(module=es6).js @@ -10,8 +10,17 @@ const y = { ...o }; //// [a.js] -@dec -export class A { -} +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +let A = class A { +}; +A = __decorate([ + dec +], A); +export { A }; const o = { a: 1 }; const y = Object.assign({}, o); diff --git a/testdata/baselines/reference/submodule/compiler/emitHelpersWithLocalCollisions(module=es6).js.diff b/testdata/baselines/reference/submodule/compiler/emitHelpersWithLocalCollisions(module=es6).js.diff deleted file mode 100644 index c59af0d24d..0000000000 --- a/testdata/baselines/reference/submodule/compiler/emitHelpersWithLocalCollisions(module=es6).js.diff +++ /dev/null @@ -1,23 +0,0 @@ ---- old.emitHelpersWithLocalCollisions(module=es6).js -+++ new.emitHelpersWithLocalCollisions(module=es6).js -@@= skipped -9, +9 lines =@@ - - - //// [a.js] --var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { -- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; -- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); -- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; -- return c > 3 && r && Object.defineProperty(target, key, r), r; --}; --let A = class A { --}; --A = __decorate([ -- dec --], A); --export { A }; -+@dec -+export class A { -+} - const o = { a: 1 }; - const y = Object.assign({}, o); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/emitHelpersWithLocalCollisions(module=esnext).js b/testdata/baselines/reference/submodule/compiler/emitHelpersWithLocalCollisions(module=esnext).js index 42e35b59c5..47204b7a76 100644 --- a/testdata/baselines/reference/submodule/compiler/emitHelpersWithLocalCollisions(module=esnext).js +++ b/testdata/baselines/reference/submodule/compiler/emitHelpersWithLocalCollisions(module=esnext).js @@ -10,8 +10,17 @@ const y = { ...o }; //// [a.js] -@dec -export class A { -} +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +let A = class A { +}; +A = __decorate([ + dec +], A); +export { A }; const o = { a: 1 }; const y = Object.assign({}, o); diff --git a/testdata/baselines/reference/submodule/compiler/emitHelpersWithLocalCollisions(module=esnext).js.diff b/testdata/baselines/reference/submodule/compiler/emitHelpersWithLocalCollisions(module=esnext).js.diff deleted file mode 100644 index e03559a83c..0000000000 --- a/testdata/baselines/reference/submodule/compiler/emitHelpersWithLocalCollisions(module=esnext).js.diff +++ /dev/null @@ -1,23 +0,0 @@ ---- old.emitHelpersWithLocalCollisions(module=esnext).js -+++ new.emitHelpersWithLocalCollisions(module=esnext).js -@@= skipped -9, +9 lines =@@ - - - //// [a.js] --var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { -- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; -- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); -- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; -- return c > 3 && r && Object.defineProperty(target, key, r), r; --}; --let A = class A { --}; --A = __decorate([ -- dec --], A); --export { A }; -+@dec -+export class A { -+} - const o = { a: 1 }; - const y = Object.assign({}, o); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/emitHelpersWithLocalCollisions(module=node16).js b/testdata/baselines/reference/submodule/compiler/emitHelpersWithLocalCollisions(module=node16).js index 08abaa3d83..2bf5641f43 100644 --- a/testdata/baselines/reference/submodule/compiler/emitHelpersWithLocalCollisions(module=node16).js +++ b/testdata/baselines/reference/submodule/compiler/emitHelpersWithLocalCollisions(module=node16).js @@ -11,11 +11,19 @@ const y = { ...o }; //// [a.js] "use strict"; +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; Object.defineProperty(exports, "__esModule", { value: true }); exports.A = void 0; -@dec -class A { -} +let A = class A { +}; exports.A = A; +exports.A = A = __decorate([ + dec +], A); const o = { a: 1 }; const y = Object.assign({}, o); diff --git a/testdata/baselines/reference/submodule/compiler/emitHelpersWithLocalCollisions(module=node16).js.diff b/testdata/baselines/reference/submodule/compiler/emitHelpersWithLocalCollisions(module=node16).js.diff deleted file mode 100644 index 9886632971..0000000000 --- a/testdata/baselines/reference/submodule/compiler/emitHelpersWithLocalCollisions(module=node16).js.diff +++ /dev/null @@ -1,25 +0,0 @@ ---- old.emitHelpersWithLocalCollisions(module=node16).js -+++ new.emitHelpersWithLocalCollisions(module=node16).js -@@= skipped -10, +10 lines =@@ - - //// [a.js] - "use strict"; --var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { -- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; -- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); -- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; -- return c > 3 && r && Object.defineProperty(target, key, r), r; --}; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.A = void 0; --let A = class A { --}; -+@dec -+class A { -+} - exports.A = A; --exports.A = A = __decorate([ -- dec --], A); - const o = { a: 1 }; - const y = Object.assign({}, o); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/emitHelpersWithLocalCollisions(module=node18).js b/testdata/baselines/reference/submodule/compiler/emitHelpersWithLocalCollisions(module=node18).js index 08abaa3d83..2bf5641f43 100644 --- a/testdata/baselines/reference/submodule/compiler/emitHelpersWithLocalCollisions(module=node18).js +++ b/testdata/baselines/reference/submodule/compiler/emitHelpersWithLocalCollisions(module=node18).js @@ -11,11 +11,19 @@ const y = { ...o }; //// [a.js] "use strict"; +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; Object.defineProperty(exports, "__esModule", { value: true }); exports.A = void 0; -@dec -class A { -} +let A = class A { +}; exports.A = A; +exports.A = A = __decorate([ + dec +], A); const o = { a: 1 }; const y = Object.assign({}, o); diff --git a/testdata/baselines/reference/submodule/compiler/emitHelpersWithLocalCollisions(module=node18).js.diff b/testdata/baselines/reference/submodule/compiler/emitHelpersWithLocalCollisions(module=node18).js.diff deleted file mode 100644 index f7e3e17ef5..0000000000 --- a/testdata/baselines/reference/submodule/compiler/emitHelpersWithLocalCollisions(module=node18).js.diff +++ /dev/null @@ -1,25 +0,0 @@ ---- old.emitHelpersWithLocalCollisions(module=node18).js -+++ new.emitHelpersWithLocalCollisions(module=node18).js -@@= skipped -10, +10 lines =@@ - - //// [a.js] - "use strict"; --var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { -- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; -- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); -- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; -- return c > 3 && r && Object.defineProperty(target, key, r), r; --}; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.A = void 0; --let A = class A { --}; -+@dec -+class A { -+} - exports.A = A; --exports.A = A = __decorate([ -- dec --], A); - const o = { a: 1 }; - const y = Object.assign({}, o); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/emitHelpersWithLocalCollisions(module=node20).js b/testdata/baselines/reference/submodule/compiler/emitHelpersWithLocalCollisions(module=node20).js index 08abaa3d83..2bf5641f43 100644 --- a/testdata/baselines/reference/submodule/compiler/emitHelpersWithLocalCollisions(module=node20).js +++ b/testdata/baselines/reference/submodule/compiler/emitHelpersWithLocalCollisions(module=node20).js @@ -11,11 +11,19 @@ const y = { ...o }; //// [a.js] "use strict"; +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; Object.defineProperty(exports, "__esModule", { value: true }); exports.A = void 0; -@dec -class A { -} +let A = class A { +}; exports.A = A; +exports.A = A = __decorate([ + dec +], A); const o = { a: 1 }; const y = Object.assign({}, o); diff --git a/testdata/baselines/reference/submodule/compiler/emitHelpersWithLocalCollisions(module=node20).js.diff b/testdata/baselines/reference/submodule/compiler/emitHelpersWithLocalCollisions(module=node20).js.diff deleted file mode 100644 index cc9a2defb2..0000000000 --- a/testdata/baselines/reference/submodule/compiler/emitHelpersWithLocalCollisions(module=node20).js.diff +++ /dev/null @@ -1,25 +0,0 @@ ---- old.emitHelpersWithLocalCollisions(module=node20).js -+++ new.emitHelpersWithLocalCollisions(module=node20).js -@@= skipped -10, +10 lines =@@ - - //// [a.js] - "use strict"; --var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { -- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; -- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); -- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; -- return c > 3 && r && Object.defineProperty(target, key, r), r; --}; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.A = void 0; --let A = class A { --}; -+@dec -+class A { -+} - exports.A = A; --exports.A = A = __decorate([ -- dec --], A); - const o = { a: 1 }; - const y = Object.assign({}, o); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/emitHelpersWithLocalCollisions(module=nodenext).js b/testdata/baselines/reference/submodule/compiler/emitHelpersWithLocalCollisions(module=nodenext).js index 08abaa3d83..2bf5641f43 100644 --- a/testdata/baselines/reference/submodule/compiler/emitHelpersWithLocalCollisions(module=nodenext).js +++ b/testdata/baselines/reference/submodule/compiler/emitHelpersWithLocalCollisions(module=nodenext).js @@ -11,11 +11,19 @@ const y = { ...o }; //// [a.js] "use strict"; +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; Object.defineProperty(exports, "__esModule", { value: true }); exports.A = void 0; -@dec -class A { -} +let A = class A { +}; exports.A = A; +exports.A = A = __decorate([ + dec +], A); const o = { a: 1 }; const y = Object.assign({}, o); diff --git a/testdata/baselines/reference/submodule/compiler/emitHelpersWithLocalCollisions(module=nodenext).js.diff b/testdata/baselines/reference/submodule/compiler/emitHelpersWithLocalCollisions(module=nodenext).js.diff deleted file mode 100644 index 9c16969e58..0000000000 --- a/testdata/baselines/reference/submodule/compiler/emitHelpersWithLocalCollisions(module=nodenext).js.diff +++ /dev/null @@ -1,25 +0,0 @@ ---- old.emitHelpersWithLocalCollisions(module=nodenext).js -+++ new.emitHelpersWithLocalCollisions(module=nodenext).js -@@= skipped -10, +10 lines =@@ - - //// [a.js] - "use strict"; --var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { -- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; -- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); -- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; -- return c > 3 && r && Object.defineProperty(target, key, r), r; --}; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.A = void 0; --let A = class A { --}; -+@dec -+class A { -+} - exports.A = A; --exports.A = A = __decorate([ -- dec --], A); - const o = { a: 1 }; - const y = Object.assign({}, o); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/emitHelpersWithLocalCollisions(module=none).js b/testdata/baselines/reference/submodule/compiler/emitHelpersWithLocalCollisions(module=none).js index 42e35b59c5..47204b7a76 100644 --- a/testdata/baselines/reference/submodule/compiler/emitHelpersWithLocalCollisions(module=none).js +++ b/testdata/baselines/reference/submodule/compiler/emitHelpersWithLocalCollisions(module=none).js @@ -10,8 +10,17 @@ const y = { ...o }; //// [a.js] -@dec -export class A { -} +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +let A = class A { +}; +A = __decorate([ + dec +], A); +export { A }; const o = { a: 1 }; const y = Object.assign({}, o); diff --git a/testdata/baselines/reference/submodule/compiler/emitHelpersWithLocalCollisions(module=none).js.diff b/testdata/baselines/reference/submodule/compiler/emitHelpersWithLocalCollisions(module=none).js.diff index 3ea7892d24..d453e55d44 100644 --- a/testdata/baselines/reference/submodule/compiler/emitHelpersWithLocalCollisions(module=none).js.diff +++ b/testdata/baselines/reference/submodule/compiler/emitHelpersWithLocalCollisions(module=none).js.diff @@ -5,22 +5,21 @@ //// [a.js] -"use strict"; --var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { -- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; -- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); -- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; -- return c > 3 && r && Object.defineProperty(target, key, r), r; --}; + var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; + }; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.A = void 0; --let A = class A { --}; + let A = class A { + }; -exports.A = A; -exports.A = A = __decorate([ -- dec --], A); -+@dec -+export class A { -+} ++A = __decorate([ + dec + ], A); ++export { A }; const o = { a: 1 }; const y = Object.assign({}, o); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/emitHelpersWithLocalCollisions(module=preserve).js b/testdata/baselines/reference/submodule/compiler/emitHelpersWithLocalCollisions(module=preserve).js index 42e35b59c5..47204b7a76 100644 --- a/testdata/baselines/reference/submodule/compiler/emitHelpersWithLocalCollisions(module=preserve).js +++ b/testdata/baselines/reference/submodule/compiler/emitHelpersWithLocalCollisions(module=preserve).js @@ -10,8 +10,17 @@ const y = { ...o }; //// [a.js] -@dec -export class A { -} +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +let A = class A { +}; +A = __decorate([ + dec +], A); +export { A }; const o = { a: 1 }; const y = Object.assign({}, o); diff --git a/testdata/baselines/reference/submodule/compiler/emitHelpersWithLocalCollisions(module=preserve).js.diff b/testdata/baselines/reference/submodule/compiler/emitHelpersWithLocalCollisions(module=preserve).js.diff deleted file mode 100644 index 7c8d72d6c2..0000000000 --- a/testdata/baselines/reference/submodule/compiler/emitHelpersWithLocalCollisions(module=preserve).js.diff +++ /dev/null @@ -1,23 +0,0 @@ ---- old.emitHelpersWithLocalCollisions(module=preserve).js -+++ new.emitHelpersWithLocalCollisions(module=preserve).js -@@= skipped -9, +9 lines =@@ - - - //// [a.js] --var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { -- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; -- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); -- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; -- return c > 3 && r && Object.defineProperty(target, key, r), r; --}; --let A = class A { --}; --A = __decorate([ -- dec --], A); --export { A }; -+@dec -+export class A { -+} - const o = { a: 1 }; - const y = Object.assign({}, o); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/experimentalDecoratorMetadataUnresolvedTypeObjectInEmit.js b/testdata/baselines/reference/submodule/compiler/experimentalDecoratorMetadataUnresolvedTypeObjectInEmit.js index 39d51d0227..4d586c9b6f 100644 --- a/testdata/baselines/reference/submodule/compiler/experimentalDecoratorMetadataUnresolvedTypeObjectInEmit.js +++ b/testdata/baselines/reference/submodule/compiler/experimentalDecoratorMetadataUnresolvedTypeObjectInEmit.js @@ -16,6 +16,25 @@ class Foo { //// [usage.js] +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var _a, _b, _c, _d; class Foo { f(user) { } } +__decorate([ + __param(0, decorate), + __metadata("design:type", Function), + __metadata("design:paramtypes", [typeof (_d = typeof A !== "undefined" && (_a = A.B) !== void 0 && (_b = _a.C) !== void 0 && (_c = _b.D) !== void 0 && _c.E) === "function" ? _d : Object]), + __metadata("design:returntype", void 0) +], Foo.prototype, "f", null); diff --git a/testdata/baselines/reference/submodule/compiler/experimentalDecoratorMetadataUnresolvedTypeObjectInEmit.js.diff b/testdata/baselines/reference/submodule/compiler/experimentalDecoratorMetadataUnresolvedTypeObjectInEmit.js.diff deleted file mode 100644 index 131321b18c..0000000000 --- a/testdata/baselines/reference/submodule/compiler/experimentalDecoratorMetadataUnresolvedTypeObjectInEmit.js.diff +++ /dev/null @@ -1,28 +0,0 @@ ---- old.experimentalDecoratorMetadataUnresolvedTypeObjectInEmit.js -+++ new.experimentalDecoratorMetadataUnresolvedTypeObjectInEmit.js -@@= skipped -15, +15 lines =@@ - - - //// [usage.js] --var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { -- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; -- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); -- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; -- return c > 3 && r && Object.defineProperty(target, key, r), r; --}; --var __metadata = (this && this.__metadata) || function (k, v) { -- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); --}; --var __param = (this && this.__param) || function (paramIndex, decorator) { -- return function (target, key) { decorator(target, key, paramIndex); } --}; --var _a, _b, _c, _d; - class Foo { - f(user) { } - } --__decorate([ -- __param(0, decorate), -- __metadata("design:type", Function), -- __metadata("design:paramtypes", [typeof (_d = typeof A !== "undefined" && (_a = A.B) !== void 0 && (_b = _a.C) !== void 0 && (_c = _b.D) !== void 0 && _c.E) === "function" ? _d : Object]), -- __metadata("design:returntype", void 0) --], Foo.prototype, "f", null); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/importHelpers.js b/testdata/baselines/reference/submodule/compiler/importHelpers.js index 3f818f167e..89b1584b86 100644 --- a/testdata/baselines/reference/submodule/compiler/importHelpers.js +++ b/testdata/baselines/reference/submodule/compiler/importHelpers.js @@ -50,31 +50,60 @@ export declare function __makeTemplateObject(cooked: string[], raw: string[]): T "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.result = exports.B = exports.A = void 0; +const tslib_1 = require("tslib"); class A { } exports.A = A; class B extends A { } exports.B = B; -@dec -class C { +let C = class C { method(x) { } -} +}; +tslib_1.__decorate([ + tslib_1.__param(0, dec), + tslib_1.__metadata("design:type", Function), + tslib_1.__metadata("design:paramtypes", [Number]), + tslib_1.__metadata("design:returntype", void 0) +], C.prototype, "method", null); +C = tslib_1.__decorate([ + dec +], C); function id(x) { return x; } exports.result = id `hello world`; //// [script.js] +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; class A { } class B extends A { } -@dec -class C { +let C = class C { method(x) { } -} +}; +__decorate([ + __param(0, dec), + __metadata("design:type", Function), + __metadata("design:paramtypes", [Number]), + __metadata("design:returntype", void 0) +], C.prototype, "method", null); +C = __decorate([ + dec +], C); function id(x) { return x; } diff --git a/testdata/baselines/reference/submodule/compiler/importHelpers.js.diff b/testdata/baselines/reference/submodule/compiler/importHelpers.js.diff deleted file mode 100644 index 91026ef138..0000000000 --- a/testdata/baselines/reference/submodule/compiler/importHelpers.js.diff +++ /dev/null @@ -1,69 +0,0 @@ ---- old.importHelpers.js -+++ new.importHelpers.js -@@= skipped -49, +49 lines =@@ - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.result = exports.B = exports.A = void 0; --const tslib_1 = require("tslib"); - class A { - } - exports.A = A; - class B extends A { - } - exports.B = B; --let C = class C { -+@dec -+class C { - method(x) { - } --}; --tslib_1.__decorate([ -- tslib_1.__param(0, dec), -- tslib_1.__metadata("design:type", Function), -- tslib_1.__metadata("design:paramtypes", [Number]), -- tslib_1.__metadata("design:returntype", void 0) --], C.prototype, "method", null); --C = tslib_1.__decorate([ -- dec --], C); -+} - function id(x) { - return x; - } - exports.result = id `hello world`; - //// [script.js] --var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { -- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; -- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); -- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; -- return c > 3 && r && Object.defineProperty(target, key, r), r; --}; --var __metadata = (this && this.__metadata) || function (k, v) { -- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); --}; --var __param = (this && this.__param) || function (paramIndex, decorator) { -- return function (target, key) { decorator(target, key, paramIndex); } --}; - class A { - } - class B extends A { - } --let C = class C { -+@dec -+class C { - method(x) { - } --}; --__decorate([ -- __param(0, dec), -- __metadata("design:type", Function), -- __metadata("design:paramtypes", [Number]), -- __metadata("design:returntype", void 0) --], C.prototype, "method", null); --C = __decorate([ -- dec --], C); -+} - function id(x) { - return x; - } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/importHelpersES6.js b/testdata/baselines/reference/submodule/compiler/importHelpersES6.js index 6d03b088f8..ca5e5d874a 100644 --- a/testdata/baselines/reference/submodule/compiler/importHelpersES6.js +++ b/testdata/baselines/reference/submodule/compiler/importHelpersES6.js @@ -23,11 +23,15 @@ export declare function __classPrivateFieldIn(a: any, b: any): boolean; //// [a.js] -@dec -export class A { +import { __decorate } from "tslib"; +let A = class A { #x = 1; async f() { this.#x = await this.#x; } g(u) { return #x in u; } -} +}; +A = __decorate([ + dec +], A); +export { A }; const o = { a: 1 }; const y = Object.assign({}, o); diff --git a/testdata/baselines/reference/submodule/compiler/importHelpersES6.js.diff b/testdata/baselines/reference/submodule/compiler/importHelpersES6.js.diff index 215060a0db..9086b54ce7 100644 --- a/testdata/baselines/reference/submodule/compiler/importHelpersES6.js.diff +++ b/testdata/baselines/reference/submodule/compiler/importHelpersES6.js.diff @@ -6,7 +6,8 @@ //// [a.js] -var _A_x; -import { __awaiter, __classPrivateFieldGet, __classPrivateFieldIn, __classPrivateFieldSet, __decorate } from "tslib"; --let A = class A { ++import { __decorate } from "tslib"; + let A = class A { - constructor() { - _A_x.set(this, 1); - } @@ -14,17 +15,11 @@ - return __awaiter(this, void 0, void 0, function* () { __classPrivateFieldSet(this, _A_x, yield __classPrivateFieldGet(this, _A_x, "f"), "f"); }); - } - g(u) { return __classPrivateFieldIn(_A_x, u); } --}; --_A_x = new WeakMap(); --A = __decorate([ -- dec --], A); --export { A }; -+@dec -+export class A { + #x = 1; + async f() { this.#x = await this.#x; } + g(u) { return #x in u; } -+} - const o = { a: 1 }; - const y = Object.assign({}, o); \ No newline at end of file + }; +-_A_x = new WeakMap(); + A = __decorate([ + dec + ], A); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/importHelpersInIsolatedModules.js b/testdata/baselines/reference/submodule/compiler/importHelpersInIsolatedModules.js index c38d01d11f..228f0c6ab5 100644 --- a/testdata/baselines/reference/submodule/compiler/importHelpersInIsolatedModules.js +++ b/testdata/baselines/reference/submodule/compiler/importHelpersInIsolatedModules.js @@ -37,24 +37,53 @@ export declare function __awaiter(thisArg: any, _arguments: any, P: Function, ge "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.B = exports.A = void 0; +const tslib_1 = require("tslib"); class A { } exports.A = A; class B extends A { } exports.B = B; -@dec -class C { +let C = class C { method(x) { } -} +}; +tslib_1.__decorate([ + tslib_1.__param(0, dec), + tslib_1.__metadata("design:type", Function), + tslib_1.__metadata("design:paramtypes", [Number]), + tslib_1.__metadata("design:returntype", void 0) +], C.prototype, "method", null); +C = tslib_1.__decorate([ + dec +], C); //// [script.js] +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; class A { } class B extends A { } -@dec -class C { +let C = class C { method(x) { } -} +}; +__decorate([ + __param(0, dec), + __metadata("design:type", Function), + __metadata("design:paramtypes", [Number]), + __metadata("design:returntype", void 0) +], C.prototype, "method", null); +C = __decorate([ + dec +], C); diff --git a/testdata/baselines/reference/submodule/compiler/importHelpersInIsolatedModules.js.diff b/testdata/baselines/reference/submodule/compiler/importHelpersInIsolatedModules.js.diff deleted file mode 100644 index db0ab0c55e..0000000000 --- a/testdata/baselines/reference/submodule/compiler/importHelpersInIsolatedModules.js.diff +++ /dev/null @@ -1,62 +0,0 @@ ---- old.importHelpersInIsolatedModules.js -+++ new.importHelpersInIsolatedModules.js -@@= skipped -36, +36 lines =@@ - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.B = exports.A = void 0; --const tslib_1 = require("tslib"); - class A { - } - exports.A = A; - class B extends A { - } - exports.B = B; --let C = class C { -+@dec -+class C { - method(x) { - } --}; --tslib_1.__decorate([ -- tslib_1.__param(0, dec), -- tslib_1.__metadata("design:type", Function), -- tslib_1.__metadata("design:paramtypes", [Number]), -- tslib_1.__metadata("design:returntype", void 0) --], C.prototype, "method", null); --C = tslib_1.__decorate([ -- dec --], C); -+} - //// [script.js] --var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { -- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; -- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); -- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; -- return c > 3 && r && Object.defineProperty(target, key, r), r; --}; --var __metadata = (this && this.__metadata) || function (k, v) { -- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); --}; --var __param = (this && this.__param) || function (paramIndex, decorator) { -- return function (target, key) { decorator(target, key, paramIndex); } --}; - class A { - } - class B extends A { - } --let C = class C { -+@dec -+class C { - method(x) { - } --}; --__decorate([ -- __param(0, dec), -- __metadata("design:type", Function), -- __metadata("design:paramtypes", [Number]), -- __metadata("design:returntype", void 0) --], C.prototype, "method", null); --C = __decorate([ -- dec --], C); -+} \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/importHelpersWithLocalCollisions(module=commonjs).js b/testdata/baselines/reference/submodule/compiler/importHelpersWithLocalCollisions(module=commonjs).js index cc1242f528..d0149baffb 100644 --- a/testdata/baselines/reference/submodule/compiler/importHelpersWithLocalCollisions(module=commonjs).js +++ b/testdata/baselines/reference/submodule/compiler/importHelpersWithLocalCollisions(module=commonjs).js @@ -21,9 +21,12 @@ export declare function __awaiter(thisArg: any, _arguments: any, P: Function, ge "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.A = void 0; -@dec -class A { -} +const tslib_1 = require("tslib"); +let A = class A { +}; exports.A = A; +exports.A = A = tslib_1.__decorate([ + dec +], A); const o = { a: 1 }; const y = Object.assign({}, o); diff --git a/testdata/baselines/reference/submodule/compiler/importHelpersWithLocalCollisions(module=commonjs).js.diff b/testdata/baselines/reference/submodule/compiler/importHelpersWithLocalCollisions(module=commonjs).js.diff deleted file mode 100644 index c8299bf092..0000000000 --- a/testdata/baselines/reference/submodule/compiler/importHelpersWithLocalCollisions(module=commonjs).js.diff +++ /dev/null @@ -1,18 +0,0 @@ ---- old.importHelpersWithLocalCollisions(module=commonjs).js -+++ new.importHelpersWithLocalCollisions(module=commonjs).js -@@= skipped -20, +20 lines =@@ - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.A = void 0; --const tslib_1 = require("tslib"); --let A = class A { --}; -+@dec -+class A { -+} - exports.A = A; --exports.A = A = tslib_1.__decorate([ -- dec --], A); - const o = { a: 1 }; - const y = Object.assign({}, o); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/importHelpersWithLocalCollisions(module=es2015).js b/testdata/baselines/reference/submodule/compiler/importHelpersWithLocalCollisions(module=es2015).js index 8f7015dcd2..a974a5de5c 100644 --- a/testdata/baselines/reference/submodule/compiler/importHelpersWithLocalCollisions(module=es2015).js +++ b/testdata/baselines/reference/submodule/compiler/importHelpersWithLocalCollisions(module=es2015).js @@ -18,8 +18,12 @@ export declare function __awaiter(thisArg: any, _arguments: any, P: Function, ge //// [a.js] -@dec -export class A { -} +import { __decorate as __decorate_1 } from "tslib"; +let A = class A { +}; +A = __decorate_1([ + dec +], A); +export { A }; const o = { a: 1 }; const y = Object.assign({}, o); diff --git a/testdata/baselines/reference/submodule/compiler/importHelpersWithLocalCollisions(module=es2015).js.diff b/testdata/baselines/reference/submodule/compiler/importHelpersWithLocalCollisions(module=es2015).js.diff deleted file mode 100644 index 1472b1baee..0000000000 --- a/testdata/baselines/reference/submodule/compiler/importHelpersWithLocalCollisions(module=es2015).js.diff +++ /dev/null @@ -1,18 +0,0 @@ ---- old.importHelpersWithLocalCollisions(module=es2015).js -+++ new.importHelpersWithLocalCollisions(module=es2015).js -@@= skipped -17, +17 lines =@@ - - - //// [a.js] --import { __decorate as __decorate_1 } from "tslib"; --let A = class A { --}; --A = __decorate_1([ -- dec --], A); --export { A }; -+@dec -+export class A { -+} - const o = { a: 1 }; - const y = Object.assign({}, o); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/metadataImportType.js b/testdata/baselines/reference/submodule/compiler/metadataImportType.js index 39e1d4554c..f2c7644277 100644 --- a/testdata/baselines/reference/submodule/compiler/metadataImportType.js +++ b/testdata/baselines/reference/submodule/compiler/metadataImportType.js @@ -8,10 +8,22 @@ export class A { //// [metadataImportType.js] "use strict"; +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; Object.defineProperty(exports, "__esModule", { value: true }); exports.A = void 0; class A { - @test b; } exports.A = A; +__decorate([ + test, + __metadata("design:type", Object) +], A.prototype, "b", void 0); diff --git a/testdata/baselines/reference/submodule/compiler/metadataImportType.js.diff b/testdata/baselines/reference/submodule/compiler/metadataImportType.js.diff index f05c15a7a6..8252d2dfbb 100644 --- a/testdata/baselines/reference/submodule/compiler/metadataImportType.js.diff +++ b/testdata/baselines/reference/submodule/compiler/metadataImportType.js.diff @@ -1,26 +1,10 @@ --- old.metadataImportType.js +++ new.metadataImportType.js -@@= skipped -7, +7 lines =@@ - - //// [metadataImportType.js] - "use strict"; --var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { -- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; -- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); -- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; -- return c > 3 && r && Object.defineProperty(target, key, r), r; --}; --var __metadata = (this && this.__metadata) || function (k, v) { -- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); --}; +@@= skipped -19, +19 lines =@@ Object.defineProperty(exports, "__esModule", { value: true }); exports.A = void 0; class A { -+ @test + b; } exports.A = A; --__decorate([ -- test, -- __metadata("design:type", Object) --], A.prototype, "b", void 0); \ No newline at end of file + __decorate([ \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/metadataOfClassFromAlias.js b/testdata/baselines/reference/submodule/compiler/metadataOfClassFromAlias.js index 162de76569..3e2a4103fe 100644 --- a/testdata/baselines/reference/submodule/compiler/metadataOfClassFromAlias.js +++ b/testdata/baselines/reference/submodule/compiler/metadataOfClassFromAlias.js @@ -24,13 +24,26 @@ class SomeClass { exports.SomeClass = SomeClass; //// [test.js] "use strict"; +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; Object.defineProperty(exports, "__esModule", { value: true }); exports.ClassA = void 0; +const auxiliry_1 = require("./auxiliry"); function annotation() { return (target) => { }; } class ClassA { - @annotation() array; } exports.ClassA = ClassA; +__decorate([ + annotation(), + __metadata("design:type", auxiliry_1.SomeClass) +], ClassA.prototype, "array", void 0); diff --git a/testdata/baselines/reference/submodule/compiler/metadataOfClassFromAlias.js.diff b/testdata/baselines/reference/submodule/compiler/metadataOfClassFromAlias.js.diff index dae54a6ec2..ef945d7cae 100644 --- a/testdata/baselines/reference/submodule/compiler/metadataOfClassFromAlias.js.diff +++ b/testdata/baselines/reference/submodule/compiler/metadataOfClassFromAlias.js.diff @@ -8,28 +8,11 @@ } exports.SomeClass = SomeClass; //// [test.js] - "use strict"; --var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { -- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; -- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); -- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; -- return c > 3 && r && Object.defineProperty(target, key, r), r; --}; --var __metadata = (this && this.__metadata) || function (k, v) { -- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); --}; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.ClassA = void 0; --const auxiliry_1 = require("./auxiliry"); - function annotation() { +@@= skipped -20, +21 lines =@@ return (target) => { }; } class ClassA { -+ @annotation() + array; } exports.ClassA = ClassA; --__decorate([ -- annotation(), -- __metadata("design:type", auxiliry_1.SomeClass) --], ClassA.prototype, "array", void 0); \ No newline at end of file + __decorate([ \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/metadataOfClassFromAlias2.js b/testdata/baselines/reference/submodule/compiler/metadataOfClassFromAlias2.js index 242caf6420..906f4e9d01 100644 --- a/testdata/baselines/reference/submodule/compiler/metadataOfClassFromAlias2.js +++ b/testdata/baselines/reference/submodule/compiler/metadataOfClassFromAlias2.js @@ -24,13 +24,25 @@ class SomeClass { exports.SomeClass = SomeClass; //// [test.js] "use strict"; +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; Object.defineProperty(exports, "__esModule", { value: true }); exports.ClassA = void 0; function annotation() { return (target) => { }; } class ClassA { - @annotation() array; } exports.ClassA = ClassA; +__decorate([ + annotation(), + __metadata("design:type", Object) +], ClassA.prototype, "array", void 0); diff --git a/testdata/baselines/reference/submodule/compiler/metadataOfClassFromAlias2.js.diff b/testdata/baselines/reference/submodule/compiler/metadataOfClassFromAlias2.js.diff index 404cf64ffc..22fc85e751 100644 --- a/testdata/baselines/reference/submodule/compiler/metadataOfClassFromAlias2.js.diff +++ b/testdata/baselines/reference/submodule/compiler/metadataOfClassFromAlias2.js.diff @@ -8,27 +8,11 @@ } exports.SomeClass = SomeClass; //// [test.js] - "use strict"; --var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { -- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; -- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); -- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; -- return c > 3 && r && Object.defineProperty(target, key, r), r; --}; --var __metadata = (this && this.__metadata) || function (k, v) { -- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); --}; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.ClassA = void 0; - function annotation() { +@@= skipped -19, +20 lines =@@ return (target) => { }; } class ClassA { -+ @annotation() + array; } exports.ClassA = ClassA; --__decorate([ -- annotation(), -- __metadata("design:type", Object) --], ClassA.prototype, "array", void 0); \ No newline at end of file + __decorate([ \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/metadataOfClassFromModule.js b/testdata/baselines/reference/submodule/compiler/metadataOfClassFromModule.js index bd2cb2747a..7a3d30ce3a 100644 --- a/testdata/baselines/reference/submodule/compiler/metadataOfClassFromModule.js +++ b/testdata/baselines/reference/submodule/compiler/metadataOfClassFromModule.js @@ -14,6 +14,15 @@ module MyModule { } //// [metadataOfClassFromModule.js] +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; var MyModule; (function (MyModule) { function inject(target, key) { } @@ -22,8 +31,11 @@ var MyModule; } MyModule.Leg = Leg; class Person { - @inject leftLeg; } + __decorate([ + inject, + __metadata("design:type", Leg) + ], Person.prototype, "leftLeg", void 0); MyModule.Person = Person; })(MyModule || (MyModule = {})); diff --git a/testdata/baselines/reference/submodule/compiler/metadataOfClassFromModule.js.diff b/testdata/baselines/reference/submodule/compiler/metadataOfClassFromModule.js.diff index aff05ea552..7756a266e8 100644 --- a/testdata/baselines/reference/submodule/compiler/metadataOfClassFromModule.js.diff +++ b/testdata/baselines/reference/submodule/compiler/metadataOfClassFromModule.js.diff @@ -1,31 +1,10 @@ --- old.metadataOfClassFromModule.js +++ new.metadataOfClassFromModule.js -@@= skipped -13, +13 lines =@@ - } - - //// [metadataOfClassFromModule.js] --var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { -- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; -- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); -- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; -- return c > 3 && r && Object.defineProperty(target, key, r), r; --}; --var __metadata = (this && this.__metadata) || function (k, v) { -- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); --}; - var MyModule; - (function (MyModule) { - function inject(target, key) { } -@@= skipped -17, +8 lines =@@ +@@= skipped -30, +30 lines =@@ } MyModule.Leg = Leg; class Person { -+ @inject + leftLeg; } -- __decorate([ -- inject, -- __metadata("design:type", Leg) -- ], Person.prototype, "leftLeg", void 0); - MyModule.Person = Person; - })(MyModule || (MyModule = {})); \ No newline at end of file + __decorate([ + inject, \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/metadataOfEventAlias.js b/testdata/baselines/reference/submodule/compiler/metadataOfEventAlias.js index f59e1e1420..7eb4ea3d7f 100644 --- a/testdata/baselines/reference/submodule/compiler/metadataOfEventAlias.js +++ b/testdata/baselines/reference/submodule/compiler/metadataOfEventAlias.js @@ -16,11 +16,23 @@ Object.defineProperty(exports, "__esModule", { value: true }); ; //// [test.js] "use strict"; +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; Object.defineProperty(exports, "__esModule", { value: true }); exports.SomeClass = void 0; function Input(target, key) { } class SomeClass { - @Input event; } exports.SomeClass = SomeClass; +__decorate([ + Input, + __metadata("design:type", Object) +], SomeClass.prototype, "event", void 0); diff --git a/testdata/baselines/reference/submodule/compiler/metadataOfEventAlias.js.diff b/testdata/baselines/reference/submodule/compiler/metadataOfEventAlias.js.diff index 1e803192d1..64b77ae837 100644 --- a/testdata/baselines/reference/submodule/compiler/metadataOfEventAlias.js.diff +++ b/testdata/baselines/reference/submodule/compiler/metadataOfEventAlias.js.diff @@ -1,27 +1,10 @@ --- old.metadataOfEventAlias.js +++ new.metadataOfEventAlias.js -@@= skipped -15, +15 lines =@@ - ; - //// [test.js] - "use strict"; --var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { -- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; -- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); -- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; -- return c > 3 && r && Object.defineProperty(target, key, r), r; --}; --var __metadata = (this && this.__metadata) || function (k, v) { -- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); --}; - Object.defineProperty(exports, "__esModule", { value: true }); +@@= skipped -28, +28 lines =@@ exports.SomeClass = void 0; function Input(target, key) { } class SomeClass { -+ @Input + event; } exports.SomeClass = SomeClass; --__decorate([ -- Input, -- __metadata("design:type", Object) --], SomeClass.prototype, "event", void 0); \ No newline at end of file + __decorate([ \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/metadataOfStringLiteral.js b/testdata/baselines/reference/submodule/compiler/metadataOfStringLiteral.js index fc91098b73..4edbb9a366 100644 --- a/testdata/baselines/reference/submodule/compiler/metadataOfStringLiteral.js +++ b/testdata/baselines/reference/submodule/compiler/metadataOfStringLiteral.js @@ -9,8 +9,20 @@ class Foo { } //// [metadataOfStringLiteral.js] +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; function PropDeco(target, propKey) { } class Foo { - @PropDeco foo; } +__decorate([ + PropDeco, + __metadata("design:type", String) +], Foo.prototype, "foo", void 0); diff --git a/testdata/baselines/reference/submodule/compiler/metadataOfStringLiteral.js.diff b/testdata/baselines/reference/submodule/compiler/metadataOfStringLiteral.js.diff index 58c5d83d9e..a4c26ae47e 100644 --- a/testdata/baselines/reference/submodule/compiler/metadataOfStringLiteral.js.diff +++ b/testdata/baselines/reference/submodule/compiler/metadataOfStringLiteral.js.diff @@ -1,24 +1,10 @@ --- old.metadataOfStringLiteral.js +++ new.metadataOfStringLiteral.js -@@= skipped -8, +8 lines =@@ - } - - //// [metadataOfStringLiteral.js] --var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { -- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; -- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); -- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; -- return c > 3 && r && Object.defineProperty(target, key, r), r; --}; --var __metadata = (this && this.__metadata) || function (k, v) { -- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); --}; +@@= skipped -19, +19 lines =@@ + }; function PropDeco(target, propKey) { } class Foo { -+ @PropDeco + foo; } --__decorate([ -- PropDeco, -- __metadata("design:type", String) --], Foo.prototype, "foo", void 0); \ No newline at end of file + __decorate([ + PropDeco, \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/metadataOfUnion.js b/testdata/baselines/reference/submodule/compiler/metadataOfUnion.js index c236713f77..715293a5f2 100644 --- a/testdata/baselines/reference/submodule/compiler/metadataOfUnion.js +++ b/testdata/baselines/reference/submodule/compiler/metadataOfUnion.js @@ -39,17 +39,35 @@ class D { } //// [metadataOfUnion.js] +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; function PropDeco(target, propKey) { } class A { } class B { - @PropDeco x; - @PropDeco y; - @PropDeco z; } +__decorate([ + PropDeco, + __metadata("design:type", Object) +], B.prototype, "x", void 0); +__decorate([ + PropDeco, + __metadata("design:type", Boolean) +], B.prototype, "y", void 0); +__decorate([ + PropDeco, + __metadata("design:type", Object) +], B.prototype, "z", void 0); var E; (function (E) { E[E["A"] = 0] = "A"; @@ -58,12 +76,24 @@ var E; E[E["D"] = 3] = "D"; })(E || (E = {})); class D { - @PropDeco a; - @PropDeco b; - @PropDeco c; - @PropDeco d; } +__decorate([ + PropDeco, + __metadata("design:type", Number) +], D.prototype, "a", void 0); +__decorate([ + PropDeco, + __metadata("design:type", Number) +], D.prototype, "b", void 0); +__decorate([ + PropDeco, + __metadata("design:type", Number) +], D.prototype, "c", void 0); +__decorate([ + PropDeco, + __metadata("design:type", Number) +], D.prototype, "d", void 0); diff --git a/testdata/baselines/reference/submodule/compiler/metadataOfUnion.js.diff b/testdata/baselines/reference/submodule/compiler/metadataOfUnion.js.diff index 4c8ba5ce3e..e3e05c5e4b 100644 --- a/testdata/baselines/reference/submodule/compiler/metadataOfUnion.js.diff +++ b/testdata/baselines/reference/submodule/compiler/metadataOfUnion.js.diff @@ -1,70 +1,23 @@ --- old.metadataOfUnion.js +++ new.metadataOfUnion.js -@@= skipped -38, +38 lines =@@ - } - - //// [metadataOfUnion.js] --var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { -- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; -- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); -- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; -- return c > 3 && r && Object.defineProperty(target, key, r), r; --}; --var __metadata = (this && this.__metadata) || function (k, v) { -- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); --}; - function PropDeco(target, propKey) { } +@@= skipped -51, +51 lines =@@ class A { } class B { -+ @PropDeco + x; -+ @PropDeco + y; -+ @PropDeco + z; } --__decorate([ -- PropDeco, -- __metadata("design:type", Object) --], B.prototype, "x", void 0); --__decorate([ -- PropDeco, -- __metadata("design:type", Boolean) --], B.prototype, "y", void 0); --__decorate([ -- PropDeco, -- __metadata("design:type", Object) --], B.prototype, "z", void 0); - var E; - (function (E) { - E[E["A"] = 0] = "A"; -@@= skipped -34, +19 lines =@@ + __decorate([ + PropDeco, +@@= skipped -21, +24 lines =@@ E[E["D"] = 3] = "D"; })(E || (E = {})); class D { -+ @PropDeco + a; -+ @PropDeco + b; -+ @PropDeco + c; -+ @PropDeco + d; } --__decorate([ -- PropDeco, -- __metadata("design:type", Number) --], D.prototype, "a", void 0); --__decorate([ -- PropDeco, -- __metadata("design:type", Number) --], D.prototype, "b", void 0); --__decorate([ -- PropDeco, -- __metadata("design:type", Number) --], D.prototype, "c", void 0); --__decorate([ -- PropDeco, -- __metadata("design:type", Number) --], D.prototype, "d", void 0); \ No newline at end of file + __decorate([ + PropDeco, \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/metadataOfUnionWithNull.js b/testdata/baselines/reference/submodule/compiler/metadataOfUnionWithNull.js index d6a6d935c8..33edabad38 100644 --- a/testdata/baselines/reference/submodule/compiler/metadataOfUnionWithNull.js +++ b/testdata/baselines/reference/submodule/compiler/metadataOfUnionWithNull.js @@ -45,32 +45,77 @@ class B { } //// [metadataOfUnionWithNull.js] +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; function PropDeco(target, propKey) { } class A { } class B { - @PropDeco x; - @PropDeco y; - @PropDeco z; - @PropDeco a; - @PropDeco b; - @PropDeco c; - @PropDeco d; - @PropDeco e; - @PropDeco f; - @PropDeco g; - @PropDeco h; - @PropDeco j; } +__decorate([ + PropDeco, + __metadata("design:type", String) +], B.prototype, "x", void 0); +__decorate([ + PropDeco, + __metadata("design:type", Boolean) +], B.prototype, "y", void 0); +__decorate([ + PropDeco, + __metadata("design:type", String) +], B.prototype, "z", void 0); +__decorate([ + PropDeco, + __metadata("design:type", void 0) +], B.prototype, "a", void 0); +__decorate([ + PropDeco, + __metadata("design:type", void 0) +], B.prototype, "b", void 0); +__decorate([ + PropDeco, + __metadata("design:type", void 0) +], B.prototype, "c", void 0); +__decorate([ + PropDeco, + __metadata("design:type", void 0) +], B.prototype, "d", void 0); +__decorate([ + PropDeco, + __metadata("design:type", Symbol) +], B.prototype, "e", void 0); +__decorate([ + PropDeco, + __metadata("design:type", Object) +], B.prototype, "f", void 0); +__decorate([ + PropDeco, + __metadata("design:type", A) +], B.prototype, "g", void 0); +__decorate([ + PropDeco, + __metadata("design:type", B) +], B.prototype, "h", void 0); +__decorate([ + PropDeco, + __metadata("design:type", Symbol) +], B.prototype, "j", void 0); diff --git a/testdata/baselines/reference/submodule/compiler/metadataOfUnionWithNull.js.diff b/testdata/baselines/reference/submodule/compiler/metadataOfUnionWithNull.js.diff index 3b4d9611aa..d31c858da9 100644 --- a/testdata/baselines/reference/submodule/compiler/metadataOfUnionWithNull.js.diff +++ b/testdata/baselines/reference/submodule/compiler/metadataOfUnionWithNull.js.diff @@ -1,92 +1,21 @@ --- old.metadataOfUnionWithNull.js +++ new.metadataOfUnionWithNull.js -@@= skipped -44, +44 lines =@@ - } - - //// [metadataOfUnionWithNull.js] --var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { -- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; -- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); -- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; -- return c > 3 && r && Object.defineProperty(target, key, r), r; --}; --var __metadata = (this && this.__metadata) || function (k, v) { -- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); --}; - function PropDeco(target, propKey) { } +@@= skipped -57, +57 lines =@@ class A { } class B { -+ @PropDeco + x; -+ @PropDeco + y; -+ @PropDeco + z; -+ @PropDeco + a; -+ @PropDeco + b; -+ @PropDeco + c; -+ @PropDeco + d; -+ @PropDeco + e; -+ @PropDeco + f; -+ @PropDeco + g; -+ @PropDeco + h; -+ @PropDeco + j; } --__decorate([ -- PropDeco, -- __metadata("design:type", String) --], B.prototype, "x", void 0); --__decorate([ -- PropDeco, -- __metadata("design:type", Boolean) --], B.prototype, "y", void 0); --__decorate([ -- PropDeco, -- __metadata("design:type", String) --], B.prototype, "z", void 0); --__decorate([ -- PropDeco, -- __metadata("design:type", void 0) --], B.prototype, "a", void 0); --__decorate([ -- PropDeco, -- __metadata("design:type", void 0) --], B.prototype, "b", void 0); --__decorate([ -- PropDeco, -- __metadata("design:type", void 0) --], B.prototype, "c", void 0); --__decorate([ -- PropDeco, -- __metadata("design:type", void 0) --], B.prototype, "d", void 0); --__decorate([ -- PropDeco, -- __metadata("design:type", Symbol) --], B.prototype, "e", void 0); --__decorate([ -- PropDeco, -- __metadata("design:type", Object) --], B.prototype, "f", void 0); --__decorate([ -- PropDeco, -- __metadata("design:type", A) --], B.prototype, "g", void 0); --__decorate([ -- PropDeco, -- __metadata("design:type", B) --], B.prototype, "h", void 0); --__decorate([ -- PropDeco, -- __metadata("design:type", Symbol) --], B.prototype, "j", void 0); \ No newline at end of file + __decorate([ + PropDeco, \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/metadataReferencedWithinFilteredUnion.js b/testdata/baselines/reference/submodule/compiler/metadataReferencedWithinFilteredUnion.js index 8943807529..14b3b09ba5 100644 --- a/testdata/baselines/reference/submodule/compiler/metadataReferencedWithinFilteredUnion.js +++ b/testdata/baselines/reference/submodule/compiler/metadataReferencedWithinFilteredUnion.js @@ -25,14 +25,28 @@ class Class1 { exports.Class1 = Class1; //// [Class2.js] "use strict"; +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; Object.defineProperty(exports, "__esModule", { value: true }); exports.Class2 = void 0; +const Class1_1 = require("./Class1"); function decorate(target, propertyKey) { } class Class2 { - @decorate get prop() { return undefined; } } exports.Class2 = Class2; +__decorate([ + decorate, + __metadata("design:type", Class1_1.Class1), + __metadata("design:paramtypes", []) +], Class2.prototype, "prop", null); diff --git a/testdata/baselines/reference/submodule/compiler/metadataReferencedWithinFilteredUnion.js.diff b/testdata/baselines/reference/submodule/compiler/metadataReferencedWithinFilteredUnion.js.diff deleted file mode 100644 index 0d00080ebe..0000000000 --- a/testdata/baselines/reference/submodule/compiler/metadataReferencedWithinFilteredUnion.js.diff +++ /dev/null @@ -1,32 +0,0 @@ ---- old.metadataReferencedWithinFilteredUnion.js -+++ new.metadataReferencedWithinFilteredUnion.js -@@= skipped -24, +24 lines =@@ - exports.Class1 = Class1; - //// [Class2.js] - "use strict"; --var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { -- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; -- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); -- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; -- return c > 3 && r && Object.defineProperty(target, key, r), r; --}; --var __metadata = (this && this.__metadata) || function (k, v) { -- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); --}; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.Class2 = void 0; --const Class1_1 = require("./Class1"); - function decorate(target, propertyKey) { - } - class Class2 { -+ @decorate - get prop() { - return undefined; - } - } - exports.Class2 = Class2; --__decorate([ -- decorate, -- __metadata("design:type", Class1_1.Class1), -- __metadata("design:paramtypes", []) --], Class2.prototype, "prop", null); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/noEmitHelpers2.js b/testdata/baselines/reference/submodule/compiler/noEmitHelpers2.js index 727d0f2299..4843574cfa 100644 --- a/testdata/baselines/reference/submodule/compiler/noEmitHelpers2.js +++ b/testdata/baselines/reference/submodule/compiler/noEmitHelpers2.js @@ -10,8 +10,12 @@ class A { } //// [noEmitHelpers2.js] -@decorator -class A { +let A = class A { constructor(a, b) { } -} +}; +A = __decorate([ + decorator, + __param(1, decorator), + __metadata("design:paramtypes", [Number, String]) +], A); diff --git a/testdata/baselines/reference/submodule/compiler/noEmitHelpers2.js.diff b/testdata/baselines/reference/submodule/compiler/noEmitHelpers2.js.diff deleted file mode 100644 index b61371e0dc..0000000000 --- a/testdata/baselines/reference/submodule/compiler/noEmitHelpers2.js.diff +++ /dev/null @@ -1,18 +0,0 @@ ---- old.noEmitHelpers2.js -+++ new.noEmitHelpers2.js -@@= skipped -9, +9 lines =@@ - } - - //// [noEmitHelpers2.js] --let A = class A { -+@decorator -+class A { - constructor(a, b) { - } --}; --A = __decorate([ -- decorator, -- __param(1, decorator), -- __metadata("design:paramtypes", [Number, String]) --], A); -+} \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/parameterDecoratorsEmitCrash.js b/testdata/baselines/reference/submodule/compiler/parameterDecoratorsEmitCrash.js index 216fc9ab34..c9fa504d4b 100644 --- a/testdata/baselines/reference/submodule/compiler/parameterDecoratorsEmitCrash.js +++ b/testdata/baselines/reference/submodule/compiler/parameterDecoratorsEmitCrash.js @@ -17,6 +17,8 @@ exports.C = void 0; class C { @dec x; - constructor(x) { } + constructor( + @dec + x) { } } exports.C = C; diff --git a/testdata/baselines/reference/submodule/compiler/parameterDecoratorsEmitCrash.js.diff b/testdata/baselines/reference/submodule/compiler/parameterDecoratorsEmitCrash.js.diff index d7a6b837f7..84b9beef9e 100644 --- a/testdata/baselines/reference/submodule/compiler/parameterDecoratorsEmitCrash.js.diff +++ b/testdata/baselines/reference/submodule/compiler/parameterDecoratorsEmitCrash.js.diff @@ -62,6 +62,8 @@ +class C { + @dec + x; -+ constructor(x) { } ++ constructor( ++ @dec ++ x) { } +} exports.C = C; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/potentiallyUncalledDecorators.js b/testdata/baselines/reference/submodule/compiler/potentiallyUncalledDecorators.js index 56aa036d1b..40510a85d3 100644 --- a/testdata/baselines/reference/submodule/compiler/potentiallyUncalledDecorators.js +++ b/testdata/baselines/reference/submodule/compiler/potentiallyUncalledDecorators.js @@ -81,69 +81,123 @@ export { }; //// [potentiallyUncalledDecorators.js] +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; class FooComponent { - @Input foo; } +__decorate([ + Input +], FooComponent.prototype, "foo", void 0); class Person { - @tracked person; any; } +__decorate([ + tracked +], Person.prototype, "person", void 0); class MultiplyByTwo { args; - @tracked('args') get multiplied() { return this.args.number * 2; } } -@noArgs -class A { - @noArgs +__decorate([ + tracked('args') +], MultiplyByTwo.prototype, "multiplied", null); +let A = class A { foo; - @noArgs bar() { } -} -@allRest -class B { - @allRest +}; +__decorate([ + noArgs +], A.prototype, "foo", void 0); +__decorate([ + noArgs +], A.prototype, "bar", null); +A = __decorate([ + noArgs +], A); +let B = class B { foo; - @allRest bar() { } -} -@oneOptional -class C { - @oneOptional +}; +__decorate([ + allRest +], B.prototype, "foo", void 0); +__decorate([ + allRest +], B.prototype, "bar", null); +B = __decorate([ + allRest +], B); +let C = class C { foo; - @oneOptional bar() { } -} -@twoOptional -class D { - @twoOptional +}; +__decorate([ + oneOptional +], C.prototype, "foo", void 0); +__decorate([ + oneOptional +], C.prototype, "bar", null); +C = __decorate([ + oneOptional +], C); +let D = class D { foo; - @twoOptional bar() { } -} -@threeOptional -class E { - @threeOptional +}; +__decorate([ + twoOptional +], D.prototype, "foo", void 0); +__decorate([ + twoOptional +], D.prototype, "bar", null); +D = __decorate([ + twoOptional +], D); +let E = class E { foo; - @threeOptional bar() { } -} -@oneOptionalWithRest -class F { - @oneOptionalWithRest +}; +__decorate([ + threeOptional +], E.prototype, "foo", void 0); +__decorate([ + threeOptional +], E.prototype, "bar", null); +E = __decorate([ + threeOptional +], E); +let F = class F { foo; - @oneOptionalWithRest bar() { } -} -@anyDec -class G { - @anyDec +}; +__decorate([ + oneOptionalWithRest +], F.prototype, "foo", void 0); +__decorate([ + oneOptionalWithRest +], F.prototype, "bar", null); +F = __decorate([ + oneOptionalWithRest +], F); +let G = class G { foo; - @anyDec bar() { } -} +}; +__decorate([ + anyDec +], G.prototype, "foo", void 0); +__decorate([ + anyDec +], G.prototype, "bar", null); +G = __decorate([ + anyDec +], G); export {}; diff --git a/testdata/baselines/reference/submodule/compiler/potentiallyUncalledDecorators.js.diff b/testdata/baselines/reference/submodule/compiler/potentiallyUncalledDecorators.js.diff index 0ac2102324..b209a4ac17 100644 --- a/testdata/baselines/reference/submodule/compiler/potentiallyUncalledDecorators.js.diff +++ b/testdata/baselines/reference/submodule/compiler/potentiallyUncalledDecorators.js.diff @@ -1,171 +1,79 @@ --- old.potentiallyUncalledDecorators.js +++ new.potentiallyUncalledDecorators.js -@@= skipped -80, +80 lines =@@ - - - //// [potentiallyUncalledDecorators.js] --var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { -- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; -- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); -- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; -- return c > 3 && r && Object.defineProperty(target, key, r), r; --}; +@@= skipped -87, +87 lines =@@ + return c > 3 && r && Object.defineProperty(target, key, r), r; + }; class FooComponent { -+ @Input + foo; } --__decorate([ -- Input --], FooComponent.prototype, "foo", void 0); + __decorate([ + Input + ], FooComponent.prototype, "foo", void 0); class Person { -+ @tracked + person; + any; } --__decorate([ -- tracked --], Person.prototype, "person", void 0); + __decorate([ + tracked + ], Person.prototype, "person", void 0); class MultiplyByTwo { + args; -+ @tracked('args') get multiplied() { return this.args.number * 2; } - } --__decorate([ -- tracked('args') --], MultiplyByTwo.prototype, "multiplied", null); --let A = class A { -- bar() { } --}; --__decorate([ -- noArgs --], A.prototype, "foo", void 0); --__decorate([ -- noArgs --], A.prototype, "bar", null); --A = __decorate([ -- noArgs --], A); --let B = class B { -- bar() { } --}; --__decorate([ -- allRest --], B.prototype, "foo", void 0); --__decorate([ -- allRest --], B.prototype, "bar", null); --B = __decorate([ -- allRest --], B); --let C = class C { -- bar() { } --}; --__decorate([ -- oneOptional --], C.prototype, "foo", void 0); --__decorate([ -- oneOptional --], C.prototype, "bar", null); --C = __decorate([ -- oneOptional --], C); --let D = class D { -- bar() { } --}; --__decorate([ -- twoOptional --], D.prototype, "foo", void 0); --__decorate([ -- twoOptional --], D.prototype, "bar", null); --D = __decorate([ -- twoOptional --], D); --let E = class E { -- bar() { } --}; --__decorate([ -- threeOptional --], E.prototype, "foo", void 0); --__decorate([ -- threeOptional --], E.prototype, "bar", null); --E = __decorate([ -- threeOptional --], E); --let F = class F { -- bar() { } --}; --__decorate([ -- oneOptionalWithRest --], F.prototype, "foo", void 0); --__decorate([ -- oneOptionalWithRest --], F.prototype, "bar", null); --F = __decorate([ -- oneOptionalWithRest --], F); --let G = class G { -- bar() { } --}; --__decorate([ -- anyDec --], G.prototype, "foo", void 0); --__decorate([ -- anyDec --], G.prototype, "bar", null); --G = __decorate([ -- anyDec --], G); -+@noArgs -+class A { -+ @noArgs +@@= skipped -18, +22 lines =@@ + tracked('args') + ], MultiplyByTwo.prototype, "multiplied", null); + let A = class A { + foo; -+ @noArgs -+ bar() { } -+} -+@allRest -+class B { -+ @allRest + bar() { } + }; + __decorate([ +@@= skipped -12, +13 lines =@@ + noArgs + ], A); + let B = class B { + foo; -+ @allRest -+ bar() { } -+} -+@oneOptional -+class C { -+ @oneOptional + bar() { } + }; + __decorate([ +@@= skipped -12, +13 lines =@@ + allRest + ], B); + let C = class C { + foo; -+ @oneOptional -+ bar() { } -+} -+@twoOptional -+class D { -+ @twoOptional + bar() { } + }; + __decorate([ +@@= skipped -12, +13 lines =@@ + oneOptional + ], C); + let D = class D { + foo; -+ @twoOptional -+ bar() { } -+} -+@threeOptional -+class E { -+ @threeOptional + bar() { } + }; + __decorate([ +@@= skipped -12, +13 lines =@@ + twoOptional + ], D); + let E = class E { + foo; -+ @threeOptional -+ bar() { } -+} -+@oneOptionalWithRest -+class F { -+ @oneOptionalWithRest + bar() { } + }; + __decorate([ +@@= skipped -12, +13 lines =@@ + threeOptional + ], E); + let F = class F { + foo; -+ @oneOptionalWithRest -+ bar() { } -+} -+@anyDec -+class G { -+ @anyDec + bar() { } + }; + __decorate([ +@@= skipped -12, +13 lines =@@ + oneOptionalWithRest + ], F); + let G = class G { + foo; -+ @anyDec -+ bar() { } -+} - export {}; \ No newline at end of file + bar() { } + }; + __decorate([ \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/sourceMapValidationDecorators.js b/testdata/baselines/reference/submodule/compiler/sourceMapValidationDecorators.js index 6e02ab2a72..d8b2bf66ce 100644 --- a/testdata/baselines/reference/submodule/compiler/sourceMapValidationDecorators.js +++ b/testdata/baselines/reference/submodule/compiler/sourceMapValidationDecorators.js @@ -57,34 +57,63 @@ class Greeter { } //// [sourceMapValidationDecorators.js] -@ClassDecorator1 -@ClassDecorator2(10) -class Greeter { +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +let Greeter = class Greeter { greeting; constructor(greeting, ...b) { this.greeting = greeting; } - @PropertyDecorator1 - @PropertyDecorator2(40) greet() { return "

" + this.greeting + "

"; } - @PropertyDecorator1 - @PropertyDecorator2(50) x; - @PropertyDecorator1 - @PropertyDecorator2(60) static x1 = 10; fn(x) { return this.greeting; } - @PropertyDecorator1 - @PropertyDecorator2(80) get greetings() { return this.greeting; } set greetings(greetings) { this.greeting = greetings; } -} +}; +__decorate([ + PropertyDecorator1, + PropertyDecorator2(40) +], Greeter.prototype, "greet", null); +__decorate([ + PropertyDecorator1, + PropertyDecorator2(50) +], Greeter.prototype, "x", void 0); +__decorate([ + __param(0, ParameterDecorator1), + __param(0, ParameterDecorator2(70)) +], Greeter.prototype, "fn", null); +__decorate([ + PropertyDecorator1, + PropertyDecorator2(80), + __param(0, ParameterDecorator1), + __param(0, ParameterDecorator2(90)) +], Greeter.prototype, "greetings", null); +__decorate([ + PropertyDecorator1, + PropertyDecorator2(60) +], Greeter, "x1", void 0); +Greeter = __decorate([ + ClassDecorator1, + ClassDecorator2(10), + __param(0, ParameterDecorator1), + __param(0, ParameterDecorator2(20)), + __param(1, ParameterDecorator1), + __param(1, ParameterDecorator2(30)) +], Greeter); //# sourceMappingURL=sourceMapValidationDecorators.js.map \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/sourceMapValidationDecorators.js.diff b/testdata/baselines/reference/submodule/compiler/sourceMapValidationDecorators.js.diff index ee625c9516..5c0072012f 100644 --- a/testdata/baselines/reference/submodule/compiler/sourceMapValidationDecorators.js.diff +++ b/testdata/baselines/reference/submodule/compiler/sourceMapValidationDecorators.js.diff @@ -1,79 +1,26 @@ --- old.sourceMapValidationDecorators.js +++ new.sourceMapValidationDecorators.js -@@= skipped -56, +56 lines =@@ - } - - //// [sourceMapValidationDecorators.js] --var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { -- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; -- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); -- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; -- return c > 3 && r && Object.defineProperty(target, key, r), r; --}; --var __param = (this && this.__param) || function (paramIndex, decorator) { -- return function (target, key) { decorator(target, key, paramIndex); } --}; --let Greeter = class Greeter { -+@ClassDecorator1 -+@ClassDecorator2(10) -+class Greeter { +@@= skipped -66, +66 lines =@@ + return function (target, key) { decorator(target, key, paramIndex); } + }; + let Greeter = class Greeter { + greeting; constructor(greeting, ...b) { this.greeting = greeting; } -+ @PropertyDecorator1 -+ @PropertyDecorator2(40) greet() { return "

" + this.greeting + "

"; } -+ @PropertyDecorator1 -+ @PropertyDecorator2(50) + x; -+ @PropertyDecorator1 -+ @PropertyDecorator2(60) + static x1 = 10; fn(x) { return this.greeting; } -+ @PropertyDecorator1 -+ @PropertyDecorator2(80) - get greetings() { - return this.greeting; - } - set greetings(greetings) { +@@= skipped -16, +19 lines =@@ this.greeting = greetings; } --}; + }; -Greeter.x1 = 10; --__decorate([ -- PropertyDecorator1, -- PropertyDecorator2(40) --], Greeter.prototype, "greet", null); --__decorate([ -- PropertyDecorator1, -- PropertyDecorator2(50) --], Greeter.prototype, "x", void 0); --__decorate([ -- __param(0, ParameterDecorator1), -- __param(0, ParameterDecorator2(70)) --], Greeter.prototype, "fn", null); --__decorate([ -- PropertyDecorator1, -- PropertyDecorator2(80), -- __param(0, ParameterDecorator1), -- __param(0, ParameterDecorator2(90)) --], Greeter.prototype, "greetings", null); --__decorate([ -- PropertyDecorator1, -- PropertyDecorator2(60) --], Greeter, "x1", void 0); --Greeter = __decorate([ -- ClassDecorator1, -- ClassDecorator2(10), -- __param(0, ParameterDecorator1), -- __param(0, ParameterDecorator2(20)), -- __param(1, ParameterDecorator1), -- __param(1, ParameterDecorator2(30)) --], Greeter); -+} - //# sourceMappingURL=sourceMapValidationDecorators.js.map \ No newline at end of file + __decorate([ + PropertyDecorator1, + PropertyDecorator2(40) \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/sourceMapValidationDecorators.js.map b/testdata/baselines/reference/submodule/compiler/sourceMapValidationDecorators.js.map index 7f22a815d4..35ba1cc7ed 100644 --- a/testdata/baselines/reference/submodule/compiler/sourceMapValidationDecorators.js.map +++ b/testdata/baselines/reference/submodule/compiler/sourceMapValidationDecorators.js.map @@ -1,3 +1,3 @@ //// [sourceMapValidationDecorators.js.map] -{"version":3,"file":"sourceMapValidationDecorators.js","sourceRoot":"","sources":["sourceMapValidationDecorators.ts"],"names":[],"mappings":"AAOA,CAAC,eAAe;CACf,eAAe,CAAC,EAAE,CAAC;MACd,OAAO;IAIA,QAAQ;IAHjB,YAGS,QAAgB,EAIvB,GAAG,CAAW,EAAE;wBAJT,QAAQ;IAIE,CAClB;IAED,CAAC,kBAAkB;KAClB,kBAAkB,CAAC,EAAE,CAAC;IACvB,KAAK,GAAG;QACJ,OAAO,MAAM,GAAG,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;IAAA,CAC3C;IAED,CAAC,kBAAkB;KAClB,kBAAkB,CAAC,EAAE,CAAC;IACf,CAAC,CAAS;IAElB,CAAC,kBAAkB;KAClB,kBAAkB,CAAC,EAAE,CAAC;IACf,MAAM,CAAC,EAAE,GAAW,EAAE,CAAC;IAEvB,EAAE,CAGR,CAAS,EAAE;QACT,OAAO,IAAI,CAAC,QAAQ,CAAC;IAAA,CACxB;IAED,CAAC,kBAAkB;KAClB,kBAAkB,CAAC,EAAE,CAAC;QACnB,SAAS,GAAG;QACZ,OAAO,IAAI,CAAC,QAAQ,CAAC;IAAA,CACxB;IAED,IAAI,SAAS,CAGX,SAAiB,EAAE;QACjB,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC;IAAA,CAC7B;CACJ"} -//// https://sokra.github.io/source-map-visualization#base64,QENsYXNzRGVjb3JhdG9yMQ0KQENsYXNzRGVjb3JhdG9yMigxMCkNCmNsYXNzIEdyZWV0ZXIgew0KICAgIGdyZWV0aW5nOw0KICAgIGNvbnN0cnVjdG9yKGdyZWV0aW5nLCAuLi5iKSB7DQogICAgICAgIHRoaXMuZ3JlZXRpbmcgPSBncmVldGluZzsNCiAgICB9DQogICAgQFByb3BlcnR5RGVjb3JhdG9yMQ0KICAgIEBQcm9wZXJ0eURlY29yYXRvcjIoNDApDQogICAgZ3JlZXQoKSB7DQogICAgICAgIHJldHVybiAiPGgxPiIgKyB0aGlzLmdyZWV0aW5nICsgIjwvaDE+IjsNCiAgICB9DQogICAgQFByb3BlcnR5RGVjb3JhdG9yMQ0KICAgIEBQcm9wZXJ0eURlY29yYXRvcjIoNTApDQogICAgeDsNCiAgICBAUHJvcGVydHlEZWNvcmF0b3IxDQogICAgQFByb3BlcnR5RGVjb3JhdG9yMig2MCkNCiAgICBzdGF0aWMgeDEgPSAxMDsNCiAgICBmbih4KSB7DQogICAgICAgIHJldHVybiB0aGlzLmdyZWV0aW5nOw0KICAgIH0NCiAgICBAUHJvcGVydHlEZWNvcmF0b3IxDQogICAgQFByb3BlcnR5RGVjb3JhdG9yMig4MCkNCiAgICBnZXQgZ3JlZXRpbmdzKCkgew0KICAgICAgICByZXR1cm4gdGhpcy5ncmVldGluZzsNCiAgICB9DQogICAgc2V0IGdyZWV0aW5ncyhncmVldGluZ3MpIHsNCiAgICAgICAgdGhpcy5ncmVldGluZyA9IGdyZWV0aW5nczsNCiAgICB9DQp9DQovLyMgc291cmNlTWFwcGluZ1VSTD1zb3VyY2VNYXBWYWxpZGF0aW9uRGVjb3JhdG9ycy5qcy5tYXA=,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic291cmNlTWFwVmFsaWRhdGlvbkRlY29yYXRvcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJzb3VyY2VNYXBWYWxpZGF0aW9uRGVjb3JhdG9ycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFPQSxDQUFDLGVBQWU7Q0FDZixlQUFlLENBQUMsRUFBRSxDQUFDO01BQ2QsT0FBTztJQUlBLFFBQVE7SUFIakIsWUFHUyxRQUFnQixFQUl2QixHQUFHLENBQVcsRUFBRTt3QkFKVCxRQUFRO0lBSUUsQ0FDbEI7SUFFRCxDQUFDLGtCQUFrQjtLQUNsQixrQkFBa0IsQ0FBQyxFQUFFLENBQUM7SUFDdkIsS0FBSyxHQUFHO1FBQ0osT0FBTyxNQUFNLEdBQUcsSUFBSSxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUM7SUFBQSxDQUMzQztJQUVELENBQUMsa0JBQWtCO0tBQ2xCLGtCQUFrQixDQUFDLEVBQUUsQ0FBQztJQUNmLENBQUMsQ0FBUztJQUVsQixDQUFDLGtCQUFrQjtLQUNsQixrQkFBa0IsQ0FBQyxFQUFFLENBQUM7SUFDZixNQUFNLENBQUMsRUFBRSxHQUFXLEVBQUUsQ0FBQztJQUV2QixFQUFFLENBR1IsQ0FBUyxFQUFFO1FBQ1QsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQUEsQ0FDeEI7SUFFRCxDQUFDLGtCQUFrQjtLQUNsQixrQkFBa0IsQ0FBQyxFQUFFLENBQUM7UUFDbkIsU0FBUyxHQUFHO1FBQ1osT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQUEsQ0FDeEI7SUFFRCxJQUFJLFNBQVMsQ0FHWCxTQUFpQixFQUFFO1FBQ2pCLElBQUksQ0FBQyxRQUFRLEdBQUcsU0FBUyxDQUFDO0lBQUEsQ0FDN0I7Q0FDSiJ9,ZGVjbGFyZSBmdW5jdGlvbiBDbGFzc0RlY29yYXRvcjEodGFyZ2V0OiBGdW5jdGlvbik6IHZvaWQ7CmRlY2xhcmUgZnVuY3Rpb24gQ2xhc3NEZWNvcmF0b3IyKHg6IG51bWJlcik6ICh0YXJnZXQ6IEZ1bmN0aW9uKSA9PiB2b2lkOwpkZWNsYXJlIGZ1bmN0aW9uIFByb3BlcnR5RGVjb3JhdG9yMSh0YXJnZXQ6IE9iamVjdCwga2V5OiBzdHJpbmcgfCBzeW1ib2wsIGRlc2NyaXB0b3I/OiBQcm9wZXJ0eURlc2NyaXB0b3IpOiB2b2lkOwpkZWNsYXJlIGZ1bmN0aW9uIFByb3BlcnR5RGVjb3JhdG9yMih4OiBudW1iZXIpOiAodGFyZ2V0OiBPYmplY3QsIGtleTogc3RyaW5nIHwgc3ltYm9sLCBkZXNjcmlwdG9yPzogUHJvcGVydHlEZXNjcmlwdG9yKSA9PiB2b2lkOwpkZWNsYXJlIGZ1bmN0aW9uIFBhcmFtZXRlckRlY29yYXRvcjEodGFyZ2V0OiBPYmplY3QsIGtleTogc3RyaW5nIHwgc3ltYm9sLCBwYXJhbUluZGV4OiBudW1iZXIpOiB2b2lkOwpkZWNsYXJlIGZ1bmN0aW9uIFBhcmFtZXRlckRlY29yYXRvcjIoeDogbnVtYmVyKTogKHRhcmdldDogT2JqZWN0LCBrZXk6IHN0cmluZyB8IHN5bWJvbCwgcGFyYW1JbmRleDogbnVtYmVyKSA9PiB2b2lkOwoKQENsYXNzRGVjb3JhdG9yMQpAQ2xhc3NEZWNvcmF0b3IyKDEwKQpjbGFzcyBHcmVldGVyIHsKICAgIGNvbnN0cnVjdG9yKAogICAgICBAUGFyYW1ldGVyRGVjb3JhdG9yMSAKICAgICAgQFBhcmFtZXRlckRlY29yYXRvcjIoMjApIAogICAgICBwdWJsaWMgZ3JlZXRpbmc6IHN0cmluZywgCiAgICAgIAogICAgICBAUGFyYW1ldGVyRGVjb3JhdG9yMSAKICAgICAgQFBhcmFtZXRlckRlY29yYXRvcjIoMzApIAogICAgICAuLi5iOiBzdHJpbmdbXSkgewogICAgfQogICAgCiAgICBAUHJvcGVydHlEZWNvcmF0b3IxCiAgICBAUHJvcGVydHlEZWNvcmF0b3IyKDQwKQogICAgZ3JlZXQoKSB7CiAgICAgICAgcmV0dXJuICI8aDE+IiArIHRoaXMuZ3JlZXRpbmcgKyAiPC9oMT4iOwogICAgfQoKICAgIEBQcm9wZXJ0eURlY29yYXRvcjEKICAgIEBQcm9wZXJ0eURlY29yYXRvcjIoNTApCiAgICBwcml2YXRlIHg6IHN0cmluZzsKCiAgICBAUHJvcGVydHlEZWNvcmF0b3IxCiAgICBAUHJvcGVydHlEZWNvcmF0b3IyKDYwKQogICAgcHJpdmF0ZSBzdGF0aWMgeDE6IG51bWJlciA9IDEwOwogICAgCiAgICBwcml2YXRlIGZuKAogICAgICBAUGFyYW1ldGVyRGVjb3JhdG9yMSAKICAgICAgQFBhcmFtZXRlckRlY29yYXRvcjIoNzApIAogICAgICB4OiBudW1iZXIpIHsKICAgICAgICByZXR1cm4gdGhpcy5ncmVldGluZzsKICAgIH0KCiAgICBAUHJvcGVydHlEZWNvcmF0b3IxCiAgICBAUHJvcGVydHlEZWNvcmF0b3IyKDgwKQogICAgZ2V0IGdyZWV0aW5ncygpIHsKICAgICAgICByZXR1cm4gdGhpcy5ncmVldGluZzsKICAgIH0KCiAgICBzZXQgZ3JlZXRpbmdzKAogICAgICBAUGFyYW1ldGVyRGVjb3JhdG9yMSAKICAgICAgQFBhcmFtZXRlckRlY29yYXRvcjIoOTApIAogICAgICBncmVldGluZ3M6IHN0cmluZykgewogICAgICAgIHRoaXMuZ3JlZXRpbmcgPSBncmVldGluZ3M7CiAgICB9ICAgIAp9 +{"version":3,"file":"sourceMapValidationDecorators.js","sourceRoot":"","sources":["sourceMapValidationDecorators.ts"],"names":[],"mappings":";;;;;;;;;AAQA,IACM,OAAO,GADb,MACM,OAAO;IAIA,QAAQ;IAHjB,YAGS,QAAgB,EAIvB,GAAG,CAAW,EAAE;wBAJT,QAAQ;IAIE,CAClB;IAID,KAAK,GAAG;QACJ,OAAO,MAAM,GAAG,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;IAAA,CAC3C;IAIO,CAAC,CAAS;IAIH,AAAP,MAAM,CAAC,EAAE,GAAW,EAAE,CAAC;IAEvB,EAAE,CAGR,CAAS,EAAE;QACT,OAAO,IAAI,CAAC,QAAQ,CAAC;IAAA,CACxB;IAGD,IACI,SAAS,GAAG;QACZ,OAAO,IAAI,CAAC,QAAQ,CAAC;IAAA,CACxB;IAED,IAAI,SAAS,CAGX,SAAiB,EAAE;QACjB,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC;IAAA,CAC7B;CACJ,CAAA;AA/BG;IAFC,kBAAkB;IAClB,kBAAkB,CAAC,EAAE,CAAC;oCAGtB;AAIO;IAFP,kBAAkB;IAClB,kBAAkB,CAAC,EAAE,CAAC;kCACL;AAMV;IACL,WAAA,mBAAmB,CAAA;IACnB,WAAA,mBAAmB,CAAC,EAAE,CAAC,CAAA;iCAGzB;AAGD;IADC,kBAAkB;IAClB,kBAAkB,CAAC,EAAE,CAAC;IAMpB,WAAA,mBAAmB,CAAA;IACnB,WAAA,mBAAmB,CAAC,EAAE,CAAC,CAAA;wCAJzB;AAbc;IAFd,kBAAkB;IAClB,kBAAkB,CAAC,EAAE,CAAC;yBACQ;AAvB7B,OAAO;IAFZ,eAAe;IACf,eAAe,CAAC,EAAE,CAAC;IAGb,WAAA,mBAAmB,CAAA;IACnB,WAAA,mBAAmB,CAAC,EAAE,CAAC,CAAA;IAGvB,WAAA,mBAAmB,CAAA;IACnB,WAAA,mBAAmB,CAAC,EAAE,CAAC,CAAA;GAPxB,OAAO,CA4CZ"} +//// https://sokra.github.io/source-map-visualization#base64,dmFyIF9fZGVjb3JhdGUgPSAodGhpcyAmJiB0aGlzLl9fZGVjb3JhdGUpIHx8IGZ1bmN0aW9uIChkZWNvcmF0b3JzLCB0YXJnZXQsIGtleSwgZGVzYykgew0KICAgIHZhciBjID0gYXJndW1lbnRzLmxlbmd0aCwgciA9IGMgPCAzID8gdGFyZ2V0IDogZGVzYyA9PT0gbnVsbCA/IGRlc2MgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHRhcmdldCwga2V5KSA6IGRlc2MsIGQ7DQogICAgaWYgKHR5cGVvZiBSZWZsZWN0ID09PSAib2JqZWN0IiAmJiB0eXBlb2YgUmVmbGVjdC5kZWNvcmF0ZSA9PT0gImZ1bmN0aW9uIikgciA9IFJlZmxlY3QuZGVjb3JhdGUoZGVjb3JhdG9ycywgdGFyZ2V0LCBrZXksIGRlc2MpOw0KICAgIGVsc2UgZm9yICh2YXIgaSA9IGRlY29yYXRvcnMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIGlmIChkID0gZGVjb3JhdG9yc1tpXSkgciA9IChjIDwgMyA/IGQocikgOiBjID4gMyA/IGQodGFyZ2V0LCBrZXksIHIpIDogZCh0YXJnZXQsIGtleSkpIHx8IHI7DQogICAgcmV0dXJuIGMgPiAzICYmIHIgJiYgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwga2V5LCByKSwgcjsNCn07DQp2YXIgX19wYXJhbSA9ICh0aGlzICYmIHRoaXMuX19wYXJhbSkgfHwgZnVuY3Rpb24gKHBhcmFtSW5kZXgsIGRlY29yYXRvcikgew0KICAgIHJldHVybiBmdW5jdGlvbiAodGFyZ2V0LCBrZXkpIHsgZGVjb3JhdG9yKHRhcmdldCwga2V5LCBwYXJhbUluZGV4KTsgfQ0KfTsNCmxldCBHcmVldGVyID0gY2xhc3MgR3JlZXRlciB7DQogICAgZ3JlZXRpbmc7DQogICAgY29uc3RydWN0b3IoZ3JlZXRpbmcsIC4uLmIpIHsNCiAgICAgICAgdGhpcy5ncmVldGluZyA9IGdyZWV0aW5nOw0KICAgIH0NCiAgICBncmVldCgpIHsNCiAgICAgICAgcmV0dXJuICI8aDE+IiArIHRoaXMuZ3JlZXRpbmcgKyAiPC9oMT4iOw0KICAgIH0NCiAgICB4Ow0KICAgIHN0YXRpYyB4MSA9IDEwOw0KICAgIGZuKHgpIHsNCiAgICAgICAgcmV0dXJuIHRoaXMuZ3JlZXRpbmc7DQogICAgfQ0KICAgIGdldCBncmVldGluZ3MoKSB7DQogICAgICAgIHJldHVybiB0aGlzLmdyZWV0aW5nOw0KICAgIH0NCiAgICBzZXQgZ3JlZXRpbmdzKGdyZWV0aW5ncykgew0KICAgICAgICB0aGlzLmdyZWV0aW5nID0gZ3JlZXRpbmdzOw0KICAgIH0NCn07DQpfX2RlY29yYXRlKFsNCiAgICBQcm9wZXJ0eURlY29yYXRvcjEsDQogICAgUHJvcGVydHlEZWNvcmF0b3IyKDQwKQ0KXSwgR3JlZXRlci5wcm90b3R5cGUsICJncmVldCIsIG51bGwpOw0KX19kZWNvcmF0ZShbDQogICAgUHJvcGVydHlEZWNvcmF0b3IxLA0KICAgIFByb3BlcnR5RGVjb3JhdG9yMig1MCkNCl0sIEdyZWV0ZXIucHJvdG90eXBlLCAieCIsIHZvaWQgMCk7DQpfX2RlY29yYXRlKFsNCiAgICBfX3BhcmFtKDAsIFBhcmFtZXRlckRlY29yYXRvcjEpLA0KICAgIF9fcGFyYW0oMCwgUGFyYW1ldGVyRGVjb3JhdG9yMig3MCkpDQpdLCBHcmVldGVyLnByb3RvdHlwZSwgImZuIiwgbnVsbCk7DQpfX2RlY29yYXRlKFsNCiAgICBQcm9wZXJ0eURlY29yYXRvcjEsDQogICAgUHJvcGVydHlEZWNvcmF0b3IyKDgwKSwNCiAgICBfX3BhcmFtKDAsIFBhcmFtZXRlckRlY29yYXRvcjEpLA0KICAgIF9fcGFyYW0oMCwgUGFyYW1ldGVyRGVjb3JhdG9yMig5MCkpDQpdLCBHcmVldGVyLnByb3RvdHlwZSwgImdyZWV0aW5ncyIsIG51bGwpOw0KX19kZWNvcmF0ZShbDQogICAgUHJvcGVydHlEZWNvcmF0b3IxLA0KICAgIFByb3BlcnR5RGVjb3JhdG9yMig2MCkNCl0sIEdyZWV0ZXIsICJ4MSIsIHZvaWQgMCk7DQpHcmVldGVyID0gX19kZWNvcmF0ZShbDQogICAgQ2xhc3NEZWNvcmF0b3IxLA0KICAgIENsYXNzRGVjb3JhdG9yMigxMCksDQogICAgX19wYXJhbSgwLCBQYXJhbWV0ZXJEZWNvcmF0b3IxKSwNCiAgICBfX3BhcmFtKDAsIFBhcmFtZXRlckRlY29yYXRvcjIoMjApKSwNCiAgICBfX3BhcmFtKDEsIFBhcmFtZXRlckRlY29yYXRvcjEpLA0KICAgIF9fcGFyYW0oMSwgUGFyYW1ldGVyRGVjb3JhdG9yMigzMCkpDQpdLCBHcmVldGVyKTsNCi8vIyBzb3VyY2VNYXBwaW5nVVJMPXNvdXJjZU1hcFZhbGlkYXRpb25EZWNvcmF0b3JzLmpzLm1hcA==,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic291cmNlTWFwVmFsaWRhdGlvbkRlY29yYXRvcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJzb3VyY2VNYXBWYWxpZGF0aW9uRGVjb3JhdG9ycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFRQSxJQUNNLE9BQU8sR0FEYixNQUNNLE9BQU87SUFJQSxRQUFRO0lBSGpCLFlBR1MsUUFBZ0IsRUFJdkIsR0FBRyxDQUFXLEVBQUU7d0JBSlQsUUFBUTtJQUlFLENBQ2xCO0lBSUQsS0FBSyxHQUFHO1FBQ0osT0FBTyxNQUFNLEdBQUcsSUFBSSxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUM7SUFBQSxDQUMzQztJQUlPLENBQUMsQ0FBUztJQUlILEFBQVAsTUFBTSxDQUFDLEVBQUUsR0FBVyxFQUFFLENBQUM7SUFFdkIsRUFBRSxDQUdSLENBQVMsRUFBRTtRQUNULE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUFBLENBQ3hCO0lBR0QsSUFDSSxTQUFTLEdBQUc7UUFDWixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFBQSxDQUN4QjtJQUVELElBQUksU0FBUyxDQUdYLFNBQWlCLEVBQUU7UUFDakIsSUFBSSxDQUFDLFFBQVEsR0FBRyxTQUFTLENBQUM7SUFBQSxDQUM3QjtDQUNKLENBQUE7QUEvQkc7SUFGQyxrQkFBa0I7SUFDbEIsa0JBQWtCLENBQUMsRUFBRSxDQUFDO29DQUd0QjtBQUlPO0lBRlAsa0JBQWtCO0lBQ2xCLGtCQUFrQixDQUFDLEVBQUUsQ0FBQztrQ0FDTDtBQU1WO0lBQ0wsV0FBQSxtQkFBbUIsQ0FBQTtJQUNuQixXQUFBLG1CQUFtQixDQUFDLEVBQUUsQ0FBQyxDQUFBO2lDQUd6QjtBQUdEO0lBREMsa0JBQWtCO0lBQ2xCLGtCQUFrQixDQUFDLEVBQUUsQ0FBQztJQU1wQixXQUFBLG1CQUFtQixDQUFBO0lBQ25CLFdBQUEsbUJBQW1CLENBQUMsRUFBRSxDQUFDLENBQUE7d0NBSnpCO0FBYmM7SUFGZCxrQkFBa0I7SUFDbEIsa0JBQWtCLENBQUMsRUFBRSxDQUFDO3lCQUNRO0FBdkI3QixPQUFPO0lBRlosZUFBZTtJQUNmLGVBQWUsQ0FBQyxFQUFFLENBQUM7SUFHYixXQUFBLG1CQUFtQixDQUFBO0lBQ25CLFdBQUEsbUJBQW1CLENBQUMsRUFBRSxDQUFDLENBQUE7SUFHdkIsV0FBQSxtQkFBbUIsQ0FBQTtJQUNuQixXQUFBLG1CQUFtQixDQUFDLEVBQUUsQ0FBQyxDQUFBO0dBUHhCLE9BQU8sQ0E0Q1oifQ==,ZGVjbGFyZSBmdW5jdGlvbiBDbGFzc0RlY29yYXRvcjEodGFyZ2V0OiBGdW5jdGlvbik6IHZvaWQ7CmRlY2xhcmUgZnVuY3Rpb24gQ2xhc3NEZWNvcmF0b3IyKHg6IG51bWJlcik6ICh0YXJnZXQ6IEZ1bmN0aW9uKSA9PiB2b2lkOwpkZWNsYXJlIGZ1bmN0aW9uIFByb3BlcnR5RGVjb3JhdG9yMSh0YXJnZXQ6IE9iamVjdCwga2V5OiBzdHJpbmcgfCBzeW1ib2wsIGRlc2NyaXB0b3I/OiBQcm9wZXJ0eURlc2NyaXB0b3IpOiB2b2lkOwpkZWNsYXJlIGZ1bmN0aW9uIFByb3BlcnR5RGVjb3JhdG9yMih4OiBudW1iZXIpOiAodGFyZ2V0OiBPYmplY3QsIGtleTogc3RyaW5nIHwgc3ltYm9sLCBkZXNjcmlwdG9yPzogUHJvcGVydHlEZXNjcmlwdG9yKSA9PiB2b2lkOwpkZWNsYXJlIGZ1bmN0aW9uIFBhcmFtZXRlckRlY29yYXRvcjEodGFyZ2V0OiBPYmplY3QsIGtleTogc3RyaW5nIHwgc3ltYm9sLCBwYXJhbUluZGV4OiBudW1iZXIpOiB2b2lkOwpkZWNsYXJlIGZ1bmN0aW9uIFBhcmFtZXRlckRlY29yYXRvcjIoeDogbnVtYmVyKTogKHRhcmdldDogT2JqZWN0LCBrZXk6IHN0cmluZyB8IHN5bWJvbCwgcGFyYW1JbmRleDogbnVtYmVyKSA9PiB2b2lkOwoKQENsYXNzRGVjb3JhdG9yMQpAQ2xhc3NEZWNvcmF0b3IyKDEwKQpjbGFzcyBHcmVldGVyIHsKICAgIGNvbnN0cnVjdG9yKAogICAgICBAUGFyYW1ldGVyRGVjb3JhdG9yMSAKICAgICAgQFBhcmFtZXRlckRlY29yYXRvcjIoMjApIAogICAgICBwdWJsaWMgZ3JlZXRpbmc6IHN0cmluZywgCiAgICAgIAogICAgICBAUGFyYW1ldGVyRGVjb3JhdG9yMSAKICAgICAgQFBhcmFtZXRlckRlY29yYXRvcjIoMzApIAogICAgICAuLi5iOiBzdHJpbmdbXSkgewogICAgfQogICAgCiAgICBAUHJvcGVydHlEZWNvcmF0b3IxCiAgICBAUHJvcGVydHlEZWNvcmF0b3IyKDQwKQogICAgZ3JlZXQoKSB7CiAgICAgICAgcmV0dXJuICI8aDE+IiArIHRoaXMuZ3JlZXRpbmcgKyAiPC9oMT4iOwogICAgfQoKICAgIEBQcm9wZXJ0eURlY29yYXRvcjEKICAgIEBQcm9wZXJ0eURlY29yYXRvcjIoNTApCiAgICBwcml2YXRlIHg6IHN0cmluZzsKCiAgICBAUHJvcGVydHlEZWNvcmF0b3IxCiAgICBAUHJvcGVydHlEZWNvcmF0b3IyKDYwKQogICAgcHJpdmF0ZSBzdGF0aWMgeDE6IG51bWJlciA9IDEwOwogICAgCiAgICBwcml2YXRlIGZuKAogICAgICBAUGFyYW1ldGVyRGVjb3JhdG9yMSAKICAgICAgQFBhcmFtZXRlckRlY29yYXRvcjIoNzApIAogICAgICB4OiBudW1iZXIpIHsKICAgICAgICByZXR1cm4gdGhpcy5ncmVldGluZzsKICAgIH0KCiAgICBAUHJvcGVydHlEZWNvcmF0b3IxCiAgICBAUHJvcGVydHlEZWNvcmF0b3IyKDgwKQogICAgZ2V0IGdyZWV0aW5ncygpIHsKICAgICAgICByZXR1cm4gdGhpcy5ncmVldGluZzsKICAgIH0KCiAgICBzZXQgZ3JlZXRpbmdzKAogICAgICBAUGFyYW1ldGVyRGVjb3JhdG9yMSAKICAgICAgQFBhcmFtZXRlckRlY29yYXRvcjIoOTApIAogICAgICBncmVldGluZ3M6IHN0cmluZykgewogICAgICAgIHRoaXMuZ3JlZXRpbmcgPSBncmVldGluZ3M7CiAgICB9ICAgIAp9 diff --git a/testdata/baselines/reference/submodule/compiler/sourceMapValidationDecorators.js.map.diff b/testdata/baselines/reference/submodule/compiler/sourceMapValidationDecorators.js.map.diff index 52d5e03bf1..4112387e21 100644 --- a/testdata/baselines/reference/submodule/compiler/sourceMapValidationDecorators.js.map.diff +++ b/testdata/baselines/reference/submodule/compiler/sourceMapValidationDecorators.js.map.diff @@ -4,5 +4,5 @@ //// [sourceMapValidationDecorators.js.map] -{"version":3,"file":"sourceMapValidationDecorators.js","sourceRoot":"","sources":["sourceMapValidationDecorators.ts"],"names":[],"mappings":";;;;;;;;;AASA,IAAM,OAAO,GAAb,MAAM,OAAO;IACT,YAGS,QAAgB,EAIvB,GAAG,CAAW;QAJP,aAAQ,GAAR,QAAQ,CAAQ;IAKzB,CAAC;IAID,KAAK;QACD,OAAO,MAAM,GAAG,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;IAC5C,CAAC;IAUO,EAAE,CAGR,CAAS;QACP,OAAO,IAAI,CAAC,QAAQ,CAAC;IACzB,CAAC;IAID,IAAI,SAAS;QACT,OAAO,IAAI,CAAC,QAAQ,CAAC;IACzB,CAAC;IAED,IAAI,SAAS,CAGX,SAAiB;QACf,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC;IAC9B,CAAC;;AApBc,UAAE,GAAW,EAAE,AAAb,CAAc;AAV/B;IAFC,kBAAkB;IAClB,kBAAkB,CAAC,EAAE,CAAC;oCAGtB;AAIO;IAFP,kBAAkB;IAClB,kBAAkB,CAAC,EAAE,CAAC;kCACL;AAMV;IACL,WAAA,mBAAmB,CAAA;IACnB,WAAA,mBAAmB,CAAC,EAAE,CAAC,CAAA;iCAGzB;AAID;IAFC,kBAAkB;IAClB,kBAAkB,CAAC,EAAE,CAAC;IAMpB,WAAA,mBAAmB,CAAA;IACnB,WAAA,mBAAmB,CAAC,EAAE,CAAC,CAAA;wCAJzB;AAbc;IAFd,kBAAkB;IAClB,kBAAkB,CAAC,EAAE,CAAC;yBACQ;AAvB7B,OAAO;IAFZ,eAAe;IACf,eAAe,CAAC,EAAE,CAAC;IAGb,WAAA,mBAAmB,CAAA;IACnB,WAAA,mBAAmB,CAAC,EAAE,CAAC,CAAA;IAGvB,WAAA,mBAAmB,CAAA;IACnB,WAAA,mBAAmB,CAAC,EAAE,CAAC,CAAA;GAPxB,OAAO,CA4CZ"} -//// https://sokra.github.io/source-map-visualization#base64,dmFyIF9fZGVjb3JhdGUgPSAodGhpcyAmJiB0aGlzLl9fZGVjb3JhdGUpIHx8IGZ1bmN0aW9uIChkZWNvcmF0b3JzLCB0YXJnZXQsIGtleSwgZGVzYykgew0KICAgIHZhciBjID0gYXJndW1lbnRzLmxlbmd0aCwgciA9IGMgPCAzID8gdGFyZ2V0IDogZGVzYyA9PT0gbnVsbCA/IGRlc2MgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHRhcmdldCwga2V5KSA6IGRlc2MsIGQ7DQogICAgaWYgKHR5cGVvZiBSZWZsZWN0ID09PSAib2JqZWN0IiAmJiB0eXBlb2YgUmVmbGVjdC5kZWNvcmF0ZSA9PT0gImZ1bmN0aW9uIikgciA9IFJlZmxlY3QuZGVjb3JhdGUoZGVjb3JhdG9ycywgdGFyZ2V0LCBrZXksIGRlc2MpOw0KICAgIGVsc2UgZm9yICh2YXIgaSA9IGRlY29yYXRvcnMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIGlmIChkID0gZGVjb3JhdG9yc1tpXSkgciA9IChjIDwgMyA/IGQocikgOiBjID4gMyA/IGQodGFyZ2V0LCBrZXksIHIpIDogZCh0YXJnZXQsIGtleSkpIHx8IHI7DQogICAgcmV0dXJuIGMgPiAzICYmIHIgJiYgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwga2V5LCByKSwgcjsNCn07DQp2YXIgX19wYXJhbSA9ICh0aGlzICYmIHRoaXMuX19wYXJhbSkgfHwgZnVuY3Rpb24gKHBhcmFtSW5kZXgsIGRlY29yYXRvcikgew0KICAgIHJldHVybiBmdW5jdGlvbiAodGFyZ2V0LCBrZXkpIHsgZGVjb3JhdG9yKHRhcmdldCwga2V5LCBwYXJhbUluZGV4KTsgfQ0KfTsNCmxldCBHcmVldGVyID0gY2xhc3MgR3JlZXRlciB7DQogICAgY29uc3RydWN0b3IoZ3JlZXRpbmcsIC4uLmIpIHsNCiAgICAgICAgdGhpcy5ncmVldGluZyA9IGdyZWV0aW5nOw0KICAgIH0NCiAgICBncmVldCgpIHsNCiAgICAgICAgcmV0dXJuICI8aDE+IiArIHRoaXMuZ3JlZXRpbmcgKyAiPC9oMT4iOw0KICAgIH0NCiAgICBmbih4KSB7DQogICAgICAgIHJldHVybiB0aGlzLmdyZWV0aW5nOw0KICAgIH0NCiAgICBnZXQgZ3JlZXRpbmdzKCkgew0KICAgICAgICByZXR1cm4gdGhpcy5ncmVldGluZzsNCiAgICB9DQogICAgc2V0IGdyZWV0aW5ncyhncmVldGluZ3MpIHsNCiAgICAgICAgdGhpcy5ncmVldGluZyA9IGdyZWV0aW5nczsNCiAgICB9DQp9Ow0KR3JlZXRlci54MSA9IDEwOw0KX19kZWNvcmF0ZShbDQogICAgUHJvcGVydHlEZWNvcmF0b3IxLA0KICAgIFByb3BlcnR5RGVjb3JhdG9yMig0MCkNCl0sIEdyZWV0ZXIucHJvdG90eXBlLCAiZ3JlZXQiLCBudWxsKTsNCl9fZGVjb3JhdGUoWw0KICAgIFByb3BlcnR5RGVjb3JhdG9yMSwNCiAgICBQcm9wZXJ0eURlY29yYXRvcjIoNTApDQpdLCBHcmVldGVyLnByb3RvdHlwZSwgIngiLCB2b2lkIDApOw0KX19kZWNvcmF0ZShbDQogICAgX19wYXJhbSgwLCBQYXJhbWV0ZXJEZWNvcmF0b3IxKSwNCiAgICBfX3BhcmFtKDAsIFBhcmFtZXRlckRlY29yYXRvcjIoNzApKQ0KXSwgR3JlZXRlci5wcm90b3R5cGUsICJmbiIsIG51bGwpOw0KX19kZWNvcmF0ZShbDQogICAgUHJvcGVydHlEZWNvcmF0b3IxLA0KICAgIFByb3BlcnR5RGVjb3JhdG9yMig4MCksDQogICAgX19wYXJhbSgwLCBQYXJhbWV0ZXJEZWNvcmF0b3IxKSwNCiAgICBfX3BhcmFtKDAsIFBhcmFtZXRlckRlY29yYXRvcjIoOTApKQ0KXSwgR3JlZXRlci5wcm90b3R5cGUsICJncmVldGluZ3MiLCBudWxsKTsNCl9fZGVjb3JhdGUoWw0KICAgIFByb3BlcnR5RGVjb3JhdG9yMSwNCiAgICBQcm9wZXJ0eURlY29yYXRvcjIoNjApDQpdLCBHcmVldGVyLCAieDEiLCB2b2lkIDApOw0KR3JlZXRlciA9IF9fZGVjb3JhdGUoWw0KICAgIENsYXNzRGVjb3JhdG9yMSwNCiAgICBDbGFzc0RlY29yYXRvcjIoMTApLA0KICAgIF9fcGFyYW0oMCwgUGFyYW1ldGVyRGVjb3JhdG9yMSksDQogICAgX19wYXJhbSgwLCBQYXJhbWV0ZXJEZWNvcmF0b3IyKDIwKSksDQogICAgX19wYXJhbSgxLCBQYXJhbWV0ZXJEZWNvcmF0b3IxKSwNCiAgICBfX3BhcmFtKDEsIFBhcmFtZXRlckRlY29yYXRvcjIoMzApKQ0KXSwgR3JlZXRlcik7DQovLyMgc291cmNlTWFwcGluZ1VSTD1zb3VyY2VNYXBWYWxpZGF0aW9uRGVjb3JhdG9ycy5qcy5tYXA=,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic291cmNlTWFwVmFsaWRhdGlvbkRlY29yYXRvcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJzb3VyY2VNYXBWYWxpZGF0aW9uRGVjb3JhdG9ycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFTQSxJQUFNLE9BQU8sR0FBYixNQUFNLE9BQU87SUFDVCxZQUdTLFFBQWdCLEVBSXZCLEdBQUcsQ0FBVztRQUpQLGFBQVEsR0FBUixRQUFRLENBQVE7SUFLekIsQ0FBQztJQUlELEtBQUs7UUFDRCxPQUFPLE1BQU0sR0FBRyxJQUFJLENBQUMsUUFBUSxHQUFHLE9BQU8sQ0FBQztJQUM1QyxDQUFDO0lBVU8sRUFBRSxDQUdSLENBQVM7UUFDUCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDekIsQ0FBQztJQUlELElBQUksU0FBUztRQUNULE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN6QixDQUFDO0lBRUQsSUFBSSxTQUFTLENBR1gsU0FBaUI7UUFDZixJQUFJLENBQUMsUUFBUSxHQUFHLFNBQVMsQ0FBQztJQUM5QixDQUFDOztBQXBCYyxVQUFFLEdBQVcsRUFBRSxBQUFiLENBQWM7QUFWL0I7SUFGQyxrQkFBa0I7SUFDbEIsa0JBQWtCLENBQUMsRUFBRSxDQUFDO29DQUd0QjtBQUlPO0lBRlAsa0JBQWtCO0lBQ2xCLGtCQUFrQixDQUFDLEVBQUUsQ0FBQztrQ0FDTDtBQU1WO0lBQ0wsV0FBQSxtQkFBbUIsQ0FBQTtJQUNuQixXQUFBLG1CQUFtQixDQUFDLEVBQUUsQ0FBQyxDQUFBO2lDQUd6QjtBQUlEO0lBRkMsa0JBQWtCO0lBQ2xCLGtCQUFrQixDQUFDLEVBQUUsQ0FBQztJQU1wQixXQUFBLG1CQUFtQixDQUFBO0lBQ25CLFdBQUEsbUJBQW1CLENBQUMsRUFBRSxDQUFDLENBQUE7d0NBSnpCO0FBYmM7SUFGZCxrQkFBa0I7SUFDbEIsa0JBQWtCLENBQUMsRUFBRSxDQUFDO3lCQUNRO0FBdkI3QixPQUFPO0lBRlosZUFBZTtJQUNmLGVBQWUsQ0FBQyxFQUFFLENBQUM7SUFHYixXQUFBLG1CQUFtQixDQUFBO0lBQ25CLFdBQUEsbUJBQW1CLENBQUMsRUFBRSxDQUFDLENBQUE7SUFHdkIsV0FBQSxtQkFBbUIsQ0FBQTtJQUNuQixXQUFBLG1CQUFtQixDQUFDLEVBQUUsQ0FBQyxDQUFBO0dBUHhCLE9BQU8sQ0E0Q1oifQ==,ZGVjbGFyZSBmdW5jdGlvbiBDbGFzc0RlY29yYXRvcjEodGFyZ2V0OiBGdW5jdGlvbik6IHZvaWQ7CmRlY2xhcmUgZnVuY3Rpb24gQ2xhc3NEZWNvcmF0b3IyKHg6IG51bWJlcik6ICh0YXJnZXQ6IEZ1bmN0aW9uKSA9PiB2b2lkOwpkZWNsYXJlIGZ1bmN0aW9uIFByb3BlcnR5RGVjb3JhdG9yMSh0YXJnZXQ6IE9iamVjdCwga2V5OiBzdHJpbmcgfCBzeW1ib2wsIGRlc2NyaXB0b3I/OiBQcm9wZXJ0eURlc2NyaXB0b3IpOiB2b2lkOwpkZWNsYXJlIGZ1bmN0aW9uIFByb3BlcnR5RGVjb3JhdG9yMih4OiBudW1iZXIpOiAodGFyZ2V0OiBPYmplY3QsIGtleTogc3RyaW5nIHwgc3ltYm9sLCBkZXNjcmlwdG9yPzogUHJvcGVydHlEZXNjcmlwdG9yKSA9PiB2b2lkOwpkZWNsYXJlIGZ1bmN0aW9uIFBhcmFtZXRlckRlY29yYXRvcjEodGFyZ2V0OiBPYmplY3QsIGtleTogc3RyaW5nIHwgc3ltYm9sLCBwYXJhbUluZGV4OiBudW1iZXIpOiB2b2lkOwpkZWNsYXJlIGZ1bmN0aW9uIFBhcmFtZXRlckRlY29yYXRvcjIoeDogbnVtYmVyKTogKHRhcmdldDogT2JqZWN0LCBrZXk6IHN0cmluZyB8IHN5bWJvbCwgcGFyYW1JbmRleDogbnVtYmVyKSA9PiB2b2lkOwoKQENsYXNzRGVjb3JhdG9yMQpAQ2xhc3NEZWNvcmF0b3IyKDEwKQpjbGFzcyBHcmVldGVyIHsKICAgIGNvbnN0cnVjdG9yKAogICAgICBAUGFyYW1ldGVyRGVjb3JhdG9yMSAKICAgICAgQFBhcmFtZXRlckRlY29yYXRvcjIoMjApIAogICAgICBwdWJsaWMgZ3JlZXRpbmc6IHN0cmluZywgCiAgICAgIAogICAgICBAUGFyYW1ldGVyRGVjb3JhdG9yMSAKICAgICAgQFBhcmFtZXRlckRlY29yYXRvcjIoMzApIAogICAgICAuLi5iOiBzdHJpbmdbXSkgewogICAgfQogICAgCiAgICBAUHJvcGVydHlEZWNvcmF0b3IxCiAgICBAUHJvcGVydHlEZWNvcmF0b3IyKDQwKQogICAgZ3JlZXQoKSB7CiAgICAgICAgcmV0dXJuICI8aDE+IiArIHRoaXMuZ3JlZXRpbmcgKyAiPC9oMT4iOwogICAgfQoKICAgIEBQcm9wZXJ0eURlY29yYXRvcjEKICAgIEBQcm9wZXJ0eURlY29yYXRvcjIoNTApCiAgICBwcml2YXRlIHg6IHN0cmluZzsKCiAgICBAUHJvcGVydHlEZWNvcmF0b3IxCiAgICBAUHJvcGVydHlEZWNvcmF0b3IyKDYwKQogICAgcHJpdmF0ZSBzdGF0aWMgeDE6IG51bWJlciA9IDEwOwogICAgCiAgICBwcml2YXRlIGZuKAogICAgICBAUGFyYW1ldGVyRGVjb3JhdG9yMSAKICAgICAgQFBhcmFtZXRlckRlY29yYXRvcjIoNzApIAogICAgICB4OiBudW1iZXIpIHsKICAgICAgICByZXR1cm4gdGhpcy5ncmVldGluZzsKICAgIH0KCiAgICBAUHJvcGVydHlEZWNvcmF0b3IxCiAgICBAUHJvcGVydHlEZWNvcmF0b3IyKDgwKQogICAgZ2V0IGdyZWV0aW5ncygpIHsKICAgICAgICByZXR1cm4gdGhpcy5ncmVldGluZzsKICAgIH0KCiAgICBzZXQgZ3JlZXRpbmdzKAogICAgICBAUGFyYW1ldGVyRGVjb3JhdG9yMSAKICAgICAgQFBhcmFtZXRlckRlY29yYXRvcjIoOTApIAogICAgICBncmVldGluZ3M6IHN0cmluZykgewogICAgICAgIHRoaXMuZ3JlZXRpbmcgPSBncmVldGluZ3M7CiAgICB9ICAgIAp9 -+{"version":3,"file":"sourceMapValidationDecorators.js","sourceRoot":"","sources":["sourceMapValidationDecorators.ts"],"names":[],"mappings":"AAOA,CAAC,eAAe;CACf,eAAe,CAAC,EAAE,CAAC;MACd,OAAO;IAIA,QAAQ;IAHjB,YAGS,QAAgB,EAIvB,GAAG,CAAW,EAAE;wBAJT,QAAQ;IAIE,CAClB;IAED,CAAC,kBAAkB;KAClB,kBAAkB,CAAC,EAAE,CAAC;IACvB,KAAK,GAAG;QACJ,OAAO,MAAM,GAAG,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;IAAA,CAC3C;IAED,CAAC,kBAAkB;KAClB,kBAAkB,CAAC,EAAE,CAAC;IACf,CAAC,CAAS;IAElB,CAAC,kBAAkB;KAClB,kBAAkB,CAAC,EAAE,CAAC;IACf,MAAM,CAAC,EAAE,GAAW,EAAE,CAAC;IAEvB,EAAE,CAGR,CAAS,EAAE;QACT,OAAO,IAAI,CAAC,QAAQ,CAAC;IAAA,CACxB;IAED,CAAC,kBAAkB;KAClB,kBAAkB,CAAC,EAAE,CAAC;QACnB,SAAS,GAAG;QACZ,OAAO,IAAI,CAAC,QAAQ,CAAC;IAAA,CACxB;IAED,IAAI,SAAS,CAGX,SAAiB,EAAE;QACjB,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC;IAAA,CAC7B;CACJ"} -+//// https://sokra.github.io/source-map-visualization#base64,QENsYXNzRGVjb3JhdG9yMQ0KQENsYXNzRGVjb3JhdG9yMigxMCkNCmNsYXNzIEdyZWV0ZXIgew0KICAgIGdyZWV0aW5nOw0KICAgIGNvbnN0cnVjdG9yKGdyZWV0aW5nLCAuLi5iKSB7DQogICAgICAgIHRoaXMuZ3JlZXRpbmcgPSBncmVldGluZzsNCiAgICB9DQogICAgQFByb3BlcnR5RGVjb3JhdG9yMQ0KICAgIEBQcm9wZXJ0eURlY29yYXRvcjIoNDApDQogICAgZ3JlZXQoKSB7DQogICAgICAgIHJldHVybiAiPGgxPiIgKyB0aGlzLmdyZWV0aW5nICsgIjwvaDE+IjsNCiAgICB9DQogICAgQFByb3BlcnR5RGVjb3JhdG9yMQ0KICAgIEBQcm9wZXJ0eURlY29yYXRvcjIoNTApDQogICAgeDsNCiAgICBAUHJvcGVydHlEZWNvcmF0b3IxDQogICAgQFByb3BlcnR5RGVjb3JhdG9yMig2MCkNCiAgICBzdGF0aWMgeDEgPSAxMDsNCiAgICBmbih4KSB7DQogICAgICAgIHJldHVybiB0aGlzLmdyZWV0aW5nOw0KICAgIH0NCiAgICBAUHJvcGVydHlEZWNvcmF0b3IxDQogICAgQFByb3BlcnR5RGVjb3JhdG9yMig4MCkNCiAgICBnZXQgZ3JlZXRpbmdzKCkgew0KICAgICAgICByZXR1cm4gdGhpcy5ncmVldGluZzsNCiAgICB9DQogICAgc2V0IGdyZWV0aW5ncyhncmVldGluZ3MpIHsNCiAgICAgICAgdGhpcy5ncmVldGluZyA9IGdyZWV0aW5nczsNCiAgICB9DQp9DQovLyMgc291cmNlTWFwcGluZ1VSTD1zb3VyY2VNYXBWYWxpZGF0aW9uRGVjb3JhdG9ycy5qcy5tYXA=,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic291cmNlTWFwVmFsaWRhdGlvbkRlY29yYXRvcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJzb3VyY2VNYXBWYWxpZGF0aW9uRGVjb3JhdG9ycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFPQSxDQUFDLGVBQWU7Q0FDZixlQUFlLENBQUMsRUFBRSxDQUFDO01BQ2QsT0FBTztJQUlBLFFBQVE7SUFIakIsWUFHUyxRQUFnQixFQUl2QixHQUFHLENBQVcsRUFBRTt3QkFKVCxRQUFRO0lBSUUsQ0FDbEI7SUFFRCxDQUFDLGtCQUFrQjtLQUNsQixrQkFBa0IsQ0FBQyxFQUFFLENBQUM7SUFDdkIsS0FBSyxHQUFHO1FBQ0osT0FBTyxNQUFNLEdBQUcsSUFBSSxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUM7SUFBQSxDQUMzQztJQUVELENBQUMsa0JBQWtCO0tBQ2xCLGtCQUFrQixDQUFDLEVBQUUsQ0FBQztJQUNmLENBQUMsQ0FBUztJQUVsQixDQUFDLGtCQUFrQjtLQUNsQixrQkFBa0IsQ0FBQyxFQUFFLENBQUM7SUFDZixNQUFNLENBQUMsRUFBRSxHQUFXLEVBQUUsQ0FBQztJQUV2QixFQUFFLENBR1IsQ0FBUyxFQUFFO1FBQ1QsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQUEsQ0FDeEI7SUFFRCxDQUFDLGtCQUFrQjtLQUNsQixrQkFBa0IsQ0FBQyxFQUFFLENBQUM7UUFDbkIsU0FBUyxHQUFHO1FBQ1osT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQUEsQ0FDeEI7SUFFRCxJQUFJLFNBQVMsQ0FHWCxTQUFpQixFQUFFO1FBQ2pCLElBQUksQ0FBQyxRQUFRLEdBQUcsU0FBUyxDQUFDO0lBQUEsQ0FDN0I7Q0FDSiJ9,ZGVjbGFyZSBmdW5jdGlvbiBDbGFzc0RlY29yYXRvcjEodGFyZ2V0OiBGdW5jdGlvbik6IHZvaWQ7CmRlY2xhcmUgZnVuY3Rpb24gQ2xhc3NEZWNvcmF0b3IyKHg6IG51bWJlcik6ICh0YXJnZXQ6IEZ1bmN0aW9uKSA9PiB2b2lkOwpkZWNsYXJlIGZ1bmN0aW9uIFByb3BlcnR5RGVjb3JhdG9yMSh0YXJnZXQ6IE9iamVjdCwga2V5OiBzdHJpbmcgfCBzeW1ib2wsIGRlc2NyaXB0b3I/OiBQcm9wZXJ0eURlc2NyaXB0b3IpOiB2b2lkOwpkZWNsYXJlIGZ1bmN0aW9uIFByb3BlcnR5RGVjb3JhdG9yMih4OiBudW1iZXIpOiAodGFyZ2V0OiBPYmplY3QsIGtleTogc3RyaW5nIHwgc3ltYm9sLCBkZXNjcmlwdG9yPzogUHJvcGVydHlEZXNjcmlwdG9yKSA9PiB2b2lkOwpkZWNsYXJlIGZ1bmN0aW9uIFBhcmFtZXRlckRlY29yYXRvcjEodGFyZ2V0OiBPYmplY3QsIGtleTogc3RyaW5nIHwgc3ltYm9sLCBwYXJhbUluZGV4OiBudW1iZXIpOiB2b2lkOwpkZWNsYXJlIGZ1bmN0aW9uIFBhcmFtZXRlckRlY29yYXRvcjIoeDogbnVtYmVyKTogKHRhcmdldDogT2JqZWN0LCBrZXk6IHN0cmluZyB8IHN5bWJvbCwgcGFyYW1JbmRleDogbnVtYmVyKSA9PiB2b2lkOwoKQENsYXNzRGVjb3JhdG9yMQpAQ2xhc3NEZWNvcmF0b3IyKDEwKQpjbGFzcyBHcmVldGVyIHsKICAgIGNvbnN0cnVjdG9yKAogICAgICBAUGFyYW1ldGVyRGVjb3JhdG9yMSAKICAgICAgQFBhcmFtZXRlckRlY29yYXRvcjIoMjApIAogICAgICBwdWJsaWMgZ3JlZXRpbmc6IHN0cmluZywgCiAgICAgIAogICAgICBAUGFyYW1ldGVyRGVjb3JhdG9yMSAKICAgICAgQFBhcmFtZXRlckRlY29yYXRvcjIoMzApIAogICAgICAuLi5iOiBzdHJpbmdbXSkgewogICAgfQogICAgCiAgICBAUHJvcGVydHlEZWNvcmF0b3IxCiAgICBAUHJvcGVydHlEZWNvcmF0b3IyKDQwKQogICAgZ3JlZXQoKSB7CiAgICAgICAgcmV0dXJuICI8aDE+IiArIHRoaXMuZ3JlZXRpbmcgKyAiPC9oMT4iOwogICAgfQoKICAgIEBQcm9wZXJ0eURlY29yYXRvcjEKICAgIEBQcm9wZXJ0eURlY29yYXRvcjIoNTApCiAgICBwcml2YXRlIHg6IHN0cmluZzsKCiAgICBAUHJvcGVydHlEZWNvcmF0b3IxCiAgICBAUHJvcGVydHlEZWNvcmF0b3IyKDYwKQogICAgcHJpdmF0ZSBzdGF0aWMgeDE6IG51bWJlciA9IDEwOwogICAgCiAgICBwcml2YXRlIGZuKAogICAgICBAUGFyYW1ldGVyRGVjb3JhdG9yMSAKICAgICAgQFBhcmFtZXRlckRlY29yYXRvcjIoNzApIAogICAgICB4OiBudW1iZXIpIHsKICAgICAgICByZXR1cm4gdGhpcy5ncmVldGluZzsKICAgIH0KCiAgICBAUHJvcGVydHlEZWNvcmF0b3IxCiAgICBAUHJvcGVydHlEZWNvcmF0b3IyKDgwKQogICAgZ2V0IGdyZWV0aW5ncygpIHsKICAgICAgICByZXR1cm4gdGhpcy5ncmVldGluZzsKICAgIH0KCiAgICBzZXQgZ3JlZXRpbmdzKAogICAgICBAUGFyYW1ldGVyRGVjb3JhdG9yMSAKICAgICAgQFBhcmFtZXRlckRlY29yYXRvcjIoOTApIAogICAgICBncmVldGluZ3M6IHN0cmluZykgewogICAgICAgIHRoaXMuZ3JlZXRpbmcgPSBncmVldGluZ3M7CiAgICB9ICAgIAp9 \ No newline at end of file ++{"version":3,"file":"sourceMapValidationDecorators.js","sourceRoot":"","sources":["sourceMapValidationDecorators.ts"],"names":[],"mappings":";;;;;;;;;AAQA,IACM,OAAO,GADb,MACM,OAAO;IAIA,QAAQ;IAHjB,YAGS,QAAgB,EAIvB,GAAG,CAAW,EAAE;wBAJT,QAAQ;IAIE,CAClB;IAID,KAAK,GAAG;QACJ,OAAO,MAAM,GAAG,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;IAAA,CAC3C;IAIO,CAAC,CAAS;IAIH,AAAP,MAAM,CAAC,EAAE,GAAW,EAAE,CAAC;IAEvB,EAAE,CAGR,CAAS,EAAE;QACT,OAAO,IAAI,CAAC,QAAQ,CAAC;IAAA,CACxB;IAGD,IACI,SAAS,GAAG;QACZ,OAAO,IAAI,CAAC,QAAQ,CAAC;IAAA,CACxB;IAED,IAAI,SAAS,CAGX,SAAiB,EAAE;QACjB,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC;IAAA,CAC7B;CACJ,CAAA;AA/BG;IAFC,kBAAkB;IAClB,kBAAkB,CAAC,EAAE,CAAC;oCAGtB;AAIO;IAFP,kBAAkB;IAClB,kBAAkB,CAAC,EAAE,CAAC;kCACL;AAMV;IACL,WAAA,mBAAmB,CAAA;IACnB,WAAA,mBAAmB,CAAC,EAAE,CAAC,CAAA;iCAGzB;AAGD;IADC,kBAAkB;IAClB,kBAAkB,CAAC,EAAE,CAAC;IAMpB,WAAA,mBAAmB,CAAA;IACnB,WAAA,mBAAmB,CAAC,EAAE,CAAC,CAAA;wCAJzB;AAbc;IAFd,kBAAkB;IAClB,kBAAkB,CAAC,EAAE,CAAC;yBACQ;AAvB7B,OAAO;IAFZ,eAAe;IACf,eAAe,CAAC,EAAE,CAAC;IAGb,WAAA,mBAAmB,CAAA;IACnB,WAAA,mBAAmB,CAAC,EAAE,CAAC,CAAA;IAGvB,WAAA,mBAAmB,CAAA;IACnB,WAAA,mBAAmB,CAAC,EAAE,CAAC,CAAA;GAPxB,OAAO,CA4CZ"} ++//// https://sokra.github.io/source-map-visualization#base64,dmFyIF9fZGVjb3JhdGUgPSAodGhpcyAmJiB0aGlzLl9fZGVjb3JhdGUpIHx8IGZ1bmN0aW9uIChkZWNvcmF0b3JzLCB0YXJnZXQsIGtleSwgZGVzYykgew0KICAgIHZhciBjID0gYXJndW1lbnRzLmxlbmd0aCwgciA9IGMgPCAzID8gdGFyZ2V0IDogZGVzYyA9PT0gbnVsbCA/IGRlc2MgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHRhcmdldCwga2V5KSA6IGRlc2MsIGQ7DQogICAgaWYgKHR5cGVvZiBSZWZsZWN0ID09PSAib2JqZWN0IiAmJiB0eXBlb2YgUmVmbGVjdC5kZWNvcmF0ZSA9PT0gImZ1bmN0aW9uIikgciA9IFJlZmxlY3QuZGVjb3JhdGUoZGVjb3JhdG9ycywgdGFyZ2V0LCBrZXksIGRlc2MpOw0KICAgIGVsc2UgZm9yICh2YXIgaSA9IGRlY29yYXRvcnMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIGlmIChkID0gZGVjb3JhdG9yc1tpXSkgciA9IChjIDwgMyA/IGQocikgOiBjID4gMyA/IGQodGFyZ2V0LCBrZXksIHIpIDogZCh0YXJnZXQsIGtleSkpIHx8IHI7DQogICAgcmV0dXJuIGMgPiAzICYmIHIgJiYgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwga2V5LCByKSwgcjsNCn07DQp2YXIgX19wYXJhbSA9ICh0aGlzICYmIHRoaXMuX19wYXJhbSkgfHwgZnVuY3Rpb24gKHBhcmFtSW5kZXgsIGRlY29yYXRvcikgew0KICAgIHJldHVybiBmdW5jdGlvbiAodGFyZ2V0LCBrZXkpIHsgZGVjb3JhdG9yKHRhcmdldCwga2V5LCBwYXJhbUluZGV4KTsgfQ0KfTsNCmxldCBHcmVldGVyID0gY2xhc3MgR3JlZXRlciB7DQogICAgZ3JlZXRpbmc7DQogICAgY29uc3RydWN0b3IoZ3JlZXRpbmcsIC4uLmIpIHsNCiAgICAgICAgdGhpcy5ncmVldGluZyA9IGdyZWV0aW5nOw0KICAgIH0NCiAgICBncmVldCgpIHsNCiAgICAgICAgcmV0dXJuICI8aDE+IiArIHRoaXMuZ3JlZXRpbmcgKyAiPC9oMT4iOw0KICAgIH0NCiAgICB4Ow0KICAgIHN0YXRpYyB4MSA9IDEwOw0KICAgIGZuKHgpIHsNCiAgICAgICAgcmV0dXJuIHRoaXMuZ3JlZXRpbmc7DQogICAgfQ0KICAgIGdldCBncmVldGluZ3MoKSB7DQogICAgICAgIHJldHVybiB0aGlzLmdyZWV0aW5nOw0KICAgIH0NCiAgICBzZXQgZ3JlZXRpbmdzKGdyZWV0aW5ncykgew0KICAgICAgICB0aGlzLmdyZWV0aW5nID0gZ3JlZXRpbmdzOw0KICAgIH0NCn07DQpfX2RlY29yYXRlKFsNCiAgICBQcm9wZXJ0eURlY29yYXRvcjEsDQogICAgUHJvcGVydHlEZWNvcmF0b3IyKDQwKQ0KXSwgR3JlZXRlci5wcm90b3R5cGUsICJncmVldCIsIG51bGwpOw0KX19kZWNvcmF0ZShbDQogICAgUHJvcGVydHlEZWNvcmF0b3IxLA0KICAgIFByb3BlcnR5RGVjb3JhdG9yMig1MCkNCl0sIEdyZWV0ZXIucHJvdG90eXBlLCAieCIsIHZvaWQgMCk7DQpfX2RlY29yYXRlKFsNCiAgICBfX3BhcmFtKDAsIFBhcmFtZXRlckRlY29yYXRvcjEpLA0KICAgIF9fcGFyYW0oMCwgUGFyYW1ldGVyRGVjb3JhdG9yMig3MCkpDQpdLCBHcmVldGVyLnByb3RvdHlwZSwgImZuIiwgbnVsbCk7DQpfX2RlY29yYXRlKFsNCiAgICBQcm9wZXJ0eURlY29yYXRvcjEsDQogICAgUHJvcGVydHlEZWNvcmF0b3IyKDgwKSwNCiAgICBfX3BhcmFtKDAsIFBhcmFtZXRlckRlY29yYXRvcjEpLA0KICAgIF9fcGFyYW0oMCwgUGFyYW1ldGVyRGVjb3JhdG9yMig5MCkpDQpdLCBHcmVldGVyLnByb3RvdHlwZSwgImdyZWV0aW5ncyIsIG51bGwpOw0KX19kZWNvcmF0ZShbDQogICAgUHJvcGVydHlEZWNvcmF0b3IxLA0KICAgIFByb3BlcnR5RGVjb3JhdG9yMig2MCkNCl0sIEdyZWV0ZXIsICJ4MSIsIHZvaWQgMCk7DQpHcmVldGVyID0gX19kZWNvcmF0ZShbDQogICAgQ2xhc3NEZWNvcmF0b3IxLA0KICAgIENsYXNzRGVjb3JhdG9yMigxMCksDQogICAgX19wYXJhbSgwLCBQYXJhbWV0ZXJEZWNvcmF0b3IxKSwNCiAgICBfX3BhcmFtKDAsIFBhcmFtZXRlckRlY29yYXRvcjIoMjApKSwNCiAgICBfX3BhcmFtKDEsIFBhcmFtZXRlckRlY29yYXRvcjEpLA0KICAgIF9fcGFyYW0oMSwgUGFyYW1ldGVyRGVjb3JhdG9yMigzMCkpDQpdLCBHcmVldGVyKTsNCi8vIyBzb3VyY2VNYXBwaW5nVVJMPXNvdXJjZU1hcFZhbGlkYXRpb25EZWNvcmF0b3JzLmpzLm1hcA==,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic291cmNlTWFwVmFsaWRhdGlvbkRlY29yYXRvcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJzb3VyY2VNYXBWYWxpZGF0aW9uRGVjb3JhdG9ycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFRQSxJQUNNLE9BQU8sR0FEYixNQUNNLE9BQU87SUFJQSxRQUFRO0lBSGpCLFlBR1MsUUFBZ0IsRUFJdkIsR0FBRyxDQUFXLEVBQUU7d0JBSlQsUUFBUTtJQUlFLENBQ2xCO0lBSUQsS0FBSyxHQUFHO1FBQ0osT0FBTyxNQUFNLEdBQUcsSUFBSSxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUM7SUFBQSxDQUMzQztJQUlPLENBQUMsQ0FBUztJQUlILEFBQVAsTUFBTSxDQUFDLEVBQUUsR0FBVyxFQUFFLENBQUM7SUFFdkIsRUFBRSxDQUdSLENBQVMsRUFBRTtRQUNULE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUFBLENBQ3hCO0lBR0QsSUFDSSxTQUFTLEdBQUc7UUFDWixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFBQSxDQUN4QjtJQUVELElBQUksU0FBUyxDQUdYLFNBQWlCLEVBQUU7UUFDakIsSUFBSSxDQUFDLFFBQVEsR0FBRyxTQUFTLENBQUM7SUFBQSxDQUM3QjtDQUNKLENBQUE7QUEvQkc7SUFGQyxrQkFBa0I7SUFDbEIsa0JBQWtCLENBQUMsRUFBRSxDQUFDO29DQUd0QjtBQUlPO0lBRlAsa0JBQWtCO0lBQ2xCLGtCQUFrQixDQUFDLEVBQUUsQ0FBQztrQ0FDTDtBQU1WO0lBQ0wsV0FBQSxtQkFBbUIsQ0FBQTtJQUNuQixXQUFBLG1CQUFtQixDQUFDLEVBQUUsQ0FBQyxDQUFBO2lDQUd6QjtBQUdEO0lBREMsa0JBQWtCO0lBQ2xCLGtCQUFrQixDQUFDLEVBQUUsQ0FBQztJQU1wQixXQUFBLG1CQUFtQixDQUFBO0lBQ25CLFdBQUEsbUJBQW1CLENBQUMsRUFBRSxDQUFDLENBQUE7d0NBSnpCO0FBYmM7SUFGZCxrQkFBa0I7SUFDbEIsa0JBQWtCLENBQUMsRUFBRSxDQUFDO3lCQUNRO0FBdkI3QixPQUFPO0lBRlosZUFBZTtJQUNmLGVBQWUsQ0FBQyxFQUFFLENBQUM7SUFHYixXQUFBLG1CQUFtQixDQUFBO0lBQ25CLFdBQUEsbUJBQW1CLENBQUMsRUFBRSxDQUFDLENBQUE7SUFHdkIsV0FBQSxtQkFBbUIsQ0FBQTtJQUNuQixXQUFBLG1CQUFtQixDQUFDLEVBQUUsQ0FBQyxDQUFBO0dBUHhCLE9BQU8sQ0E0Q1oifQ==,ZGVjbGFyZSBmdW5jdGlvbiBDbGFzc0RlY29yYXRvcjEodGFyZ2V0OiBGdW5jdGlvbik6IHZvaWQ7CmRlY2xhcmUgZnVuY3Rpb24gQ2xhc3NEZWNvcmF0b3IyKHg6IG51bWJlcik6ICh0YXJnZXQ6IEZ1bmN0aW9uKSA9PiB2b2lkOwpkZWNsYXJlIGZ1bmN0aW9uIFByb3BlcnR5RGVjb3JhdG9yMSh0YXJnZXQ6IE9iamVjdCwga2V5OiBzdHJpbmcgfCBzeW1ib2wsIGRlc2NyaXB0b3I/OiBQcm9wZXJ0eURlc2NyaXB0b3IpOiB2b2lkOwpkZWNsYXJlIGZ1bmN0aW9uIFByb3BlcnR5RGVjb3JhdG9yMih4OiBudW1iZXIpOiAodGFyZ2V0OiBPYmplY3QsIGtleTogc3RyaW5nIHwgc3ltYm9sLCBkZXNjcmlwdG9yPzogUHJvcGVydHlEZXNjcmlwdG9yKSA9PiB2b2lkOwpkZWNsYXJlIGZ1bmN0aW9uIFBhcmFtZXRlckRlY29yYXRvcjEodGFyZ2V0OiBPYmplY3QsIGtleTogc3RyaW5nIHwgc3ltYm9sLCBwYXJhbUluZGV4OiBudW1iZXIpOiB2b2lkOwpkZWNsYXJlIGZ1bmN0aW9uIFBhcmFtZXRlckRlY29yYXRvcjIoeDogbnVtYmVyKTogKHRhcmdldDogT2JqZWN0LCBrZXk6IHN0cmluZyB8IHN5bWJvbCwgcGFyYW1JbmRleDogbnVtYmVyKSA9PiB2b2lkOwoKQENsYXNzRGVjb3JhdG9yMQpAQ2xhc3NEZWNvcmF0b3IyKDEwKQpjbGFzcyBHcmVldGVyIHsKICAgIGNvbnN0cnVjdG9yKAogICAgICBAUGFyYW1ldGVyRGVjb3JhdG9yMSAKICAgICAgQFBhcmFtZXRlckRlY29yYXRvcjIoMjApIAogICAgICBwdWJsaWMgZ3JlZXRpbmc6IHN0cmluZywgCiAgICAgIAogICAgICBAUGFyYW1ldGVyRGVjb3JhdG9yMSAKICAgICAgQFBhcmFtZXRlckRlY29yYXRvcjIoMzApIAogICAgICAuLi5iOiBzdHJpbmdbXSkgewogICAgfQogICAgCiAgICBAUHJvcGVydHlEZWNvcmF0b3IxCiAgICBAUHJvcGVydHlEZWNvcmF0b3IyKDQwKQogICAgZ3JlZXQoKSB7CiAgICAgICAgcmV0dXJuICI8aDE+IiArIHRoaXMuZ3JlZXRpbmcgKyAiPC9oMT4iOwogICAgfQoKICAgIEBQcm9wZXJ0eURlY29yYXRvcjEKICAgIEBQcm9wZXJ0eURlY29yYXRvcjIoNTApCiAgICBwcml2YXRlIHg6IHN0cmluZzsKCiAgICBAUHJvcGVydHlEZWNvcmF0b3IxCiAgICBAUHJvcGVydHlEZWNvcmF0b3IyKDYwKQogICAgcHJpdmF0ZSBzdGF0aWMgeDE6IG51bWJlciA9IDEwOwogICAgCiAgICBwcml2YXRlIGZuKAogICAgICBAUGFyYW1ldGVyRGVjb3JhdG9yMSAKICAgICAgQFBhcmFtZXRlckRlY29yYXRvcjIoNzApIAogICAgICB4OiBudW1iZXIpIHsKICAgICAgICByZXR1cm4gdGhpcy5ncmVldGluZzsKICAgIH0KCiAgICBAUHJvcGVydHlEZWNvcmF0b3IxCiAgICBAUHJvcGVydHlEZWNvcmF0b3IyKDgwKQogICAgZ2V0IGdyZWV0aW5ncygpIHsKICAgICAgICByZXR1cm4gdGhpcy5ncmVldGluZzsKICAgIH0KCiAgICBzZXQgZ3JlZXRpbmdzKAogICAgICBAUGFyYW1ldGVyRGVjb3JhdG9yMSAKICAgICAgQFBhcmFtZXRlckRlY29yYXRvcjIoOTApIAogICAgICBncmVldGluZ3M6IHN0cmluZykgewogICAgICAgIHRoaXMuZ3JlZXRpbmcgPSBncmVldGluZ3M7CiAgICB9ICAgIAp9 \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/sourceMapValidationDecorators.sourcemap.txt b/testdata/baselines/reference/submodule/compiler/sourceMapValidationDecorators.sourcemap.txt index 2acb82de70..d251384cc6 100644 --- a/testdata/baselines/reference/submodule/compiler/sourceMapValidationDecorators.sourcemap.txt +++ b/testdata/baselines/reference/submodule/compiler/sourceMapValidationDecorators.sourcemap.txt @@ -8,11 +8,22 @@ sources: sourceMapValidationDecorators.ts emittedFile:sourceMapValidationDecorators.js sourceFile:sourceMapValidationDecorators.ts ------------------------------------------------------------------- ->>>@ClassDecorator1 +>>>var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { +>>> var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; +>>> if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); +>>> else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; +>>> return c > 3 && r && Object.defineProperty(target, key, r), r; +>>>}; +>>>var __param = (this && this.__param) || function (paramIndex, decorator) { +>>> return function (target, key) { decorator(target, key, paramIndex); } +>>>}; +>>>let Greeter = class Greeter { 1 > -2 >^ -3 > ^^^^^^^^^^^^^^^ -4 > ^^^^^-> +2 >^^^^ +3 > ^^^^^^^ +4 > ^^^ +5 > ^^^^^^ +6 > ^^^^^^^ 1 >declare function ClassDecorator1(target: Function): void; >declare function ClassDecorator2(x: number): (target: Function) => void; >declare function PropertyDecorator1(target: Object, key: string | symbol, descriptor?: PropertyDescriptor): void; @@ -20,53 +31,34 @@ sourceFile:sourceMapValidationDecorators.ts >declare function ParameterDecorator1(target: Object, key: string | symbol, paramIndex: number): void; >declare function ParameterDecorator2(x: number): (target: Object, key: string | symbol, paramIndex: number) => void; > + >@ClassDecorator1 > -2 >@ -3 > ClassDecorator1 -1 >Emitted(1, 1) Source(8, 1) + SourceIndex(0) -2 >Emitted(1, 2) Source(8, 2) + SourceIndex(0) -3 >Emitted(1, 17) Source(8, 17) + SourceIndex(0) ---- ->>>@ClassDecorator2(10) -1->^ -2 > ^^^^^^^^^^^^^^^ -3 > ^ -4 > ^^ -5 > ^ -1-> - >@ -2 > ClassDecorator2 -3 > ( -4 > 10 -5 > ) -1->Emitted(2, 2) Source(9, 2) + SourceIndex(0) -2 >Emitted(2, 17) Source(9, 17) + SourceIndex(0) -3 >Emitted(2, 18) Source(9, 18) + SourceIndex(0) -4 >Emitted(2, 20) Source(9, 20) + SourceIndex(0) -5 >Emitted(2, 21) Source(9, 21) + SourceIndex(0) ---- ->>>class Greeter { -1 >^^^^^^ -2 > ^^^^^^^ -3 > ^-> -1 > +2 >@ClassDecorator2(10) >class -2 > Greeter -1 >Emitted(3, 7) Source(10, 7) + SourceIndex(0) -2 >Emitted(3, 14) Source(10, 14) + SourceIndex(0) +3 > Greeter +4 > +5 > @ClassDecorator2(10) + > class +6 > Greeter +1 >Emitted(10, 1) Source(9, 1) + SourceIndex(0) +2 >Emitted(10, 5) Source(10, 7) + SourceIndex(0) +3 >Emitted(10, 12) Source(10, 14) + SourceIndex(0) +4 >Emitted(10, 15) Source(9, 1) + SourceIndex(0) +5 >Emitted(10, 21) Source(10, 7) + SourceIndex(0) +6 >Emitted(10, 28) Source(10, 14) + SourceIndex(0) --- >>> greeting; -1->^^^^ +1 >^^^^ 2 > ^^^^^^^^ 3 > ^^^^^^^^^^^^^^^^^^^^^^-> -1-> { +1 > { > constructor( > @ParameterDecorator1 > @ParameterDecorator2(20) > public 2 > greeting -1->Emitted(4, 5) Source(14, 14) + SourceIndex(0) -2 >Emitted(4, 13) Source(14, 22) + SourceIndex(0) +1 >Emitted(11, 5) Source(14, 14) + SourceIndex(0) +2 >Emitted(11, 13) Source(14, 22) + SourceIndex(0) --- >>> constructor(greeting, ...b) { 1->^^^^ @@ -91,26 +83,26 @@ sourceFile:sourceMapValidationDecorators.ts 5 > ... 6 > b: string[] 7 > ) -1->Emitted(5, 5) Source(11, 5) + SourceIndex(0) -2 >Emitted(5, 17) Source(14, 14) + SourceIndex(0) -3 >Emitted(5, 25) Source(14, 30) + SourceIndex(0) -4 >Emitted(5, 27) Source(18, 7) + SourceIndex(0) -5 >Emitted(5, 30) Source(18, 10) + SourceIndex(0) -6 >Emitted(5, 31) Source(18, 21) + SourceIndex(0) -7 >Emitted(5, 33) Source(18, 23) + SourceIndex(0) +1->Emitted(12, 5) Source(11, 5) + SourceIndex(0) +2 >Emitted(12, 17) Source(14, 14) + SourceIndex(0) +3 >Emitted(12, 25) Source(14, 30) + SourceIndex(0) +4 >Emitted(12, 27) Source(18, 7) + SourceIndex(0) +5 >Emitted(12, 30) Source(18, 10) + SourceIndex(0) +6 >Emitted(12, 31) Source(18, 21) + SourceIndex(0) +7 >Emitted(12, 33) Source(18, 23) + SourceIndex(0) --- >>> this.greeting = greeting; 1->^^^^^^^^^^^^^^^^^^^^^^^^ 2 > ^^^^^^^^ 1-> 2 > greeting -1->Emitted(6, 25) Source(14, 14) + SourceIndex(0) -2 >Emitted(6, 33) Source(14, 22) + SourceIndex(0) +1->Emitted(13, 25) Source(14, 14) + SourceIndex(0) +2 >Emitted(13, 33) Source(14, 22) + SourceIndex(0) --- >>> } 1 >^^^^ 2 > ^ -3 > ^^^^^^^^^^^^^^^^^^^-> +3 > ^^^^^^^^^-> 1 >: string, > > @ParameterDecorator1 @@ -118,53 +110,24 @@ sourceFile:sourceMapValidationDecorators.ts > ...b: string[]) { 2 > > } -1 >Emitted(7, 5) Source(18, 24) + SourceIndex(0) -2 >Emitted(7, 6) Source(19, 6) + SourceIndex(0) ---- ->>> @PropertyDecorator1 -1->^^^^ -2 > ^ -3 > ^^^^^^^^^^^^^^^^^^ -4 > ^^^^^-> -1-> - > - > -2 > @ -3 > PropertyDecorator1 -1->Emitted(8, 5) Source(21, 5) + SourceIndex(0) -2 >Emitted(8, 6) Source(21, 6) + SourceIndex(0) -3 >Emitted(8, 24) Source(21, 24) + SourceIndex(0) ---- ->>> @PropertyDecorator2(40) -1->^^^^^ -2 > ^^^^^^^^^^^^^^^^^^ -3 > ^ -4 > ^^ -5 > ^ -1-> - > @ -2 > PropertyDecorator2 -3 > ( -4 > 40 -5 > ) -1->Emitted(9, 6) Source(22, 6) + SourceIndex(0) -2 >Emitted(9, 24) Source(22, 24) + SourceIndex(0) -3 >Emitted(9, 25) Source(22, 25) + SourceIndex(0) -4 >Emitted(9, 27) Source(22, 27) + SourceIndex(0) -5 >Emitted(9, 28) Source(22, 28) + SourceIndex(0) +1 >Emitted(14, 5) Source(18, 24) + SourceIndex(0) +2 >Emitted(14, 6) Source(19, 6) + SourceIndex(0) --- >>> greet() { -1 >^^^^ +1->^^^^ 2 > ^^^^^ 3 > ^^^ 4 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> -1 > +1-> + > + > @PropertyDecorator1 + > @PropertyDecorator2(40) > 2 > greet 3 > () -1 >Emitted(10, 5) Source(23, 5) + SourceIndex(0) -2 >Emitted(10, 10) Source(23, 10) + SourceIndex(0) -3 >Emitted(10, 13) Source(23, 13) + SourceIndex(0) +1->Emitted(15, 5) Source(23, 5) + SourceIndex(0) +2 >Emitted(15, 10) Source(23, 10) + SourceIndex(0) +3 >Emitted(15, 13) Source(23, 13) + SourceIndex(0) --- >>> return "

" + this.greeting + "

"; 1->^^^^^^^^ @@ -188,127 +151,72 @@ sourceFile:sourceMapValidationDecorators.ts 8 > + 9 > "" 10> ; -1->Emitted(11, 9) Source(24, 9) + SourceIndex(0) -2 >Emitted(11, 16) Source(24, 16) + SourceIndex(0) -3 >Emitted(11, 22) Source(24, 22) + SourceIndex(0) -4 >Emitted(11, 25) Source(24, 25) + SourceIndex(0) -5 >Emitted(11, 29) Source(24, 29) + SourceIndex(0) -6 >Emitted(11, 30) Source(24, 30) + SourceIndex(0) -7 >Emitted(11, 38) Source(24, 38) + SourceIndex(0) -8 >Emitted(11, 41) Source(24, 41) + SourceIndex(0) -9 >Emitted(11, 48) Source(24, 48) + SourceIndex(0) -10>Emitted(11, 49) Source(24, 49) + SourceIndex(0) +1->Emitted(16, 9) Source(24, 9) + SourceIndex(0) +2 >Emitted(16, 16) Source(24, 16) + SourceIndex(0) +3 >Emitted(16, 22) Source(24, 22) + SourceIndex(0) +4 >Emitted(16, 25) Source(24, 25) + SourceIndex(0) +5 >Emitted(16, 29) Source(24, 29) + SourceIndex(0) +6 >Emitted(16, 30) Source(24, 30) + SourceIndex(0) +7 >Emitted(16, 38) Source(24, 38) + SourceIndex(0) +8 >Emitted(16, 41) Source(24, 41) + SourceIndex(0) +9 >Emitted(16, 48) Source(24, 48) + SourceIndex(0) +10>Emitted(16, 49) Source(24, 49) + SourceIndex(0) --- >>> } 1 >^^^^ 2 > ^ -3 > ^^^^^^^^^^^^^^^^^^^-> +3 > ^^-> 1 > 2 > > } -1 >Emitted(12, 5) Source(24, 49) + SourceIndex(0) -2 >Emitted(12, 6) Source(25, 6) + SourceIndex(0) +1 >Emitted(17, 5) Source(24, 49) + SourceIndex(0) +2 >Emitted(17, 6) Source(25, 6) + SourceIndex(0) --- ->>> @PropertyDecorator1 +>>> x; 1->^^^^ 2 > ^ -3 > ^^^^^^^^^^^^^^^^^^ -4 > ^^^^^-> +3 > ^ +4 > ^^^^^^^^^^^^^^-> 1-> > - > -2 > @ -3 > PropertyDecorator1 -1->Emitted(13, 5) Source(27, 5) + SourceIndex(0) -2 >Emitted(13, 6) Source(27, 6) + SourceIndex(0) -3 >Emitted(13, 24) Source(27, 24) + SourceIndex(0) ---- ->>> @PropertyDecorator2(50) -1->^^^^^ -2 > ^^^^^^^^^^^^^^^^^^ -3 > ^ -4 > ^^ -5 > ^ -1-> - > @ -2 > PropertyDecorator2 -3 > ( -4 > 50 -5 > ) -1->Emitted(14, 6) Source(28, 6) + SourceIndex(0) -2 >Emitted(14, 24) Source(28, 24) + SourceIndex(0) -3 >Emitted(14, 25) Source(28, 25) + SourceIndex(0) -4 >Emitted(14, 27) Source(28, 27) + SourceIndex(0) -5 >Emitted(14, 28) Source(28, 28) + SourceIndex(0) ---- ->>> x; -1 >^^^^ -2 > ^ -3 > ^ -4 > ^^^^^^^^^^^^^^^^^^-> -1 > + > @PropertyDecorator1 + > @PropertyDecorator2(50) > private 2 > x 3 > : string; -1 >Emitted(15, 5) Source(29, 13) + SourceIndex(0) -2 >Emitted(15, 6) Source(29, 14) + SourceIndex(0) -3 >Emitted(15, 7) Source(29, 23) + SourceIndex(0) +1->Emitted(18, 5) Source(29, 13) + SourceIndex(0) +2 >Emitted(18, 6) Source(29, 14) + SourceIndex(0) +3 >Emitted(18, 7) Source(29, 23) + SourceIndex(0) --- ->>> @PropertyDecorator1 +>>> static x1 = 10; 1->^^^^ -2 > ^ -3 > ^^^^^^^^^^^^^^^^^^ -4 > ^^^^^-> +2 > +3 > ^^^^^^ +4 > ^ +5 > ^^ +6 > ^^^ +7 > ^^ +8 > ^ 1-> > - > -2 > @ -3 > PropertyDecorator1 -1->Emitted(16, 5) Source(31, 5) + SourceIndex(0) -2 >Emitted(16, 6) Source(31, 6) + SourceIndex(0) -3 >Emitted(16, 24) Source(31, 24) + SourceIndex(0) ---- ->>> @PropertyDecorator2(60) -1->^^^^^ -2 > ^^^^^^^^^^^^^^^^^^ -3 > ^ -4 > ^^ -5 > ^ -1-> - > @ -2 > PropertyDecorator2 -3 > ( -4 > 60 -5 > ) -1->Emitted(17, 6) Source(32, 6) + SourceIndex(0) -2 >Emitted(17, 24) Source(32, 24) + SourceIndex(0) -3 >Emitted(17, 25) Source(32, 25) + SourceIndex(0) -4 >Emitted(17, 27) Source(32, 27) + SourceIndex(0) -5 >Emitted(17, 28) Source(32, 28) + SourceIndex(0) ---- ->>> static x1 = 10; -1 >^^^^ -2 > ^^^^^^ -3 > ^ -4 > ^^ -5 > ^^^ -6 > ^^ -7 > ^ -1 > - > private -2 > static -3 > -4 > x1 -5 > : number = -6 > 10 -7 > ; -1 >Emitted(18, 5) Source(33, 13) + SourceIndex(0) -2 >Emitted(18, 11) Source(33, 19) + SourceIndex(0) -3 >Emitted(18, 12) Source(33, 20) + SourceIndex(0) -4 >Emitted(18, 14) Source(33, 22) + SourceIndex(0) -5 >Emitted(18, 17) Source(33, 33) + SourceIndex(0) -6 >Emitted(18, 19) Source(33, 35) + SourceIndex(0) -7 >Emitted(18, 20) Source(33, 36) + SourceIndex(0) + > @PropertyDecorator1 + > @PropertyDecorator2(60) + > private static +2 > +3 > static +4 > +5 > x1 +6 > : number = +7 > 10 +8 > ; +1->Emitted(19, 5) Source(33, 20) + SourceIndex(0) +2 >Emitted(19, 5) Source(33, 13) + SourceIndex(0) +3 >Emitted(19, 11) Source(33, 19) + SourceIndex(0) +4 >Emitted(19, 12) Source(33, 20) + SourceIndex(0) +5 >Emitted(19, 14) Source(33, 22) + SourceIndex(0) +6 >Emitted(19, 17) Source(33, 33) + SourceIndex(0) +7 >Emitted(19, 19) Source(33, 35) + SourceIndex(0) +8 >Emitted(19, 20) Source(33, 36) + SourceIndex(0) --- >>> fn(x) { 1 >^^^^ @@ -327,11 +235,11 @@ sourceFile:sourceMapValidationDecorators.ts > 4 > x: number 5 > ) -1 >Emitted(19, 5) Source(35, 13) + SourceIndex(0) -2 >Emitted(19, 7) Source(35, 15) + SourceIndex(0) -3 >Emitted(19, 8) Source(38, 7) + SourceIndex(0) -4 >Emitted(19, 9) Source(38, 16) + SourceIndex(0) -5 >Emitted(19, 11) Source(38, 18) + SourceIndex(0) +1 >Emitted(20, 5) Source(35, 13) + SourceIndex(0) +2 >Emitted(20, 7) Source(35, 15) + SourceIndex(0) +3 >Emitted(20, 8) Source(38, 7) + SourceIndex(0) +4 >Emitted(20, 9) Source(38, 16) + SourceIndex(0) +5 >Emitted(20, 11) Source(38, 18) + SourceIndex(0) --- >>> return this.greeting; 1->^^^^^^^^ @@ -347,67 +255,41 @@ sourceFile:sourceMapValidationDecorators.ts 4 > . 5 > greeting 6 > ; -1->Emitted(20, 9) Source(39, 9) + SourceIndex(0) -2 >Emitted(20, 16) Source(39, 16) + SourceIndex(0) -3 >Emitted(20, 20) Source(39, 20) + SourceIndex(0) -4 >Emitted(20, 21) Source(39, 21) + SourceIndex(0) -5 >Emitted(20, 29) Source(39, 29) + SourceIndex(0) -6 >Emitted(20, 30) Source(39, 30) + SourceIndex(0) +1->Emitted(21, 9) Source(39, 9) + SourceIndex(0) +2 >Emitted(21, 16) Source(39, 16) + SourceIndex(0) +3 >Emitted(21, 20) Source(39, 20) + SourceIndex(0) +4 >Emitted(21, 21) Source(39, 21) + SourceIndex(0) +5 >Emitted(21, 29) Source(39, 29) + SourceIndex(0) +6 >Emitted(21, 30) Source(39, 30) + SourceIndex(0) --- >>> } 1 >^^^^ 2 > ^ -3 > ^^^^^^^^^^^^^^^^^^^-> +3 > ^^^^^^^^^^^^^^^^^-> 1 > 2 > > } -1 >Emitted(21, 5) Source(39, 30) + SourceIndex(0) -2 >Emitted(21, 6) Source(40, 6) + SourceIndex(0) +1 >Emitted(22, 5) Source(39, 30) + SourceIndex(0) +2 >Emitted(22, 6) Source(40, 6) + SourceIndex(0) --- ->>> @PropertyDecorator1 +>>> get greetings() { 1->^^^^ -2 > ^ -3 > ^^^^^^^^^^^^^^^^^^ -4 > ^^^^^-> +2 > ^^^^ +3 > ^^^^^^^^^ +4 > ^^^ +5 > ^^^^^^^^^^-> 1-> > + > @PropertyDecorator1 > -2 > @ -3 > PropertyDecorator1 -1->Emitted(22, 5) Source(42, 5) + SourceIndex(0) -2 >Emitted(22, 6) Source(42, 6) + SourceIndex(0) -3 >Emitted(22, 24) Source(42, 24) + SourceIndex(0) ---- ->>> @PropertyDecorator2(80) -1->^^^^^ -2 > ^^^^^^^^^^^^^^^^^^ -3 > ^ -4 > ^^ -5 > ^ -1-> - > @ -2 > PropertyDecorator2 -3 > ( -4 > 80 -5 > ) -1->Emitted(23, 6) Source(43, 6) + SourceIndex(0) -2 >Emitted(23, 24) Source(43, 24) + SourceIndex(0) -3 >Emitted(23, 25) Source(43, 25) + SourceIndex(0) -4 >Emitted(23, 27) Source(43, 27) + SourceIndex(0) -5 >Emitted(23, 28) Source(43, 28) + SourceIndex(0) ---- ->>> get greetings() { -1 >^^^^^^^^ -2 > ^^^^^^^^^ -3 > ^^^ -4 > ^^^^^^^^^^-> -1 > - > get -2 > greetings -3 > () -1 >Emitted(24, 9) Source(44, 9) + SourceIndex(0) -2 >Emitted(24, 18) Source(44, 18) + SourceIndex(0) -3 >Emitted(24, 21) Source(44, 21) + SourceIndex(0) +2 > @PropertyDecorator2(80) + > get +3 > greetings +4 > () +1->Emitted(23, 5) Source(43, 5) + SourceIndex(0) +2 >Emitted(23, 9) Source(44, 9) + SourceIndex(0) +3 >Emitted(23, 18) Source(44, 18) + SourceIndex(0) +4 >Emitted(23, 21) Source(44, 21) + SourceIndex(0) --- >>> return this.greeting; 1->^^^^^^^^ @@ -423,12 +305,12 @@ sourceFile:sourceMapValidationDecorators.ts 4 > . 5 > greeting 6 > ; -1->Emitted(25, 9) Source(45, 9) + SourceIndex(0) -2 >Emitted(25, 16) Source(45, 16) + SourceIndex(0) -3 >Emitted(25, 20) Source(45, 20) + SourceIndex(0) -4 >Emitted(25, 21) Source(45, 21) + SourceIndex(0) -5 >Emitted(25, 29) Source(45, 29) + SourceIndex(0) -6 >Emitted(25, 30) Source(45, 30) + SourceIndex(0) +1->Emitted(24, 9) Source(45, 9) + SourceIndex(0) +2 >Emitted(24, 16) Source(45, 16) + SourceIndex(0) +3 >Emitted(24, 20) Source(45, 20) + SourceIndex(0) +4 >Emitted(24, 21) Source(45, 21) + SourceIndex(0) +5 >Emitted(24, 29) Source(45, 29) + SourceIndex(0) +6 >Emitted(24, 30) Source(45, 30) + SourceIndex(0) --- >>> } 1 >^^^^ @@ -437,8 +319,8 @@ sourceFile:sourceMapValidationDecorators.ts 1 > 2 > > } -1 >Emitted(26, 5) Source(45, 30) + SourceIndex(0) -2 >Emitted(26, 6) Source(46, 6) + SourceIndex(0) +1 >Emitted(25, 5) Source(45, 30) + SourceIndex(0) +2 >Emitted(25, 6) Source(46, 6) + SourceIndex(0) --- >>> set greetings(greetings) { 1->^^^^ @@ -459,12 +341,12 @@ sourceFile:sourceMapValidationDecorators.ts > 5 > greetings: string 6 > ) -1->Emitted(27, 5) Source(48, 5) + SourceIndex(0) -2 >Emitted(27, 9) Source(48, 9) + SourceIndex(0) -3 >Emitted(27, 18) Source(48, 18) + SourceIndex(0) -4 >Emitted(27, 19) Source(51, 7) + SourceIndex(0) -5 >Emitted(27, 28) Source(51, 24) + SourceIndex(0) -6 >Emitted(27, 30) Source(51, 26) + SourceIndex(0) +1->Emitted(26, 5) Source(48, 5) + SourceIndex(0) +2 >Emitted(26, 9) Source(48, 9) + SourceIndex(0) +3 >Emitted(26, 18) Source(48, 18) + SourceIndex(0) +4 >Emitted(26, 19) Source(51, 7) + SourceIndex(0) +5 >Emitted(26, 28) Source(51, 24) + SourceIndex(0) +6 >Emitted(26, 30) Source(51, 26) + SourceIndex(0) --- >>> this.greeting = greetings; 1->^^^^^^^^ @@ -482,13 +364,13 @@ sourceFile:sourceMapValidationDecorators.ts 5 > = 6 > greetings 7 > ; -1->Emitted(28, 9) Source(52, 9) + SourceIndex(0) -2 >Emitted(28, 13) Source(52, 13) + SourceIndex(0) -3 >Emitted(28, 14) Source(52, 14) + SourceIndex(0) -4 >Emitted(28, 22) Source(52, 22) + SourceIndex(0) -5 >Emitted(28, 25) Source(52, 25) + SourceIndex(0) -6 >Emitted(28, 34) Source(52, 34) + SourceIndex(0) -7 >Emitted(28, 35) Source(52, 35) + SourceIndex(0) +1->Emitted(27, 9) Source(52, 9) + SourceIndex(0) +2 >Emitted(27, 13) Source(52, 13) + SourceIndex(0) +3 >Emitted(27, 14) Source(52, 14) + SourceIndex(0) +4 >Emitted(27, 22) Source(52, 22) + SourceIndex(0) +5 >Emitted(27, 25) Source(52, 25) + SourceIndex(0) +6 >Emitted(27, 34) Source(52, 34) + SourceIndex(0) +7 >Emitted(27, 35) Source(52, 35) + SourceIndex(0) --- >>> } 1 >^^^^ @@ -496,14 +378,468 @@ sourceFile:sourceMapValidationDecorators.ts 1 > 2 > > } -1 >Emitted(29, 5) Source(52, 35) + SourceIndex(0) -2 >Emitted(29, 6) Source(53, 6) + SourceIndex(0) +1 >Emitted(28, 5) Source(52, 35) + SourceIndex(0) +2 >Emitted(28, 6) Source(53, 6) + SourceIndex(0) --- ->>>} +>>>}; 1 >^ -2 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> +2 > ^ +3 > ^^^^^^^^^^^-> 1 > >} -1 >Emitted(30, 2) Source(54, 2) + SourceIndex(0) +2 > +1 >Emitted(29, 2) Source(54, 2) + SourceIndex(0) +2 >Emitted(29, 3) Source(54, 2) + SourceIndex(0) +--- +>>>__decorate([ +1-> +2 >^^^^^^^^^^^^^^^^^^^^^^^^-> +1-> +1->Emitted(30, 1) Source(23, 5) + SourceIndex(0) +--- +>>> PropertyDecorator1, +1->^^^^ +2 > ^^^^^^^^^^^^^^^^^^ +3 > ^^^^^-> +1-> +2 > PropertyDecorator1 +1->Emitted(31, 5) Source(21, 6) + SourceIndex(0) +2 >Emitted(31, 23) Source(21, 24) + SourceIndex(0) +--- +>>> PropertyDecorator2(40) +1->^^^^ +2 > ^^^^^^^^^^^^^^^^^^ +3 > ^ +4 > ^^ +5 > ^ +6 > ^^^^^^^^^^^^-> +1-> + > @ +2 > PropertyDecorator2 +3 > ( +4 > 40 +5 > ) +1->Emitted(32, 5) Source(22, 6) + SourceIndex(0) +2 >Emitted(32, 23) Source(22, 24) + SourceIndex(0) +3 >Emitted(32, 24) Source(22, 25) + SourceIndex(0) +4 >Emitted(32, 26) Source(22, 27) + SourceIndex(0) +5 >Emitted(32, 27) Source(22, 28) + SourceIndex(0) +--- +>>>], Greeter.prototype, "greet", null); +1->^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +1-> + > greet() { + > return "

" + this.greeting + "

"; + > } +1->Emitted(33, 37) Source(25, 6) + SourceIndex(0) +--- +>>>__decorate([ +1 > +2 >^^^^^^^^^^^^^^^^^^^^^^^^-> +1 > + > + > @PropertyDecorator1 + > @PropertyDecorator2(50) + > private +1 >Emitted(34, 1) Source(29, 13) + SourceIndex(0) +--- +>>> PropertyDecorator1, +1->^^^^ +2 > ^^^^^^^^^^^^^^^^^^ +3 > ^^^^^-> +1-> +2 > PropertyDecorator1 +1->Emitted(35, 5) Source(27, 6) + SourceIndex(0) +2 >Emitted(35, 23) Source(27, 24) + SourceIndex(0) +--- +>>> PropertyDecorator2(50) +1->^^^^ +2 > ^^^^^^^^^^^^^^^^^^ +3 > ^ +4 > ^^ +5 > ^ +6 > ^^^^^^^^^^-> +1-> + > @ +2 > PropertyDecorator2 +3 > ( +4 > 50 +5 > ) +1->Emitted(36, 5) Source(28, 6) + SourceIndex(0) +2 >Emitted(36, 23) Source(28, 24) + SourceIndex(0) +3 >Emitted(36, 24) Source(28, 25) + SourceIndex(0) +4 >Emitted(36, 26) Source(28, 27) + SourceIndex(0) +5 >Emitted(36, 27) Source(28, 28) + SourceIndex(0) +--- +>>>], Greeter.prototype, "x", void 0); +1->^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +1-> + > private x: string; +1->Emitted(37, 35) Source(29, 23) + SourceIndex(0) +--- +>>>__decorate([ +1 > +2 >^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> +1 > + > + > @PropertyDecorator1 + > @PropertyDecorator2(60) + > private static x1: number = 10; + > + > private +1 >Emitted(38, 1) Source(35, 13) + SourceIndex(0) +--- +>>> __param(0, ParameterDecorator1), +1->^^^^ +2 > ^^^^^^^^^^^ +3 > ^^^^^^^^^^^^^^^^^^^ +4 > ^ +5 > ^^^^^-> +1->fn( + > @ +2 > +3 > ParameterDecorator1 +4 > +1->Emitted(39, 5) Source(36, 8) + SourceIndex(0) +2 >Emitted(39, 16) Source(36, 8) + SourceIndex(0) +3 >Emitted(39, 35) Source(36, 27) + SourceIndex(0) +4 >Emitted(39, 36) Source(36, 27) + SourceIndex(0) +--- +>>> __param(0, ParameterDecorator2(70)) +1->^^^^ +2 > ^^^^^^^^^^^ +3 > ^^^^^^^^^^^^^^^^^^^ +4 > ^ +5 > ^^ +6 > ^ +7 > ^ +1-> + > @ +2 > +3 > ParameterDecorator2 +4 > ( +5 > 70 +6 > ) +7 > +1->Emitted(40, 5) Source(37, 8) + SourceIndex(0) +2 >Emitted(40, 16) Source(37, 8) + SourceIndex(0) +3 >Emitted(40, 35) Source(37, 27) + SourceIndex(0) +4 >Emitted(40, 36) Source(37, 28) + SourceIndex(0) +5 >Emitted(40, 38) Source(37, 30) + SourceIndex(0) +6 >Emitted(40, 39) Source(37, 31) + SourceIndex(0) +7 >Emitted(40, 40) Source(37, 31) + SourceIndex(0) +--- +>>>], Greeter.prototype, "fn", null); +1 >^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +1 > + > x: number) { + > return this.greeting; + > } +1 >Emitted(41, 34) Source(40, 6) + SourceIndex(0) +--- +>>>__decorate([ +1 > +2 >^^^^^^^^^^^^^^^^^^^^^^^^-> +1 > + > + > @PropertyDecorator1 + > +1 >Emitted(42, 1) Source(43, 5) + SourceIndex(0) +--- +>>> PropertyDecorator1, +1->^^^^ +2 > ^^^^^^^^^^^^^^^^^^ +3 > ^^^^^^-> +1-> +2 > PropertyDecorator1 +1->Emitted(43, 5) Source(42, 6) + SourceIndex(0) +2 >Emitted(43, 23) Source(42, 24) + SourceIndex(0) +--- +>>> PropertyDecorator2(80), +1->^^^^ +2 > ^^^^^^^^^^^^^^^^^^ +3 > ^ +4 > ^^ +5 > ^ +6 > ^^^^^^^^^^^-> +1-> + > @ +2 > PropertyDecorator2 +3 > ( +4 > 80 +5 > ) +1->Emitted(44, 5) Source(43, 6) + SourceIndex(0) +2 >Emitted(44, 23) Source(43, 24) + SourceIndex(0) +3 >Emitted(44, 24) Source(43, 25) + SourceIndex(0) +4 >Emitted(44, 26) Source(43, 27) + SourceIndex(0) +5 >Emitted(44, 27) Source(43, 28) + SourceIndex(0) +--- +>>> __param(0, ParameterDecorator1), +1->^^^^ +2 > ^^^^^^^^^^^ +3 > ^^^^^^^^^^^^^^^^^^^ +4 > ^ +5 > ^^^^^-> +1-> + > get greetings() { + > return this.greeting; + > } + > + > set greetings( + > @ +2 > +3 > ParameterDecorator1 +4 > +1->Emitted(45, 5) Source(49, 8) + SourceIndex(0) +2 >Emitted(45, 16) Source(49, 8) + SourceIndex(0) +3 >Emitted(45, 35) Source(49, 27) + SourceIndex(0) +4 >Emitted(45, 36) Source(49, 27) + SourceIndex(0) +--- +>>> __param(0, ParameterDecorator2(90)) +1->^^^^ +2 > ^^^^^^^^^^^ +3 > ^^^^^^^^^^^^^^^^^^^ +4 > ^ +5 > ^^ +6 > ^ +7 > ^ +8 > ^^^-> +1-> + > @ +2 > +3 > ParameterDecorator2 +4 > ( +5 > 90 +6 > ) +7 > +1->Emitted(46, 5) Source(50, 8) + SourceIndex(0) +2 >Emitted(46, 16) Source(50, 8) + SourceIndex(0) +3 >Emitted(46, 35) Source(50, 27) + SourceIndex(0) +4 >Emitted(46, 36) Source(50, 28) + SourceIndex(0) +5 >Emitted(46, 38) Source(50, 30) + SourceIndex(0) +6 >Emitted(46, 39) Source(50, 31) + SourceIndex(0) +7 >Emitted(46, 40) Source(50, 31) + SourceIndex(0) +--- +>>>], Greeter.prototype, "greetings", null); +1->^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +1-> +1->Emitted(47, 41) Source(46, 6) + SourceIndex(0) +--- +>>>__decorate([ +1 > +2 >^^^^^^^^^^^^^^^^^^^^^^^^-> +1 > +1 >Emitted(48, 1) Source(33, 20) + SourceIndex(0) +--- +>>> PropertyDecorator1, +1->^^^^ +2 > ^^^^^^^^^^^^^^^^^^ +3 > ^^^^^-> +1-> +2 > PropertyDecorator1 +1->Emitted(49, 5) Source(31, 6) + SourceIndex(0) +2 >Emitted(49, 23) Source(31, 24) + SourceIndex(0) +--- +>>> PropertyDecorator2(60) +1->^^^^ +2 > ^^^^^^^^^^^^^^^^^^ +3 > ^ +4 > ^^ +5 > ^ +6 > ^-> +1-> + > @ +2 > PropertyDecorator2 +3 > ( +4 > 60 +5 > ) +1->Emitted(50, 5) Source(32, 6) + SourceIndex(0) +2 >Emitted(50, 23) Source(32, 24) + SourceIndex(0) +3 >Emitted(50, 24) Source(32, 25) + SourceIndex(0) +4 >Emitted(50, 26) Source(32, 27) + SourceIndex(0) +5 >Emitted(50, 27) Source(32, 28) + SourceIndex(0) +--- +>>>], Greeter, "x1", void 0); +1->^^^^^^^^^^^^^^^^^^^^^^^^^ +1-> + > private static x1: number = 10; +1->Emitted(51, 26) Source(33, 36) + SourceIndex(0) +--- +>>>Greeter = __decorate([ +1 > +2 >^^^^^^^ +3 > ^^^^^^^^^^^^^^-> +1 > +2 >Greeter +1 >Emitted(52, 1) Source(10, 7) + SourceIndex(0) +2 >Emitted(52, 8) Source(10, 14) + SourceIndex(0) +--- +>>> ClassDecorator1, +1->^^^^ +2 > ^^^^^^^^^^^^^^^ +3 > ^^^^^^-> +1-> +2 > ClassDecorator1 +1->Emitted(53, 5) Source(8, 2) + SourceIndex(0) +2 >Emitted(53, 20) Source(8, 17) + SourceIndex(0) +--- +>>> ClassDecorator2(10), +1->^^^^ +2 > ^^^^^^^^^^^^^^^ +3 > ^ +4 > ^^ +5 > ^ +6 > ^^^^^^^^^^^^^^-> +1-> + >@ +2 > ClassDecorator2 +3 > ( +4 > 10 +5 > ) +1->Emitted(54, 5) Source(9, 2) + SourceIndex(0) +2 >Emitted(54, 20) Source(9, 17) + SourceIndex(0) +3 >Emitted(54, 21) Source(9, 18) + SourceIndex(0) +4 >Emitted(54, 23) Source(9, 20) + SourceIndex(0) +5 >Emitted(54, 24) Source(9, 21) + SourceIndex(0) +--- +>>> __param(0, ParameterDecorator1), +1->^^^^ +2 > ^^^^^^^^^^^ +3 > ^^^^^^^^^^^^^^^^^^^ +4 > ^ +5 > ^^^^^^-> +1-> + >class Greeter { + > constructor( + > @ +2 > +3 > ParameterDecorator1 +4 > +1->Emitted(55, 5) Source(12, 8) + SourceIndex(0) +2 >Emitted(55, 16) Source(12, 8) + SourceIndex(0) +3 >Emitted(55, 35) Source(12, 27) + SourceIndex(0) +4 >Emitted(55, 36) Source(12, 27) + SourceIndex(0) +--- +>>> __param(0, ParameterDecorator2(20)), +1->^^^^ +2 > ^^^^^^^^^^^ +3 > ^^^^^^^^^^^^^^^^^^^ +4 > ^ +5 > ^^ +6 > ^ +7 > ^ +1-> + > @ +2 > +3 > ParameterDecorator2 +4 > ( +5 > 20 +6 > ) +7 > +1->Emitted(56, 5) Source(13, 8) + SourceIndex(0) +2 >Emitted(56, 16) Source(13, 8) + SourceIndex(0) +3 >Emitted(56, 35) Source(13, 27) + SourceIndex(0) +4 >Emitted(56, 36) Source(13, 28) + SourceIndex(0) +5 >Emitted(56, 38) Source(13, 30) + SourceIndex(0) +6 >Emitted(56, 39) Source(13, 31) + SourceIndex(0) +7 >Emitted(56, 40) Source(13, 31) + SourceIndex(0) +--- +>>> __param(1, ParameterDecorator1), +1 >^^^^ +2 > ^^^^^^^^^^^ +3 > ^^^^^^^^^^^^^^^^^^^ +4 > ^ +5 > ^^^^^-> +1 > + > public greeting: string, + > + > @ +2 > +3 > ParameterDecorator1 +4 > +1 >Emitted(57, 5) Source(16, 8) + SourceIndex(0) +2 >Emitted(57, 16) Source(16, 8) + SourceIndex(0) +3 >Emitted(57, 35) Source(16, 27) + SourceIndex(0) +4 >Emitted(57, 36) Source(16, 27) + SourceIndex(0) +--- +>>> __param(1, ParameterDecorator2(30)) +1->^^^^ +2 > ^^^^^^^^^^^ +3 > ^^^^^^^^^^^^^^^^^^^ +4 > ^ +5 > ^^ +6 > ^ +7 > ^ +1-> + > @ +2 > +3 > ParameterDecorator2 +4 > ( +5 > 30 +6 > ) +7 > +1->Emitted(58, 5) Source(17, 8) + SourceIndex(0) +2 >Emitted(58, 16) Source(17, 8) + SourceIndex(0) +3 >Emitted(58, 35) Source(17, 27) + SourceIndex(0) +4 >Emitted(58, 36) Source(17, 28) + SourceIndex(0) +5 >Emitted(58, 38) Source(17, 30) + SourceIndex(0) +6 >Emitted(58, 39) Source(17, 31) + SourceIndex(0) +7 >Emitted(58, 40) Source(17, 31) + SourceIndex(0) +--- +>>>], Greeter); +1 >^^^ +2 > ^^^^^^^ +3 > ^ +4 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> +1 > +2 > Greeter +3 > { + > constructor( + > @ParameterDecorator1 + > @ParameterDecorator2(20) + > public greeting: string, + > + > @ParameterDecorator1 + > @ParameterDecorator2(30) + > ...b: string[]) { + > } + > + > @PropertyDecorator1 + > @PropertyDecorator2(40) + > greet() { + > return "

" + this.greeting + "

"; + > } + > + > @PropertyDecorator1 + > @PropertyDecorator2(50) + > private x: string; + > + > @PropertyDecorator1 + > @PropertyDecorator2(60) + > private static x1: number = 10; + > + > private fn( + > @ParameterDecorator1 + > @ParameterDecorator2(70) + > x: number) { + > return this.greeting; + > } + > + > @PropertyDecorator1 + > @PropertyDecorator2(80) + > get greetings() { + > return this.greeting; + > } + > + > set greetings( + > @ParameterDecorator1 + > @ParameterDecorator2(90) + > greetings: string) { + > this.greeting = greetings; + > } + > } +1 >Emitted(59, 4) Source(10, 7) + SourceIndex(0) +2 >Emitted(59, 11) Source(10, 14) + SourceIndex(0) +3 >Emitted(59, 12) Source(54, 2) + SourceIndex(0) --- >>>//# sourceMappingURL=sourceMapValidationDecorators.js.map \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/sourceMapValidationDecorators.sourcemap.txt.diff b/testdata/baselines/reference/submodule/compiler/sourceMapValidationDecorators.sourcemap.txt.diff index adb11aa9a9..733a1c8759 100644 --- a/testdata/baselines/reference/submodule/compiler/sourceMapValidationDecorators.sourcemap.txt.diff +++ b/testdata/baselines/reference/submodule/compiler/sourceMapValidationDecorators.sourcemap.txt.diff @@ -1,101 +1,54 @@ --- old.sourceMapValidationDecorators.sourcemap.txt +++ new.sourceMapValidationDecorators.sourcemap.txt -@@= skipped -7, +7 lines =@@ - emittedFile:sourceMapValidationDecorators.js - sourceFile:sourceMapValidationDecorators.ts - ------------------------------------------------------------------- -->>>var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { -->>> var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; -->>> if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); -->>> else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; -->>> return c > 3 && r && Object.defineProperty(target, key, r), r; -->>>}; -->>>var __param = (this && this.__param) || function (paramIndex, decorator) { -->>> return function (target, key) { decorator(target, key, paramIndex); } -->>>}; -->>>let Greeter = class Greeter { -+>>>@ClassDecorator1 - 1 > --2 >^^^^ --3 > ^^^^^^^ --4 > ^^^ --5 > ^^^^^^ --6 > ^^^^^^^ +@@= skipped -23, +23 lines =@@ + 4 > ^^^ + 5 > ^^^^^^ + 6 > ^^^^^^^ -7 > ^^^^^^^-> -+2 >^ -+3 > ^^^^^^^^^^^^^^^ -+4 > ^^^^^-> 1 >declare function ClassDecorator1(target: Function): void; >declare function ClassDecorator2(x: number): (target: Function) => void; >declare function PropertyDecorator1(target: Object, key: string | symbol, descriptor?: PropertyDescriptor): void; -@@= skipped -24, +12 lines =@@ - >declare function ParameterDecorator1(target: Object, key: string | symbol, paramIndex: number): void; +@@= skipped -9, +8 lines =@@ >declare function ParameterDecorator2(x: number): (target: Object, key: string | symbol, paramIndex: number) => void; > -- >@ClassDecorator1 + >@ClassDecorator1 - >@ClassDecorator2(10) > -2 >class --3 > Greeter --4 > ++2 >@ClassDecorator2(10) ++ >class + 3 > Greeter + 4 > -5 > class --6 > Greeter ++5 > @ClassDecorator2(10) ++ > class + 6 > Greeter -1 >Emitted(10, 1) Source(10, 1) + SourceIndex(0) --2 >Emitted(10, 5) Source(10, 7) + SourceIndex(0) --3 >Emitted(10, 12) Source(10, 14) + SourceIndex(0) ++1 >Emitted(10, 1) Source(9, 1) + SourceIndex(0) + 2 >Emitted(10, 5) Source(10, 7) + SourceIndex(0) + 3 >Emitted(10, 12) Source(10, 14) + SourceIndex(0) -4 >Emitted(10, 15) Source(10, 1) + SourceIndex(0) --5 >Emitted(10, 21) Source(10, 7) + SourceIndex(0) --6 >Emitted(10, 28) Source(10, 14) + SourceIndex(0) -+2 >@ -+3 > ClassDecorator1 -+1 >Emitted(1, 1) Source(8, 1) + SourceIndex(0) -+2 >Emitted(1, 2) Source(8, 2) + SourceIndex(0) -+3 >Emitted(1, 17) Source(8, 17) + SourceIndex(0) -+--- -+>>>@ClassDecorator2(10) -+1->^ -+2 > ^^^^^^^^^^^^^^^ -+3 > ^ -+4 > ^^ -+5 > ^ -+1-> -+ >@ -+2 > ClassDecorator2 -+3 > ( -+4 > 10 -+5 > ) -+1->Emitted(2, 2) Source(9, 2) + SourceIndex(0) -+2 >Emitted(2, 17) Source(9, 17) + SourceIndex(0) -+3 >Emitted(2, 18) Source(9, 18) + SourceIndex(0) -+4 >Emitted(2, 20) Source(9, 20) + SourceIndex(0) -+5 >Emitted(2, 21) Source(9, 21) + SourceIndex(0) -+--- -+>>>class Greeter { -+1 >^^^^^^ -+2 > ^^^^^^^ -+3 > ^-> -+1 > -+ >class -+2 > Greeter -+1 >Emitted(3, 7) Source(10, 7) + SourceIndex(0) -+2 >Emitted(3, 14) Source(10, 14) + SourceIndex(0) -+--- ++4 >Emitted(10, 15) Source(9, 1) + SourceIndex(0) + 5 >Emitted(10, 21) Source(10, 7) + SourceIndex(0) + 6 >Emitted(10, 28) Source(10, 14) + SourceIndex(0) + --- +>>> greeting; -+1->^^^^ ++1 >^^^^ +2 > ^^^^^^^^ +3 > ^^^^^^^^^^^^^^^^^^^^^^-> -+1-> { ++1 > { + > constructor( + > @ParameterDecorator1 + > @ParameterDecorator2(20) + > public +2 > greeting -+1->Emitted(4, 5) Source(14, 14) + SourceIndex(0) -+2 >Emitted(4, 13) Source(14, 22) + SourceIndex(0) - --- ++1 >Emitted(11, 5) Source(14, 14) + SourceIndex(0) ++2 >Emitted(11, 13) Source(14, 22) + SourceIndex(0) ++--- >>> constructor(greeting, ...b) { 1->^^^^ -@@= skipped -22, +55 lines =@@ + 2 > ^^^^^^^^^^^^ +@@= skipped -21, +35 lines =@@ 4 > ^^ 5 > ^^^ 6 > ^ @@ -119,13 +72,13 @@ -5 >Emitted(11, 30) Source(18, 10) + SourceIndex(0) -6 >Emitted(11, 31) Source(18, 21) + SourceIndex(0) +7 > ) -+1->Emitted(5, 5) Source(11, 5) + SourceIndex(0) -+2 >Emitted(5, 17) Source(14, 14) + SourceIndex(0) -+3 >Emitted(5, 25) Source(14, 30) + SourceIndex(0) -+4 >Emitted(5, 27) Source(18, 7) + SourceIndex(0) -+5 >Emitted(5, 30) Source(18, 10) + SourceIndex(0) -+6 >Emitted(5, 31) Source(18, 21) + SourceIndex(0) -+7 >Emitted(5, 33) Source(18, 23) + SourceIndex(0) ++1->Emitted(12, 5) Source(11, 5) + SourceIndex(0) ++2 >Emitted(12, 17) Source(14, 14) + SourceIndex(0) ++3 >Emitted(12, 25) Source(14, 30) + SourceIndex(0) ++4 >Emitted(12, 27) Source(18, 7) + SourceIndex(0) ++5 >Emitted(12, 30) Source(18, 10) + SourceIndex(0) ++6 >Emitted(12, 31) Source(18, 21) + SourceIndex(0) ++7 >Emitted(12, 33) Source(18, 23) + SourceIndex(0) --- >>> this.greeting = greeting; -1->^^^^^^^^ @@ -146,15 +99,14 @@ -4 >Emitted(12, 33) Source(14, 22) + SourceIndex(0) -5 >Emitted(12, 34) Source(14, 30) + SourceIndex(0) +2 > greeting -+1->Emitted(6, 25) Source(14, 14) + SourceIndex(0) -+2 >Emitted(6, 33) Source(14, 22) + SourceIndex(0) ++1->Emitted(13, 25) Source(14, 14) + SourceIndex(0) ++2 >Emitted(13, 33) Source(14, 22) + SourceIndex(0) --- >>> } 1 >^^^^ 2 > ^ --3 > ^^^^^^^^^-> + 3 > ^^^^^^^^^-> -1 >, -+3 > ^^^^^^^^^^^^^^^^^^^-> +1 >: string, > > @ParameterDecorator1 @@ -166,65 +118,31 @@ -2 >Emitted(13, 6) Source(19, 6) + SourceIndex(0) +2 > + > } -+1 >Emitted(7, 5) Source(18, 24) + SourceIndex(0) -+2 >Emitted(7, 6) Source(19, 6) + SourceIndex(0) -+--- -+>>> @PropertyDecorator1 -+1->^^^^ -+2 > ^ -+3 > ^^^^^^^^^^^^^^^^^^ -+4 > ^^^^^-> -+1-> -+ > -+ > -+2 > @ -+3 > PropertyDecorator1 -+1->Emitted(8, 5) Source(21, 5) + SourceIndex(0) -+2 >Emitted(8, 6) Source(21, 6) + SourceIndex(0) -+3 >Emitted(8, 24) Source(21, 24) + SourceIndex(0) -+--- -+>>> @PropertyDecorator2(40) -+1->^^^^^ -+2 > ^^^^^^^^^^^^^^^^^^ -+3 > ^ -+4 > ^^ -+5 > ^ -+1-> -+ > @ -+2 > PropertyDecorator2 -+3 > ( -+4 > 40 -+5 > ) -+1->Emitted(9, 6) Source(22, 6) + SourceIndex(0) -+2 >Emitted(9, 24) Source(22, 24) + SourceIndex(0) -+3 >Emitted(9, 25) Source(22, 25) + SourceIndex(0) -+4 >Emitted(9, 27) Source(22, 27) + SourceIndex(0) -+5 >Emitted(9, 28) Source(22, 28) + SourceIndex(0) ++1 >Emitted(14, 5) Source(18, 24) + SourceIndex(0) ++2 >Emitted(14, 6) Source(19, 6) + SourceIndex(0) --- >>> greet() { --1->^^^^ -+1 >^^^^ + 1->^^^^ 2 > ^^^^^ -3 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> --1-> -- > -- > @PropertyDecorator1 -- > @PropertyDecorator2(40) +3 > ^^^ +4 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> -+1 > + 1-> + > + > @PropertyDecorator1 + > @PropertyDecorator2(40) > 2 > greet -1->Emitted(14, 5) Source(23, 5) + SourceIndex(0) -2 >Emitted(14, 10) Source(23, 10) + SourceIndex(0) +3 > () -+1 >Emitted(10, 5) Source(23, 5) + SourceIndex(0) -+2 >Emitted(10, 10) Source(23, 10) + SourceIndex(0) -+3 >Emitted(10, 13) Source(23, 13) + SourceIndex(0) ++1->Emitted(15, 5) Source(23, 5) + SourceIndex(0) ++2 >Emitted(15, 10) Source(23, 10) + SourceIndex(0) ++3 >Emitted(15, 13) Source(23, 13) + SourceIndex(0) --- >>> return "

" + this.greeting + "

"; 1->^^^^^^^^ -@@= skipped -62, +87 lines =@@ +@@= skipped -62, +58 lines =@@ 8 > ^^^ 9 > ^^^^^^^ 10> ^ @@ -247,133 +165,77 @@ -8 >Emitted(15, 41) Source(24, 41) + SourceIndex(0) -9 >Emitted(15, 48) Source(24, 48) + SourceIndex(0) -10>Emitted(15, 49) Source(24, 49) + SourceIndex(0) -+1->Emitted(11, 9) Source(24, 9) + SourceIndex(0) -+2 >Emitted(11, 16) Source(24, 16) + SourceIndex(0) -+3 >Emitted(11, 22) Source(24, 22) + SourceIndex(0) -+4 >Emitted(11, 25) Source(24, 25) + SourceIndex(0) -+5 >Emitted(11, 29) Source(24, 29) + SourceIndex(0) -+6 >Emitted(11, 30) Source(24, 30) + SourceIndex(0) -+7 >Emitted(11, 38) Source(24, 38) + SourceIndex(0) -+8 >Emitted(11, 41) Source(24, 41) + SourceIndex(0) -+9 >Emitted(11, 48) Source(24, 48) + SourceIndex(0) -+10>Emitted(11, 49) Source(24, 49) + SourceIndex(0) ++1->Emitted(16, 9) Source(24, 9) + SourceIndex(0) ++2 >Emitted(16, 16) Source(24, 16) + SourceIndex(0) ++3 >Emitted(16, 22) Source(24, 22) + SourceIndex(0) ++4 >Emitted(16, 25) Source(24, 25) + SourceIndex(0) ++5 >Emitted(16, 29) Source(24, 29) + SourceIndex(0) ++6 >Emitted(16, 30) Source(24, 30) + SourceIndex(0) ++7 >Emitted(16, 38) Source(24, 38) + SourceIndex(0) ++8 >Emitted(16, 41) Source(24, 41) + SourceIndex(0) ++9 >Emitted(16, 48) Source(24, 48) + SourceIndex(0) ++10>Emitted(16, 49) Source(24, 49) + SourceIndex(0) --- >>> } 1 >^^^^ 2 > ^ -3 > ^^^^^^^-> --1 > ++3 > ^^-> + 1 > - > -2 > } -1 >Emitted(16, 5) Source(25, 5) + SourceIndex(0) -2 >Emitted(16, 6) Source(25, 6) + SourceIndex(0) -+3 > ^^^^^^^^^^^^^^^^^^^-> -+1 > +2 > + > } -+1 >Emitted(12, 5) Source(24, 49) + SourceIndex(0) -+2 >Emitted(12, 6) Source(25, 6) + SourceIndex(0) ++1 >Emitted(17, 5) Source(24, 49) + SourceIndex(0) ++2 >Emitted(17, 6) Source(25, 6) + SourceIndex(0) +--- -+>>> @PropertyDecorator1 ++>>> x; +1->^^^^ +2 > ^ -+3 > ^^^^^^^^^^^^^^^^^^ -+4 > ^^^^^-> ++3 > ^ ++4 > ^^^^^^^^^^^^^^-> +1-> + > -+ > -+2 > @ -+3 > PropertyDecorator1 -+1->Emitted(13, 5) Source(27, 5) + SourceIndex(0) -+2 >Emitted(13, 6) Source(27, 6) + SourceIndex(0) -+3 >Emitted(13, 24) Source(27, 24) + SourceIndex(0) -+--- -+>>> @PropertyDecorator2(50) -+1->^^^^^ -+2 > ^^^^^^^^^^^^^^^^^^ -+3 > ^ -+4 > ^^ -+5 > ^ -+1-> -+ > @ -+2 > PropertyDecorator2 -+3 > ( -+4 > 50 -+5 > ) -+1->Emitted(14, 6) Source(28, 6) + SourceIndex(0) -+2 >Emitted(14, 24) Source(28, 24) + SourceIndex(0) -+3 >Emitted(14, 25) Source(28, 25) + SourceIndex(0) -+4 >Emitted(14, 27) Source(28, 27) + SourceIndex(0) -+5 >Emitted(14, 28) Source(28, 28) + SourceIndex(0) -+--- -+>>> x; -+1 >^^^^ -+2 > ^ -+3 > ^ -+4 > ^^^^^^^^^^^^^^^^^^-> -+1 > ++ > @PropertyDecorator1 ++ > @PropertyDecorator2(50) + > private +2 > x +3 > : string; -+1 >Emitted(15, 5) Source(29, 13) + SourceIndex(0) -+2 >Emitted(15, 6) Source(29, 14) + SourceIndex(0) -+3 >Emitted(15, 7) Source(29, 23) + SourceIndex(0) ++1->Emitted(18, 5) Source(29, 13) + SourceIndex(0) ++2 >Emitted(18, 6) Source(29, 14) + SourceIndex(0) ++3 >Emitted(18, 7) Source(29, 23) + SourceIndex(0) +--- -+>>> @PropertyDecorator1 ++>>> static x1 = 10; +1->^^^^ -+2 > ^ -+3 > ^^^^^^^^^^^^^^^^^^ -+4 > ^^^^^-> ++2 > ++3 > ^^^^^^ ++4 > ^ ++5 > ^^ ++6 > ^^^ ++7 > ^^ ++8 > ^ +1-> + > -+ > -+2 > @ -+3 > PropertyDecorator1 -+1->Emitted(16, 5) Source(31, 5) + SourceIndex(0) -+2 >Emitted(16, 6) Source(31, 6) + SourceIndex(0) -+3 >Emitted(16, 24) Source(31, 24) + SourceIndex(0) -+--- -+>>> @PropertyDecorator2(60) -+1->^^^^^ -+2 > ^^^^^^^^^^^^^^^^^^ -+3 > ^ -+4 > ^^ -+5 > ^ -+1-> -+ > @ -+2 > PropertyDecorator2 -+3 > ( -+4 > 60 -+5 > ) -+1->Emitted(17, 6) Source(32, 6) + SourceIndex(0) -+2 >Emitted(17, 24) Source(32, 24) + SourceIndex(0) -+3 >Emitted(17, 25) Source(32, 25) + SourceIndex(0) -+4 >Emitted(17, 27) Source(32, 27) + SourceIndex(0) -+5 >Emitted(17, 28) Source(32, 28) + SourceIndex(0) -+--- -+>>> static x1 = 10; -+1 >^^^^ -+2 > ^^^^^^ -+3 > ^ -+4 > ^^ -+5 > ^^^ -+6 > ^^ -+7 > ^ -+1 > -+ > private -+2 > static -+3 > -+4 > x1 -+5 > : number = -+6 > 10 -+7 > ; -+1 >Emitted(18, 5) Source(33, 13) + SourceIndex(0) -+2 >Emitted(18, 11) Source(33, 19) + SourceIndex(0) -+3 >Emitted(18, 12) Source(33, 20) + SourceIndex(0) -+4 >Emitted(18, 14) Source(33, 22) + SourceIndex(0) -+5 >Emitted(18, 17) Source(33, 33) + SourceIndex(0) -+6 >Emitted(18, 19) Source(33, 35) + SourceIndex(0) -+7 >Emitted(18, 20) Source(33, 36) + SourceIndex(0) ++ > @PropertyDecorator1 ++ > @PropertyDecorator2(60) ++ > private static ++2 > ++3 > static ++4 > ++5 > x1 ++6 > : number = ++7 > 10 ++8 > ; ++1->Emitted(19, 5) Source(33, 20) + SourceIndex(0) ++2 >Emitted(19, 5) Source(33, 13) + SourceIndex(0) ++3 >Emitted(19, 11) Source(33, 19) + SourceIndex(0) ++4 >Emitted(19, 12) Source(33, 20) + SourceIndex(0) ++5 >Emitted(19, 14) Source(33, 22) + SourceIndex(0) ++6 >Emitted(19, 17) Source(33, 33) + SourceIndex(0) ++7 >Emitted(19, 19) Source(33, 35) + SourceIndex(0) ++8 >Emitted(19, 20) Source(33, 36) + SourceIndex(0) --- >>> fn(x) { -1->^^^^ @@ -397,7 +259,7 @@ > > private 2 > fn -@@= skipped -44, +138 lines =@@ +@@= skipped -44, +83 lines =@@ > @ParameterDecorator2(70) > 4 > x: number @@ -406,11 +268,11 @@ -3 >Emitted(17, 8) Source(38, 7) + SourceIndex(0) -4 >Emitted(17, 9) Source(38, 16) + SourceIndex(0) +5 > ) -+1 >Emitted(19, 5) Source(35, 13) + SourceIndex(0) -+2 >Emitted(19, 7) Source(35, 15) + SourceIndex(0) -+3 >Emitted(19, 8) Source(38, 7) + SourceIndex(0) -+4 >Emitted(19, 9) Source(38, 16) + SourceIndex(0) -+5 >Emitted(19, 11) Source(38, 18) + SourceIndex(0) ++1 >Emitted(20, 5) Source(35, 13) + SourceIndex(0) ++2 >Emitted(20, 7) Source(35, 15) + SourceIndex(0) ++3 >Emitted(20, 8) Source(38, 7) + SourceIndex(0) ++4 >Emitted(20, 9) Source(38, 16) + SourceIndex(0) ++5 >Emitted(20, 11) Source(38, 18) + SourceIndex(0) --- >>> return this.greeting; 1->^^^^^^^^ @@ -432,89 +294,55 @@ -4 >Emitted(18, 21) Source(39, 21) + SourceIndex(0) -5 >Emitted(18, 29) Source(39, 29) + SourceIndex(0) -6 >Emitted(18, 30) Source(39, 30) + SourceIndex(0) -+1->Emitted(20, 9) Source(39, 9) + SourceIndex(0) -+2 >Emitted(20, 16) Source(39, 16) + SourceIndex(0) -+3 >Emitted(20, 20) Source(39, 20) + SourceIndex(0) -+4 >Emitted(20, 21) Source(39, 21) + SourceIndex(0) -+5 >Emitted(20, 29) Source(39, 29) + SourceIndex(0) -+6 >Emitted(20, 30) Source(39, 30) + SourceIndex(0) ++1->Emitted(21, 9) Source(39, 9) + SourceIndex(0) ++2 >Emitted(21, 16) Source(39, 16) + SourceIndex(0) ++3 >Emitted(21, 20) Source(39, 20) + SourceIndex(0) ++4 >Emitted(21, 21) Source(39, 21) + SourceIndex(0) ++5 >Emitted(21, 29) Source(39, 29) + SourceIndex(0) ++6 >Emitted(21, 30) Source(39, 30) + SourceIndex(0) --- >>> } 1 >^^^^ 2 > ^ --3 > ^^^^^^^^^^^^^^^^^-> -+3 > ^^^^^^^^^^^^^^^^^^^-> + 3 > ^^^^^^^^^^^^^^^^^-> 1 > -+2 > -+ > } -+1 >Emitted(21, 5) Source(39, 30) + SourceIndex(0) -+2 >Emitted(21, 6) Source(40, 6) + SourceIndex(0) -+--- -+>>> @PropertyDecorator1 -+1->^^^^ -+2 > ^ -+3 > ^^^^^^^^^^^^^^^^^^ -+4 > ^^^^^-> -+1-> -+ > - > +- > -2 > } -1 >Emitted(19, 5) Source(40, 5) + SourceIndex(0) -2 >Emitted(19, 6) Source(40, 6) + SourceIndex(0) -+2 > @ -+3 > PropertyDecorator1 -+1->Emitted(22, 5) Source(42, 5) + SourceIndex(0) -+2 >Emitted(22, 6) Source(42, 6) + SourceIndex(0) -+3 >Emitted(22, 24) Source(42, 24) + SourceIndex(0) -+--- -+>>> @PropertyDecorator2(80) -+1->^^^^^ -+2 > ^^^^^^^^^^^^^^^^^^ -+3 > ^ -+4 > ^^ -+5 > ^ -+1-> -+ > @ -+2 > PropertyDecorator2 -+3 > ( -+4 > 80 -+5 > ) -+1->Emitted(23, 6) Source(43, 6) + SourceIndex(0) -+2 >Emitted(23, 24) Source(43, 24) + SourceIndex(0) -+3 >Emitted(23, 25) Source(43, 25) + SourceIndex(0) -+4 >Emitted(23, 27) Source(43, 27) + SourceIndex(0) -+5 >Emitted(23, 28) Source(43, 28) + SourceIndex(0) ++2 > ++ > } ++1 >Emitted(22, 5) Source(39, 30) + SourceIndex(0) ++2 >Emitted(22, 6) Source(40, 6) + SourceIndex(0) --- >>> get greetings() { --1->^^^^ --2 > ^^^^ --3 > ^^^^^^^^^ + 1->^^^^ + 2 > ^^^^ + 3 > ^^^^^^^^^ -4 > ^^^^^^^^^^^^^-> --1-> -- > -- > @PropertyDecorator1 ++4 > ^^^ ++5 > ^^^^^^^^^^-> + 1-> + > + > @PropertyDecorator1 - > @PropertyDecorator2(80) -- > + > -2 > get --3 > greetings ++2 > @PropertyDecorator2(80) ++ > get + 3 > greetings -1->Emitted(20, 5) Source(44, 5) + SourceIndex(0) -2 >Emitted(20, 9) Source(44, 9) + SourceIndex(0) -3 >Emitted(20, 18) Source(44, 18) + SourceIndex(0) -+1 >^^^^^^^^ -+2 > ^^^^^^^^^ -+3 > ^^^ -+4 > ^^^^^^^^^^-> -+1 > -+ > get -+2 > greetings -+3 > () -+1 >Emitted(24, 9) Source(44, 9) + SourceIndex(0) -+2 >Emitted(24, 18) Source(44, 18) + SourceIndex(0) -+3 >Emitted(24, 21) Source(44, 21) + SourceIndex(0) ++4 > () ++1->Emitted(23, 5) Source(43, 5) + SourceIndex(0) ++2 >Emitted(23, 9) Source(44, 9) + SourceIndex(0) ++3 >Emitted(23, 18) Source(44, 18) + SourceIndex(0) ++4 >Emitted(23, 21) Source(44, 21) + SourceIndex(0) --- >>> return this.greeting; 1->^^^^^^^^ -@@= skipped -47, +76 lines =@@ +@@= skipped -47, +50 lines =@@ 4 > ^ 5 > ^^^^^^^^ 6 > ^ @@ -532,12 +360,12 @@ -4 >Emitted(21, 21) Source(45, 21) + SourceIndex(0) -5 >Emitted(21, 29) Source(45, 29) + SourceIndex(0) -6 >Emitted(21, 30) Source(45, 30) + SourceIndex(0) -+1->Emitted(25, 9) Source(45, 9) + SourceIndex(0) -+2 >Emitted(25, 16) Source(45, 16) + SourceIndex(0) -+3 >Emitted(25, 20) Source(45, 20) + SourceIndex(0) -+4 >Emitted(25, 21) Source(45, 21) + SourceIndex(0) -+5 >Emitted(25, 29) Source(45, 29) + SourceIndex(0) -+6 >Emitted(25, 30) Source(45, 30) + SourceIndex(0) ++1->Emitted(24, 9) Source(45, 9) + SourceIndex(0) ++2 >Emitted(24, 16) Source(45, 16) + SourceIndex(0) ++3 >Emitted(24, 20) Source(45, 20) + SourceIndex(0) ++4 >Emitted(24, 21) Source(45, 21) + SourceIndex(0) ++5 >Emitted(24, 29) Source(45, 29) + SourceIndex(0) ++6 >Emitted(24, 30) Source(45, 30) + SourceIndex(0) --- >>> } 1 >^^^^ @@ -550,8 +378,8 @@ -2 >Emitted(22, 6) Source(46, 6) + SourceIndex(0) +2 > + > } -+1 >Emitted(26, 5) Source(45, 30) + SourceIndex(0) -+2 >Emitted(26, 6) Source(46, 6) + SourceIndex(0) ++1 >Emitted(25, 5) Source(45, 30) + SourceIndex(0) ++2 >Emitted(25, 6) Source(46, 6) + SourceIndex(0) --- >>> set greetings(greetings) { 1->^^^^ @@ -575,12 +403,12 @@ -4 >Emitted(23, 19) Source(51, 7) + SourceIndex(0) -5 >Emitted(23, 28) Source(51, 24) + SourceIndex(0) +6 > ) -+1->Emitted(27, 5) Source(48, 5) + SourceIndex(0) -+2 >Emitted(27, 9) Source(48, 9) + SourceIndex(0) -+3 >Emitted(27, 18) Source(48, 18) + SourceIndex(0) -+4 >Emitted(27, 19) Source(51, 7) + SourceIndex(0) -+5 >Emitted(27, 28) Source(51, 24) + SourceIndex(0) -+6 >Emitted(27, 30) Source(51, 26) + SourceIndex(0) ++1->Emitted(26, 5) Source(48, 5) + SourceIndex(0) ++2 >Emitted(26, 9) Source(48, 9) + SourceIndex(0) ++3 >Emitted(26, 18) Source(48, 18) + SourceIndex(0) ++4 >Emitted(26, 19) Source(51, 7) + SourceIndex(0) ++5 >Emitted(26, 28) Source(51, 24) + SourceIndex(0) ++6 >Emitted(26, 30) Source(51, 26) + SourceIndex(0) --- >>> this.greeting = greetings; 1->^^^^^^^^ @@ -604,13 +432,13 @@ -5 >Emitted(24, 25) Source(52, 25) + SourceIndex(0) -6 >Emitted(24, 34) Source(52, 34) + SourceIndex(0) -7 >Emitted(24, 35) Source(52, 35) + SourceIndex(0) -+1->Emitted(28, 9) Source(52, 9) + SourceIndex(0) -+2 >Emitted(28, 13) Source(52, 13) + SourceIndex(0) -+3 >Emitted(28, 14) Source(52, 14) + SourceIndex(0) -+4 >Emitted(28, 22) Source(52, 22) + SourceIndex(0) -+5 >Emitted(28, 25) Source(52, 25) + SourceIndex(0) -+6 >Emitted(28, 34) Source(52, 34) + SourceIndex(0) -+7 >Emitted(28, 35) Source(52, 35) + SourceIndex(0) ++1->Emitted(27, 9) Source(52, 9) + SourceIndex(0) ++2 >Emitted(27, 13) Source(52, 13) + SourceIndex(0) ++3 >Emitted(27, 14) Source(52, 14) + SourceIndex(0) ++4 >Emitted(27, 22) Source(52, 22) + SourceIndex(0) ++5 >Emitted(27, 25) Source(52, 25) + SourceIndex(0) ++6 >Emitted(27, 34) Source(52, 34) + SourceIndex(0) ++7 >Emitted(27, 35) Source(52, 35) + SourceIndex(0) --- >>> } 1 >^^^^ @@ -620,8 +448,12 @@ -2 > } -1 >Emitted(25, 5) Source(53, 5) + SourceIndex(0) -2 >Emitted(25, 6) Source(53, 6) + SourceIndex(0) ----- -->>>}; ++2 > ++ > } ++1 >Emitted(28, 5) Source(52, 35) + SourceIndex(0) ++2 >Emitted(28, 6) Source(53, 6) + SourceIndex(0) + --- + >>>}; ->>>Greeter.x1 = 10; -1 > -2 >^^^^^^^^^^ @@ -641,137 +473,135 @@ -4 >Emitted(27, 16) Source(33, 35) + SourceIndex(0) -5 >Emitted(27, 16) Source(33, 22) + SourceIndex(0) -6 >Emitted(27, 17) Source(33, 36) + SourceIndex(0) ----- -->>>__decorate([ ++1 >^ ++2 > ^ ++3 > ^^^^^^^^^^^-> ++1 > ++ >} ++2 > ++1 >Emitted(29, 2) Source(54, 2) + SourceIndex(0) ++2 >Emitted(29, 3) Source(54, 2) + SourceIndex(0) + --- + >>>__decorate([ -1 > --2 >^^^^^^^^^^^^^^^^^^^^^^^^-> ++1-> + 2 >^^^^^^^^^^^^^^^^^^^^^^^^-> -1 > -1 >Emitted(28, 1) Source(23, 5) + SourceIndex(0) ----- -->>> PropertyDecorator1, --1->^^^^ --2 > ^^^^^^^^^^^^^^^^^^ --3 > ^^^^^-> --1-> --2 > PropertyDecorator1 ++1-> ++1->Emitted(30, 1) Source(23, 5) + SourceIndex(0) + --- + >>> PropertyDecorator1, + 1->^^^^ +@@= skipped -50, +39 lines =@@ + 3 > ^^^^^-> + 1-> + 2 > PropertyDecorator1 -1->Emitted(29, 5) Source(21, 6) + SourceIndex(0) -2 >Emitted(29, 23) Source(21, 24) + SourceIndex(0) ----- -->>> PropertyDecorator2(40) --1->^^^^ --2 > ^^^^^^^^^^^^^^^^^^ --3 > ^ --4 > ^^ --5 > ^ --6 > ^^^^^^^^^^^^-> --1-> -- > @ --2 > PropertyDecorator2 --3 > ( --4 > 40 --5 > ) ++1->Emitted(31, 5) Source(21, 6) + SourceIndex(0) ++2 >Emitted(31, 23) Source(21, 24) + SourceIndex(0) + --- + >>> PropertyDecorator2(40) + 1->^^^^ +@@= skipped -16, +16 lines =@@ + 3 > ( + 4 > 40 + 5 > ) -1->Emitted(30, 5) Source(22, 6) + SourceIndex(0) -2 >Emitted(30, 23) Source(22, 24) + SourceIndex(0) -3 >Emitted(30, 24) Source(22, 25) + SourceIndex(0) -4 >Emitted(30, 26) Source(22, 27) + SourceIndex(0) -5 >Emitted(30, 27) Source(22, 28) + SourceIndex(0) ----- -->>>], Greeter.prototype, "greet", null); --1->^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ --1-> -- > greet() { -- > return "

" + this.greeting + "

"; -- > } ++1->Emitted(32, 5) Source(22, 6) + SourceIndex(0) ++2 >Emitted(32, 23) Source(22, 24) + SourceIndex(0) ++3 >Emitted(32, 24) Source(22, 25) + SourceIndex(0) ++4 >Emitted(32, 26) Source(22, 27) + SourceIndex(0) ++5 >Emitted(32, 27) Source(22, 28) + SourceIndex(0) + --- + >>>], Greeter.prototype, "greet", null); + 1->^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +@@= skipped -12, +12 lines =@@ + > greet() { + > return "

" + this.greeting + "

"; + > } -1->Emitted(31, 37) Source(25, 6) + SourceIndex(0) ----- -->>>__decorate([ --1 > --2 >^^^^^^^^^^^^^^^^^^^^^^^^-> --1 > -- > -- > @PropertyDecorator1 -- > @PropertyDecorator2(50) -- > private ++1->Emitted(33, 37) Source(25, 6) + SourceIndex(0) + --- + >>>__decorate([ + 1 > +@@= skipped -10, +10 lines =@@ + > @PropertyDecorator1 + > @PropertyDecorator2(50) + > private -1 >Emitted(32, 1) Source(29, 13) + SourceIndex(0) ----- -->>> PropertyDecorator1, --1->^^^^ --2 > ^^^^^^^^^^^^^^^^^^ --3 > ^^^^^-> --1-> --2 > PropertyDecorator1 ++1 >Emitted(34, 1) Source(29, 13) + SourceIndex(0) + --- + >>> PropertyDecorator1, + 1->^^^^ +@@= skipped -8, +8 lines =@@ + 3 > ^^^^^-> + 1-> + 2 > PropertyDecorator1 -1->Emitted(33, 5) Source(27, 6) + SourceIndex(0) -2 >Emitted(33, 23) Source(27, 24) + SourceIndex(0) ----- -->>> PropertyDecorator2(50) --1->^^^^ --2 > ^^^^^^^^^^^^^^^^^^ --3 > ^ --4 > ^^ --5 > ^ --6 > ^^^^^^^^^^-> --1-> -- > @ --2 > PropertyDecorator2 --3 > ( --4 > 50 --5 > ) ++1->Emitted(35, 5) Source(27, 6) + SourceIndex(0) ++2 >Emitted(35, 23) Source(27, 24) + SourceIndex(0) + --- + >>> PropertyDecorator2(50) + 1->^^^^ +@@= skipped -16, +16 lines =@@ + 3 > ( + 4 > 50 + 5 > ) -1->Emitted(34, 5) Source(28, 6) + SourceIndex(0) -2 >Emitted(34, 23) Source(28, 24) + SourceIndex(0) -3 >Emitted(34, 24) Source(28, 25) + SourceIndex(0) -4 >Emitted(34, 26) Source(28, 27) + SourceIndex(0) -5 >Emitted(34, 27) Source(28, 28) + SourceIndex(0) ----- -->>>], Greeter.prototype, "x", void 0); --1->^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ --1-> -- > private x: string; ++1->Emitted(36, 5) Source(28, 6) + SourceIndex(0) ++2 >Emitted(36, 23) Source(28, 24) + SourceIndex(0) ++3 >Emitted(36, 24) Source(28, 25) + SourceIndex(0) ++4 >Emitted(36, 26) Source(28, 27) + SourceIndex(0) ++5 >Emitted(36, 27) Source(28, 28) + SourceIndex(0) + --- + >>>], Greeter.prototype, "x", void 0); + 1->^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 1-> + > private x: string; -1->Emitted(35, 35) Source(29, 23) + SourceIndex(0) ----- -->>>__decorate([ --1 > --2 >^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> --1 > -- > -- > @PropertyDecorator1 -- > @PropertyDecorator2(60) -- > private static x1: number = 10; -- > -- > private ++1->Emitted(37, 35) Source(29, 23) + SourceIndex(0) + --- + >>>__decorate([ + 1 > +@@= skipped -22, +22 lines =@@ + > private static x1: number = 10; + > + > private -1 >Emitted(36, 1) Source(35, 13) + SourceIndex(0) ----- -->>> __param(0, ParameterDecorator1), --1->^^^^ --2 > ^^^^^^^^^^^ --3 > ^^^^^^^^^^^^^^^^^^^ --4 > ^ --5 > ^^^^^-> --1->fn( -- > @ --2 > --3 > ParameterDecorator1 --4 > ++1 >Emitted(38, 1) Source(35, 13) + SourceIndex(0) + --- + >>> __param(0, ParameterDecorator1), + 1->^^^^ +@@= skipped -13, +13 lines =@@ + 2 > + 3 > ParameterDecorator1 + 4 > -1->Emitted(37, 5) Source(36, 8) + SourceIndex(0) -2 >Emitted(37, 16) Source(36, 8) + SourceIndex(0) -3 >Emitted(37, 35) Source(36, 27) + SourceIndex(0) -4 >Emitted(37, 36) Source(36, 27) + SourceIndex(0) ----- -->>> __param(0, ParameterDecorator2(70)) --1->^^^^ --2 > ^^^^^^^^^^^ --3 > ^^^^^^^^^^^^^^^^^^^ --4 > ^ --5 > ^^ --6 > ^ --7 > ^ --1-> -- > @ --2 > --3 > ParameterDecorator2 --4 > ( --5 > 70 --6 > ) --7 > ++1->Emitted(39, 5) Source(36, 8) + SourceIndex(0) ++2 >Emitted(39, 16) Source(36, 8) + SourceIndex(0) ++3 >Emitted(39, 35) Source(36, 27) + SourceIndex(0) ++4 >Emitted(39, 36) Source(36, 27) + SourceIndex(0) + --- + >>> __param(0, ParameterDecorator2(70)) + 1->^^^^ +@@= skipped -21, +21 lines =@@ + 5 > 70 + 6 > ) + 7 > -1->Emitted(38, 5) Source(37, 8) + SourceIndex(0) -2 >Emitted(38, 16) Source(37, 8) + SourceIndex(0) -3 >Emitted(38, 35) Source(37, 27) + SourceIndex(0) @@ -779,91 +609,83 @@ -5 >Emitted(38, 38) Source(37, 30) + SourceIndex(0) -6 >Emitted(38, 39) Source(37, 31) + SourceIndex(0) -7 >Emitted(38, 40) Source(37, 31) + SourceIndex(0) ----- -->>>], Greeter.prototype, "fn", null); --1 >^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ --1 > -- > x: number) { -- > return this.greeting; -- > } ++1->Emitted(40, 5) Source(37, 8) + SourceIndex(0) ++2 >Emitted(40, 16) Source(37, 8) + SourceIndex(0) ++3 >Emitted(40, 35) Source(37, 27) + SourceIndex(0) ++4 >Emitted(40, 36) Source(37, 28) + SourceIndex(0) ++5 >Emitted(40, 38) Source(37, 30) + SourceIndex(0) ++6 >Emitted(40, 39) Source(37, 31) + SourceIndex(0) ++7 >Emitted(40, 40) Source(37, 31) + SourceIndex(0) + --- + >>>], Greeter.prototype, "fn", null); + 1 >^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +@@= skipped -14, +14 lines =@@ + > x: number) { + > return this.greeting; + > } -1 >Emitted(39, 34) Source(40, 6) + SourceIndex(0) ----- -->>>__decorate([ --1 > --2 >^^^^^^^^^^^^^^^^^^^^^^^^-> --1 > -- > -- > @PropertyDecorator1 ++1 >Emitted(41, 34) Source(40, 6) + SourceIndex(0) + --- + >>>__decorate([ + 1 > +@@= skipped -8, +8 lines =@@ + 1 > + > + > @PropertyDecorator1 - > @PropertyDecorator2(80) -- > + > -1 >Emitted(40, 1) Source(44, 5) + SourceIndex(0) ----- -->>> PropertyDecorator1, --1->^^^^ --2 > ^^^^^^^^^^^^^^^^^^ --3 > ^^^^^^-> --1-> --2 > PropertyDecorator1 ++1 >Emitted(42, 1) Source(43, 5) + SourceIndex(0) + --- + >>> PropertyDecorator1, + 1->^^^^ +@@= skipped -10, +9 lines =@@ + 3 > ^^^^^^-> + 1-> + 2 > PropertyDecorator1 -1->Emitted(41, 5) Source(42, 6) + SourceIndex(0) -2 >Emitted(41, 23) Source(42, 24) + SourceIndex(0) ----- -->>> PropertyDecorator2(80), --1->^^^^ --2 > ^^^^^^^^^^^^^^^^^^ --3 > ^ --4 > ^^ --5 > ^ --6 > ^^^^^^^^^^^-> --1-> -- > @ --2 > PropertyDecorator2 --3 > ( --4 > 80 --5 > ) ++1->Emitted(43, 5) Source(42, 6) + SourceIndex(0) ++2 >Emitted(43, 23) Source(42, 24) + SourceIndex(0) + --- + >>> PropertyDecorator2(80), + 1->^^^^ +@@= skipped -16, +16 lines =@@ + 3 > ( + 4 > 80 + 5 > ) -1->Emitted(42, 5) Source(43, 6) + SourceIndex(0) -2 >Emitted(42, 23) Source(43, 24) + SourceIndex(0) -3 >Emitted(42, 24) Source(43, 25) + SourceIndex(0) -4 >Emitted(42, 26) Source(43, 27) + SourceIndex(0) -5 >Emitted(42, 27) Source(43, 28) + SourceIndex(0) ----- -->>> __param(0, ParameterDecorator1), --1->^^^^ --2 > ^^^^^^^^^^^ --3 > ^^^^^^^^^^^^^^^^^^^ --4 > ^ --5 > ^^^^^-> --1-> -- > get greetings() { -- > return this.greeting; -- > } -- > -- > set greetings( -- > @ --2 > --3 > ParameterDecorator1 --4 > ++1->Emitted(44, 5) Source(43, 6) + SourceIndex(0) ++2 >Emitted(44, 23) Source(43, 24) + SourceIndex(0) ++3 >Emitted(44, 24) Source(43, 25) + SourceIndex(0) ++4 >Emitted(44, 26) Source(43, 27) + SourceIndex(0) ++5 >Emitted(44, 27) Source(43, 28) + SourceIndex(0) + --- + >>> __param(0, ParameterDecorator1), + 1->^^^^ +@@= skipped -22, +22 lines =@@ + 2 > + 3 > ParameterDecorator1 + 4 > -1->Emitted(43, 5) Source(49, 8) + SourceIndex(0) -2 >Emitted(43, 16) Source(49, 8) + SourceIndex(0) -3 >Emitted(43, 35) Source(49, 27) + SourceIndex(0) -4 >Emitted(43, 36) Source(49, 27) + SourceIndex(0) ----- -->>> __param(0, ParameterDecorator2(90)) --1->^^^^ --2 > ^^^^^^^^^^^ --3 > ^^^^^^^^^^^^^^^^^^^ --4 > ^ --5 > ^^ --6 > ^ --7 > ^ --8 > ^^^-> --1-> -- > @ --2 > --3 > ParameterDecorator2 --4 > ( --5 > 90 --6 > ) --7 > ++1->Emitted(45, 5) Source(49, 8) + SourceIndex(0) ++2 >Emitted(45, 16) Source(49, 8) + SourceIndex(0) ++3 >Emitted(45, 35) Source(49, 27) + SourceIndex(0) ++4 >Emitted(45, 36) Source(49, 27) + SourceIndex(0) + --- + >>> __param(0, ParameterDecorator2(90)) + 1->^^^^ +@@= skipped -22, +22 lines =@@ + 5 > 90 + 6 > ) + 7 > -1->Emitted(44, 5) Source(50, 8) + SourceIndex(0) -2 >Emitted(44, 16) Source(50, 8) + SourceIndex(0) -3 >Emitted(44, 35) Source(50, 27) + SourceIndex(0) @@ -871,123 +693,122 @@ -5 >Emitted(44, 38) Source(50, 30) + SourceIndex(0) -6 >Emitted(44, 39) Source(50, 31) + SourceIndex(0) -7 >Emitted(44, 40) Source(50, 31) + SourceIndex(0) ----- -->>>], Greeter.prototype, "greetings", null); --1->^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ --1-> ++1->Emitted(46, 5) Source(50, 8) + SourceIndex(0) ++2 >Emitted(46, 16) Source(50, 8) + SourceIndex(0) ++3 >Emitted(46, 35) Source(50, 27) + SourceIndex(0) ++4 >Emitted(46, 36) Source(50, 28) + SourceIndex(0) ++5 >Emitted(46, 38) Source(50, 30) + SourceIndex(0) ++6 >Emitted(46, 39) Source(50, 31) + SourceIndex(0) ++7 >Emitted(46, 40) Source(50, 31) + SourceIndex(0) + --- + >>>], Greeter.prototype, "greetings", null); + 1->^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 1-> -1->Emitted(45, 41) Source(46, 6) + SourceIndex(0) ----- -->>>__decorate([ --1 > --2 >^^^^^^^^^^^^^^^^^^^^^^^^-> --1 > ++1->Emitted(47, 41) Source(46, 6) + SourceIndex(0) + --- + >>>__decorate([ + 1 > + 2 >^^^^^^^^^^^^^^^^^^^^^^^^-> + 1 > -1 >Emitted(46, 1) Source(33, 20) + SourceIndex(0) ----- -->>> PropertyDecorator1, --1->^^^^ --2 > ^^^^^^^^^^^^^^^^^^ --3 > ^^^^^-> --1-> --2 > PropertyDecorator1 ++1 >Emitted(48, 1) Source(33, 20) + SourceIndex(0) + --- + >>> PropertyDecorator1, + 1->^^^^ +@@= skipped -25, +25 lines =@@ + 3 > ^^^^^-> + 1-> + 2 > PropertyDecorator1 -1->Emitted(47, 5) Source(31, 6) + SourceIndex(0) -2 >Emitted(47, 23) Source(31, 24) + SourceIndex(0) ----- -->>> PropertyDecorator2(60) --1->^^^^ --2 > ^^^^^^^^^^^^^^^^^^ --3 > ^ --4 > ^^ --5 > ^ --6 > ^-> --1-> -- > @ --2 > PropertyDecorator2 --3 > ( --4 > 60 --5 > ) ++1->Emitted(49, 5) Source(31, 6) + SourceIndex(0) ++2 >Emitted(49, 23) Source(31, 24) + SourceIndex(0) + --- + >>> PropertyDecorator2(60) + 1->^^^^ +@@= skipped -16, +16 lines =@@ + 3 > ( + 4 > 60 + 5 > ) -1->Emitted(48, 5) Source(32, 6) + SourceIndex(0) -2 >Emitted(48, 23) Source(32, 24) + SourceIndex(0) -3 >Emitted(48, 24) Source(32, 25) + SourceIndex(0) -4 >Emitted(48, 26) Source(32, 27) + SourceIndex(0) -5 >Emitted(48, 27) Source(32, 28) + SourceIndex(0) ----- -->>>], Greeter, "x1", void 0); --1->^^^^^^^^^^^^^^^^^^^^^^^^^ --1-> -- > private static x1: number = 10; ++1->Emitted(50, 5) Source(32, 6) + SourceIndex(0) ++2 >Emitted(50, 23) Source(32, 24) + SourceIndex(0) ++3 >Emitted(50, 24) Source(32, 25) + SourceIndex(0) ++4 >Emitted(50, 26) Source(32, 27) + SourceIndex(0) ++5 >Emitted(50, 27) Source(32, 28) + SourceIndex(0) + --- + >>>], Greeter, "x1", void 0); + 1->^^^^^^^^^^^^^^^^^^^^^^^^^ + 1-> + > private static x1: number = 10; -1->Emitted(49, 26) Source(33, 36) + SourceIndex(0) ----- -->>>Greeter = __decorate([ --1 > --2 >^^^^^^^ --3 > ^^^^^^^^^^^^^^-> --1 > --2 >Greeter ++1->Emitted(51, 26) Source(33, 36) + SourceIndex(0) + --- + >>>Greeter = __decorate([ + 1 > +@@= skipped -18, +18 lines =@@ + 3 > ^^^^^^^^^^^^^^-> + 1 > + 2 >Greeter -1 >Emitted(50, 1) Source(10, 7) + SourceIndex(0) -2 >Emitted(50, 8) Source(10, 14) + SourceIndex(0) ----- -->>> ClassDecorator1, --1->^^^^ --2 > ^^^^^^^^^^^^^^^ --3 > ^^^^^^-> --1-> --2 > ClassDecorator1 ++1 >Emitted(52, 1) Source(10, 7) + SourceIndex(0) ++2 >Emitted(52, 8) Source(10, 14) + SourceIndex(0) + --- + >>> ClassDecorator1, + 1->^^^^ +@@= skipped -9, +9 lines =@@ + 3 > ^^^^^^-> + 1-> + 2 > ClassDecorator1 -1->Emitted(51, 5) Source(8, 2) + SourceIndex(0) -2 >Emitted(51, 20) Source(8, 17) + SourceIndex(0) ----- -->>> ClassDecorator2(10), --1->^^^^ --2 > ^^^^^^^^^^^^^^^ --3 > ^ --4 > ^^ --5 > ^ --6 > ^^^^^^^^^^^^^^-> --1-> -- >@ --2 > ClassDecorator2 --3 > ( --4 > 10 --5 > ) ++1->Emitted(53, 5) Source(8, 2) + SourceIndex(0) ++2 >Emitted(53, 20) Source(8, 17) + SourceIndex(0) + --- + >>> ClassDecorator2(10), + 1->^^^^ +@@= skipped -16, +16 lines =@@ + 3 > ( + 4 > 10 + 5 > ) -1->Emitted(52, 5) Source(9, 2) + SourceIndex(0) -2 >Emitted(52, 20) Source(9, 17) + SourceIndex(0) -3 >Emitted(52, 21) Source(9, 18) + SourceIndex(0) -4 >Emitted(52, 23) Source(9, 20) + SourceIndex(0) -5 >Emitted(52, 24) Source(9, 21) + SourceIndex(0) ----- -->>> __param(0, ParameterDecorator1), --1->^^^^ --2 > ^^^^^^^^^^^ --3 > ^^^^^^^^^^^^^^^^^^^ --4 > ^ --5 > ^^^^^^-> --1-> -- >class Greeter { -- > constructor( -- > @ --2 > --3 > ParameterDecorator1 --4 > ++1->Emitted(54, 5) Source(9, 2) + SourceIndex(0) ++2 >Emitted(54, 20) Source(9, 17) + SourceIndex(0) ++3 >Emitted(54, 21) Source(9, 18) + SourceIndex(0) ++4 >Emitted(54, 23) Source(9, 20) + SourceIndex(0) ++5 >Emitted(54, 24) Source(9, 21) + SourceIndex(0) + --- + >>> __param(0, ParameterDecorator1), + 1->^^^^ +@@= skipped -19, +19 lines =@@ + 2 > + 3 > ParameterDecorator1 + 4 > -1->Emitted(53, 5) Source(12, 8) + SourceIndex(0) -2 >Emitted(53, 16) Source(12, 8) + SourceIndex(0) -3 >Emitted(53, 35) Source(12, 27) + SourceIndex(0) -4 >Emitted(53, 36) Source(12, 27) + SourceIndex(0) ----- -->>> __param(0, ParameterDecorator2(20)), --1->^^^^ --2 > ^^^^^^^^^^^ --3 > ^^^^^^^^^^^^^^^^^^^ --4 > ^ --5 > ^^ --6 > ^ --7 > ^ --1-> -- > @ --2 > --3 > ParameterDecorator2 --4 > ( --5 > 20 --6 > ) --7 > ++1->Emitted(55, 5) Source(12, 8) + SourceIndex(0) ++2 >Emitted(55, 16) Source(12, 8) + SourceIndex(0) ++3 >Emitted(55, 35) Source(12, 27) + SourceIndex(0) ++4 >Emitted(55, 36) Source(12, 27) + SourceIndex(0) + --- + >>> __param(0, ParameterDecorator2(20)), + 1->^^^^ +@@= skipped -21, +21 lines =@@ + 5 > 20 + 6 > ) + 7 > -1->Emitted(54, 5) Source(13, 8) + SourceIndex(0) -2 >Emitted(54, 16) Source(13, 8) + SourceIndex(0) -3 >Emitted(54, 35) Source(13, 27) + SourceIndex(0) @@ -995,41 +816,35 @@ -5 >Emitted(54, 38) Source(13, 30) + SourceIndex(0) -6 >Emitted(54, 39) Source(13, 31) + SourceIndex(0) -7 >Emitted(54, 40) Source(13, 31) + SourceIndex(0) ----- -->>> __param(1, ParameterDecorator1), --1 >^^^^ --2 > ^^^^^^^^^^^ --3 > ^^^^^^^^^^^^^^^^^^^ --4 > ^ --5 > ^^^^^-> --1 > -- > public greeting: string, -- > -- > @ --2 > --3 > ParameterDecorator1 --4 > ++1->Emitted(56, 5) Source(13, 8) + SourceIndex(0) ++2 >Emitted(56, 16) Source(13, 8) + SourceIndex(0) ++3 >Emitted(56, 35) Source(13, 27) + SourceIndex(0) ++4 >Emitted(56, 36) Source(13, 28) + SourceIndex(0) ++5 >Emitted(56, 38) Source(13, 30) + SourceIndex(0) ++6 >Emitted(56, 39) Source(13, 31) + SourceIndex(0) ++7 >Emitted(56, 40) Source(13, 31) + SourceIndex(0) + --- + >>> __param(1, ParameterDecorator1), + 1 >^^^^ +@@= skipped -21, +21 lines =@@ + 2 > + 3 > ParameterDecorator1 + 4 > -1 >Emitted(55, 5) Source(16, 8) + SourceIndex(0) -2 >Emitted(55, 16) Source(16, 8) + SourceIndex(0) -3 >Emitted(55, 35) Source(16, 27) + SourceIndex(0) -4 >Emitted(55, 36) Source(16, 27) + SourceIndex(0) ----- -->>> __param(1, ParameterDecorator2(30)) --1->^^^^ --2 > ^^^^^^^^^^^ --3 > ^^^^^^^^^^^^^^^^^^^ --4 > ^ --5 > ^^ --6 > ^ --7 > ^ --1-> -- > @ --2 > --3 > ParameterDecorator2 --4 > ( --5 > 30 --6 > ) --7 > ++1 >Emitted(57, 5) Source(16, 8) + SourceIndex(0) ++2 >Emitted(57, 16) Source(16, 8) + SourceIndex(0) ++3 >Emitted(57, 35) Source(16, 27) + SourceIndex(0) ++4 >Emitted(57, 36) Source(16, 27) + SourceIndex(0) + --- + >>> __param(1, ParameterDecorator2(30)) + 1->^^^^ +@@= skipped -21, +21 lines =@@ + 5 > 30 + 6 > ) + 7 > -1->Emitted(56, 5) Source(17, 8) + SourceIndex(0) -2 >Emitted(56, 16) Source(17, 8) + SourceIndex(0) -3 >Emitted(56, 35) Source(17, 27) + SourceIndex(0) @@ -1037,72 +852,25 @@ -5 >Emitted(56, 38) Source(17, 30) + SourceIndex(0) -6 >Emitted(56, 39) Source(17, 31) + SourceIndex(0) -7 >Emitted(56, 40) Source(17, 31) + SourceIndex(0) ----- -->>>], Greeter); --1 >^^^ --2 > ^^^^^^^ --3 > ^ --4 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> --1 > --2 > Greeter --3 > { -- > constructor( -- > @ParameterDecorator1 -- > @ParameterDecorator2(20) -- > public greeting: string, -- > -- > @ParameterDecorator1 -- > @ParameterDecorator2(30) -- > ...b: string[]) { -- > } -- > -- > @PropertyDecorator1 -- > @PropertyDecorator2(40) -- > greet() { -- > return "

" + this.greeting + "

"; -- > } -- > -- > @PropertyDecorator1 -- > @PropertyDecorator2(50) -- > private x: string; -- > -- > @PropertyDecorator1 -- > @PropertyDecorator2(60) -- > private static x1: number = 10; -- > -- > private fn( -- > @ParameterDecorator1 -- > @ParameterDecorator2(70) -- > x: number) { -- > return this.greeting; -- > } -- > -- > @PropertyDecorator1 -- > @PropertyDecorator2(80) -- > get greetings() { -- > return this.greeting; -- > } -- > -- > set greetings( -- > @ParameterDecorator1 -- > @ParameterDecorator2(90) -- > greetings: string) { -- > this.greeting = greetings; -- > } -- > } ++1->Emitted(58, 5) Source(17, 8) + SourceIndex(0) ++2 >Emitted(58, 16) Source(17, 8) + SourceIndex(0) ++3 >Emitted(58, 35) Source(17, 27) + SourceIndex(0) ++4 >Emitted(58, 36) Source(17, 28) + SourceIndex(0) ++5 >Emitted(58, 38) Source(17, 30) + SourceIndex(0) ++6 >Emitted(58, 39) Source(17, 31) + SourceIndex(0) ++7 >Emitted(58, 40) Source(17, 31) + SourceIndex(0) + --- + >>>], Greeter); + 1 >^^^ +@@= skipped -60, +60 lines =@@ + > this.greeting = greetings; + > } + > } -1 >Emitted(57, 4) Source(10, 7) + SourceIndex(0) -2 >Emitted(57, 11) Source(10, 14) + SourceIndex(0) -3 >Emitted(57, 12) Source(54, 2) + SourceIndex(0) -+2 > -+ > } -+1 >Emitted(29, 5) Source(52, 35) + SourceIndex(0) -+2 >Emitted(29, 6) Source(53, 6) + SourceIndex(0) -+--- -+>>>} -+1 >^ -+2 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> -+1 > -+ >} -+1 >Emitted(30, 2) Source(54, 2) + SourceIndex(0) ++1 >Emitted(59, 4) Source(10, 7) + SourceIndex(0) ++2 >Emitted(59, 11) Source(10, 14) + SourceIndex(0) ++3 >Emitted(59, 12) Source(54, 2) + SourceIndex(0) --- >>>//# sourceMappingURL=sourceMapValidationDecorators.js.map \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/staticInitializersAndLegacyClassDecorators.js b/testdata/baselines/reference/submodule/compiler/staticInitializersAndLegacyClassDecorators.js index 93041a8661..1d6618bd2e 100644 --- a/testdata/baselines/reference/submodule/compiler/staticInitializersAndLegacyClassDecorators.js +++ b/testdata/baselines/reference/submodule/compiler/staticInitializersAndLegacyClassDecorators.js @@ -20,13 +20,26 @@ class C2 //// [staticInitializersAndLegacyClassDecorators.js] -@dec -class C1 { - static instance = new C1(); -} -@dec -class C2 { +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var C1_1, C2_1; +let C1 = class C1 { + static { C1_1 = this; } + static instance = new C1_1(); +}; +C1 = C1_1 = __decorate([ + dec +], C1); +let C2 = class C2 { + static { C2_1 = this; } static { - new C2(); + new C2_1(); } -} +}; +C2 = C2_1 = __decorate([ + dec +], C2); diff --git a/testdata/baselines/reference/submodule/compiler/staticInitializersAndLegacyClassDecorators.js.diff b/testdata/baselines/reference/submodule/compiler/staticInitializersAndLegacyClassDecorators.js.diff deleted file mode 100644 index 649811df2d..0000000000 --- a/testdata/baselines/reference/submodule/compiler/staticInitializersAndLegacyClassDecorators.js.diff +++ /dev/null @@ -1,37 +0,0 @@ ---- old.staticInitializersAndLegacyClassDecorators.js -+++ new.staticInitializersAndLegacyClassDecorators.js -@@= skipped -19, +19 lines =@@ - - - //// [staticInitializersAndLegacyClassDecorators.js] --var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { -- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; -- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); -- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; -- return c > 3 && r && Object.defineProperty(target, key, r), r; --}; --var C1_1, C2_1; --let C1 = class C1 { -- static { C1_1 = this; } -- static instance = new C1_1(); --}; --C1 = C1_1 = __decorate([ -- dec --], C1); --let C2 = class C2 { -- static { C2_1 = this; } -+@dec -+class C1 { -+ static instance = new C1(); -+} -+@dec -+class C2 { - static { -- new C2_1(); -+ new C2(); - } --}; --C2 = C2_1 = __decorate([ -- dec --], C2); -+} \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/targetEs6DecoratorMetadataImportNotElided.js b/testdata/baselines/reference/submodule/compiler/targetEs6DecoratorMetadataImportNotElided.js index d25b20f132..6880828669 100644 --- a/testdata/baselines/reference/submodule/compiler/targetEs6DecoratorMetadataImportNotElided.js +++ b/testdata/baselines/reference/submodule/compiler/targetEs6DecoratorMetadataImportNotElided.js @@ -21,10 +21,23 @@ export function Input() { } export class TemplateRef { } //// [index.js] -import { Input } from './deps'; +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +import { Input, TemplateRef } from './deps'; export class MyComponent { _ref; - @Input() get ref() { return this._ref; } set ref(value) { this._ref = value; } } +__decorate([ + Input(), + __metadata("design:type", TemplateRef), + __metadata("design:paramtypes", [TemplateRef]) +], MyComponent.prototype, "ref", null); diff --git a/testdata/baselines/reference/submodule/compiler/targetEs6DecoratorMetadataImportNotElided.js.diff b/testdata/baselines/reference/submodule/compiler/targetEs6DecoratorMetadataImportNotElided.js.diff index d5c5418b1e..0da4f0b079 100644 --- a/testdata/baselines/reference/submodule/compiler/targetEs6DecoratorMetadataImportNotElided.js.diff +++ b/testdata/baselines/reference/submodule/compiler/targetEs6DecoratorMetadataImportNotElided.js.diff @@ -1,28 +1,10 @@ --- old.targetEs6DecoratorMetadataImportNotElided.js +++ new.targetEs6DecoratorMetadataImportNotElided.js -@@= skipped -20, +20 lines =@@ - export class TemplateRef { - } - //// [index.js] --var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { -- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; -- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); -- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; -- return c > 3 && r && Object.defineProperty(target, key, r), r; --}; --var __metadata = (this && this.__metadata) || function (k, v) { -- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); --}; --import { Input, TemplateRef } from './deps'; -+import { Input } from './deps'; +@@= skipped -31, +31 lines =@@ + }; + import { Input, TemplateRef } from './deps'; export class MyComponent { + _ref; -+ @Input() get ref() { return this._ref; } set ref(value) { this._ref = value; } - } --__decorate([ -- Input(), -- __metadata("design:type", TemplateRef), -- __metadata("design:paramtypes", [TemplateRef]) --], MyComponent.prototype, "ref", null); \ No newline at end of file + } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/templateLiteralsAndDecoratorMetadata.js b/testdata/baselines/reference/submodule/compiler/templateLiteralsAndDecoratorMetadata.js index 27fe834300..a68bf3f571 100644 --- a/testdata/baselines/reference/submodule/compiler/templateLiteralsAndDecoratorMetadata.js +++ b/testdata/baselines/reference/submodule/compiler/templateLiteralsAndDecoratorMetadata.js @@ -9,10 +9,22 @@ export class Greeter { //// [templateLiteralsAndDecoratorMetadata.js] "use strict"; +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; Object.defineProperty(exports, "__esModule", { value: true }); exports.Greeter = void 0; class Greeter { - @format("Hello, %s") greeting = `employee`; //template literals on this line cause the issue } exports.Greeter = Greeter; +__decorate([ + format("Hello, %s"), + __metadata("design:type", String) +], Greeter.prototype, "greeting", void 0); diff --git a/testdata/baselines/reference/submodule/compiler/templateLiteralsAndDecoratorMetadata.js.diff b/testdata/baselines/reference/submodule/compiler/templateLiteralsAndDecoratorMetadata.js.diff index 38af81f6cb..efc8b1765e 100644 --- a/testdata/baselines/reference/submodule/compiler/templateLiteralsAndDecoratorMetadata.js.diff +++ b/testdata/baselines/reference/submodule/compiler/templateLiteralsAndDecoratorMetadata.js.diff @@ -1,29 +1,13 @@ --- old.templateLiteralsAndDecoratorMetadata.js +++ new.templateLiteralsAndDecoratorMetadata.js -@@= skipped -8, +8 lines =@@ - - //// [templateLiteralsAndDecoratorMetadata.js] - "use strict"; --var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { -- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; -- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); -- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; -- return c > 3 && r && Object.defineProperty(target, key, r), r; --}; --var __metadata = (this && this.__metadata) || function (k, v) { -- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); --}; +@@= skipped -20, +20 lines =@@ Object.defineProperty(exports, "__esModule", { value: true }); exports.Greeter = void 0; class Greeter { - constructor() { - this.greeting = `employee`; //template literals on this line cause the issue - } -+ @format("Hello, %s") + greeting = `employee`; //template literals on this line cause the issue } exports.Greeter = Greeter; --__decorate([ -- format("Hello, %s"), -- __metadata("design:type", String) --], Greeter.prototype, "greeting", void 0); \ No newline at end of file + __decorate([ \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/tslibReExportHelpers.js b/testdata/baselines/reference/submodule/compiler/tslibReExportHelpers.js index ed98df63a2..7dd733ece3 100644 --- a/testdata/baselines/reference/submodule/compiler/tslibReExportHelpers.js +++ b/testdata/baselines/reference/submodule/compiler/tslibReExportHelpers.js @@ -28,6 +28,10 @@ export class Foo {} //// [index.mjs] -@decorator -export class Foo { -} +import { __decorate } from "tslib"; +let Foo = class Foo { +}; +Foo = __decorate([ + decorator +], Foo); +export { Foo }; diff --git a/testdata/baselines/reference/submodule/compiler/tslibReExportHelpers.js.diff b/testdata/baselines/reference/submodule/compiler/tslibReExportHelpers.js.diff deleted file mode 100644 index 56f24807a5..0000000000 --- a/testdata/baselines/reference/submodule/compiler/tslibReExportHelpers.js.diff +++ /dev/null @@ -1,16 +0,0 @@ ---- old.tslibReExportHelpers.js -+++ new.tslibReExportHelpers.js -@@= skipped -27, +27 lines =@@ - - - //// [index.mjs] --import { __decorate } from "tslib"; --let Foo = class Foo { --}; --Foo = __decorate([ -- decorator --], Foo); --export { Foo }; -+@decorator -+export class Foo { -+} \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/autoAccessorExperimentalDecorators(target=es2015).js b/testdata/baselines/reference/submodule/conformance/autoAccessorExperimentalDecorators(target=es2015).js index c61e927ec1..c3f5fdcc22 100644 --- a/testdata/baselines/reference/submodule/conformance/autoAccessorExperimentalDecorators(target=es2015).js +++ b/testdata/baselines/reference/submodule/conformance/autoAccessorExperimentalDecorators(target=es2015).js @@ -21,15 +21,23 @@ class C2 { //// [autoAccessorExperimentalDecorators.js] +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; class C1 { - @dec accessor a; - @dec static accessor b; } +__decorate([ + dec +], C1.prototype, "a", null); +__decorate([ + dec +], C1, "b", null); class C2 { - @dec accessor #a; - @dec static accessor #b; } diff --git a/testdata/baselines/reference/submodule/conformance/autoAccessorExperimentalDecorators(target=es2015).js.diff b/testdata/baselines/reference/submodule/conformance/autoAccessorExperimentalDecorators(target=es2015).js.diff index 363cfab7bd..6e71b1ad58 100644 --- a/testdata/baselines/reference/submodule/conformance/autoAccessorExperimentalDecorators(target=es2015).js.diff +++ b/testdata/baselines/reference/submodule/conformance/autoAccessorExperimentalDecorators(target=es2015).js.diff @@ -1,15 +1,9 @@ --- old.autoAccessorExperimentalDecorators(target=es2015).js +++ new.autoAccessorExperimentalDecorators(target=es2015).js -@@= skipped -20, +20 lines =@@ - - - //// [autoAccessorExperimentalDecorators.js] --var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { -- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; -- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); -- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; -- return c > 3 && r && Object.defineProperty(target, key, r), r; --}; +@@= skipped -26, +26 lines =@@ + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; + }; -var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) { - if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter"); - if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it"); @@ -30,27 +24,23 @@ - set a(value) { __classPrivateFieldSet(this, _C1_a_accessor_storage, value, "f"); } - static get b() { return __classPrivateFieldGet(_a, _a, "f", _C1_b_accessor_storage); } - static set b(value) { __classPrivateFieldSet(_a, _a, value, "f", _C1_b_accessor_storage); } -+ @dec + accessor a; -+ @dec + static accessor b; } -_a = C1, _C1_a_accessor_storage = new WeakMap(); -_C1_b_accessor_storage = { value: void 0 }; --__decorate([ -- dec --], C1.prototype, "a", null); --__decorate([ -- dec --], C1, "b", null); + __decorate([ + dec + ], C1.prototype, "a", null); +@@= skipped -30, +11 lines =@@ + dec + ], C1, "b", null); class C2 { - constructor() { - _C2_instances.add(this); - _C2_a_1_accessor_storage.set(this, void 0); - } -+ @dec + accessor #a; -+ @dec + static accessor #b; } -_b = C2, _C2_instances = new WeakSet(), _C2_a_1_accessor_storage = new WeakMap(), _C2_a_get = function _C2_a_get() { return __classPrivateFieldGet(this, _C2_a_1_accessor_storage, "f"); }, _C2_a_set = function _C2_a_set(value) { __classPrivateFieldSet(this, _C2_a_1_accessor_storage, value, "f"); }, _C2_b_get = function _C2_b_get() { return __classPrivateFieldGet(_b, _b, "f", _C2_b_1_accessor_storage); }, _C2_b_set = function _C2_b_set(value) { __classPrivateFieldSet(_b, _b, value, "f", _C2_b_1_accessor_storage); }; diff --git a/testdata/baselines/reference/submodule/conformance/autoAccessorExperimentalDecorators(target=es2022).js b/testdata/baselines/reference/submodule/conformance/autoAccessorExperimentalDecorators(target=es2022).js index c61e927ec1..c3f5fdcc22 100644 --- a/testdata/baselines/reference/submodule/conformance/autoAccessorExperimentalDecorators(target=es2022).js +++ b/testdata/baselines/reference/submodule/conformance/autoAccessorExperimentalDecorators(target=es2022).js @@ -21,15 +21,23 @@ class C2 { //// [autoAccessorExperimentalDecorators.js] +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; class C1 { - @dec accessor a; - @dec static accessor b; } +__decorate([ + dec +], C1.prototype, "a", null); +__decorate([ + dec +], C1, "b", null); class C2 { - @dec accessor #a; - @dec static accessor #b; } diff --git a/testdata/baselines/reference/submodule/conformance/autoAccessorExperimentalDecorators(target=es2022).js.diff b/testdata/baselines/reference/submodule/conformance/autoAccessorExperimentalDecorators(target=es2022).js.diff index 45f8a61f41..4f6363e8ca 100644 --- a/testdata/baselines/reference/submodule/conformance/autoAccessorExperimentalDecorators(target=es2022).js.diff +++ b/testdata/baselines/reference/submodule/conformance/autoAccessorExperimentalDecorators(target=es2022).js.diff @@ -1,15 +1,8 @@ --- old.autoAccessorExperimentalDecorators(target=es2022).js +++ new.autoAccessorExperimentalDecorators(target=es2022).js -@@= skipped -20, +20 lines =@@ - - - //// [autoAccessorExperimentalDecorators.js] --var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { -- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; -- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); -- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; -- return c > 3 && r && Object.defineProperty(target, key, r), r; --}; +@@= skipped -27, +27 lines =@@ + return c > 3 && r && Object.defineProperty(target, key, r), r; + }; class C1 { - #a_accessor_storage; - get a() { return this.#a_accessor_storage; } @@ -17,17 +10,14 @@ - static #b_accessor_storage; - static get b() { return C1.#b_accessor_storage; } - static set b(value) { C1.#b_accessor_storage = value; } -+ @dec + accessor a; -+ @dec + static accessor b; } --__decorate([ -- dec --], C1.prototype, "a", null); --__decorate([ -- dec --], C1, "b", null); + __decorate([ + dec +@@= skipped -14, +10 lines =@@ + dec + ], C1, "b", null); class C2 { - #a_accessor_storage; - get #a() { return this.#a_accessor_storage; } @@ -35,8 +25,6 @@ - static #b_accessor_storage; - static get #b() { return C2.#b_accessor_storage; } - static set #b(value) { C2.#b_accessor_storage = value; } -+ @dec + accessor #a; -+ @dec + static accessor #b; } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/autoAccessorExperimentalDecorators(target=esnext).js b/testdata/baselines/reference/submodule/conformance/autoAccessorExperimentalDecorators(target=esnext).js index c61e927ec1..c3f5fdcc22 100644 --- a/testdata/baselines/reference/submodule/conformance/autoAccessorExperimentalDecorators(target=esnext).js +++ b/testdata/baselines/reference/submodule/conformance/autoAccessorExperimentalDecorators(target=esnext).js @@ -21,15 +21,23 @@ class C2 { //// [autoAccessorExperimentalDecorators.js] +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; class C1 { - @dec accessor a; - @dec static accessor b; } +__decorate([ + dec +], C1.prototype, "a", null); +__decorate([ + dec +], C1, "b", null); class C2 { - @dec accessor #a; - @dec static accessor #b; } diff --git a/testdata/baselines/reference/submodule/conformance/autoAccessorExperimentalDecorators(target=esnext).js.diff b/testdata/baselines/reference/submodule/conformance/autoAccessorExperimentalDecorators(target=esnext).js.diff deleted file mode 100644 index f3cd48c388..0000000000 --- a/testdata/baselines/reference/submodule/conformance/autoAccessorExperimentalDecorators(target=esnext).js.diff +++ /dev/null @@ -1,30 +0,0 @@ ---- old.autoAccessorExperimentalDecorators(target=esnext).js -+++ new.autoAccessorExperimentalDecorators(target=esnext).js -@@= skipped -20, +20 lines =@@ - - - //// [autoAccessorExperimentalDecorators.js] --var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { -- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; -- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); -- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; -- return c > 3 && r && Object.defineProperty(target, key, r), r; --}; - class C1 { -+ @dec - accessor a; -+ @dec - static accessor b; - } --__decorate([ -- dec --], C1.prototype, "a", null); --__decorate([ -- dec --], C1, "b", null); - class C2 { -+ @dec - accessor #a; -+ @dec - static accessor #b; - } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/constructableDecoratorOnClass01.js b/testdata/baselines/reference/submodule/conformance/constructableDecoratorOnClass01.js index a87d36d8f4..623f53fafe 100644 --- a/testdata/baselines/reference/submodule/conformance/constructableDecoratorOnClass01.js +++ b/testdata/baselines/reference/submodule/conformance/constructableDecoratorOnClass01.js @@ -10,8 +10,16 @@ class C { //// [constructableDecoratorOnClass01.js] +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; class CtorDtor { } -@CtorDtor -class C { -} +let C = class C { +}; +C = __decorate([ + CtorDtor +], C); diff --git a/testdata/baselines/reference/submodule/conformance/constructableDecoratorOnClass01.js.diff b/testdata/baselines/reference/submodule/conformance/constructableDecoratorOnClass01.js.diff deleted file mode 100644 index 9024205d48..0000000000 --- a/testdata/baselines/reference/submodule/conformance/constructableDecoratorOnClass01.js.diff +++ /dev/null @@ -1,22 +0,0 @@ ---- old.constructableDecoratorOnClass01.js -+++ new.constructableDecoratorOnClass01.js -@@= skipped -9, +9 lines =@@ - - - //// [constructableDecoratorOnClass01.js] --var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { -- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; -- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); -- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; -- return c > 3 && r && Object.defineProperty(target, key, r), r; --}; - class CtorDtor { - } --let C = class C { --}; --C = __decorate([ -- CtorDtor --], C); -+@CtorDtor -+class C { -+} \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/decoratedBlockScopedClass1.js b/testdata/baselines/reference/submodule/conformance/decoratedBlockScopedClass1.js index 66b36e9fe3..3d5aea71d0 100644 --- a/testdata/baselines/reference/submodule/conformance/decoratedBlockScopedClass1.js +++ b/testdata/baselines/reference/submodule/conformance/decoratedBlockScopedClass1.js @@ -15,13 +15,21 @@ Foo.func(); //// [a.js] +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; function decorator() { return (target) => { }; } -@decorator() -class Foo { +let Foo = class Foo { static func() { return new Foo(); } -} +}; +Foo = __decorate([ + decorator() +], Foo); Foo.func(); diff --git a/testdata/baselines/reference/submodule/conformance/decoratedBlockScopedClass1.js.diff b/testdata/baselines/reference/submodule/conformance/decoratedBlockScopedClass1.js.diff index 1c1412c2cc..1dc2a603ba 100644 --- a/testdata/baselines/reference/submodule/conformance/decoratedBlockScopedClass1.js.diff +++ b/testdata/baselines/reference/submodule/conformance/decoratedBlockScopedClass1.js.diff @@ -1,29 +1,22 @@ --- old.decoratedBlockScopedClass1.js +++ new.decoratedBlockScopedClass1.js -@@= skipped -14, +14 lines =@@ - - - //// [a.js] --var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { -- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; -- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); -- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; -- return c > 3 && r && Object.defineProperty(target, key, r), r; --}; +@@= skipped -20, +20 lines =@@ + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; + }; -var Foo_1; function decorator() { return (target) => { }; } -let Foo = Foo_1 = class Foo { -+@decorator() -+class Foo { ++let Foo = class Foo { static func() { - return new Foo_1(); + return new Foo(); } --}; + }; -Foo = Foo_1 = __decorate([ -- decorator() --], Foo); -+} ++Foo = __decorate([ + decorator() + ], Foo); Foo.func(); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/decoratedBlockScopedClass2.js b/testdata/baselines/reference/submodule/conformance/decoratedBlockScopedClass2.js index 92db8d2ffc..8026f21490 100644 --- a/testdata/baselines/reference/submodule/conformance/decoratedBlockScopedClass2.js +++ b/testdata/baselines/reference/submodule/conformance/decoratedBlockScopedClass2.js @@ -18,16 +18,24 @@ catch (e) {} //// [a.js] +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; function decorator() { return (target) => { }; } try { - @decorator() - class Foo { + let Foo = class Foo { static func() { return new Foo(); } - } + }; + Foo = __decorate([ + decorator() + ], Foo); Foo.func(); } catch (e) { } diff --git a/testdata/baselines/reference/submodule/conformance/decoratedBlockScopedClass2.js.diff b/testdata/baselines/reference/submodule/conformance/decoratedBlockScopedClass2.js.diff index 8d1623a8e0..53dbd0970f 100644 --- a/testdata/baselines/reference/submodule/conformance/decoratedBlockScopedClass2.js.diff +++ b/testdata/baselines/reference/submodule/conformance/decoratedBlockScopedClass2.js.diff @@ -1,32 +1,23 @@ --- old.decoratedBlockScopedClass2.js +++ new.decoratedBlockScopedClass2.js -@@= skipped -17, +17 lines =@@ - - - //// [a.js] --var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { -- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; -- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); -- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; -- return c > 3 && r && Object.defineProperty(target, key, r), r; --}; +@@= skipped -23, +23 lines =@@ + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; + }; -var Foo_1; function decorator() { return (target) => { }; } try { - let Foo = Foo_1 = class Foo { -+ @decorator() -+ class Foo { ++ let Foo = class Foo { static func() { - return new Foo_1(); + return new Foo(); } -- }; + }; - Foo = Foo_1 = __decorate([ -- decorator() -- ], Foo); -+ } - Foo.func(); - } - catch (e) { } \ No newline at end of file ++ Foo = __decorate([ + decorator() + ], Foo); + Foo.func(); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/decoratedBlockScopedClass3.js b/testdata/baselines/reference/submodule/conformance/decoratedBlockScopedClass3.js index 498297b983..4b9c8f2480 100644 --- a/testdata/baselines/reference/submodule/conformance/decoratedBlockScopedClass3.js +++ b/testdata/baselines/reference/submodule/conformance/decoratedBlockScopedClass3.js @@ -26,23 +26,33 @@ catch (e) {} //// [a.js] +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; function decorator() { return (target) => { }; } -@decorator() -class Foo { +let Foo = class Foo { static func() { return new Foo(); } -} +}; +Foo = __decorate([ + decorator() +], Foo); Foo.func(); try { - @decorator() - class Foo { + let Foo = class Foo { static func() { return new Foo(); } - } + }; + Foo = __decorate([ + decorator() + ], Foo); Foo.func(); } catch (e) { } diff --git a/testdata/baselines/reference/submodule/conformance/decoratedBlockScopedClass3.js.diff b/testdata/baselines/reference/submodule/conformance/decoratedBlockScopedClass3.js.diff index b899d74585..0b135b5322 100644 --- a/testdata/baselines/reference/submodule/conformance/decoratedBlockScopedClass3.js.diff +++ b/testdata/baselines/reference/submodule/conformance/decoratedBlockScopedClass3.js.diff @@ -1,45 +1,35 @@ --- old.decoratedBlockScopedClass3.js +++ new.decoratedBlockScopedClass3.js -@@= skipped -25, +25 lines =@@ - - - //// [a.js] --var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { -- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; -- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); -- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; -- return c > 3 && r && Object.defineProperty(target, key, r), r; --}; +@@= skipped -31, +31 lines =@@ + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; + }; -var Foo_1, Foo_2; function decorator() { return (target) => { }; } -let Foo = Foo_1 = class Foo { -+@decorator() -+class Foo { ++let Foo = class Foo { static func() { - return new Foo_1(); + return new Foo(); } --}; + }; -Foo = Foo_1 = __decorate([ -- decorator() --], Foo); -+} ++Foo = __decorate([ + decorator() + ], Foo); Foo.func(); try { - let Foo = Foo_2 = class Foo { -+ @decorator() -+ class Foo { ++ let Foo = class Foo { static func() { - return new Foo_2(); + return new Foo(); } -- }; + }; - Foo = Foo_2 = __decorate([ -- decorator() -- ], Foo); -+ } - Foo.func(); - } - catch (e) { } \ No newline at end of file ++ Foo = __decorate([ + decorator() + ], Foo); + Foo.func(); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/decoratedClassExportsCommonJS1.js b/testdata/baselines/reference/submodule/conformance/decoratedClassExportsCommonJS1.js index 3e7ead401f..3fd619f58e 100644 --- a/testdata/baselines/reference/submodule/conformance/decoratedClassExportsCommonJS1.js +++ b/testdata/baselines/reference/submodule/conformance/decoratedClassExportsCommonJS1.js @@ -11,11 +11,19 @@ export class Testing123 { //// [a.js] "use strict"; +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; Object.defineProperty(exports, "__esModule", { value: true }); exports.Testing123 = void 0; -@Something({ v: () => Testing123 }) -class Testing123 { +let Testing123 = class Testing123 { static prop0; static prop1 = Testing123.prop0; -} +}; exports.Testing123 = Testing123; +exports.Testing123 = Testing123 = __decorate([ + Something({ v: () => Testing123 }) +], Testing123); diff --git a/testdata/baselines/reference/submodule/conformance/decoratedClassExportsCommonJS1.js.diff b/testdata/baselines/reference/submodule/conformance/decoratedClassExportsCommonJS1.js.diff index e0133f60d7..6860750a4e 100644 --- a/testdata/baselines/reference/submodule/conformance/decoratedClassExportsCommonJS1.js.diff +++ b/testdata/baselines/reference/submodule/conformance/decoratedClassExportsCommonJS1.js.diff @@ -16,24 +16,23 @@ -//// [decoratedClassExportsCommonJS1.js] +//// [a.js] "use strict"; --var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { -- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; -- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); -- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; -- return c > 3 && r && Object.defineProperty(target, key, r), r; --}; + var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; +@@= skipped -8, +8 lines =@@ + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; + }; -var Testing123_1; Object.defineProperty(exports, "__esModule", { value: true }); exports.Testing123 = void 0; -let Testing123 = Testing123_1 = class Testing123 { --}; -+@Something({ v: () => Testing123 }) -+class Testing123 { ++let Testing123 = class Testing123 { + static prop0; + static prop1 = Testing123.prop0; -+} + }; exports.Testing123 = Testing123; -Testing123.prop1 = Testing123_1.prop0; -exports.Testing123 = Testing123 = Testing123_1 = __decorate([ -- Something({ v: () => Testing123 }) --], Testing123); \ No newline at end of file ++exports.Testing123 = Testing123 = __decorate([ + Something({ v: () => Testing123 }) + ], Testing123); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/decoratedClassExportsCommonJS2.js b/testdata/baselines/reference/submodule/conformance/decoratedClassExportsCommonJS2.js index 06e197652d..a7525a9947 100644 --- a/testdata/baselines/reference/submodule/conformance/decoratedClassExportsCommonJS2.js +++ b/testdata/baselines/reference/submodule/conformance/decoratedClassExportsCommonJS2.js @@ -8,9 +8,17 @@ export class Testing123 { } //// [a.js] "use strict"; +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; Object.defineProperty(exports, "__esModule", { value: true }); exports.Testing123 = void 0; -@Something({ v: () => Testing123 }) -class Testing123 { -} +let Testing123 = class Testing123 { +}; exports.Testing123 = Testing123; +exports.Testing123 = Testing123 = __decorate([ + Something({ v: () => Testing123 }) +], Testing123); diff --git a/testdata/baselines/reference/submodule/conformance/decoratedClassExportsCommonJS2.js.diff b/testdata/baselines/reference/submodule/conformance/decoratedClassExportsCommonJS2.js.diff deleted file mode 100644 index 121e29310b..0000000000 --- a/testdata/baselines/reference/submodule/conformance/decoratedClassExportsCommonJS2.js.diff +++ /dev/null @@ -1,23 +0,0 @@ ---- old.decoratedClassExportsCommonJS2.js -+++ new.decoratedClassExportsCommonJS2.js -@@= skipped -7, +7 lines =@@ - - //// [a.js] - "use strict"; --var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { -- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; -- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); -- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; -- return c > 3 && r && Object.defineProperty(target, key, r), r; --}; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.Testing123 = void 0; --let Testing123 = class Testing123 { --}; -+@Something({ v: () => Testing123 }) -+class Testing123 { -+} - exports.Testing123 = Testing123; --exports.Testing123 = Testing123 = __decorate([ -- Something({ v: () => Testing123 }) --], Testing123); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/decoratedClassFromExternalModule.js b/testdata/baselines/reference/submodule/conformance/decoratedClassFromExternalModule.js index f47b92f517..c40cd3f691 100644 --- a/testdata/baselines/reference/submodule/conformance/decoratedClassFromExternalModule.js +++ b/testdata/baselines/reference/submodule/conformance/decoratedClassFromExternalModule.js @@ -10,9 +10,18 @@ export default class Decorated { } import Decorated from 'decorated'; //// [decorated.js] +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; function decorate(target) { } -@decorate -export default class Decorated { -} +let Decorated = class Decorated { +}; +Decorated = __decorate([ + decorate +], Decorated); +export default Decorated; //// [undecorated.js] export {}; diff --git a/testdata/baselines/reference/submodule/conformance/decoratedClassFromExternalModule.js.diff b/testdata/baselines/reference/submodule/conformance/decoratedClassFromExternalModule.js.diff deleted file mode 100644 index fbc3c222ca..0000000000 --- a/testdata/baselines/reference/submodule/conformance/decoratedClassFromExternalModule.js.diff +++ /dev/null @@ -1,24 +0,0 @@ ---- old.decoratedClassFromExternalModule.js -+++ new.decoratedClassFromExternalModule.js -@@= skipped -9, +9 lines =@@ - import Decorated from 'decorated'; - - //// [decorated.js] --var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { -- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; -- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); -- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; -- return c > 3 && r && Object.defineProperty(target, key, r), r; --}; - function decorate(target) { } --let Decorated = class Decorated { --}; --Decorated = __decorate([ -- decorate --], Decorated); --export default Decorated; -+@decorate -+export default class Decorated { -+} - //// [undecorated.js] - export {}; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/decoratedDefaultExportsGetExportedCommonjs.js b/testdata/baselines/reference/submodule/conformance/decoratedDefaultExportsGetExportedCommonjs.js index 379f3c1c55..f6c7b7cbc8 100644 --- a/testdata/baselines/reference/submodule/conformance/decoratedDefaultExportsGetExportedCommonjs.js +++ b/testdata/baselines/reference/submodule/conformance/decoratedDefaultExportsGetExportedCommonjs.js @@ -15,17 +15,33 @@ export default class {} //// [a.js] "use strict"; +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; Object.defineProperty(exports, "__esModule", { value: true }); var decorator; -@decorator -class Foo { -} +let Foo = class Foo { +}; +Foo = __decorate([ + decorator +], Foo); exports.default = Foo; //// [b.js] "use strict"; +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; Object.defineProperty(exports, "__esModule", { value: true }); var decorator; -@decorator -class default_1 { -} +let default_1 = class { +}; +default_1 = __decorate([ + decorator +], default_1); exports.default = default_1; diff --git a/testdata/baselines/reference/submodule/conformance/decoratedDefaultExportsGetExportedCommonjs.js.diff b/testdata/baselines/reference/submodule/conformance/decoratedDefaultExportsGetExportedCommonjs.js.diff deleted file mode 100644 index dc58277e0f..0000000000 --- a/testdata/baselines/reference/submodule/conformance/decoratedDefaultExportsGetExportedCommonjs.js.diff +++ /dev/null @@ -1,42 +0,0 @@ ---- old.decoratedDefaultExportsGetExportedCommonjs.js -+++ new.decoratedDefaultExportsGetExportedCommonjs.js -@@= skipped -14, +14 lines =@@ - - //// [a.js] - "use strict"; --var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { -- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; -- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); -- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; -- return c > 3 && r && Object.defineProperty(target, key, r), r; --}; - Object.defineProperty(exports, "__esModule", { value: true }); - var decorator; --let Foo = class Foo { --}; --Foo = __decorate([ -- decorator --], Foo); -+@decorator -+class Foo { -+} - exports.default = Foo; - //// [b.js] - "use strict"; --var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { -- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; -- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); -- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; -- return c > 3 && r && Object.defineProperty(target, key, r), r; --}; - Object.defineProperty(exports, "__esModule", { value: true }); - var decorator; --let default_1 = class { --}; --default_1 = __decorate([ -- decorator --], default_1); -+@decorator -+class default_1 { -+} - exports.default = default_1; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/decoratorCallGeneric.js b/testdata/baselines/reference/submodule/conformance/decoratorCallGeneric.js index 454d5db19d..93ce7a1cec 100644 --- a/testdata/baselines/reference/submodule/conformance/decoratorCallGeneric.js +++ b/testdata/baselines/reference/submodule/conformance/decoratorCallGeneric.js @@ -15,9 +15,17 @@ class C { //// [decoratorCallGeneric.js] +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; function dec(c) { } -@dec -class C { +let C = class C { _brand; static m() { } -} +}; +C = __decorate([ + dec +], C); diff --git a/testdata/baselines/reference/submodule/conformance/decoratorCallGeneric.js.diff b/testdata/baselines/reference/submodule/conformance/decoratorCallGeneric.js.diff index b2d88f00ca..c8841f1e3e 100644 --- a/testdata/baselines/reference/submodule/conformance/decoratorCallGeneric.js.diff +++ b/testdata/baselines/reference/submodule/conformance/decoratorCallGeneric.js.diff @@ -1,23 +1,10 @@ --- old.decoratorCallGeneric.js +++ new.decoratorCallGeneric.js -@@= skipped -14, +14 lines =@@ - - - //// [decoratorCallGeneric.js] --var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { -- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; -- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); -- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; -- return c > 3 && r && Object.defineProperty(target, key, r), r; --}; +@@= skipped -22, +22 lines =@@ + }; function dec(c) { } --let C = class C { -+@dec -+class C { + let C = class C { + _brand; static m() { } --}; --C = __decorate([ -- dec --], C); -+} \ No newline at end of file + }; + C = __decorate([ \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/decoratorChecksFunctionBodies.js b/testdata/baselines/reference/submodule/conformance/decoratorChecksFunctionBodies.js index 3e60c6dc50..b350043def 100644 --- a/testdata/baselines/reference/submodule/conformance/decoratorChecksFunctionBodies.js +++ b/testdata/baselines/reference/submodule/conformance/decoratorChecksFunctionBodies.js @@ -17,15 +17,23 @@ class A { } //// [decoratorChecksFunctionBodies.js] +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; // from #2971 function func(s) { } class A { - @((x, p, d) => { + m() { + } +} +__decorate([ + ((x, p, d) => { var a = 3; func(a); return d; }) - m() { - } -} +], A.prototype, "m", null); diff --git a/testdata/baselines/reference/submodule/conformance/decoratorChecksFunctionBodies.js.diff b/testdata/baselines/reference/submodule/conformance/decoratorChecksFunctionBodies.js.diff deleted file mode 100644 index b3531137d4..0000000000 --- a/testdata/baselines/reference/submodule/conformance/decoratorChecksFunctionBodies.js.diff +++ /dev/null @@ -1,30 +0,0 @@ ---- old.decoratorChecksFunctionBodies.js -+++ new.decoratorChecksFunctionBodies.js -@@= skipped -16, +16 lines =@@ - } - - //// [decoratorChecksFunctionBodies.js] --var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { -- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; -- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); -- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; -- return c > 3 && r && Object.defineProperty(target, key, r), r; --}; - // from #2971 - function func(s) { - } - class A { -- m() { -- } --} --__decorate([ -- ((x, p, d) => { -+ @((x, p, d) => { - var a = 3; - func(a); - return d; - }) --], A.prototype, "m", null); -+ m() { -+ } -+} \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/decoratorInAmbientContext.js b/testdata/baselines/reference/submodule/conformance/decoratorInAmbientContext.js index 6c60b0e747..61bf03bd5f 100644 --- a/testdata/baselines/reference/submodule/conformance/decoratorInAmbientContext.js +++ b/testdata/baselines/reference/submodule/conformance/decoratorInAmbientContext.js @@ -11,6 +11,18 @@ class Foo { //// [decoratorInAmbientContext.js] +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; const b = Symbol('b'); class Foo { } +__decorate([ + decorator +], Foo.prototype, "a", void 0); +__decorate([ + decorator +], Foo.prototype, _a, void 0); diff --git a/testdata/baselines/reference/submodule/conformance/decoratorInAmbientContext.js.diff b/testdata/baselines/reference/submodule/conformance/decoratorInAmbientContext.js.diff index d978285d67..fe43dc23c8 100644 --- a/testdata/baselines/reference/submodule/conformance/decoratorInAmbientContext.js.diff +++ b/testdata/baselines/reference/submodule/conformance/decoratorInAmbientContext.js.diff @@ -1,21 +1,8 @@ --- old.decoratorInAmbientContext.js +++ new.decoratorInAmbientContext.js -@@= skipped -10, +10 lines =@@ - - - //// [decoratorInAmbientContext.js] --var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { -- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; -- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); -- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; -- return c > 3 && r && Object.defineProperty(target, key, r), r; --}; - const b = Symbol('b'); - class Foo { - } --__decorate([ -- decorator --], Foo.prototype, "a", void 0); --__decorate([ -- decorator --], Foo.prototype, b, void 0); \ No newline at end of file +@@= skipped -24, +24 lines =@@ + ], Foo.prototype, "a", void 0); + __decorate([ + decorator +-], Foo.prototype, b, void 0); ++], Foo.prototype, _a, void 0); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/decoratorInstantiateModulesInFunctionBodies.js b/testdata/baselines/reference/submodule/conformance/decoratorInstantiateModulesInFunctionBodies.js index 9846bb5de2..8ae8b35bba 100644 --- a/testdata/baselines/reference/submodule/conformance/decoratorInstantiateModulesInFunctionBodies.js +++ b/testdata/baselines/reference/submodule/conformance/decoratorInstantiateModulesInFunctionBodies.js @@ -28,6 +28,12 @@ exports.test = void 0; exports.test = 'abc'; //// [b.js] "use strict"; +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; Object.defineProperty(exports, "__esModule", { value: true }); const a_1 = require("./a"); function filter(handler) { @@ -36,8 +42,10 @@ function filter(handler) { }; } class Wat { - @filter(() => a_1.test == 'abc') static whatever() { // ... } } +__decorate([ + filter(() => a_1.test == 'abc') +], Wat, "whatever", null); diff --git a/testdata/baselines/reference/submodule/conformance/decoratorInstantiateModulesInFunctionBodies.js.diff b/testdata/baselines/reference/submodule/conformance/decoratorInstantiateModulesInFunctionBodies.js.diff deleted file mode 100644 index 8f5e18b058..0000000000 --- a/testdata/baselines/reference/submodule/conformance/decoratorInstantiateModulesInFunctionBodies.js.diff +++ /dev/null @@ -1,27 +0,0 @@ ---- old.decoratorInstantiateModulesInFunctionBodies.js -+++ new.decoratorInstantiateModulesInFunctionBodies.js -@@= skipped -27, +27 lines =@@ - exports.test = 'abc'; - //// [b.js] - "use strict"; --var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { -- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; -- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); -- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; -- return c > 3 && r && Object.defineProperty(target, key, r), r; --}; - Object.defineProperty(exports, "__esModule", { value: true }); - const a_1 = require("./a"); - function filter(handler) { -@@= skipped -14, +8 lines =@@ - }; - } - class Wat { -+ @filter(() => a_1.test == 'abc') - static whatever() { - // ... - } - } --__decorate([ -- filter(() => a_1.test == 'abc') --], Wat, "whatever", null); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/decoratorMetadata-jsdoc.js b/testdata/baselines/reference/submodule/conformance/decoratorMetadata-jsdoc.js index 54a734151a..5d378c1ba4 100644 --- a/testdata/baselines/reference/submodule/conformance/decoratorMetadata-jsdoc.js +++ b/testdata/baselines/reference/submodule/conformance/decoratorMetadata-jsdoc.js @@ -13,11 +13,29 @@ class X { } //// [decoratorMetadata-jsdoc.js] +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; class X { - @decorator() a; - @decorator() b; - @decorator() c; } +__decorate([ + decorator(), + __metadata("design:type", String) +], X.prototype, "a", void 0); +__decorate([ + decorator(), + __metadata("design:type", String) +], X.prototype, "b", void 0); +__decorate([ + decorator(), + __metadata("design:type", Object) +], X.prototype, "c", void 0); diff --git a/testdata/baselines/reference/submodule/conformance/decoratorMetadata-jsdoc.js.diff b/testdata/baselines/reference/submodule/conformance/decoratorMetadata-jsdoc.js.diff index d29122da2c..23c8aa9226 100644 --- a/testdata/baselines/reference/submodule/conformance/decoratorMetadata-jsdoc.js.diff +++ b/testdata/baselines/reference/submodule/conformance/decoratorMetadata-jsdoc.js.diff @@ -1,35 +1,12 @@ --- old.decoratorMetadata-jsdoc.js +++ new.decoratorMetadata-jsdoc.js -@@= skipped -12, +12 lines =@@ - } - - //// [decoratorMetadata-jsdoc.js] --var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { -- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; -- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); -- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; -- return c > 3 && r && Object.defineProperty(target, key, r), r; --}; --var __metadata = (this && this.__metadata) || function (k, v) { -- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); --}; +@@= skipped -22, +22 lines =@@ + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); + }; class X { -+ @decorator() + a; -+ @decorator() + b; -+ @decorator() + c; } --__decorate([ -- decorator(), -- __metadata("design:type", String) --], X.prototype, "a", void 0); --__decorate([ -- decorator(), -- __metadata("design:type", String) --], X.prototype, "b", void 0); --__decorate([ -- decorator(), -- __metadata("design:type", Object) --], X.prototype, "c", void 0); \ No newline at end of file + __decorate([ + decorator(), \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/decoratorMetadata.js b/testdata/baselines/reference/submodule/conformance/decoratorMetadata.js index dfacfd2cd3..d6a80908a2 100644 --- a/testdata/baselines/reference/submodule/conformance/decoratorMetadata.js +++ b/testdata/baselines/reference/submodule/conformance/decoratorMetadata.js @@ -26,14 +26,35 @@ class Service { exports.default = Service; //// [component.js] "use strict"; +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; Object.defineProperty(exports, "__esModule", { value: true }); -@decorator -class MyComponent { +const service_1 = __importDefault(require("./service")); +let MyComponent = class MyComponent { Service; constructor(Service) { this.Service = Service; } - @decorator method(x) { } -} +}; +__decorate([ + decorator, + __metadata("design:type", Function), + __metadata("design:paramtypes", [Object]), + __metadata("design:returntype", void 0) +], MyComponent.prototype, "method", null); +MyComponent = __decorate([ + decorator, + __metadata("design:paramtypes", [service_1.default]) +], MyComponent); diff --git a/testdata/baselines/reference/submodule/conformance/decoratorMetadata.js.diff b/testdata/baselines/reference/submodule/conformance/decoratorMetadata.js.diff index 32004d5b91..64f020529d 100644 --- a/testdata/baselines/reference/submodule/conformance/decoratorMetadata.js.diff +++ b/testdata/baselines/reference/submodule/conformance/decoratorMetadata.js.diff @@ -1,42 +1,10 @@ --- old.decoratorMetadata.js +++ new.decoratorMetadata.js -@@= skipped -25, +25 lines =@@ - exports.default = Service; - //// [component.js] - "use strict"; --var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { -- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; -- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); -- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; -- return c > 3 && r && Object.defineProperty(target, key, r), r; --}; --var __metadata = (this && this.__metadata) || function (k, v) { -- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); --}; --var __importDefault = (this && this.__importDefault) || function (mod) { -- return (mod && mod.__esModule) ? mod : { "default": mod }; --}; +@@= skipped -40, +40 lines =@@ Object.defineProperty(exports, "__esModule", { value: true }); --const service_1 = __importDefault(require("./service")); --let MyComponent = class MyComponent { -+@decorator -+class MyComponent { + const service_1 = __importDefault(require("./service")); + let MyComponent = class MyComponent { + Service; constructor(Service) { this.Service = Service; - } -+ @decorator - method(x) { - } --}; --__decorate([ -- decorator, -- __metadata("design:type", Function), -- __metadata("design:paramtypes", [Object]), -- __metadata("design:returntype", void 0) --], MyComponent.prototype, "method", null); --MyComponent = __decorate([ -- decorator, -- __metadata("design:paramtypes", [service_1.default]) --], MyComponent); -+} \ No newline at end of file + } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/decoratorMetadataWithTypeOnlyImport.js b/testdata/baselines/reference/submodule/conformance/decoratorMetadataWithTypeOnlyImport.js index 8f8953b63a..6cda51dd76 100644 --- a/testdata/baselines/reference/submodule/conformance/decoratorMetadataWithTypeOnlyImport.js +++ b/testdata/baselines/reference/submodule/conformance/decoratorMetadataWithTypeOnlyImport.js @@ -27,14 +27,31 @@ class Service { exports.Service = Service; //// [component.js] "use strict"; +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; Object.defineProperty(exports, "__esModule", { value: true }); -@decorator -class MyComponent { +let MyComponent = class MyComponent { Service; constructor(Service) { this.Service = Service; } - @decorator method(x) { } -} +}; +__decorate([ + decorator, + __metadata("design:type", Function), + __metadata("design:paramtypes", [Object]), + __metadata("design:returntype", void 0) +], MyComponent.prototype, "method", null); +MyComponent = __decorate([ + decorator, + __metadata("design:paramtypes", [Function]) +], MyComponent); diff --git a/testdata/baselines/reference/submodule/conformance/decoratorMetadataWithTypeOnlyImport.js.diff b/testdata/baselines/reference/submodule/conformance/decoratorMetadataWithTypeOnlyImport.js.diff index 93ca747425..c056a1a0be 100644 --- a/testdata/baselines/reference/submodule/conformance/decoratorMetadataWithTypeOnlyImport.js.diff +++ b/testdata/baselines/reference/submodule/conformance/decoratorMetadataWithTypeOnlyImport.js.diff @@ -1,38 +1,10 @@ --- old.decoratorMetadataWithTypeOnlyImport.js +++ new.decoratorMetadataWithTypeOnlyImport.js -@@= skipped -26, +26 lines =@@ - exports.Service = Service; - //// [component.js] - "use strict"; --var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { -- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; -- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); -- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; -- return c > 3 && r && Object.defineProperty(target, key, r), r; --}; --var __metadata = (this && this.__metadata) || function (k, v) { -- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); --}; +@@= skipped -37, +37 lines =@@ + }; Object.defineProperty(exports, "__esModule", { value: true }); --let MyComponent = class MyComponent { -+@decorator -+class MyComponent { + let MyComponent = class MyComponent { + Service; constructor(Service) { this.Service = Service; - } -+ @decorator - method(x) { - } --}; --__decorate([ -- decorator, -- __metadata("design:type", Function), -- __metadata("design:paramtypes", [Object]), -- __metadata("design:returntype", void 0) --], MyComponent.prototype, "method", null); --MyComponent = __decorate([ -- decorator, -- __metadata("design:paramtypes", [Function]) --], MyComponent); -+} \ No newline at end of file + } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/decoratorMetadataWithTypeOnlyImport2.js b/testdata/baselines/reference/submodule/conformance/decoratorMetadataWithTypeOnlyImport2.js index 59cbe004ae..ccb11a1cc6 100644 --- a/testdata/baselines/reference/submodule/conformance/decoratorMetadataWithTypeOnlyImport2.js +++ b/testdata/baselines/reference/submodule/conformance/decoratorMetadataWithTypeOnlyImport2.js @@ -27,10 +27,22 @@ var Services; })(Services || (exports.Services = Services = {})); //// [index.js] "use strict"; +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; Object.defineProperty(exports, "__esModule", { value: true }); exports.Main = void 0; class Main { - @decorator() field; } exports.Main = Main; +__decorate([ + decorator(), + __metadata("design:type", Function) +], Main.prototype, "field", void 0); diff --git a/testdata/baselines/reference/submodule/conformance/decoratorMetadataWithTypeOnlyImport2.js.diff b/testdata/baselines/reference/submodule/conformance/decoratorMetadataWithTypeOnlyImport2.js.diff index e74b30c114..05f87f76f1 100644 --- a/testdata/baselines/reference/submodule/conformance/decoratorMetadataWithTypeOnlyImport2.js.diff +++ b/testdata/baselines/reference/submodule/conformance/decoratorMetadataWithTypeOnlyImport2.js.diff @@ -1,26 +1,10 @@ --- old.decoratorMetadataWithTypeOnlyImport2.js +++ new.decoratorMetadataWithTypeOnlyImport2.js -@@= skipped -26, +26 lines =@@ - })(Services || (exports.Services = Services = {})); - //// [index.js] - "use strict"; --var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { -- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; -- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); -- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; -- return c > 3 && r && Object.defineProperty(target, key, r), r; --}; --var __metadata = (this && this.__metadata) || function (k, v) { -- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); --}; +@@= skipped -38, +38 lines =@@ Object.defineProperty(exports, "__esModule", { value: true }); exports.Main = void 0; class Main { -+ @decorator() + field; } exports.Main = Main; --__decorate([ -- decorator(), -- __metadata("design:type", Function) --], Main.prototype, "field", void 0); \ No newline at end of file + __decorate([ \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/decoratorOnClass1.es6.js b/testdata/baselines/reference/submodule/conformance/decoratorOnClass1.es6.js index 7061be18fd..22c8b20836 100644 --- a/testdata/baselines/reference/submodule/conformance/decoratorOnClass1.es6.js +++ b/testdata/baselines/reference/submodule/conformance/decoratorOnClass1.es6.js @@ -10,7 +10,15 @@ class C { let c = new C(); //// [decoratorOnClass1.es6.js] -@dec -class C { -} +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +let C = class C { +}; +C = __decorate([ + dec +], C); let c = new C(); diff --git a/testdata/baselines/reference/submodule/conformance/decoratorOnClass1.es6.js.diff b/testdata/baselines/reference/submodule/conformance/decoratorOnClass1.es6.js.diff deleted file mode 100644 index 45d1676b37..0000000000 --- a/testdata/baselines/reference/submodule/conformance/decoratorOnClass1.es6.js.diff +++ /dev/null @@ -1,21 +0,0 @@ ---- old.decoratorOnClass1.es6.js -+++ new.decoratorOnClass1.es6.js -@@= skipped -9, +9 lines =@@ - let c = new C(); - - //// [decoratorOnClass1.es6.js] --var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { -- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; -- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); -- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; -- return c > 3 && r && Object.defineProperty(target, key, r), r; --}; --let C = class C { --}; --C = __decorate([ -- dec --], C); -+@dec -+class C { -+} - let c = new C(); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/decoratorOnClass1.js b/testdata/baselines/reference/submodule/conformance/decoratorOnClass1.js index ee4e6def70..29cb48bba2 100644 --- a/testdata/baselines/reference/submodule/conformance/decoratorOnClass1.js +++ b/testdata/baselines/reference/submodule/conformance/decoratorOnClass1.js @@ -8,6 +8,14 @@ class C { } //// [decoratorOnClass1.js] -@dec -class C { -} +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +let C = class C { +}; +C = __decorate([ + dec +], C); diff --git a/testdata/baselines/reference/submodule/conformance/decoratorOnClass1.js.diff b/testdata/baselines/reference/submodule/conformance/decoratorOnClass1.js.diff deleted file mode 100644 index 4f1fae8dbb..0000000000 --- a/testdata/baselines/reference/submodule/conformance/decoratorOnClass1.js.diff +++ /dev/null @@ -1,20 +0,0 @@ ---- old.decoratorOnClass1.js -+++ new.decoratorOnClass1.js -@@= skipped -7, +7 lines =@@ - } - - //// [decoratorOnClass1.js] --var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { -- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; -- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); -- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; -- return c > 3 && r && Object.defineProperty(target, key, r), r; --}; --let C = class C { --}; --C = __decorate([ -- dec --], C); -+@dec -+class C { -+} \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/decoratorOnClass2.es6.js b/testdata/baselines/reference/submodule/conformance/decoratorOnClass2.es6.js index 374ab36bf5..608d982705 100644 --- a/testdata/baselines/reference/submodule/conformance/decoratorOnClass2.es6.js +++ b/testdata/baselines/reference/submodule/conformance/decoratorOnClass2.es6.js @@ -10,7 +10,16 @@ export class C { let c = new C(); //// [decoratorOnClass2.es6.js] -@dec -export class C { -} +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +let C = class C { +}; +C = __decorate([ + dec +], C); +export { C }; let c = new C(); diff --git a/testdata/baselines/reference/submodule/conformance/decoratorOnClass2.es6.js.diff b/testdata/baselines/reference/submodule/conformance/decoratorOnClass2.es6.js.diff deleted file mode 100644 index 2a7f506983..0000000000 --- a/testdata/baselines/reference/submodule/conformance/decoratorOnClass2.es6.js.diff +++ /dev/null @@ -1,22 +0,0 @@ ---- old.decoratorOnClass2.es6.js -+++ new.decoratorOnClass2.es6.js -@@= skipped -9, +9 lines =@@ - let c = new C(); - - //// [decoratorOnClass2.es6.js] --var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { -- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; -- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); -- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; -- return c > 3 && r && Object.defineProperty(target, key, r), r; --}; --let C = class C { --}; --C = __decorate([ -- dec --], C); --export { C }; -+@dec -+export class C { -+} - let c = new C(); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/decoratorOnClass2.js b/testdata/baselines/reference/submodule/conformance/decoratorOnClass2.js index f46d62b817..172324643a 100644 --- a/testdata/baselines/reference/submodule/conformance/decoratorOnClass2.js +++ b/testdata/baselines/reference/submodule/conformance/decoratorOnClass2.js @@ -9,9 +9,17 @@ export class C { //// [decoratorOnClass2.js] "use strict"; +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; Object.defineProperty(exports, "__esModule", { value: true }); exports.C = void 0; -@dec -class C { -} +let C = class C { +}; exports.C = C; +exports.C = C = __decorate([ + dec +], C); diff --git a/testdata/baselines/reference/submodule/conformance/decoratorOnClass2.js.diff b/testdata/baselines/reference/submodule/conformance/decoratorOnClass2.js.diff deleted file mode 100644 index 8d0066242b..0000000000 --- a/testdata/baselines/reference/submodule/conformance/decoratorOnClass2.js.diff +++ /dev/null @@ -1,23 +0,0 @@ ---- old.decoratorOnClass2.js -+++ new.decoratorOnClass2.js -@@= skipped -8, +8 lines =@@ - - //// [decoratorOnClass2.js] - "use strict"; --var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { -- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; -- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); -- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; -- return c > 3 && r && Object.defineProperty(target, key, r), r; --}; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.C = void 0; --let C = class C { --}; -+@dec -+class C { -+} - exports.C = C; --exports.C = C = __decorate([ -- dec --], C); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/decoratorOnClass3.es6.js b/testdata/baselines/reference/submodule/conformance/decoratorOnClass3.es6.js index dcb3460467..a009058067 100644 --- a/testdata/baselines/reference/submodule/conformance/decoratorOnClass3.es6.js +++ b/testdata/baselines/reference/submodule/conformance/decoratorOnClass3.es6.js @@ -10,7 +10,16 @@ export default class C { let c = new C(); //// [decoratorOnClass3.es6.js] -@dec -export default class C { -} +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +let C = class C { +}; +C = __decorate([ + dec +], C); +export default C; let c = new C(); diff --git a/testdata/baselines/reference/submodule/conformance/decoratorOnClass3.es6.js.diff b/testdata/baselines/reference/submodule/conformance/decoratorOnClass3.es6.js.diff deleted file mode 100644 index 7805505508..0000000000 --- a/testdata/baselines/reference/submodule/conformance/decoratorOnClass3.es6.js.diff +++ /dev/null @@ -1,22 +0,0 @@ ---- old.decoratorOnClass3.es6.js -+++ new.decoratorOnClass3.es6.js -@@= skipped -9, +9 lines =@@ - let c = new C(); - - //// [decoratorOnClass3.es6.js] --var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { -- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; -- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); -- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; -- return c > 3 && r && Object.defineProperty(target, key, r), r; --}; --let C = class C { --}; --C = __decorate([ -- dec --], C); --export default C; -+@dec -+export default class C { -+} - let c = new C(); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/decoratorOnClass3.js b/testdata/baselines/reference/submodule/conformance/decoratorOnClass3.js index 322089025d..2d9eaa8783 100644 --- a/testdata/baselines/reference/submodule/conformance/decoratorOnClass3.js +++ b/testdata/baselines/reference/submodule/conformance/decoratorOnClass3.js @@ -10,9 +10,17 @@ class C { //// [decoratorOnClass3.js] "use strict"; +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; Object.defineProperty(exports, "__esModule", { value: true }); exports.C = void 0; -@dec -class C { -} +let C = class C { +}; exports.C = C; +exports.C = C = __decorate([ + dec +], C); diff --git a/testdata/baselines/reference/submodule/conformance/decoratorOnClass3.js.diff b/testdata/baselines/reference/submodule/conformance/decoratorOnClass3.js.diff deleted file mode 100644 index b42f0fbb50..0000000000 --- a/testdata/baselines/reference/submodule/conformance/decoratorOnClass3.js.diff +++ /dev/null @@ -1,23 +0,0 @@ ---- old.decoratorOnClass3.js -+++ new.decoratorOnClass3.js -@@= skipped -9, +9 lines =@@ - - //// [decoratorOnClass3.js] - "use strict"; --var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { -- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; -- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); -- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; -- return c > 3 && r && Object.defineProperty(target, key, r), r; --}; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.C = void 0; --let C = class C { --}; -+@dec -+class C { -+} - exports.C = C; --exports.C = C = __decorate([ -- dec --], C); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/decoratorOnClass4.es6.js b/testdata/baselines/reference/submodule/conformance/decoratorOnClass4.es6.js index 5c11ae8325..50674e8e00 100644 --- a/testdata/baselines/reference/submodule/conformance/decoratorOnClass4.es6.js +++ b/testdata/baselines/reference/submodule/conformance/decoratorOnClass4.es6.js @@ -8,6 +8,15 @@ export default class { } //// [decoratorOnClass4.es6.js] -@dec -export default class { -} +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +let default_1 = class { +}; +default_1 = __decorate([ + dec +], default_1); +export default default_1; diff --git a/testdata/baselines/reference/submodule/conformance/decoratorOnClass4.es6.js.diff b/testdata/baselines/reference/submodule/conformance/decoratorOnClass4.es6.js.diff deleted file mode 100644 index 90d6413aaa..0000000000 --- a/testdata/baselines/reference/submodule/conformance/decoratorOnClass4.es6.js.diff +++ /dev/null @@ -1,21 +0,0 @@ ---- old.decoratorOnClass4.es6.js -+++ new.decoratorOnClass4.es6.js -@@= skipped -7, +7 lines =@@ - } - - //// [decoratorOnClass4.es6.js] --var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { -- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; -- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); -- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; -- return c > 3 && r && Object.defineProperty(target, key, r), r; --}; --let default_1 = class { --}; --default_1 = __decorate([ -- dec --], default_1); --export default default_1; -+@dec -+export default class { -+} \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/decoratorOnClass4.js b/testdata/baselines/reference/submodule/conformance/decoratorOnClass4.js index 198791dde1..7c2fc8f2a2 100644 --- a/testdata/baselines/reference/submodule/conformance/decoratorOnClass4.js +++ b/testdata/baselines/reference/submodule/conformance/decoratorOnClass4.js @@ -8,6 +8,14 @@ class C { } //// [decoratorOnClass4.js] -@dec() -class C { -} +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +let C = class C { +}; +C = __decorate([ + dec() +], C); diff --git a/testdata/baselines/reference/submodule/conformance/decoratorOnClass4.js.diff b/testdata/baselines/reference/submodule/conformance/decoratorOnClass4.js.diff deleted file mode 100644 index 7320044436..0000000000 --- a/testdata/baselines/reference/submodule/conformance/decoratorOnClass4.js.diff +++ /dev/null @@ -1,20 +0,0 @@ ---- old.decoratorOnClass4.js -+++ new.decoratorOnClass4.js -@@= skipped -7, +7 lines =@@ - } - - //// [decoratorOnClass4.js] --var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { -- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; -- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); -- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; -- return c > 3 && r && Object.defineProperty(target, key, r), r; --}; --let C = class C { --}; --C = __decorate([ -- dec() --], C); -+@dec() -+class C { -+} \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/decoratorOnClass5.es6.js b/testdata/baselines/reference/submodule/conformance/decoratorOnClass5.es6.js index 1f6e3463fd..00d87c7dc3 100644 --- a/testdata/baselines/reference/submodule/conformance/decoratorOnClass5.es6.js +++ b/testdata/baselines/reference/submodule/conformance/decoratorOnClass5.es6.js @@ -12,9 +12,18 @@ class C { let c = new C(); //// [decoratorOnClass5.es6.js] -@dec -class C { - static x() { return C.y; } +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var C_1; +let C = C_1 = class C { + static x() { return C_1.y; } static y = 1; -} +}; +C = C_1 = __decorate([ + dec +], C); let c = new C(); diff --git a/testdata/baselines/reference/submodule/conformance/decoratorOnClass5.es6.js.diff b/testdata/baselines/reference/submodule/conformance/decoratorOnClass5.es6.js.diff index c9763d7567..2aa069991b 100644 --- a/testdata/baselines/reference/submodule/conformance/decoratorOnClass5.es6.js.diff +++ b/testdata/baselines/reference/submodule/conformance/decoratorOnClass5.es6.js.diff @@ -1,26 +1,12 @@ --- old.decoratorOnClass5.es6.js +++ new.decoratorOnClass5.es6.js -@@= skipped -11, +11 lines =@@ - let c = new C(); - - //// [decoratorOnClass5.es6.js] --var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { -- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; -- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); -- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; -- return c > 3 && r && Object.defineProperty(target, key, r), r; --}; --var C_1; --let C = C_1 = class C { -- static x() { return C_1.y; } --}; --C.y = 1; --C = C_1 = __decorate([ -- dec --], C); -+@dec -+class C { -+ static x() { return C.y; } +@@= skipped -20, +20 lines =@@ + var C_1; + let C = C_1 = class C { + static x() { return C_1.y; } + static y = 1; -+} - let c = new C(); \ No newline at end of file + }; +-C.y = 1; + C = C_1 = __decorate([ + dec + ], C); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/decoratorOnClass5.js b/testdata/baselines/reference/submodule/conformance/decoratorOnClass5.js index ab913de3bd..88650cf4e9 100644 --- a/testdata/baselines/reference/submodule/conformance/decoratorOnClass5.js +++ b/testdata/baselines/reference/submodule/conformance/decoratorOnClass5.js @@ -8,6 +8,14 @@ class C { } //// [decoratorOnClass5.js] -@dec() -class C { -} +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +let C = class C { +}; +C = __decorate([ + dec() +], C); diff --git a/testdata/baselines/reference/submodule/conformance/decoratorOnClass5.js.diff b/testdata/baselines/reference/submodule/conformance/decoratorOnClass5.js.diff deleted file mode 100644 index a3f13b1e8f..0000000000 --- a/testdata/baselines/reference/submodule/conformance/decoratorOnClass5.js.diff +++ /dev/null @@ -1,20 +0,0 @@ ---- old.decoratorOnClass5.js -+++ new.decoratorOnClass5.js -@@= skipped -7, +7 lines =@@ - } - - //// [decoratorOnClass5.js] --var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { -- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; -- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); -- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; -- return c > 3 && r && Object.defineProperty(target, key, r), r; --}; --let C = class C { --}; --C = __decorate([ -- dec() --], C); -+@dec() -+class C { -+} \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/decoratorOnClass6.es6.js b/testdata/baselines/reference/submodule/conformance/decoratorOnClass6.es6.js index e652b3d1b3..59cac6c0e5 100644 --- a/testdata/baselines/reference/submodule/conformance/decoratorOnClass6.es6.js +++ b/testdata/baselines/reference/submodule/conformance/decoratorOnClass6.es6.js @@ -12,9 +12,19 @@ export class C { let c = new C(); //// [decoratorOnClass6.es6.js] -@dec -export class C { - static x() { return C.y; } +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var C_1; +let C = C_1 = class C { + static x() { return C_1.y; } static y = 1; -} +}; +C = C_1 = __decorate([ + dec +], C); +export { C }; let c = new C(); diff --git a/testdata/baselines/reference/submodule/conformance/decoratorOnClass6.es6.js.diff b/testdata/baselines/reference/submodule/conformance/decoratorOnClass6.es6.js.diff index de7dc9b1eb..112780128e 100644 --- a/testdata/baselines/reference/submodule/conformance/decoratorOnClass6.es6.js.diff +++ b/testdata/baselines/reference/submodule/conformance/decoratorOnClass6.es6.js.diff @@ -1,27 +1,12 @@ --- old.decoratorOnClass6.es6.js +++ new.decoratorOnClass6.es6.js -@@= skipped -11, +11 lines =@@ - let c = new C(); - - //// [decoratorOnClass6.es6.js] --var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { -- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; -- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); -- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; -- return c > 3 && r && Object.defineProperty(target, key, r), r; --}; --var C_1; --let C = C_1 = class C { -- static x() { return C_1.y; } --}; --C.y = 1; --C = C_1 = __decorate([ -- dec --], C); --export { C }; -+@dec -+export class C { -+ static x() { return C.y; } +@@= skipped -20, +20 lines =@@ + var C_1; + let C = C_1 = class C { + static x() { return C_1.y; } + static y = 1; -+} - let c = new C(); \ No newline at end of file + }; +-C.y = 1; + C = C_1 = __decorate([ + dec + ], C); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/decoratorOnClass7.es6.js b/testdata/baselines/reference/submodule/conformance/decoratorOnClass7.es6.js index a6e9f6be76..878797c6d6 100644 --- a/testdata/baselines/reference/submodule/conformance/decoratorOnClass7.es6.js +++ b/testdata/baselines/reference/submodule/conformance/decoratorOnClass7.es6.js @@ -12,9 +12,19 @@ export default class C { let c = new C(); //// [decoratorOnClass7.es6.js] -@dec -export default class C { - static x() { return C.y; } +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var C_1; +let C = C_1 = class C { + static x() { return C_1.y; } static y = 1; -} +}; +C = C_1 = __decorate([ + dec +], C); +export default C; let c = new C(); diff --git a/testdata/baselines/reference/submodule/conformance/decoratorOnClass7.es6.js.diff b/testdata/baselines/reference/submodule/conformance/decoratorOnClass7.es6.js.diff index 6d82e0b822..e797940a53 100644 --- a/testdata/baselines/reference/submodule/conformance/decoratorOnClass7.es6.js.diff +++ b/testdata/baselines/reference/submodule/conformance/decoratorOnClass7.es6.js.diff @@ -1,27 +1,12 @@ --- old.decoratorOnClass7.es6.js +++ new.decoratorOnClass7.es6.js -@@= skipped -11, +11 lines =@@ - let c = new C(); - - //// [decoratorOnClass7.es6.js] --var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { -- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; -- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); -- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; -- return c > 3 && r && Object.defineProperty(target, key, r), r; --}; --var C_1; --let C = C_1 = class C { -- static x() { return C_1.y; } --}; --C.y = 1; --C = C_1 = __decorate([ -- dec --], C); --export default C; -+@dec -+export default class C { -+ static x() { return C.y; } +@@= skipped -20, +20 lines =@@ + var C_1; + let C = C_1 = class C { + static x() { return C_1.y; } + static y = 1; -+} - let c = new C(); \ No newline at end of file + }; +-C.y = 1; + C = C_1 = __decorate([ + dec + ], C); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/decoratorOnClass8.es6.js b/testdata/baselines/reference/submodule/conformance/decoratorOnClass8.es6.js index 77442f7764..7065acfd0b 100644 --- a/testdata/baselines/reference/submodule/conformance/decoratorOnClass8.es6.js +++ b/testdata/baselines/reference/submodule/conformance/decoratorOnClass8.es6.js @@ -9,7 +9,16 @@ export default class { } //// [decoratorOnClass8.es6.js] -@dec -export default class { +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +let default_1 = class { static y = 1; -} +}; +default_1 = __decorate([ + dec +], default_1); +export default default_1; diff --git a/testdata/baselines/reference/submodule/conformance/decoratorOnClass8.es6.js.diff b/testdata/baselines/reference/submodule/conformance/decoratorOnClass8.es6.js.diff index 43a85b683c..eb15f63d69 100644 --- a/testdata/baselines/reference/submodule/conformance/decoratorOnClass8.es6.js.diff +++ b/testdata/baselines/reference/submodule/conformance/decoratorOnClass8.es6.js.diff @@ -1,15 +1,9 @@ --- old.decoratorOnClass8.es6.js +++ new.decoratorOnClass8.es6.js -@@= skipped -8, +8 lines =@@ - } - - //// [decoratorOnClass8.es6.js] --var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { -- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; -- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); -- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; -- return c > 3 && r && Object.defineProperty(target, key, r), r; --}; +@@= skipped -14, +14 lines =@@ + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; + }; -var __setFunctionName = (this && this.__setFunctionName) || function (f, name, prefix) { - if (typeof name === "symbol") name = name.description ? "[".concat(name.description, "]") : ""; - return Object.defineProperty(f, "name", { configurable: true, value: prefix ? "".concat(prefix, " ", name) : name }); @@ -19,11 +13,9 @@ -}; -__setFunctionName(_a, "default"); -default_1.y = 1; --default_1 = __decorate([ -- dec --], default_1); --export default default_1; -+@dec -+export default class { ++let default_1 = class { + static y = 1; -+} \ No newline at end of file ++}; + default_1 = __decorate([ + dec + ], default_1); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/decoratorOnClass8.js b/testdata/baselines/reference/submodule/conformance/decoratorOnClass8.js index d87058925e..396ce1451f 100644 --- a/testdata/baselines/reference/submodule/conformance/decoratorOnClass8.js +++ b/testdata/baselines/reference/submodule/conformance/decoratorOnClass8.js @@ -8,6 +8,14 @@ class C { } //// [decoratorOnClass8.js] -@dec() -class C { -} +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +let C = class C { +}; +C = __decorate([ + dec() +], C); diff --git a/testdata/baselines/reference/submodule/conformance/decoratorOnClass8.js.diff b/testdata/baselines/reference/submodule/conformance/decoratorOnClass8.js.diff deleted file mode 100644 index a2ed7b28c3..0000000000 --- a/testdata/baselines/reference/submodule/conformance/decoratorOnClass8.js.diff +++ /dev/null @@ -1,20 +0,0 @@ ---- old.decoratorOnClass8.js -+++ new.decoratorOnClass8.js -@@= skipped -7, +7 lines =@@ - } - - //// [decoratorOnClass8.js] --var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { -- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; -- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); -- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; -- return c > 3 && r && Object.defineProperty(target, key, r), r; --}; --let C = class C { --}; --C = __decorate([ -- dec() --], C); -+@dec() -+class C { -+} \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/decoratorOnClass9.js b/testdata/baselines/reference/submodule/conformance/decoratorOnClass9.js index 2718a5bd40..3bb531038c 100644 --- a/testdata/baselines/reference/submodule/conformance/decoratorOnClass9.js +++ b/testdata/baselines/reference/submodule/conformance/decoratorOnClass9.js @@ -16,14 +16,23 @@ class B extends A { } //// [decoratorOnClass9.js] +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var B_1; class A { } // https://github.com/Microsoft/TypeScript/issues/16417 -@dec -class B extends A { +let B = B_1 = class B extends A { static x = 1; - static y = B.x; + static y = B_1.x; m() { - return B.x; + return B_1.x; } -} +}; +B = B_1 = __decorate([ + dec +], B); diff --git a/testdata/baselines/reference/submodule/conformance/decoratorOnClass9.js.diff b/testdata/baselines/reference/submodule/conformance/decoratorOnClass9.js.diff index 7e9aeb9df4..139f81dd4c 100644 --- a/testdata/baselines/reference/submodule/conformance/decoratorOnClass9.js.diff +++ b/testdata/baselines/reference/submodule/conformance/decoratorOnClass9.js.diff @@ -1,32 +1,17 @@ --- old.decoratorOnClass9.js +++ new.decoratorOnClass9.js -@@= skipped -15, +15 lines =@@ - } - - //// [decoratorOnClass9.js] --var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { -- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; -- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); -- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; -- return c > 3 && r && Object.defineProperty(target, key, r), r; --}; --var B_1; - class A { +@@= skipped -26, +26 lines =@@ } // https://github.com/Microsoft/TypeScript/issues/16417 --let B = B_1 = class B extends A { -+@dec -+class B extends A { + let B = B_1 = class B extends A { + static x = 1; -+ static y = B.x; ++ static y = B_1.x; m() { -- return B_1.x; -+ return B.x; + return B_1.x; } --}; + }; -B.x = 1; -B.y = B_1.x; --B = B_1 = __decorate([ -- dec --], B); -+} \ No newline at end of file + B = B_1 = __decorate([ + dec + ], B); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/decoratorOnClassAccessor1.es6.js b/testdata/baselines/reference/submodule/conformance/decoratorOnClassAccessor1.es6.js index 32bcd53b87..f7c55ea786 100644 --- a/testdata/baselines/reference/submodule/conformance/decoratorOnClassAccessor1.es6.js +++ b/testdata/baselines/reference/submodule/conformance/decoratorOnClassAccessor1.es6.js @@ -8,7 +8,15 @@ export default class { } //// [decoratorOnClassAccessor1.es6.js] -export default class { - @dec +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +export default class default_1 { get accessor() { return 1; } } +__decorate([ + dec +], default_1.prototype, "accessor", null); diff --git a/testdata/baselines/reference/submodule/conformance/decoratorOnClassAccessor1.es6.js.diff b/testdata/baselines/reference/submodule/conformance/decoratorOnClassAccessor1.es6.js.diff deleted file mode 100644 index 3ab2bf5143..0000000000 --- a/testdata/baselines/reference/submodule/conformance/decoratorOnClassAccessor1.es6.js.diff +++ /dev/null @@ -1,20 +0,0 @@ ---- old.decoratorOnClassAccessor1.es6.js -+++ new.decoratorOnClassAccessor1.es6.js -@@= skipped -7, +7 lines =@@ - } - - //// [decoratorOnClassAccessor1.es6.js] --var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { -- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; -- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); -- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; -- return c > 3 && r && Object.defineProperty(target, key, r), r; --}; --export default class default_1 { -+export default class { -+ @dec - get accessor() { return 1; } - } --__decorate([ -- dec --], default_1.prototype, "accessor", null); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/decoratorOnClassAccessor1.js b/testdata/baselines/reference/submodule/conformance/decoratorOnClassAccessor1.js index 255aadd027..77eb77eb49 100644 --- a/testdata/baselines/reference/submodule/conformance/decoratorOnClassAccessor1.js +++ b/testdata/baselines/reference/submodule/conformance/decoratorOnClassAccessor1.js @@ -8,7 +8,15 @@ class C { } //// [decoratorOnClassAccessor1.js] +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; class C { - @dec get accessor() { return 1; } } +__decorate([ + dec +], C.prototype, "accessor", null); diff --git a/testdata/baselines/reference/submodule/conformance/decoratorOnClassAccessor1.js.diff b/testdata/baselines/reference/submodule/conformance/decoratorOnClassAccessor1.js.diff deleted file mode 100644 index 9e0d1d9ed5..0000000000 --- a/testdata/baselines/reference/submodule/conformance/decoratorOnClassAccessor1.js.diff +++ /dev/null @@ -1,19 +0,0 @@ ---- old.decoratorOnClassAccessor1.js -+++ new.decoratorOnClassAccessor1.js -@@= skipped -7, +7 lines =@@ - } - - //// [decoratorOnClassAccessor1.js] --var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { -- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; -- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); -- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; -- return c > 3 && r && Object.defineProperty(target, key, r), r; --}; - class C { -+ @dec - get accessor() { return 1; } - } --__decorate([ -- dec --], C.prototype, "accessor", null); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/decoratorOnClassAccessor2.js b/testdata/baselines/reference/submodule/conformance/decoratorOnClassAccessor2.js index 6464353dc8..53bd527664 100644 --- a/testdata/baselines/reference/submodule/conformance/decoratorOnClassAccessor2.js +++ b/testdata/baselines/reference/submodule/conformance/decoratorOnClassAccessor2.js @@ -8,7 +8,15 @@ class C { } //// [decoratorOnClassAccessor2.js] +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; class C { - @dec get accessor() { return 1; } } +__decorate([ + dec +], C.prototype, "accessor", null); diff --git a/testdata/baselines/reference/submodule/conformance/decoratorOnClassAccessor2.js.diff b/testdata/baselines/reference/submodule/conformance/decoratorOnClassAccessor2.js.diff deleted file mode 100644 index 046c57b72e..0000000000 --- a/testdata/baselines/reference/submodule/conformance/decoratorOnClassAccessor2.js.diff +++ /dev/null @@ -1,19 +0,0 @@ ---- old.decoratorOnClassAccessor2.js -+++ new.decoratorOnClassAccessor2.js -@@= skipped -7, +7 lines =@@ - } - - //// [decoratorOnClassAccessor2.js] --var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { -- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; -- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); -- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; -- return c > 3 && r && Object.defineProperty(target, key, r), r; --}; - class C { -+ @dec - get accessor() { return 1; } - } --__decorate([ -- dec --], C.prototype, "accessor", null); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/decoratorOnClassAccessor3.js b/testdata/baselines/reference/submodule/conformance/decoratorOnClassAccessor3.js index 23c913d441..571041a9c7 100644 --- a/testdata/baselines/reference/submodule/conformance/decoratorOnClassAccessor3.js +++ b/testdata/baselines/reference/submodule/conformance/decoratorOnClassAccessor3.js @@ -8,8 +8,16 @@ class C { } //// [decoratorOnClassAccessor3.js] +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; class C { public; - @dec get accessor() { return 1; } } +__decorate([ + dec +], C.prototype, "accessor", null); diff --git a/testdata/baselines/reference/submodule/conformance/decoratorOnClassAccessor3.js.diff b/testdata/baselines/reference/submodule/conformance/decoratorOnClassAccessor3.js.diff index c268412736..5df4547bed 100644 --- a/testdata/baselines/reference/submodule/conformance/decoratorOnClassAccessor3.js.diff +++ b/testdata/baselines/reference/submodule/conformance/decoratorOnClassAccessor3.js.diff @@ -1,20 +1,10 @@ --- old.decoratorOnClassAccessor3.js +++ new.decoratorOnClassAccessor3.js -@@= skipped -7, +7 lines =@@ - } - - //// [decoratorOnClassAccessor3.js] --var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { -- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; -- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); -- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; -- return c > 3 && r && Object.defineProperty(target, key, r), r; --}; +@@= skipped -14, +14 lines =@@ + return c > 3 && r && Object.defineProperty(target, key, r), r; + }; class C { + public; -+ @dec get accessor() { return 1; } } --__decorate([ -- dec --], C.prototype, "accessor", null); \ No newline at end of file + __decorate([ \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/decoratorOnClassAccessor4.js b/testdata/baselines/reference/submodule/conformance/decoratorOnClassAccessor4.js index 423e1d3477..7e6ba343c1 100644 --- a/testdata/baselines/reference/submodule/conformance/decoratorOnClassAccessor4.js +++ b/testdata/baselines/reference/submodule/conformance/decoratorOnClassAccessor4.js @@ -8,7 +8,15 @@ class C { } //// [decoratorOnClassAccessor4.js] +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; class C { - @dec set accessor(value) { } } +__decorate([ + dec +], C.prototype, "accessor", null); diff --git a/testdata/baselines/reference/submodule/conformance/decoratorOnClassAccessor4.js.diff b/testdata/baselines/reference/submodule/conformance/decoratorOnClassAccessor4.js.diff deleted file mode 100644 index 82d844f7df..0000000000 --- a/testdata/baselines/reference/submodule/conformance/decoratorOnClassAccessor4.js.diff +++ /dev/null @@ -1,19 +0,0 @@ ---- old.decoratorOnClassAccessor4.js -+++ new.decoratorOnClassAccessor4.js -@@= skipped -7, +7 lines =@@ - } - - //// [decoratorOnClassAccessor4.js] --var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { -- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; -- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); -- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; -- return c > 3 && r && Object.defineProperty(target, key, r), r; --}; - class C { -+ @dec - set accessor(value) { } - } --__decorate([ -- dec --], C.prototype, "accessor", null); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/decoratorOnClassAccessor5.js b/testdata/baselines/reference/submodule/conformance/decoratorOnClassAccessor5.js index 76fac5402a..4fe1649d5f 100644 --- a/testdata/baselines/reference/submodule/conformance/decoratorOnClassAccessor5.js +++ b/testdata/baselines/reference/submodule/conformance/decoratorOnClassAccessor5.js @@ -8,7 +8,15 @@ class C { } //// [decoratorOnClassAccessor5.js] +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; class C { - @dec set accessor(value) { } } +__decorate([ + dec +], C.prototype, "accessor", null); diff --git a/testdata/baselines/reference/submodule/conformance/decoratorOnClassAccessor5.js.diff b/testdata/baselines/reference/submodule/conformance/decoratorOnClassAccessor5.js.diff deleted file mode 100644 index 7764796191..0000000000 --- a/testdata/baselines/reference/submodule/conformance/decoratorOnClassAccessor5.js.diff +++ /dev/null @@ -1,19 +0,0 @@ ---- old.decoratorOnClassAccessor5.js -+++ new.decoratorOnClassAccessor5.js -@@= skipped -7, +7 lines =@@ - } - - //// [decoratorOnClassAccessor5.js] --var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { -- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; -- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); -- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; -- return c > 3 && r && Object.defineProperty(target, key, r), r; --}; - class C { -+ @dec - set accessor(value) { } - } --__decorate([ -- dec --], C.prototype, "accessor", null); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/decoratorOnClassAccessor6.js b/testdata/baselines/reference/submodule/conformance/decoratorOnClassAccessor6.js index f749956eff..d39035522a 100644 --- a/testdata/baselines/reference/submodule/conformance/decoratorOnClassAccessor6.js +++ b/testdata/baselines/reference/submodule/conformance/decoratorOnClassAccessor6.js @@ -8,8 +8,16 @@ class C { } //// [decoratorOnClassAccessor6.js] +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; class C { public; - @dec set accessor(value) { } } +__decorate([ + dec +], C.prototype, "accessor", null); diff --git a/testdata/baselines/reference/submodule/conformance/decoratorOnClassAccessor6.js.diff b/testdata/baselines/reference/submodule/conformance/decoratorOnClassAccessor6.js.diff index 23fe11fc7c..8fd057a17a 100644 --- a/testdata/baselines/reference/submodule/conformance/decoratorOnClassAccessor6.js.diff +++ b/testdata/baselines/reference/submodule/conformance/decoratorOnClassAccessor6.js.diff @@ -1,20 +1,10 @@ --- old.decoratorOnClassAccessor6.js +++ new.decoratorOnClassAccessor6.js -@@= skipped -7, +7 lines =@@ - } - - //// [decoratorOnClassAccessor6.js] --var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { -- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; -- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); -- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; -- return c > 3 && r && Object.defineProperty(target, key, r), r; --}; +@@= skipped -14, +14 lines =@@ + return c > 3 && r && Object.defineProperty(target, key, r), r; + }; class C { + public; -+ @dec set accessor(value) { } } --__decorate([ -- dec --], C.prototype, "accessor", null); \ No newline at end of file + __decorate([ \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/decoratorOnClassAccessor7.js b/testdata/baselines/reference/submodule/conformance/decoratorOnClassAccessor7.js index ef93f16f7f..079c3c96ee 100644 --- a/testdata/baselines/reference/submodule/conformance/decoratorOnClassAccessor7.js +++ b/testdata/baselines/reference/submodule/conformance/decoratorOnClassAccessor7.js @@ -35,35 +35,51 @@ class F { } //// [decoratorOnClassAccessor7.js] +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; class A { - @dec1 get x() { return 0; } set x(value) { } } +__decorate([ + dec1 +], A.prototype, "x", null); class B { get x() { return 0; } - @dec2 set x(value) { } } +__decorate([ + dec2 +], B.prototype, "x", null); class C { - @dec1 set x(value) { } get x() { return 0; } } +__decorate([ + dec1 +], C.prototype, "x", null); class D { set x(value) { } - @dec2 get x() { return 0; } } +__decorate([ + dec2 +], D.prototype, "x", null); class E { - @dec1 get x() { return 0; } - @dec2 set x(value) { } } +__decorate([ + dec1 +], E.prototype, "x", null); class F { - @dec1 set x(value) { } - @dec2 get x() { return 0; } } +__decorate([ + dec1 +], F.prototype, "x", null); diff --git a/testdata/baselines/reference/submodule/conformance/decoratorOnClassAccessor7.js.diff b/testdata/baselines/reference/submodule/conformance/decoratorOnClassAccessor7.js.diff deleted file mode 100644 index f0cfcf4091..0000000000 --- a/testdata/baselines/reference/submodule/conformance/decoratorOnClassAccessor7.js.diff +++ /dev/null @@ -1,62 +0,0 @@ ---- old.decoratorOnClassAccessor7.js -+++ new.decoratorOnClassAccessor7.js -@@= skipped -34, +34 lines =@@ - } - - //// [decoratorOnClassAccessor7.js] --var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { -- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; -- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); -- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; -- return c > 3 && r && Object.defineProperty(target, key, r), r; --}; - class A { -+ @dec1 - get x() { return 0; } - set x(value) { } - } --__decorate([ -- dec1 --], A.prototype, "x", null); - class B { - get x() { return 0; } -+ @dec2 - set x(value) { } - } --__decorate([ -- dec2 --], B.prototype, "x", null); - class C { -+ @dec1 - set x(value) { } - get x() { return 0; } - } --__decorate([ -- dec1 --], C.prototype, "x", null); - class D { - set x(value) { } -+ @dec2 - get x() { return 0; } - } --__decorate([ -- dec2 --], D.prototype, "x", null); - class E { -+ @dec1 - get x() { return 0; } -+ @dec2 - set x(value) { } - } --__decorate([ -- dec1 --], E.prototype, "x", null); - class F { -+ @dec1 - set x(value) { } -+ @dec2 - get x() { return 0; } - } --__decorate([ -- dec1 --], F.prototype, "x", null); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/decoratorOnClassAccessor8.js b/testdata/baselines/reference/submodule/conformance/decoratorOnClassAccessor8.js index 77e7e19748..6ca4a9e286 100644 --- a/testdata/baselines/reference/submodule/conformance/decoratorOnClassAccessor8.js +++ b/testdata/baselines/reference/submodule/conformance/decoratorOnClassAccessor8.js @@ -32,31 +32,64 @@ class F { } //// [decoratorOnClassAccessor8.js] +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; class A { - @dec get x() { return 0; } set x(value) { } } +__decorate([ + dec, + __metadata("design:type", Number), + __metadata("design:paramtypes", [Number]) +], A.prototype, "x", null); class B { get x() { return 0; } - @dec set x(value) { } } +__decorate([ + dec, + __metadata("design:type", Number), + __metadata("design:paramtypes", [Number]) +], B.prototype, "x", null); class C { - @dec set x(value) { } get x() { return 0; } } +__decorate([ + dec, + __metadata("design:type", Number), + __metadata("design:paramtypes", [Number]) +], C.prototype, "x", null); class D { set x(value) { } - @dec get x() { return 0; } } +__decorate([ + dec, + __metadata("design:type", Number), + __metadata("design:paramtypes", [Number]) +], D.prototype, "x", null); class E { - @dec get x() { return 0; } } +__decorate([ + dec, + __metadata("design:type", Object), + __metadata("design:paramtypes", []) +], E.prototype, "x", null); class F { - @dec set x(value) { } } +__decorate([ + dec, + __metadata("design:type", Number), + __metadata("design:paramtypes", [Number]) +], F.prototype, "x", null); diff --git a/testdata/baselines/reference/submodule/conformance/decoratorOnClassAccessor8.js.diff b/testdata/baselines/reference/submodule/conformance/decoratorOnClassAccessor8.js.diff deleted file mode 100644 index 71968ac8ff..0000000000 --- a/testdata/baselines/reference/submodule/conformance/decoratorOnClassAccessor8.js.diff +++ /dev/null @@ -1,73 +0,0 @@ ---- old.decoratorOnClassAccessor8.js -+++ new.decoratorOnClassAccessor8.js -@@= skipped -31, +31 lines =@@ - } - - //// [decoratorOnClassAccessor8.js] --var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { -- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; -- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); -- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; -- return c > 3 && r && Object.defineProperty(target, key, r), r; --}; --var __metadata = (this && this.__metadata) || function (k, v) { -- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); --}; - class A { -+ @dec - get x() { return 0; } - set x(value) { } - } --__decorate([ -- dec, -- __metadata("design:type", Number), -- __metadata("design:paramtypes", [Number]) --], A.prototype, "x", null); - class B { - get x() { return 0; } -+ @dec - set x(value) { } - } --__decorate([ -- dec, -- __metadata("design:type", Number), -- __metadata("design:paramtypes", [Number]) --], B.prototype, "x", null); - class C { -+ @dec - set x(value) { } - get x() { return 0; } - } --__decorate([ -- dec, -- __metadata("design:type", Number), -- __metadata("design:paramtypes", [Number]) --], C.prototype, "x", null); - class D { - set x(value) { } -+ @dec - get x() { return 0; } - } --__decorate([ -- dec, -- __metadata("design:type", Number), -- __metadata("design:paramtypes", [Number]) --], D.prototype, "x", null); - class E { -+ @dec - get x() { return 0; } - } --__decorate([ -- dec, -- __metadata("design:type", Object), -- __metadata("design:paramtypes", []) --], E.prototype, "x", null); - class F { -+ @dec - set x(value) { } - } --__decorate([ -- dec, -- __metadata("design:type", Number), -- __metadata("design:paramtypes", [Number]) --], F.prototype, "x", null); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/decoratorOnClassConstructor2.js b/testdata/baselines/reference/submodule/conformance/decoratorOnClassConstructor2.js index 1f43ca3692..e147604ad7 100644 --- a/testdata/baselines/reference/submodule/conformance/decoratorOnClassConstructor2.js +++ b/testdata/baselines/reference/submodule/conformance/decoratorOnClassConstructor2.js @@ -24,13 +24,25 @@ exports.base = base; function foo(target, propertyKey, parameterIndex) { } //// [2.js] "use strict"; +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; Object.defineProperty(exports, "__esModule", { value: true }); exports.C = void 0; const _0_ts_1 = require("./0.ts"); const _0_ts_2 = require("./0.ts"); -class C extends _0_ts_1.base { +let C = class C extends _0_ts_1.base { constructor(prop) { super(); } -} +}; exports.C = C; +exports.C = C = __decorate([ + __param(0, _0_ts_2.foo) +], C); diff --git a/testdata/baselines/reference/submodule/conformance/decoratorOnClassConstructor2.js.diff b/testdata/baselines/reference/submodule/conformance/decoratorOnClassConstructor2.js.diff deleted file mode 100644 index 7ef0e732dd..0000000000 --- a/testdata/baselines/reference/submodule/conformance/decoratorOnClassConstructor2.js.diff +++ /dev/null @@ -1,30 +0,0 @@ ---- old.decoratorOnClassConstructor2.js -+++ new.decoratorOnClassConstructor2.js -@@= skipped -23, +23 lines =@@ - function foo(target, propertyKey, parameterIndex) { } - //// [2.js] - "use strict"; --var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { -- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; -- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); -- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; -- return c > 3 && r && Object.defineProperty(target, key, r), r; --}; --var __param = (this && this.__param) || function (paramIndex, decorator) { -- return function (target, key) { decorator(target, key, paramIndex); } --}; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.C = void 0; - const _0_ts_1 = require("./0.ts"); - const _0_ts_2 = require("./0.ts"); --let C = class C extends _0_ts_1.base { -+class C extends _0_ts_1.base { - constructor(prop) { - super(); - } --}; -+} - exports.C = C; --exports.C = C = __decorate([ -- __param(0, _0_ts_2.foo) --], C); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/decoratorOnClassConstructor3.js b/testdata/baselines/reference/submodule/conformance/decoratorOnClassConstructor3.js index 8f3a16eddf..4007ee3f9b 100644 --- a/testdata/baselines/reference/submodule/conformance/decoratorOnClassConstructor3.js +++ b/testdata/baselines/reference/submodule/conformance/decoratorOnClassConstructor3.js @@ -26,14 +26,26 @@ exports.base = base; function foo(target, propertyKey, parameterIndex) { } //// [2.js] "use strict"; +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; Object.defineProperty(exports, "__esModule", { value: true }); exports.C = void 0; const _0_1 = require("./0"); const _0_2 = require("./0"); /* Comment on the Class Declaration */ -class C extends _0_1.base { +let C = class C extends _0_1.base { constructor(prop) { super(); } -} +}; exports.C = C; +exports.C = C = __decorate([ + __param(0, _0_2.foo) +], C); diff --git a/testdata/baselines/reference/submodule/conformance/decoratorOnClassConstructor3.js.diff b/testdata/baselines/reference/submodule/conformance/decoratorOnClassConstructor3.js.diff deleted file mode 100644 index 1c016adbb6..0000000000 --- a/testdata/baselines/reference/submodule/conformance/decoratorOnClassConstructor3.js.diff +++ /dev/null @@ -1,31 +0,0 @@ ---- old.decoratorOnClassConstructor3.js -+++ new.decoratorOnClassConstructor3.js -@@= skipped -25, +25 lines =@@ - function foo(target, propertyKey, parameterIndex) { } - //// [2.js] - "use strict"; --var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { -- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; -- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); -- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; -- return c > 3 && r && Object.defineProperty(target, key, r), r; --}; --var __param = (this && this.__param) || function (paramIndex, decorator) { -- return function (target, key) { decorator(target, key, paramIndex); } --}; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.C = void 0; - const _0_1 = require("./0"); - const _0_2 = require("./0"); - /* Comment on the Class Declaration */ --let C = class C extends _0_1.base { -+class C extends _0_1.base { - constructor(prop) { - super(); - } --}; -+} - exports.C = C; --exports.C = C = __decorate([ -- __param(0, _0_2.foo) --], C); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/decoratorOnClassConstructor4.js b/testdata/baselines/reference/submodule/conformance/decoratorOnClassConstructor4.js index 811c2b2497..a47b9b0cff 100644 --- a/testdata/baselines/reference/submodule/conformance/decoratorOnClassConstructor4.js +++ b/testdata/baselines/reference/submodule/conformance/decoratorOnClassConstructor4.js @@ -17,13 +17,29 @@ class C extends A { } //// [decoratorOnClassConstructor4.js] -@dec -class A { -} -@dec -class B { +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +let A = class A { +}; +A = __decorate([ + dec +], A); +let B = class B { constructor(x) { } -} -@dec -class C extends A { -} +}; +B = __decorate([ + dec, + __metadata("design:paramtypes", [Number]) +], B); +let C = class C extends A { +}; +C = __decorate([ + dec +], C); diff --git a/testdata/baselines/reference/submodule/conformance/decoratorOnClassConstructor4.js.diff b/testdata/baselines/reference/submodule/conformance/decoratorOnClassConstructor4.js.diff deleted file mode 100644 index 0eacc39dfb..0000000000 --- a/testdata/baselines/reference/submodule/conformance/decoratorOnClassConstructor4.js.diff +++ /dev/null @@ -1,41 +0,0 @@ ---- old.decoratorOnClassConstructor4.js -+++ new.decoratorOnClassConstructor4.js -@@= skipped -16, +16 lines =@@ - } - - //// [decoratorOnClassConstructor4.js] --var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { -- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; -- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); -- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; -- return c > 3 && r && Object.defineProperty(target, key, r), r; --}; --var __metadata = (this && this.__metadata) || function (k, v) { -- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); --}; --let A = class A { --}; --A = __decorate([ -- dec --], A); --let B = class B { -+@dec -+class A { -+} -+@dec -+class B { - constructor(x) { } --}; --B = __decorate([ -- dec, -- __metadata("design:paramtypes", [Number]) --], B); --let C = class C extends A { --}; --C = __decorate([ -- dec --], C); -+} -+@dec -+class C extends A { -+} \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/decoratorOnClassConstructorParameter1.js b/testdata/baselines/reference/submodule/conformance/decoratorOnClassConstructorParameter1.js index 647285ed66..8da70f859a 100644 --- a/testdata/baselines/reference/submodule/conformance/decoratorOnClassConstructorParameter1.js +++ b/testdata/baselines/reference/submodule/conformance/decoratorOnClassConstructorParameter1.js @@ -8,6 +8,18 @@ class C { } //// [decoratorOnClassConstructorParameter1.js] -class C { +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +let C = class C { constructor(p) { } -} +}; +C = __decorate([ + __param(0, dec) +], C); diff --git a/testdata/baselines/reference/submodule/conformance/decoratorOnClassConstructorParameter1.js.diff b/testdata/baselines/reference/submodule/conformance/decoratorOnClassConstructorParameter1.js.diff deleted file mode 100644 index afcd3a66b9..0000000000 --- a/testdata/baselines/reference/submodule/conformance/decoratorOnClassConstructorParameter1.js.diff +++ /dev/null @@ -1,23 +0,0 @@ ---- old.decoratorOnClassConstructorParameter1.js -+++ new.decoratorOnClassConstructorParameter1.js -@@= skipped -7, +7 lines =@@ - } - - //// [decoratorOnClassConstructorParameter1.js] --var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { -- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; -- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); -- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; -- return c > 3 && r && Object.defineProperty(target, key, r), r; --}; --var __param = (this && this.__param) || function (paramIndex, decorator) { -- return function (target, key) { decorator(target, key, paramIndex); } --}; --let C = class C { -+class C { - constructor(p) { } --}; --C = __decorate([ -- __param(0, dec) --], C); -+} \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/decoratorOnClassConstructorParameter4.js b/testdata/baselines/reference/submodule/conformance/decoratorOnClassConstructorParameter4.js index 7be06411b6..d91c86a334 100644 --- a/testdata/baselines/reference/submodule/conformance/decoratorOnClassConstructorParameter4.js +++ b/testdata/baselines/reference/submodule/conformance/decoratorOnClassConstructorParameter4.js @@ -8,6 +8,18 @@ class C { } //// [decoratorOnClassConstructorParameter4.js] -class C { +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +let C = class C { constructor(public, p) { } -} +}; +C = __decorate([ + __param(1, dec) +], C); diff --git a/testdata/baselines/reference/submodule/conformance/decoratorOnClassConstructorParameter4.js.diff b/testdata/baselines/reference/submodule/conformance/decoratorOnClassConstructorParameter4.js.diff deleted file mode 100644 index 88a98dece1..0000000000 --- a/testdata/baselines/reference/submodule/conformance/decoratorOnClassConstructorParameter4.js.diff +++ /dev/null @@ -1,23 +0,0 @@ ---- old.decoratorOnClassConstructorParameter4.js -+++ new.decoratorOnClassConstructorParameter4.js -@@= skipped -7, +7 lines =@@ - } - - //// [decoratorOnClassConstructorParameter4.js] --var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { -- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; -- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); -- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; -- return c > 3 && r && Object.defineProperty(target, key, r), r; --}; --var __param = (this && this.__param) || function (paramIndex, decorator) { -- return function (target, key) { decorator(target, key, paramIndex); } --}; --let C = class C { -+class C { - constructor(public, p) { } --}; --C = __decorate([ -- __param(1, dec) --], C); -+} \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/decoratorOnClassConstructorParameter5.js b/testdata/baselines/reference/submodule/conformance/decoratorOnClassConstructorParameter5.js index d5cba37e75..942f7d9f45 100644 --- a/testdata/baselines/reference/submodule/conformance/decoratorOnClassConstructorParameter5.js +++ b/testdata/baselines/reference/submodule/conformance/decoratorOnClassConstructorParameter5.js @@ -13,11 +13,14 @@ class BulkEditPreviewProvider { } //// [decoratorOnClassConstructorParameter5.js] -class BulkEditPreviewProvider { +let BulkEditPreviewProvider = class BulkEditPreviewProvider { _modeService; static Schema = 'vscode-bulkeditpreview'; static emptyPreview = { scheme: BulkEditPreviewProvider.Schema }; constructor(_modeService) { this._modeService = _modeService; } -} +}; +BulkEditPreviewProvider = __decorate([ + __param(0, IFoo) +], BulkEditPreviewProvider); diff --git a/testdata/baselines/reference/submodule/conformance/decoratorOnClassConstructorParameter5.js.diff b/testdata/baselines/reference/submodule/conformance/decoratorOnClassConstructorParameter5.js.diff index 41853b476f..e0ac8c1704 100644 --- a/testdata/baselines/reference/submodule/conformance/decoratorOnClassConstructorParameter5.js.diff +++ b/testdata/baselines/reference/submodule/conformance/decoratorOnClassConstructorParameter5.js.diff @@ -6,17 +6,17 @@ //// [decoratorOnClassConstructorParameter5.js] -var BulkEditPreviewProvider_1; -let BulkEditPreviewProvider = BulkEditPreviewProvider_1 = class BulkEditPreviewProvider { -+class BulkEditPreviewProvider { ++let BulkEditPreviewProvider = class BulkEditPreviewProvider { + _modeService; + static Schema = 'vscode-bulkeditpreview'; + static emptyPreview = { scheme: BulkEditPreviewProvider.Schema }; constructor(_modeService) { this._modeService = _modeService; } --}; + }; -BulkEditPreviewProvider.Schema = 'vscode-bulkeditpreview'; -BulkEditPreviewProvider.emptyPreview = { scheme: BulkEditPreviewProvider_1.Schema }; -BulkEditPreviewProvider = BulkEditPreviewProvider_1 = __decorate([ -- __param(0, IFoo) --], BulkEditPreviewProvider); -+} \ No newline at end of file ++BulkEditPreviewProvider = __decorate([ + __param(0, IFoo) + ], BulkEditPreviewProvider); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/decoratorOnClassMethod1.es6.js b/testdata/baselines/reference/submodule/conformance/decoratorOnClassMethod1.es6.js index c3af2fffc6..9b7ee48edf 100644 --- a/testdata/baselines/reference/submodule/conformance/decoratorOnClassMethod1.es6.js +++ b/testdata/baselines/reference/submodule/conformance/decoratorOnClassMethod1.es6.js @@ -8,7 +8,15 @@ export default class { } //// [decoratorOnClassMethod1.es6.js] -export default class { - @dec +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +export default class default_1 { method() { } } +__decorate([ + dec +], default_1.prototype, "method", null); diff --git a/testdata/baselines/reference/submodule/conformance/decoratorOnClassMethod1.es6.js.diff b/testdata/baselines/reference/submodule/conformance/decoratorOnClassMethod1.es6.js.diff deleted file mode 100644 index 5f10bb5979..0000000000 --- a/testdata/baselines/reference/submodule/conformance/decoratorOnClassMethod1.es6.js.diff +++ /dev/null @@ -1,20 +0,0 @@ ---- old.decoratorOnClassMethod1.es6.js -+++ new.decoratorOnClassMethod1.es6.js -@@= skipped -7, +7 lines =@@ - } - - //// [decoratorOnClassMethod1.es6.js] --var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { -- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; -- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); -- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; -- return c > 3 && r && Object.defineProperty(target, key, r), r; --}; --export default class default_1 { -+export default class { -+ @dec - method() { } - } --__decorate([ -- dec --], default_1.prototype, "method", null); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/decoratorOnClassMethod1.js b/testdata/baselines/reference/submodule/conformance/decoratorOnClassMethod1.js index b8b828e61e..7d095980e4 100644 --- a/testdata/baselines/reference/submodule/conformance/decoratorOnClassMethod1.js +++ b/testdata/baselines/reference/submodule/conformance/decoratorOnClassMethod1.js @@ -8,7 +8,15 @@ class C { } //// [decoratorOnClassMethod1.js] +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; class C { - @dec method() { } } +__decorate([ + dec +], C.prototype, "method", null); diff --git a/testdata/baselines/reference/submodule/conformance/decoratorOnClassMethod1.js.diff b/testdata/baselines/reference/submodule/conformance/decoratorOnClassMethod1.js.diff deleted file mode 100644 index 08ece11d24..0000000000 --- a/testdata/baselines/reference/submodule/conformance/decoratorOnClassMethod1.js.diff +++ /dev/null @@ -1,19 +0,0 @@ ---- old.decoratorOnClassMethod1.js -+++ new.decoratorOnClassMethod1.js -@@= skipped -7, +7 lines =@@ - } - - //// [decoratorOnClassMethod1.js] --var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { -- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; -- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); -- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; -- return c > 3 && r && Object.defineProperty(target, key, r), r; --}; - class C { -+ @dec - method() { } - } --__decorate([ -- dec --], C.prototype, "method", null); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/decoratorOnClassMethod10.js b/testdata/baselines/reference/submodule/conformance/decoratorOnClassMethod10.js index 1946dd7b85..7cbcb02aef 100644 --- a/testdata/baselines/reference/submodule/conformance/decoratorOnClassMethod10.js +++ b/testdata/baselines/reference/submodule/conformance/decoratorOnClassMethod10.js @@ -8,7 +8,15 @@ class C { } //// [decoratorOnClassMethod10.js] +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; class C { - @dec method() { } } +__decorate([ + dec +], C.prototype, "method", null); diff --git a/testdata/baselines/reference/submodule/conformance/decoratorOnClassMethod10.js.diff b/testdata/baselines/reference/submodule/conformance/decoratorOnClassMethod10.js.diff deleted file mode 100644 index 04a8e3112e..0000000000 --- a/testdata/baselines/reference/submodule/conformance/decoratorOnClassMethod10.js.diff +++ /dev/null @@ -1,19 +0,0 @@ ---- old.decoratorOnClassMethod10.js -+++ new.decoratorOnClassMethod10.js -@@= skipped -7, +7 lines =@@ - } - - //// [decoratorOnClassMethod10.js] --var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { -- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; -- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); -- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; -- return c > 3 && r && Object.defineProperty(target, key, r), r; --}; - class C { -+ @dec - method() { } - } --__decorate([ -- dec --], C.prototype, "method", null); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/decoratorOnClassMethod11.js b/testdata/baselines/reference/submodule/conformance/decoratorOnClassMethod11.js index 2467816b46..ebab6e2e94 100644 --- a/testdata/baselines/reference/submodule/conformance/decoratorOnClassMethod11.js +++ b/testdata/baselines/reference/submodule/conformance/decoratorOnClassMethod11.js @@ -11,11 +11,19 @@ module M { } //// [decoratorOnClassMethod11.js] +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; var M; (function (M) { class C { decorator(target, key) { } - @(this.decorator) method() { } } + __decorate([ + (this.decorator) + ], C.prototype, "method", null); })(M || (M = {})); diff --git a/testdata/baselines/reference/submodule/conformance/decoratorOnClassMethod11.js.diff b/testdata/baselines/reference/submodule/conformance/decoratorOnClassMethod11.js.diff deleted file mode 100644 index 7e3ed70f92..0000000000 --- a/testdata/baselines/reference/submodule/conformance/decoratorOnClassMethod11.js.diff +++ /dev/null @@ -1,23 +0,0 @@ ---- old.decoratorOnClassMethod11.js -+++ new.decoratorOnClassMethod11.js -@@= skipped -10, +10 lines =@@ - } - - //// [decoratorOnClassMethod11.js] --var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { -- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; -- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); -- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; -- return c > 3 && r && Object.defineProperty(target, key, r), r; --}; - var M; - (function (M) { - class C { - decorator(target, key) { } -+ @(this.decorator) - method() { } - } -- __decorate([ -- (this.decorator) -- ], C.prototype, "method", null); - })(M || (M = {})); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/decoratorOnClassMethod12.js b/testdata/baselines/reference/submodule/conformance/decoratorOnClassMethod12.js index 907ea545ce..2a85787b4d 100644 --- a/testdata/baselines/reference/submodule/conformance/decoratorOnClassMethod12.js +++ b/testdata/baselines/reference/submodule/conformance/decoratorOnClassMethod12.js @@ -12,13 +12,21 @@ module M { } //// [decoratorOnClassMethod12.js] +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; var M; (function (M) { class S { decorator(target, key) { } } class C extends S { - @(super.decorator) method() { } } + __decorate([ + (super.decorator) + ], C.prototype, "method", null); })(M || (M = {})); diff --git a/testdata/baselines/reference/submodule/conformance/decoratorOnClassMethod12.js.diff b/testdata/baselines/reference/submodule/conformance/decoratorOnClassMethod12.js.diff deleted file mode 100644 index 51aa8f8d94..0000000000 --- a/testdata/baselines/reference/submodule/conformance/decoratorOnClassMethod12.js.diff +++ /dev/null @@ -1,25 +0,0 @@ ---- old.decoratorOnClassMethod12.js -+++ new.decoratorOnClassMethod12.js -@@= skipped -11, +11 lines =@@ - } - - //// [decoratorOnClassMethod12.js] --var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { -- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; -- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); -- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; -- return c > 3 && r && Object.defineProperty(target, key, r), r; --}; - var M; - (function (M) { - class S { - decorator(target, key) { } - } - class C extends S { -+ @(super.decorator) - method() { } - } -- __decorate([ -- (super.decorator) -- ], C.prototype, "method", null); - })(M || (M = {})); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/decoratorOnClassMethod13.js b/testdata/baselines/reference/submodule/conformance/decoratorOnClassMethod13.js index a6a189e92e..41a434374e 100644 --- a/testdata/baselines/reference/submodule/conformance/decoratorOnClassMethod13.js +++ b/testdata/baselines/reference/submodule/conformance/decoratorOnClassMethod13.js @@ -9,9 +9,19 @@ class C { } //// [decoratorOnClassMethod13.js] +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; class C { - @dec ["1"]() { } - @dec ["b"]() { } } +__decorate([ + dec +], C.prototype, "1", null); +__decorate([ + dec +], C.prototype, "b", null); diff --git a/testdata/baselines/reference/submodule/conformance/decoratorOnClassMethod13.js.diff b/testdata/baselines/reference/submodule/conformance/decoratorOnClassMethod13.js.diff deleted file mode 100644 index 0f04508e15..0000000000 --- a/testdata/baselines/reference/submodule/conformance/decoratorOnClassMethod13.js.diff +++ /dev/null @@ -1,24 +0,0 @@ ---- old.decoratorOnClassMethod13.js -+++ new.decoratorOnClassMethod13.js -@@= skipped -8, +8 lines =@@ - } - - //// [decoratorOnClassMethod13.js] --var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { -- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; -- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); -- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; -- return c > 3 && r && Object.defineProperty(target, key, r), r; --}; - class C { -+ @dec - ["1"]() { } -+ @dec - ["b"]() { } - } --__decorate([ -- dec --], C.prototype, "1", null); --__decorate([ -- dec --], C.prototype, "b", null); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/decoratorOnClassMethod14.js b/testdata/baselines/reference/submodule/conformance/decoratorOnClassMethod14.js index f0e3b4c404..6f0a8fa902 100644 --- a/testdata/baselines/reference/submodule/conformance/decoratorOnClassMethod14.js +++ b/testdata/baselines/reference/submodule/conformance/decoratorOnClassMethod14.js @@ -15,12 +15,26 @@ class Foo { //// [decoratorOnClassMethod14.js] +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; class Foo { prop = () => { return 0; }; - @decorator foo() { return 0; } } +__decorate([ + decorator, + __metadata("design:type", Function), + __metadata("design:paramtypes", []), + __metadata("design:returntype", void 0) +], Foo.prototype, "foo", null); diff --git a/testdata/baselines/reference/submodule/conformance/decoratorOnClassMethod14.js.diff b/testdata/baselines/reference/submodule/conformance/decoratorOnClassMethod14.js.diff deleted file mode 100644 index 085e2201c9..0000000000 --- a/testdata/baselines/reference/submodule/conformance/decoratorOnClassMethod14.js.diff +++ /dev/null @@ -1,30 +0,0 @@ ---- old.decoratorOnClassMethod14.js -+++ new.decoratorOnClassMethod14.js -@@= skipped -14, +14 lines =@@ - - - //// [decoratorOnClassMethod14.js] --var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { -- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; -- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); -- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; -- return c > 3 && r && Object.defineProperty(target, key, r), r; --}; --var __metadata = (this && this.__metadata) || function (k, v) { -- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); --}; - class Foo { - prop = () => { - return 0; - }; -+ @decorator - foo() { - return 0; - } - } --__decorate([ -- decorator, -- __metadata("design:type", Function), -- __metadata("design:paramtypes", []), -- __metadata("design:returntype", void 0) --], Foo.prototype, "foo", null); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/decoratorOnClassMethod15.js b/testdata/baselines/reference/submodule/conformance/decoratorOnClassMethod15.js index 4a88f5aa91..4a4df4eb8e 100644 --- a/testdata/baselines/reference/submodule/conformance/decoratorOnClassMethod15.js +++ b/testdata/baselines/reference/submodule/conformance/decoratorOnClassMethod15.js @@ -13,10 +13,24 @@ class Foo { //// [decoratorOnClassMethod15.js] +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; class Foo { prop = 1; - @decorator foo() { return 0; } } +__decorate([ + decorator, + __metadata("design:type", Function), + __metadata("design:paramtypes", []), + __metadata("design:returntype", void 0) +], Foo.prototype, "foo", null); diff --git a/testdata/baselines/reference/submodule/conformance/decoratorOnClassMethod15.js.diff b/testdata/baselines/reference/submodule/conformance/decoratorOnClassMethod15.js.diff deleted file mode 100644 index 0b85923cf5..0000000000 --- a/testdata/baselines/reference/submodule/conformance/decoratorOnClassMethod15.js.diff +++ /dev/null @@ -1,28 +0,0 @@ ---- old.decoratorOnClassMethod15.js -+++ new.decoratorOnClassMethod15.js -@@= skipped -12, +12 lines =@@ - - - //// [decoratorOnClassMethod15.js] --var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { -- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; -- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); -- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; -- return c > 3 && r && Object.defineProperty(target, key, r), r; --}; --var __metadata = (this && this.__metadata) || function (k, v) { -- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); --}; - class Foo { - prop = 1; -+ @decorator - foo() { - return 0; - } - } --__decorate([ -- decorator, -- __metadata("design:type", Function), -- __metadata("design:paramtypes", []), -- __metadata("design:returntype", void 0) --], Foo.prototype, "foo", null); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/decoratorOnClassMethod16.js b/testdata/baselines/reference/submodule/conformance/decoratorOnClassMethod16.js index e8584f4506..18281f9c3c 100644 --- a/testdata/baselines/reference/submodule/conformance/decoratorOnClassMethod16.js +++ b/testdata/baselines/reference/submodule/conformance/decoratorOnClassMethod16.js @@ -13,10 +13,24 @@ class Foo { //// [decoratorOnClassMethod16.js] +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; class Foo { prop; - @decorator foo() { return 0; } } +__decorate([ + decorator, + __metadata("design:type", Function), + __metadata("design:paramtypes", []), + __metadata("design:returntype", void 0) +], Foo.prototype, "foo", null); diff --git a/testdata/baselines/reference/submodule/conformance/decoratorOnClassMethod16.js.diff b/testdata/baselines/reference/submodule/conformance/decoratorOnClassMethod16.js.diff deleted file mode 100644 index ef01122755..0000000000 --- a/testdata/baselines/reference/submodule/conformance/decoratorOnClassMethod16.js.diff +++ /dev/null @@ -1,28 +0,0 @@ ---- old.decoratorOnClassMethod16.js -+++ new.decoratorOnClassMethod16.js -@@= skipped -12, +12 lines =@@ - - - //// [decoratorOnClassMethod16.js] --var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { -- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; -- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); -- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; -- return c > 3 && r && Object.defineProperty(target, key, r), r; --}; --var __metadata = (this && this.__metadata) || function (k, v) { -- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); --}; - class Foo { - prop; -+ @decorator - foo() { - return 0; - } - } --__decorate([ -- decorator, -- __metadata("design:type", Function), -- __metadata("design:paramtypes", []), -- __metadata("design:returntype", void 0) --], Foo.prototype, "foo", null); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/decoratorOnClassMethod17.js b/testdata/baselines/reference/submodule/conformance/decoratorOnClassMethod17.js index 345004e60e..af2ded6420 100644 --- a/testdata/baselines/reference/submodule/conformance/decoratorOnClassMethod17.js +++ b/testdata/baselines/reference/submodule/conformance/decoratorOnClassMethod17.js @@ -12,10 +12,24 @@ class Foo { //// [decoratorOnClassMethod17.js] +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; class Foo { prop; - @decorator foo() { return 0; } } +__decorate([ + decorator, + __metadata("design:type", Function), + __metadata("design:paramtypes", []), + __metadata("design:returntype", void 0) +], Foo.prototype, "foo", null); diff --git a/testdata/baselines/reference/submodule/conformance/decoratorOnClassMethod17.js.diff b/testdata/baselines/reference/submodule/conformance/decoratorOnClassMethod17.js.diff deleted file mode 100644 index 78cc4c1e09..0000000000 --- a/testdata/baselines/reference/submodule/conformance/decoratorOnClassMethod17.js.diff +++ /dev/null @@ -1,28 +0,0 @@ ---- old.decoratorOnClassMethod17.js -+++ new.decoratorOnClassMethod17.js -@@= skipped -11, +11 lines =@@ - - - //// [decoratorOnClassMethod17.js] --var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { -- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; -- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); -- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; -- return c > 3 && r && Object.defineProperty(target, key, r), r; --}; --var __metadata = (this && this.__metadata) || function (k, v) { -- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); --}; - class Foo { - prop; -+ @decorator - foo() { - return 0; - } - } --__decorate([ -- decorator, -- __metadata("design:type", Function), -- __metadata("design:paramtypes", []), -- __metadata("design:returntype", void 0) --], Foo.prototype, "foo", null); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/decoratorOnClassMethod18.js b/testdata/baselines/reference/submodule/conformance/decoratorOnClassMethod18.js index 6175b455a1..8e2f974c9a 100644 --- a/testdata/baselines/reference/submodule/conformance/decoratorOnClassMethod18.js +++ b/testdata/baselines/reference/submodule/conformance/decoratorOnClassMethod18.js @@ -12,8 +12,20 @@ class Foo { //// [decoratorOnClassMethod18.js] +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; class Foo { p1; - @decorator() p2; } +__decorate([ + decorator(), + __metadata("design:type", Object) +], Foo.prototype, "p2", void 0); diff --git a/testdata/baselines/reference/submodule/conformance/decoratorOnClassMethod18.js.diff b/testdata/baselines/reference/submodule/conformance/decoratorOnClassMethod18.js.diff deleted file mode 100644 index 57105258c2..0000000000 --- a/testdata/baselines/reference/submodule/conformance/decoratorOnClassMethod18.js.diff +++ /dev/null @@ -1,24 +0,0 @@ ---- old.decoratorOnClassMethod18.js -+++ new.decoratorOnClassMethod18.js -@@= skipped -11, +11 lines =@@ - - - //// [decoratorOnClassMethod18.js] --var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { -- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; -- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); -- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; -- return c > 3 && r && Object.defineProperty(target, key, r), r; --}; --var __metadata = (this && this.__metadata) || function (k, v) { -- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); --}; - class Foo { - p1; -+ @decorator() - p2; - } --__decorate([ -- decorator(), -- __metadata("design:type", Object) --], Foo.prototype, "p2", void 0); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/decoratorOnClassMethod19(target=es2015).js b/testdata/baselines/reference/submodule/conformance/decoratorOnClassMethod19(target=es2015).js index 72e2fa6631..e74282afbb 100644 --- a/testdata/baselines/reference/submodule/conformance/decoratorOnClassMethod19(target=es2015).js +++ b/testdata/baselines/reference/submodule/conformance/decoratorOnClassMethod19(target=es2015).js @@ -19,12 +19,39 @@ class C2 { //// [decoratorOnClassMethod19.js] +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; class C1 { #x; - @decorator((x) => x.#x) y() { } + static { + __decorate([ + decorator((x) => x.#x), + __metadata("design:type", Function), + __metadata("design:paramtypes", []), + __metadata("design:returntype", void 0) + ], C1.prototype, "y", null); + } } class C2 { #x; y(p) { } + static { + __decorate([ + __param(0, decorator((x) => x.#x)), + __metadata("design:type", Function), + __metadata("design:paramtypes", [Object]), + __metadata("design:returntype", void 0) + ], C2.prototype, "y", null); + } } diff --git a/testdata/baselines/reference/submodule/conformance/decoratorOnClassMethod19(target=es2015).js.diff b/testdata/baselines/reference/submodule/conformance/decoratorOnClassMethod19(target=es2015).js.diff index 98c43eb2f2..92b886ff3f 100644 --- a/testdata/baselines/reference/submodule/conformance/decoratorOnClassMethod19(target=es2015).js.diff +++ b/testdata/baselines/reference/submodule/conformance/decoratorOnClassMethod19(target=es2015).js.diff @@ -1,21 +1,9 @@ --- old.decoratorOnClassMethod19(target=es2015).js +++ new.decoratorOnClassMethod19(target=es2015).js -@@= skipped -18, +18 lines =@@ - - - //// [decoratorOnClassMethod19.js] --var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { -- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; -- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); -- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; -- return c > 3 && r && Object.defineProperty(target, key, r), r; --}; --var __metadata = (this && this.__metadata) || function (k, v) { -- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); --}; --var __param = (this && this.__param) || function (paramIndex, decorator) { -- return function (target, key) { decorator(target, key, paramIndex); } --}; +@@= skipped -30, +30 lines =@@ + var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } + }; -var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) { - if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter"); - if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it"); @@ -27,8 +15,15 @@ - _C1_x.set(this, void 0); - } + #x; -+ @decorator((x) => x.#x) y() { } ++ static { ++ __decorate([ ++ decorator((x) => x.#x), ++ __metadata("design:type", Function), ++ __metadata("design:paramtypes", []), ++ __metadata("design:returntype", void 0) ++ ], C1.prototype, "y", null); ++ } } -_C1_x = new WeakMap(); -(() => { @@ -45,6 +40,14 @@ - } + #x; y(p) { } ++ static { ++ __decorate([ ++ __param(0, decorator((x) => x.#x)), ++ __metadata("design:type", Function), ++ __metadata("design:paramtypes", [Object]), ++ __metadata("design:returntype", void 0) ++ ], C2.prototype, "y", null); ++ } } -_C2_x = new WeakMap(); -(() => { diff --git a/testdata/baselines/reference/submodule/conformance/decoratorOnClassMethod19(target=es2022).js b/testdata/baselines/reference/submodule/conformance/decoratorOnClassMethod19(target=es2022).js index 72e2fa6631..e74282afbb 100644 --- a/testdata/baselines/reference/submodule/conformance/decoratorOnClassMethod19(target=es2022).js +++ b/testdata/baselines/reference/submodule/conformance/decoratorOnClassMethod19(target=es2022).js @@ -19,12 +19,39 @@ class C2 { //// [decoratorOnClassMethod19.js] +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; class C1 { #x; - @decorator((x) => x.#x) y() { } + static { + __decorate([ + decorator((x) => x.#x), + __metadata("design:type", Function), + __metadata("design:paramtypes", []), + __metadata("design:returntype", void 0) + ], C1.prototype, "y", null); + } } class C2 { #x; y(p) { } + static { + __decorate([ + __param(0, decorator((x) => x.#x)), + __metadata("design:type", Function), + __metadata("design:paramtypes", [Object]), + __metadata("design:returntype", void 0) + ], C2.prototype, "y", null); + } } diff --git a/testdata/baselines/reference/submodule/conformance/decoratorOnClassMethod19(target=es2022).js.diff b/testdata/baselines/reference/submodule/conformance/decoratorOnClassMethod19(target=es2022).js.diff deleted file mode 100644 index 69d51466b4..0000000000 --- a/testdata/baselines/reference/submodule/conformance/decoratorOnClassMethod19(target=es2022).js.diff +++ /dev/null @@ -1,43 +0,0 @@ ---- old.decoratorOnClassMethod19(target=es2022).js -+++ new.decoratorOnClassMethod19(target=es2022).js -@@= skipped -18, +18 lines =@@ - - - //// [decoratorOnClassMethod19.js] --var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { -- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; -- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); -- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; -- return c > 3 && r && Object.defineProperty(target, key, r), r; --}; --var __metadata = (this && this.__metadata) || function (k, v) { -- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); --}; --var __param = (this && this.__param) || function (paramIndex, decorator) { -- return function (target, key) { decorator(target, key, paramIndex); } --}; - class C1 { - #x; -+ @decorator((x) => x.#x) - y() { } -- static { -- __decorate([ -- decorator((x) => x.#x), -- __metadata("design:type", Function), -- __metadata("design:paramtypes", []), -- __metadata("design:returntype", void 0) -- ], C1.prototype, "y", null); -- } - } - class C2 { - #x; - y(p) { } -- static { -- __decorate([ -- __param(0, decorator((x) => x.#x)), -- __metadata("design:type", Function), -- __metadata("design:paramtypes", [Object]), -- __metadata("design:returntype", void 0) -- ], C2.prototype, "y", null); -- } - } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/decoratorOnClassMethod19(target=esnext).js b/testdata/baselines/reference/submodule/conformance/decoratorOnClassMethod19(target=esnext).js index 72e2fa6631..e74282afbb 100644 --- a/testdata/baselines/reference/submodule/conformance/decoratorOnClassMethod19(target=esnext).js +++ b/testdata/baselines/reference/submodule/conformance/decoratorOnClassMethod19(target=esnext).js @@ -19,12 +19,39 @@ class C2 { //// [decoratorOnClassMethod19.js] +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; class C1 { #x; - @decorator((x) => x.#x) y() { } + static { + __decorate([ + decorator((x) => x.#x), + __metadata("design:type", Function), + __metadata("design:paramtypes", []), + __metadata("design:returntype", void 0) + ], C1.prototype, "y", null); + } } class C2 { #x; y(p) { } + static { + __decorate([ + __param(0, decorator((x) => x.#x)), + __metadata("design:type", Function), + __metadata("design:paramtypes", [Object]), + __metadata("design:returntype", void 0) + ], C2.prototype, "y", null); + } } diff --git a/testdata/baselines/reference/submodule/conformance/decoratorOnClassMethod19(target=esnext).js.diff b/testdata/baselines/reference/submodule/conformance/decoratorOnClassMethod19(target=esnext).js.diff deleted file mode 100644 index 72bfdf9bc1..0000000000 --- a/testdata/baselines/reference/submodule/conformance/decoratorOnClassMethod19(target=esnext).js.diff +++ /dev/null @@ -1,43 +0,0 @@ ---- old.decoratorOnClassMethod19(target=esnext).js -+++ new.decoratorOnClassMethod19(target=esnext).js -@@= skipped -18, +18 lines =@@ - - - //// [decoratorOnClassMethod19.js] --var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { -- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; -- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); -- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; -- return c > 3 && r && Object.defineProperty(target, key, r), r; --}; --var __metadata = (this && this.__metadata) || function (k, v) { -- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); --}; --var __param = (this && this.__param) || function (paramIndex, decorator) { -- return function (target, key) { decorator(target, key, paramIndex); } --}; - class C1 { - #x; -+ @decorator((x) => x.#x) - y() { } -- static { -- __decorate([ -- decorator((x) => x.#x), -- __metadata("design:type", Function), -- __metadata("design:paramtypes", []), -- __metadata("design:returntype", void 0) -- ], C1.prototype, "y", null); -- } - } - class C2 { - #x; - y(p) { } -- static { -- __decorate([ -- __param(0, decorator((x) => x.#x)), -- __metadata("design:type", Function), -- __metadata("design:paramtypes", [Object]), -- __metadata("design:returntype", void 0) -- ], C2.prototype, "y", null); -- } - } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/decoratorOnClassMethod2.js b/testdata/baselines/reference/submodule/conformance/decoratorOnClassMethod2.js index d3c796348f..b5e8f8eb93 100644 --- a/testdata/baselines/reference/submodule/conformance/decoratorOnClassMethod2.js +++ b/testdata/baselines/reference/submodule/conformance/decoratorOnClassMethod2.js @@ -8,7 +8,15 @@ class C { } //// [decoratorOnClassMethod2.js] +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; class C { - @dec method() { } } +__decorate([ + dec +], C.prototype, "method", null); diff --git a/testdata/baselines/reference/submodule/conformance/decoratorOnClassMethod2.js.diff b/testdata/baselines/reference/submodule/conformance/decoratorOnClassMethod2.js.diff deleted file mode 100644 index 31cc2d9a47..0000000000 --- a/testdata/baselines/reference/submodule/conformance/decoratorOnClassMethod2.js.diff +++ /dev/null @@ -1,19 +0,0 @@ ---- old.decoratorOnClassMethod2.js -+++ new.decoratorOnClassMethod2.js -@@= skipped -7, +7 lines =@@ - } - - //// [decoratorOnClassMethod2.js] --var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { -- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; -- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); -- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; -- return c > 3 && r && Object.defineProperty(target, key, r), r; --}; - class C { -+ @dec - method() { } - } --__decorate([ -- dec --], C.prototype, "method", null); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/decoratorOnClassMethod3.js b/testdata/baselines/reference/submodule/conformance/decoratorOnClassMethod3.js index 1e1f60c609..7fa0b7de30 100644 --- a/testdata/baselines/reference/submodule/conformance/decoratorOnClassMethod3.js +++ b/testdata/baselines/reference/submodule/conformance/decoratorOnClassMethod3.js @@ -8,8 +8,16 @@ class C { } //// [decoratorOnClassMethod3.js] +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; class C { public; - @dec method() { } } +__decorate([ + dec +], C.prototype, "method", null); diff --git a/testdata/baselines/reference/submodule/conformance/decoratorOnClassMethod3.js.diff b/testdata/baselines/reference/submodule/conformance/decoratorOnClassMethod3.js.diff index b15836bff3..7546a1f087 100644 --- a/testdata/baselines/reference/submodule/conformance/decoratorOnClassMethod3.js.diff +++ b/testdata/baselines/reference/submodule/conformance/decoratorOnClassMethod3.js.diff @@ -1,20 +1,10 @@ --- old.decoratorOnClassMethod3.js +++ new.decoratorOnClassMethod3.js -@@= skipped -7, +7 lines =@@ - } - - //// [decoratorOnClassMethod3.js] --var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { -- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; -- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); -- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; -- return c > 3 && r && Object.defineProperty(target, key, r), r; --}; +@@= skipped -14, +14 lines =@@ + return c > 3 && r && Object.defineProperty(target, key, r), r; + }; class C { + public; -+ @dec method() { } } --__decorate([ -- dec --], C.prototype, "method", null); \ No newline at end of file + __decorate([ \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/decoratorOnClassMethod4.js b/testdata/baselines/reference/submodule/conformance/decoratorOnClassMethod4.js index 23d546f759..94c2cb480f 100644 --- a/testdata/baselines/reference/submodule/conformance/decoratorOnClassMethod4.js +++ b/testdata/baselines/reference/submodule/conformance/decoratorOnClassMethod4.js @@ -8,7 +8,15 @@ class C { } //// [decoratorOnClassMethod4.js] +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; class C { - @dec ["method"]() { } } +__decorate([ + dec +], C.prototype, "method", null); diff --git a/testdata/baselines/reference/submodule/conformance/decoratorOnClassMethod4.js.diff b/testdata/baselines/reference/submodule/conformance/decoratorOnClassMethod4.js.diff deleted file mode 100644 index 57d5282a49..0000000000 --- a/testdata/baselines/reference/submodule/conformance/decoratorOnClassMethod4.js.diff +++ /dev/null @@ -1,19 +0,0 @@ ---- old.decoratorOnClassMethod4.js -+++ new.decoratorOnClassMethod4.js -@@= skipped -7, +7 lines =@@ - } - - //// [decoratorOnClassMethod4.js] --var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { -- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; -- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); -- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; -- return c > 3 && r && Object.defineProperty(target, key, r), r; --}; - class C { -+ @dec - ["method"]() { } - } --__decorate([ -- dec --], C.prototype, "method", null); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/decoratorOnClassMethod5.js b/testdata/baselines/reference/submodule/conformance/decoratorOnClassMethod5.js index 94e2ced5d2..3955103488 100644 --- a/testdata/baselines/reference/submodule/conformance/decoratorOnClassMethod5.js +++ b/testdata/baselines/reference/submodule/conformance/decoratorOnClassMethod5.js @@ -8,7 +8,15 @@ class C { } //// [decoratorOnClassMethod5.js] +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; class C { - @dec() ["method"]() { } } +__decorate([ + dec() +], C.prototype, "method", null); diff --git a/testdata/baselines/reference/submodule/conformance/decoratorOnClassMethod5.js.diff b/testdata/baselines/reference/submodule/conformance/decoratorOnClassMethod5.js.diff deleted file mode 100644 index 1d004748fd..0000000000 --- a/testdata/baselines/reference/submodule/conformance/decoratorOnClassMethod5.js.diff +++ /dev/null @@ -1,19 +0,0 @@ ---- old.decoratorOnClassMethod5.js -+++ new.decoratorOnClassMethod5.js -@@= skipped -7, +7 lines =@@ - } - - //// [decoratorOnClassMethod5.js] --var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { -- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; -- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); -- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; -- return c > 3 && r && Object.defineProperty(target, key, r), r; --}; - class C { -+ @dec() - ["method"]() { } - } --__decorate([ -- dec() --], C.prototype, "method", null); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/decoratorOnClassMethod6.js b/testdata/baselines/reference/submodule/conformance/decoratorOnClassMethod6.js index beebd20403..9d2c4948f9 100644 --- a/testdata/baselines/reference/submodule/conformance/decoratorOnClassMethod6.js +++ b/testdata/baselines/reference/submodule/conformance/decoratorOnClassMethod6.js @@ -8,7 +8,15 @@ class C { } //// [decoratorOnClassMethod6.js] +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; class C { - @dec ["method"]() { } } +__decorate([ + dec +], C.prototype, "method", null); diff --git a/testdata/baselines/reference/submodule/conformance/decoratorOnClassMethod6.js.diff b/testdata/baselines/reference/submodule/conformance/decoratorOnClassMethod6.js.diff deleted file mode 100644 index 811a3a5cc9..0000000000 --- a/testdata/baselines/reference/submodule/conformance/decoratorOnClassMethod6.js.diff +++ /dev/null @@ -1,19 +0,0 @@ ---- old.decoratorOnClassMethod6.js -+++ new.decoratorOnClassMethod6.js -@@= skipped -7, +7 lines =@@ - } - - //// [decoratorOnClassMethod6.js] --var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { -- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; -- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); -- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; -- return c > 3 && r && Object.defineProperty(target, key, r), r; --}; - class C { -+ @dec - ["method"]() { } - } --__decorate([ -- dec --], C.prototype, "method", null); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/decoratorOnClassMethod7.js b/testdata/baselines/reference/submodule/conformance/decoratorOnClassMethod7.js index 8ea48b37a0..0431ec3350 100644 --- a/testdata/baselines/reference/submodule/conformance/decoratorOnClassMethod7.js +++ b/testdata/baselines/reference/submodule/conformance/decoratorOnClassMethod7.js @@ -8,7 +8,15 @@ class C { } //// [decoratorOnClassMethod7.js] +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; class C { - @dec ["method"]() { } } +__decorate([ + dec +], C.prototype, "method", null); diff --git a/testdata/baselines/reference/submodule/conformance/decoratorOnClassMethod7.js.diff b/testdata/baselines/reference/submodule/conformance/decoratorOnClassMethod7.js.diff deleted file mode 100644 index 2c3f95e62a..0000000000 --- a/testdata/baselines/reference/submodule/conformance/decoratorOnClassMethod7.js.diff +++ /dev/null @@ -1,19 +0,0 @@ ---- old.decoratorOnClassMethod7.js -+++ new.decoratorOnClassMethod7.js -@@= skipped -7, +7 lines =@@ - } - - //// [decoratorOnClassMethod7.js] --var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { -- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; -- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); -- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; -- return c > 3 && r && Object.defineProperty(target, key, r), r; --}; - class C { -+ @dec - ["method"]() { } - } --__decorate([ -- dec --], C.prototype, "method", null); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/decoratorOnClassMethod8.js b/testdata/baselines/reference/submodule/conformance/decoratorOnClassMethod8.js index 3b674366e4..ee0877f075 100644 --- a/testdata/baselines/reference/submodule/conformance/decoratorOnClassMethod8.js +++ b/testdata/baselines/reference/submodule/conformance/decoratorOnClassMethod8.js @@ -8,7 +8,15 @@ class C { } //// [decoratorOnClassMethod8.js] +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; class C { - @dec method() { } } +__decorate([ + dec +], C.prototype, "method", null); diff --git a/testdata/baselines/reference/submodule/conformance/decoratorOnClassMethod8.js.diff b/testdata/baselines/reference/submodule/conformance/decoratorOnClassMethod8.js.diff deleted file mode 100644 index 88f81bd6fc..0000000000 --- a/testdata/baselines/reference/submodule/conformance/decoratorOnClassMethod8.js.diff +++ /dev/null @@ -1,19 +0,0 @@ ---- old.decoratorOnClassMethod8.js -+++ new.decoratorOnClassMethod8.js -@@= skipped -7, +7 lines =@@ - } - - //// [decoratorOnClassMethod8.js] --var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { -- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; -- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); -- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; -- return c > 3 && r && Object.defineProperty(target, key, r), r; --}; - class C { -+ @dec - method() { } - } --__decorate([ -- dec --], C.prototype, "method", null); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/decoratorOnClassMethodOverload2.js b/testdata/baselines/reference/submodule/conformance/decoratorOnClassMethodOverload2.js index 0cab4ea7b2..325875d3e9 100644 --- a/testdata/baselines/reference/submodule/conformance/decoratorOnClassMethodOverload2.js +++ b/testdata/baselines/reference/submodule/conformance/decoratorOnClassMethodOverload2.js @@ -10,7 +10,15 @@ class C { } //// [decoratorOnClassMethodOverload2.js] +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; class C { - @dec method() { } } +__decorate([ + dec +], C.prototype, "method", null); diff --git a/testdata/baselines/reference/submodule/conformance/decoratorOnClassMethodOverload2.js.diff b/testdata/baselines/reference/submodule/conformance/decoratorOnClassMethodOverload2.js.diff deleted file mode 100644 index 5ba85df626..0000000000 --- a/testdata/baselines/reference/submodule/conformance/decoratorOnClassMethodOverload2.js.diff +++ /dev/null @@ -1,19 +0,0 @@ ---- old.decoratorOnClassMethodOverload2.js -+++ new.decoratorOnClassMethodOverload2.js -@@= skipped -9, +9 lines =@@ - } - - //// [decoratorOnClassMethodOverload2.js] --var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { -- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; -- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); -- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; -- return c > 3 && r && Object.defineProperty(target, key, r), r; --}; - class C { -+ @dec - method() { } - } --__decorate([ -- dec --], C.prototype, "method", null); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/decoratorOnClassMethodParameter1.es6.js b/testdata/baselines/reference/submodule/conformance/decoratorOnClassMethodParameter1.es6.js index fe2c9263bb..4db2a8114d 100644 --- a/testdata/baselines/reference/submodule/conformance/decoratorOnClassMethodParameter1.es6.js +++ b/testdata/baselines/reference/submodule/conformance/decoratorOnClassMethodParameter1.es6.js @@ -8,6 +8,18 @@ export default class { } //// [decoratorOnClassMethodParameter1.es6.js] -export default class { +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +export default class default_1 { method(p) { } } +__decorate([ + __param(0, dec) +], default_1.prototype, "method", null); diff --git a/testdata/baselines/reference/submodule/conformance/decoratorOnClassMethodParameter1.es6.js.diff b/testdata/baselines/reference/submodule/conformance/decoratorOnClassMethodParameter1.es6.js.diff deleted file mode 100644 index 95ac91182a..0000000000 --- a/testdata/baselines/reference/submodule/conformance/decoratorOnClassMethodParameter1.es6.js.diff +++ /dev/null @@ -1,22 +0,0 @@ ---- old.decoratorOnClassMethodParameter1.es6.js -+++ new.decoratorOnClassMethodParameter1.es6.js -@@= skipped -7, +7 lines =@@ - } - - //// [decoratorOnClassMethodParameter1.es6.js] --var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { -- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; -- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); -- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; -- return c > 3 && r && Object.defineProperty(target, key, r), r; --}; --var __param = (this && this.__param) || function (paramIndex, decorator) { -- return function (target, key) { decorator(target, key, paramIndex); } --}; --export default class default_1 { -+export default class { - method(p) { } - } --__decorate([ -- __param(0, dec) --], default_1.prototype, "method", null); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/decoratorOnClassMethodParameter1.js b/testdata/baselines/reference/submodule/conformance/decoratorOnClassMethodParameter1.js index 2878fc6f2f..67af2e93a3 100644 --- a/testdata/baselines/reference/submodule/conformance/decoratorOnClassMethodParameter1.js +++ b/testdata/baselines/reference/submodule/conformance/decoratorOnClassMethodParameter1.js @@ -8,6 +8,18 @@ class C { } //// [decoratorOnClassMethodParameter1.js] +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; class C { method(p) { } } +__decorate([ + __param(0, dec) +], C.prototype, "method", null); diff --git a/testdata/baselines/reference/submodule/conformance/decoratorOnClassMethodParameter1.js.diff b/testdata/baselines/reference/submodule/conformance/decoratorOnClassMethodParameter1.js.diff deleted file mode 100644 index 4e2f3f7d6d..0000000000 --- a/testdata/baselines/reference/submodule/conformance/decoratorOnClassMethodParameter1.js.diff +++ /dev/null @@ -1,21 +0,0 @@ ---- old.decoratorOnClassMethodParameter1.js -+++ new.decoratorOnClassMethodParameter1.js -@@= skipped -7, +7 lines =@@ - } - - //// [decoratorOnClassMethodParameter1.js] --var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { -- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; -- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); -- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; -- return c > 3 && r && Object.defineProperty(target, key, r), r; --}; --var __param = (this && this.__param) || function (paramIndex, decorator) { -- return function (target, key) { decorator(target, key, paramIndex); } --}; - class C { - method(p) { } - } --__decorate([ -- __param(0, dec) --], C.prototype, "method", null); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/decoratorOnClassMethodParameter2.js b/testdata/baselines/reference/submodule/conformance/decoratorOnClassMethodParameter2.js index ff1e4329ed..dd6ed290ef 100644 --- a/testdata/baselines/reference/submodule/conformance/decoratorOnClassMethodParameter2.js +++ b/testdata/baselines/reference/submodule/conformance/decoratorOnClassMethodParameter2.js @@ -8,6 +8,18 @@ class C { } //// [decoratorOnClassMethodParameter2.js] +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; class C { method(p) { } } +__decorate([ + __param(0, dec) +], C.prototype, "method", null); diff --git a/testdata/baselines/reference/submodule/conformance/decoratorOnClassMethodParameter2.js.diff b/testdata/baselines/reference/submodule/conformance/decoratorOnClassMethodParameter2.js.diff deleted file mode 100644 index 4c211acff0..0000000000 --- a/testdata/baselines/reference/submodule/conformance/decoratorOnClassMethodParameter2.js.diff +++ /dev/null @@ -1,21 +0,0 @@ ---- old.decoratorOnClassMethodParameter2.js -+++ new.decoratorOnClassMethodParameter2.js -@@= skipped -7, +7 lines =@@ - } - - //// [decoratorOnClassMethodParameter2.js] --var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { -- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; -- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); -- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; -- return c > 3 && r && Object.defineProperty(target, key, r), r; --}; --var __param = (this && this.__param) || function (paramIndex, decorator) { -- return function (target, key) { decorator(target, key, paramIndex); } --}; - class C { - method(p) { } - } --__decorate([ -- __param(0, dec) --], C.prototype, "method", null); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/decoratorOnClassMethodParameter3.js b/testdata/baselines/reference/submodule/conformance/decoratorOnClassMethodParameter3.js index 99dfbc27a0..e6a9ff885c 100644 --- a/testdata/baselines/reference/submodule/conformance/decoratorOnClassMethodParameter3.js +++ b/testdata/baselines/reference/submodule/conformance/decoratorOnClassMethodParameter3.js @@ -12,9 +12,21 @@ function fn(value: Promise): any { //// [decoratorOnClassMethodParameter3.js] +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; function fn(value) { class Class { async method(arg) { } } + __decorate([ + __param(0, dec(await value)) + ], Class.prototype, "method", null); return Class; } diff --git a/testdata/baselines/reference/submodule/conformance/decoratorOnClassMethodParameter3.js.diff b/testdata/baselines/reference/submodule/conformance/decoratorOnClassMethodParameter3.js.diff index 51ed3a233b..ce4626ec41 100644 --- a/testdata/baselines/reference/submodule/conformance/decoratorOnClassMethodParameter3.js.diff +++ b/testdata/baselines/reference/submodule/conformance/decoratorOnClassMethodParameter3.js.diff @@ -1,18 +1,9 @@ --- old.decoratorOnClassMethodParameter3.js +++ new.decoratorOnClassMethodParameter3.js -@@= skipped -11, +11 lines =@@ - - - //// [decoratorOnClassMethodParameter3.js] --var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { -- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; -- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); -- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; -- return c > 3 && r && Object.defineProperty(target, key, r), r; --}; --var __param = (this && this.__param) || function (paramIndex, decorator) { -- return function (target, key) { decorator(target, key, paramIndex); } --}; +@@= skipped -20, +20 lines =@@ + var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } + }; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { @@ -29,8 +20,9 @@ - } + async method(arg) { } } -- __decorate([ + __decorate([ - __param(0, dec(yield value)) -- ], Class.prototype, "method", null); ++ __param(0, dec(await value)) + ], Class.prototype, "method", null); return Class; } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/decoratorOnClassMethodThisParameter.js b/testdata/baselines/reference/submodule/conformance/decoratorOnClassMethodThisParameter.js index e63d8d6eb4..3101bf64f4 100644 --- a/testdata/baselines/reference/submodule/conformance/decoratorOnClassMethodThisParameter.js +++ b/testdata/baselines/reference/submodule/conformance/decoratorOnClassMethodThisParameter.js @@ -12,9 +12,21 @@ class C2 { } //// [decoratorOnClassMethodThisParameter.js] +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; class C { method() { } } class C2 { method(allowed) { } } +__decorate([ + __param(0, dec) +], C2.prototype, "method", null); diff --git a/testdata/baselines/reference/submodule/conformance/decoratorOnClassMethodThisParameter.js.diff b/testdata/baselines/reference/submodule/conformance/decoratorOnClassMethodThisParameter.js.diff deleted file mode 100644 index f4ed3ff3b5..0000000000 --- a/testdata/baselines/reference/submodule/conformance/decoratorOnClassMethodThisParameter.js.diff +++ /dev/null @@ -1,24 +0,0 @@ ---- old.decoratorOnClassMethodThisParameter.js -+++ new.decoratorOnClassMethodThisParameter.js -@@= skipped -11, +11 lines =@@ - } - - //// [decoratorOnClassMethodThisParameter.js] --var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { -- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; -- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); -- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; -- return c > 3 && r && Object.defineProperty(target, key, r), r; --}; --var __param = (this && this.__param) || function (paramIndex, decorator) { -- return function (target, key) { decorator(target, key, paramIndex); } --}; - class C { - method() { } - } - class C2 { - method(allowed) { } - } --__decorate([ -- __param(0, dec) --], C2.prototype, "method", null); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/decoratorOnClassProperty1.es6.js b/testdata/baselines/reference/submodule/conformance/decoratorOnClassProperty1.es6.js index 2cc994f5bb..655d3b3852 100644 --- a/testdata/baselines/reference/submodule/conformance/decoratorOnClassProperty1.es6.js +++ b/testdata/baselines/reference/submodule/conformance/decoratorOnClassProperty1.es6.js @@ -8,7 +8,15 @@ export default class { } //// [decoratorOnClassProperty1.es6.js] -export default class { - @dec +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +export default class default_1 { prop; } +__decorate([ + dec +], default_1.prototype, "prop", void 0); diff --git a/testdata/baselines/reference/submodule/conformance/decoratorOnClassProperty1.es6.js.diff b/testdata/baselines/reference/submodule/conformance/decoratorOnClassProperty1.es6.js.diff index 563f45e9aa..be3781ad36 100644 --- a/testdata/baselines/reference/submodule/conformance/decoratorOnClassProperty1.es6.js.diff +++ b/testdata/baselines/reference/submodule/conformance/decoratorOnClassProperty1.es6.js.diff @@ -1,20 +1,10 @@ --- old.decoratorOnClassProperty1.es6.js +++ new.decoratorOnClassProperty1.es6.js -@@= skipped -7, +7 lines =@@ - } - - //// [decoratorOnClassProperty1.es6.js] --var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { -- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; -- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); -- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; -- return c > 3 && r && Object.defineProperty(target, key, r), r; --}; --export default class default_1 { -+export default class { -+ @dec +@@= skipped -14, +14 lines =@@ + return c > 3 && r && Object.defineProperty(target, key, r), r; + }; + export default class default_1 { + prop; } --__decorate([ -- dec --], default_1.prototype, "prop", void 0); \ No newline at end of file + __decorate([ + dec \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/decoratorOnClassProperty1.js b/testdata/baselines/reference/submodule/conformance/decoratorOnClassProperty1.js index b581bfde1c..1999a73ff0 100644 --- a/testdata/baselines/reference/submodule/conformance/decoratorOnClassProperty1.js +++ b/testdata/baselines/reference/submodule/conformance/decoratorOnClassProperty1.js @@ -8,7 +8,15 @@ class C { } //// [decoratorOnClassProperty1.js] +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; class C { - @dec prop; } +__decorate([ + dec +], C.prototype, "prop", void 0); diff --git a/testdata/baselines/reference/submodule/conformance/decoratorOnClassProperty1.js.diff b/testdata/baselines/reference/submodule/conformance/decoratorOnClassProperty1.js.diff index 488ed54f91..2faf79e4d1 100644 --- a/testdata/baselines/reference/submodule/conformance/decoratorOnClassProperty1.js.diff +++ b/testdata/baselines/reference/submodule/conformance/decoratorOnClassProperty1.js.diff @@ -1,19 +1,10 @@ --- old.decoratorOnClassProperty1.js +++ new.decoratorOnClassProperty1.js -@@= skipped -7, +7 lines =@@ - } - - //// [decoratorOnClassProperty1.js] --var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { -- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; -- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); -- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; -- return c > 3 && r && Object.defineProperty(target, key, r), r; --}; +@@= skipped -14, +14 lines =@@ + return c > 3 && r && Object.defineProperty(target, key, r), r; + }; class C { -+ @dec + prop; } --__decorate([ -- dec --], C.prototype, "prop", void 0); \ No newline at end of file + __decorate([ + dec \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/decoratorOnClassProperty10.js b/testdata/baselines/reference/submodule/conformance/decoratorOnClassProperty10.js index 2b7dcb24d9..be03cce48d 100644 --- a/testdata/baselines/reference/submodule/conformance/decoratorOnClassProperty10.js +++ b/testdata/baselines/reference/submodule/conformance/decoratorOnClassProperty10.js @@ -8,7 +8,15 @@ class C { } //// [decoratorOnClassProperty10.js] +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; class C { - @dec() prop; } +__decorate([ + dec() +], C.prototype, "prop", void 0); diff --git a/testdata/baselines/reference/submodule/conformance/decoratorOnClassProperty10.js.diff b/testdata/baselines/reference/submodule/conformance/decoratorOnClassProperty10.js.diff index 5acca3027e..7e892ad951 100644 --- a/testdata/baselines/reference/submodule/conformance/decoratorOnClassProperty10.js.diff +++ b/testdata/baselines/reference/submodule/conformance/decoratorOnClassProperty10.js.diff @@ -1,19 +1,10 @@ --- old.decoratorOnClassProperty10.js +++ new.decoratorOnClassProperty10.js -@@= skipped -7, +7 lines =@@ - } - - //// [decoratorOnClassProperty10.js] --var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { -- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; -- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); -- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; -- return c > 3 && r && Object.defineProperty(target, key, r), r; --}; +@@= skipped -14, +14 lines =@@ + return c > 3 && r && Object.defineProperty(target, key, r), r; + }; class C { -+ @dec() + prop; } --__decorate([ -- dec() --], C.prototype, "prop", void 0); \ No newline at end of file + __decorate([ + dec() \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/decoratorOnClassProperty11.js b/testdata/baselines/reference/submodule/conformance/decoratorOnClassProperty11.js index f8454fc20f..318507239e 100644 --- a/testdata/baselines/reference/submodule/conformance/decoratorOnClassProperty11.js +++ b/testdata/baselines/reference/submodule/conformance/decoratorOnClassProperty11.js @@ -8,7 +8,15 @@ class C { } //// [decoratorOnClassProperty11.js] +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; class C { - @dec prop; } +__decorate([ + dec +], C.prototype, "prop", void 0); diff --git a/testdata/baselines/reference/submodule/conformance/decoratorOnClassProperty11.js.diff b/testdata/baselines/reference/submodule/conformance/decoratorOnClassProperty11.js.diff index a4293943b7..8fd6d8757d 100644 --- a/testdata/baselines/reference/submodule/conformance/decoratorOnClassProperty11.js.diff +++ b/testdata/baselines/reference/submodule/conformance/decoratorOnClassProperty11.js.diff @@ -1,19 +1,10 @@ --- old.decoratorOnClassProperty11.js +++ new.decoratorOnClassProperty11.js -@@= skipped -7, +7 lines =@@ - } - - //// [decoratorOnClassProperty11.js] --var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { -- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; -- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); -- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; -- return c > 3 && r && Object.defineProperty(target, key, r), r; --}; +@@= skipped -14, +14 lines =@@ + return c > 3 && r && Object.defineProperty(target, key, r), r; + }; class C { -+ @dec + prop; } --__decorate([ -- dec --], C.prototype, "prop", void 0); \ No newline at end of file + __decorate([ + dec \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/decoratorOnClassProperty12.js b/testdata/baselines/reference/submodule/conformance/decoratorOnClassProperty12.js index 2f4eab4cef..bbbb4a9d35 100644 --- a/testdata/baselines/reference/submodule/conformance/decoratorOnClassProperty12.js +++ b/testdata/baselines/reference/submodule/conformance/decoratorOnClassProperty12.js @@ -10,7 +10,19 @@ class A { //// [decoratorOnClassProperty12.js] +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; class A { - @dec() foo; } +__decorate([ + dec(), + __metadata("design:type", String) +], A.prototype, "foo", void 0); diff --git a/testdata/baselines/reference/submodule/conformance/decoratorOnClassProperty12.js.diff b/testdata/baselines/reference/submodule/conformance/decoratorOnClassProperty12.js.diff index 3997cf7a3b..d255dea858 100644 --- a/testdata/baselines/reference/submodule/conformance/decoratorOnClassProperty12.js.diff +++ b/testdata/baselines/reference/submodule/conformance/decoratorOnClassProperty12.js.diff @@ -1,23 +1,10 @@ --- old.decoratorOnClassProperty12.js +++ new.decoratorOnClassProperty12.js -@@= skipped -9, +9 lines =@@ - - - //// [decoratorOnClassProperty12.js] --var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { -- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; -- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); -- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; -- return c > 3 && r && Object.defineProperty(target, key, r), r; --}; --var __metadata = (this && this.__metadata) || function (k, v) { -- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); --}; +@@= skipped -19, +19 lines =@@ + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); + }; class A { -+ @dec() + foo; } --__decorate([ -- dec(), -- __metadata("design:type", String) --], A.prototype, "foo", void 0); \ No newline at end of file + __decorate([ + dec(), \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/decoratorOnClassProperty13.js b/testdata/baselines/reference/submodule/conformance/decoratorOnClassProperty13.js index 8027ce57b0..9c505ec8b8 100644 --- a/testdata/baselines/reference/submodule/conformance/decoratorOnClassProperty13.js +++ b/testdata/baselines/reference/submodule/conformance/decoratorOnClassProperty13.js @@ -8,7 +8,15 @@ class C { } //// [decoratorOnClassProperty13.js] +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; class C { - @dec accessor prop; } +__decorate([ + dec +], C.prototype, "prop", null); diff --git a/testdata/baselines/reference/submodule/conformance/decoratorOnClassProperty13.js.diff b/testdata/baselines/reference/submodule/conformance/decoratorOnClassProperty13.js.diff index d08616ecb5..e401f11f24 100644 --- a/testdata/baselines/reference/submodule/conformance/decoratorOnClassProperty13.js.diff +++ b/testdata/baselines/reference/submodule/conformance/decoratorOnClassProperty13.js.diff @@ -1,15 +1,9 @@ --- old.decoratorOnClassProperty13.js +++ new.decoratorOnClassProperty13.js -@@= skipped -7, +7 lines =@@ - } - - //// [decoratorOnClassProperty13.js] --var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { -- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; -- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); -- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; -- return c > 3 && r && Object.defineProperty(target, key, r), r; --}; +@@= skipped -13, +13 lines =@@ + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; + }; -var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) { - if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter"); - if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it"); @@ -28,10 +22,9 @@ - } - get prop() { return __classPrivateFieldGet(this, _C_prop_accessor_storage, "f"); } - set prop(value) { __classPrivateFieldSet(this, _C_prop_accessor_storage, value, "f"); } -+ @dec + accessor prop; } -_C_prop_accessor_storage = new WeakMap(); --__decorate([ -- dec --], C.prototype, "prop", null); \ No newline at end of file + __decorate([ + dec + ], C.prototype, "prop", null); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/decoratorOnClassProperty2.js b/testdata/baselines/reference/submodule/conformance/decoratorOnClassProperty2.js index 173c69ca72..60187ccfa3 100644 --- a/testdata/baselines/reference/submodule/conformance/decoratorOnClassProperty2.js +++ b/testdata/baselines/reference/submodule/conformance/decoratorOnClassProperty2.js @@ -8,7 +8,15 @@ class C { } //// [decoratorOnClassProperty2.js] +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; class C { - @dec prop; } +__decorate([ + dec +], C.prototype, "prop", void 0); diff --git a/testdata/baselines/reference/submodule/conformance/decoratorOnClassProperty2.js.diff b/testdata/baselines/reference/submodule/conformance/decoratorOnClassProperty2.js.diff index 85a5313c91..25a5a8c786 100644 --- a/testdata/baselines/reference/submodule/conformance/decoratorOnClassProperty2.js.diff +++ b/testdata/baselines/reference/submodule/conformance/decoratorOnClassProperty2.js.diff @@ -1,19 +1,10 @@ --- old.decoratorOnClassProperty2.js +++ new.decoratorOnClassProperty2.js -@@= skipped -7, +7 lines =@@ - } - - //// [decoratorOnClassProperty2.js] --var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { -- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; -- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); -- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; -- return c > 3 && r && Object.defineProperty(target, key, r), r; --}; +@@= skipped -14, +14 lines =@@ + return c > 3 && r && Object.defineProperty(target, key, r), r; + }; class C { -+ @dec + prop; } --__decorate([ -- dec --], C.prototype, "prop", void 0); \ No newline at end of file + __decorate([ + dec \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/decoratorOnClassProperty3.js b/testdata/baselines/reference/submodule/conformance/decoratorOnClassProperty3.js index f38c703bde..79d0ac8d5f 100644 --- a/testdata/baselines/reference/submodule/conformance/decoratorOnClassProperty3.js +++ b/testdata/baselines/reference/submodule/conformance/decoratorOnClassProperty3.js @@ -8,8 +8,16 @@ class C { } //// [decoratorOnClassProperty3.js] +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; class C { public; - @dec prop; } +__decorate([ + dec +], C.prototype, "prop", void 0); diff --git a/testdata/baselines/reference/submodule/conformance/decoratorOnClassProperty3.js.diff b/testdata/baselines/reference/submodule/conformance/decoratorOnClassProperty3.js.diff index f01ee48335..7691cb8b67 100644 --- a/testdata/baselines/reference/submodule/conformance/decoratorOnClassProperty3.js.diff +++ b/testdata/baselines/reference/submodule/conformance/decoratorOnClassProperty3.js.diff @@ -1,20 +1,11 @@ --- old.decoratorOnClassProperty3.js +++ new.decoratorOnClassProperty3.js -@@= skipped -7, +7 lines =@@ - } - - //// [decoratorOnClassProperty3.js] --var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { -- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; -- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); -- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; -- return c > 3 && r && Object.defineProperty(target, key, r), r; --}; +@@= skipped -14, +14 lines =@@ + return c > 3 && r && Object.defineProperty(target, key, r), r; + }; class C { + public; -+ @dec + prop; } --__decorate([ -- dec --], C.prototype, "prop", void 0); \ No newline at end of file + __decorate([ + dec \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/decoratorOnClassProperty6.js b/testdata/baselines/reference/submodule/conformance/decoratorOnClassProperty6.js index 13965fc56b..a488e2fa99 100644 --- a/testdata/baselines/reference/submodule/conformance/decoratorOnClassProperty6.js +++ b/testdata/baselines/reference/submodule/conformance/decoratorOnClassProperty6.js @@ -8,7 +8,15 @@ class C { } //// [decoratorOnClassProperty6.js] +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; class C { - @dec prop; } +__decorate([ + dec +], C.prototype, "prop", void 0); diff --git a/testdata/baselines/reference/submodule/conformance/decoratorOnClassProperty6.js.diff b/testdata/baselines/reference/submodule/conformance/decoratorOnClassProperty6.js.diff index 02a0067d10..d467fcd47b 100644 --- a/testdata/baselines/reference/submodule/conformance/decoratorOnClassProperty6.js.diff +++ b/testdata/baselines/reference/submodule/conformance/decoratorOnClassProperty6.js.diff @@ -1,19 +1,10 @@ --- old.decoratorOnClassProperty6.js +++ new.decoratorOnClassProperty6.js -@@= skipped -7, +7 lines =@@ - } - - //// [decoratorOnClassProperty6.js] --var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { -- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; -- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); -- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; -- return c > 3 && r && Object.defineProperty(target, key, r), r; --}; +@@= skipped -14, +14 lines =@@ + return c > 3 && r && Object.defineProperty(target, key, r), r; + }; class C { -+ @dec + prop; } --__decorate([ -- dec --], C.prototype, "prop", void 0); \ No newline at end of file + __decorate([ + dec \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/decoratorOnClassProperty7.js b/testdata/baselines/reference/submodule/conformance/decoratorOnClassProperty7.js index eaa0996f28..eb0f3a7077 100644 --- a/testdata/baselines/reference/submodule/conformance/decoratorOnClassProperty7.js +++ b/testdata/baselines/reference/submodule/conformance/decoratorOnClassProperty7.js @@ -8,7 +8,15 @@ class C { } //// [decoratorOnClassProperty7.js] +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; class C { - @dec prop; } +__decorate([ + dec +], C.prototype, "prop", void 0); diff --git a/testdata/baselines/reference/submodule/conformance/decoratorOnClassProperty7.js.diff b/testdata/baselines/reference/submodule/conformance/decoratorOnClassProperty7.js.diff index 3576a2a766..ef3448ea2a 100644 --- a/testdata/baselines/reference/submodule/conformance/decoratorOnClassProperty7.js.diff +++ b/testdata/baselines/reference/submodule/conformance/decoratorOnClassProperty7.js.diff @@ -1,19 +1,10 @@ --- old.decoratorOnClassProperty7.js +++ new.decoratorOnClassProperty7.js -@@= skipped -7, +7 lines =@@ - } - - //// [decoratorOnClassProperty7.js] --var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { -- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; -- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); -- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; -- return c > 3 && r && Object.defineProperty(target, key, r), r; --}; +@@= skipped -14, +14 lines =@@ + return c > 3 && r && Object.defineProperty(target, key, r), r; + }; class C { -+ @dec + prop; } --__decorate([ -- dec --], C.prototype, "prop", void 0); \ No newline at end of file + __decorate([ + dec \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/derivedClassSuperProperties.js b/testdata/baselines/reference/submodule/conformance/derivedClassSuperProperties.js index b5c2fc5638..f291000074 100644 --- a/testdata/baselines/reference/submodule/conformance/derivedClassSuperProperties.js +++ b/testdata/baselines/reference/submodule/conformance/derivedClassSuperProperties.js @@ -404,6 +404,12 @@ const DerivedWithLoops = [ //// [derivedClassSuperProperties.js] +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; class Base { constructor(a) { } receivesAnything(param) { } @@ -481,9 +487,11 @@ class DerivedWithArrowFunctionParameter extends Base { class DerivedWithDecoratorOnClass extends Base { prop = true; constructor() { - @decorate(this) - class InnerClass { - } + let InnerClass = class InnerClass { + }; + InnerClass = __decorate([ + decorate(this) + ], InnerClass); super(); } } @@ -491,9 +499,11 @@ class DerivedWithDecoratorOnClassMethod extends Base { prop = true; constructor() { class InnerClass { - @decorate(this) innerMethod() { } } + __decorate([ + decorate(this) + ], InnerClass.prototype, "innerMethod", null); super(); } } @@ -501,9 +511,11 @@ class DerivedWithDecoratorOnClassProperty extends Base { prop = true; constructor() { class InnerClass { - @decorate(this) innerProp = true; } + __decorate([ + decorate(this) + ], InnerClass.prototype, "innerProp", void 0); super(); } } diff --git a/testdata/baselines/reference/submodule/conformance/derivedClassSuperProperties.js.diff b/testdata/baselines/reference/submodule/conformance/derivedClassSuperProperties.js.diff index d9a651cfe6..0f3ec7cd18 100644 --- a/testdata/baselines/reference/submodule/conformance/derivedClassSuperProperties.js.diff +++ b/testdata/baselines/reference/submodule/conformance/derivedClassSuperProperties.js.diff @@ -1,17 +1,6 @@ --- old.derivedClassSuperProperties.js +++ new.derivedClassSuperProperties.js -@@= skipped -403, +403 lines =@@ - - - //// [derivedClassSuperProperties.js] --var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { -- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; -- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); -- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; -- return c > 3 && r && Object.defineProperty(target, key, r), r; --}; - class Base { - constructor(a) { } +@@= skipped -414, +414 lines =@@ receivesAnything(param) { } } class Derived1 extends Base { @@ -97,14 +86,11 @@ class DerivedWithDecoratorOnClass extends Base { + prop = true; constructor() { -- let InnerClass = class InnerClass { -- }; -- InnerClass = __decorate([ -- decorate(this) -- ], InnerClass); -+ @decorate(this) -+ class InnerClass { -+ } + let InnerClass = class InnerClass { + }; +@@= skipped -77, +78 lines =@@ + decorate(this) + ], InnerClass); super(); - this.prop = true; } @@ -113,12 +99,10 @@ + prop = true; constructor() { class InnerClass { -+ @decorate(this) innerMethod() { } - } -- __decorate([ -- decorate(this) -- ], InnerClass.prototype, "innerMethod", null); +@@= skipped -12, +12 lines =@@ + decorate(this) + ], InnerClass.prototype, "innerMethod", null); super(); - this.prop = true; } @@ -130,12 +114,11 @@ - constructor() { - this.innerProp = true; - } -+ @decorate(this) + innerProp = true; } -- __decorate([ -- decorate(this) -- ], InnerClass.prototype, "innerProp", void 0); + __decorate([ + decorate(this) + ], InnerClass.prototype, "innerProp", void 0); super(); - this.prop = true; } @@ -283,7 +266,7 @@ constructor() { console.log(new class extends Base { constructor() { -@@= skipped -246, +233 lines =@@ +@@= skipped -146, +144 lines =@@ } }()); super(); diff --git a/testdata/baselines/reference/submodule/conformance/es6modulekindWithES5Target.js b/testdata/baselines/reference/submodule/conformance/es6modulekindWithES5Target.js index 588a1f9cb6..4535a654bb 100644 --- a/testdata/baselines/reference/submodule/conformance/es6modulekindWithES5Target.js +++ b/testdata/baselines/reference/submodule/conformance/es6modulekindWithES5Target.js @@ -22,18 +22,27 @@ export {E}; //// [es6modulekindWithES5Target.js] +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; export class C { static s = 0; p = 1; method() { } } export { C as C2 }; -@foo -export class D { +let D = class D { static s = 0; p = 1; method() { } -} +}; +D = __decorate([ + foo +], D); +export { D }; export { D as D2 }; class E { } diff --git a/testdata/baselines/reference/submodule/conformance/es6modulekindWithES5Target.js.diff b/testdata/baselines/reference/submodule/conformance/es6modulekindWithES5Target.js.diff index 8a7afb572d..c4a2a883c7 100644 --- a/testdata/baselines/reference/submodule/conformance/es6modulekindWithES5Target.js.diff +++ b/testdata/baselines/reference/submodule/conformance/es6modulekindWithES5Target.js.diff @@ -1,15 +1,8 @@ --- old.es6modulekindWithES5Target.js +++ new.es6modulekindWithES5Target.js -@@= skipped -21, +21 lines =@@ - - - //// [es6modulekindWithES5Target.js] --var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { -- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; -- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); -- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; -- return c > 3 && r && Object.defineProperty(target, key, r), r; --}; +@@= skipped -28, +28 lines =@@ + return c > 3 && r && Object.defineProperty(target, key, r), r; + }; export class C { - constructor() { - this.p = 1; @@ -20,22 +13,15 @@ } -C.s = 0; export { C as C2 }; --let D = class D { + let D = class D { - constructor() { - this.p = 1; - } -+@foo -+export class D { + static s = 0; + p = 1; method() { } --}; + }; -D.s = 0; --D = __decorate([ -- foo --], D); --export { D }; -+} - export { D as D2 }; - class E { - } \ No newline at end of file + D = __decorate([ + foo + ], D); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/es6modulekindWithES5Target11.js b/testdata/baselines/reference/submodule/conformance/es6modulekindWithES5Target11.js index 638d7b6518..adb5c62d55 100644 --- a/testdata/baselines/reference/submodule/conformance/es6modulekindWithES5Target11.js +++ b/testdata/baselines/reference/submodule/conformance/es6modulekindWithES5Target11.js @@ -11,10 +11,20 @@ export default class C { } //// [es6modulekindWithES5Target11.js] -@foo -export default class C { - static x() { return C.y; } +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var C_1; +let C = C_1 = class C { + static x() { return C_1.y; } static y = 1; p = 1; method() { } -} +}; +C = C_1 = __decorate([ + foo +], C); +export default C; diff --git a/testdata/baselines/reference/submodule/conformance/es6modulekindWithES5Target11.js.diff b/testdata/baselines/reference/submodule/conformance/es6modulekindWithES5Target11.js.diff index 4119daa596..a2c2aa041e 100644 --- a/testdata/baselines/reference/submodule/conformance/es6modulekindWithES5Target11.js.diff +++ b/testdata/baselines/reference/submodule/conformance/es6modulekindWithES5Target11.js.diff @@ -1,31 +1,18 @@ --- old.es6modulekindWithES5Target11.js +++ new.es6modulekindWithES5Target11.js -@@= skipped -10, +10 lines =@@ - } - - //// [es6modulekindWithES5Target11.js] --var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { -- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; -- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); -- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; -- return c > 3 && r && Object.defineProperty(target, key, r), r; --}; --var C_1; --let C = C_1 = class C { +@@= skipped -18, +18 lines =@@ + }; + var C_1; + let C = C_1 = class C { - constructor() { - this.p = 1; - } -- static x() { return C_1.y; } -+@foo -+export default class C { -+ static x() { return C.y; } + static x() { return C_1.y; } + static y = 1; + p = 1; method() { } --}; + }; -C.y = 1; --C = C_1 = __decorate([ -- foo --], C); --export default C; -+} \ No newline at end of file + C = C_1 = __decorate([ + foo + ], C); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/es6modulekindWithES5Target3.js b/testdata/baselines/reference/submodule/conformance/es6modulekindWithES5Target3.js index b9147bbe56..dac6989282 100644 --- a/testdata/baselines/reference/submodule/conformance/es6modulekindWithES5Target3.js +++ b/testdata/baselines/reference/submodule/conformance/es6modulekindWithES5Target3.js @@ -10,9 +10,18 @@ export default class D { } //// [es6modulekindWithES5Target3.js] -@foo -export default class D { +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +let D = class D { static s = 0; p = 1; method() { } -} +}; +D = __decorate([ + foo +], D); +export default D; diff --git a/testdata/baselines/reference/submodule/conformance/es6modulekindWithES5Target3.js.diff b/testdata/baselines/reference/submodule/conformance/es6modulekindWithES5Target3.js.diff index b715f0647d..f4ddc71761 100644 --- a/testdata/baselines/reference/submodule/conformance/es6modulekindWithES5Target3.js.diff +++ b/testdata/baselines/reference/submodule/conformance/es6modulekindWithES5Target3.js.diff @@ -1,28 +1,17 @@ --- old.es6modulekindWithES5Target3.js +++ new.es6modulekindWithES5Target3.js -@@= skipped -9, +9 lines =@@ - } - - //// [es6modulekindWithES5Target3.js] --var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { -- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; -- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); -- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; -- return c > 3 && r && Object.defineProperty(target, key, r), r; --}; --let D = class D { +@@= skipped -16, +16 lines =@@ + return c > 3 && r && Object.defineProperty(target, key, r), r; + }; + let D = class D { - constructor() { - this.p = 1; - } -+@foo -+export default class D { + static s = 0; + p = 1; method() { } --}; + }; -D.s = 0; --D = __decorate([ -- foo --], D); --export default D; -+} \ No newline at end of file + D = __decorate([ + foo + ], D); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/esDecorators-classDeclaration-parameterDecorators(target=es2015).js b/testdata/baselines/reference/submodule/conformance/esDecorators-classDeclaration-parameterDecorators(target=es2015).js index 4b38c99e82..e776516114 100644 --- a/testdata/baselines/reference/submodule/conformance/esDecorators-classDeclaration-parameterDecorators(target=es2015).js +++ b/testdata/baselines/reference/submodule/conformance/esDecorators-classDeclaration-parameterDecorators(target=es2015).js @@ -21,16 +21,36 @@ class C { //// [esDecorators-classDeclaration-parameterDecorators.js] class C { - constructor(x) { } - method(x) { } - set x(x) { } - static method(x) { } - static set x(x) { } + constructor( + @dec + x) { } + method( + @dec + x) { } + set x( + @dec + x) { } + static method( + @dec + x) { } + static set x( + @dec + x) { } } (class C { - constructor(x) { } - method(x) { } - set x(x) { } - static method(x) { } - static set x(x) { } + constructor( + @dec + x) { } + method( + @dec + x) { } + set x( + @dec + x) { } + static method( + @dec + x) { } + static set x( + @dec + x) { } }); diff --git a/testdata/baselines/reference/submodule/conformance/esDecorators-classDeclaration-parameterDecorators(target=es2015).js.diff b/testdata/baselines/reference/submodule/conformance/esDecorators-classDeclaration-parameterDecorators(target=es2015).js.diff new file mode 100644 index 0000000000..124daa7f50 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/esDecorators-classDeclaration-parameterDecorators(target=es2015).js.diff @@ -0,0 +1,49 @@ +--- old.esDecorators-classDeclaration-parameterDecorators(target=es2015).js ++++ new.esDecorators-classDeclaration-parameterDecorators(target=es2015).js +@@= skipped -20, +20 lines =@@ + + //// [esDecorators-classDeclaration-parameterDecorators.js] + class C { +- constructor(x) { } +- method(x) { } +- set x(x) { } +- static method(x) { } +- static set x(x) { } ++ constructor( ++ @dec ++ x) { } ++ method( ++ @dec ++ x) { } ++ set x( ++ @dec ++ x) { } ++ static method( ++ @dec ++ x) { } ++ static set x( ++ @dec ++ x) { } + } + (class C { +- constructor(x) { } +- method(x) { } +- set x(x) { } +- static method(x) { } +- static set x(x) { } ++ constructor( ++ @dec ++ x) { } ++ method( ++ @dec ++ x) { } ++ set x( ++ @dec ++ x) { } ++ static method( ++ @dec ++ x) { } ++ static set x( ++ @dec ++ x) { } + }); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/esDecorators-classDeclaration-parameterDecorators(target=es2022).js b/testdata/baselines/reference/submodule/conformance/esDecorators-classDeclaration-parameterDecorators(target=es2022).js index 4b38c99e82..e776516114 100644 --- a/testdata/baselines/reference/submodule/conformance/esDecorators-classDeclaration-parameterDecorators(target=es2022).js +++ b/testdata/baselines/reference/submodule/conformance/esDecorators-classDeclaration-parameterDecorators(target=es2022).js @@ -21,16 +21,36 @@ class C { //// [esDecorators-classDeclaration-parameterDecorators.js] class C { - constructor(x) { } - method(x) { } - set x(x) { } - static method(x) { } - static set x(x) { } + constructor( + @dec + x) { } + method( + @dec + x) { } + set x( + @dec + x) { } + static method( + @dec + x) { } + static set x( + @dec + x) { } } (class C { - constructor(x) { } - method(x) { } - set x(x) { } - static method(x) { } - static set x(x) { } + constructor( + @dec + x) { } + method( + @dec + x) { } + set x( + @dec + x) { } + static method( + @dec + x) { } + static set x( + @dec + x) { } }); diff --git a/testdata/baselines/reference/submodule/conformance/esDecorators-classDeclaration-parameterDecorators(target=es2022).js.diff b/testdata/baselines/reference/submodule/conformance/esDecorators-classDeclaration-parameterDecorators(target=es2022).js.diff new file mode 100644 index 0000000000..2d042d7527 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/esDecorators-classDeclaration-parameterDecorators(target=es2022).js.diff @@ -0,0 +1,49 @@ +--- old.esDecorators-classDeclaration-parameterDecorators(target=es2022).js ++++ new.esDecorators-classDeclaration-parameterDecorators(target=es2022).js +@@= skipped -20, +20 lines =@@ + + //// [esDecorators-classDeclaration-parameterDecorators.js] + class C { +- constructor(x) { } +- method(x) { } +- set x(x) { } +- static method(x) { } +- static set x(x) { } ++ constructor( ++ @dec ++ x) { } ++ method( ++ @dec ++ x) { } ++ set x( ++ @dec ++ x) { } ++ static method( ++ @dec ++ x) { } ++ static set x( ++ @dec ++ x) { } + } + (class C { +- constructor(x) { } +- method(x) { } +- set x(x) { } +- static method(x) { } +- static set x(x) { } ++ constructor( ++ @dec ++ x) { } ++ method( ++ @dec ++ x) { } ++ set x( ++ @dec ++ x) { } ++ static method( ++ @dec ++ x) { } ++ static set x( ++ @dec ++ x) { } + }); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/esDecorators-classDeclaration-parameterDecorators(target=es5).js b/testdata/baselines/reference/submodule/conformance/esDecorators-classDeclaration-parameterDecorators(target=es5).js index 4b38c99e82..e776516114 100644 --- a/testdata/baselines/reference/submodule/conformance/esDecorators-classDeclaration-parameterDecorators(target=es5).js +++ b/testdata/baselines/reference/submodule/conformance/esDecorators-classDeclaration-parameterDecorators(target=es5).js @@ -21,16 +21,36 @@ class C { //// [esDecorators-classDeclaration-parameterDecorators.js] class C { - constructor(x) { } - method(x) { } - set x(x) { } - static method(x) { } - static set x(x) { } + constructor( + @dec + x) { } + method( + @dec + x) { } + set x( + @dec + x) { } + static method( + @dec + x) { } + static set x( + @dec + x) { } } (class C { - constructor(x) { } - method(x) { } - set x(x) { } - static method(x) { } - static set x(x) { } + constructor( + @dec + x) { } + method( + @dec + x) { } + set x( + @dec + x) { } + static method( + @dec + x) { } + static set x( + @dec + x) { } }); diff --git a/testdata/baselines/reference/submodule/conformance/esDecorators-classDeclaration-parameterDecorators(target=es5).js.diff b/testdata/baselines/reference/submodule/conformance/esDecorators-classDeclaration-parameterDecorators(target=es5).js.diff new file mode 100644 index 0000000000..88eb7ff10d --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/esDecorators-classDeclaration-parameterDecorators(target=es5).js.diff @@ -0,0 +1,49 @@ +--- old.esDecorators-classDeclaration-parameterDecorators(target=es5).js ++++ new.esDecorators-classDeclaration-parameterDecorators(target=es5).js +@@= skipped -20, +20 lines =@@ + + //// [esDecorators-classDeclaration-parameterDecorators.js] + class C { +- constructor(x) { } +- method(x) { } +- set x(x) { } +- static method(x) { } +- static set x(x) { } ++ constructor( ++ @dec ++ x) { } ++ method( ++ @dec ++ x) { } ++ set x( ++ @dec ++ x) { } ++ static method( ++ @dec ++ x) { } ++ static set x( ++ @dec ++ x) { } + } + (class C { +- constructor(x) { } +- method(x) { } +- set x(x) { } +- static method(x) { } +- static set x(x) { } ++ constructor( ++ @dec ++ x) { } ++ method( ++ @dec ++ x) { } ++ set x( ++ @dec ++ x) { } ++ static method( ++ @dec ++ x) { } ++ static set x( ++ @dec ++ x) { } + }); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/esDecorators-classDeclaration-parameterDecorators(target=esnext).js b/testdata/baselines/reference/submodule/conformance/esDecorators-classDeclaration-parameterDecorators(target=esnext).js index 4b38c99e82..e776516114 100644 --- a/testdata/baselines/reference/submodule/conformance/esDecorators-classDeclaration-parameterDecorators(target=esnext).js +++ b/testdata/baselines/reference/submodule/conformance/esDecorators-classDeclaration-parameterDecorators(target=esnext).js @@ -21,16 +21,36 @@ class C { //// [esDecorators-classDeclaration-parameterDecorators.js] class C { - constructor(x) { } - method(x) { } - set x(x) { } - static method(x) { } - static set x(x) { } + constructor( + @dec + x) { } + method( + @dec + x) { } + set x( + @dec + x) { } + static method( + @dec + x) { } + static set x( + @dec + x) { } } (class C { - constructor(x) { } - method(x) { } - set x(x) { } - static method(x) { } - static set x(x) { } + constructor( + @dec + x) { } + method( + @dec + x) { } + set x( + @dec + x) { } + static method( + @dec + x) { } + static set x( + @dec + x) { } }); diff --git a/testdata/baselines/reference/submodule/conformance/esDecorators-classDeclaration-parameterDecorators(target=esnext).js.diff b/testdata/baselines/reference/submodule/conformance/esDecorators-classDeclaration-parameterDecorators(target=esnext).js.diff deleted file mode 100644 index c5a65dc0eb..0000000000 --- a/testdata/baselines/reference/submodule/conformance/esDecorators-classDeclaration-parameterDecorators(target=esnext).js.diff +++ /dev/null @@ -1,49 +0,0 @@ ---- old.esDecorators-classDeclaration-parameterDecorators(target=esnext).js -+++ new.esDecorators-classDeclaration-parameterDecorators(target=esnext).js -@@= skipped -20, +20 lines =@@ - - //// [esDecorators-classDeclaration-parameterDecorators.js] - class C { -- constructor( -- @dec -- x) { } -- method( -- @dec -- x) { } -- set x( -- @dec -- x) { } -- static method( -- @dec -- x) { } -- static set x( -- @dec -- x) { } -+ constructor(x) { } -+ method(x) { } -+ set x(x) { } -+ static method(x) { } -+ static set x(x) { } - } - (class C { -- constructor( -- @dec -- x) { } -- method( -- @dec -- x) { } -- set x( -- @dec -- x) { } -- static method( -- @dec -- x) { } -- static set x( -- @dec -- x) { } -+ constructor(x) { } -+ method(x) { } -+ set x(x) { } -+ static method(x) { } -+ static set x(x) { } - }); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/esDecorators-decoratorExpression.1(experimentaldecorators=true).js b/testdata/baselines/reference/submodule/conformance/esDecorators-decoratorExpression.1(experimentaldecorators=true).js index e18cf8fa9b..2e16e04490 100644 --- a/testdata/baselines/reference/submodule/conformance/esDecorators-decoratorExpression.1(experimentaldecorators=true).js +++ b/testdata/baselines/reference/submodule/conformance/esDecorators-decoratorExpression.1(experimentaldecorators=true).js @@ -50,123 +50,167 @@ declare let x: any; //// [esDecorators-decoratorExpression.1.js] { - @x().y - class C { - } + let C = class C { + }; + C = __decorate([ + x().y + ], C); } { - @(new x) - class C { - } + let C = class C { + }; + C = __decorate([ + new x + ], C); } { - @x().y() - class C { - } + let C = class C { + }; + C = __decorate([ + x().y() + ], C); } { - @(x?.y) - class C { - } + let C = class C { + }; + C = __decorate([ + x?.y + ], C); } { - @(x?.y()) - class C { - } + let C = class C { + }; + C = __decorate([ + x?.y() + ], C); } { - @(x?.["y"]) - class C { - } + let C = class C { + }; + C = __decorate([ + x?.["y"] + ], C); } { - @(x?.()) - class C { - } + let C = class C { + }; + C = __decorate([ + x?.() + ], C); } { - @x `` - class C { - } + let C = class C { + }; + C = __decorate([ + x `` + ], C); } { - @x ``() - class C { - } + let C = class C { + }; + C = __decorate([ + x ``() + ], C); } { - @x.y `` - class C { - } + let C = class C { + }; + C = __decorate([ + x.y `` + ], C); } { - @x.y ``() - class C { - } + let C = class C { + }; + C = __decorate([ + x.y ``() + ], C); } { class C { - @x().y m() { } } + __decorate([ + x().y + ], C.prototype, "m", null); } { class C { - @(new x) m() { } } + __decorate([ + new x + ], C.prototype, "m", null); } { class C { - @x().y() m() { } } + __decorate([ + x().y() + ], C.prototype, "m", null); } { class C { - @(x?.y) m() { } } + __decorate([ + x?.y + ], C.prototype, "m", null); } { class C { - @(x?.y()) m() { } } + __decorate([ + x?.y() + ], C.prototype, "m", null); } { class C { - @(x?.["y"]) m() { } } + __decorate([ + x?.["y"] + ], C.prototype, "m", null); } { class C { - @(x?.()) m() { } } + __decorate([ + x?.() + ], C.prototype, "m", null); } { class C { - @x `` m() { } } + __decorate([ + x `` + ], C.prototype, "m", null); } { class C { - @x ``() m() { } } + __decorate([ + x ``() + ], C.prototype, "m", null); } { class C { - @x.y `` m() { } } + __decorate([ + x.y `` + ], C.prototype, "m", null); } { class C { - @x.y ``() m() { } } + __decorate([ + x.y ``() + ], C.prototype, "m", null); } diff --git a/testdata/baselines/reference/submodule/conformance/esDecorators-decoratorExpression.1(experimentaldecorators=true).js.diff b/testdata/baselines/reference/submodule/conformance/esDecorators-decoratorExpression.1(experimentaldecorators=true).js.diff deleted file mode 100644 index b9f938b8f4..0000000000 --- a/testdata/baselines/reference/submodule/conformance/esDecorators-decoratorExpression.1(experimentaldecorators=true).js.diff +++ /dev/null @@ -1,289 +0,0 @@ ---- old.esDecorators-decoratorExpression.1(experimentaldecorators=true).js -+++ new.esDecorators-decoratorExpression.1(experimentaldecorators=true).js -@@= skipped -49, +49 lines =@@ - - //// [esDecorators-decoratorExpression.1.js] - { -- let C = class C { -- }; -- C = __decorate([ -- x().y -- ], C); --} --{ -- let C = class C { -- }; -- C = __decorate([ -- new x -- ], C); --} --{ -- let C = class C { -- }; -- C = __decorate([ -- x().y() -- ], C); --} --{ -- let C = class C { -- }; -- C = __decorate([ -- x?.y -- ], C); --} --{ -- let C = class C { -- }; -- C = __decorate([ -- x?.y() -- ], C); --} --{ -- let C = class C { -- }; -- C = __decorate([ -- x?.["y"] -- ], C); --} --{ -- let C = class C { -- }; -- C = __decorate([ -- x?.() -- ], C); --} --{ -- let C = class C { -- }; -- C = __decorate([ -- x `` -- ], C); --} --{ -- let C = class C { -- }; -- C = __decorate([ -- x ``() -- ], C); --} --{ -- let C = class C { -- }; -- C = __decorate([ -- x.y `` -- ], C); --} --{ -- let C = class C { -- }; -- C = __decorate([ -- x.y ``() -- ], C); --} --{ -- class C { -- m() { } -- } -- __decorate([ -- x().y -- ], C.prototype, "m", null); --} --{ -- class C { -- m() { } -- } -- __decorate([ -- new x -- ], C.prototype, "m", null); --} --{ -- class C { -- m() { } -- } -- __decorate([ -- x().y() -- ], C.prototype, "m", null); --} --{ -- class C { -- m() { } -- } -- __decorate([ -- x?.y -- ], C.prototype, "m", null); --} --{ -- class C { -- m() { } -- } -- __decorate([ -- x?.y() -- ], C.prototype, "m", null); --} --{ -- class C { -- m() { } -- } -- __decorate([ -- x?.["y"] -- ], C.prototype, "m", null); --} --{ -- class C { -- m() { } -- } -- __decorate([ -- x?.() -- ], C.prototype, "m", null); --} --{ -- class C { -- m() { } -- } -- __decorate([ -- x `` -- ], C.prototype, "m", null); --} --{ -- class C { -- m() { } -- } -- __decorate([ -- x ``() -- ], C.prototype, "m", null); --} --{ -- class C { -- m() { } -- } -- __decorate([ -- x.y `` -- ], C.prototype, "m", null); --} --{ -- class C { -- m() { } -- } -- __decorate([ -- x.y ``() -- ], C.prototype, "m", null); -+ @x().y -+ class C { -+ } -+} -+{ -+ @(new x) -+ class C { -+ } -+} -+{ -+ @x().y() -+ class C { -+ } -+} -+{ -+ @(x?.y) -+ class C { -+ } -+} -+{ -+ @(x?.y()) -+ class C { -+ } -+} -+{ -+ @(x?.["y"]) -+ class C { -+ } -+} -+{ -+ @(x?.()) -+ class C { -+ } -+} -+{ -+ @x `` -+ class C { -+ } -+} -+{ -+ @x ``() -+ class C { -+ } -+} -+{ -+ @x.y `` -+ class C { -+ } -+} -+{ -+ @x.y ``() -+ class C { -+ } -+} -+{ -+ class C { -+ @x().y -+ m() { } -+ } -+} -+{ -+ class C { -+ @(new x) -+ m() { } -+ } -+} -+{ -+ class C { -+ @x().y() -+ m() { } -+ } -+} -+{ -+ class C { -+ @(x?.y) -+ m() { } -+ } -+} -+{ -+ class C { -+ @(x?.y()) -+ m() { } -+ } -+} -+{ -+ class C { -+ @(x?.["y"]) -+ m() { } -+ } -+} -+{ -+ class C { -+ @(x?.()) -+ m() { } -+ } -+} -+{ -+ class C { -+ @x `` -+ m() { } -+ } -+} -+{ -+ class C { -+ @x ``() -+ m() { } -+ } -+} -+{ -+ class C { -+ @x.y `` -+ m() { } -+ } -+} -+{ -+ class C { -+ @x.y ``() -+ m() { } -+ } - } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/esDecorators-decoratorExpression.2(experimentaldecorators=true).js b/testdata/baselines/reference/submodule/conformance/esDecorators-decoratorExpression.2(experimentaldecorators=true).js index 5fa5c99b08..d82dde020f 100644 --- a/testdata/baselines/reference/submodule/conformance/esDecorators-decoratorExpression.2(experimentaldecorators=true).js +++ b/testdata/baselines/reference/submodule/conformance/esDecorators-decoratorExpression.2(experimentaldecorators=true).js @@ -60,145 +60,197 @@ declare let h: () => (...args: any) => any; //// [esDecorators-decoratorExpression.2.js] { - @x - class C { - } + let C = class C { + }; + C = __decorate([ + x + ], C); } { - @x.y - class C { - } + let C = class C { + }; + C = __decorate([ + x.y + ], C); } { - @x.y - class C { - } + let C = class C { + }; + C = __decorate([ + x.y + ], C); } { - @g() - class C { - } + let C = class C { + }; + C = __decorate([ + g() + ], C); } { - @(g) - class C { - } + let C = class C { + }; + C = __decorate([ + (g) + ], C); } { - @(h()) - class C { - } + let C = class C { + }; + C = __decorate([ + (h()) + ], C); } { - @(x().y) - class C { - } + let C = class C { + }; + C = __decorate([ + (x().y) + ], C); } { - @(x().y()) - class C { - } + let C = class C { + }; + C = __decorate([ + (x().y()) + ], C); } { - @(x ``) - class C { - } + let C = class C { + }; + C = __decorate([ + (x ``) + ], C); } { - @(x.y ``) - class C { - } + let C = class C { + }; + C = __decorate([ + (x.y ``) + ], C); } { - @(x?.y) - class C { - } + let C = class C { + }; + C = __decorate([ + (x?.y) + ], C); } { - @(x["y"]) - class C { - } + let C = class C { + }; + C = __decorate([ + (x["y"]) + ], C); } { - @(x?.["y"]) - class C { - } + let C = class C { + }; + C = __decorate([ + (x?.["y"]) + ], C); } { class C { - @x m() { } } + __decorate([ + x + ], C.prototype, "m", null); } { class C { - @x.y m() { } } + __decorate([ + x.y + ], C.prototype, "m", null); } { class C { - @x.y m() { } } + __decorate([ + x.y + ], C.prototype, "m", null); } { class C { - @g() m() { } } + __decorate([ + g() + ], C.prototype, "m", null); } { class C { - @(g) m() { } } + __decorate([ + (g) + ], C.prototype, "m", null); } { class C { - @(h()) m() { } } + __decorate([ + (h()) + ], C.prototype, "m", null); } { class C { - @(x().y) m() { } } + __decorate([ + (x().y) + ], C.prototype, "m", null); } { class C { - @(x().y()) m() { } } + __decorate([ + (x().y()) + ], C.prototype, "m", null); } { class C { - @(x ``) m() { } } + __decorate([ + (x ``) + ], C.prototype, "m", null); } { class C { - @(x.y ``) m() { } } + __decorate([ + (x.y ``) + ], C.prototype, "m", null); } { class C { - @(x?.y) m() { } } + __decorate([ + (x?.y) + ], C.prototype, "m", null); } { class C { - @(x["y"]) m() { } } + __decorate([ + (x["y"]) + ], C.prototype, "m", null); } { class C { - @(x?.["y"]) m() { } } + __decorate([ + (x?.["y"]) + ], C.prototype, "m", null); } diff --git a/testdata/baselines/reference/submodule/conformance/esDecorators-decoratorExpression.2(experimentaldecorators=true).js.diff b/testdata/baselines/reference/submodule/conformance/esDecorators-decoratorExpression.2(experimentaldecorators=true).js.diff deleted file mode 100644 index 9ce3ae0dd9..0000000000 --- a/testdata/baselines/reference/submodule/conformance/esDecorators-decoratorExpression.2(experimentaldecorators=true).js.diff +++ /dev/null @@ -1,341 +0,0 @@ ---- old.esDecorators-decoratorExpression.2(experimentaldecorators=true).js -+++ new.esDecorators-decoratorExpression.2(experimentaldecorators=true).js -@@= skipped -59, +59 lines =@@ - - //// [esDecorators-decoratorExpression.2.js] - { -- let C = class C { -- }; -- C = __decorate([ -- x -- ], C); --} --{ -- let C = class C { -- }; -- C = __decorate([ -- x.y -- ], C); --} --{ -- let C = class C { -- }; -- C = __decorate([ -- x.y -- ], C); --} --{ -- let C = class C { -- }; -- C = __decorate([ -- g() -- ], C); --} --{ -- let C = class C { -- }; -- C = __decorate([ -- (g) -- ], C); --} --{ -- let C = class C { -- }; -- C = __decorate([ -- (h()) -- ], C); --} --{ -- let C = class C { -- }; -- C = __decorate([ -- (x().y) -- ], C); --} --{ -- let C = class C { -- }; -- C = __decorate([ -- (x().y()) -- ], C); --} --{ -- let C = class C { -- }; -- C = __decorate([ -- (x ``) -- ], C); --} --{ -- let C = class C { -- }; -- C = __decorate([ -- (x.y ``) -- ], C); --} --{ -- let C = class C { -- }; -- C = __decorate([ -- (x?.y) -- ], C); --} --{ -- let C = class C { -- }; -- C = __decorate([ -- (x["y"]) -- ], C); --} --{ -- let C = class C { -- }; -- C = __decorate([ -- (x?.["y"]) -- ], C); --} --{ -- class C { -- m() { } -- } -- __decorate([ -- x -- ], C.prototype, "m", null); --} --{ -- class C { -- m() { } -- } -- __decorate([ -- x.y -- ], C.prototype, "m", null); --} --{ -- class C { -- m() { } -- } -- __decorate([ -- x.y -- ], C.prototype, "m", null); --} --{ -- class C { -- m() { } -- } -- __decorate([ -- g() -- ], C.prototype, "m", null); --} --{ -- class C { -- m() { } -- } -- __decorate([ -- (g) -- ], C.prototype, "m", null); --} --{ -- class C { -- m() { } -- } -- __decorate([ -- (h()) -- ], C.prototype, "m", null); --} --{ -- class C { -- m() { } -- } -- __decorate([ -- (x().y) -- ], C.prototype, "m", null); --} --{ -- class C { -- m() { } -- } -- __decorate([ -- (x().y()) -- ], C.prototype, "m", null); --} --{ -- class C { -- m() { } -- } -- __decorate([ -- (x ``) -- ], C.prototype, "m", null); --} --{ -- class C { -- m() { } -- } -- __decorate([ -- (x.y ``) -- ], C.prototype, "m", null); --} --{ -- class C { -- m() { } -- } -- __decorate([ -- (x?.y) -- ], C.prototype, "m", null); --} --{ -- class C { -- m() { } -- } -- __decorate([ -- (x["y"]) -- ], C.prototype, "m", null); --} --{ -- class C { -- m() { } -- } -- __decorate([ -- (x?.["y"]) -- ], C.prototype, "m", null); -+ @x -+ class C { -+ } -+} -+{ -+ @x.y -+ class C { -+ } -+} -+{ -+ @x.y -+ class C { -+ } -+} -+{ -+ @g() -+ class C { -+ } -+} -+{ -+ @(g) -+ class C { -+ } -+} -+{ -+ @(h()) -+ class C { -+ } -+} -+{ -+ @(x().y) -+ class C { -+ } -+} -+{ -+ @(x().y()) -+ class C { -+ } -+} -+{ -+ @(x ``) -+ class C { -+ } -+} -+{ -+ @(x.y ``) -+ class C { -+ } -+} -+{ -+ @(x?.y) -+ class C { -+ } -+} -+{ -+ @(x["y"]) -+ class C { -+ } -+} -+{ -+ @(x?.["y"]) -+ class C { -+ } -+} -+{ -+ class C { -+ @x -+ m() { } -+ } -+} -+{ -+ class C { -+ @x.y -+ m() { } -+ } -+} -+{ -+ class C { -+ @x.y -+ m() { } -+ } -+} -+{ -+ class C { -+ @g() -+ m() { } -+ } -+} -+{ -+ class C { -+ @(g) -+ m() { } -+ } -+} -+{ -+ class C { -+ @(h()) -+ m() { } -+ } -+} -+{ -+ class C { -+ @(x().y) -+ m() { } -+ } -+} -+{ -+ class C { -+ @(x().y()) -+ m() { } -+ } -+} -+{ -+ class C { -+ @(x ``) -+ m() { } -+ } -+} -+{ -+ class C { -+ @(x.y ``) -+ m() { } -+ } -+} -+{ -+ class C { -+ @(x?.y) -+ m() { } -+ } -+} -+{ -+ class C { -+ @(x["y"]) -+ m() { } -+ } -+} -+{ -+ class C { -+ @(x?.["y"]) -+ m() { } -+ } - } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/esDecorators-emitDecoratorMetadata(target=es2015).errors.txt b/testdata/baselines/reference/submodule/conformance/esDecorators-emitDecoratorMetadata(target=es2015).errors.txt new file mode 100644 index 0000000000..34100c7c3b --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/esDecorators-emitDecoratorMetadata(target=es2015).errors.txt @@ -0,0 +1,51 @@ +error TS5052: Option 'emitDecoratorMetadata' cannot be specified without specifying option 'experimentalDecorators'. + + +!!! error TS5052: Option 'emitDecoratorMetadata' cannot be specified without specifying option 'experimentalDecorators'. +==== esDecorators-emitDecoratorMetadata.ts (0 errors) ==== + declare let dec: any; + + @dec + class C { + constructor(x: number) {} + + @dec + method(x: number) {} + + @dec + set x(x: number) {} + + @dec + y: number; + + @dec + static method(x: number) {} + + @dec + static set x(x: number) {} + + @dec + static y: number; + } + + (@dec class C { + constructor(x: number) {} + + @dec + method(x: number) {} + + @dec + set x(x: number) {} + + @dec + y: number; + + @dec + static method(x: number) {} + + @dec + static set x(x: number) {} + + @dec + static y: number; + }); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/esDecorators-emitDecoratorMetadata(target=es2015).errors.txt.diff b/testdata/baselines/reference/submodule/conformance/esDecorators-emitDecoratorMetadata(target=es2015).errors.txt.diff deleted file mode 100644 index 3f6e2ba72b..0000000000 --- a/testdata/baselines/reference/submodule/conformance/esDecorators-emitDecoratorMetadata(target=es2015).errors.txt.diff +++ /dev/null @@ -1,55 +0,0 @@ ---- old.esDecorators-emitDecoratorMetadata(target=es2015).errors.txt -+++ new.esDecorators-emitDecoratorMetadata(target=es2015).errors.txt -@@= skipped -0, +0 lines =@@ --error TS5052: Option 'emitDecoratorMetadata' cannot be specified without specifying option 'experimentalDecorators'. -- -- --!!! error TS5052: Option 'emitDecoratorMetadata' cannot be specified without specifying option 'experimentalDecorators'. --==== esDecorators-emitDecoratorMetadata.ts (0 errors) ==== -- declare let dec: any; -- -- @dec -- class C { -- constructor(x: number) {} -- -- @dec -- method(x: number) {} -- -- @dec -- set x(x: number) {} -- -- @dec -- y: number; -- -- @dec -- static method(x: number) {} -- -- @dec -- static set x(x: number) {} -- -- @dec -- static y: number; -- } -- -- (@dec class C { -- constructor(x: number) {} -- -- @dec -- method(x: number) {} -- -- @dec -- set x(x: number) {} -- -- @dec -- y: number; -- -- @dec -- static method(x: number) {} -- -- @dec -- static set x(x: number) {} -- -- @dec -- static y: number; -- }); -+ \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/esDecorators-emitDecoratorMetadata(target=es2022).errors.txt b/testdata/baselines/reference/submodule/conformance/esDecorators-emitDecoratorMetadata(target=es2022).errors.txt new file mode 100644 index 0000000000..34100c7c3b --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/esDecorators-emitDecoratorMetadata(target=es2022).errors.txt @@ -0,0 +1,51 @@ +error TS5052: Option 'emitDecoratorMetadata' cannot be specified without specifying option 'experimentalDecorators'. + + +!!! error TS5052: Option 'emitDecoratorMetadata' cannot be specified without specifying option 'experimentalDecorators'. +==== esDecorators-emitDecoratorMetadata.ts (0 errors) ==== + declare let dec: any; + + @dec + class C { + constructor(x: number) {} + + @dec + method(x: number) {} + + @dec + set x(x: number) {} + + @dec + y: number; + + @dec + static method(x: number) {} + + @dec + static set x(x: number) {} + + @dec + static y: number; + } + + (@dec class C { + constructor(x: number) {} + + @dec + method(x: number) {} + + @dec + set x(x: number) {} + + @dec + y: number; + + @dec + static method(x: number) {} + + @dec + static set x(x: number) {} + + @dec + static y: number; + }); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/esDecorators-emitDecoratorMetadata(target=es2022).errors.txt.diff b/testdata/baselines/reference/submodule/conformance/esDecorators-emitDecoratorMetadata(target=es2022).errors.txt.diff deleted file mode 100644 index cffcac15af..0000000000 --- a/testdata/baselines/reference/submodule/conformance/esDecorators-emitDecoratorMetadata(target=es2022).errors.txt.diff +++ /dev/null @@ -1,55 +0,0 @@ ---- old.esDecorators-emitDecoratorMetadata(target=es2022).errors.txt -+++ new.esDecorators-emitDecoratorMetadata(target=es2022).errors.txt -@@= skipped -0, +0 lines =@@ --error TS5052: Option 'emitDecoratorMetadata' cannot be specified without specifying option 'experimentalDecorators'. -- -- --!!! error TS5052: Option 'emitDecoratorMetadata' cannot be specified without specifying option 'experimentalDecorators'. --==== esDecorators-emitDecoratorMetadata.ts (0 errors) ==== -- declare let dec: any; -- -- @dec -- class C { -- constructor(x: number) {} -- -- @dec -- method(x: number) {} -- -- @dec -- set x(x: number) {} -- -- @dec -- y: number; -- -- @dec -- static method(x: number) {} -- -- @dec -- static set x(x: number) {} -- -- @dec -- static y: number; -- } -- -- (@dec class C { -- constructor(x: number) {} -- -- @dec -- method(x: number) {} -- -- @dec -- set x(x: number) {} -- -- @dec -- y: number; -- -- @dec -- static method(x: number) {} -- -- @dec -- static set x(x: number) {} -- -- @dec -- static y: number; -- }); -+ \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/esDecorators-emitDecoratorMetadata(target=es5).errors.txt b/testdata/baselines/reference/submodule/conformance/esDecorators-emitDecoratorMetadata(target=es5).errors.txt new file mode 100644 index 0000000000..34100c7c3b --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/esDecorators-emitDecoratorMetadata(target=es5).errors.txt @@ -0,0 +1,51 @@ +error TS5052: Option 'emitDecoratorMetadata' cannot be specified without specifying option 'experimentalDecorators'. + + +!!! error TS5052: Option 'emitDecoratorMetadata' cannot be specified without specifying option 'experimentalDecorators'. +==== esDecorators-emitDecoratorMetadata.ts (0 errors) ==== + declare let dec: any; + + @dec + class C { + constructor(x: number) {} + + @dec + method(x: number) {} + + @dec + set x(x: number) {} + + @dec + y: number; + + @dec + static method(x: number) {} + + @dec + static set x(x: number) {} + + @dec + static y: number; + } + + (@dec class C { + constructor(x: number) {} + + @dec + method(x: number) {} + + @dec + set x(x: number) {} + + @dec + y: number; + + @dec + static method(x: number) {} + + @dec + static set x(x: number) {} + + @dec + static y: number; + }); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/esDecorators-emitDecoratorMetadata(target=es5).errors.txt.diff b/testdata/baselines/reference/submodule/conformance/esDecorators-emitDecoratorMetadata(target=es5).errors.txt.diff deleted file mode 100644 index 0f593ba1d5..0000000000 --- a/testdata/baselines/reference/submodule/conformance/esDecorators-emitDecoratorMetadata(target=es5).errors.txt.diff +++ /dev/null @@ -1,55 +0,0 @@ ---- old.esDecorators-emitDecoratorMetadata(target=es5).errors.txt -+++ new.esDecorators-emitDecoratorMetadata(target=es5).errors.txt -@@= skipped -0, +0 lines =@@ --error TS5052: Option 'emitDecoratorMetadata' cannot be specified without specifying option 'experimentalDecorators'. -- -- --!!! error TS5052: Option 'emitDecoratorMetadata' cannot be specified without specifying option 'experimentalDecorators'. --==== esDecorators-emitDecoratorMetadata.ts (0 errors) ==== -- declare let dec: any; -- -- @dec -- class C { -- constructor(x: number) {} -- -- @dec -- method(x: number) {} -- -- @dec -- set x(x: number) {} -- -- @dec -- y: number; -- -- @dec -- static method(x: number) {} -- -- @dec -- static set x(x: number) {} -- -- @dec -- static y: number; -- } -- -- (@dec class C { -- constructor(x: number) {} -- -- @dec -- method(x: number) {} -- -- @dec -- set x(x: number) {} -- -- @dec -- y: number; -- -- @dec -- static method(x: number) {} -- -- @dec -- static set x(x: number) {} -- -- @dec -- static y: number; -- }); -+ \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/esDecorators-emitDecoratorMetadata(target=esnext).errors.txt b/testdata/baselines/reference/submodule/conformance/esDecorators-emitDecoratorMetadata(target=esnext).errors.txt new file mode 100644 index 0000000000..34100c7c3b --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/esDecorators-emitDecoratorMetadata(target=esnext).errors.txt @@ -0,0 +1,51 @@ +error TS5052: Option 'emitDecoratorMetadata' cannot be specified without specifying option 'experimentalDecorators'. + + +!!! error TS5052: Option 'emitDecoratorMetadata' cannot be specified without specifying option 'experimentalDecorators'. +==== esDecorators-emitDecoratorMetadata.ts (0 errors) ==== + declare let dec: any; + + @dec + class C { + constructor(x: number) {} + + @dec + method(x: number) {} + + @dec + set x(x: number) {} + + @dec + y: number; + + @dec + static method(x: number) {} + + @dec + static set x(x: number) {} + + @dec + static y: number; + } + + (@dec class C { + constructor(x: number) {} + + @dec + method(x: number) {} + + @dec + set x(x: number) {} + + @dec + y: number; + + @dec + static method(x: number) {} + + @dec + static set x(x: number) {} + + @dec + static y: number; + }); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/esDecorators-emitDecoratorMetadata(target=esnext).errors.txt.diff b/testdata/baselines/reference/submodule/conformance/esDecorators-emitDecoratorMetadata(target=esnext).errors.txt.diff deleted file mode 100644 index fa218a9811..0000000000 --- a/testdata/baselines/reference/submodule/conformance/esDecorators-emitDecoratorMetadata(target=esnext).errors.txt.diff +++ /dev/null @@ -1,55 +0,0 @@ ---- old.esDecorators-emitDecoratorMetadata(target=esnext).errors.txt -+++ new.esDecorators-emitDecoratorMetadata(target=esnext).errors.txt -@@= skipped -0, +0 lines =@@ --error TS5052: Option 'emitDecoratorMetadata' cannot be specified without specifying option 'experimentalDecorators'. -- -- --!!! error TS5052: Option 'emitDecoratorMetadata' cannot be specified without specifying option 'experimentalDecorators'. --==== esDecorators-emitDecoratorMetadata.ts (0 errors) ==== -- declare let dec: any; -- -- @dec -- class C { -- constructor(x: number) {} -- -- @dec -- method(x: number) {} -- -- @dec -- set x(x: number) {} -- -- @dec -- y: number; -- -- @dec -- static method(x: number) {} -- -- @dec -- static set x(x: number) {} -- -- @dec -- static y: number; -- } -- -- (@dec class C { -- constructor(x: number) {} -- -- @dec -- method(x: number) {} -- -- @dec -- set x(x: number) {} -- -- @dec -- y: number; -- -- @dec -- static method(x: number) {} -- -- @dec -- static set x(x: number) {} -- -- @dec -- static y: number; -- }); -+ \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/esnextmodulekindWithES5Target.js b/testdata/baselines/reference/submodule/conformance/esnextmodulekindWithES5Target.js index b02dc057da..dcd6f620df 100644 --- a/testdata/baselines/reference/submodule/conformance/esnextmodulekindWithES5Target.js +++ b/testdata/baselines/reference/submodule/conformance/esnextmodulekindWithES5Target.js @@ -22,18 +22,27 @@ export {E}; //// [esnextmodulekindWithES5Target.js] +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; export class C { static s = 0; p = 1; method() { } } export { C as C2 }; -@foo -export class D { +let D = class D { static s = 0; p = 1; method() { } -} +}; +D = __decorate([ + foo +], D); +export { D }; export { D as D2 }; class E { } diff --git a/testdata/baselines/reference/submodule/conformance/esnextmodulekindWithES5Target.js.diff b/testdata/baselines/reference/submodule/conformance/esnextmodulekindWithES5Target.js.diff index f1ce292fd3..86fefcf24f 100644 --- a/testdata/baselines/reference/submodule/conformance/esnextmodulekindWithES5Target.js.diff +++ b/testdata/baselines/reference/submodule/conformance/esnextmodulekindWithES5Target.js.diff @@ -1,15 +1,8 @@ --- old.esnextmodulekindWithES5Target.js +++ new.esnextmodulekindWithES5Target.js -@@= skipped -21, +21 lines =@@ - - - //// [esnextmodulekindWithES5Target.js] --var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { -- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; -- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); -- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; -- return c > 3 && r && Object.defineProperty(target, key, r), r; --}; +@@= skipped -28, +28 lines =@@ + return c > 3 && r && Object.defineProperty(target, key, r), r; + }; export class C { - constructor() { - this.p = 1; @@ -20,22 +13,15 @@ } -C.s = 0; export { C as C2 }; --let D = class D { + let D = class D { - constructor() { - this.p = 1; - } -+@foo -+export class D { + static s = 0; + p = 1; method() { } --}; + }; -D.s = 0; --D = __decorate([ -- foo --], D); --export { D }; -+} - export { D as D2 }; - class E { - } \ No newline at end of file + D = __decorate([ + foo + ], D); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/esnextmodulekindWithES5Target11.js b/testdata/baselines/reference/submodule/conformance/esnextmodulekindWithES5Target11.js index 75afe8b807..4c6cba6c07 100644 --- a/testdata/baselines/reference/submodule/conformance/esnextmodulekindWithES5Target11.js +++ b/testdata/baselines/reference/submodule/conformance/esnextmodulekindWithES5Target11.js @@ -11,10 +11,20 @@ export default class C { } //// [esnextmodulekindWithES5Target11.js] -@foo -export default class C { - static x() { return C.y; } +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var C_1; +let C = C_1 = class C { + static x() { return C_1.y; } static y = 1; p = 1; method() { } -} +}; +C = C_1 = __decorate([ + foo +], C); +export default C; diff --git a/testdata/baselines/reference/submodule/conformance/esnextmodulekindWithES5Target11.js.diff b/testdata/baselines/reference/submodule/conformance/esnextmodulekindWithES5Target11.js.diff index 5aefda0a72..1efe4409b2 100644 --- a/testdata/baselines/reference/submodule/conformance/esnextmodulekindWithES5Target11.js.diff +++ b/testdata/baselines/reference/submodule/conformance/esnextmodulekindWithES5Target11.js.diff @@ -1,31 +1,18 @@ --- old.esnextmodulekindWithES5Target11.js +++ new.esnextmodulekindWithES5Target11.js -@@= skipped -10, +10 lines =@@ - } - - //// [esnextmodulekindWithES5Target11.js] --var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { -- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; -- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); -- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; -- return c > 3 && r && Object.defineProperty(target, key, r), r; --}; --var C_1; --let C = C_1 = class C { +@@= skipped -18, +18 lines =@@ + }; + var C_1; + let C = C_1 = class C { - constructor() { - this.p = 1; - } -- static x() { return C_1.y; } -+@foo -+export default class C { -+ static x() { return C.y; } + static x() { return C_1.y; } + static y = 1; + p = 1; method() { } --}; + }; -C.y = 1; --C = C_1 = __decorate([ -- foo --], C); --export default C; -+} \ No newline at end of file + C = C_1 = __decorate([ + foo + ], C); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/esnextmodulekindWithES5Target3.js b/testdata/baselines/reference/submodule/conformance/esnextmodulekindWithES5Target3.js index d401c6c7ca..f92b42f627 100644 --- a/testdata/baselines/reference/submodule/conformance/esnextmodulekindWithES5Target3.js +++ b/testdata/baselines/reference/submodule/conformance/esnextmodulekindWithES5Target3.js @@ -10,9 +10,18 @@ export default class D { } //// [esnextmodulekindWithES5Target3.js] -@foo -export default class D { +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +let D = class D { static s = 0; p = 1; method() { } -} +}; +D = __decorate([ + foo +], D); +export default D; diff --git a/testdata/baselines/reference/submodule/conformance/esnextmodulekindWithES5Target3.js.diff b/testdata/baselines/reference/submodule/conformance/esnextmodulekindWithES5Target3.js.diff index cd02568cd6..6698b4d823 100644 --- a/testdata/baselines/reference/submodule/conformance/esnextmodulekindWithES5Target3.js.diff +++ b/testdata/baselines/reference/submodule/conformance/esnextmodulekindWithES5Target3.js.diff @@ -1,28 +1,17 @@ --- old.esnextmodulekindWithES5Target3.js +++ new.esnextmodulekindWithES5Target3.js -@@= skipped -9, +9 lines =@@ - } - - //// [esnextmodulekindWithES5Target3.js] --var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { -- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; -- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); -- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; -- return c > 3 && r && Object.defineProperty(target, key, r), r; --}; --let D = class D { +@@= skipped -16, +16 lines =@@ + return c > 3 && r && Object.defineProperty(target, key, r), r; + }; + let D = class D { - constructor() { - this.p = 1; - } -+@foo -+export default class D { + static s = 0; + p = 1; method() { } --}; + }; -D.s = 0; --D = __decorate([ -- foo --], D); --export default D; -+} \ No newline at end of file + D = __decorate([ + foo + ], D); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/generatorTypeCheck39.js b/testdata/baselines/reference/submodule/conformance/generatorTypeCheck39.js index 0c3b240cc1..98436c99ef 100644 --- a/testdata/baselines/reference/submodule/conformance/generatorTypeCheck39.js +++ b/testdata/baselines/reference/submodule/conformance/generatorTypeCheck39.js @@ -12,12 +12,20 @@ function* g() { } //// [generatorTypeCheck39.js] +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; function decorator(x) { return y => { }; } function* g() { - @decorator(yield 0) - class C { + let C = class C { x = yield 0; - } + }; + C = __decorate([ + decorator(yield 0) + ], C); } diff --git a/testdata/baselines/reference/submodule/conformance/generatorTypeCheck39.js.diff b/testdata/baselines/reference/submodule/conformance/generatorTypeCheck39.js.diff index 9c233498c3..839269b4a5 100644 --- a/testdata/baselines/reference/submodule/conformance/generatorTypeCheck39.js.diff +++ b/testdata/baselines/reference/submodule/conformance/generatorTypeCheck39.js.diff @@ -1,29 +1,13 @@ --- old.generatorTypeCheck39.js +++ new.generatorTypeCheck39.js -@@= skipped -11, +11 lines =@@ - } - - //// [generatorTypeCheck39.js] --var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { -- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; -- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); -- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; -- return c > 3 && r && Object.defineProperty(target, key, r), r; --}; - function decorator(x) { - return y => { }; +@@= skipped -22, +22 lines =@@ } function* g() { -- let C = class C { + let C = class C { - constructor() { - this.x = yield 0; - } -- }; -- C = __decorate([ -- decorator(yield 0) -- ], C); -+ @decorator(yield 0) -+ class C { + x = yield 0; -+ } - } \ No newline at end of file + }; + C = __decorate([ + decorator(yield 0) \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/generatorTypeCheck59.js b/testdata/baselines/reference/submodule/conformance/generatorTypeCheck59.js index 6b6fa4cb57..e93345f62a 100644 --- a/testdata/baselines/reference/submodule/conformance/generatorTypeCheck59.js +++ b/testdata/baselines/reference/submodule/conformance/generatorTypeCheck59.js @@ -9,10 +9,18 @@ function* g() { } //// [generatorTypeCheck59.js] +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; function* g() { class C { - @(yield "") m() { } } + __decorate([ + (yield "") + ], C.prototype, "m", null); ; } diff --git a/testdata/baselines/reference/submodule/conformance/generatorTypeCheck59.js.diff b/testdata/baselines/reference/submodule/conformance/generatorTypeCheck59.js.diff deleted file mode 100644 index 1b719d6d62..0000000000 --- a/testdata/baselines/reference/submodule/conformance/generatorTypeCheck59.js.diff +++ /dev/null @@ -1,22 +0,0 @@ ---- old.generatorTypeCheck59.js -+++ new.generatorTypeCheck59.js -@@= skipped -8, +8 lines =@@ - } - - //// [generatorTypeCheck59.js] --var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { -- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; -- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); -- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; -- return c > 3 && r && Object.defineProperty(target, key, r), r; --}; - function* g() { - class C { -+ @(yield "") - m() { } - } -- __decorate([ -- (yield "") -- ], C.prototype, "m", null); - ; - } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/generatorTypeCheck61.js b/testdata/baselines/reference/submodule/conformance/generatorTypeCheck61.js index bfa4a57d64..698777d67b 100644 --- a/testdata/baselines/reference/submodule/conformance/generatorTypeCheck61.js +++ b/testdata/baselines/reference/submodule/conformance/generatorTypeCheck61.js @@ -7,9 +7,17 @@ function * g() { } //// [generatorTypeCheck61.js] +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; function* g() { - @(yield 0) - class C { - } + let C = class C { + }; + C = __decorate([ + (yield 0) + ], C); ; } diff --git a/testdata/baselines/reference/submodule/conformance/generatorTypeCheck61.js.diff b/testdata/baselines/reference/submodule/conformance/generatorTypeCheck61.js.diff deleted file mode 100644 index cd76dda926..0000000000 --- a/testdata/baselines/reference/submodule/conformance/generatorTypeCheck61.js.diff +++ /dev/null @@ -1,23 +0,0 @@ ---- old.generatorTypeCheck61.js -+++ new.generatorTypeCheck61.js -@@= skipped -6, +6 lines =@@ - } - - //// [generatorTypeCheck61.js] --var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { -- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; -- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); -- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; -- return c > 3 && r && Object.defineProperty(target, key, r), r; --}; - function* g() { -- let C = class C { -- }; -- C = __decorate([ -- (yield 0) -- ], C); -+ @(yield 0) -+ class C { -+ } - ; - } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/legacyDecorators-contextualTypes.js b/testdata/baselines/reference/submodule/conformance/legacyDecorators-contextualTypes.js index 130c52cb0c..da2bf590cf 100644 --- a/testdata/baselines/reference/submodule/conformance/legacyDecorators-contextualTypes.js +++ b/testdata/baselines/reference/submodule/conformance/legacyDecorators-contextualTypes.js @@ -36,27 +36,61 @@ class C { } //// [legacyDecorators-contextualTypes.js] -@((t) => { }) -class C { +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +let C = class C { constructor(p) { } - @((t, k, d) => { }) static f() { } - @((t, k, d) => { }) static get x() { return 1; } static set x(value) { } - @((t, k, d) => { }) static accessor y = 1; - @((t, k) => { }) static z = 1; - @((t, k, d) => { }) g() { } - @((t, k, d) => { }) get a() { return 1; } set a(value) { } - @((t, k, d) => { }) accessor b = 1; - @((t, k) => { }) c = 1; static h(p) { } h(p) { } -} +}; +__decorate([ + ((t, k, d) => { }) +], C.prototype, "g", null); +__decorate([ + ((t, k, d) => { }) +], C.prototype, "a", null); +__decorate([ + ((t, k, d) => { }) +], C.prototype, "b", null); +__decorate([ + ((t, k) => { }) +], C.prototype, "c", void 0); +__decorate([ + __param(0, ((t, k, i) => { })) +], C.prototype, "h", null); +__decorate([ + ((t, k, d) => { }) +], C, "f", null); +__decorate([ + ((t, k, d) => { }) +], C, "x", null); +__decorate([ + ((t, k, d) => { }) +], C, "y", null); +__decorate([ + ((t, k) => { }) +], C, "z", void 0); +__decorate([ + __param(0, ((t, k, i) => { })) +], C, "h", null); +C = __decorate([ + ((t) => { }), + __param(0, ((t, k, i) => { })) +], C); diff --git a/testdata/baselines/reference/submodule/conformance/legacyDecorators-contextualTypes.js.diff b/testdata/baselines/reference/submodule/conformance/legacyDecorators-contextualTypes.js.diff deleted file mode 100644 index 62e9f510d1..0000000000 --- a/testdata/baselines/reference/submodule/conformance/legacyDecorators-contextualTypes.js.diff +++ /dev/null @@ -1,75 +0,0 @@ ---- old.legacyDecorators-contextualTypes.js -+++ new.legacyDecorators-contextualTypes.js -@@= skipped -35, +35 lines =@@ - } - - //// [legacyDecorators-contextualTypes.js] --var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { -- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; -- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); -- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; -- return c > 3 && r && Object.defineProperty(target, key, r), r; --}; --var __param = (this && this.__param) || function (paramIndex, decorator) { -- return function (target, key) { decorator(target, key, paramIndex); } --}; --let C = class C { -+@((t) => { }) -+class C { - constructor(p) { } -+ @((t, k, d) => { }) - static f() { } -+ @((t, k, d) => { }) - static get x() { return 1; } - static set x(value) { } -+ @((t, k, d) => { }) - static accessor y = 1; -+ @((t, k) => { }) - static z = 1; -+ @((t, k, d) => { }) - g() { } -+ @((t, k, d) => { }) - get a() { return 1; } - set a(value) { } -+ @((t, k, d) => { }) - accessor b = 1; -+ @((t, k) => { }) - c = 1; - static h(p) { } - h(p) { } --}; --__decorate([ -- ((t, k, d) => { }) --], C.prototype, "g", null); --__decorate([ -- ((t, k, d) => { }) --], C.prototype, "a", null); --__decorate([ -- ((t, k, d) => { }) --], C.prototype, "b", null); --__decorate([ -- ((t, k) => { }) --], C.prototype, "c", void 0); --__decorate([ -- __param(0, ((t, k, i) => { })) --], C.prototype, "h", null); --__decorate([ -- ((t, k, d) => { }) --], C, "f", null); --__decorate([ -- ((t, k, d) => { }) --], C, "x", null); --__decorate([ -- ((t, k, d) => { }) --], C, "y", null); --__decorate([ -- ((t, k) => { }) --], C, "z", void 0); --__decorate([ -- __param(0, ((t, k, i) => { })) --], C, "h", null); --C = __decorate([ -- ((t) => { }), -- __param(0, ((t, k, i) => { })) --], C); -+} \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/missingDecoratorType.js b/testdata/baselines/reference/submodule/conformance/missingDecoratorType.js index b223aa9fc6..4987fdd545 100644 --- a/testdata/baselines/reference/submodule/conformance/missingDecoratorType.js +++ b/testdata/baselines/reference/submodule/conformance/missingDecoratorType.js @@ -22,7 +22,15 @@ class C { //// [a.js] //// [b.js] +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; class C { - @dec method() { } } +__decorate([ + dec +], C.prototype, "method", null); diff --git a/testdata/baselines/reference/submodule/conformance/missingDecoratorType.js.diff b/testdata/baselines/reference/submodule/conformance/missingDecoratorType.js.diff deleted file mode 100644 index ecf9fcc939..0000000000 --- a/testdata/baselines/reference/submodule/conformance/missingDecoratorType.js.diff +++ /dev/null @@ -1,19 +0,0 @@ ---- old.missingDecoratorType.js -+++ new.missingDecoratorType.js -@@= skipped -21, +21 lines =@@ - - //// [a.js] - //// [b.js] --var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { -- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; -- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); -- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; -- return c > 3 && r && Object.defineProperty(target, key, r), r; --}; - class C { -+ @dec - method() { } - } --__decorate([ -- dec --], C.prototype, "method", null); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/privateNamesAndDecorators.js b/testdata/baselines/reference/submodule/conformance/privateNamesAndDecorators.js index a4b71d5457..dceff5b2a3 100644 --- a/testdata/baselines/reference/submodule/conformance/privateNamesAndDecorators.js +++ b/testdata/baselines/reference/submodule/conformance/privateNamesAndDecorators.js @@ -13,8 +13,6 @@ class A { //// [privateNamesAndDecorators.js] class A { - @dec // Error #foo = 1; - @dec // Error #bar() { } } diff --git a/testdata/baselines/reference/submodule/conformance/privateNamesAndDecorators.js.diff b/testdata/baselines/reference/submodule/conformance/privateNamesAndDecorators.js.diff index 28d66e630a..3832bb4488 100644 --- a/testdata/baselines/reference/submodule/conformance/privateNamesAndDecorators.js.diff +++ b/testdata/baselines/reference/submodule/conformance/privateNamesAndDecorators.js.diff @@ -10,9 +10,7 @@ - _A_instances.add(this); - _A_foo.set(this, 1); - } -+ @dec // Error + #foo = 1; -+ @dec // Error + #bar() { } } -_A_foo = new WeakMap(), _A_instances = new WeakSet(), _A_bar = function _A_bar() { }; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/readonlyArraysAndTuples2.js b/testdata/baselines/reference/submodule/conformance/readonlyArraysAndTuples2.js index a5139717db..6ed2515795 100644 --- a/testdata/baselines/reference/submodule/conformance/readonlyArraysAndTuples2.js +++ b/testdata/baselines/reference/submodule/conformance/readonlyArraysAndTuples2.js @@ -23,12 +23,27 @@ class A { //// [readonlyArraysAndTuples2.js] "use strict"; +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; class A { - @someDec j = []; - @someDec k = ['foo', 42]; } +__decorate([ + someDec, + __metadata("design:type", Array) +], A.prototype, "j", void 0); +__decorate([ + someDec, + __metadata("design:type", Array) +], A.prototype, "k", void 0); //// [readonlyArraysAndTuples2.d.ts] diff --git a/testdata/baselines/reference/submodule/conformance/readonlyArraysAndTuples2.js.diff b/testdata/baselines/reference/submodule/conformance/readonlyArraysAndTuples2.js.diff index e8df89c12c..7a1fa756fc 100644 --- a/testdata/baselines/reference/submodule/conformance/readonlyArraysAndTuples2.js.diff +++ b/testdata/baselines/reference/submodule/conformance/readonlyArraysAndTuples2.js.diff @@ -1,36 +1,15 @@ --- old.readonlyArraysAndTuples2.js +++ new.readonlyArraysAndTuples2.js -@@= skipped -22, +22 lines =@@ - - //// [readonlyArraysAndTuples2.js] - "use strict"; --var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { -- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; -- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); -- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; -- return c > 3 && r && Object.defineProperty(target, key, r), r; --}; --var __metadata = (this && this.__metadata) || function (k, v) { -- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); --}; +@@= skipped -32, +32 lines =@@ + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); + }; class A { - constructor() { - this.j = []; - this.k = ['foo', 42]; - } -+ @someDec + j = []; -+ @someDec + k = ['foo', 42]; } --__decorate([ -- someDec, -- __metadata("design:type", Array) --], A.prototype, "j", void 0); --__decorate([ -- someDec, -- __metadata("design:type", Array) --], A.prototype, "k", void 0); - - - //// [readonlyArraysAndTuples2.d.ts] \ No newline at end of file + __decorate([ + someDec, \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/topLevelAwait.1(module=es2022,target=es2015).js b/testdata/baselines/reference/submodule/conformance/topLevelAwait.1(module=es2022,target=es2015).js index 7aaa60ffa4..1a43f1e2c9 100644 --- a/testdata/baselines/reference/submodule/conformance/topLevelAwait.1(module=es2022,target=es2015).js +++ b/testdata/baselines/reference/submodule/conformance/topLevelAwait.1(module=es2022,target=es2015).js @@ -125,9 +125,11 @@ class C3 { }); // property access name should be ok C1.prototype.await; -@(await dec) -class C { -} +let C = class C { +}; +C = __decorate([ + (await dec) +], C); // newlines // await in throw throw await 1; diff --git a/testdata/baselines/reference/submodule/conformance/topLevelAwait.1(module=es2022,target=es2015).js.diff b/testdata/baselines/reference/submodule/conformance/topLevelAwait.1(module=es2022,target=es2015).js.diff index 1fed3ce380..b702134947 100644 --- a/testdata/baselines/reference/submodule/conformance/topLevelAwait.1(module=es2022,target=es2015).js.diff +++ b/testdata/baselines/reference/submodule/conformance/topLevelAwait.1(module=es2022,target=es2015).js.diff @@ -39,19 +39,4 @@ + await = 1; } ({ - await() { } -@@= skipped -16, +14 lines =@@ - }); - // property access name should be ok - C1.prototype.await; --let C = class C { --}; --C = __decorate([ -- (await dec) --], C); -+@(await dec) -+class C { -+} - // newlines - // await in throw - throw await 1; \ No newline at end of file + await() { } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/topLevelAwait.1(module=es2022,target=es2017).js b/testdata/baselines/reference/submodule/conformance/topLevelAwait.1(module=es2022,target=es2017).js index 7aaa60ffa4..1a43f1e2c9 100644 --- a/testdata/baselines/reference/submodule/conformance/topLevelAwait.1(module=es2022,target=es2017).js +++ b/testdata/baselines/reference/submodule/conformance/topLevelAwait.1(module=es2022,target=es2017).js @@ -125,9 +125,11 @@ class C3 { }); // property access name should be ok C1.prototype.await; -@(await dec) -class C { -} +let C = class C { +}; +C = __decorate([ + (await dec) +], C); // newlines // await in throw throw await 1; diff --git a/testdata/baselines/reference/submodule/conformance/topLevelAwait.1(module=es2022,target=es2017).js.diff b/testdata/baselines/reference/submodule/conformance/topLevelAwait.1(module=es2022,target=es2017).js.diff index b014ac391a..bf5390f0b8 100644 --- a/testdata/baselines/reference/submodule/conformance/topLevelAwait.1(module=es2022,target=es2017).js.diff +++ b/testdata/baselines/reference/submodule/conformance/topLevelAwait.1(module=es2022,target=es2017).js.diff @@ -39,19 +39,4 @@ + await = 1; } ({ - await() { } -@@= skipped -16, +14 lines =@@ - }); - // property access name should be ok - C1.prototype.await; --let C = class C { --}; --C = __decorate([ -- (await dec) --], C); -+@(await dec) -+class C { -+} - // newlines - // await in throw - throw await 1; \ No newline at end of file + await() { } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/topLevelAwait.1(module=esnext,target=es2015).js b/testdata/baselines/reference/submodule/conformance/topLevelAwait.1(module=esnext,target=es2015).js index 7aaa60ffa4..1a43f1e2c9 100644 --- a/testdata/baselines/reference/submodule/conformance/topLevelAwait.1(module=esnext,target=es2015).js +++ b/testdata/baselines/reference/submodule/conformance/topLevelAwait.1(module=esnext,target=es2015).js @@ -125,9 +125,11 @@ class C3 { }); // property access name should be ok C1.prototype.await; -@(await dec) -class C { -} +let C = class C { +}; +C = __decorate([ + (await dec) +], C); // newlines // await in throw throw await 1; diff --git a/testdata/baselines/reference/submodule/conformance/topLevelAwait.1(module=esnext,target=es2015).js.diff b/testdata/baselines/reference/submodule/conformance/topLevelAwait.1(module=esnext,target=es2015).js.diff index 0ba477f2d9..01cca05f16 100644 --- a/testdata/baselines/reference/submodule/conformance/topLevelAwait.1(module=esnext,target=es2015).js.diff +++ b/testdata/baselines/reference/submodule/conformance/topLevelAwait.1(module=esnext,target=es2015).js.diff @@ -39,19 +39,4 @@ + await = 1; } ({ - await() { } -@@= skipped -16, +14 lines =@@ - }); - // property access name should be ok - C1.prototype.await; --let C = class C { --}; --C = __decorate([ -- (await dec) --], C); -+@(await dec) -+class C { -+} - // newlines - // await in throw - throw await 1; \ No newline at end of file + await() { } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/topLevelAwait.1(module=esnext,target=es2017).js b/testdata/baselines/reference/submodule/conformance/topLevelAwait.1(module=esnext,target=es2017).js index 7aaa60ffa4..1a43f1e2c9 100644 --- a/testdata/baselines/reference/submodule/conformance/topLevelAwait.1(module=esnext,target=es2017).js +++ b/testdata/baselines/reference/submodule/conformance/topLevelAwait.1(module=esnext,target=es2017).js @@ -125,9 +125,11 @@ class C3 { }); // property access name should be ok C1.prototype.await; -@(await dec) -class C { -} +let C = class C { +}; +C = __decorate([ + (await dec) +], C); // newlines // await in throw throw await 1; diff --git a/testdata/baselines/reference/submodule/conformance/topLevelAwait.1(module=esnext,target=es2017).js.diff b/testdata/baselines/reference/submodule/conformance/topLevelAwait.1(module=esnext,target=es2017).js.diff index d4761c7342..363d6bf1d8 100644 --- a/testdata/baselines/reference/submodule/conformance/topLevelAwait.1(module=esnext,target=es2017).js.diff +++ b/testdata/baselines/reference/submodule/conformance/topLevelAwait.1(module=esnext,target=es2017).js.diff @@ -39,19 +39,4 @@ + await = 1; } ({ - await() { } -@@= skipped -16, +14 lines =@@ - }); - // property access name should be ok - C1.prototype.await; --let C = class C { --}; --C = __decorate([ -- (await dec) --], C); -+@(await dec) -+class C { -+} - // newlines - // await in throw - throw await 1; \ No newline at end of file + await() { } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/topLevelAwaitErrors.1(module=es2022).js b/testdata/baselines/reference/submodule/conformance/topLevelAwaitErrors.1(module=es2022).js index 273599cdb7..2a6246e49f 100644 --- a/testdata/baselines/reference/submodule/conformance/topLevelAwaitErrors.1(module=es2022).js +++ b/testdata/baselines/reference/submodule/conformance/topLevelAwaitErrors.1(module=es2022).js @@ -56,32 +56,51 @@ await , string > ``; class C extends string { } // await in class decorators should fail -@(await ) -class C1 { -} -@(x) -class C2 { -} -@ -class C3 { -} +let C1 = class C1 { +}; +C1 = __decorate([ + (await ) +], C1); +let C2 = class C2 { +}; +C2 = __decorate([ + (x) +], C2); +let C3 = class C3 { +}; +C3 = __decorate([ +], C3); // await in member decorators should fail class C4 { - @ ["foo"]() { } } +__decorate([ +], C4.prototype, "foo", null); class C5 { - @(1) ["foo"]() { } } +__decorate([ + (1) +], C5.prototype, "foo", null); class C6 { - @(await ) ["foo"]() { } } +__decorate([ + (await ) +], C6.prototype, "foo", null); // await in parameter decorators should fail class C7 { method1([x]) { } method2([x]) { } method3([x]) { } } +__decorate([ + __param(0, ) +], C7.prototype, "method1", null); +__decorate([ + __param(0, (1)) +], C7.prototype, "method2", null); +__decorate([ + __param(0, (await )) +], C7.prototype, "method3", null); export {}; diff --git a/testdata/baselines/reference/submodule/conformance/topLevelAwaitErrors.1(module=es2022).js.diff b/testdata/baselines/reference/submodule/conformance/topLevelAwaitErrors.1(module=es2022).js.diff deleted file mode 100644 index e46b4c20f4..0000000000 --- a/testdata/baselines/reference/submodule/conformance/topLevelAwaitErrors.1(module=es2022).js.diff +++ /dev/null @@ -1,66 +0,0 @@ ---- old.topLevelAwaitErrors.1(module=es2022).js -+++ new.topLevelAwaitErrors.1(module=es2022).js -@@= skipped -55, +55 lines =@@ - class C extends string { - } - // await in class decorators should fail --let C1 = class C1 { --}; --C1 = __decorate([ -- (await ) --], C1); --let C2 = class C2 { --}; --C2 = __decorate([ -- (x) --], C2); --let C3 = class C3 { --}; --C3 = __decorate([ --], C3); -+@(await ) -+class C1 { -+} -+@(x) -+class C2 { -+} -+@ -+class C3 { -+} - // await in member decorators should fail - class C4 { -+ @ - ["foo"]() { } - } --__decorate([ --], C4.prototype, "foo", null); - class C5 { -+ @(1) - ["foo"]() { } - } --__decorate([ -- (1) --], C5.prototype, "foo", null); - class C6 { -+ @(await ) - ["foo"]() { } - } --__decorate([ -- (await ) --], C6.prototype, "foo", null); - // await in parameter decorators should fail - class C7 { - method1([x]) { } - method2([x]) { } - method3([x]) { } - } --__decorate([ -- __param(0, ) --], C7.prototype, "method1", null); --__decorate([ -- __param(0, (1)) --], C7.prototype, "method2", null); --__decorate([ -- __param(0, (await )) --], C7.prototype, "method3", null); - export {}; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/topLevelAwaitErrors.1(module=esnext).js b/testdata/baselines/reference/submodule/conformance/topLevelAwaitErrors.1(module=esnext).js index 273599cdb7..2a6246e49f 100644 --- a/testdata/baselines/reference/submodule/conformance/topLevelAwaitErrors.1(module=esnext).js +++ b/testdata/baselines/reference/submodule/conformance/topLevelAwaitErrors.1(module=esnext).js @@ -56,32 +56,51 @@ await , string > ``; class C extends string { } // await in class decorators should fail -@(await ) -class C1 { -} -@(x) -class C2 { -} -@ -class C3 { -} +let C1 = class C1 { +}; +C1 = __decorate([ + (await ) +], C1); +let C2 = class C2 { +}; +C2 = __decorate([ + (x) +], C2); +let C3 = class C3 { +}; +C3 = __decorate([ +], C3); // await in member decorators should fail class C4 { - @ ["foo"]() { } } +__decorate([ +], C4.prototype, "foo", null); class C5 { - @(1) ["foo"]() { } } +__decorate([ + (1) +], C5.prototype, "foo", null); class C6 { - @(await ) ["foo"]() { } } +__decorate([ + (await ) +], C6.prototype, "foo", null); // await in parameter decorators should fail class C7 { method1([x]) { } method2([x]) { } method3([x]) { } } +__decorate([ + __param(0, ) +], C7.prototype, "method1", null); +__decorate([ + __param(0, (1)) +], C7.prototype, "method2", null); +__decorate([ + __param(0, (await )) +], C7.prototype, "method3", null); export {}; diff --git a/testdata/baselines/reference/submodule/conformance/topLevelAwaitErrors.1(module=esnext).js.diff b/testdata/baselines/reference/submodule/conformance/topLevelAwaitErrors.1(module=esnext).js.diff deleted file mode 100644 index 5c46f921c4..0000000000 --- a/testdata/baselines/reference/submodule/conformance/topLevelAwaitErrors.1(module=esnext).js.diff +++ /dev/null @@ -1,66 +0,0 @@ ---- old.topLevelAwaitErrors.1(module=esnext).js -+++ new.topLevelAwaitErrors.1(module=esnext).js -@@= skipped -55, +55 lines =@@ - class C extends string { - } - // await in class decorators should fail --let C1 = class C1 { --}; --C1 = __decorate([ -- (await ) --], C1); --let C2 = class C2 { --}; --C2 = __decorate([ -- (x) --], C2); --let C3 = class C3 { --}; --C3 = __decorate([ --], C3); -+@(await ) -+class C1 { -+} -+@(x) -+class C2 { -+} -+@ -+class C3 { -+} - // await in member decorators should fail - class C4 { -+ @ - ["foo"]() { } - } --__decorate([ --], C4.prototype, "foo", null); - class C5 { -+ @(1) - ["foo"]() { } - } --__decorate([ -- (1) --], C5.prototype, "foo", null); - class C6 { -+ @(await ) - ["foo"]() { } - } --__decorate([ -- (await ) --], C6.prototype, "foo", null); - // await in parameter decorators should fail - class C7 { - method1([x]) { } - method2([x]) { } - method3([x]) { } - } --__decorate([ -- __param(0, ) --], C7.prototype, "method1", null); --__decorate([ -- __param(0, (1)) --], C7.prototype, "method2", null); --__decorate([ -- __param(0, (await )) --], C7.prototype, "method3", null); - export {}; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/typeOfThisInStaticMembers10(target=es2022).js b/testdata/baselines/reference/submodule/conformance/typeOfThisInStaticMembers10(target=es2022).js index 1f15663b35..4f21680193 100644 --- a/testdata/baselines/reference/submodule/conformance/typeOfThisInStaticMembers10(target=es2022).js +++ b/testdata/baselines/reference/submodule/conformance/typeOfThisInStaticMembers10(target=es2022).js @@ -51,13 +51,20 @@ class DD extends CC { //// [typeOfThisInStaticMembers10.js] -@foo -class C { +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +let C = class C { static a = 1; static b = this.a + 1; -} -@foo -class D extends C { +}; +C = __decorate([ + foo +], C); +let D = class D extends C { static c = 2; static d = this.c + 1; static e = super.a + this.c + 1; @@ -72,7 +79,10 @@ class D extends C { static set fa(v) { this.c = v + 1; } -} +}; +D = __decorate([ + foo +], D); class CC { static a = 1; static b = this.a + 1; diff --git a/testdata/baselines/reference/submodule/conformance/typeOfThisInStaticMembers10(target=es2022).js.diff b/testdata/baselines/reference/submodule/conformance/typeOfThisInStaticMembers10(target=es2022).js.diff index 7ebc8824ad..a532ef5671 100644 --- a/testdata/baselines/reference/submodule/conformance/typeOfThisInStaticMembers10(target=es2022).js.diff +++ b/testdata/baselines/reference/submodule/conformance/typeOfThisInStaticMembers10(target=es2022).js.diff @@ -1,35 +1,23 @@ --- old.typeOfThisInStaticMembers10(target=es2022).js +++ new.typeOfThisInStaticMembers10(target=es2022).js -@@= skipped -50, +50 lines =@@ - - - //// [typeOfThisInStaticMembers10.js] --var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { -- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; -- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); -- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; -- return c > 3 && r && Object.defineProperty(target, key, r), r; --}; --let C = class C { +@@= skipped -57, +57 lines =@@ + return c > 3 && r && Object.defineProperty(target, key, r), r; + }; + let C = class C { - static { this.a = 1; } - static { this.b = this.a + 1; } --}; --C = __decorate([ -- foo --], C); --let D = class D extends C { ++ static a = 1; ++ static b = this.a + 1; + }; + C = __decorate([ + foo + ], C); + let D = class D extends C { - static { this.c = 2; } - static { this.d = this.c + 1; } - static { this.e = super.a + this.c + 1; } - static { this.f = () => this.c + 1; } - static { this.ff = function () { this.c + 1; }; } -+@foo -+class C { -+ static a = 1; -+ static b = this.a + 1; -+} -+@foo -+class D extends C { + static c = 2; + static d = this.c + 1; + static e = super.a + this.c + 1; @@ -38,15 +26,9 @@ static foo() { return this.c + 1; } -@@= skipped -28, +21 lines =@@ - static set fa(v) { - this.c = v + 1; - } --}; --D = __decorate([ -- foo --], D); -+} +@@= skipped -26, +26 lines =@@ + foo + ], D); class CC { - static { this.a = 1; } - static { this.b = this.a + 1; } diff --git a/testdata/baselines/reference/submodule/conformance/typeOfThisInStaticMembers10(target=es5).js b/testdata/baselines/reference/submodule/conformance/typeOfThisInStaticMembers10(target=es5).js index 1f15663b35..4f21680193 100644 --- a/testdata/baselines/reference/submodule/conformance/typeOfThisInStaticMembers10(target=es5).js +++ b/testdata/baselines/reference/submodule/conformance/typeOfThisInStaticMembers10(target=es5).js @@ -51,13 +51,20 @@ class DD extends CC { //// [typeOfThisInStaticMembers10.js] -@foo -class C { +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +let C = class C { static a = 1; static b = this.a + 1; -} -@foo -class D extends C { +}; +C = __decorate([ + foo +], C); +let D = class D extends C { static c = 2; static d = this.c + 1; static e = super.a + this.c + 1; @@ -72,7 +79,10 @@ class D extends C { static set fa(v) { this.c = v + 1; } -} +}; +D = __decorate([ + foo +], D); class CC { static a = 1; static b = this.a + 1; diff --git a/testdata/baselines/reference/submodule/conformance/typeOfThisInStaticMembers10(target=es5).js.diff b/testdata/baselines/reference/submodule/conformance/typeOfThisInStaticMembers10(target=es5).js.diff index e7b5e10b62..df9a5fa5ee 100644 --- a/testdata/baselines/reference/submodule/conformance/typeOfThisInStaticMembers10(target=es5).js.diff +++ b/testdata/baselines/reference/submodule/conformance/typeOfThisInStaticMembers10(target=es5).js.diff @@ -1,31 +1,20 @@ --- old.typeOfThisInStaticMembers10(target=es5).js +++ new.typeOfThisInStaticMembers10(target=es5).js -@@= skipped -50, +50 lines =@@ - - - //// [typeOfThisInStaticMembers10.js] --var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { -- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; -- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); -- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; -- return c > 3 && r && Object.defineProperty(target, key, r), r; --}; +@@= skipped -56, +56 lines =@@ + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; + }; -var _a, _b, _c; --let C = class C { --}; --C.a = 1; --C.b = (void 0).a + 1; --C = __decorate([ -- foo --], C); --let D = class D extends C { -+@foo -+class C { + let C = class C { + static a = 1; + static b = this.a + 1; -+} -+@foo -+class D extends C { + }; +-C.a = 1; +-C.b = (void 0).a + 1; + C = __decorate([ + foo + ], C); + let D = class D extends C { + static c = 2; + static d = this.c + 1; + static e = super.a + this.c + 1; @@ -34,20 +23,18 @@ static foo() { return this.c + 1; } -@@= skipped -24, +21 lines =@@ - static set fa(v) { +@@= skipped -19, +23 lines =@@ this.c = v + 1; } --}; + }; -D.c = 2; -D.d = (void 0).c + 1; -D.e = (void 0).a + (void 0).c + 1; -D.f = () => (void 0).c + 1; -D.ff = function () { this.c + 1; }; --D = __decorate([ -- foo --], D); -+} + D = __decorate([ + foo + ], D); class CC { + static a = 1; + static b = this.a + 1; @@ -65,7 +52,7 @@ static foo() { return this.c + 1; } -@@= skipped -25, +21 lines =@@ +@@= skipped -24, +23 lines =@@ this.c = v + 1; } } diff --git a/testdata/baselines/reference/submodule/conformance/typeOfThisInStaticMembers10(target=es6).js b/testdata/baselines/reference/submodule/conformance/typeOfThisInStaticMembers10(target=es6).js index 1f15663b35..4f21680193 100644 --- a/testdata/baselines/reference/submodule/conformance/typeOfThisInStaticMembers10(target=es6).js +++ b/testdata/baselines/reference/submodule/conformance/typeOfThisInStaticMembers10(target=es6).js @@ -51,13 +51,20 @@ class DD extends CC { //// [typeOfThisInStaticMembers10.js] -@foo -class C { +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +let C = class C { static a = 1; static b = this.a + 1; -} -@foo -class D extends C { +}; +C = __decorate([ + foo +], C); +let D = class D extends C { static c = 2; static d = this.c + 1; static e = super.a + this.c + 1; @@ -72,7 +79,10 @@ class D extends C { static set fa(v) { this.c = v + 1; } -} +}; +D = __decorate([ + foo +], D); class CC { static a = 1; static b = this.a + 1; diff --git a/testdata/baselines/reference/submodule/conformance/typeOfThisInStaticMembers10(target=es6).js.diff b/testdata/baselines/reference/submodule/conformance/typeOfThisInStaticMembers10(target=es6).js.diff index 869f31bfd7..7a5777a08b 100644 --- a/testdata/baselines/reference/submodule/conformance/typeOfThisInStaticMembers10(target=es6).js.diff +++ b/testdata/baselines/reference/submodule/conformance/typeOfThisInStaticMembers10(target=es6).js.diff @@ -1,31 +1,20 @@ --- old.typeOfThisInStaticMembers10(target=es6).js +++ new.typeOfThisInStaticMembers10(target=es6).js -@@= skipped -50, +50 lines =@@ - - - //// [typeOfThisInStaticMembers10.js] --var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { -- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; -- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); -- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; -- return c > 3 && r && Object.defineProperty(target, key, r), r; --}; +@@= skipped -56, +56 lines =@@ + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; + }; -var _a, _b, _c; --let C = class C { --}; --C.a = 1; --C.b = (void 0).a + 1; --C = __decorate([ -- foo --], C); --let D = class D extends C { -+@foo -+class C { + let C = class C { + static a = 1; + static b = this.a + 1; -+} -+@foo -+class D extends C { + }; +-C.a = 1; +-C.b = (void 0).a + 1; + C = __decorate([ + foo + ], C); + let D = class D extends C { + static c = 2; + static d = this.c + 1; + static e = super.a + this.c + 1; @@ -34,20 +23,18 @@ static foo() { return this.c + 1; } -@@= skipped -24, +21 lines =@@ - static set fa(v) { +@@= skipped -19, +23 lines =@@ this.c = v + 1; } --}; + }; -D.c = 2; -D.d = (void 0).c + 1; -D.e = (void 0).a + (void 0).c + 1; -D.f = () => (void 0).c + 1; -D.ff = function () { this.c + 1; }; --D = __decorate([ -- foo --], D); -+} + D = __decorate([ + foo + ], D); class CC { + static a = 1; + static b = this.a + 1; @@ -65,7 +52,7 @@ static foo() { return this.c + 1; } -@@= skipped -25, +21 lines =@@ +@@= skipped -24, +23 lines =@@ this.c = v + 1; } } diff --git a/testdata/baselines/reference/submodule/conformance/typeOfThisInStaticMembers10(target=esnext).js b/testdata/baselines/reference/submodule/conformance/typeOfThisInStaticMembers10(target=esnext).js index 1f15663b35..4f21680193 100644 --- a/testdata/baselines/reference/submodule/conformance/typeOfThisInStaticMembers10(target=esnext).js +++ b/testdata/baselines/reference/submodule/conformance/typeOfThisInStaticMembers10(target=esnext).js @@ -51,13 +51,20 @@ class DD extends CC { //// [typeOfThisInStaticMembers10.js] -@foo -class C { +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +let C = class C { static a = 1; static b = this.a + 1; -} -@foo -class D extends C { +}; +C = __decorate([ + foo +], C); +let D = class D extends C { static c = 2; static d = this.c + 1; static e = super.a + this.c + 1; @@ -72,7 +79,10 @@ class D extends C { static set fa(v) { this.c = v + 1; } -} +}; +D = __decorate([ + foo +], D); class CC { static a = 1; static b = this.a + 1; diff --git a/testdata/baselines/reference/submodule/conformance/typeOfThisInStaticMembers10(target=esnext).js.diff b/testdata/baselines/reference/submodule/conformance/typeOfThisInStaticMembers10(target=esnext).js.diff index b12ed70e39..0c37e1b91a 100644 --- a/testdata/baselines/reference/submodule/conformance/typeOfThisInStaticMembers10(target=esnext).js.diff +++ b/testdata/baselines/reference/submodule/conformance/typeOfThisInStaticMembers10(target=esnext).js.diff @@ -1,35 +1,23 @@ --- old.typeOfThisInStaticMembers10(target=esnext).js +++ new.typeOfThisInStaticMembers10(target=esnext).js -@@= skipped -50, +50 lines =@@ - - - //// [typeOfThisInStaticMembers10.js] --var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { -- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; -- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); -- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; -- return c > 3 && r && Object.defineProperty(target, key, r), r; --}; --let C = class C { +@@= skipped -57, +57 lines =@@ + return c > 3 && r && Object.defineProperty(target, key, r), r; + }; + let C = class C { - static { this.a = 1; } - static { this.b = this.a + 1; } --}; --C = __decorate([ -- foo --], C); --let D = class D extends C { ++ static a = 1; ++ static b = this.a + 1; + }; + C = __decorate([ + foo + ], C); + let D = class D extends C { - static { this.c = 2; } - static { this.d = this.c + 1; } - static { this.e = super.a + this.c + 1; } - static { this.f = () => this.c + 1; } - static { this.ff = function () { this.c + 1; }; } -+@foo -+class C { -+ static a = 1; -+ static b = this.a + 1; -+} -+@foo -+class D extends C { + static c = 2; + static d = this.c + 1; + static e = super.a + this.c + 1; @@ -38,15 +26,9 @@ static foo() { return this.c + 1; } -@@= skipped -28, +21 lines =@@ - static set fa(v) { - this.c = v + 1; - } --}; --D = __decorate([ -- foo --], D); -+} +@@= skipped -26, +26 lines =@@ + foo + ], D); class CC { - static { this.a = 1; } - static { this.b = this.a + 1; } diff --git a/testdata/baselines/reference/submodule/conformance/typeOfThisInStaticMembers11(target=es2022).js b/testdata/baselines/reference/submodule/conformance/typeOfThisInStaticMembers11(target=es2022).js index a8e4e56bec..01f750311b 100644 --- a/testdata/baselines/reference/submodule/conformance/typeOfThisInStaticMembers11(target=es2022).js +++ b/testdata/baselines/reference/submodule/conformance/typeOfThisInStaticMembers11(target=es2022).js @@ -51,13 +51,20 @@ class DD extends CC { //// [typeOfThisInStaticMembers11.js] -@foo -class C { +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +let C = class C { static a = 1; static b = this.a + 1; -} -@foo -class D extends C { +}; +C = __decorate([ + foo +], C); +let D = class D extends C { static c = 2; static d = this.c + 1; static e = super.a + this.c + 1; @@ -72,7 +79,10 @@ class D extends C { static set fa(v) { this.c = v + 1; } -} +}; +D = __decorate([ + foo +], D); class CC { static a = 1; static b = this.a + 1; diff --git a/testdata/baselines/reference/submodule/conformance/typeOfThisInStaticMembers11(target=es2022).js.diff b/testdata/baselines/reference/submodule/conformance/typeOfThisInStaticMembers11(target=es2022).js.diff deleted file mode 100644 index 7f52e8fbe9..0000000000 --- a/testdata/baselines/reference/submodule/conformance/typeOfThisInStaticMembers11(target=es2022).js.diff +++ /dev/null @@ -1,40 +0,0 @@ ---- old.typeOfThisInStaticMembers11(target=es2022).js -+++ new.typeOfThisInStaticMembers11(target=es2022).js -@@= skipped -50, +50 lines =@@ - - - //// [typeOfThisInStaticMembers11.js] --var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { -- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; -- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); -- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; -- return c > 3 && r && Object.defineProperty(target, key, r), r; --}; --let C = class C { -+@foo -+class C { - static a = 1; - static b = this.a + 1; --}; --C = __decorate([ -- foo --], C); --let D = class D extends C { -+} -+@foo -+class D extends C { - static c = 2; - static d = this.c + 1; - static e = super.a + this.c + 1; -@@= skipped -28, +21 lines =@@ - static set fa(v) { - this.c = v + 1; - } --}; --D = __decorate([ -- foo --], D); -+} - class CC { - static a = 1; - static b = this.a + 1; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/typeOfThisInStaticMembers11(target=es5).js b/testdata/baselines/reference/submodule/conformance/typeOfThisInStaticMembers11(target=es5).js index a8e4e56bec..01f750311b 100644 --- a/testdata/baselines/reference/submodule/conformance/typeOfThisInStaticMembers11(target=es5).js +++ b/testdata/baselines/reference/submodule/conformance/typeOfThisInStaticMembers11(target=es5).js @@ -51,13 +51,20 @@ class DD extends CC { //// [typeOfThisInStaticMembers11.js] -@foo -class C { +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +let C = class C { static a = 1; static b = this.a + 1; -} -@foo -class D extends C { +}; +C = __decorate([ + foo +], C); +let D = class D extends C { static c = 2; static d = this.c + 1; static e = super.a + this.c + 1; @@ -72,7 +79,10 @@ class D extends C { static set fa(v) { this.c = v + 1; } -} +}; +D = __decorate([ + foo +], D); class CC { static a = 1; static b = this.a + 1; diff --git a/testdata/baselines/reference/submodule/conformance/typeOfThisInStaticMembers11(target=es5).js.diff b/testdata/baselines/reference/submodule/conformance/typeOfThisInStaticMembers11(target=es5).js.diff index 65d40cb698..c1e806f494 100644 --- a/testdata/baselines/reference/submodule/conformance/typeOfThisInStaticMembers11(target=es5).js.diff +++ b/testdata/baselines/reference/submodule/conformance/typeOfThisInStaticMembers11(target=es5).js.diff @@ -1,18 +1,14 @@ --- old.typeOfThisInStaticMembers11(target=es5).js +++ new.typeOfThisInStaticMembers11(target=es5).js -@@= skipped -50, +50 lines =@@ - - - //// [typeOfThisInStaticMembers11.js] --var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { -- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; -- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); -- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; -- return c > 3 && r && Object.defineProperty(target, key, r), r; --}; +@@= skipped -56, +56 lines =@@ + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; + }; -var _a, _b, _c; --let C = class C { --}; + let C = class C { ++ static a = 1; ++ static b = this.a + 1; + }; -Object.defineProperty(C, "a", { - enumerable: true, - configurable: true, @@ -25,17 +21,10 @@ - writable: true, - value: (void 0).a + 1 -}); --C = __decorate([ -- foo --], C); --let D = class D extends C { -+@foo -+class C { -+ static a = 1; -+ static b = this.a + 1; -+} -+@foo -+class D extends C { + C = __decorate([ + foo + ], C); + let D = class D extends C { + static c = 2; + static d = this.c + 1; + static e = super.a + this.c + 1; @@ -44,11 +33,10 @@ static foo() { return this.c + 1; } -@@= skipped -34, +21 lines =@@ - static set fa(v) { +@@= skipped -29, +23 lines =@@ this.c = v + 1; } --}; + }; -Object.defineProperty(D, "c", { - enumerable: true, - configurable: true, @@ -79,10 +67,9 @@ - writable: true, - value: function () { this.c + 1; } -}); --D = __decorate([ -- foo --], D); -+} + D = __decorate([ + foo + ], D); class CC { + static a = 1; + static b = this.a + 1; @@ -110,7 +97,7 @@ static foo() { return this.c + 1; } -@@= skipped -60, +21 lines =@@ +@@= skipped -59, +23 lines =@@ this.c = v + 1; } } diff --git a/testdata/baselines/reference/submodule/conformance/typeOfThisInStaticMembers11(target=es6).js b/testdata/baselines/reference/submodule/conformance/typeOfThisInStaticMembers11(target=es6).js index a8e4e56bec..01f750311b 100644 --- a/testdata/baselines/reference/submodule/conformance/typeOfThisInStaticMembers11(target=es6).js +++ b/testdata/baselines/reference/submodule/conformance/typeOfThisInStaticMembers11(target=es6).js @@ -51,13 +51,20 @@ class DD extends CC { //// [typeOfThisInStaticMembers11.js] -@foo -class C { +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +let C = class C { static a = 1; static b = this.a + 1; -} -@foo -class D extends C { +}; +C = __decorate([ + foo +], C); +let D = class D extends C { static c = 2; static d = this.c + 1; static e = super.a + this.c + 1; @@ -72,7 +79,10 @@ class D extends C { static set fa(v) { this.c = v + 1; } -} +}; +D = __decorate([ + foo +], D); class CC { static a = 1; static b = this.a + 1; diff --git a/testdata/baselines/reference/submodule/conformance/typeOfThisInStaticMembers11(target=es6).js.diff b/testdata/baselines/reference/submodule/conformance/typeOfThisInStaticMembers11(target=es6).js.diff index 70050e12b3..3250da096e 100644 --- a/testdata/baselines/reference/submodule/conformance/typeOfThisInStaticMembers11(target=es6).js.diff +++ b/testdata/baselines/reference/submodule/conformance/typeOfThisInStaticMembers11(target=es6).js.diff @@ -1,18 +1,14 @@ --- old.typeOfThisInStaticMembers11(target=es6).js +++ new.typeOfThisInStaticMembers11(target=es6).js -@@= skipped -50, +50 lines =@@ - - - //// [typeOfThisInStaticMembers11.js] --var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { -- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; -- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); -- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; -- return c > 3 && r && Object.defineProperty(target, key, r), r; --}; +@@= skipped -56, +56 lines =@@ + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; + }; -var _a, _b, _c; --let C = class C { --}; + let C = class C { ++ static a = 1; ++ static b = this.a + 1; + }; -Object.defineProperty(C, "a", { - enumerable: true, - configurable: true, @@ -25,17 +21,10 @@ - writable: true, - value: (void 0).a + 1 -}); --C = __decorate([ -- foo --], C); --let D = class D extends C { -+@foo -+class C { -+ static a = 1; -+ static b = this.a + 1; -+} -+@foo -+class D extends C { + C = __decorate([ + foo + ], C); + let D = class D extends C { + static c = 2; + static d = this.c + 1; + static e = super.a + this.c + 1; @@ -44,11 +33,10 @@ static foo() { return this.c + 1; } -@@= skipped -34, +21 lines =@@ - static set fa(v) { +@@= skipped -29, +23 lines =@@ this.c = v + 1; } --}; + }; -Object.defineProperty(D, "c", { - enumerable: true, - configurable: true, @@ -79,10 +67,9 @@ - writable: true, - value: function () { this.c + 1; } -}); --D = __decorate([ -- foo --], D); -+} + D = __decorate([ + foo + ], D); class CC { + static a = 1; + static b = this.a + 1; @@ -110,7 +97,7 @@ static foo() { return this.c + 1; } -@@= skipped -60, +21 lines =@@ +@@= skipped -59, +23 lines =@@ this.c = v + 1; } } diff --git a/testdata/baselines/reference/submodule/conformance/typeOfThisInStaticMembers11(target=esnext).js b/testdata/baselines/reference/submodule/conformance/typeOfThisInStaticMembers11(target=esnext).js index a8e4e56bec..01f750311b 100644 --- a/testdata/baselines/reference/submodule/conformance/typeOfThisInStaticMembers11(target=esnext).js +++ b/testdata/baselines/reference/submodule/conformance/typeOfThisInStaticMembers11(target=esnext).js @@ -51,13 +51,20 @@ class DD extends CC { //// [typeOfThisInStaticMembers11.js] -@foo -class C { +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +let C = class C { static a = 1; static b = this.a + 1; -} -@foo -class D extends C { +}; +C = __decorate([ + foo +], C); +let D = class D extends C { static c = 2; static d = this.c + 1; static e = super.a + this.c + 1; @@ -72,7 +79,10 @@ class D extends C { static set fa(v) { this.c = v + 1; } -} +}; +D = __decorate([ + foo +], D); class CC { static a = 1; static b = this.a + 1; diff --git a/testdata/baselines/reference/submodule/conformance/typeOfThisInStaticMembers11(target=esnext).js.diff b/testdata/baselines/reference/submodule/conformance/typeOfThisInStaticMembers11(target=esnext).js.diff deleted file mode 100644 index 920aa75eb5..0000000000 --- a/testdata/baselines/reference/submodule/conformance/typeOfThisInStaticMembers11(target=esnext).js.diff +++ /dev/null @@ -1,40 +0,0 @@ ---- old.typeOfThisInStaticMembers11(target=esnext).js -+++ new.typeOfThisInStaticMembers11(target=esnext).js -@@= skipped -50, +50 lines =@@ - - - //// [typeOfThisInStaticMembers11.js] --var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { -- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; -- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); -- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; -- return c > 3 && r && Object.defineProperty(target, key, r), r; --}; --let C = class C { -+@foo -+class C { - static a = 1; - static b = this.a + 1; --}; --C = __decorate([ -- foo --], C); --let D = class D extends C { -+} -+@foo -+class D extends C { - static c = 2; - static d = this.c + 1; - static e = super.a + this.c + 1; -@@= skipped -28, +21 lines =@@ - static set fa(v) { - this.c = v + 1; - } --}; --D = __decorate([ -- foo --], D); -+} - class CC { - static a = 1; - static b = this.a + 1; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.1(module=commonjs,target=es2015).js b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.1(module=commonjs,target=es2015).js index 653fcc8445..0faebf2527 100644 --- a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.1(module=commonjs,target=es2015).js +++ b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.1(module=commonjs,target=es2015).js @@ -19,10 +19,11 @@ Object.defineProperty(exports, "__esModule", { value: true }); const env_1 = { stack: [], error: void 0, hasError: false }; try { before = __addDisposableResource(env_1, null, false); - C = - @dec - class C { + C = class C { }; + C = __decorate([ + dec + ], C); } catch (e_1) { env_1.error = e_1; diff --git a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.1(module=commonjs,target=es2015).js.diff b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.1(module=commonjs,target=es2015).js.diff index 37334453fc..39673b7ecd 100644 --- a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.1(module=commonjs,target=es2015).js.diff +++ b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.1(module=commonjs,target=es2015).js.diff @@ -9,15 +9,4 @@ +Object.defineProperty(exports, "__esModule", { value: true }); const env_1 = { stack: [], error: void 0, hasError: false }; try { - before = __addDisposableResource(env_1, null, false); -- C = class C { -+ C = -+ @dec -+ class C { - }; -- C = __decorate([ -- dec -- ], C); - } - catch (e_1) { - env_1.error = e_1; \ No newline at end of file + before = __addDisposableResource(env_1, null, false); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.1(module=commonjs,target=es5).js b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.1(module=commonjs,target=es5).js index 653fcc8445..0faebf2527 100644 --- a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.1(module=commonjs,target=es5).js +++ b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.1(module=commonjs,target=es5).js @@ -19,10 +19,11 @@ Object.defineProperty(exports, "__esModule", { value: true }); const env_1 = { stack: [], error: void 0, hasError: false }; try { before = __addDisposableResource(env_1, null, false); - C = - @dec - class C { + C = class C { }; + C = __decorate([ + dec + ], C); } catch (e_1) { env_1.error = e_1; diff --git a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.1(module=commonjs,target=es5).js.diff b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.1(module=commonjs,target=es5).js.diff index 734a7e5a3d..f924b4a867 100644 --- a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.1(module=commonjs,target=es5).js.diff +++ b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.1(module=commonjs,target=es5).js.diff @@ -9,15 +9,4 @@ +Object.defineProperty(exports, "__esModule", { value: true }); const env_1 = { stack: [], error: void 0, hasError: false }; try { - before = __addDisposableResource(env_1, null, false); -- C = class C { -+ C = -+ @dec -+ class C { - }; -- C = __decorate([ -- dec -- ], C); - } - catch (e_1) { - env_1.error = e_1; \ No newline at end of file + before = __addDisposableResource(env_1, null, false); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.1(module=commonjs,target=esnext).js b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.1(module=commonjs,target=esnext).js index 858abc28ed..1d134f939c 100644 --- a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.1(module=commonjs,target=esnext).js +++ b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.1(module=commonjs,target=esnext).js @@ -16,6 +16,8 @@ class C { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); using before = null; -@dec -class C { -} +let C = class C { +}; +C = __decorate([ + dec +], C); diff --git a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.1(module=commonjs,target=esnext).js.diff b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.1(module=commonjs,target=esnext).js.diff deleted file mode 100644 index 94a22fc937..0000000000 --- a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.1(module=commonjs,target=esnext).js.diff +++ /dev/null @@ -1,14 +0,0 @@ ---- old.usingDeclarationsWithLegacyClassDecorators.1(module=commonjs,target=esnext).js -+++ new.usingDeclarationsWithLegacyClassDecorators.1(module=commonjs,target=esnext).js -@@= skipped -15, +15 lines =@@ - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - using before = null; --let C = class C { --}; --C = __decorate([ -- dec --], C); -+@dec -+class C { -+} \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.1(module=esnext,target=es2015).js b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.1(module=esnext,target=es2015).js index 09655c2eb7..b0cfcf2065 100644 --- a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.1(module=esnext,target=es2015).js +++ b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.1(module=esnext,target=es2015).js @@ -17,10 +17,11 @@ var before, C; const env_1 = { stack: [], error: void 0, hasError: false }; try { before = __addDisposableResource(env_1, null, false); - C = - @dec - class C { + C = class C { }; + C = __decorate([ + dec + ], C); } catch (e_1) { env_1.error = e_1; diff --git a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.1(module=esnext,target=es2015).js.diff b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.1(module=esnext,target=es2015).js.diff deleted file mode 100644 index 0d4d60f270..0000000000 --- a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.1(module=esnext,target=es2015).js.diff +++ /dev/null @@ -1,17 +0,0 @@ ---- old.usingDeclarationsWithLegacyClassDecorators.1(module=esnext,target=es2015).js -+++ new.usingDeclarationsWithLegacyClassDecorators.1(module=esnext,target=es2015).js -@@= skipped -16, +16 lines =@@ - const env_1 = { stack: [], error: void 0, hasError: false }; - try { - before = __addDisposableResource(env_1, null, false); -- C = class C { -+ C = -+ @dec -+ class C { - }; -- C = __decorate([ -- dec -- ], C); - } - catch (e_1) { - env_1.error = e_1; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.1(module=esnext,target=es5).js b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.1(module=esnext,target=es5).js index 09655c2eb7..b0cfcf2065 100644 --- a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.1(module=esnext,target=es5).js +++ b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.1(module=esnext,target=es5).js @@ -17,10 +17,11 @@ var before, C; const env_1 = { stack: [], error: void 0, hasError: false }; try { before = __addDisposableResource(env_1, null, false); - C = - @dec - class C { + C = class C { }; + C = __decorate([ + dec + ], C); } catch (e_1) { env_1.error = e_1; diff --git a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.1(module=esnext,target=es5).js.diff b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.1(module=esnext,target=es5).js.diff deleted file mode 100644 index f3d0a1e53b..0000000000 --- a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.1(module=esnext,target=es5).js.diff +++ /dev/null @@ -1,17 +0,0 @@ ---- old.usingDeclarationsWithLegacyClassDecorators.1(module=esnext,target=es5).js -+++ new.usingDeclarationsWithLegacyClassDecorators.1(module=esnext,target=es5).js -@@= skipped -16, +16 lines =@@ - const env_1 = { stack: [], error: void 0, hasError: false }; - try { - before = __addDisposableResource(env_1, null, false); -- C = class C { -+ C = -+ @dec -+ class C { - }; -- C = __decorate([ -- dec -- ], C); - } - catch (e_1) { - env_1.error = e_1; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.1(module=esnext,target=esnext).js b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.1(module=esnext,target=esnext).js index 7497a93dfd..bcd661c593 100644 --- a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.1(module=esnext,target=esnext).js +++ b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.1(module=esnext,target=esnext).js @@ -14,7 +14,9 @@ class C { //// [usingDeclarationsWithLegacyClassDecorators.1.js] using before = null; -@dec -class C { -} +let C = class C { +}; +C = __decorate([ + dec +], C); export {}; diff --git a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.1(module=esnext,target=esnext).js.diff b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.1(module=esnext,target=esnext).js.diff deleted file mode 100644 index 8b2e32a0bc..0000000000 --- a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.1(module=esnext,target=esnext).js.diff +++ /dev/null @@ -1,15 +0,0 @@ ---- old.usingDeclarationsWithLegacyClassDecorators.1(module=esnext,target=esnext).js -+++ new.usingDeclarationsWithLegacyClassDecorators.1(module=esnext,target=esnext).js -@@= skipped -13, +13 lines =@@ - - //// [usingDeclarationsWithLegacyClassDecorators.1.js] - using before = null; --let C = class C { --}; --C = __decorate([ -- dec --], C); -+@dec -+class C { -+} - export {}; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.10(module=commonjs,target=es2015).js b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.10(module=commonjs,target=es2015).js index 824ec7a6dd..e4d86bb61b 100644 --- a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.10(module=commonjs,target=es2015).js +++ b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.10(module=commonjs,target=es2015).js @@ -16,9 +16,11 @@ using after = null; "use strict"; var after; Object.defineProperty(exports, "__esModule", { value: true }); -@dec -class default_1 { -} +let default_1 = class { +}; +default_1 = __decorate([ + dec +], default_1); exports.default = default_1; const env_1 = { stack: [], error: void 0, hasError: false }; try { diff --git a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.10(module=commonjs,target=es2015).js.diff b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.10(module=commonjs,target=es2015).js.diff index c7bd66a56b..bf126d22a8 100644 --- a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.10(module=commonjs,target=es2015).js.diff +++ b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.10(module=commonjs,target=es2015).js.diff @@ -6,14 +6,11 @@ "use strict"; +var after; Object.defineProperty(exports, "__esModule", { value: true }); --let default_1 = class { --}; --default_1 = __decorate([ -- dec --], default_1); -+@dec -+class default_1 { -+} + let default_1 = class { + }; +@@= skipped -7, +8 lines =@@ + dec + ], default_1); exports.default = default_1; -var after; const env_1 = { stack: [], error: void 0, hasError: false }; diff --git a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.10(module=commonjs,target=es5).js b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.10(module=commonjs,target=es5).js index 824ec7a6dd..e4d86bb61b 100644 --- a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.10(module=commonjs,target=es5).js +++ b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.10(module=commonjs,target=es5).js @@ -16,9 +16,11 @@ using after = null; "use strict"; var after; Object.defineProperty(exports, "__esModule", { value: true }); -@dec -class default_1 { -} +let default_1 = class { +}; +default_1 = __decorate([ + dec +], default_1); exports.default = default_1; const env_1 = { stack: [], error: void 0, hasError: false }; try { diff --git a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.10(module=commonjs,target=es5).js.diff b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.10(module=commonjs,target=es5).js.diff index 27300ce7bf..ab483b0e5e 100644 --- a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.10(module=commonjs,target=es5).js.diff +++ b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.10(module=commonjs,target=es5).js.diff @@ -6,14 +6,11 @@ "use strict"; +var after; Object.defineProperty(exports, "__esModule", { value: true }); --let default_1 = class { --}; --default_1 = __decorate([ -- dec --], default_1); -+@dec -+class default_1 { -+} + let default_1 = class { + }; +@@= skipped -7, +8 lines =@@ + dec + ], default_1); exports.default = default_1; -var after; const env_1 = { stack: [], error: void 0, hasError: false }; diff --git a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.10(module=commonjs,target=esnext).js b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.10(module=commonjs,target=esnext).js index 96581e42c5..1300e8055a 100644 --- a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.10(module=commonjs,target=esnext).js +++ b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.10(module=commonjs,target=esnext).js @@ -15,8 +15,10 @@ using after = null; //// [usingDeclarationsWithLegacyClassDecorators.10.js] "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -@dec -class default_1 { -} +let default_1 = class { +}; +default_1 = __decorate([ + dec +], default_1); exports.default = default_1; using after = null; diff --git a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.10(module=commonjs,target=esnext).js.diff b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.10(module=commonjs,target=esnext).js.diff deleted file mode 100644 index 615151aea2..0000000000 --- a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.10(module=commonjs,target=esnext).js.diff +++ /dev/null @@ -1,16 +0,0 @@ ---- old.usingDeclarationsWithLegacyClassDecorators.10(module=commonjs,target=esnext).js -+++ new.usingDeclarationsWithLegacyClassDecorators.10(module=commonjs,target=esnext).js -@@= skipped -14, +14 lines =@@ - //// [usingDeclarationsWithLegacyClassDecorators.10.js] - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); --let default_1 = class { --}; --default_1 = __decorate([ -- dec --], default_1); -+@dec -+class default_1 { -+} - exports.default = default_1; - using after = null; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.10(module=esnext,target=es2015).js b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.10(module=esnext,target=es2015).js index 6d0f3cb161..ceeaae8ddc 100644 --- a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.10(module=esnext,target=es2015).js +++ b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.10(module=esnext,target=es2015).js @@ -14,9 +14,12 @@ using after = null; //// [usingDeclarationsWithLegacyClassDecorators.10.js] var after; -@dec -export default class { -} +let default_1 = class { +}; +default_1 = __decorate([ + dec +], default_1); +export default default_1; const env_1 = { stack: [], error: void 0, hasError: false }; try { after = __addDisposableResource(env_1, null, false); diff --git a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.10(module=esnext,target=es2015).js.diff b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.10(module=esnext,target=es2015).js.diff index 1fd91a4012..b018c19cc0 100644 --- a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.10(module=esnext,target=es2015).js.diff +++ b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.10(module=esnext,target=es2015).js.diff @@ -4,16 +4,14 @@ //// [usingDeclarationsWithLegacyClassDecorators.10.js] --let default_1 = class { --}; --default_1 = __decorate([ -- dec --], default_1); --export default default_1; - var after; -+@dec -+export default class { -+} ++var after; + let default_1 = class { + }; + default_1 = __decorate([ + dec + ], default_1); + export default default_1; +-var after; const env_1 = { stack: [], error: void 0, hasError: false }; try { after = __addDisposableResource(env_1, null, false); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.10(module=esnext,target=es5).js b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.10(module=esnext,target=es5).js index 6d0f3cb161..ceeaae8ddc 100644 --- a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.10(module=esnext,target=es5).js +++ b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.10(module=esnext,target=es5).js @@ -14,9 +14,12 @@ using after = null; //// [usingDeclarationsWithLegacyClassDecorators.10.js] var after; -@dec -export default class { -} +let default_1 = class { +}; +default_1 = __decorate([ + dec +], default_1); +export default default_1; const env_1 = { stack: [], error: void 0, hasError: false }; try { after = __addDisposableResource(env_1, null, false); diff --git a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.10(module=esnext,target=es5).js.diff b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.10(module=esnext,target=es5).js.diff index 53c553dc88..63bc3cf74b 100644 --- a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.10(module=esnext,target=es5).js.diff +++ b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.10(module=esnext,target=es5).js.diff @@ -4,16 +4,14 @@ //// [usingDeclarationsWithLegacyClassDecorators.10.js] --let default_1 = class { --}; --default_1 = __decorate([ -- dec --], default_1); --export default default_1; - var after; -+@dec -+export default class { -+} ++var after; + let default_1 = class { + }; + default_1 = __decorate([ + dec + ], default_1); + export default default_1; +-var after; const env_1 = { stack: [], error: void 0, hasError: false }; try { after = __addDisposableResource(env_1, null, false); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.10(module=esnext,target=esnext).js b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.10(module=esnext,target=esnext).js index 786dcde980..50db75c3f7 100644 --- a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.10(module=esnext,target=esnext).js +++ b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.10(module=esnext,target=esnext).js @@ -13,7 +13,10 @@ using after = null; //// [usingDeclarationsWithLegacyClassDecorators.10.js] -@dec -export default class { -} +let default_1 = class { +}; +default_1 = __decorate([ + dec +], default_1); +export default default_1; using after = null; diff --git a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.10(module=esnext,target=esnext).js.diff b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.10(module=esnext,target=esnext).js.diff deleted file mode 100644 index a6e799f18c..0000000000 --- a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.10(module=esnext,target=esnext).js.diff +++ /dev/null @@ -1,16 +0,0 @@ ---- old.usingDeclarationsWithLegacyClassDecorators.10(module=esnext,target=esnext).js -+++ new.usingDeclarationsWithLegacyClassDecorators.10(module=esnext,target=esnext).js -@@= skipped -12, +12 lines =@@ - - - //// [usingDeclarationsWithLegacyClassDecorators.10.js] --let default_1 = class { --}; --default_1 = __decorate([ -- dec --], default_1); --export default default_1; -+@dec -+export default class { -+} - using after = null; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.11(module=commonjs,target=es2015).js b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.11(module=commonjs,target=es2015).js index d2c1f88c7e..40416e84a8 100644 --- a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.11(module=commonjs,target=es2015).js +++ b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.11(module=commonjs,target=es2015).js @@ -19,10 +19,12 @@ using after = null; var after; Object.defineProperty(exports, "__esModule", { value: true }); exports.C = void 0; -@dec -class C { -} +let C = class C { +}; exports.C = C; +exports.C = C = __decorate([ + dec +], C); const env_1 = { stack: [], error: void 0, hasError: false }; try { after = __addDisposableResource(env_1, null, false); diff --git a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.11(module=commonjs,target=es2015).js.diff b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.11(module=commonjs,target=es2015).js.diff index 6616fd26ae..c7eaccba6a 100644 --- a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.11(module=commonjs,target=es2015).js.diff +++ b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.11(module=commonjs,target=es2015).js.diff @@ -7,15 +7,11 @@ +var after; Object.defineProperty(exports, "__esModule", { value: true }); exports.C = void 0; --let C = class C { --}; -+@dec -+class C { -+} - exports.C = C; --exports.C = C = __decorate([ -- dec --], C); + let C = class C { +@@= skipped -8, +9 lines =@@ + exports.C = C = __decorate([ + dec + ], C); -var after; const env_1 = { stack: [], error: void 0, hasError: false }; try { diff --git a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.11(module=commonjs,target=es5).js b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.11(module=commonjs,target=es5).js index d2c1f88c7e..40416e84a8 100644 --- a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.11(module=commonjs,target=es5).js +++ b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.11(module=commonjs,target=es5).js @@ -19,10 +19,12 @@ using after = null; var after; Object.defineProperty(exports, "__esModule", { value: true }); exports.C = void 0; -@dec -class C { -} +let C = class C { +}; exports.C = C; +exports.C = C = __decorate([ + dec +], C); const env_1 = { stack: [], error: void 0, hasError: false }; try { after = __addDisposableResource(env_1, null, false); diff --git a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.11(module=commonjs,target=es5).js.diff b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.11(module=commonjs,target=es5).js.diff index 3af0369d08..1ae6730298 100644 --- a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.11(module=commonjs,target=es5).js.diff +++ b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.11(module=commonjs,target=es5).js.diff @@ -7,15 +7,11 @@ +var after; Object.defineProperty(exports, "__esModule", { value: true }); exports.C = void 0; --let C = class C { --}; -+@dec -+class C { -+} - exports.C = C; --exports.C = C = __decorate([ -- dec --], C); + let C = class C { +@@= skipped -8, +9 lines =@@ + exports.C = C = __decorate([ + dec + ], C); -var after; const env_1 = { stack: [], error: void 0, hasError: false }; try { diff --git a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.11(module=commonjs,target=esnext).js b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.11(module=commonjs,target=esnext).js index 1a4f67f136..b278c51655 100644 --- a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.11(module=commonjs,target=esnext).js +++ b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.11(module=commonjs,target=esnext).js @@ -18,8 +18,10 @@ using after = null; "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.C = void 0; -@dec -class C { -} +let C = class C { +}; exports.C = C; +exports.C = C = __decorate([ + dec +], C); using after = null; diff --git a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.11(module=commonjs,target=esnext).js.diff b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.11(module=commonjs,target=esnext).js.diff deleted file mode 100644 index 570a38cd33..0000000000 --- a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.11(module=commonjs,target=esnext).js.diff +++ /dev/null @@ -1,16 +0,0 @@ ---- old.usingDeclarationsWithLegacyClassDecorators.11(module=commonjs,target=esnext).js -+++ new.usingDeclarationsWithLegacyClassDecorators.11(module=commonjs,target=esnext).js -@@= skipped -17, +17 lines =@@ - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.C = void 0; --let C = class C { --}; -+@dec -+class C { -+} - exports.C = C; --exports.C = C = __decorate([ -- dec --], C); - using after = null; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.11(module=esnext,target=es2015).js b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.11(module=esnext,target=es2015).js index 245a60b8c9..0feac4721d 100644 --- a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.11(module=esnext,target=es2015).js +++ b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.11(module=esnext,target=es2015).js @@ -16,9 +16,11 @@ using after = null; //// [usingDeclarationsWithLegacyClassDecorators.11.js] var after; -@dec -class C { -} +let C = class C { +}; +C = __decorate([ + dec +], C); export { C }; const env_1 = { stack: [], error: void 0, hasError: false }; try { diff --git a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.11(module=esnext,target=es2015).js.diff b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.11(module=esnext,target=es2015).js.diff index 5f9a3d29cd..59587d287f 100644 --- a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.11(module=esnext,target=es2015).js.diff +++ b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.11(module=esnext,target=es2015).js.diff @@ -4,17 +4,14 @@ //// [usingDeclarationsWithLegacyClassDecorators.11.js] --let C = class C { --}; --C = __decorate([ -- dec --], C); --export { C }; - var after; -+@dec -+class C { -+} -+export { C }; ++var after; + let C = class C { + }; + C = __decorate([ + dec + ], C); + export { C }; +-var after; const env_1 = { stack: [], error: void 0, hasError: false }; try { after = __addDisposableResource(env_1, null, false); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.11(module=esnext,target=es5).js b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.11(module=esnext,target=es5).js index 245a60b8c9..0feac4721d 100644 --- a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.11(module=esnext,target=es5).js +++ b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.11(module=esnext,target=es5).js @@ -16,9 +16,11 @@ using after = null; //// [usingDeclarationsWithLegacyClassDecorators.11.js] var after; -@dec -class C { -} +let C = class C { +}; +C = __decorate([ + dec +], C); export { C }; const env_1 = { stack: [], error: void 0, hasError: false }; try { diff --git a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.11(module=esnext,target=es5).js.diff b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.11(module=esnext,target=es5).js.diff index dd68277d40..627985bc60 100644 --- a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.11(module=esnext,target=es5).js.diff +++ b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.11(module=esnext,target=es5).js.diff @@ -4,17 +4,14 @@ //// [usingDeclarationsWithLegacyClassDecorators.11.js] --let C = class C { --}; --C = __decorate([ -- dec --], C); --export { C }; - var after; -+@dec -+class C { -+} -+export { C }; ++var after; + let C = class C { + }; + C = __decorate([ + dec + ], C); + export { C }; +-var after; const env_1 = { stack: [], error: void 0, hasError: false }; try { after = __addDisposableResource(env_1, null, false); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.11(module=esnext,target=esnext).js b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.11(module=esnext,target=esnext).js index c9144664a0..9082a184d6 100644 --- a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.11(module=esnext,target=esnext).js +++ b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.11(module=esnext,target=esnext).js @@ -15,8 +15,10 @@ using after = null; //// [usingDeclarationsWithLegacyClassDecorators.11.js] -@dec -class C { -} +let C = class C { +}; +C = __decorate([ + dec +], C); export { C }; using after = null; diff --git a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.11(module=esnext,target=esnext).js.diff b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.11(module=esnext,target=esnext).js.diff deleted file mode 100644 index 5eb3444487..0000000000 --- a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.11(module=esnext,target=esnext).js.diff +++ /dev/null @@ -1,16 +0,0 @@ ---- old.usingDeclarationsWithLegacyClassDecorators.11(module=esnext,target=esnext).js -+++ new.usingDeclarationsWithLegacyClassDecorators.11(module=esnext,target=esnext).js -@@= skipped -14, +14 lines =@@ - - - //// [usingDeclarationsWithLegacyClassDecorators.11.js] --let C = class C { --}; --C = __decorate([ -- dec --], C); -+@dec -+class C { -+} - export { C }; - using after = null; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.12(module=commonjs,target=es2015).js b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.12(module=commonjs,target=es2015).js index 716cdbf983..93480e6722 100644 --- a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.12(module=commonjs,target=es2015).js +++ b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.12(module=commonjs,target=es2015).js @@ -19,10 +19,12 @@ using after = null; var after; Object.defineProperty(exports, "__esModule", { value: true }); exports.D = void 0; -@dec -class C { -} +let C = class C { +}; exports.D = C; +exports.D = C = __decorate([ + dec +], C); const env_1 = { stack: [], error: void 0, hasError: false }; try { after = __addDisposableResource(env_1, null, false); diff --git a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.12(module=commonjs,target=es2015).js.diff b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.12(module=commonjs,target=es2015).js.diff index 916279ffeb..1d6a751f20 100644 --- a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.12(module=commonjs,target=es2015).js.diff +++ b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.12(module=commonjs,target=es2015).js.diff @@ -7,15 +7,11 @@ +var after; Object.defineProperty(exports, "__esModule", { value: true }); exports.D = void 0; --let C = class C { --}; -+@dec -+class C { -+} - exports.D = C; --exports.D = C = __decorate([ -- dec --], C); + let C = class C { +@@= skipped -8, +9 lines =@@ + exports.D = C = __decorate([ + dec + ], C); -var after; const env_1 = { stack: [], error: void 0, hasError: false }; try { diff --git a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.12(module=commonjs,target=es5).js b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.12(module=commonjs,target=es5).js index 716cdbf983..93480e6722 100644 --- a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.12(module=commonjs,target=es5).js +++ b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.12(module=commonjs,target=es5).js @@ -19,10 +19,12 @@ using after = null; var after; Object.defineProperty(exports, "__esModule", { value: true }); exports.D = void 0; -@dec -class C { -} +let C = class C { +}; exports.D = C; +exports.D = C = __decorate([ + dec +], C); const env_1 = { stack: [], error: void 0, hasError: false }; try { after = __addDisposableResource(env_1, null, false); diff --git a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.12(module=commonjs,target=es5).js.diff b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.12(module=commonjs,target=es5).js.diff index 50462f57ad..9231c51cd6 100644 --- a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.12(module=commonjs,target=es5).js.diff +++ b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.12(module=commonjs,target=es5).js.diff @@ -7,15 +7,11 @@ +var after; Object.defineProperty(exports, "__esModule", { value: true }); exports.D = void 0; --let C = class C { --}; -+@dec -+class C { -+} - exports.D = C; --exports.D = C = __decorate([ -- dec --], C); + let C = class C { +@@= skipped -8, +9 lines =@@ + exports.D = C = __decorate([ + dec + ], C); -var after; const env_1 = { stack: [], error: void 0, hasError: false }; try { diff --git a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.12(module=commonjs,target=esnext).js b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.12(module=commonjs,target=esnext).js index da719db699..75dce8b79c 100644 --- a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.12(module=commonjs,target=esnext).js +++ b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.12(module=commonjs,target=esnext).js @@ -18,8 +18,10 @@ using after = null; "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.D = void 0; -@dec -class C { -} +let C = class C { +}; exports.D = C; +exports.D = C = __decorate([ + dec +], C); using after = null; diff --git a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.12(module=commonjs,target=esnext).js.diff b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.12(module=commonjs,target=esnext).js.diff deleted file mode 100644 index 252a3451f1..0000000000 --- a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.12(module=commonjs,target=esnext).js.diff +++ /dev/null @@ -1,16 +0,0 @@ ---- old.usingDeclarationsWithLegacyClassDecorators.12(module=commonjs,target=esnext).js -+++ new.usingDeclarationsWithLegacyClassDecorators.12(module=commonjs,target=esnext).js -@@= skipped -17, +17 lines =@@ - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.D = void 0; --let C = class C { --}; -+@dec -+class C { -+} - exports.D = C; --exports.D = C = __decorate([ -- dec --], C); - using after = null; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.12(module=esnext,target=es2015).js b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.12(module=esnext,target=es2015).js index 5f85f04286..8a22375223 100644 --- a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.12(module=esnext,target=es2015).js +++ b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.12(module=esnext,target=es2015).js @@ -16,9 +16,11 @@ using after = null; //// [usingDeclarationsWithLegacyClassDecorators.12.js] var after; -@dec -class C { -} +let C = class C { +}; +C = __decorate([ + dec +], C); export { C as D }; const env_1 = { stack: [], error: void 0, hasError: false }; try { diff --git a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.12(module=esnext,target=es2015).js.diff b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.12(module=esnext,target=es2015).js.diff index 95c1fb19ae..dec21dfc5c 100644 --- a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.12(module=esnext,target=es2015).js.diff +++ b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.12(module=esnext,target=es2015).js.diff @@ -4,17 +4,14 @@ //// [usingDeclarationsWithLegacyClassDecorators.12.js] --let C = class C { --}; --C = __decorate([ -- dec --], C); --export { C as D }; - var after; -+@dec -+class C { -+} -+export { C as D }; ++var after; + let C = class C { + }; + C = __decorate([ + dec + ], C); + export { C as D }; +-var after; const env_1 = { stack: [], error: void 0, hasError: false }; try { after = __addDisposableResource(env_1, null, false); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.12(module=esnext,target=es5).js b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.12(module=esnext,target=es5).js index 5f85f04286..8a22375223 100644 --- a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.12(module=esnext,target=es5).js +++ b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.12(module=esnext,target=es5).js @@ -16,9 +16,11 @@ using after = null; //// [usingDeclarationsWithLegacyClassDecorators.12.js] var after; -@dec -class C { -} +let C = class C { +}; +C = __decorate([ + dec +], C); export { C as D }; const env_1 = { stack: [], error: void 0, hasError: false }; try { diff --git a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.12(module=esnext,target=es5).js.diff b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.12(module=esnext,target=es5).js.diff index 0e6dbc01c0..973dac2523 100644 --- a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.12(module=esnext,target=es5).js.diff +++ b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.12(module=esnext,target=es5).js.diff @@ -4,17 +4,14 @@ //// [usingDeclarationsWithLegacyClassDecorators.12.js] --let C = class C { --}; --C = __decorate([ -- dec --], C); --export { C as D }; - var after; -+@dec -+class C { -+} -+export { C as D }; ++var after; + let C = class C { + }; + C = __decorate([ + dec + ], C); + export { C as D }; +-var after; const env_1 = { stack: [], error: void 0, hasError: false }; try { after = __addDisposableResource(env_1, null, false); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.12(module=esnext,target=esnext).js b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.12(module=esnext,target=esnext).js index edb56a5e6c..0cd3ea7c81 100644 --- a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.12(module=esnext,target=esnext).js +++ b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.12(module=esnext,target=esnext).js @@ -15,8 +15,10 @@ using after = null; //// [usingDeclarationsWithLegacyClassDecorators.12.js] -@dec -class C { -} +let C = class C { +}; +C = __decorate([ + dec +], C); export { C as D }; using after = null; diff --git a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.12(module=esnext,target=esnext).js.diff b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.12(module=esnext,target=esnext).js.diff deleted file mode 100644 index 685bf1d5ac..0000000000 --- a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.12(module=esnext,target=esnext).js.diff +++ /dev/null @@ -1,16 +0,0 @@ ---- old.usingDeclarationsWithLegacyClassDecorators.12(module=esnext,target=esnext).js -+++ new.usingDeclarationsWithLegacyClassDecorators.12(module=esnext,target=esnext).js -@@= skipped -14, +14 lines =@@ - - - //// [usingDeclarationsWithLegacyClassDecorators.12.js] --let C = class C { --}; --C = __decorate([ -- dec --], C); -+@dec -+class C { -+} - export { C as D }; - using after = null; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.2(module=commonjs,target=es2015).js b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.2(module=commonjs,target=es2015).js index 857e8de4cb..de306d25f0 100644 --- a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.2(module=commonjs,target=es2015).js +++ b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.2(module=commonjs,target=es2015).js @@ -20,10 +20,11 @@ exports.C = void 0; const env_1 = { stack: [], error: void 0, hasError: false }; try { before = __addDisposableResource(env_1, null, false); - exports.C = C = - @dec - class C { + exports.C = C = class C { }; + exports.C = C = __decorate([ + dec + ], C); } catch (e_1) { env_1.error = e_1; diff --git a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.2(module=commonjs,target=es2015).js.diff b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.2(module=commonjs,target=es2015).js.diff index 45357713ae..159c2aa46f 100644 --- a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.2(module=commonjs,target=es2015).js.diff +++ b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.2(module=commonjs,target=es2015).js.diff @@ -10,15 +10,4 @@ -var before, C; const env_1 = { stack: [], error: void 0, hasError: false }; try { - before = __addDisposableResource(env_1, null, false); -- exports.C = C = class C { -+ exports.C = C = -+ @dec -+ class C { - }; -- exports.C = C = __decorate([ -- dec -- ], C); - } - catch (e_1) { - env_1.error = e_1; \ No newline at end of file + before = __addDisposableResource(env_1, null, false); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.2(module=commonjs,target=es5).js b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.2(module=commonjs,target=es5).js index 857e8de4cb..de306d25f0 100644 --- a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.2(module=commonjs,target=es5).js +++ b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.2(module=commonjs,target=es5).js @@ -20,10 +20,11 @@ exports.C = void 0; const env_1 = { stack: [], error: void 0, hasError: false }; try { before = __addDisposableResource(env_1, null, false); - exports.C = C = - @dec - class C { + exports.C = C = class C { }; + exports.C = C = __decorate([ + dec + ], C); } catch (e_1) { env_1.error = e_1; diff --git a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.2(module=commonjs,target=es5).js.diff b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.2(module=commonjs,target=es5).js.diff index ff30816978..700e0d2e30 100644 --- a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.2(module=commonjs,target=es5).js.diff +++ b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.2(module=commonjs,target=es5).js.diff @@ -10,15 +10,4 @@ -var before, C; const env_1 = { stack: [], error: void 0, hasError: false }; try { - before = __addDisposableResource(env_1, null, false); -- exports.C = C = class C { -+ exports.C = C = -+ @dec -+ class C { - }; -- exports.C = C = __decorate([ -- dec -- ], C); - } - catch (e_1) { - env_1.error = e_1; \ No newline at end of file + before = __addDisposableResource(env_1, null, false); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.2(module=commonjs,target=esnext).js b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.2(module=commonjs,target=esnext).js index f3fa78df2f..f0cbe114e2 100644 --- a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.2(module=commonjs,target=esnext).js +++ b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.2(module=commonjs,target=esnext).js @@ -17,7 +17,9 @@ export class C { Object.defineProperty(exports, "__esModule", { value: true }); exports.C = void 0; using before = null; -@dec -class C { -} +let C = class C { +}; exports.C = C; +exports.C = C = __decorate([ + dec +], C); diff --git a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.2(module=commonjs,target=esnext).js.diff b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.2(module=commonjs,target=esnext).js.diff deleted file mode 100644 index d3b64cb939..0000000000 --- a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.2(module=commonjs,target=esnext).js.diff +++ /dev/null @@ -1,15 +0,0 @@ ---- old.usingDeclarationsWithLegacyClassDecorators.2(module=commonjs,target=esnext).js -+++ new.usingDeclarationsWithLegacyClassDecorators.2(module=commonjs,target=esnext).js -@@= skipped -16, +16 lines =@@ - Object.defineProperty(exports, "__esModule", { value: true }); - exports.C = void 0; - using before = null; --let C = class C { --}; -+@dec -+class C { -+} - exports.C = C; --exports.C = C = __decorate([ -- dec --], C); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.2(module=esnext,target=es2015).js b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.2(module=esnext,target=es2015).js index 8b0ad1f259..f2d7ff2b33 100644 --- a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.2(module=esnext,target=es2015).js +++ b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.2(module=esnext,target=es2015).js @@ -18,10 +18,11 @@ export { C }; const env_1 = { stack: [], error: void 0, hasError: false }; try { before = __addDisposableResource(env_1, null, false); - C = - @dec - class C { + C = class C { }; + C = __decorate([ + dec + ], C); } catch (e_1) { env_1.error = e_1; diff --git a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.2(module=esnext,target=es2015).js.diff b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.2(module=esnext,target=es2015).js.diff index 8cd5c8e72d..b71b69ad43 100644 --- a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.2(module=esnext,target=es2015).js.diff +++ b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.2(module=esnext,target=es2015).js.diff @@ -9,15 +9,4 @@ +export { C }; const env_1 = { stack: [], error: void 0, hasError: false }; try { - before = __addDisposableResource(env_1, null, false); -- C = class C { -+ C = -+ @dec -+ class C { - }; -- C = __decorate([ -- dec -- ], C); - } - catch (e_1) { - env_1.error = e_1; \ No newline at end of file + before = __addDisposableResource(env_1, null, false); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.2(module=esnext,target=es5).js b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.2(module=esnext,target=es5).js index 8b0ad1f259..f2d7ff2b33 100644 --- a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.2(module=esnext,target=es5).js +++ b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.2(module=esnext,target=es5).js @@ -18,10 +18,11 @@ export { C }; const env_1 = { stack: [], error: void 0, hasError: false }; try { before = __addDisposableResource(env_1, null, false); - C = - @dec - class C { + C = class C { }; + C = __decorate([ + dec + ], C); } catch (e_1) { env_1.error = e_1; diff --git a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.2(module=esnext,target=es5).js.diff b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.2(module=esnext,target=es5).js.diff index d3bdcc84d6..ad6a32b4a9 100644 --- a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.2(module=esnext,target=es5).js.diff +++ b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.2(module=esnext,target=es5).js.diff @@ -9,15 +9,4 @@ +export { C }; const env_1 = { stack: [], error: void 0, hasError: false }; try { - before = __addDisposableResource(env_1, null, false); -- C = class C { -+ C = -+ @dec -+ class C { - }; -- C = __decorate([ -- dec -- ], C); - } - catch (e_1) { - env_1.error = e_1; \ No newline at end of file + before = __addDisposableResource(env_1, null, false); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.2(module=esnext,target=esnext).js b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.2(module=esnext,target=esnext).js index 6e4bc81920..8d3fe7c206 100644 --- a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.2(module=esnext,target=esnext).js +++ b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.2(module=esnext,target=esnext).js @@ -14,6 +14,9 @@ export class C { //// [usingDeclarationsWithLegacyClassDecorators.2.js] using before = null; -@dec -export class C { -} +let C = class C { +}; +C = __decorate([ + dec +], C); +export { C }; diff --git a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.2(module=esnext,target=esnext).js.diff b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.2(module=esnext,target=esnext).js.diff deleted file mode 100644 index b7bd292c32..0000000000 --- a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.2(module=esnext,target=esnext).js.diff +++ /dev/null @@ -1,15 +0,0 @@ ---- old.usingDeclarationsWithLegacyClassDecorators.2(module=esnext,target=esnext).js -+++ new.usingDeclarationsWithLegacyClassDecorators.2(module=esnext,target=esnext).js -@@= skipped -13, +13 lines =@@ - - //// [usingDeclarationsWithLegacyClassDecorators.2.js] - using before = null; --let C = class C { --}; --C = __decorate([ -- dec --], C); --export { C }; -+@dec -+export class C { -+} \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.3(module=commonjs,target=es2015).js b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.3(module=commonjs,target=es2015).js index 1a6c95dc31..db74be0416 100644 --- a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.3(module=commonjs,target=es2015).js +++ b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.3(module=commonjs,target=es2015).js @@ -20,10 +20,12 @@ exports.default = void 0; const env_1 = { stack: [], error: void 0, hasError: false }; try { before = __addDisposableResource(env_1, null, false); - exports.default = _default = C = - @dec - class C { + C = class C { }; + C = __decorate([ + dec + ], C); + exports.default = _default = C; } catch (e_1) { env_1.error = e_1; diff --git a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.3(module=commonjs,target=es2015).js.diff b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.3(module=commonjs,target=es2015).js.diff index c3f4b54ce2..10d71f724f 100644 --- a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.3(module=commonjs,target=es2015).js.diff +++ b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.3(module=commonjs,target=es2015).js.diff @@ -10,16 +10,4 @@ -var before, C, _default; const env_1 = { stack: [], error: void 0, hasError: false }; try { - before = __addDisposableResource(env_1, null, false); -- C = class C { -+ exports.default = _default = C = -+ @dec -+ class C { - }; -- C = __decorate([ -- dec -- ], C); -- exports.default = _default = C; - } - catch (e_1) { - env_1.error = e_1; \ No newline at end of file + before = __addDisposableResource(env_1, null, false); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.3(module=commonjs,target=es5).js b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.3(module=commonjs,target=es5).js index 1a6c95dc31..db74be0416 100644 --- a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.3(module=commonjs,target=es5).js +++ b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.3(module=commonjs,target=es5).js @@ -20,10 +20,12 @@ exports.default = void 0; const env_1 = { stack: [], error: void 0, hasError: false }; try { before = __addDisposableResource(env_1, null, false); - exports.default = _default = C = - @dec - class C { + C = class C { }; + C = __decorate([ + dec + ], C); + exports.default = _default = C; } catch (e_1) { env_1.error = e_1; diff --git a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.3(module=commonjs,target=es5).js.diff b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.3(module=commonjs,target=es5).js.diff index a60a83e305..1a170b93d1 100644 --- a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.3(module=commonjs,target=es5).js.diff +++ b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.3(module=commonjs,target=es5).js.diff @@ -10,16 +10,4 @@ -var before, C, _default; const env_1 = { stack: [], error: void 0, hasError: false }; try { - before = __addDisposableResource(env_1, null, false); -- C = class C { -+ exports.default = _default = C = -+ @dec -+ class C { - }; -- C = __decorate([ -- dec -- ], C); -- exports.default = _default = C; - } - catch (e_1) { - env_1.error = e_1; \ No newline at end of file + before = __addDisposableResource(env_1, null, false); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.3(module=commonjs,target=esnext).js b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.3(module=commonjs,target=esnext).js index 1dfe3a024f..8f18c7d48e 100644 --- a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.3(module=commonjs,target=esnext).js +++ b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.3(module=commonjs,target=esnext).js @@ -16,7 +16,9 @@ export default class C { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); using before = null; -@dec -class C { -} +let C = class C { +}; +C = __decorate([ + dec +], C); exports.default = C; diff --git a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.3(module=commonjs,target=esnext).js.diff b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.3(module=commonjs,target=esnext).js.diff deleted file mode 100644 index a239d9f5ed..0000000000 --- a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.3(module=commonjs,target=esnext).js.diff +++ /dev/null @@ -1,15 +0,0 @@ ---- old.usingDeclarationsWithLegacyClassDecorators.3(module=commonjs,target=esnext).js -+++ new.usingDeclarationsWithLegacyClassDecorators.3(module=commonjs,target=esnext).js -@@= skipped -15, +15 lines =@@ - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - using before = null; --let C = class C { --}; --C = __decorate([ -- dec --], C); -+@dec -+class C { -+} - exports.default = C; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.3(module=esnext,target=es2015).js b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.3(module=esnext,target=es2015).js index ecf1503259..811543d4be 100644 --- a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.3(module=esnext,target=es2015).js +++ b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.3(module=esnext,target=es2015).js @@ -18,10 +18,12 @@ export { _default as default }; const env_1 = { stack: [], error: void 0, hasError: false }; try { before = __addDisposableResource(env_1, null, false); - _default = C = - @dec - class C { + C = class C { }; + C = __decorate([ + dec + ], C); + _default = C; } catch (e_1) { env_1.error = e_1; diff --git a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.3(module=esnext,target=es2015).js.diff b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.3(module=esnext,target=es2015).js.diff index da169d8441..702debafc0 100644 --- a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.3(module=esnext,target=es2015).js.diff +++ b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.3(module=esnext,target=es2015).js.diff @@ -9,16 +9,4 @@ +export { _default as default }; const env_1 = { stack: [], error: void 0, hasError: false }; try { - before = __addDisposableResource(env_1, null, false); -- C = class C { -+ _default = C = -+ @dec -+ class C { - }; -- C = __decorate([ -- dec -- ], C); -- _default = C; - } - catch (e_1) { - env_1.error = e_1; \ No newline at end of file + before = __addDisposableResource(env_1, null, false); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.3(module=esnext,target=es5).js b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.3(module=esnext,target=es5).js index ecf1503259..811543d4be 100644 --- a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.3(module=esnext,target=es5).js +++ b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.3(module=esnext,target=es5).js @@ -18,10 +18,12 @@ export { _default as default }; const env_1 = { stack: [], error: void 0, hasError: false }; try { before = __addDisposableResource(env_1, null, false); - _default = C = - @dec - class C { + C = class C { }; + C = __decorate([ + dec + ], C); + _default = C; } catch (e_1) { env_1.error = e_1; diff --git a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.3(module=esnext,target=es5).js.diff b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.3(module=esnext,target=es5).js.diff index b1ec50fc20..c13747ab8c 100644 --- a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.3(module=esnext,target=es5).js.diff +++ b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.3(module=esnext,target=es5).js.diff @@ -9,16 +9,4 @@ +export { _default as default }; const env_1 = { stack: [], error: void 0, hasError: false }; try { - before = __addDisposableResource(env_1, null, false); -- C = class C { -+ _default = C = -+ @dec -+ class C { - }; -- C = __decorate([ -- dec -- ], C); -- _default = C; - } - catch (e_1) { - env_1.error = e_1; \ No newline at end of file + before = __addDisposableResource(env_1, null, false); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.3(module=esnext,target=esnext).js b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.3(module=esnext,target=esnext).js index f8fad5b4eb..3d51ccac1b 100644 --- a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.3(module=esnext,target=esnext).js +++ b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.3(module=esnext,target=esnext).js @@ -14,6 +14,9 @@ export default class C { //// [usingDeclarationsWithLegacyClassDecorators.3.js] using before = null; -@dec -export default class C { -} +let C = class C { +}; +C = __decorate([ + dec +], C); +export default C; diff --git a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.3(module=esnext,target=esnext).js.diff b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.3(module=esnext,target=esnext).js.diff deleted file mode 100644 index 21d638eb2d..0000000000 --- a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.3(module=esnext,target=esnext).js.diff +++ /dev/null @@ -1,15 +0,0 @@ ---- old.usingDeclarationsWithLegacyClassDecorators.3(module=esnext,target=esnext).js -+++ new.usingDeclarationsWithLegacyClassDecorators.3(module=esnext,target=esnext).js -@@= skipped -13, +13 lines =@@ - - //// [usingDeclarationsWithLegacyClassDecorators.3.js] - using before = null; --let C = class C { --}; --C = __decorate([ -- dec --], C); --export default C; -+@dec -+export default class C { -+} \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.4(module=commonjs,target=es2015).js b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.4(module=commonjs,target=es2015).js index 8d65f97656..b196c75552 100644 --- a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.4(module=commonjs,target=es2015).js +++ b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.4(module=commonjs,target=es2015).js @@ -14,17 +14,18 @@ export default class { //// [usingDeclarationsWithLegacyClassDecorators.4.js] "use strict"; -var before, _default; +var before, default_1, _default; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; const env_1 = { stack: [], error: void 0, hasError: false }; try { before = __addDisposableResource(env_1, null, false); - exports.default = _default = - @dec - class { - static { __setFunctionName(this, "default"); } + default_1 = class { }; + default_1 = __decorate([ + dec + ], default_1); + exports.default = _default = default_1; } catch (e_1) { env_1.error = e_1; diff --git a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.4(module=commonjs,target=es2015).js.diff b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.4(module=commonjs,target=es2015).js.diff index 664a4a5319..9f2d5a7fff 100644 --- a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.4(module=commonjs,target=es2015).js.diff +++ b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.4(module=commonjs,target=es2015).js.diff @@ -4,23 +4,10 @@ //// [usingDeclarationsWithLegacyClassDecorators.4.js] "use strict"; -+var before, _default; ++var before, default_1, _default; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; -var before, default_1, _default; const env_1 = { stack: [], error: void 0, hasError: false }; try { - before = __addDisposableResource(env_1, null, false); -- default_1 = class { -+ exports.default = _default = -+ @dec -+ class { -+ static { __setFunctionName(this, "default"); } - }; -- default_1 = __decorate([ -- dec -- ], default_1); -- exports.default = _default = default_1; - } - catch (e_1) { - env_1.error = e_1; \ No newline at end of file + before = __addDisposableResource(env_1, null, false); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.4(module=commonjs,target=es5).js b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.4(module=commonjs,target=es5).js index 8d65f97656..b196c75552 100644 --- a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.4(module=commonjs,target=es5).js +++ b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.4(module=commonjs,target=es5).js @@ -14,17 +14,18 @@ export default class { //// [usingDeclarationsWithLegacyClassDecorators.4.js] "use strict"; -var before, _default; +var before, default_1, _default; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; const env_1 = { stack: [], error: void 0, hasError: false }; try { before = __addDisposableResource(env_1, null, false); - exports.default = _default = - @dec - class { - static { __setFunctionName(this, "default"); } + default_1 = class { }; + default_1 = __decorate([ + dec + ], default_1); + exports.default = _default = default_1; } catch (e_1) { env_1.error = e_1; diff --git a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.4(module=commonjs,target=es5).js.diff b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.4(module=commonjs,target=es5).js.diff index a514da3495..85c372406d 100644 --- a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.4(module=commonjs,target=es5).js.diff +++ b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.4(module=commonjs,target=es5).js.diff @@ -4,23 +4,10 @@ //// [usingDeclarationsWithLegacyClassDecorators.4.js] "use strict"; -+var before, _default; ++var before, default_1, _default; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; -var before, default_1, _default; const env_1 = { stack: [], error: void 0, hasError: false }; try { - before = __addDisposableResource(env_1, null, false); -- default_1 = class { -+ exports.default = _default = -+ @dec -+ class { -+ static { __setFunctionName(this, "default"); } - }; -- default_1 = __decorate([ -- dec -- ], default_1); -- exports.default = _default = default_1; - } - catch (e_1) { - env_1.error = e_1; \ No newline at end of file + before = __addDisposableResource(env_1, null, false); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.4(module=commonjs,target=esnext).js b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.4(module=commonjs,target=esnext).js index 2cf3fa946c..09e23b6ac0 100644 --- a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.4(module=commonjs,target=esnext).js +++ b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.4(module=commonjs,target=esnext).js @@ -16,7 +16,9 @@ export default class { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); using before = null; -@dec -class default_1 { -} +let default_1 = class { +}; +default_1 = __decorate([ + dec +], default_1); exports.default = default_1; diff --git a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.4(module=commonjs,target=esnext).js.diff b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.4(module=commonjs,target=esnext).js.diff deleted file mode 100644 index 5458ea0b10..0000000000 --- a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.4(module=commonjs,target=esnext).js.diff +++ /dev/null @@ -1,15 +0,0 @@ ---- old.usingDeclarationsWithLegacyClassDecorators.4(module=commonjs,target=esnext).js -+++ new.usingDeclarationsWithLegacyClassDecorators.4(module=commonjs,target=esnext).js -@@= skipped -15, +15 lines =@@ - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - using before = null; --let default_1 = class { --}; --default_1 = __decorate([ -- dec --], default_1); -+@dec -+class default_1 { -+} - exports.default = default_1; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.4(module=esnext,target=es2015).js b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.4(module=esnext,target=es2015).js index 34ed78684a..52667c3582 100644 --- a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.4(module=esnext,target=es2015).js +++ b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.4(module=esnext,target=es2015).js @@ -13,16 +13,17 @@ export default class { //// [usingDeclarationsWithLegacyClassDecorators.4.js] -var before, _default; +var before, default_1, _default; export { _default as default }; const env_1 = { stack: [], error: void 0, hasError: false }; try { before = __addDisposableResource(env_1, null, false); - _default = - @dec - class { - static { __setFunctionName(this, "default"); } + default_1 = class { }; + default_1 = __decorate([ + dec + ], default_1); + _default = default_1; } catch (e_1) { env_1.error = e_1; diff --git a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.4(module=esnext,target=es2015).js.diff b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.4(module=esnext,target=es2015).js.diff index cadb61e9a9..41e974555f 100644 --- a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.4(module=esnext,target=es2015).js.diff +++ b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.4(module=esnext,target=es2015).js.diff @@ -4,22 +4,9 @@ //// [usingDeclarationsWithLegacyClassDecorators.4.js] -+var before, _default; - export { _default as default }; --var before, default_1, _default; +-export { _default as default }; + var before, default_1, _default; ++export { _default as default }; const env_1 = { stack: [], error: void 0, hasError: false }; try { - before = __addDisposableResource(env_1, null, false); -- default_1 = class { -+ _default = -+ @dec -+ class { -+ static { __setFunctionName(this, "default"); } - }; -- default_1 = __decorate([ -- dec -- ], default_1); -- _default = default_1; - } - catch (e_1) { - env_1.error = e_1; \ No newline at end of file + before = __addDisposableResource(env_1, null, false); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.4(module=esnext,target=es5).js b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.4(module=esnext,target=es5).js index 34ed78684a..52667c3582 100644 --- a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.4(module=esnext,target=es5).js +++ b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.4(module=esnext,target=es5).js @@ -13,16 +13,17 @@ export default class { //// [usingDeclarationsWithLegacyClassDecorators.4.js] -var before, _default; +var before, default_1, _default; export { _default as default }; const env_1 = { stack: [], error: void 0, hasError: false }; try { before = __addDisposableResource(env_1, null, false); - _default = - @dec - class { - static { __setFunctionName(this, "default"); } + default_1 = class { }; + default_1 = __decorate([ + dec + ], default_1); + _default = default_1; } catch (e_1) { env_1.error = e_1; diff --git a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.4(module=esnext,target=es5).js.diff b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.4(module=esnext,target=es5).js.diff index 5457338973..02d9da96f7 100644 --- a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.4(module=esnext,target=es5).js.diff +++ b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.4(module=esnext,target=es5).js.diff @@ -4,22 +4,9 @@ //// [usingDeclarationsWithLegacyClassDecorators.4.js] -+var before, _default; - export { _default as default }; --var before, default_1, _default; +-export { _default as default }; + var before, default_1, _default; ++export { _default as default }; const env_1 = { stack: [], error: void 0, hasError: false }; try { - before = __addDisposableResource(env_1, null, false); -- default_1 = class { -+ _default = -+ @dec -+ class { -+ static { __setFunctionName(this, "default"); } - }; -- default_1 = __decorate([ -- dec -- ], default_1); -- _default = default_1; - } - catch (e_1) { - env_1.error = e_1; \ No newline at end of file + before = __addDisposableResource(env_1, null, false); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.4(module=esnext,target=esnext).js b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.4(module=esnext,target=esnext).js index 57a548404a..4aa174e2f6 100644 --- a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.4(module=esnext,target=esnext).js +++ b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.4(module=esnext,target=esnext).js @@ -14,6 +14,9 @@ export default class { //// [usingDeclarationsWithLegacyClassDecorators.4.js] using before = null; -@dec -export default class { -} +let default_1 = class { +}; +default_1 = __decorate([ + dec +], default_1); +export default default_1; diff --git a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.4(module=esnext,target=esnext).js.diff b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.4(module=esnext,target=esnext).js.diff deleted file mode 100644 index fdd6729204..0000000000 --- a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.4(module=esnext,target=esnext).js.diff +++ /dev/null @@ -1,15 +0,0 @@ ---- old.usingDeclarationsWithLegacyClassDecorators.4(module=esnext,target=esnext).js -+++ new.usingDeclarationsWithLegacyClassDecorators.4(module=esnext,target=esnext).js -@@= skipped -13, +13 lines =@@ - - //// [usingDeclarationsWithLegacyClassDecorators.4.js] - using before = null; --let default_1 = class { --}; --default_1 = __decorate([ -- dec --], default_1); --export default default_1; -+@dec -+export default class { -+} \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.5(module=commonjs,target=es2015).js b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.5(module=commonjs,target=es2015).js index 6b8536c750..8fb6946694 100644 --- a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.5(module=commonjs,target=es2015).js +++ b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.5(module=commonjs,target=es2015).js @@ -21,10 +21,11 @@ exports.C = void 0; const env_1 = { stack: [], error: void 0, hasError: false }; try { before = __addDisposableResource(env_1, null, false); - exports.C = C = - @dec - class C { + exports.C = C = class C { }; + exports.C = C = __decorate([ + dec + ], C); } catch (e_1) { env_1.error = e_1; diff --git a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.5(module=commonjs,target=es2015).js.diff b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.5(module=commonjs,target=es2015).js.diff index 0dacacb886..fa5fd35c26 100644 --- a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.5(module=commonjs,target=es2015).js.diff +++ b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.5(module=commonjs,target=es2015).js.diff @@ -10,15 +10,4 @@ -var before, C; const env_1 = { stack: [], error: void 0, hasError: false }; try { - before = __addDisposableResource(env_1, null, false); -- exports.C = C = class C { -+ exports.C = C = -+ @dec -+ class C { - }; -- exports.C = C = __decorate([ -- dec -- ], C); - } - catch (e_1) { - env_1.error = e_1; \ No newline at end of file + before = __addDisposableResource(env_1, null, false); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.5(module=commonjs,target=es5).js b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.5(module=commonjs,target=es5).js index 6b8536c750..8fb6946694 100644 --- a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.5(module=commonjs,target=es5).js +++ b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.5(module=commonjs,target=es5).js @@ -21,10 +21,11 @@ exports.C = void 0; const env_1 = { stack: [], error: void 0, hasError: false }; try { before = __addDisposableResource(env_1, null, false); - exports.C = C = - @dec - class C { + exports.C = C = class C { }; + exports.C = C = __decorate([ + dec + ], C); } catch (e_1) { env_1.error = e_1; diff --git a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.5(module=commonjs,target=es5).js.diff b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.5(module=commonjs,target=es5).js.diff index 06f937580f..d2be080d66 100644 --- a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.5(module=commonjs,target=es5).js.diff +++ b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.5(module=commonjs,target=es5).js.diff @@ -10,15 +10,4 @@ -var before, C; const env_1 = { stack: [], error: void 0, hasError: false }; try { - before = __addDisposableResource(env_1, null, false); -- exports.C = C = class C { -+ exports.C = C = -+ @dec -+ class C { - }; -- exports.C = C = __decorate([ -- dec -- ], C); - } - catch (e_1) { - env_1.error = e_1; \ No newline at end of file + before = __addDisposableResource(env_1, null, false); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.5(module=commonjs,target=esnext).js b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.5(module=commonjs,target=esnext).js index abb3dc4154..3199317d1e 100644 --- a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.5(module=commonjs,target=esnext).js +++ b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.5(module=commonjs,target=esnext).js @@ -18,7 +18,9 @@ export { C }; Object.defineProperty(exports, "__esModule", { value: true }); exports.C = void 0; using before = null; -@dec -class C { -} +let C = class C { +}; exports.C = C; +exports.C = C = __decorate([ + dec +], C); diff --git a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.5(module=commonjs,target=esnext).js.diff b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.5(module=commonjs,target=esnext).js.diff deleted file mode 100644 index 2bead4857d..0000000000 --- a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.5(module=commonjs,target=esnext).js.diff +++ /dev/null @@ -1,15 +0,0 @@ ---- old.usingDeclarationsWithLegacyClassDecorators.5(module=commonjs,target=esnext).js -+++ new.usingDeclarationsWithLegacyClassDecorators.5(module=commonjs,target=esnext).js -@@= skipped -17, +17 lines =@@ - Object.defineProperty(exports, "__esModule", { value: true }); - exports.C = void 0; - using before = null; --let C = class C { --}; -+@dec -+class C { -+} - exports.C = C; --exports.C = C = __decorate([ -- dec --], C); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.5(module=esnext,target=es2015).js b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.5(module=esnext,target=es2015).js index 1392f9d9e1..3ff5b13a10 100644 --- a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.5(module=esnext,target=es2015).js +++ b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.5(module=esnext,target=es2015).js @@ -19,10 +19,11 @@ export { C }; const env_1 = { stack: [], error: void 0, hasError: false }; try { before = __addDisposableResource(env_1, null, false); - C = - @dec - class C { + C = class C { }; + C = __decorate([ + dec + ], C); } catch (e_1) { env_1.error = e_1; diff --git a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.5(module=esnext,target=es2015).js.diff b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.5(module=esnext,target=es2015).js.diff index dcd55cc2d2..637ac72bfe 100644 --- a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.5(module=esnext,target=es2015).js.diff +++ b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.5(module=esnext,target=es2015).js.diff @@ -9,15 +9,4 @@ +export { C }; const env_1 = { stack: [], error: void 0, hasError: false }; try { - before = __addDisposableResource(env_1, null, false); -- C = class C { -+ C = -+ @dec -+ class C { - }; -- C = __decorate([ -- dec -- ], C); - } - catch (e_1) { - env_1.error = e_1; \ No newline at end of file + before = __addDisposableResource(env_1, null, false); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.5(module=esnext,target=es5).js b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.5(module=esnext,target=es5).js index 1392f9d9e1..3ff5b13a10 100644 --- a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.5(module=esnext,target=es5).js +++ b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.5(module=esnext,target=es5).js @@ -19,10 +19,11 @@ export { C }; const env_1 = { stack: [], error: void 0, hasError: false }; try { before = __addDisposableResource(env_1, null, false); - C = - @dec - class C { + C = class C { }; + C = __decorate([ + dec + ], C); } catch (e_1) { env_1.error = e_1; diff --git a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.5(module=esnext,target=es5).js.diff b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.5(module=esnext,target=es5).js.diff index 408ccf0542..f785247df5 100644 --- a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.5(module=esnext,target=es5).js.diff +++ b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.5(module=esnext,target=es5).js.diff @@ -9,15 +9,4 @@ +export { C }; const env_1 = { stack: [], error: void 0, hasError: false }; try { - before = __addDisposableResource(env_1, null, false); -- C = class C { -+ C = -+ @dec -+ class C { - }; -- C = __decorate([ -- dec -- ], C); - } - catch (e_1) { - env_1.error = e_1; \ No newline at end of file + before = __addDisposableResource(env_1, null, false); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.5(module=esnext,target=esnext).js b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.5(module=esnext,target=esnext).js index f20496102f..f490f0b613 100644 --- a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.5(module=esnext,target=esnext).js +++ b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.5(module=esnext,target=esnext).js @@ -15,7 +15,9 @@ export { C }; //// [usingDeclarationsWithLegacyClassDecorators.5.js] using before = null; -@dec -class C { -} +let C = class C { +}; +C = __decorate([ + dec +], C); export { C }; diff --git a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.5(module=esnext,target=esnext).js.diff b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.5(module=esnext,target=esnext).js.diff deleted file mode 100644 index 43666f52a4..0000000000 --- a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.5(module=esnext,target=esnext).js.diff +++ /dev/null @@ -1,15 +0,0 @@ ---- old.usingDeclarationsWithLegacyClassDecorators.5(module=esnext,target=esnext).js -+++ new.usingDeclarationsWithLegacyClassDecorators.5(module=esnext,target=esnext).js -@@= skipped -14, +14 lines =@@ - - //// [usingDeclarationsWithLegacyClassDecorators.5.js] - using before = null; --let C = class C { --}; --C = __decorate([ -- dec --], C); -+@dec -+class C { -+} - export { C }; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.6(module=commonjs,target=es2015).js b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.6(module=commonjs,target=es2015).js index b3c5a067f6..f59ce0c953 100644 --- a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.6(module=commonjs,target=es2015).js +++ b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.6(module=commonjs,target=es2015).js @@ -21,10 +21,11 @@ exports.D = void 0; const env_1 = { stack: [], error: void 0, hasError: false }; try { before = __addDisposableResource(env_1, null, false); - exports.D = C = - @dec - class C { + exports.D = C = class C { }; + exports.D = C = __decorate([ + dec + ], C); } catch (e_1) { env_1.error = e_1; diff --git a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.6(module=commonjs,target=es2015).js.diff b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.6(module=commonjs,target=es2015).js.diff index a327750a51..7a9d38779c 100644 --- a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.6(module=commonjs,target=es2015).js.diff +++ b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.6(module=commonjs,target=es2015).js.diff @@ -10,15 +10,4 @@ -var before, C; const env_1 = { stack: [], error: void 0, hasError: false }; try { - before = __addDisposableResource(env_1, null, false); -- exports.D = C = class C { -+ exports.D = C = -+ @dec -+ class C { - }; -- exports.D = C = __decorate([ -- dec -- ], C); - } - catch (e_1) { - env_1.error = e_1; \ No newline at end of file + before = __addDisposableResource(env_1, null, false); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.6(module=commonjs,target=es5).js b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.6(module=commonjs,target=es5).js index b3c5a067f6..f59ce0c953 100644 --- a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.6(module=commonjs,target=es5).js +++ b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.6(module=commonjs,target=es5).js @@ -21,10 +21,11 @@ exports.D = void 0; const env_1 = { stack: [], error: void 0, hasError: false }; try { before = __addDisposableResource(env_1, null, false); - exports.D = C = - @dec - class C { + exports.D = C = class C { }; + exports.D = C = __decorate([ + dec + ], C); } catch (e_1) { env_1.error = e_1; diff --git a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.6(module=commonjs,target=es5).js.diff b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.6(module=commonjs,target=es5).js.diff index d32ebbe2b2..2694e41b35 100644 --- a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.6(module=commonjs,target=es5).js.diff +++ b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.6(module=commonjs,target=es5).js.diff @@ -10,15 +10,4 @@ -var before, C; const env_1 = { stack: [], error: void 0, hasError: false }; try { - before = __addDisposableResource(env_1, null, false); -- exports.D = C = class C { -+ exports.D = C = -+ @dec -+ class C { - }; -- exports.D = C = __decorate([ -- dec -- ], C); - } - catch (e_1) { - env_1.error = e_1; \ No newline at end of file + before = __addDisposableResource(env_1, null, false); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.6(module=commonjs,target=esnext).js b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.6(module=commonjs,target=esnext).js index 5791e604b8..f16c4772a1 100644 --- a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.6(module=commonjs,target=esnext).js +++ b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.6(module=commonjs,target=esnext).js @@ -18,7 +18,9 @@ export { C as D }; Object.defineProperty(exports, "__esModule", { value: true }); exports.D = void 0; using before = null; -@dec -class C { -} +let C = class C { +}; exports.D = C; +exports.D = C = __decorate([ + dec +], C); diff --git a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.6(module=commonjs,target=esnext).js.diff b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.6(module=commonjs,target=esnext).js.diff deleted file mode 100644 index ca5a4a22ae..0000000000 --- a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.6(module=commonjs,target=esnext).js.diff +++ /dev/null @@ -1,15 +0,0 @@ ---- old.usingDeclarationsWithLegacyClassDecorators.6(module=commonjs,target=esnext).js -+++ new.usingDeclarationsWithLegacyClassDecorators.6(module=commonjs,target=esnext).js -@@= skipped -17, +17 lines =@@ - Object.defineProperty(exports, "__esModule", { value: true }); - exports.D = void 0; - using before = null; --let C = class C { --}; -+@dec -+class C { -+} - exports.D = C; --exports.D = C = __decorate([ -- dec --], C); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.6(module=esnext,target=es2015).js b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.6(module=esnext,target=es2015).js index e6866e9494..a2fb4535c6 100644 --- a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.6(module=esnext,target=es2015).js +++ b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.6(module=esnext,target=es2015).js @@ -19,10 +19,11 @@ export { C as D }; const env_1 = { stack: [], error: void 0, hasError: false }; try { before = __addDisposableResource(env_1, null, false); - C = - @dec - class C { + C = class C { }; + C = __decorate([ + dec + ], C); } catch (e_1) { env_1.error = e_1; diff --git a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.6(module=esnext,target=es2015).js.diff b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.6(module=esnext,target=es2015).js.diff index c6ff636a6f..cd9822a49d 100644 --- a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.6(module=esnext,target=es2015).js.diff +++ b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.6(module=esnext,target=es2015).js.diff @@ -9,15 +9,4 @@ +export { C as D }; const env_1 = { stack: [], error: void 0, hasError: false }; try { - before = __addDisposableResource(env_1, null, false); -- C = class C { -+ C = -+ @dec -+ class C { - }; -- C = __decorate([ -- dec -- ], C); - } - catch (e_1) { - env_1.error = e_1; \ No newline at end of file + before = __addDisposableResource(env_1, null, false); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.6(module=esnext,target=es5).js b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.6(module=esnext,target=es5).js index e6866e9494..a2fb4535c6 100644 --- a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.6(module=esnext,target=es5).js +++ b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.6(module=esnext,target=es5).js @@ -19,10 +19,11 @@ export { C as D }; const env_1 = { stack: [], error: void 0, hasError: false }; try { before = __addDisposableResource(env_1, null, false); - C = - @dec - class C { + C = class C { }; + C = __decorate([ + dec + ], C); } catch (e_1) { env_1.error = e_1; diff --git a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.6(module=esnext,target=es5).js.diff b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.6(module=esnext,target=es5).js.diff index 755e607388..192db918c1 100644 --- a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.6(module=esnext,target=es5).js.diff +++ b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.6(module=esnext,target=es5).js.diff @@ -9,15 +9,4 @@ +export { C as D }; const env_1 = { stack: [], error: void 0, hasError: false }; try { - before = __addDisposableResource(env_1, null, false); -- C = class C { -+ C = -+ @dec -+ class C { - }; -- C = __decorate([ -- dec -- ], C); - } - catch (e_1) { - env_1.error = e_1; \ No newline at end of file + before = __addDisposableResource(env_1, null, false); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.6(module=esnext,target=esnext).js b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.6(module=esnext,target=esnext).js index 1f0c2ed56a..ed1f2c80d9 100644 --- a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.6(module=esnext,target=esnext).js +++ b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.6(module=esnext,target=esnext).js @@ -15,7 +15,9 @@ export { C as D }; //// [usingDeclarationsWithLegacyClassDecorators.6.js] using before = null; -@dec -class C { -} +let C = class C { +}; +C = __decorate([ + dec +], C); export { C as D }; diff --git a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.6(module=esnext,target=esnext).js.diff b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.6(module=esnext,target=esnext).js.diff deleted file mode 100644 index aec8a86076..0000000000 --- a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.6(module=esnext,target=esnext).js.diff +++ /dev/null @@ -1,15 +0,0 @@ ---- old.usingDeclarationsWithLegacyClassDecorators.6(module=esnext,target=esnext).js -+++ new.usingDeclarationsWithLegacyClassDecorators.6(module=esnext,target=esnext).js -@@= skipped -14, +14 lines =@@ - - //// [usingDeclarationsWithLegacyClassDecorators.6.js] - using before = null; --let C = class C { --}; --C = __decorate([ -- dec --], C); -+@dec -+class C { -+} - export { C as D }; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.7(module=commonjs,target=es2015).js b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.7(module=commonjs,target=es2015).js index 6c16da1e42..c5cbc56946 100644 --- a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.7(module=commonjs,target=es2015).js +++ b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.7(module=commonjs,target=es2015).js @@ -16,9 +16,11 @@ using after = null; "use strict"; var after; Object.defineProperty(exports, "__esModule", { value: true }); -@dec -class C { -} +let C = class C { +}; +C = __decorate([ + dec +], C); const env_1 = { stack: [], error: void 0, hasError: false }; try { after = __addDisposableResource(env_1, null, false); diff --git a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.7(module=commonjs,target=es2015).js.diff b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.7(module=commonjs,target=es2015).js.diff index 7a89e7bc1f..925d761b40 100644 --- a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.7(module=commonjs,target=es2015).js.diff +++ b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.7(module=commonjs,target=es2015).js.diff @@ -4,17 +4,14 @@ //// [usingDeclarationsWithLegacyClassDecorators.7.js] "use strict"; --Object.defineProperty(exports, "__esModule", { value: true }); --let C = class C { --}; --C = __decorate([ -- dec --], C); - var after; -+Object.defineProperty(exports, "__esModule", { value: true }); -+@dec -+class C { -+} ++var after; + Object.defineProperty(exports, "__esModule", { value: true }); + let C = class C { + }; + C = __decorate([ + dec + ], C); +-var after; const env_1 = { stack: [], error: void 0, hasError: false }; try { after = __addDisposableResource(env_1, null, false); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.7(module=commonjs,target=es5).js b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.7(module=commonjs,target=es5).js index 6c16da1e42..c5cbc56946 100644 --- a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.7(module=commonjs,target=es5).js +++ b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.7(module=commonjs,target=es5).js @@ -16,9 +16,11 @@ using after = null; "use strict"; var after; Object.defineProperty(exports, "__esModule", { value: true }); -@dec -class C { -} +let C = class C { +}; +C = __decorate([ + dec +], C); const env_1 = { stack: [], error: void 0, hasError: false }; try { after = __addDisposableResource(env_1, null, false); diff --git a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.7(module=commonjs,target=es5).js.diff b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.7(module=commonjs,target=es5).js.diff index 9c7b199503..f2a142a249 100644 --- a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.7(module=commonjs,target=es5).js.diff +++ b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.7(module=commonjs,target=es5).js.diff @@ -4,17 +4,14 @@ //// [usingDeclarationsWithLegacyClassDecorators.7.js] "use strict"; --Object.defineProperty(exports, "__esModule", { value: true }); --let C = class C { --}; --C = __decorate([ -- dec --], C); - var after; -+Object.defineProperty(exports, "__esModule", { value: true }); -+@dec -+class C { -+} ++var after; + Object.defineProperty(exports, "__esModule", { value: true }); + let C = class C { + }; + C = __decorate([ + dec + ], C); +-var after; const env_1 = { stack: [], error: void 0, hasError: false }; try { after = __addDisposableResource(env_1, null, false); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.7(module=commonjs,target=esnext).js b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.7(module=commonjs,target=esnext).js index d579fb33a3..1acfe3baf3 100644 --- a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.7(module=commonjs,target=esnext).js +++ b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.7(module=commonjs,target=esnext).js @@ -15,7 +15,9 @@ using after = null; //// [usingDeclarationsWithLegacyClassDecorators.7.js] "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -@dec -class C { -} +let C = class C { +}; +C = __decorate([ + dec +], C); using after = null; diff --git a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.7(module=commonjs,target=esnext).js.diff b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.7(module=commonjs,target=esnext).js.diff deleted file mode 100644 index e0d3dd44e4..0000000000 --- a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.7(module=commonjs,target=esnext).js.diff +++ /dev/null @@ -1,15 +0,0 @@ ---- old.usingDeclarationsWithLegacyClassDecorators.7(module=commonjs,target=esnext).js -+++ new.usingDeclarationsWithLegacyClassDecorators.7(module=commonjs,target=esnext).js -@@= skipped -14, +14 lines =@@ - //// [usingDeclarationsWithLegacyClassDecorators.7.js] - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); --let C = class C { --}; --C = __decorate([ -- dec --], C); -+@dec -+class C { -+} - using after = null; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.7(module=esnext,target=es2015).js b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.7(module=esnext,target=es2015).js index 3eda51205b..5d943897a9 100644 --- a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.7(module=esnext,target=es2015).js +++ b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.7(module=esnext,target=es2015).js @@ -14,9 +14,11 @@ using after = null; //// [usingDeclarationsWithLegacyClassDecorators.7.js] var after; -@dec -class C { -} +let C = class C { +}; +C = __decorate([ + dec +], C); const env_1 = { stack: [], error: void 0, hasError: false }; try { after = __addDisposableResource(env_1, null, false); diff --git a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.7(module=esnext,target=es2015).js.diff b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.7(module=esnext,target=es2015).js.diff index e51bf43def..dabbea0f60 100644 --- a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.7(module=esnext,target=es2015).js.diff +++ b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.7(module=esnext,target=es2015).js.diff @@ -4,15 +4,13 @@ //// [usingDeclarationsWithLegacyClassDecorators.7.js] --let C = class C { --}; --C = __decorate([ -- dec --], C); - var after; -+@dec -+class C { -+} ++var after; + let C = class C { + }; + C = __decorate([ + dec + ], C); +-var after; const env_1 = { stack: [], error: void 0, hasError: false }; try { after = __addDisposableResource(env_1, null, false); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.7(module=esnext,target=es5).js b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.7(module=esnext,target=es5).js index 3eda51205b..5d943897a9 100644 --- a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.7(module=esnext,target=es5).js +++ b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.7(module=esnext,target=es5).js @@ -14,9 +14,11 @@ using after = null; //// [usingDeclarationsWithLegacyClassDecorators.7.js] var after; -@dec -class C { -} +let C = class C { +}; +C = __decorate([ + dec +], C); const env_1 = { stack: [], error: void 0, hasError: false }; try { after = __addDisposableResource(env_1, null, false); diff --git a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.7(module=esnext,target=es5).js.diff b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.7(module=esnext,target=es5).js.diff index d265f45df2..e123b5d684 100644 --- a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.7(module=esnext,target=es5).js.diff +++ b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.7(module=esnext,target=es5).js.diff @@ -4,15 +4,13 @@ //// [usingDeclarationsWithLegacyClassDecorators.7.js] --let C = class C { --}; --C = __decorate([ -- dec --], C); - var after; -+@dec -+class C { -+} ++var after; + let C = class C { + }; + C = __decorate([ + dec + ], C); +-var after; const env_1 = { stack: [], error: void 0, hasError: false }; try { after = __addDisposableResource(env_1, null, false); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.7(module=esnext,target=esnext).js b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.7(module=esnext,target=esnext).js index b91b6d24bc..0456f1ea70 100644 --- a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.7(module=esnext,target=esnext).js +++ b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.7(module=esnext,target=esnext).js @@ -13,8 +13,10 @@ using after = null; //// [usingDeclarationsWithLegacyClassDecorators.7.js] -@dec -class C { -} +let C = class C { +}; +C = __decorate([ + dec +], C); using after = null; export {}; diff --git a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.7(module=esnext,target=esnext).js.diff b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.7(module=esnext,target=esnext).js.diff deleted file mode 100644 index c2fa5f4372..0000000000 --- a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.7(module=esnext,target=esnext).js.diff +++ /dev/null @@ -1,16 +0,0 @@ ---- old.usingDeclarationsWithLegacyClassDecorators.7(module=esnext,target=esnext).js -+++ new.usingDeclarationsWithLegacyClassDecorators.7(module=esnext,target=esnext).js -@@= skipped -12, +12 lines =@@ - - - //// [usingDeclarationsWithLegacyClassDecorators.7.js] --let C = class C { --}; --C = __decorate([ -- dec --], C); -+@dec -+class C { -+} - using after = null; - export {}; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.8(module=commonjs,target=es2015).js b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.8(module=commonjs,target=es2015).js index 9549a5c883..96030dfab0 100644 --- a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.8(module=commonjs,target=es2015).js +++ b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.8(module=commonjs,target=es2015).js @@ -17,10 +17,12 @@ using after = null; var after; Object.defineProperty(exports, "__esModule", { value: true }); exports.C = void 0; -@dec -class C { -} +let C = class C { +}; exports.C = C; +exports.C = C = __decorate([ + dec +], C); const env_1 = { stack: [], error: void 0, hasError: false }; try { after = __addDisposableResource(env_1, null, false); diff --git a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.8(module=commonjs,target=es2015).js.diff b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.8(module=commonjs,target=es2015).js.diff index 83d8c40b99..c10bcafbda 100644 --- a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.8(module=commonjs,target=es2015).js.diff +++ b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.8(module=commonjs,target=es2015).js.diff @@ -7,15 +7,11 @@ +var after; Object.defineProperty(exports, "__esModule", { value: true }); exports.C = void 0; --let C = class C { --}; -+@dec -+class C { -+} - exports.C = C; --exports.C = C = __decorate([ -- dec --], C); + let C = class C { +@@= skipped -8, +9 lines =@@ + exports.C = C = __decorate([ + dec + ], C); -var after; const env_1 = { stack: [], error: void 0, hasError: false }; try { diff --git a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.8(module=commonjs,target=es5).js b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.8(module=commonjs,target=es5).js index 9549a5c883..96030dfab0 100644 --- a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.8(module=commonjs,target=es5).js +++ b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.8(module=commonjs,target=es5).js @@ -17,10 +17,12 @@ using after = null; var after; Object.defineProperty(exports, "__esModule", { value: true }); exports.C = void 0; -@dec -class C { -} +let C = class C { +}; exports.C = C; +exports.C = C = __decorate([ + dec +], C); const env_1 = { stack: [], error: void 0, hasError: false }; try { after = __addDisposableResource(env_1, null, false); diff --git a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.8(module=commonjs,target=es5).js.diff b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.8(module=commonjs,target=es5).js.diff index 85b4cb5951..0857215dac 100644 --- a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.8(module=commonjs,target=es5).js.diff +++ b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.8(module=commonjs,target=es5).js.diff @@ -7,15 +7,11 @@ +var after; Object.defineProperty(exports, "__esModule", { value: true }); exports.C = void 0; --let C = class C { --}; -+@dec -+class C { -+} - exports.C = C; --exports.C = C = __decorate([ -- dec --], C); + let C = class C { +@@= skipped -8, +9 lines =@@ + exports.C = C = __decorate([ + dec + ], C); -var after; const env_1 = { stack: [], error: void 0, hasError: false }; try { diff --git a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.8(module=commonjs,target=esnext).js b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.8(module=commonjs,target=esnext).js index 584c41b0ac..516301c4c8 100644 --- a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.8(module=commonjs,target=esnext).js +++ b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.8(module=commonjs,target=esnext).js @@ -16,8 +16,10 @@ using after = null; "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.C = void 0; -@dec -class C { -} +let C = class C { +}; exports.C = C; +exports.C = C = __decorate([ + dec +], C); using after = null; diff --git a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.8(module=commonjs,target=esnext).js.diff b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.8(module=commonjs,target=esnext).js.diff deleted file mode 100644 index 94f0ef8823..0000000000 --- a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.8(module=commonjs,target=esnext).js.diff +++ /dev/null @@ -1,16 +0,0 @@ ---- old.usingDeclarationsWithLegacyClassDecorators.8(module=commonjs,target=esnext).js -+++ new.usingDeclarationsWithLegacyClassDecorators.8(module=commonjs,target=esnext).js -@@= skipped -15, +15 lines =@@ - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.C = void 0; --let C = class C { --}; -+@dec -+class C { -+} - exports.C = C; --exports.C = C = __decorate([ -- dec --], C); - using after = null; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.8(module=esnext,target=es2015).js b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.8(module=esnext,target=es2015).js index f6490c825f..846490db00 100644 --- a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.8(module=esnext,target=es2015).js +++ b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.8(module=esnext,target=es2015).js @@ -14,9 +14,12 @@ using after = null; //// [usingDeclarationsWithLegacyClassDecorators.8.js] var after; -@dec -export class C { -} +let C = class C { +}; +C = __decorate([ + dec +], C); +export { C }; const env_1 = { stack: [], error: void 0, hasError: false }; try { after = __addDisposableResource(env_1, null, false); diff --git a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.8(module=esnext,target=es2015).js.diff b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.8(module=esnext,target=es2015).js.diff index 2ee44d216f..8c9947e7cb 100644 --- a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.8(module=esnext,target=es2015).js.diff +++ b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.8(module=esnext,target=es2015).js.diff @@ -4,16 +4,14 @@ //// [usingDeclarationsWithLegacyClassDecorators.8.js] --let C = class C { --}; --C = __decorate([ -- dec --], C); --export { C }; - var after; -+@dec -+export class C { -+} ++var after; + let C = class C { + }; + C = __decorate([ + dec + ], C); + export { C }; +-var after; const env_1 = { stack: [], error: void 0, hasError: false }; try { after = __addDisposableResource(env_1, null, false); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.8(module=esnext,target=es5).js b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.8(module=esnext,target=es5).js index f6490c825f..846490db00 100644 --- a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.8(module=esnext,target=es5).js +++ b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.8(module=esnext,target=es5).js @@ -14,9 +14,12 @@ using after = null; //// [usingDeclarationsWithLegacyClassDecorators.8.js] var after; -@dec -export class C { -} +let C = class C { +}; +C = __decorate([ + dec +], C); +export { C }; const env_1 = { stack: [], error: void 0, hasError: false }; try { after = __addDisposableResource(env_1, null, false); diff --git a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.8(module=esnext,target=es5).js.diff b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.8(module=esnext,target=es5).js.diff index d45e4f49de..c58637ada1 100644 --- a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.8(module=esnext,target=es5).js.diff +++ b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.8(module=esnext,target=es5).js.diff @@ -4,16 +4,14 @@ //// [usingDeclarationsWithLegacyClassDecorators.8.js] --let C = class C { --}; --C = __decorate([ -- dec --], C); --export { C }; - var after; -+@dec -+export class C { -+} ++var after; + let C = class C { + }; + C = __decorate([ + dec + ], C); + export { C }; +-var after; const env_1 = { stack: [], error: void 0, hasError: false }; try { after = __addDisposableResource(env_1, null, false); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.8(module=esnext,target=esnext).js b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.8(module=esnext,target=esnext).js index e588d20bb4..aee33622d8 100644 --- a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.8(module=esnext,target=esnext).js +++ b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.8(module=esnext,target=esnext).js @@ -13,7 +13,10 @@ using after = null; //// [usingDeclarationsWithLegacyClassDecorators.8.js] -@dec -export class C { -} +let C = class C { +}; +C = __decorate([ + dec +], C); +export { C }; using after = null; diff --git a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.8(module=esnext,target=esnext).js.diff b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.8(module=esnext,target=esnext).js.diff deleted file mode 100644 index 3ca752e849..0000000000 --- a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.8(module=esnext,target=esnext).js.diff +++ /dev/null @@ -1,16 +0,0 @@ ---- old.usingDeclarationsWithLegacyClassDecorators.8(module=esnext,target=esnext).js -+++ new.usingDeclarationsWithLegacyClassDecorators.8(module=esnext,target=esnext).js -@@= skipped -12, +12 lines =@@ - - - //// [usingDeclarationsWithLegacyClassDecorators.8.js] --let C = class C { --}; --C = __decorate([ -- dec --], C); --export { C }; -+@dec -+export class C { -+} - using after = null; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.9(module=commonjs,target=es2015).js b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.9(module=commonjs,target=es2015).js index 1a991cff91..0f56e82e23 100644 --- a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.9(module=commonjs,target=es2015).js +++ b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.9(module=commonjs,target=es2015).js @@ -16,9 +16,11 @@ using after = null; "use strict"; var after; Object.defineProperty(exports, "__esModule", { value: true }); -@dec -class C { -} +let C = class C { +}; +C = __decorate([ + dec +], C); exports.default = C; const env_1 = { stack: [], error: void 0, hasError: false }; try { diff --git a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.9(module=commonjs,target=es2015).js.diff b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.9(module=commonjs,target=es2015).js.diff index b2bbc47f2a..a0c43cda14 100644 --- a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.9(module=commonjs,target=es2015).js.diff +++ b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.9(module=commonjs,target=es2015).js.diff @@ -6,14 +6,11 @@ "use strict"; +var after; Object.defineProperty(exports, "__esModule", { value: true }); --let C = class C { --}; --C = __decorate([ -- dec --], C); -+@dec -+class C { -+} + let C = class C { + }; +@@= skipped -7, +8 lines =@@ + dec + ], C); exports.default = C; -var after; const env_1 = { stack: [], error: void 0, hasError: false }; diff --git a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.9(module=commonjs,target=es5).js b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.9(module=commonjs,target=es5).js index 1a991cff91..0f56e82e23 100644 --- a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.9(module=commonjs,target=es5).js +++ b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.9(module=commonjs,target=es5).js @@ -16,9 +16,11 @@ using after = null; "use strict"; var after; Object.defineProperty(exports, "__esModule", { value: true }); -@dec -class C { -} +let C = class C { +}; +C = __decorate([ + dec +], C); exports.default = C; const env_1 = { stack: [], error: void 0, hasError: false }; try { diff --git a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.9(module=commonjs,target=es5).js.diff b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.9(module=commonjs,target=es5).js.diff index 050dde8c4a..4c5952952b 100644 --- a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.9(module=commonjs,target=es5).js.diff +++ b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.9(module=commonjs,target=es5).js.diff @@ -6,14 +6,11 @@ "use strict"; +var after; Object.defineProperty(exports, "__esModule", { value: true }); --let C = class C { --}; --C = __decorate([ -- dec --], C); -+@dec -+class C { -+} + let C = class C { + }; +@@= skipped -7, +8 lines =@@ + dec + ], C); exports.default = C; -var after; const env_1 = { stack: [], error: void 0, hasError: false }; diff --git a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.9(module=commonjs,target=esnext).js b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.9(module=commonjs,target=esnext).js index 08862b500c..17855fd9c7 100644 --- a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.9(module=commonjs,target=esnext).js +++ b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.9(module=commonjs,target=esnext).js @@ -15,8 +15,10 @@ using after = null; //// [usingDeclarationsWithLegacyClassDecorators.9.js] "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -@dec -class C { -} +let C = class C { +}; +C = __decorate([ + dec +], C); exports.default = C; using after = null; diff --git a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.9(module=commonjs,target=esnext).js.diff b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.9(module=commonjs,target=esnext).js.diff deleted file mode 100644 index 94f364fa29..0000000000 --- a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.9(module=commonjs,target=esnext).js.diff +++ /dev/null @@ -1,16 +0,0 @@ ---- old.usingDeclarationsWithLegacyClassDecorators.9(module=commonjs,target=esnext).js -+++ new.usingDeclarationsWithLegacyClassDecorators.9(module=commonjs,target=esnext).js -@@= skipped -14, +14 lines =@@ - //// [usingDeclarationsWithLegacyClassDecorators.9.js] - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); --let C = class C { --}; --C = __decorate([ -- dec --], C); -+@dec -+class C { -+} - exports.default = C; - using after = null; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.9(module=esnext,target=es2015).js b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.9(module=esnext,target=es2015).js index 5465a7f6aa..bd3537f179 100644 --- a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.9(module=esnext,target=es2015).js +++ b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.9(module=esnext,target=es2015).js @@ -14,9 +14,12 @@ using after = null; //// [usingDeclarationsWithLegacyClassDecorators.9.js] var after; -@dec -export default class C { -} +let C = class C { +}; +C = __decorate([ + dec +], C); +export default C; const env_1 = { stack: [], error: void 0, hasError: false }; try { after = __addDisposableResource(env_1, null, false); diff --git a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.9(module=esnext,target=es2015).js.diff b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.9(module=esnext,target=es2015).js.diff index c7fb25598d..70fbdc9893 100644 --- a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.9(module=esnext,target=es2015).js.diff +++ b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.9(module=esnext,target=es2015).js.diff @@ -4,16 +4,14 @@ //// [usingDeclarationsWithLegacyClassDecorators.9.js] --let C = class C { --}; --C = __decorate([ -- dec --], C); --export default C; - var after; -+@dec -+export default class C { -+} ++var after; + let C = class C { + }; + C = __decorate([ + dec + ], C); + export default C; +-var after; const env_1 = { stack: [], error: void 0, hasError: false }; try { after = __addDisposableResource(env_1, null, false); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.9(module=esnext,target=es5).js b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.9(module=esnext,target=es5).js index 5465a7f6aa..bd3537f179 100644 --- a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.9(module=esnext,target=es5).js +++ b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.9(module=esnext,target=es5).js @@ -14,9 +14,12 @@ using after = null; //// [usingDeclarationsWithLegacyClassDecorators.9.js] var after; -@dec -export default class C { -} +let C = class C { +}; +C = __decorate([ + dec +], C); +export default C; const env_1 = { stack: [], error: void 0, hasError: false }; try { after = __addDisposableResource(env_1, null, false); diff --git a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.9(module=esnext,target=es5).js.diff b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.9(module=esnext,target=es5).js.diff index 1b562bdbf8..b9659459dd 100644 --- a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.9(module=esnext,target=es5).js.diff +++ b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.9(module=esnext,target=es5).js.diff @@ -4,16 +4,14 @@ //// [usingDeclarationsWithLegacyClassDecorators.9.js] --let C = class C { --}; --C = __decorate([ -- dec --], C); --export default C; - var after; -+@dec -+export default class C { -+} ++var after; + let C = class C { + }; + C = __decorate([ + dec + ], C); + export default C; +-var after; const env_1 = { stack: [], error: void 0, hasError: false }; try { after = __addDisposableResource(env_1, null, false); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.9(module=esnext,target=esnext).js b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.9(module=esnext,target=esnext).js index 2e8af63658..53806f180d 100644 --- a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.9(module=esnext,target=esnext).js +++ b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.9(module=esnext,target=esnext).js @@ -13,7 +13,10 @@ using after = null; //// [usingDeclarationsWithLegacyClassDecorators.9.js] -@dec -export default class C { -} +let C = class C { +}; +C = __decorate([ + dec +], C); +export default C; using after = null; diff --git a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.9(module=esnext,target=esnext).js.diff b/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.9(module=esnext,target=esnext).js.diff deleted file mode 100644 index 745570873e..0000000000 --- a/testdata/baselines/reference/submodule/conformance/usingDeclarationsWithLegacyClassDecorators.9(module=esnext,target=esnext).js.diff +++ /dev/null @@ -1,16 +0,0 @@ ---- old.usingDeclarationsWithLegacyClassDecorators.9(module=esnext,target=esnext).js -+++ new.usingDeclarationsWithLegacyClassDecorators.9(module=esnext,target=esnext).js -@@= skipped -12, +12 lines =@@ - - - //// [usingDeclarationsWithLegacyClassDecorators.9.js] --let C = class C { --}; --C = __decorate([ -- dec --], C); --export default C; -+@dec -+export default class C { -+} - using after = null; \ No newline at end of file