diff --git a/src/tokens/tag-token.ts b/src/tokens/tag-token.ts
index cb7598074..e42268e75 100644
--- a/src/tokens/tag-token.ts
+++ b/src/tokens/tag-token.ts
@@ -5,6 +5,7 @@ import type { NormalizedFullOptions } from '../liquid-options'
export class TagToken extends DelimitedToken {
public name: string
public tokenizer: Tokenizer
+ public readonly args: string;
public constructor (
input: string,
begin: number,
@@ -20,9 +21,6 @@ export class TagToken extends DelimitedToken {
this.name = this.tokenizer.readTagName()
this.tokenizer.assert(this.name, `illegal tag syntax, tag name expected`)
this.tokenizer.skipBlank()
- }
-
- get args (): string {
- return this.tokenizer.input.slice(this.tokenizer.p, this.contentRange[1])
+ this.args = this.tokenizer.input.slice(this.tokenizer.p, this.contentRange[1])
}
}
diff --git a/test/e2e/issues.spec.ts b/test/e2e/issues.spec.ts
index 619241f10..65ed98536 100644
--- a/test/e2e/issues.spec.ts
+++ b/test/e2e/issues.spec.ts
@@ -1,4 +1,4 @@
-import { TopLevelToken, TagToken, Tokenizer, Context, Liquid, Drop, toValueSync, LiquidError } from '../..'
+import { TopLevelToken, TagToken, Tokenizer, Context, Liquid, Drop, toValueSync, LiquidError, IfTag } from '../..'
const LiquidUMD = require('../../dist/liquid.browser.umd.js').Liquid
describe('Issues', function () {
@@ -558,4 +558,11 @@ describe('Issues', function () {
CSharp 2 Posts:page2,page4,
CPP 1 Posts:page0,`)
})
+ it('if tag condition, the token args is empty #796', () => {
+ const tpl = 'Hello, {% if name %} {{ name }} {% else %} user {% endif %}'
+ const engine = new Liquid()
+ const parsed = engine.parse(tpl)
+ const ifToken = parsed[1]
+ expect((ifToken as IfTag).token.args).toEqual('name')
+ })
})