AFAIK there is (currently) no way to provide global OSM geodata offline and render the vector data just in JS.
Yes there are (a few) frameworks that store OSM as vector offline and preapare an indexing for various tasks (rendering, searching, routing, ...), but all of them are native and usually used in native applications.
Yes there are WebGL/... vector rendering JS libs, but they usually make use of vector streaming services for getting vector tiles and don't use local storage.
IMHO it would be best to make use of an existing native solution to mobile phones and then add your custom data on top e.g. as KML/geoJSON/ ...