diff options
author | Lars Knoll <lars.knoll@digia.com> | 2013-05-22 10:47:36 +0200 |
---|---|---|
committer | Simon Hausmann <simon.hausmann@digia.com> | 2013-05-22 12:27:21 +0200 |
commit | d7f2868e427299c1cb9ec33b3c1939c6ad4e78a7 (patch) | |
tree | 9e642a0f8f238c6f70afa4fb70c286a92a701b1c /src/qml/qml/v8/qv8valuetypewrapper.cpp | |
parent | 3bd678c76d8ab699e79e5a3cfe43cff2db03fb8f (diff) |
Add support for generating stack traces to QV4::ExecutionEngine
This makes it possible to remove the v8::StackTrace API
Change-Id: I53eee022a1030f0f6bf9a9268ca7cd3d5975724d
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Diffstat (limited to 'src/qml/qml/v8/qv8valuetypewrapper.cpp')
-rw-r--r-- | src/qml/qml/v8/qv8valuetypewrapper.cpp | 12 |
1 files changed, 3 insertions, 9 deletions
diff --git a/src/qml/qml/v8/qv8valuetypewrapper.cpp b/src/qml/qml/v8/qv8valuetypewrapper.cpp index 9bf1169c21..9297df3d17 100644 --- a/src/qml/qml/v8/qv8valuetypewrapper.cpp +++ b/src/qml/qml/v8/qv8valuetypewrapper.cpp @@ -392,17 +392,11 @@ v8::Handle<v8::Value> QV8ValueTypeWrapper::Setter(v8::Handle<v8::String> propert cacheData.valueTypeCoreIndex = index; cacheData.valueTypePropType = p.userType(); - v8::Handle<v8::StackTrace> trace = - v8::StackTrace::CurrentStackTrace(1, - (v8::StackTrace::StackTraceOptions)(v8::StackTrace::kLineNumber | - v8::StackTrace::kScriptName)); - v8::Handle<v8::StackFrame> frame = trace->GetFrame(0); - int lineNumber = frame->GetLineNumber(); - int columnNumber = frame->GetColumn(); - QString url = frame->GetScriptName()->v4Value().toQString(); + QV4::ExecutionEngine *v4 = QV8Engine::getV4(r->engine); + QV4::ExecutionEngine::StackFrame frame = v4->currentStackFrame(); newBinding = new QQmlBinding(&function, reference->object, context, - url, qmlSourceCoordinate(lineNumber), qmlSourceCoordinate(columnNumber)); + frame.source.url(), qmlSourceCoordinate(frame.line), qmlSourceCoordinate(frame.column)); newBinding->setTarget(reference->object, cacheData, context); newBinding->setEvaluateFlags(newBinding->evaluateFlags() | QQmlBinding::RequiresThisObject); |