2323#include " JsContext.h"
2424#include " Utils.h"
2525#include < AdblockPlus/Platform.h>
26+ #include " v8-compat-api.h"
27+
28+ using namespace AdblockPlus ::V8CompatApi;
2629
2730namespace
2831{
@@ -42,8 +45,9 @@ namespace
4245 }
4346
4447 std::stringstream source;
45- v8::Local<v8::StackFrame> frame = v8::StackTrace::CurrentStackTrace (arguments.GetIsolate (), 1 )->GetFrame (0 );
46- source << AdblockPlus::Utils::FromV8String (arguments.GetIsolate (), frame->GetScriptName ());
48+ auto isolate = arguments.GetIsolate ();
49+ v8::Local<v8::StackFrame> frame = StackTrace_GetFrame (isolate, v8::StackTrace::CurrentStackTrace (isolate, 1 ), 0 );
50+ source << AdblockPlus::Utils::FromV8String (isolate, frame->GetScriptName ());
4751 source << " :" << frame->GetLineNumber ();
4852
4953 jsEngine->GetPlatform ().WithLogSystem (
@@ -84,19 +88,20 @@ namespace
8488 const AdblockPlus::JsContext context (*jsEngine);
8589 AdblockPlus::JsValueList converted = jsEngine->ConvertArguments (arguments);
8690
91+ auto isolate = arguments.GetIsolate ();
8792 std::stringstream traceback;
88- v8::Local<v8::StackTrace> frames = v8::StackTrace::CurrentStackTrace (arguments. GetIsolate () , 100 );
93+ v8::Local<v8::StackTrace> frames = v8::StackTrace::CurrentStackTrace (isolate , 100 );
8994 for (int i = 0 , l = frames->GetFrameCount (); i < l; i++)
9095 {
91- v8::Local<v8::StackFrame> frame = frames-> GetFrame ( i);
96+ v8::Local<v8::StackFrame> frame = StackTrace_GetFrame (isolate, frames, i);
9297 traceback << (i + 1 ) << " : " ;
93- std::string name = AdblockPlus::Utils::FromV8String (arguments. GetIsolate () , frame->GetFunctionName ());
98+ std::string name = AdblockPlus::Utils::FromV8String (isolate , frame->GetFunctionName ());
9499 if (name.size ())
95100 traceback << name;
96101 else
97102 traceback << " /* anonymous */" ;
98103 traceback << " () at " ;
99- traceback << AdblockPlus::Utils::FromV8String (arguments. GetIsolate () , frame->GetScriptName ());
104+ traceback << AdblockPlus::Utils::FromV8String (isolate , frame->GetScriptName ());
100105 traceback << " :" << frame->GetLineNumber ();
101106 traceback << std::endl;
102107 }
0 commit comments