`getNativeObject` doesn't check if the given js object corresponds to the expected native type. Indeed, if we pass `Car` js object instead of a `Brand`, `getNativeObject` casts a native `Car` pointer as a `Brand` native object, leading to unknown behavior. See https://github.com/lightpanda-io/jsruntime-lib/blob/main/src/engines/v8/generate.zig#L727 To ways are possible to do the check: * use a C++ function to check if the js object prototype corresponds to the expected native type * add a second internal field with an integer identifying the native type
getNativeObjectdoesn't check if the given js object corresponds to the expected native type.Indeed, if we pass
Carjs object instead of aBrand,getNativeObjectcasts a nativeCarpointer as aBrandnative object, leading to unknown behavior.See https://github.com/lightpanda-io/jsruntime-lib/blob/main/src/engines/v8/generate.zig#L727
To ways are possible to do the check: