@@ -171,15 +171,15 @@ string CallbackHandlers::ResolveClassName(Isolate* isolate, jclass& clazz) {
171171 return className;
172172}
173173
174- Local<Value> CallbackHandlers::GetArrayElement (Isolate* isolate , const Local<Object>& array,
174+ Local<Value> CallbackHandlers::GetArrayElement (Local<Context> context , const Local<Object>& array,
175175 uint32_t index, const string& arraySignature) {
176- return arrayElementAccessor.GetArrayElement (isolate , array, index, arraySignature);
176+ return arrayElementAccessor.GetArrayElement (context , array, index, arraySignature);
177177}
178178
179- void CallbackHandlers::SetArrayElement (Isolate* isolate , const Local<Object>& array, uint32_t index,
179+ void CallbackHandlers::SetArrayElement (Local<Context> context , const Local<Object>& array, uint32_t index,
180180 const string& arraySignature, Local<Value>& value) {
181181
182- arrayElementAccessor.SetArrayElement (isolate , array, index, arraySignature, value);
182+ arrayElementAccessor.SetArrayElement (context , array, index, arraySignature, value);
183183}
184184
185185Local<Value> CallbackHandlers::GetJavaField (Isolate* isolate, const Local<Object>& caller,
@@ -568,7 +568,7 @@ CallbackHandlers::GetImplementedInterfaces(JEnv& env, const Local<Object>& imple
568568
569569 vector<jstring> interfacesToImplement;
570570 auto isolate = implementationObject->GetIsolate ();
571- auto context = isolate-> GetCurrentContext ();
571+ auto context = implementationObject-> CreationContext ();
572572 auto propNames = implementationObject->GetOwnPropertyNames (context).ToLocalChecked ();
573573 for (int i = 0 ; i < propNames->Length (); i++) {
574574 auto name = propNames->Get (context, i).ToLocalChecked ().As <String>();
@@ -582,7 +582,6 @@ CallbackHandlers::GetImplementedInterfaces(JEnv& env, const Local<Object>& imple
582582 if (arrNameC == " interfaces" ) {
583583 auto interfacesArr = prop->ToObject (context).ToLocalChecked ();
584584
585- auto context = isolate->GetCurrentContext ();
586585 int length = interfacesArr->Get (
587586 context,
588587 v8::String::NewFromUtf8 (isolate, " length" ).ToLocalChecked ()).ToLocalChecked ()->ToObject (context).ToLocalChecked ()->Uint32Value (
@@ -628,7 +627,7 @@ CallbackHandlers::GetMethodOverrides(JEnv& env, const Local<Object>& implementat
628627
629628 vector<jstring> methodNames;
630629 auto isolate = implementationObject->GetIsolate ();
631- auto context = isolate-> GetCurrentContext ();
630+ auto context = implementationObject-> CreationContext ();
632631 auto propNames = implementationObject->GetOwnPropertyNames (context).ToLocalChecked ();
633632 for (int i = 0 ; i < propNames->Length (); i++) {
634633 auto name = propNames->Get (context, i).ToLocalChecked ().As <String>();
@@ -833,7 +832,7 @@ Local<Value> CallbackHandlers::CallJSMethod(Isolate* isolate, JNIEnv* _env,
833832 JEnv env (_env);
834833 Local<Value> result;
835834
836- auto context = isolate-> GetCurrentContext ();
835+ auto context = Runtime::GetRuntime ( isolate)-> GetContext ();
837836 auto method = jsObject->Get (context, ArgConverter::ConvertToV8String (isolate, methodName)).ToLocalChecked ();
838837
839838 if (method.IsEmpty () || method->IsUndefined ()) {
@@ -848,16 +847,14 @@ Local<Value> CallbackHandlers::CallJSMethod(Isolate* isolate, JNIEnv* _env,
848847 EscapableHandleScope handleScope (isolate);
849848
850849 auto jsMethod = method.As <Function>();
851- auto jsArgs = ArgConverter::ConvertJavaArgsToJsArgs (isolate , args);
850+ auto jsArgs = ArgConverter::ConvertJavaArgsToJsArgs (context , args);
852851 int argc = jsArgs->Length ();
853852
854853 std::vector<Local<Value>> arguments (argc);
855854 for (int i = 0 ; i < argc; i++) {
856855 arguments[i] = jsArgs->Get (context, i).ToLocalChecked ();
857856 }
858857
859- auto context = isolate->GetCurrentContext ();
860-
861858 TryCatch tc (isolate);
862859 Local<Value> jsResult;
863860 {
@@ -1160,12 +1157,11 @@ CallbackHandlers::WorkerObjectOnMessageCallback(Isolate* isolate, jint workerId,
11601157
11611158 if (!isEmpty && isFunction) {
11621159 auto msgString = ArgConverter::jstringToV8String (isolate, message).As <String>();
1163- auto context = isolate->GetCurrentContext ();
11641160 Local<Value> msg;
11651161 JSON::Parse (context, msgString).ToLocal (&msg);
11661162
11671163 auto obj = Object::New (isolate);
1168- obj->DefineOwnProperty (isolate-> GetCurrentContext () ,
1164+ obj->DefineOwnProperty (context ,
11691165 ArgConverter::ConvertToV8String (isolate, " data" ), msg,
11701166 PropertyAttribute::ReadOnly);
11711167 Local<Value> args1[] = {obj};
@@ -1430,8 +1426,6 @@ CallbackHandlers::CallWorkerObjectOnErrorHandle(Isolate* isolate, jint workerId,
14301426
14311427 auto func = callback.As <Function>();
14321428
1433- auto context = isolate->GetCurrentContext ();
1434-
14351429 // Handle exceptions thrown in onmessage with the worker.onerror handler, if present
14361430 Local<Value> result;
14371431 func->Call (context, Undefined (isolate), 1 , args1).ToLocal (&result);
@@ -1490,9 +1484,6 @@ void CallbackHandlers::ClearWorkerPersistent(int workerId) {
14901484}
14911485
14921486void CallbackHandlers::TerminateWorkerThread (Isolate* isolate) {
1493- auto context = isolate->GetCurrentContext ();
1494- context->Exit ();
1495-
14961487 isolate->TerminateExecution ();
14971488}
14981489
0 commit comments