From a00945cad7ad6f70e7dfc70d3c5c6934904777d8 Mon Sep 17 00:00:00 2001 From: jamelait Date: Sat, 24 Aug 2019 23:05:51 +0200 Subject: [PATCH] fix: escape filter when input is undefined --- src/builtin/filters/html.ts | 2 +- test/integration/builtin/filters/html.ts | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/src/builtin/filters/html.ts b/src/builtin/filters/html.ts index 4fb1977a2..5e32f9cac 100644 --- a/src/builtin/filters/html.ts +++ b/src/builtin/filters/html.ts @@ -14,7 +14,7 @@ const unescapeMap = { } function escape (str: string) { - return String(str).replace(/&|<|>|"|'/g, m => escapeMap[m]) + return !!str ? String(str).replace(/&|<|>|"|'/g, m => escapeMap[m]) : "" } function unescape (str: string) { diff --git a/test/integration/builtin/filters/html.ts b/test/integration/builtin/filters/html.ts index cd63c286a..dd5088c97 100644 --- a/test/integration/builtin/filters/html.ts +++ b/test/integration/builtin/filters/html.ts @@ -12,6 +12,9 @@ describe('filters/html', function () { it('should escape function', function () { return test('{{ func | escape }}', 'function () { }') }) + it('should escape undefined', function () { + return test('{{ nonExistent.value | escape }}', '') + }) }) describe('escape_once', function () { it('should do escape', () =>