Skip to content

Commit 3a67eb7

Browse files
committed
fix: incorrect error message for browser UMD bundle
1 parent fc42438 commit 3a67eb7

File tree

2 files changed

+17
-9
lines changed

2 files changed

+17
-9
lines changed

src/util/error.ts

+7-9
Original file line numberDiff line numberDiff line change
@@ -7,18 +7,16 @@ export abstract class LiquidError extends Error {
77
public context = ''
88
private originalError?: Error
99
public constructor (err: Error | string, token: Token) {
10+
/**
11+
* note: for ES5 targeting, `this` will be replaced by return value of Error(),
12+
* thus everything on `this` will be lost, avoid calling `LiquidError` methods here
13+
*/
1014
super(typeof err === 'string' ? err : err.message)
11-
if (typeof err !== 'string') this.defineUnEnumerable('originalError', err)
12-
this.defineUnEnumerable('token', token)
13-
}
14-
private defineUnEnumerable (property: string, value: unknown) {
15-
Object.defineProperty(this, property, {
16-
value: value,
17-
enumerable: false
18-
})
15+
if (typeof err !== 'string') Object.defineProperty(this, 'originalError', { value: err, enumerable: false })
16+
Object.defineProperty(this, 'token', { value: token, enumerable: false })
1917
}
2018
protected update () {
21-
this.defineUnEnumerable('context', mkContext(this.token))
19+
Object.defineProperty(this, 'context', { value: mkContext(this.token), enumerable: false })
2220
this.message = mkMessage(this.message, this.token)
2321
this.stack = this.message + '\n' + this.context +
2422
'\n' + this.stack

test/e2e/browser.spec.ts

+10
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
const LiquidUMD = require('../../dist/liquid.browser.umd.js').Liquid
2+
3+
describe('browser', function () {
4+
it('should yield unclosed output error', () => {
5+
const engine = new LiquidUMD()
6+
return expect(engine.parseAndRender('{{huh')).rejects.toMatchObject({
7+
message: 'output "{{huh" not closed, line:1, col:1'
8+
})
9+
})
10+
})

0 commit comments

Comments
 (0)