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', () =>