Skip to content

Commit 648936d

Browse files
committed
Web.JSON: Use Vim.Type for detecting type.
1 parent da847e3 commit 648936d

File tree

1 file changed

+9
-8
lines changed

1 file changed

+9
-8
lines changed

autoload/vital/__vital__/Web/JSON.vim

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,7 @@ function! s:_vital_loaded(V) abort
6969
let s:V = a:V
7070
let s:string = s:V.import('Data.String')
7171
let s:bytes = s:V.import('Data.List.Byte')
72+
let s:t = s:V.import('Vim.Type').types
7273
endfunction
7374

7475
function! s:_vital_depends() abort
@@ -132,35 +133,35 @@ endfunction
132133

133134
function! s:_encode(val, settings) abort
134135
let t = type(a:val)
135-
if t == 0
136+
if t == s:t.number
136137
return a:val
137-
elseif t == 1
138+
elseif t == s:t.string
138139
let s = iconv(a:val, a:settings.from_encoding, 'utf-8')
139140
let s = substitute(s, '[\x01-\x1f\\"]', '\=s:control_chars[submatch(0)]', 'g')
140141
return '"' . s . '"'
141-
elseif t == 2
142+
elseif t == s:t.func
142143
if s:const.true == a:val
143144
return 'true'
144145
elseif s:const.false == a:val
145146
return 'false'
146147
elseif s:const.null == a:val
147148
return 'null'
148149
endif
149-
elseif t == 3
150+
elseif t == s:t.list
150151
return s:_encode_list(a:val, a:settings)
151-
elseif t == 4
152+
elseif t == s:t.dict
152153
return s:_encode_dict(a:val, a:settings)
153-
elseif t == 5
154+
elseif t == s:t.float
154155
let val = string(a:val)
155156
if a:settings.allow_nan
156157
let val = get(s:float_constants, val, val)
157158
elseif has_key(s:float_constants, val)
158159
throw 'vital: Web.JSON: Invalid float value: ' . val
159160
endif
160161
return val
161-
elseif t == 6 || t == 7
162+
elseif t == s:t.bool || t == s:t.none
162163
return get(s:special_constants, a:val)
163-
elseif t == 10
164+
elseif t == s:t.blob
164165
return s:_encode_list(s:bytes.from_blob(a:val), a:settings)
165166
endif
166167
throw 'vital: Web.JSON: Invalid argument: ' . string(a:val)

0 commit comments

Comments
 (0)