test: drop Isolate::GetCurrent() from addon tests
authorBen Noordhuis <info@bnoordhuis.nl>
Tue, 18 Aug 2015 19:02:52 +0000 (21:02 +0200)
committerBen Noordhuis <info@bnoordhuis.nl>
Tue, 18 Aug 2015 19:27:43 +0000 (21:27 +0200)
v8::Isolate::GetCurrent() is not exactly deprecated at this point but
its use is strongly discouraged.  Update the addon tests so they no
longer use it.

PR-URL: https://github.com/nodejs/node/pull/2427
Reviewed-By: Trevor Norris <trev.norris@gmail.com>
test/addons/async-hello-world/binding.cc
test/addons/at-exit/binding.cc
test/addons/hello-world-function-export/binding.cc
test/addons/hello-world/binding.cc

index 049afab..aee3a37 100644 (file)
@@ -7,6 +7,7 @@ struct async_req {
   uv_work_t req;
   int input;
   int output;
+  v8::Isolate* isolate;
   v8::Persistent<v8::Function> callback;
 };
 
@@ -17,9 +18,9 @@ void DoAsync(uv_work_t* r) {
 }
 
 void AfterAsync(uv_work_t* r) {
-  v8::Isolate* isolate = v8::Isolate::GetCurrent();
-  v8::HandleScope scope(isolate);
   async_req* req = reinterpret_cast<async_req*>(r->data);
+  v8::Isolate* isolate = req->isolate;
+  v8::HandleScope scope(isolate);
 
   v8::Handle<v8::Value> argv[2] = {
     v8::Null(isolate),
@@ -42,7 +43,7 @@ void AfterAsync(uv_work_t* r) {
 }
 
 void Method(const v8::FunctionCallbackInfo<v8::Value>& args) {
-  v8::Isolate* isolate = v8::Isolate::GetCurrent();
+  v8::Isolate* isolate = args.GetIsolate();
   v8::HandleScope scope(isolate);
 
   async_req* req = new async_req;
@@ -50,6 +51,7 @@ void Method(const v8::FunctionCallbackInfo<v8::Value>& args) {
 
   req->input = args[0]->IntegerValue();
   req->output = 0;
+  req->isolate = isolate;
 
   v8::Local<v8::Function> callback = v8::Local<v8::Function>::Cast(args[1]);
   req->callback.Reset(isolate, callback);
index 9f192cd..d300aad 100644 (file)
@@ -16,10 +16,8 @@ static int at_exit_cb1_called = 0;
 static int at_exit_cb2_called = 0;
 
 static void at_exit_cb1(void* arg) {
-  // FIXME(bnoordhuis) Isolate::GetCurrent() is on its way out.
-  Isolate* isolate = Isolate::GetCurrent();
+  Isolate* isolate = static_cast<Isolate*>(arg);
   HandleScope handle_scope(isolate);
-  assert(arg == 0);
   Local<Object> obj = Object::New(isolate);
   assert(!obj.IsEmpty());  // Assert VM is still alive.
   assert(obj->IsObject());
@@ -37,7 +35,7 @@ static void sanity_check(void) {
 }
 
 void init(Handle<Object> target) {
-  AtExit(at_exit_cb1);
+  AtExit(at_exit_cb1, target->CreationContext()->GetIsolate());
   AtExit(at_exit_cb2, cookie);
   AtExit(at_exit_cb2, cookie);
   atexit(sanity_check);
index 88a6ba5..68db227 100644 (file)
@@ -2,7 +2,7 @@
 #include <v8.h>
 
 void Method(const v8::FunctionCallbackInfo<v8::Value>& args) {
-  v8::Isolate* isolate = v8::Isolate::GetCurrent();
+  v8::Isolate* isolate = args.GetIsolate();
   v8::HandleScope scope(isolate);
   args.GetReturnValue().Set(v8::String::NewFromUtf8(isolate, "world"));
 }
index c8bbd55..4982bc3 100644 (file)
@@ -2,7 +2,7 @@
 #include <v8.h>
 
 void Method(const v8::FunctionCallbackInfo<v8::Value>& args) {
-  v8::Isolate* isolate = v8::Isolate::GetCurrent();
+  v8::Isolate* isolate = args.GetIsolate();
   v8::HandleScope scope(isolate);
   args.GetReturnValue().Set(v8::String::NewFromUtf8(isolate, "world"));
 }