Right now, we have a bunch of useless duplicate empty maps in various parts of the object code. These are required for objects which don't need anything special in their map, but pose several problems:
They are thread-unsafe. Right now, each of these objects have their map defined in their file as a global, which means there can be data races when creating the map for the first time. Even if there's a low chance of doing this, we still should avoid creating them globally. For this, we could have a place in the VM which gives us the right prototype.
They're separate for no good reason. Even though all of these objects don't do anything interesting with their own map, it duplicates 16 bytes of memory.
We already have a "useless" map, the map-map, which already is used everywhere. Instead of creating separate maps, we could just supply the map-map to objects which don't need a map. This requires moving the construction and storage of the map-map to the VM.
Right now, we have a bunch of useless duplicate empty maps in various parts of the object code. These are required for objects which don't need anything special in their map, but pose several problems:
We already have a "useless" map, the map-map, which already is used everywhere. Instead of creating separate maps, we could just supply the map-map to objects which don't need a map. This requires moving the construction and storage of the map-map to the VM.