@@ -7,18 +7,16 @@ export abstract class LiquidError extends Error {
7
7
public context = ''
8
8
private originalError ?: Error
9
9
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
+ */
10
14
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 } )
19
17
}
20
18
protected update ( ) {
21
- this . defineUnEnumerable ( 'context' , mkContext ( this . token ) )
19
+ Object . defineProperty ( this , 'context' , { value : mkContext ( this . token ) , enumerable : false } )
22
20
this . message = mkMessage ( this . message , this . token )
23
21
this . stack = this . message + '\n' + this . context +
24
22
'\n' + this . stack
0 commit comments