Documentation ¶
Index ¶
- func AssignNestedScopeSlots(moduleScope *js_ast.Scope, symbols []js_ast.Symbol) (slotCounts js_ast.SlotCounts)
- func ComputeReservedNames(moduleScopes []*js_ast.Scope, symbols js_ast.SymbolMap) map[string]uint32
- type DeferredTopLevelSymbol
- type DeferredTopLevelSymbolArray
- type ExportRenamer
- type MinifyRenamer
- func (r *MinifyRenamer) AccumulateSymbolCount(topLevelSymbols *DeferredTopLevelSymbolArray, ref js_ast.Ref, count uint32, ...)
- func (r *MinifyRenamer) AccumulateSymbolUseCounts(topLevelSymbols *DeferredTopLevelSymbolArray, ...)
- func (r *MinifyRenamer) AllocateTopLevelSymbolSlots(topLevelSymbols DeferredTopLevelSymbolArray)
- func (r *MinifyRenamer) AssignNamesByFrequency(minifier *js_ast.NameMinifier)
- func (r *MinifyRenamer) NameForSymbol(ref js_ast.Ref) string
- type NumberRenamer
- type Renamer
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
Types ¶
type DeferredTopLevelSymbol ¶
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 (a DeferredTopLevelSymbolArray) Len() int
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