renamer

package
v0.14.15 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 31, 2022 License: MIT Imports: 8 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func AssignNestedScopeSlots

func AssignNestedScopeSlots(moduleScope *js_ast.Scope, symbols []js_ast.Symbol) (slotCounts js_ast.SlotCounts)

Returns the number of nested slots

func ComputeReservedNames

func ComputeReservedNames(moduleScopes []*js_ast.Scope, symbols js_ast.SymbolMap) map[string]uint32

Types

type DeferredTopLevelSymbol

type DeferredTopLevelSymbol struct {
	StableSourceIndex uint32
	Ref               js_ast.Ref
	Count             uint32
}

The sort order here is arbitrary but needs to be consistent between builds. The InnerIndex should be stable because the parser for a single file is single-threaded and deterministically assigns out InnerIndex values sequentially. But the SourceIndex should be unstable because the main thread assigns out source index values sequentially to newly-discovered dependencies in a multi-threaded producer/consumer relationship. So instead we use the index of the source in the DFS order over all entry points for stability.

type DeferredTopLevelSymbolArray

type DeferredTopLevelSymbolArray []DeferredTopLevelSymbol

This type is just so we can use Go's native sort function

func (DeferredTopLevelSymbolArray) Len

func (DeferredTopLevelSymbolArray) Less

func (a DeferredTopLevelSymbolArray) Less(i int, j int) bool

func (DeferredTopLevelSymbolArray) Swap

func (a DeferredTopLevelSymbolArray) Swap(i int, j int)

type ExportRenamer

type ExportRenamer struct {
	// contains filtered or unexported fields
}

func (*ExportRenamer) NextMinifiedName

func (r *ExportRenamer) NextMinifiedName() string

func (*ExportRenamer) NextRenamedName

func (r *ExportRenamer) NextRenamedName(name string) string

type MinifyRenamer

type MinifyRenamer struct {
	// contains filtered or unexported fields
}

func NewMinifyRenamer

func NewMinifyRenamer(symbols js_ast.SymbolMap, firstTopLevelSlots js_ast.SlotCounts, reservedNames map[string]uint32) *MinifyRenamer

func (*MinifyRenamer) AccumulateSymbolCount

func (r *MinifyRenamer) AccumulateSymbolCount(
	topLevelSymbols *DeferredTopLevelSymbolArray,
	ref js_ast.Ref,
	count uint32,
	stableSourceIndices []uint32,
)

func (*MinifyRenamer) AccumulateSymbolUseCounts

func (r *MinifyRenamer) AccumulateSymbolUseCounts(
	topLevelSymbols *DeferredTopLevelSymbolArray,
	symbolUses map[js_ast.Ref]js_ast.SymbolUse,
	stableSourceIndices []uint32,
)

func (*MinifyRenamer) AllocateTopLevelSymbolSlots

func (r *MinifyRenamer) AllocateTopLevelSymbolSlots(topLevelSymbols DeferredTopLevelSymbolArray)

The parallel part of the symbol count accumulation algorithm above processes nested symbols and generates on an array of top-level symbols to process later. After the parallel part has finished, that array of top-level symbols is passed to this function which processes them in serial.

func (*MinifyRenamer) AssignNamesByFrequency

func (r *MinifyRenamer) AssignNamesByFrequency(minifier *js_ast.NameMinifier)

func (*MinifyRenamer) NameForSymbol

func (r *MinifyRenamer) NameForSymbol(ref js_ast.Ref) string

type NumberRenamer

type NumberRenamer struct {
	// contains filtered or unexported fields
}

func NewNumberRenamer

func NewNumberRenamer(symbols js_ast.SymbolMap, reservedNames map[string]uint32) *NumberRenamer

func (*NumberRenamer) AddTopLevelSymbol

func (r *NumberRenamer) AddTopLevelSymbol(ref js_ast.Ref)

func (*NumberRenamer) AssignNamesByScope

func (r *NumberRenamer) AssignNamesByScope(nestedScopes map[uint32][]*js_ast.Scope)

func (*NumberRenamer) NameForSymbol

func (r *NumberRenamer) NameForSymbol(ref js_ast.Ref) string

type Renamer

type Renamer interface {
	NameForSymbol(ref js_ast.Ref) string
}

func NewNoOpRenamer

func NewNoOpRenamer(symbols js_ast.SymbolMap) Renamer

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL