diff --git a/packages/compiler-vapor/__tests__/__snapshots__/compile.spec.ts.snap b/packages/compiler-vapor/__tests__/__snapshots__/compile.spec.ts.snap index 067610dc7..b58332543 100644 --- a/packages/compiler-vapor/__tests__/__snapshots__/compile.spec.ts.snap +++ b/packages/compiler-vapor/__tests__/__snapshots__/compile.spec.ts.snap @@ -171,7 +171,7 @@ exports[`compile > dynamic root 1`] = ` "import { createTextNode as _createTextNode } from 'vue/vapor'; export function render(_ctx) { - const n0 = _createTextNode([1, 2]) + const n0 = _createTextNode(() => [1, 2]) return n0 }" `; @@ -225,7 +225,7 @@ exports[`compile > static + dynamic root 1`] = ` "import { createTextNode as _createTextNode } from 'vue/vapor'; export function render(_ctx) { - const n0 = _createTextNode([1, 2, "3", 4, 5, "6", 7, 8, "9", 'A', 'B']) + const n0 = _createTextNode(() => [1, 2, "3", 4, 5, "6", 7, 8, "9", 'A', 'B']) return n0 }" `; diff --git a/packages/compiler-vapor/__tests__/transforms/__snapshots__/vBind.spec.ts.snap b/packages/compiler-vapor/__tests__/transforms/__snapshots__/vBind.spec.ts.snap index 5e1e43c88..16e60bd84 100644 --- a/packages/compiler-vapor/__tests__/transforms/__snapshots__/vBind.spec.ts.snap +++ b/packages/compiler-vapor/__tests__/transforms/__snapshots__/vBind.spec.ts.snap @@ -181,6 +181,18 @@ export function render(_ctx) { }" `; +exports[`compiler v-bind > number value 1`] = ` +"import { resolveComponent as _resolveComponent, createComponent as _createComponent } from 'vue/vapor'; + +export function render(_ctx) { + const _component_Comp = _resolveComponent("Comp") + const n0 = _createComponent(_component_Comp, [ + { depth: () => (0) } + ], null, true) + return n0 +}" +`; + exports[`compiler v-bind > should error if empty expression 1`] = ` "import { setInheritAttrs as _setInheritAttrs, template as _template } from 'vue/vapor'; const t0 = _template("
") diff --git a/packages/compiler-vapor/__tests__/transforms/vBind.spec.ts b/packages/compiler-vapor/__tests__/transforms/vBind.spec.ts index 0097d0b7c..a419f55dd 100644 --- a/packages/compiler-vapor/__tests__/transforms/vBind.spec.ts +++ b/packages/compiler-vapor/__tests__/transforms/vBind.spec.ts @@ -526,4 +526,10 @@ describe('compiler v-bind', () => { expect(code).contains('renderEffect') expect(code).contains('_setAttr(n0, "foo-bar", _ctx.fooBar, true)') }) + + test('number value', () => { + const { code } = compileWithVBind(``) + expect(code).matchSnapshot() + expect(code).contains('{ depth: () => (0) }') + }) }) diff --git a/packages/compiler-vapor/src/utils.ts b/packages/compiler-vapor/src/utils.ts index a304e6a4a..319eb9f49 100644 --- a/packages/compiler-vapor/src/utils.ts +++ b/packages/compiler-vapor/src/utils.ts @@ -61,11 +61,7 @@ export function getLiteralExpressionValue( exp: SimpleExpressionNode, ): number | string | boolean | null { if (exp.ast) { - if ( - ['StringLiteral', 'NumericLiteral', 'BigIntLiteral'].includes( - exp.ast.type, - ) - ) { + if (exp.ast.type === 'StringLiteral') { return (exp.ast as StringLiteral | NumericLiteral | BigIntLiteral).value } else if ( exp.ast.type === 'TemplateLiteral' &&