mirror of
https://github.com/harttle/liquidjs.git
synced 2026-09-16 04:40:39 -07:00
fix: handle undefined replacement argument in replace filter (#864)
This commit is contained in:
@@ -137,6 +137,7 @@ export function capitalize (this: FilterImpl, str: string) {
|
|||||||
export function replace (this: FilterImpl, v: string, pattern: string, replacement: string) {
|
export function replace (this: FilterImpl, v: string, pattern: string, replacement: string) {
|
||||||
const str = stringify(v)
|
const str = stringify(v)
|
||||||
pattern = stringify(pattern)
|
pattern = stringify(pattern)
|
||||||
|
replacement = stringify(replacement)
|
||||||
this.context.memoryLimit.use(str.length + pattern.length + replacement.length)
|
this.context.memoryLimit.use(str.length + pattern.length + replacement.length)
|
||||||
return str.split(pattern).join(replacement)
|
return str.split(pattern).join(replacement)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -109,6 +109,14 @@ describe('filters/string', function () {
|
|||||||
return test('{{ "Take my protein pills and put my helmet on" | replace: "my", "your" }}',
|
return test('{{ "Take my protein pills and put my helmet on" | replace: "my", "your" }}',
|
||||||
'Take your protein pills and put your helmet on')
|
'Take your protein pills and put your helmet on')
|
||||||
})
|
})
|
||||||
|
it('should support replace with undefined replacement', function () {
|
||||||
|
return test('{{ "Take my protein pills and put my helmet on" | replace: "my" }}',
|
||||||
|
'Take protein pills and put helmet on')
|
||||||
|
})
|
||||||
|
it('should support replace with undefined variable as replacement', function () {
|
||||||
|
return test('{{ "Take my protein pills and put my helmet on" | replace: "my", missing_variable }}',
|
||||||
|
'Take protein pills and put helmet on')
|
||||||
|
})
|
||||||
it('should support replace_first', function () {
|
it('should support replace_first', function () {
|
||||||
return test('{% assign my_string = "Take my protein pills and put my helmet on" %}\n' +
|
return test('{% assign my_string = "Take my protein pills and put my helmet on" %}\n' +
|
||||||
'{{ my_string | replace_first: "my", "your" }}',
|
'{{ my_string | replace_first: "my", "your" }}',
|
||||||
|
|||||||
Reference in New Issue
Block a user