exports[`compile > expression parsing > v-bind 1`] = `
"
const n0 = t0()
- _renderEffect(() => {
- __key_value = key.value;__foo = _unref(foo);__key_value = key.value+1]()
-
- (_key_value__key_value_foo__foo = _setDynamicProps(n0, _key_value__key_value_foo__foo, [{ [key.value+1]: _unref(foo)[key.value+1]() }], true))
- })
+ let _key_value_foo
+ _renderEffect(() =>
+ _key_value_foo = _setDynamicProps(n0, _key_value_foo, [{ [key.value+1]: _unref(foo)[key.value+1]() }], true))
return n0
"
`;
export function render(_ctx, $props, $emit, $attrs, $slots) {
const n0 = t0()
- _renderEffect(() => {
- __obj = _ctx.obj
-
- (_obj__obj = _setDynamicProps(n0, _obj__obj, [_ctx.obj], true))
- })
+ let _prev_obj
+ _renderEffect(() =>
+ _prev_obj = _setDynamicProps(n0, _prev_obj, [_ctx.obj], true))
return n0
}"
`;
export function render(_ctx, $props, $emit, $attrs, $slots) {
const n0 = t0()
- _renderEffect(() => {
- __obj = _ctx.obj
-
- (_obj__obj = _setDynamicProps(n0, _obj__obj, [{ id: "foo" }, _ctx.obj], true))
- })
+ let _prev_obj
+ _renderEffect(() =>
+ _prev_obj = _setDynamicProps(n0, _prev_obj, [{ id: "foo" }, _ctx.obj], true))
return n0
}"
`;
export function render(_ctx, $props, $emit, $attrs, $slots) {
const n0 = t0()
- _renderEffect(() => {
- __obj = _ctx.obj
-
- (_obj__obj = _setDynamicProps(n0, _obj__obj, [_ctx.obj, { id: "foo" }], true))
- })
+ let _prev_obj
+ _renderEffect(() =>
+ _prev_obj = _setDynamicProps(n0, _prev_obj, [_ctx.obj, { id: "foo" }], true))
return n0
}"
`;
export function render(_ctx) {
const n0 = t0()
- _renderEffect(() => {
- __obj = _ctx.obj
-
- (_obj__obj = _setDynamicProps(n0, _obj__obj, [{ id: "foo" }, _ctx.obj, { class: "bar" }], true))
- })
+ let _prev_obj
+ _renderEffect(() =>
+ _prev_obj = _setDynamicProps(n0, _prev_obj, [{ id: "foo" }, _ctx.obj, { class: "bar" }], true))
return n0
}"
`;
export function render(_ctx) {
const n0 = t0()
- let _id, __id, _id__id
+ let _id, _prev_id, __id
_renderEffect(() => {
__id = _ctx.id
if(_id !== __id) {
- (_id__id = _setDynamicProp(n0, "fooBar", _id__id, _ctx.id))
+ _prev_id = _setDynamicProp(n0, "fooBar", _prev_id, _ctx.id)
_id = __id
}
})
export function render(_ctx) {
const n0 = t0()
- _renderEffect(() => {
- __foo = _ctx.foo;__id = _ctx.id
-
- (_foo__foo_id__id = _setDynamicProps(n0, _foo__foo_id__id, [{ [_camelize(_ctx.foo)]: _ctx.id }], true))
- })
+ let _foo_id
+ _renderEffect(() =>
+ _foo_id = _setDynamicProps(n0, _foo_id, [{ [_camelize(_ctx.foo)]: _ctx.id }], true))
return n0
}"
`;
export function render(_ctx) {
const n0 = t0()
- let _fooBar, __fooBar, _fooBar__fooBar
+ let _fooBar, _prev_fooBar, __fooBar
_renderEffect(() => {
__fooBar = _ctx.fooBar
if(_fooBar !== __fooBar) {
- (_fooBar__fooBar = _setDynamicProp(n0, "fooBar", _fooBar__fooBar, _ctx.fooBar))
+ _prev_fooBar = _setDynamicProp(n0, "fooBar", _prev_fooBar, _ctx.fooBar)
_fooBar = __fooBar
}
})
export function render(_ctx) {
const n0 = t0()
- _renderEffect(() => {
- __fooBar = _ctx.fooBar;__id = _ctx.id
-
- (_fooBar__fooBar_id__id = _setDynamicProps(n0, _fooBar__fooBar_id__id, [{ ["." + _ctx.fooBar]: _ctx.id }], true))
- })
+ let _fooBar_id
+ _renderEffect(() =>
+ _fooBar_id = _setDynamicProps(n0, _fooBar_id, [{ ["." + _ctx.fooBar]: _ctx.id }], true))
return n0
}"
`;
export function render(_ctx) {
const n0 = t0()
- let _foo, __foo, _foo__foo
+ let _foo, _prev_foo, __foo
_renderEffect(() => {
__foo = _ctx.foo
if(_foo !== __foo) {
- (_foo__foo = _setDynamicProp(n0, "value", _foo__foo, _ctx.foo))
+ _prev_foo = _setDynamicProp(n0, "value", _prev_foo, _ctx.foo)
_foo = __foo
}
})
export function render(_ctx) {
const n0 = t0()
- _renderEffect(() => {
- __id = _ctx.id;__title = _ctx.title
-
- (_id__id_title__title = _setDynamicProps(n0, _id__id_title__title, [{ [_ctx.id]: _ctx.id, [_ctx.title]: _ctx.title }], true))
- })
+ let _id_title
+ _renderEffect(() =>
+ _id_title = _setDynamicProps(n0, _id_title, [{ [_ctx.id]: _ctx.id, [_ctx.title]: _ctx.title }], true))
return n0
}"
`;
export function render(_ctx) {
const n0 = t0()
- _renderEffect(() => {
- __id = _ctx.id
-
- (_id__id = _setDynamicProps(n0, _id__id, [{ [_ctx.id]: _ctx.id, foo: "bar", checked: "" }], true))
- })
+ let _prev_id
+ _renderEffect(() =>
+ _prev_id = _setDynamicProps(n0, _prev_id, [{ [_ctx.id]: _ctx.id, foo: "bar", checked: "" }], true))
return n0
}"
`;
export function render(_ctx) {
const n0 = t0()
- let _camelCase, __camelCase, _camelCase__camelCase
+ let _camelCase, _prev_camelCase, __camelCase
_renderEffect(() => {
__camelCase = _ctx.camelCase
if(_camelCase !== __camelCase) {
- (_camelCase__camelCase = _setDynamicProp(n0, "camel-case", _camelCase__camelCase, _ctx.camelCase))
+ _prev_camelCase = _setDynamicProp(n0, "camel-case", _prev_camelCase, _ctx.camelCase)
_camelCase = __camelCase
}
})
const n0 = t0()
_withDirectives(n0, [[_vModelDynamic, () => _ctx.model]])
_delegate(n0, "update:modelValue", () => $event => (_ctx.model = $event))
- _renderEffect(() => {
- __obj = _ctx.obj
-
- (_obj__obj = _setDynamicProps(n0, _obj__obj, [_ctx.obj], true))
- })
+ let _prev_obj
+ _renderEffect(() =>
+ _prev_obj = _setDynamicProps(n0, _prev_obj, [_ctx.obj], true))
return n0
}"
`;
const operationsExps = genOperations(operations, context)
const { processingRenderEffect } = context
- const { declareNames, earlyCheckExps, preAccessExps } =
+ const { declareNames, earlyCheckExps, preAccessNames, preAccessExps } =
processingRenderEffect!
if (declareNames.size) {
allDeclareNames.add([...declareNames].join(', '))
}
+ if (preAccessNames.size) {
+ allDeclareNames.add([...preAccessNames].join(', '))
+ }
const accessExps: CodeFragment[] =
preAccessExps.size > 0 ? [[...preAccessExps].join(';'), NEWLINE] : []
let shouldWrapInParentheses: boolean = false
let prevValueName
if (shouldCacheRenderEffectDeps()) {
- const { declareNames, operations } = processingRenderEffect!
+ const { declareNames, preAccessNames, preAccessExps } =
+ processingRenderEffect!
const needReturnValue = helpersNeedCachedReturnValue.includes(helperName)
processValues(context, values, !needReturnValue)
// if the operation needs to cache the return value and has multiple declareNames,
const names = [...declareNames]
prevValueName =
declareNames.size === 1 ? `_prev${names[0]}` : names.join('')
- declareNames.add(prevValueName)
- }
- shouldWrapInParentheses = operations.length === 1
- if (helpersNoNeedCachedDeps.includes(helperName)) {
- declareNames.clear()
- processingRenderEffect!.earlyCheckExps = []
+ if (helpersNoNeedCachedDeps.includes(helperName)) {
+ preAccessNames.clear()
+ preAccessExps.clear()
+ declareNames.clear()
+ processingRenderEffect!.earlyCheckExps = []
+ }
+ declareNames.add(prevValueName)
}
+ shouldWrapInParentheses = false //operations.length === 1
}
return { prevValueName, shouldWrapInParentheses }
needRewrite: boolean = true,
): string[] | undefined {
const { processingRenderEffect, allRenderEffectSeenNames } = context
- const { declareNames, earlyCheckExps, preAccessExps } =
+ const { declareNames, earlyCheckExps, preAccessNames, preAccessExps } =
processingRenderEffect!
// const isSingleLine = operations.length === 1
else name += ++allRenderEffectSeenNames[name]
declareNames.add(name)
}
+
const preAccessName = `_${name}`
- declareNames.add(`${preAccessName}`)
+ preAccessNames.add(`${preAccessName}`)
preAccessExps.add(`${preAccessName} = ${newName}`)
earlyCheckExps.push(`${name} !== ${preAccessName}`)
if (needRewrite) {
declareNames: Set<string>
rewrittenNames: Set<string>
earlyCheckExps: string[]
+ preAccessNames: Set<string>
preAccessExps: Set<string>
inVFor: boolean
}
expressions,
operations,
earlyCheckExps: [],
+ preAccessNames: new Set<string>(),
preAccessExps: new Set<string>(),
declareNames: new Set<string>(),
rewrittenNames: new Set<string>(),