Das folgende Programm basiert auf dem Beispiel auf der Seite Erste Schritte . Ich habe drei Änderungen vorgenommen, um ein Problem zu demonstrieren:
Der erste Lauf funktioniert gut. Der zweite Fehler: v8 ruft V8_Fatal () in Deoptimizer :: DoComputeCompiledStubFrame () auf, weil descriptor- & gt; register_param_count_ == -1.
Mache ich hier etwas falsch? Wie kann ich es beheben?
%Vor%HINWEISE:
OK, habe es gefunden. Das Problem ist ein nicht initialisierter Code-Stub für Wörterbuchlasten - Ihr Anwendungsfall löst dies als Fehler aus, da der Stub nicht auf andere Weise initialisiert wird, zB durch Kompilierung.
Unten ist ein Patch gegen die v8-Stammversion 22629, der das Problem für mich behebt, getestet unter Windows 2010 mit VS 2010 und Linux mit g ++ 4.9. Bitte lassen Sie mich wissen, wie Sie damit umgehen:
%Vor% Um das Problem zu umgehen, wenn Sie vorerst keinen eigenen V8 kompilieren möchten, können Sie Code für jedes Isolate
ausführen, das KeyedLoadDictionaryElementStub
direkt verwendet, bevor Sie den Code ausführen Stub. So etwas wie das Folgende funktioniert für mich:
Tags und Links v8 embedded-v8