wip: save

This commit is contained in:
daiwei 2024-12-12 15:57:55 +08:00
parent 0aa49b069c
commit 6653d42d39
3 changed files with 19 additions and 12 deletions

View File

@ -283,22 +283,29 @@ function processValue(
needRewrite: boolean = true, needRewrite: boolean = true,
): string[] | undefined { ): string[] | undefined {
const { processingRenderEffect, allRenderEffectSeenNames } = context const { processingRenderEffect, allRenderEffectSeenNames } = context
const { declareNames, earlyCheckExps, preAccessNames, preAccessExps } = const {
processingRenderEffect! declareNames,
rewrittenNames,
earlyCheckExps,
preAccessNames,
preAccessExps,
} = processingRenderEffect!
for (const frag of values) { for (const frag of values) {
if (!isArray(frag)) continue if (!isArray(frag)) continue
// [code, newlineIndex, loc, name] -> [(__name), newlineIndex, loc, name] // [code, newlineIndex, loc, name] -> [(__name), newlineIndex, loc, name]
const [newName, , , rawName] = frag const [newName, , , rawName] = frag
if (rawName) { if (rawName) {
let name = rawName.replace(/[^\w]/g, '_') let name = rewrittenNames.get(rawName)
if (!name) {
name = `_${name}` name = `_${rawName.replace(/[^\w]/g, '_')}`
if (!declareNames.has(name)) { if (!declareNames.has(name)) {
if (allRenderEffectSeenNames[name] === undefined) if (allRenderEffectSeenNames[name] === undefined)
allRenderEffectSeenNames[name] = 0 allRenderEffectSeenNames[name] = 0
else name += ++allRenderEffectSeenNames[name] else name += ++allRenderEffectSeenNames[name]
declareNames.add(name) declareNames.add(name)
}
rewrittenNames.set(newName, name)
} }
const preAccessName = `_${name}` const preAccessName = `_${name}`

View File

@ -263,7 +263,7 @@ export interface IREffect {
identifiers: string[] identifiers: string[]
operations: OperationNode[] operations: OperationNode[]
declareNames: Set<string> declareNames: Set<string>
rewrittenNames: Set<string> rewrittenNames: Map<string, string>
earlyCheckExps: string[] earlyCheckExps: string[]
preAccessNames: Set<string> preAccessNames: Set<string>
preAccessExps: Set<string> preAccessExps: Set<string>

View File

@ -169,7 +169,7 @@ export class TransformContext<T extends AllNode = AllNode> {
preAccessNames: new Set<string>(), preAccessNames: new Set<string>(),
preAccessExps: new Set<string>(), preAccessExps: new Set<string>(),
declareNames: new Set<string>(), declareNames: new Set<string>(),
rewrittenNames: new Set<string>(), rewrittenNames: new Map<string, string>(),
inVFor: this.inVFor > 0, inVFor: this.inVFor > 0,
identifiers: Array.from(ids), identifiers: Array.from(ids),
}) })