src: pass the v8::Context to CreateEnvironment
authorDean McNamee <dean@gmail.com>
Wed, 9 Jul 2014 11:36:50 +0000 (13:36 +0200)
committerFedor Indutny <fedor@indutny.com>
Sun, 13 Jul 2014 19:07:46 +0000 (23:07 +0400)
Pass in the v8::Context, instead of creating it
within CreateEnvironment.  This allows callers
to use a pre-existing context.

Signed-off-by: Fedor Indutny <fedor@indutny.com>
src/node.cc

index e89d0a7..61a5cfd 100644 (file)
@@ -3527,13 +3527,13 @@ int EmitExit(Environment* env) {
 
 
 Environment* CreateEnvironment(Isolate* isolate,
+                               Handle<Context> context,
                                int argc,
                                const char* const* argv,
                                int exec_argc,
                                const char* const* exec_argv) {
   HandleScope handle_scope(isolate);
 
-  Local<Context> context = Context::New(isolate);
   Context::Scope context_scope(context);
   Environment* env = Environment::New(context);
 
@@ -3605,8 +3605,10 @@ int Start(int argc, char** argv) {
   V8::Initialize();
   {
     Locker locker(node_isolate);
-    Environment* env =
-        CreateEnvironment(node_isolate, argc, argv, exec_argc, exec_argv);
+    HandleScope handle_scope(node_isolate);
+    Local<Context> context = Context::New(node_isolate);
+    Environment* env = CreateEnvironment(
+        node_isolate, context, argc, argv, exec_argc, exec_argv);
     // Assign env to the debugger's context
     if (debugger_running) {
       HandleScope scope(env->isolate());