Skip to content

Remove non-primitive prototypes from the VM

Yorick Peterse requested to merge remove-non-primitive-prototypes into master

This removes all non-primitive prototypes (File, Socket, etc) from the VM. Instead, when allocating these objects the object to use as the prototype is provided as an argument. This gives the runtime greater control over how these objects are set up, and removes some runtime logic from the VM.

This setup also allows us to remove the need for wrapping primitive file objects in std::fs::file. Instead, we can now initialize the high-level file types directly.

Merge request reports