The configureAll method allows creating JS objects with a potentially large amount of fields.
Similarly to how we have implementation limits for the number of fields in a structure, it probably makes sense to limit the number of properties / methods we allow to setup using configureAll in a JS object.
JS implementations surely have internal limits on object sizes (V8 definitely does), so they will eventually crash or throw if the number of properties is excessively large. To ensure consistency and interoperability between implementations, it's probably useful to have such a limit be spec'ed, similar to other Wasm limits, a value of 10K or 100K properties per prototype and constructor might work.
A value higher than the limit should throw before any method is installed on the "current" prototype / constructor object in the configureAll configuration data (so semantically at the point where the vector size in the configuration data is located).
The
configureAllmethod allows creating JS objects with a potentially large amount of fields.Similarly to how we have implementation limits for the number of fields in a structure, it probably makes sense to limit the number of properties / methods we allow to setup using
configureAllin a JS object.JS implementations surely have internal limits on object sizes (V8 definitely does), so they will eventually crash or throw if the number of properties is excessively large. To ensure consistency and interoperability between implementations, it's probably useful to have such a limit be spec'ed, similar to other Wasm limits, a value of 10K or 100K properties per prototype and constructor might work.
A value higher than the limit should throw before any method is installed on the "current" prototype / constructor object in the
configureAllconfiguration data (so semantically at the point where the vector size in the configuration data is located).