According to Apple, projects should be migrated to libc++[1]:
> Building with libstdc++ was deprecated with Xcode 8 and is not supported in
> Xcode 10 when targeting iOS. C++ projects must now migrate to libc++ and are
> recommended to set a deployment target of macOS 10.9 or later, or iOS 7 or
> later. Besides changing the C++ Standard Library build setting, developers
> should audit hard-coded linker flags and target dependencies to remove
> references to libstdc++ (including -lstdc++, -lstdc++.6.0.9,
> libstdc++.6.0.9.tbd, and libstdc++.6.0.9.dylib). Project dependencies such as
> static archives that were built against libstdc++ will also need to be rebuilt
> against libc++. (40885260)
[1] https://developer.apple.com/documentation/xcode_release_notes/xcode_10_release_notes
Previously we would walk the object graph recursively and convert,
this proves to be extremely slow for large objects due to recursion and
huge amount of v8 contexts that were created
By converting objects to json on the boundary we also correct timeout
semantics and so on.