本文整理汇总了C++中ExecState::context方法的典型用法代码示例。如果您正苦于以下问题:C++ ExecState::context方法的具体用法?C++ ExecState::context怎么用?C++ ExecState::context使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ExecState
的用法示例。
在下文中一共展示了ExecState::context方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: slotEval
void KJSDebugWin::slotEval()
{
// Work out which execution state to use. If we're currently in a debugging session,
// use the current context - otherwise, use the global execution state from the interpreter
// corresponding to the currently displayed source file.
ExecState *exec;
Object thisobj;
if(m_execStates.isEmpty())
{
if(m_sourceSel->currentItem() < 0)
return;
SourceFile *sourceFile = m_sourceSelFiles.at(m_sourceSel->currentItem());
if(!sourceFile->interpreter)
return;
exec = sourceFile->interpreter->globalExec();
thisobj = exec->interpreter()->globalObject();
}
else
{
exec = m_execStates.top();
thisobj = exec->context().thisValue();
}
// Evaluate the js code from m_evalEdit
UString code(m_evalEdit->code());
QString msg;
KJSCPUGuard guard;
guard.start();
Interpreter *interp = exec->interpreter();
Object obj = Object::dynamicCast(interp->globalObject().get(exec, "eval"));
List args;
args.append(String(code));
m_evalDepth++;
Value retval = obj.call(exec, thisobj, args);
m_evalDepth--;
guard.stop();
// Print the return value or exception message to the console
if(exec->hadException())
{
Value exc = exec->exception();
exec->clearException();
msg = "Exception: " + exc.toString(interp->globalExec()).qstring();
}
else
{
msg = retval.toString(interp->globalExec()).qstring();
}
m_evalEdit->insert(msg + "\n");
updateContextList();
}