Ist es möglich, ein Objekt in der V8 Javascript Engine unveränderlich zu machen? V8 ist in eine C++ - Anwendung eingebettet.Wie kann ich ein Objekt in der Google V8-Javascript-Engine unveränderbar machen?
In meinem Fall habe ich erstellt und ein Array bevölkert (Code ist vereinfacht)
auto arr = v8::Array::New(isolate, 10);
for (auto i = 0; i < 10; ++i)
{
arr->Set(context, i, v8::Integer::New(isolate, i));
}
Ich möchte das resultierende Objekt „read-only“ machen (wie man bekommen könnte durch den Aufruf Object.freeze), bevor Sie es an ein Skript übergeben. Einer meiner Scriptautoren hat sich in eine verwirrende Situation gebracht, indem er versucht hat, dieses Objekt in einem verschachtelten Weg wiederzuverwenden, und ich möchte es dadurch erschweren, das Objekt unveränderlich zu machen.
Ich verstehe, dass ich dies in Javascript (Object.freeze) tun kann, aber ich würde gerne in der Lage sein, es in C++ zu tun, wenn möglich.
Sie könnten alle Funktionen außer Kraft setzen, die es ändern, um nichts zu tun, nehme ich an? Keine gute Antwort, ich weiß. – xaxxon