const char *V8_DEBUGGER_KEY_REQUEST = "v8request";
const char *V8_DEBUGGER_KEY_V8MESSAGE = "v8message";
const char *V8_DEBUGGER_KEY_BREAK_ON_SIGNAL = "breakonsignal";
-const char *V8_DEBUGGER_KEY_BREAK_AFTER_COMPILE = "breakaftercompile";
QT_BEGIN_NAMESPACE
{
v8::DebugEvent event = message.GetEvent();
- if (event != v8::Break && event != v8::Exception &&
- event != v8::AfterCompile && event != v8::BeforeCompile)
+ if (message.IsEvent()) {
+ if (event == v8::AfterCompile || event == v8::BeforeCompile)
return;
- v8ServiceInstancePtr->debugMessageHandler(QJSConverter::toString(message.GetJSON()), event);
+ } else if (event != v8::Break && event != v8::Exception &&
+ event != v8::AfterCompile && event != v8::BeforeCompile) {
+ return;
+ }
+
+ v8ServiceInstancePtr->debugMessageHandler(QJSConverter::toString(message.GetJSON()));
}
class QV8DebugServicePrivate : public QQmlDebugServicePrivate
public:
QV8DebugServicePrivate()
: connectReceived(false)
- , breakAfterCompile(false)
, engine(0)
{
}
static QByteArray packMessage(const QString &type, const QString &message = QString());
bool connectReceived;
- bool breakAfterCompile;
QMutex initializeMutex;
QStringList breakOnSignals;
const QV8Engine *engine;
d->engine = engine;
}
-void QV8DebugService::debugMessageHandler(const QString &message, const v8::DebugEvent &event)
+void QV8DebugService::debugMessageHandler(const QString &message)
{
- Q_D(QV8DebugService);
sendMessage(QV8DebugServicePrivate::packMessage(QLatin1String(V8_DEBUGGER_KEY_V8MESSAGE), message));
- if (event == v8::AfterCompile && d->breakAfterCompile)
- scheduledDebugBreak(true);
}
void QV8DebugService::signalEmitted(const QString &signal)
d->breakOnSignals.removeOne(signalName);
sendMessage(QV8DebugServicePrivate::packMessage(QLatin1String(V8_DEBUGGER_KEY_BREAK_ON_SIGNAL)));
- } else if (command == V8_DEBUGGER_KEY_BREAK_AFTER_COMPILE) {
- QDataStream rs(data);
- rs >> d->breakAfterCompile;
- sendMessage(QV8DebugServicePrivate::packMessage(QLatin1String(V8_DEBUGGER_KEY_BREAK_AFTER_COMPILE)));
-
}
}
}
static QV8DebugService *instance();
static void initialize(const QV8Engine *engine);
- void debugMessageHandler(const QString &message, const v8::DebugEvent &event);
+ void debugMessageHandler(const QString &message);
void signalEmitted(const QString &signal);
var c
var d = 12
}
+ function foo() {
+ var a = [1, 2]
+ var b = {a: "hello", d: 1 }
+ var c
+ var d = 12
+ }
}
const char *CONNECT = "connect";
const char *INTERRUPT = "interrupt";
-const char *BREAKAFTERCOMPILE = "breakaftercompile";
const char *REQUEST = "request";
const char *IN = "in";
void connect();
void interrupt();
- void breakAfterCompile();
void getVersion();
void getVersionWhenAttaching();
void connect();
void interrupt();
- void breakAfterCompile(bool enabled);
void continueDebugging(StepAction stepAction, int stepCount = 1);
void evaluate(QString expr, bool global = false, bool disableBreak = false, int frame = -1, const QVariantMap &addContext = QVariantMap());
void enabled();
void connected();
void interruptRequested();
- void breakAfterCompileRequested();
void result();
void stopped();
void scriptsResult();
sendMessage(packMessage(INTERRUPT));
}
-void QJSDebugClient::breakAfterCompile(bool enabled)
-{
- QByteArray request;
- QDataStream rs(&request, QIODevice::WriteOnly);
- rs << enabled;
- sendMessage(packMessage(BREAKAFTERCOMPILE, request));
-}
-
void QJSDebugClient::continueDebugging(StepAction action, int count)
{
// { "seq" : <number>,
emit stopped();
}
- } else if (type == BREAKAFTERCOMPILE) {
- emit breakAfterCompileRequested();
-
}
}
}
QVERIFY(QQmlDebugTest::waitForSignal(client, SIGNAL(interruptRequested())));
}
-void tst_QQmlDebugJS::breakAfterCompile()
-{
- //void breakAfterCompile(bool enabled)
-
- QVERIFY(init());
- client->breakAfterCompile(true);
- client->connect();
-
- QVERIFY(QQmlDebugTest::waitForSignal(client, SIGNAL(breakAfterCompileRequested())));
- QVERIFY(QQmlDebugTest::waitForSignal(client, SIGNAL(stopped())));
-}
-
void tst_QQmlDebugJS::getVersion()
{
//void version()
{
//void listBreakpoints()
- int sourceLine1 = 47;
- int sourceLine2 = 48;
- int sourceLine3 = 49;
+ int sourceLine1 = 53;
+ int sourceLine2 = 54;
+ int sourceLine3 = 55;
QVERIFY(init());
client->connect();