void ConsoleWrapper::trace(const v8::FunctionCallbackInfo<v8::Value>& args)
{
	std::string text("Stack Trace:")	;
	v8::HandleScope scope(args.GetIsolate());
	v8::Local<v8::StackTrace> stackTrace = v8::StackTrace::CurrentStackTrace(args.GetIsolate(), 128, v8::StackTrace::kDetailed);
	for (int i = 0; i < stackTrace->GetFrameCount(); i++)
	{
		text.append("\n  Frame #");
		Poco::NumberFormatter::append(text, i);
		v8::Local<v8::StackFrame> frame = stackTrace->GetFrame(i);

		v8::Local<v8::String> function = frame->GetFunctionName();
		if (!function.IsEmpty())
		{
			std::string functionName(toString(frame->GetFunctionName()));
			if (!functionName.empty())
			{
				text.append(" ");
				text.append(functionName);
				text.append("()");
			}
		}
		text.append(" at ");
		v8::Local<v8::String> script = frame->GetScriptNameOrSourceURL();
		if (script.IsEmpty())
		{
			text.append("<unknown>");
		}
		else
		{
			text.append("\"");
			text.append(toString(script));
			text.append("\"");
		}
		if (frame->GetLineNumber() > 0)
		{
			text.append(", line ");
			Poco::NumberFormatter::append(text, frame->GetLineNumber());
		}
	}
	Poco::Logger* pLogger = Wrapper::unwrapNative<Poco::Logger>(args);
	pLogger->debug(text);
}