The V8 bindings for R create a context and then set the 'console' property to implement console.log() and console.warn()
v8::Local<v8::ObjectTemplate> console = v8::ObjectTemplate::New(isolate);
global->Set(String::NewFromUtf8(isolate, "console"), console);
console->Set(String::NewFromUtf8(isolate, "log"),
v8::FunctionTemplate::New(isolate, ConsoleLog));
...
Persistent<Context> context = Context::New(isolate, NULL, global);
This works on all systems except on Fedora (v8 6.7.17) it crashes when initiating the context:
# Fatal error in ../../src/objects.cc, line 5983
# Debug check failed: !it.IsFound().
After some trial and error I discovered that it does not crash if I change the name of the property something else than "console". Hence I suppose this name is somehow reserved on this version of V8? Is there a some way to override this, or alternatively test if 'global.console' has been reserved so I should not attempt to set it?