Support arbitrary-layout HHVM options
Summary:
HHVM can pass configs with fields of arbitrary layout to HackC
(`hh_single_compile`), and the current Rust JSON deserialization logic expects
only a few listed in `enum GlobalValue`. Instead of specifying missing ones,
support a dynamic layout via the new `serde_json::value::Value` variant.
This may have a slight perf cost, but it's robust because the code doesn't
need to be updated whenever a new layout (i.e., JSON type) is used by HHVM,
which would also silently brake emitter code otherwise.
Reviewed By: shiqicao
Differential Revision:
D21730518
fbshipit-source-id:
3820a6d79395606f533ffca589b4aa9c6cb79293