core icon indicating copy to clipboard operation
core copied to clipboard

fix(compiler-vapor): prevent caching variables in function expression

Open zhiyuanzmj opened this issue 6 months ago • 3 comments

 const { ir, code } = compileWithTransformRef(
    `<div :ref="bar => foo = bar" />`,
    { inline: true },
  )
  expect(code).toMatchInlineSnapshot(`
    "
      const _setTemplateRef = _createTemplateRefSetter()
      const n0 = t0()
      let r0
      _renderEffect(() => {
        const _bar = bar 
     // ^^^^^^^^^^^^^^^^
        r0 = _setTemplateRef(n0, bar => foo = bar, r0)
      })
      return n0
    "
  `)

const _bar = bar shouldn't be generated

zhiyuanzmj avatar Apr 26 '25 14:04 zhiyuanzmj