@@ -155,7 +155,7 @@ func (o *structValue) appendJSON(b []byte) ([]byte, error) {
155
155
}
156
156
b = append (b , s ... )
157
157
b = append (b , ':' )
158
- b , err = v .appendJSON (b )
158
+ b , err = v .appendJSON (o . ctx , b )
159
159
if err != nil {
160
160
return nil , err
161
161
}
@@ -299,7 +299,7 @@ func listAppendJSON(b []byte, l *Iterator) ([]byte, error) {
299
299
if l .Next () {
300
300
for i := 0 ; ; i ++ {
301
301
var err error
302
- b , err = l .Value ().appendJSON (b )
302
+ b , err = l .Value ().appendJSON (l . ctx , b )
303
303
if err != nil {
304
304
return nil , err
305
305
}
@@ -901,19 +901,19 @@ func (v Value) IncompleteKind() Kind {
901
901
902
902
// MarshalJSON marshalls this value into valid JSON.
903
903
func (v Value ) MarshalJSON () (b []byte , err error ) {
904
- b , err = v .appendJSON (nil )
904
+ ctx := newContext (v .idx )
905
+ b , err = v .appendJSON (ctx , nil )
905
906
if err != nil {
906
907
return nil , unwrapJSONError (err )
907
908
}
908
909
return b , nil
909
910
}
910
911
911
- func (v Value ) appendJSON (b []byte ) ([]byte , error ) {
912
+ func (v Value ) appendJSON (ctx * adt. OpContext , b []byte ) ([]byte , error ) {
912
913
v , _ = v .Default ()
913
914
if v .v == nil {
914
915
return append (b , "null" ... ), nil
915
916
}
916
- ctx := newContext (v .idx )
917
917
x := v .eval (ctx )
918
918
919
919
if _ , ok := x .(adt.Resolver ); ok {
0 commit comments