in src/parser/libflowparser.h [62:95]
T convert_json(value v) {
if (Is_long(v)) {
if (Long_val(v) == 0) {
return convert_null();
}
// no other immediate values should exist
return convert_undefined(); // TODO: raise v8 exception
};
switch (Tag_val(v)) {
// JObject
case 0:
return convert_object(Field(v, 0));
// JArray
case 1:
return convert_array(Field(v, 0));
// JString
case 2:
return convert_string(String_val(Field(v, 0)));
// JNumber
case 3:
return convert_number(Double_val(Field(v, 0)));
// JBool
case 4:
return convert_bool(Long_val(Field(v, 0)));
default:
// no other tags exist!
return convert_undefined(); // TODO: raise v8 exception
}
}