// generateVariables generates all the variables/fields under the given type or module into ES5. func (gen *es5generator) generateVariables(typeOrModule typegraph.TGTypeOrModule, initMap varMap) { members := typeOrModule.Members() // Find all variables defined under the type or module. for _, member := range members { srgMember, hasSRGMember := gen.getSRGMember(member) if !hasSRGMember || srgMember.MemberKind() != srg.VarMember { continue } // If the variable has a base member (i.e. it shadows another variable), // nothing more to do. _, hasBaseMember := member.BaseMember() if hasBaseMember { continue } // We only need to generate variables that have initializers. _, hasInitializer := srgMember.Initializer() if !hasInitializer { continue } initMap.Set(member, gen.generateVariable(member)) } }
// generateImplementedMembers generates all the members under the given type or module into ES5. func (gen *es5generator) generateImplementedMembers(typeOrModule typegraph.TGTypeOrModule) *ordered_map.OrderedMap { memberMap := ordered_map.NewOrderedMap() members := typeOrModule.Members() for _, member := range members { // Check for a base member. If one exists, generate the member has an aliased member. _, hasBaseMember := member.BaseMember() if hasBaseMember { memberMap.Set(member, gen.generateImplementedAliasedMember(member)) continue } // Otherwise, generate the member if it has an implementation. srgMember, hasSRGMember := gen.getSRGMember(member) if !hasSRGMember || !srgMember.HasImplementation() { continue } memberMap.Set(member, gen.generateImplementedMember(member)) } return memberMap }