From f129024d69c4e2c34934be9e81522acb46258cd3 Mon Sep 17 00:00:00 2001 From: Eduardo San Martin Morote Date: Thu, 8 Mar 2018 17:24:09 +0100 Subject: [PATCH] fix(codegen): support filters with () in older browsers (#7545) Fix #7544 Make sure no extra , is added at the end of the call so it also work with older browsers --- src/compiler/parser/filter-parser.js | 2 +- test/unit/modules/compiler/codegen.spec.js | 7 +++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/src/compiler/parser/filter-parser.js b/src/compiler/parser/filter-parser.js index ca8ead850ae..10939d3fb34 100644 --- a/src/compiler/parser/filter-parser.js +++ b/src/compiler/parser/filter-parser.js @@ -92,6 +92,6 @@ function wrapFilter (exp: string, filter: string): string { } else { const name = filter.slice(0, i) const args = filter.slice(i + 1) - return `_f("${name}")(${exp},${args}` + return `_f("${name}")(${exp}${args !== ')' ? ',' + args : args}` } } diff --git a/test/unit/modules/compiler/codegen.spec.js b/test/unit/modules/compiler/codegen.spec.js index 2ecdca93828..a072904ece0 100644 --- a/test/unit/modules/compiler/codegen.spec.js +++ b/test/unit/modules/compiler/codegen.spec.js @@ -44,6 +44,13 @@ describe('codegen', () => { ) }) + it('generate filters with no arguments', () => { + assertCodegen( + '
{{ d | e() }}
', + `with(this){return _c('div',[_v(_s(_f("e")(d)))])}` + ) + }) + it('generate v-for directive', () => { assertCodegen( '
  • ',