@@ -72,6 +72,7 @@ function! s:_vital_loaded(V) abort
72
72
let s: V = a: V
73
73
let s: string = s: V .import (' Data.String' )
74
74
let s: bytes = s: V .import (' Data.List.Byte' )
75
+ let s: t = s: V .import (' Vim.Type' ).types
75
76
endfunction
76
77
77
78
function ! s: _vital_depends () abort
@@ -135,27 +136,27 @@ endfunction
135
136
136
137
function ! s: _encode (val, settings) abort
137
138
let t = type (a: val )
138
- if t == 0
139
+ if t == # s: t . number
139
140
return a: val
140
- elseif t == 1
141
+ elseif t == # s: t . string
141
142
let s = iconv (a: val , a: settings .from_encoding, ' utf-8' )
142
143
let s = substitute (s , ' [\x01-\x1f\\"]' , ' \=s:control_chars[submatch(0)]' , ' g' )
143
144
return ' "' . s . ' "'
144
- elseif t == 3
145
+ elseif t == # s: t . list
145
146
return s: _encode_list (a: val , a: settings )
146
- elseif t == 4
147
+ elseif t == # s: t . dict
147
148
return s: _encode_dict (a: val , a: settings )
148
- elseif t == 5
149
+ elseif t == # s: t . float
149
150
let val = string (a: val )
150
151
if a: settings .allow_nan
151
152
let val = get (s: float_constants , val, val)
152
153
elseif has_key (s: float_constants , val)
153
154
throw ' vital: Web.JSON: Invalid float value: ' . val
154
155
endif
155
156
return val
156
- elseif t == 6 || t == 7
157
+ elseif t == # s: t .bool || t == # s: t . none
157
158
return get (s: special_constants , a: val )
158
- elseif t == 10
159
+ elseif t == # s: t .blob
159
160
return s: _encode_list (s: bytes .from_blob (a: val ), a: settings )
160
161
endif
161
162
throw ' vital: Web.JSON: Invalid argument: ' . string (a: val )
0 commit comments