> > > thanks for a prompt response. When I compile a script via > > v8::Script::Compile, it is "bound" to the current context in a certain > way > > (for instance, references to objects in current context), so it is not > > possible to execute a compiled script in other context. > > Correct. If you've compiled a script in context X it doesn't matter > if you're currently in context Y or Z, the script will always be > executed in context X. Note that the behavior should be completely > predictable so if it's not I'd encourage you to report it as a bug. >
Understood. The "unpredictability" I experience is surely only a manifestation of the behavior described above. > > > Also, when exactly are compiled snapshots executed? For example, I do > (now) > > this: > > > > 1) create empty context, > > 2) set global property "Config" as an empty object, > > 3) execute config.js (contains: "Config.someProperty = someValue"). > > > > In this scenario, I want config.js to be pre-compiled snapshot, but it > shall > > not be executed prior to global.Config creation (#2). How can I achieve > > this? > > That's not possible. Snapshots only work for our native js files. > What you can do is use preparsing to speed up loading of your script > (see ScriptData::PreCompile) but there is no way to include user code > in snapshots. > Okay, so the only way to speed up loading is to pre-compile. Do you also please have any suggestions regarding my second idea, that is "freeze / serialize the context so it can be safely reused" ? Thanks for answer, Ondrej Zara > > > -- Christian > > > > --~--~---------~--~----~------------~-------~--~----~ v8-users mailing list [email protected] http://groups.google.com/group/v8-users -~----------~----~----~----~------~----~------~--~---
